dsh-config-manager 0.1.85 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/lib/cli/web/page.js +2 -2
  2. package/lib/client.d.ts +86 -1
  3. package/lib/client.js +2365 -772
  4. package/lib/core/native-path-picker.d.ts +49 -0
  5. package/lib/core/native-path-picker.js +475 -0
  6. package/lib/core/path-browse.d.ts +42 -0
  7. package/lib/core/path-browse.js +134 -0
  8. package/lib/foreign/claude-sessions.d.ts +1 -1
  9. package/lib/foreign/claude-sessions.js +1 -1
  10. package/lib/index.d.ts +2 -2
  11. package/lib/index.js +3 -3
  12. package/lib/market/security.js +1 -1
  13. package/lib/market/types.d.ts +1 -1
  14. package/lib/market/types.js +1 -1
  15. package/lib/routes/index.d.ts +1 -1
  16. package/lib/routes/index.js +2 -0
  17. package/lib/routes/kit.d.ts +2 -2
  18. package/lib/routes/path-browse.d.ts +3 -0
  19. package/lib/routes/path-browse.js +63 -0
  20. package/lib/security/secret-scanner.js +1 -1
  21. package/lib/sync/git/git-transport.js +18 -3
  22. package/lib/ui/sync-settings-view.d.ts +18 -0
  23. package/lib/ui/sync-settings-view.js +20 -0
  24. package/lib/utils/workdir-lock.d.ts +26 -2
  25. package/lib/utils/workdir-lock.js +133 -5
  26. package/package.json +2 -2
  27. package/src/cli/web/page.ts +2 -2
  28. package/src/client/ConfigManagerSection.tsx +20 -17
  29. package/src/client/api.ts +60 -1
  30. package/src/client/bundle-selfcontained.test.ts +9 -0
  31. package/src/client/chat/chat-entry-view.test.ts +1 -1
  32. package/src/client/chat/rollback-entry-view.test.ts +14 -0
  33. package/src/client/chat/rollback-entry-view.ts +2 -1
  34. package/src/client/common/CopyButton.tsx +21 -2
  35. package/src/client/common/Icon.tsx +7 -0
  36. package/src/client/common/routes.ts +5 -0
  37. package/src/client/config-manager.module.css +70 -0
  38. package/src/client/import/ImportWizardView.tsx +1 -0
  39. package/src/client/import/PathMappingForm.tsx +62 -8
  40. package/src/client/import/PathPickerDialog.tsx +172 -0
  41. package/src/client/import/dsh-directory-pick.test.ts +55 -0
  42. package/src/client/import/dsh-directory-pick.ts +55 -0
  43. package/src/client/import/import-wizard-steps.tsx +5 -2
  44. package/src/client/index.ts +12 -1
  45. package/src/client/locales.ts +25 -0
  46. package/src/client/lucide-icons.d.ts +2 -0
  47. package/src/client/sync/SyncPanel.tsx +4 -4
  48. package/src/client/sync/sync-view.ts +1 -1
  49. package/src/core/native-path-picker.test.ts +118 -0
  50. package/src/core/native-path-picker.ts +517 -0
  51. package/src/core/path-browse.test.ts +88 -0
  52. package/src/core/path-browse.ts +166 -0
  53. package/src/foreign/claude-sessions.ts +3 -3
  54. package/src/index.ts +3 -3
  55. package/src/market/security.ts +1 -1
  56. package/src/market/types.ts +1 -1
  57. package/src/routes/index.ts +3 -1
  58. package/src/routes/kit.ts +2 -2
  59. package/src/routes/path-browse.ts +70 -0
  60. package/src/security/secret-scanner.test.ts +1 -1
  61. package/src/security/secret-scanner.ts +1 -1
  62. package/src/sync/git/git-transport.test.ts +32 -0
  63. package/src/sync/git/git-transport.ts +20 -4
  64. package/src/ui/session-issue-labels.ts +1 -1
  65. package/src/ui/sync-settings-view.test.ts +18 -1
  66. package/src/ui/sync-settings-view.ts +21 -0
  67. package/src/utils/workdir-lock.test.ts +77 -4
  68. package/src/utils/workdir-lock.ts +122 -5
package/lib/client.js CHANGED
@@ -50,6 +50,29 @@ react = __toESM(react, 1);
50
50
  let react_jsx_runtime = require("react/jsx-runtime");
51
51
  let react_dom = require("react-dom");
52
52
  react_dom = __toESM(react_dom, 1);
53
+ // src/client/import/dsh-directory-pick.ts
54
+ /** 服务名按 DSH 版本从新到旧:0.2.x = uiWorkspace,更早 = workspaces。 */
55
+ const SERVICE_NAMES = ["uiWorkspace", "workspaces"];
56
+ function asService(value) {
57
+ if (typeof value !== "object" || value === null) return void 0;
58
+ const candidate = value;
59
+ return typeof candidate.pickDirectory === "function" ? candidate : void 0;
60
+ }
61
+ /**
62
+ * 造一个惰取 thunk:每次都重新读服务(宿主重连/服务重建后旧快照会失效)。
63
+ * 找不到任何入口就抛错 —— 调用方据此归成 `unavailable` 并降级,绝不静默当成「用户取消」。
64
+ */
65
+ function makeDshDirectoryPicker(sources) {
66
+ return async () => {
67
+ const desktop = sources.desktop;
68
+ if (desktop !== void 0 && typeof desktop.pick === "function") return desktop.pick();
69
+ for (const name of SERVICE_NAMES) {
70
+ const service = asService(sources.getService?.(name));
71
+ if (service?.pickDirectory !== void 0) return service.pickDirectory();
72
+ }
73
+ throw new Error("config-manager: DSH directory picker unavailable");
74
+ };
75
+ }
53
76
  /**
54
77
  * 分区注册表(**Record<SectionId, SectionMeta>**:漏注册/写错 id → 编译失败)。
55
78
  *
@@ -1929,7 +1952,12 @@ const CONFIG_MANAGER_API = {
1929
1952
  * F-2:官方 session.export 通道(**只读**)。缺 `sessionId` = 探测可用性(回结构化三态),
1930
1953
  * 带 `sessionId` = 流式代理 DSH 自己的 `/api/session.export`(原始日志 ZIP,含子会话与附件)。
1931
1954
  */
1932
- sessionExport: `${API_BASE}/session-export`
1955
+ sessionExport: `${API_BASE}/session-export`,
1956
+ /**
1957
+ * 本机目录列举(**只读**):`?path=` 缺省 = 「此电脑」根列表。
1958
+ * 导入向导「路径映射 → 选本机路径」弹窗的唯一数据源(浏览器拿不到真实目录树)。
1959
+ */
1960
+ pathBrowse: `${API_BASE}/path-browse`
1933
1961
  };
1934
1962
  /** 远程同步路由族(git / webdav 通道、GitHub device flow、历史快照、自动同步、分区选择)。 */
1935
1963
  const SYNC_API = {
@@ -2243,6 +2271,8 @@ function resolveFailedSections(requested, response) {
2243
2271
  const LONG_OPTS = { timeoutMs: LONG_REQUEST_TIMEOUT_MS };
2244
2272
  /** 插件自更新请求的超时:宿主侧安装上限 15 分钟,客户端留出余量(16 分钟)避免误报「请求超时」。 */
2245
2273
  const SELF_UPDATE_OPTS = { timeoutMs: 96e4 };
2274
+ /** 原生目录选择器:宿主侧 10 分钟上限,这里留出传输余量。 */
2275
+ const NATIVE_PICK_OPTS = { timeoutMs: 66e4 };
2246
2276
  /** query-string 辅助(跳过 undefined/空串,与 dsh-ssh 一致) */
2247
2277
  function query(params) {
2248
2278
  const search = new URLSearchParams();
@@ -2278,8 +2308,15 @@ var ConfigManagerApi = class {
2278
2308
  exportPassword = null;
2279
2309
  /** 客户端展示层翻译器(zh 源 / en 镜像,见 ui/i18n.ts)。 */
2280
2310
  t;
2281
- constructor(t) {
2311
+ /**
2312
+ * DSH 自带目录选择器(桌面壳全局 `__DSH_DIRECTORY_PICKER__.pick` 或客户端服务 `ctx.get('uiWorkspace').pickDirectory`),
2313
+ * 由 `apply(ctx)` 注入的**惰取** thunk(解析顺序见 `import/dsh-directory-pick.ts`)。
2314
+ * 宿主没提供该能力时保持 `undefined`。
2315
+ */
2316
+ dshDirectoryPicker;
2317
+ constructor(t, dshDirectoryPicker) {
2282
2318
  this.t = t;
2319
+ this.dshDirectoryPicker = dshDirectoryPicker;
2283
2320
  }
2284
2321
  /** 健康/版本检查(主页横幅:插件版本 / DSH 版本 / 平台) */
2285
2322
  async status() {
@@ -2435,6 +2472,55 @@ var ConfigManagerApi = class {
2435
2472
  ...opts.sessionFormatDisposition !== void 0 ? { sessionFormatDisposition: opts.sessionFormatDisposition } : {}
2436
2473
  }, this.t, LONG_OPTS);
2437
2474
  }
2475
+ /**
2476
+ * 列出一层本机目录(只读;路径映射「选本机路径」弹窗的数据源)。
2477
+ * `target` 缺省或空串 = 「此电脑」根列表(Windows 盘符 / POSIX `/`)。
2478
+ * 失败不抛异常:宿主回 `error: 'not-found'|'denied'|'failed'|'not-absolute'`,弹窗照常可用。
2479
+ */
2480
+ async browsePath(target) {
2481
+ const suffix = target === void 0 || target === "" ? "" : query({ path: target });
2482
+ return getJson(CONFIG_MANAGER_API.pathBrowse + suffix, this.t);
2483
+ }
2484
+ /**
2485
+ * 弹**系统原生**目录选择器(同一端点的 POST 形态)。
2486
+ *
2487
+ * 用户可能在系统对话框里逛几分钟,所以超时必须远大于常规请求:内核侧 10 分钟兜底,这里再加一道。
2488
+ * 回 `reason: 'unsupported' | 'failed'` 时调用方回落到内置目录浏览器,不当错误处理。
2489
+ */
2490
+ async pickNativePath(startPath, title) {
2491
+ const body = {};
2492
+ if (startPath !== void 0 && startPath !== "") body.startPath = startPath;
2493
+ if (title !== void 0 && title !== "") body.title = title;
2494
+ return postJson(CONFIG_MANAGER_API.pathBrowse, body, this.t, NATIVE_PICK_OPTS);
2495
+ }
2496
+ /**
2497
+ * 复用 **DSH 宿主自带**的原生目录选择器(就是「选择工作区目录」那个窗口)。
2498
+ *
2499
+ * 比插件自己起系统对话框更稳:窗口由 DSH 主进程弹,跟着宿主走,不受插件宿主的进程形态限制。
2500
+ * 完全不设客户端超时 —— 用户可能在原生窗口里逛几分钟,宿主侧 `host.pickDirectory` 也是 caller-signal-only。
2501
+ * 宿主没有该能力或调用抛错一律归成 `unavailable`,由调用方回落插件自己的原生对话框,不当错误处理。
2502
+ */
2503
+ async pickDshPath() {
2504
+ if (this.dshDirectoryPicker === void 0) return {
2505
+ ok: false,
2506
+ reason: "unavailable"
2507
+ };
2508
+ try {
2509
+ const path = await this.dshDirectoryPicker();
2510
+ return typeof path === "string" && path !== "" ? {
2511
+ ok: true,
2512
+ path
2513
+ } : {
2514
+ ok: false,
2515
+ reason: "canceled"
2516
+ };
2517
+ } catch {
2518
+ return {
2519
+ ok: false,
2520
+ reason: "unavailable"
2521
+ };
2522
+ }
2523
+ }
2438
2524
  /** ImportPort.decryptArchive:解锁整体加密备份容器 → 明文 ZIP 路径 + 解密覆盖的凭据 ref 名 */
2439
2525
  async decryptArchive(zipPath, password) {
2440
2526
  return postJson(CONFIG_MANAGER_API.decryptArchive, {
@@ -8759,7 +8845,7 @@ function createLucideIcon(iconDataOrName, iconNode = [], aliases = []) {
8759
8845
  * This source code is licensed under the ISC license.
8760
8846
  * See the LICENSE file in the root directory of this source tree.
8761
8847
  */
8762
- const __iconData$25 = {
8848
+ const __iconData$27 = {
8763
8849
  name: "arrow-right",
8764
8850
  size: 24,
8765
8851
  node: [["path", {
@@ -8770,8 +8856,8 @@ const __iconData$25 = {
8770
8856
  key: "xquz4c"
8771
8857
  }]]
8772
8858
  };
8773
- __iconData$25.node;
8774
- const ArrowRight = createLucideIcon(__iconData$25);
8859
+ __iconData$27.node;
8860
+ const ArrowRight = createLucideIcon(__iconData$27);
8775
8861
  // node_modules/lucide-react/dist/esm/icons/circle-check-big.mjs
8776
8862
  /**
8777
8863
  * @license lucide-react v1.61.0 - ISC
@@ -8779,7 +8865,7 @@ const ArrowRight = createLucideIcon(__iconData$25);
8779
8865
  * This source code is licensed under the ISC license.
8780
8866
  * See the LICENSE file in the root directory of this source tree.
8781
8867
  */
8782
- const __iconData$24 = {
8868
+ const __iconData$26 = {
8783
8869
  name: "circle-check-big",
8784
8870
  size: 24,
8785
8871
  node: [["path", {
@@ -8791,8 +8877,8 @@ const __iconData$24 = {
8791
8877
  }]],
8792
8878
  aliases: ["check-circle"]
8793
8879
  };
8794
- __iconData$24.node;
8795
- const CircleCheckBig = createLucideIcon(__iconData$24);
8880
+ __iconData$26.node;
8881
+ const CircleCheckBig = createLucideIcon(__iconData$26);
8796
8882
  // node_modules/lucide-react/dist/esm/icons/chevron-down.mjs
8797
8883
  /**
8798
8884
  * @license lucide-react v1.61.0 - ISC
@@ -8800,7 +8886,7 @@ const CircleCheckBig = createLucideIcon(__iconData$24);
8800
8886
  * This source code is licensed under the ISC license.
8801
8887
  * See the LICENSE file in the root directory of this source tree.
8802
8888
  */
8803
- const __iconData$23 = {
8889
+ const __iconData$25 = {
8804
8890
  name: "chevron-down",
8805
8891
  size: 24,
8806
8892
  node: [["path", {
@@ -8808,8 +8894,8 @@ const __iconData$23 = {
8808
8894
  key: "qrunsl"
8809
8895
  }]]
8810
8896
  };
8811
- __iconData$23.node;
8812
- const ChevronDown$1 = createLucideIcon(__iconData$23);
8897
+ __iconData$25.node;
8898
+ const ChevronDown$1 = createLucideIcon(__iconData$25);
8813
8899
  // node_modules/lucide-react/dist/esm/icons/chevron-right.mjs
8814
8900
  /**
8815
8901
  * @license lucide-react v1.61.0 - ISC
@@ -8817,7 +8903,7 @@ const ChevronDown$1 = createLucideIcon(__iconData$23);
8817
8903
  * This source code is licensed under the ISC license.
8818
8904
  * See the LICENSE file in the root directory of this source tree.
8819
8905
  */
8820
- const __iconData$22 = {
8906
+ const __iconData$24 = {
8821
8907
  name: "chevron-right",
8822
8908
  size: 24,
8823
8909
  node: [["path", {
@@ -8825,8 +8911,8 @@ const __iconData$22 = {
8825
8911
  key: "mthhwq"
8826
8912
  }]]
8827
8913
  };
8828
- __iconData$22.node;
8829
- const ChevronRight$1 = createLucideIcon(__iconData$22);
8914
+ __iconData$24.node;
8915
+ const ChevronRight$1 = createLucideIcon(__iconData$24);
8830
8916
  // node_modules/lucide-react/dist/esm/icons/clock.mjs
8831
8917
  /**
8832
8918
  * @license lucide-react v1.61.0 - ISC
@@ -8834,7 +8920,7 @@ const ChevronRight$1 = createLucideIcon(__iconData$22);
8834
8920
  * This source code is licensed under the ISC license.
8835
8921
  * See the LICENSE file in the root directory of this source tree.
8836
8922
  */
8837
- const __iconData$21 = {
8923
+ const __iconData$23 = {
8838
8924
  name: "clock",
8839
8925
  size: 24,
8840
8926
  node: [["circle", {
@@ -8847,8 +8933,8 @@ const __iconData$21 = {
8847
8933
  key: "mmk7yg"
8848
8934
  }]]
8849
8935
  };
8850
- __iconData$21.node;
8851
- const Clock = createLucideIcon(__iconData$21);
8936
+ __iconData$23.node;
8937
+ const Clock = createLucideIcon(__iconData$23);
8852
8938
  // node_modules/lucide-react/dist/esm/icons/circle-alert.mjs
8853
8939
  /**
8854
8940
  * @license lucide-react v1.61.0 - ISC
@@ -8856,7 +8942,7 @@ const Clock = createLucideIcon(__iconData$21);
8856
8942
  * This source code is licensed under the ISC license.
8857
8943
  * See the LICENSE file in the root directory of this source tree.
8858
8944
  */
8859
- const __iconData$20 = {
8945
+ const __iconData$22 = {
8860
8946
  name: "circle-alert",
8861
8947
  size: 24,
8862
8948
  node: [
@@ -8883,8 +8969,8 @@ const __iconData$20 = {
8883
8969
  ],
8884
8970
  aliases: ["alert-circle"]
8885
8971
  };
8886
- __iconData$20.node;
8887
- const CircleAlert = createLucideIcon(__iconData$20);
8972
+ __iconData$22.node;
8973
+ const CircleAlert = createLucideIcon(__iconData$22);
8888
8974
  // node_modules/lucide-react/dist/esm/icons/copy.mjs
8889
8975
  /**
8890
8976
  * @license lucide-react v1.61.0 - ISC
@@ -8892,7 +8978,7 @@ const CircleAlert = createLucideIcon(__iconData$20);
8892
8978
  * This source code is licensed under the ISC license.
8893
8979
  * See the LICENSE file in the root directory of this source tree.
8894
8980
  */
8895
- const __iconData$19 = {
8981
+ const __iconData$21 = {
8896
8982
  name: "copy",
8897
8983
  size: 24,
8898
8984
  node: [["rect", {
@@ -8908,8 +8994,8 @@ const __iconData$19 = {
8908
8994
  key: "zix9uf"
8909
8995
  }]]
8910
8996
  };
8911
- __iconData$19.node;
8912
- const Copy = createLucideIcon(__iconData$19);
8997
+ __iconData$21.node;
8998
+ const Copy = createLucideIcon(__iconData$21);
8913
8999
  // node_modules/lucide-react/dist/esm/icons/database-backup.mjs
8914
9000
  /**
8915
9001
  * @license lucide-react v1.61.0 - ISC
@@ -8917,7 +9003,7 @@ const Copy = createLucideIcon(__iconData$19);
8917
9003
  * This source code is licensed under the ISC license.
8918
9004
  * See the LICENSE file in the root directory of this source tree.
8919
9005
  */
8920
- const __iconData$18 = {
9006
+ const __iconData$20 = {
8921
9007
  name: "database-backup",
8922
9008
  size: 24,
8923
9009
  node: [
@@ -8950,8 +9036,8 @@ const __iconData$18 = {
8950
9036
  }]
8951
9037
  ]
8952
9038
  };
8953
- __iconData$18.node;
8954
- const DatabaseBackup = createLucideIcon(__iconData$18);
9039
+ __iconData$20.node;
9040
+ const DatabaseBackup = createLucideIcon(__iconData$20);
8955
9041
  // node_modules/lucide-react/dist/esm/icons/download.mjs
8956
9042
  /**
8957
9043
  * @license lucide-react v1.61.0 - ISC
@@ -8959,7 +9045,7 @@ const DatabaseBackup = createLucideIcon(__iconData$18);
8959
9045
  * This source code is licensed under the ISC license.
8960
9046
  * See the LICENSE file in the root directory of this source tree.
8961
9047
  */
8962
- const __iconData$17 = {
9048
+ const __iconData$19 = {
8963
9049
  name: "download",
8964
9050
  size: 24,
8965
9051
  node: [
@@ -8977,8 +9063,8 @@ const __iconData$17 = {
8977
9063
  }]
8978
9064
  ]
8979
9065
  };
8980
- __iconData$17.node;
8981
- const Download = createLucideIcon(__iconData$17);
9066
+ __iconData$19.node;
9067
+ const Download = createLucideIcon(__iconData$19);
8982
9068
  // node_modules/lucide-react/dist/esm/icons/eye.mjs
8983
9069
  /**
8984
9070
  * @license lucide-react v1.61.0 - ISC
@@ -8986,7 +9072,7 @@ const Download = createLucideIcon(__iconData$17);
8986
9072
  * This source code is licensed under the ISC license.
8987
9073
  * See the LICENSE file in the root directory of this source tree.
8988
9074
  */
8989
- const __iconData$16 = {
9075
+ const __iconData$18 = {
8990
9076
  name: "eye",
8991
9077
  size: 24,
8992
9078
  node: [["path", {
@@ -8999,8 +9085,8 @@ const __iconData$16 = {
8999
9085
  key: "1v7zrd"
9000
9086
  }]]
9001
9087
  };
9002
- __iconData$16.node;
9003
- const Eye = createLucideIcon(__iconData$16);
9088
+ __iconData$18.node;
9089
+ const Eye = createLucideIcon(__iconData$18);
9004
9090
  // node_modules/lucide-react/dist/esm/icons/file.mjs
9005
9091
  /**
9006
9092
  * @license lucide-react v1.61.0 - ISC
@@ -9008,7 +9094,7 @@ const Eye = createLucideIcon(__iconData$16);
9008
9094
  * This source code is licensed under the ISC license.
9009
9095
  * See the LICENSE file in the root directory of this source tree.
9010
9096
  */
9011
- const __iconData$15 = {
9097
+ const __iconData$17 = {
9012
9098
  name: "file",
9013
9099
  size: 24,
9014
9100
  node: [["path", {
@@ -9019,8 +9105,25 @@ const __iconData$15 = {
9019
9105
  key: "wfsgrz"
9020
9106
  }]]
9021
9107
  };
9022
- __iconData$15.node;
9023
- const File = createLucideIcon(__iconData$15);
9108
+ __iconData$17.node;
9109
+ const File = createLucideIcon(__iconData$17);
9110
+ // node_modules/lucide-react/dist/esm/icons/folder.mjs
9111
+ /**
9112
+ * @license lucide-react v1.61.0 - ISC
9113
+ *
9114
+ * This source code is licensed under the ISC license.
9115
+ * See the LICENSE file in the root directory of this source tree.
9116
+ */
9117
+ const __iconData$16 = {
9118
+ name: "folder",
9119
+ size: 24,
9120
+ node: [["path", {
9121
+ d: "M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",
9122
+ key: "1kt360"
9123
+ }]]
9124
+ };
9125
+ __iconData$16.node;
9126
+ const Folder = createLucideIcon(__iconData$16);
9024
9127
  // node_modules/lucide-react/dist/esm/icons/folder-input.mjs
9025
9128
  /**
9026
9129
  * @license lucide-react v1.61.0 - ISC
@@ -9028,7 +9131,7 @@ const File = createLucideIcon(__iconData$15);
9028
9131
  * This source code is licensed under the ISC license.
9029
9132
  * See the LICENSE file in the root directory of this source tree.
9030
9133
  */
9031
- const __iconData$14 = {
9134
+ const __iconData$15 = {
9032
9135
  name: "folder-input",
9033
9136
  size: 24,
9034
9137
  node: [
@@ -9046,8 +9149,25 @@ const __iconData$14 = {
9046
9149
  }]
9047
9150
  ]
9048
9151
  };
9152
+ __iconData$15.node;
9153
+ const FolderInput = createLucideIcon(__iconData$15);
9154
+ // node_modules/lucide-react/dist/esm/icons/folder-open.mjs
9155
+ /**
9156
+ * @license lucide-react v1.61.0 - ISC
9157
+ *
9158
+ * This source code is licensed under the ISC license.
9159
+ * See the LICENSE file in the root directory of this source tree.
9160
+ */
9161
+ const __iconData$14 = {
9162
+ name: "folder-open",
9163
+ size: 24,
9164
+ node: [["path", {
9165
+ d: "m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",
9166
+ key: "usdka0"
9167
+ }]]
9168
+ };
9049
9169
  __iconData$14.node;
9050
- const FolderInput = createLucideIcon(__iconData$14);
9170
+ const FolderOpen = createLucideIcon(__iconData$14);
9051
9171
  // node_modules/lucide-react/dist/esm/icons/hard-drive-download.mjs
9052
9172
  /**
9053
9173
  * @license lucide-react v1.61.0 - ISC
@@ -9425,8 +9545,86 @@ const __iconData = {
9425
9545
  };
9426
9546
  __iconData.node;
9427
9547
  const X = createLucideIcon(__iconData);
9548
+ // node_modules/morphicons/dist/spring-B_P92nf6.js
9549
+ /** Preallocated output buffers for a plan (zero allocation per frame). */
9550
+ function allocOutputs(plan) {
9551
+ return plan.items.map(() => new Float64Array(2 * plan.n));
9552
+ }
9553
+ function interpPolar(plan, t, out) {
9554
+ for (let k = 0; k < plan.items.length; k++) {
9555
+ const it = plan.items[k];
9556
+ const o = out[k];
9557
+ const n = plan.n;
9558
+ const s = Math.exp(it.lnSigma * t);
9559
+ const ang = it.theta * t;
9560
+ const cos = Math.cos(ang) * s;
9561
+ const sin = Math.sin(ang) * s;
9562
+ let cx;
9563
+ let cy;
9564
+ if (it.block) {
9565
+ const [ox, oy] = it.block.off;
9566
+ const [dx, dy] = it.block.drift;
9567
+ cx = it.ca[0] + dx * t + (ox * cos - oy * sin - ox);
9568
+ cy = it.ca[1] + dy * t + (ox * sin + oy * cos - oy);
9569
+ } else {
9570
+ cx = it.ca[0] + (it.cb[0] - it.ca[0]) * t;
9571
+ cy = it.ca[1] + (it.cb[1] - it.ca[1]) * t;
9572
+ }
9573
+ const m = it.half === void 0 ? t : Math.min(1, Math.max(0, 2 * t - it.half));
9574
+ for (let i = 0; i < n; i++) {
9575
+ const px = it.aC[2 * i] + (it.bT[2 * i] - it.aC[2 * i]) * m;
9576
+ const py = it.aC[2 * i + 1] + (it.bT[2 * i + 1] - it.aC[2 * i + 1]) * m;
9577
+ o[2 * i] = cx + px * cos - py * sin;
9578
+ o[2 * i + 1] = cy + px * sin + py * cos;
9579
+ }
9580
+ }
9581
+ }
9582
+ var Spring = class {
9583
+ x = 1;
9584
+ v = 0;
9585
+ k = 250;
9586
+ c = 24;
9587
+ config(k, c) {
9588
+ this.k = k;
9589
+ this.c = c;
9590
+ }
9591
+ /** Starts (or restarts mid-flight) preserving velocity. */
9592
+ start() {
9593
+ this.x = 0;
9594
+ if (this.v > 14) this.v = 14;
9595
+ if (this.v < -14) this.v = -14;
9596
+ }
9597
+ /** Advances dt seconds. Returns true on settle (|1−x| < 0.001 ∧ |v| < 0.02). */
9598
+ step(dt) {
9599
+ const steps = Math.max(1, Math.min(16, Math.ceil(dt / (1 / 240))));
9600
+ const s = dt / steps;
9601
+ for (let i = 0; i < steps; i++) {
9602
+ const a = this.k * (1 - this.x) - this.c * this.v;
9603
+ this.v += a * s;
9604
+ this.x += this.v * s;
9605
+ }
9606
+ return Math.abs(1 - this.x) < .001 && Math.abs(this.v) < .02;
9607
+ }
9608
+ };
9609
+ /** Spring presets (ζ = c/(2√k)) with the API's public names. */
9610
+ const SPRING_PRESETS = {
9611
+ /** ζ = 1.00 — critically damped, no overshoot. */
9612
+ smooth: {
9613
+ k: 170,
9614
+ c: 26
9615
+ },
9616
+ /** ζ = 0.73 — fast, subtle overshoot. */
9617
+ snappy: {
9618
+ k: 420,
9619
+ c: 30
9620
+ },
9621
+ /** ζ = 0.40 — playful. */
9622
+ bouncy: {
9623
+ k: 300,
9624
+ c: 14
9625
+ }
9626
+ };
9428
9627
  // node_modules/morphicons/dist/normalize-CYnN3Npw.js
9429
- const COMMANDS = "MmLlHhVvCcSsQqTtAaZz";
9430
9628
  function parsePath(d) {
9431
9629
  const subs = [];
9432
9630
  const n = d.length;
@@ -9668,7 +9866,7 @@ function parsePath(d) {
9668
9866
  }
9669
9867
  return subs.filter((s) => s.segs.length > 0);
9670
9868
  }
9671
- function fmt(v) {
9869
+ function fmt$1(v) {
9672
9870
  return String(Math.round(v * 100) / 100);
9673
9871
  }
9674
9872
  /** Sampled subpaths → polyline `d` attribute. `closed[k]` appends Z to
@@ -9678,8 +9876,8 @@ function serialize(subs, closed) {
9678
9876
  for (let k = 0; k < subs.length; k++) {
9679
9877
  const o = subs[k];
9680
9878
  const n = o.length / 2;
9681
- d += `M${fmt(o[0])} ${fmt(o[1])}`;
9682
- for (let i = 1; i < n; i++) d += `L${fmt(o[2 * i])} ${fmt(o[2 * i + 1])}`;
9879
+ d += `M${fmt$1(o[0])} ${fmt$1(o[1])}`;
9880
+ for (let i = 1; i < n; i++) d += `L${fmt$1(o[2 * i])} ${fmt$1(o[2 * i + 1])}`;
9683
9881
  if (closed?.[k]) d += "Z";
9684
9882
  }
9685
9883
  return d;
@@ -9698,9 +9896,6 @@ function cubicsToPathD(paths) {
9698
9896
  }
9699
9897
  return d;
9700
9898
  }
9701
- /** Control-point offset for a quarter circle: (4/3)·tan(π/8) ≈ 0.5523. */
9702
- const KAPPA = 4 / 3 * Math.tan(Math.PI / 8);
9703
- const TAU = 2 * Math.PI;
9704
9899
  function builder(x0, y0) {
9705
9900
  const pts = [x0, y0];
9706
9901
  let cx = x0;
@@ -9923,52 +10118,13 @@ function iconToCubics(input) {
9923
10118
  }
9924
10119
  return out;
9925
10120
  }
9926
- // node_modules/morphicons/dist/spring-CFHloqPP.js
9927
- /** Preallocated output buffers for a plan (zero allocation per frame). */
9928
- function allocOutputs(plan) {
9929
- return plan.items.map(() => new Float64Array(2 * plan.n));
9930
- }
9931
- function interpPolar(plan, t, out) {
9932
- for (let k = 0; k < plan.items.length; k++) {
9933
- const it = plan.items[k];
9934
- const o = out[k];
9935
- const n = plan.n;
9936
- const s = Math.exp(it.lnSigma * t);
9937
- const ang = it.theta * t;
9938
- const cos = Math.cos(ang) * s;
9939
- const sin = Math.sin(ang) * s;
9940
- let cx;
9941
- let cy;
9942
- if (it.block) {
9943
- const [ox, oy] = it.block.off;
9944
- const [dx, dy] = it.block.drift;
9945
- cx = it.ca[0] + dx * t + (ox * cos - oy * sin - ox);
9946
- cy = it.ca[1] + dy * t + (ox * sin + oy * cos - oy);
9947
- } else {
9948
- cx = it.ca[0] + (it.cb[0] - it.ca[0]) * t;
9949
- cy = it.ca[1] + (it.cb[1] - it.ca[1]) * t;
9950
- }
9951
- for (let i = 0; i < n; i++) {
9952
- const px = it.aC[2 * i] + (it.bT[2 * i] - it.aC[2 * i]) * t;
9953
- const py = it.aC[2 * i + 1] + (it.bT[2 * i + 1] - it.aC[2 * i + 1]) * t;
9954
- o[2 * i] = cx + px * cos - py * sin;
9955
- o[2 * i + 1] = cy + px * sin + py * cos;
9956
- }
9957
- }
9958
- }
9959
- /** Weight of |ΔL| in the subpath pairing cost. */
9960
- const LEN_WEIGHT = .35;
9961
- /** λ of the minimal-rotation tie-break: score = res + λ·|θ|/π.
9962
- * It exists because shapes symmetric under inversion (lines) tie in
9963
- * residual for both traversal orientations yet produce different rotations. */
9964
- const LAMBDA = .05;
9965
- /** Global residual below which the whole icon counts as congruent and the
9966
- * plan shares (θ, σ) across all items (hybrid variant of Procrustes). */
9967
- const GLOBAL_EPS = .005;
9968
- /** Bounds for exhaustive matching; above them it falls back to greedy with
9969
- * repair. 8! = 40 320 permutations / 1e5 assignments — both sub-ms. */
9970
- const PERM_MAX = 8;
9971
- const SURJ_MAX = 1e5;
10121
+ var COMMANDS, KAPPA, TAU;
10122
+ var init_normalize_CYnN3Npw = __esmMin((() => {
10123
+ COMMANDS = "MmLlHhVvCcSsQqTtAaZz";
10124
+ KAPPA = 4 / 3 * Math.tan(Math.PI / 8);
10125
+ TAU = 2 * Math.PI;
10126
+ }));
10127
+ // node_modules/morphicons/dist/resample-CXlaZ5ZQ.js
9972
10128
  function centroid(p) {
9973
10129
  const n = p.length / 2;
9974
10130
  let cx = 0;
@@ -10046,7 +10202,7 @@ function procrustes(a, b, ca, cb) {
10046
10202
  * scoring with score = res + λ·|θ|/π. The freedom is applied to ONE cloud
10047
10203
  * — the closed one (b if both are); varying both at once would be
10048
10204
  * redundant. */
10049
- function alignPair(aPts, bPts, aClosed = false, bClosed = false) {
10205
+ function alignPair(aPts, bPts, aClosed = false, bClosed = false, allowReverse = true, lambda = LAMBDA) {
10050
10206
  const ca = centroid(aPts);
10051
10207
  const cb = centroid(bPts);
10052
10208
  const varyA = aClosed && !bClosed;
@@ -10059,12 +10215,12 @@ function alignPair(aPts, bPts, aClosed = false, bClosed = false) {
10059
10215
  sigma: 1,
10060
10216
  res: 0
10061
10217
  };
10062
- for (let dir = 0; dir < 2; dir++) {
10218
+ for (let dir = 0; dir < (allowReverse ? 2 : 1); dir++) {
10063
10219
  const walk = dir ? reversePts(base) : base;
10064
10220
  for (let off = 0; off < offs; off++) {
10065
10221
  const cand = off ? rotatePts(walk, off) : walk;
10066
10222
  const s = varyA ? procrustes(cand, bPts, ca, cb) : procrustes(aPts, cand, ca, cb);
10067
- const score = s.res + LAMBDA * Math.abs(s.theta) / Math.PI;
10223
+ const score = s.res + lambda * Math.abs(s.theta) / Math.PI;
10068
10224
  if (score < bestScore) {
10069
10225
  bestScore = score;
10070
10226
  best = cand;
@@ -10135,7 +10291,7 @@ function bestPermutation(C) {
10135
10291
  function bestSurjection(C) {
10136
10292
  const B = C.length;
10137
10293
  const S = C[0].length;
10138
- if (S ** B > SURJ_MAX) {
10294
+ if (S ** B > 1e5) {
10139
10295
  const f = C.map((row) => {
10140
10296
  let m = 0;
10141
10297
  for (let j = 1; j < row.length; j++) if (row[j] < row[m]) m = j;
@@ -10227,15 +10383,9 @@ function applyGlobal(items, n) {
10227
10383
  };
10228
10384
  }
10229
10385
  }
10230
- /** Builds the morph plan between two lists of sampled subpaths. The plan is
10231
- * cacheable and serializable; it accepts any list — including intermediate
10232
- * shapes (interruptions). */
10233
- function buildPlan(srcSubs, dstSubs) {
10234
- const p = srcSubs.length;
10235
- const q = dstSubs.length;
10236
- if (p === 0 || q === 0) throw new Error("morphicons: icon has no subpaths");
10237
- const A = srcSubs.map((s) => s.pts);
10238
- const B = dstSubs.map((s) => s.pts);
10386
+ function pairUp(A, B) {
10387
+ const p = A.length;
10388
+ const q = B.length;
10239
10389
  const pairs = [];
10240
10390
  if (p === q) {
10241
10391
  const perm = bestPermutation(costMatrix(A, B));
@@ -10247,59 +10397,58 @@ function buildPlan(srcSubs, dstSubs) {
10247
10397
  const f = bestSurjection(costMatrix(A, B));
10248
10398
  for (let i = 0; i < p; i++) pairs.push([i, f[i]]);
10249
10399
  }
10250
- const n = A[0].length / 2;
10251
- const items = pairs.map(([si, di]) => {
10252
- const al = alignPair(A[si], B[di], srcSubs[si].closed, dstSubs[di].closed);
10253
- const a = al.a;
10254
- const aC = new Float64Array(2 * n);
10255
- const bT = new Float64Array(2 * n);
10256
- const bO = new Float64Array(2 * n);
10257
- const cos = Math.cos(-al.theta);
10258
- const sin = Math.sin(-al.theta);
10259
- for (let i = 0; i < n; i++) {
10260
- aC[2 * i] = a[2 * i] - al.ca[0];
10261
- aC[2 * i + 1] = a[2 * i + 1] - al.ca[1];
10262
- const bx = al.b[2 * i] - al.cb[0];
10263
- const by = al.b[2 * i + 1] - al.cb[1];
10264
- bT[2 * i] = (bx * cos - by * sin) / al.sigma;
10265
- bT[2 * i + 1] = (bx * sin + by * cos) / al.sigma;
10266
- bO[2 * i] = al.b[2 * i];
10267
- bO[2 * i + 1] = al.b[2 * i + 1];
10268
- }
10269
- return {
10270
- a,
10271
- aC,
10272
- bT,
10273
- bO,
10274
- ca: al.ca,
10275
- cb: al.cb,
10276
- theta: al.theta,
10277
- lnSigma: Math.log(al.sigma),
10278
- res: al.res,
10279
- closed: srcSubs[si].closed && dstSubs[di].closed,
10280
- block: null
10281
- };
10282
- });
10283
- if (items.length > 1) applyGlobal(items, n);
10400
+ return pairs;
10401
+ }
10402
+ function makeItem(aPts, bPts, aClosed, bClosed, allowReverse, lambda) {
10403
+ const n = aPts.length / 2;
10404
+ const al = alignPair(aPts, bPts, aClosed, bClosed, allowReverse, lambda);
10405
+ const a = al.a;
10406
+ const aC = new Float64Array(2 * n);
10407
+ const bT = new Float64Array(2 * n);
10408
+ const bO = new Float64Array(2 * n);
10409
+ const cos = Math.cos(-al.theta);
10410
+ const sin = Math.sin(-al.theta);
10411
+ for (let i = 0; i < n; i++) {
10412
+ aC[2 * i] = a[2 * i] - al.ca[0];
10413
+ aC[2 * i + 1] = a[2 * i + 1] - al.ca[1];
10414
+ const bx = al.b[2 * i] - al.cb[0];
10415
+ const by = al.b[2 * i + 1] - al.cb[1];
10416
+ bT[2 * i] = (bx * cos - by * sin) / al.sigma;
10417
+ bT[2 * i + 1] = (bx * sin + by * cos) / al.sigma;
10418
+ bO[2 * i] = al.b[2 * i];
10419
+ bO[2 * i + 1] = al.b[2 * i + 1];
10420
+ }
10421
+ return {
10422
+ a,
10423
+ aC,
10424
+ bT,
10425
+ bO,
10426
+ ca: al.ca,
10427
+ cb: al.cb,
10428
+ theta: al.theta,
10429
+ lnSigma: Math.log(al.sigma),
10430
+ res: al.res,
10431
+ closed: aClosed && bClosed,
10432
+ block: null
10433
+ };
10434
+ }
10435
+ /** Builds the morph plan between two lists of sampled subpaths. The plan is
10436
+ * cacheable and serializable; it accepts any list — including intermediate
10437
+ * shapes (interruptions). Filled regions use buildRegionPlan (lazy chunk,
10438
+ * src/region/plan.ts) instead. */
10439
+ function buildPlan(srcSubs, dstSubs) {
10440
+ const p = srcSubs.length;
10441
+ const q = dstSubs.length;
10442
+ if (p === 0 || q === 0) throw new Error("morphicons: icon has no subpaths");
10443
+ const A = srcSubs.map((s) => s.pts);
10444
+ const B = dstSubs.map((s) => s.pts);
10445
+ const items = pairUp(A, B).map(([si, di]) => makeItem(A[si], B[di], srcSubs[si].closed, dstSubs[di].closed, true));
10446
+ if (items.length > 1) applyGlobal(items, A[0].length / 2);
10284
10447
  return {
10285
10448
  items,
10286
- n
10449
+ n: A[0].length / 2
10287
10450
  };
10288
10451
  }
10289
- /** Default angular threshold for a segment joint to count as a corner. */
10290
- const CORNER_THRESHOLD = Math.PI / 8;
10291
- const GX = [
10292
- .18343464249564978,
10293
- .525532409916329,
10294
- .7966664774136267,
10295
- .9602898564975363
10296
- ];
10297
- const GW = [
10298
- .362683783378362,
10299
- .31370664587788727,
10300
- .22238103445337448,
10301
- .10122853629037626
10302
- ];
10303
10452
  function speed(p, k, t) {
10304
10453
  const i = 6 * k;
10305
10454
  const u = 1 - t;
@@ -10480,52 +10629,914 @@ function resampleIcon(input, N = 64) {
10480
10629
  closed: path.closed
10481
10630
  }));
10482
10631
  }
10483
- var Spring = class {
10484
- x = 1;
10485
- v = 0;
10486
- k = 250;
10487
- c = 24;
10488
- config(k, c) {
10489
- this.k = k;
10490
- this.c = c;
10632
+ var LEN_WEIGHT, LAMBDA, GLOBAL_EPS, PERM_MAX, CORNER_THRESHOLD, GX, GW;
10633
+ var init_resample_CXlaZ5ZQ = __esmMin((() => {
10634
+ init_normalize_CYnN3Npw();
10635
+ LEN_WEIGHT = .35;
10636
+ LAMBDA = .05;
10637
+ GLOBAL_EPS = .005;
10638
+ PERM_MAX = 8;
10639
+ CORNER_THRESHOLD = Math.PI / 8;
10640
+ GX = [
10641
+ .18343464249564978,
10642
+ .525532409916329,
10643
+ .7966664774136267,
10644
+ .9602898564975363
10645
+ ];
10646
+ GW = [
10647
+ .362683783378362,
10648
+ .31370664587788727,
10649
+ .22238103445337448,
10650
+ .10122853629037626
10651
+ ];
10652
+ }));
10653
+ // node_modules/morphicons/dist/region-BjECuWZR.js
10654
+ /** Paint of an icon. Raw `d` strings and IconNodes that never declare a
10655
+ * painted fill are stroke icons — the historical contract, so every
10656
+ * existing input keeps its meaning. One element with a painted `fill` makes
10657
+ * the whole icon a fill icon (mixed stroke+fill icons need the region path
10658
+ * too: their silhouette is not a set of centerlines). */
10659
+ function paintOf(icon) {
10660
+ if (typeof icon === "string") return "stroke";
10661
+ for (const [, a] of icon) if (painted$1(a.fill)) return "fill";
10662
+ return "stroke";
10663
+ }
10664
+ /** The elements a fill icon actually draws: its translucent layers out. */
10665
+ function solid(icon) {
10666
+ return typeof icon === "string" || paintOf(icon) === "stroke" ? icon : icon.filter(([, a]) => !translucent(a));
10667
+ }
10668
+ /** True when the icon is already a normalized region (no work left). */
10669
+ function isRegion(icon) {
10670
+ return typeof icon !== "string" && icon.length === 1 && "data-region" in icon[0][1];
10671
+ }
10672
+ /** Even-odd point-in-polygon against a closed point cloud. */
10673
+ function inside(px, py, p) {
10674
+ const n = p.length / 2;
10675
+ let c = false;
10676
+ for (let i = 0, j = n - 1; i < n; j = i++) {
10677
+ const yi = p[2 * i + 1];
10678
+ const yj = p[2 * j + 1];
10679
+ if (yi > py !== yj > py && px < (p[2 * j] - p[2 * i]) * (py - yi) / (yj - yi) + p[2 * i]) c = !c;
10680
+ }
10681
+ return c;
10682
+ }
10683
+ /** Distance from (px, py) to the segment ab. */
10684
+ function distSeg(px, py, ax, ay, bx, by) {
10685
+ const dx = bx - ax;
10686
+ const dy = by - ay;
10687
+ const l2 = dx * dx + dy * dy;
10688
+ let t = l2 > 0 ? ((px - ax) * dx + (py - ay) * dy) / l2 : 0;
10689
+ t = t < 0 ? 0 : t > 1 ? 1 : t;
10690
+ const ex = px - ax - t * dx;
10691
+ const ey = py - ay - t * dy;
10692
+ return Math.sqrt(ex * ex + ey * ey);
10693
+ }
10694
+ /** Shoelace signed area of a closed point cloud (SVG axes: y down). */
10695
+ function signedArea(p) {
10696
+ const n = p.length / 2;
10697
+ let a = 0;
10698
+ for (let i = 0, j = n - 1; i < n; j = i++) a += p[2 * j] * p[2 * i + 1] - p[2 * i] * p[2 * j + 1];
10699
+ return a / 2;
10700
+ }
10701
+ var REGION_ATTR, painted$1, translucent;
10702
+ var init_region_BjECuWZR = __esmMin((() => {
10703
+ REGION_ATTR = "data-region";
10704
+ painted$1 = (v) => v !== void 0 && String(v).trim().toLowerCase() !== "none";
10705
+ translucent = (a) => Number.parseFloat(String(a.opacity)) < .5 || Number.parseFloat(String(a["fill-opacity"])) < .5;
10706
+ }));
10707
+ // node_modules/morphicons/dist/region.js
10708
+ var region_exports = /* @__PURE__ */ __exportAll({
10709
+ buildRegionPlan: () => buildRegionPlan,
10710
+ isRegion: () => isRegion,
10711
+ paintOf: () => paintOf,
10712
+ regionContours: () => regionContours,
10713
+ regionOf: () => regionOf,
10714
+ regionPlan: () => regionPlan,
10715
+ regionPlanFrom: () => regionPlanFrom,
10716
+ resampleRegion: () => resampleRegion,
10717
+ toRegion: () => toRegion
10718
+ });
10719
+ function coarse(path, s) {
10720
+ const n = s.length / 2;
10721
+ let j = 0;
10722
+ for (let v = 0; v < path.length; v += 6) for (let k = 0;; k++) {
10723
+ if (k === n) return true;
10724
+ const a = (j + k) % n;
10725
+ const b = (a + 1) % n;
10726
+ if (distSeg(path[v], path[v + 1], s[2 * a], s[2 * a + 1], s[2 * b], s[2 * b + 1]) <= FINE) {
10727
+ j = a;
10728
+ break;
10729
+ }
10491
10730
  }
10492
- /** Starts (or restarts mid-flight) preserving velocity. */
10493
- start() {
10494
- this.x = 0;
10495
- if (this.v > 14) this.v = 14;
10496
- if (this.v < -14) this.v = -14;
10731
+ return false;
10732
+ }
10733
+ /** Samples a normalized region: one Sampled per contour, every one closed,
10734
+ * `hole` read from the winding (outers positive, holes negative). N per
10735
+ * contour: 64, or 128 for every contour of an icon that 64 can't follow
10736
+ * (snowflake tips, spiral turns: the landing would snap). */
10737
+ function resampleRegion(icon, N) {
10738
+ const paths = iconToCubics(icon);
10739
+ const at = (n) => paths.map((path) => {
10740
+ let pts;
10741
+ for (const th of REGION_THRESHOLDS) try {
10742
+ pts = resamplePath({
10743
+ pts: path.pts,
10744
+ closed: true
10745
+ }, n, th);
10746
+ break;
10747
+ } catch {}
10748
+ const s = pts;
10749
+ return {
10750
+ pts: s,
10751
+ closed: true,
10752
+ hole: signedArea(s) < 0
10753
+ };
10754
+ });
10755
+ const s = at(N ?? 64);
10756
+ return N || !paths.some((p, k) => coarse(p.pts, s[k].pts)) ? s : at(128);
10757
+ }
10758
+ function folds(a, b) {
10759
+ const L = a.length;
10760
+ const p = new Float64Array(L);
10761
+ for (let i = 0; i < L; i++) p[i] = (a[i] + b[i]) / 2;
10762
+ for (let i = 0; i < L; i += 2) {
10763
+ const ax = p[i];
10764
+ const ay = p[i + 1];
10765
+ const ux = p[(i + 2) % L] - ax;
10766
+ const uy = p[(i + 3) % L] - ay;
10767
+ for (let j = i + 4; j < L - (i ? 0 : 2); j += 2) {
10768
+ const cx = p[j];
10769
+ const cy = p[j + 1];
10770
+ const vx = p[(j + 2) % L] - cx;
10771
+ const vy = p[(j + 3) % L] - cy;
10772
+ if ((ux * (cy - ay) - uy * (cx - ax)) * (ux * (cy + vy - ay) - uy * (cx + vx - ax)) >= 0) continue;
10773
+ if ((vx * (ay - cy) - vy * (ax - cx)) * (vx * (ay + uy - cy) - vy * (ax + ux - cx)) < 0) return true;
10774
+ }
10497
10775
  }
10498
- /** Advances dt seconds. Returns true on settle (|1−x| < 0.001 ∧ |v| < 0.02). */
10499
- step(dt) {
10500
- const steps = Math.max(1, Math.min(16, Math.ceil(dt / (1 / 240))));
10501
- const s = dt / steps;
10502
- for (let i = 0; i < steps; i++) {
10503
- const a = this.k * (1 - this.x) - this.c * this.v;
10504
- this.v += a * s;
10505
- this.x += this.v * s;
10776
+ return false;
10777
+ }
10778
+ function outerItem(a, b) {
10779
+ const n = a.length / 2;
10780
+ const k = n > 64 ? 2 : 1;
10781
+ const half = (p, o) => k > 1 ? p.filter((_, i) => (i >> 1) % 2 === o) : p;
10782
+ const as = half(a, 0);
10783
+ const ca = centroid(as);
10784
+ const bs = [half(b, 0), half(b, 1)];
10785
+ const cbs = bs.map(centroid);
10786
+ const offs = [];
10787
+ for (let off = 0; off < n; off++) {
10788
+ const j = off % k;
10789
+ const s = procrustes(as, rotatePts(bs[j], (off - j) / k), ca, cbs[j]);
10790
+ offs.push([off, s.res + REGION_LAMBDA * Math.abs(s.theta) / Math.PI]);
10791
+ }
10792
+ offs.sort((x, y) => x[1] - y[1]);
10793
+ let best;
10794
+ for (const [off, score] of offs.slice(0, FOLD_TRIES)) {
10795
+ if (score > offs[0][1] + FOLD_SLACK) break;
10796
+ const it = makeItem(a, rotatePts(b, off), false, false, false, REGION_LAMBDA);
10797
+ it.closed = true;
10798
+ best ??= it;
10799
+ if (!folds(half(it.aC, 0), half(it.bT, 0))) return it;
10800
+ }
10801
+ return best;
10802
+ }
10803
+ function parentOf(hole, subs) {
10804
+ const n = hole.length / 2;
10805
+ let best = -1;
10806
+ let bestArea = Infinity;
10807
+ subs.forEach((s, k) => {
10808
+ if (s.hole) return;
10809
+ let votes = 0;
10810
+ for (const v of [
10811
+ 0,
10812
+ Math.floor(n / 3),
10813
+ Math.floor(2 * n / 3)
10814
+ ]) if (inside(hole[2 * v], hole[2 * v + 1], s.pts)) votes++;
10815
+ if (votes < 2) return;
10816
+ const ar = Math.abs(signedArea(s.pts));
10817
+ if (ar < bestArea) {
10818
+ bestArea = ar;
10819
+ best = k;
10506
10820
  }
10507
- return Math.abs(1 - this.x) < .001 && Math.abs(this.v) < .02;
10821
+ });
10822
+ return best;
10823
+ }
10824
+ function assign(C, skip, one, cover) {
10825
+ const L = C.length;
10826
+ const S = one.length;
10827
+ const f = new Array(L).fill(-1);
10828
+ const mult = new Array(S).fill(0);
10829
+ if ((S + 1) ** L > 1e5) {
10830
+ const pairs = [];
10831
+ for (let i = 0; i < L; i++) for (let j = 0; j < S; j++) if (C[i][j] < Infinity) pairs.push([
10832
+ C[i][j],
10833
+ i,
10834
+ j
10835
+ ]);
10836
+ pairs.sort((x, y) => x[0] - y[0]);
10837
+ for (const [, i, j] of pairs) if (f[i] < 0 && !mult[j]) {
10838
+ f[i] = j;
10839
+ mult[j] = 1;
10840
+ }
10841
+ for (let i = 0; i < L; i++) {
10842
+ if (f[i] >= 0) continue;
10843
+ for (let j = 0; j < S; j++) if (!one[j] && (f[i] < 0 || C[i][j] < C[i][f[i]])) f[i] = j;
10844
+ }
10845
+ return f;
10508
10846
  }
10509
- };
10510
- /** Spring presets (ζ = c/(2√k)) with the API's public names. */
10511
- const SPRING_PRESETS = {
10512
- /** ζ = 1.00 — critically damped, no overshoot. */
10513
- smooth: {
10514
- k: 170,
10515
- c: 26
10516
- },
10517
- /** ζ = 0.73 — fast, subtle overshoot. */
10518
- snappy: {
10519
- k: 420,
10520
- c: 30
10521
- },
10522
- /** ζ = 0.40 — playful. */
10523
- bouncy: {
10524
- k: 300,
10525
- c: 14
10847
+ let best = f.slice();
10848
+ let bc = Infinity;
10849
+ const rec = (i, acc, covered) => {
10850
+ if (acc >= bc || cover && S - covered > L - i) return;
10851
+ if (i === L) {
10852
+ bc = acc;
10853
+ best = f.slice();
10854
+ return;
10855
+ }
10856
+ for (let j = 0; j < S; j++) {
10857
+ if (one[j] && mult[j] || !(C[i][j] < Infinity)) continue;
10858
+ f[i] = j;
10859
+ mult[j]++;
10860
+ rec(i + 1, acc + C[i][j], covered + (mult[j] === 1 ? 1 : 0));
10861
+ mult[j]--;
10862
+ }
10863
+ f[i] = -1;
10864
+ rec(i + 1, acc + skip[i], covered);
10865
+ };
10866
+ rec(0, 0, 0);
10867
+ return best;
10868
+ }
10869
+ function carry(x, y, from, to, theta, s) {
10870
+ const c = Math.cos(theta) * s;
10871
+ const n = Math.sin(theta) * s;
10872
+ const dx = x - from[0];
10873
+ const dy = y - from[1];
10874
+ return [to[0] + dx * c - dy * n, to[1] + dx * n + dy * c];
10875
+ }
10876
+ function dots(c, n) {
10877
+ const d = new Float64Array(2 * n);
10878
+ for (let i = 0; i < 2 * n; i += 2) {
10879
+ d[i] = c[0];
10880
+ d[i + 1] = c[1];
10526
10881
  }
10527
- };
10882
+ return d;
10883
+ }
10884
+ function inFrame(a, b, f, hole, half) {
10885
+ const n = a.length / 2;
10886
+ const s = Math.exp(f.lnSigma);
10887
+ const aC = new Float64Array(2 * n);
10888
+ const bt = new Float64Array(2 * n);
10889
+ let nb = 0;
10890
+ for (let i = 0; i < 2 * n; i += 2) {
10891
+ aC[i] = a[i] - f.ca[0];
10892
+ aC[i + 1] = a[i + 1] - f.ca[1];
10893
+ [bt[i], bt[i + 1]] = carry(b[i], b[i + 1], f.cb, [0, 0], -f.theta, 1 / s);
10894
+ nb += (b[i] - f.cb[0]) ** 2 + (b[i + 1] - f.cb[1]) ** 2;
10895
+ }
10896
+ let off = 0;
10897
+ let be = Infinity;
10898
+ for (let o = 0; o < n && be > 0; o++) {
10899
+ let e = 0;
10900
+ for (let i = 0; i < n && e < be; i++) {
10901
+ const j = (i + o) % n;
10902
+ e += (aC[2 * i] - bt[2 * j]) ** 2 + (aC[2 * i + 1] - bt[2 * j + 1]) ** 2;
10903
+ }
10904
+ if (e < be) {
10905
+ be = e;
10906
+ off = o;
10907
+ }
10908
+ }
10909
+ return {
10910
+ a,
10911
+ aC,
10912
+ bT: rotatePts(bt, off),
10913
+ bO: rotatePts(b, off),
10914
+ ca: f.ca,
10915
+ cb: f.cb,
10916
+ theta: f.theta,
10917
+ lnSigma: f.lnSigma,
10918
+ res: nb > 1e-12 ? Math.sqrt(s * s * be / nb) : 0,
10919
+ closed: true,
10920
+ hole,
10921
+ half,
10922
+ block: f.block
10923
+ };
10924
+ }
10925
+ function vanishingHole(pts, outer, grow) {
10926
+ const s = Math.exp(outer.lnSigma);
10927
+ let [x, y] = centroid(pts);
10928
+ const { aC, bT } = outer;
10929
+ const near = grow ? outer.bO : outer.a;
10930
+ let w = 0;
10931
+ let dx = 0;
10932
+ let dy = 0;
10933
+ for (let i = 0; i < aC.length; i += 2) {
10934
+ const k = 1 / ((near[i] - x) ** 2 + (near[i + 1] - y) ** 2 + 1e-9);
10935
+ w += k;
10936
+ dx += k * (bT[i] - aC[i]);
10937
+ dy += k * (bT[i + 1] - aC[i + 1]);
10938
+ }
10939
+ w = (grow ? -.5 : .5) / w;
10940
+ if (grow) [x, y] = carry(x, y, outer.cb, outer.ca, -outer.theta, 1 / s);
10941
+ x += w * dx;
10942
+ y += w * dy;
10943
+ const dot = dots(grow ? [x, y] : carry(x, y, outer.ca, outer.cb, outer.theta, s), pts.length / 2);
10944
+ return grow ? inFrame(dot, pts, outer, true, 1) : inFrame(pts, dot, outer, true, 0);
10945
+ }
10946
+ function strays(h, o, holes) {
10947
+ let k = 0;
10948
+ for (const t of [
10949
+ .25,
10950
+ .5,
10951
+ .75
10952
+ ]) {
10953
+ if (!(weight(h, t) % 1)) continue;
10954
+ const [H, O, ...G] = [
10955
+ h,
10956
+ o,
10957
+ ...holes.filter((g) => g !== h)
10958
+ ].map((it) => it.aC.map((v, i) => v + weight(it, t) * (it.bT[i] - v)));
10959
+ for (let i = 0; i < H.length; i += 2) if (!inside(H[i], H[i + 1], O) || G.some((p) => inside(H[i], H[i + 1], p))) k++;
10960
+ }
10961
+ return k;
10962
+ }
10963
+ function vanishingPiece(outer, holes, grow) {
10964
+ const c = centroid(outer);
10965
+ const f = {
10966
+ ca: c,
10967
+ cb: c,
10968
+ theta: 0,
10969
+ lnSigma: 0,
10970
+ block: null
10971
+ };
10972
+ const dot = dots(c, outer.length / 2);
10973
+ return [outer, ...holes].map((p, k) => grow ? inFrame(dot, p, f, k > 0) : inFrame(p, dot, f, k > 0));
10974
+ }
10975
+ function bbox(p) {
10976
+ const b = [
10977
+ p[0],
10978
+ p[1],
10979
+ p[0],
10980
+ p[1]
10981
+ ];
10982
+ for (let i = 2; i < p.length; i += 2) {
10983
+ b[0] = Math.min(b[0], p[i]);
10984
+ b[1] = Math.min(b[1], p[i + 1]);
10985
+ b[2] = Math.max(b[2], p[i]);
10986
+ b[3] = Math.max(b[3], p[i + 1]);
10987
+ }
10988
+ return b;
10989
+ }
10990
+ function holeCosts(HA, HB, outer) {
10991
+ const s = Math.exp(outer.lnSigma);
10992
+ const C = costMatrix(HA, HB);
10993
+ const inA = HB.map((h) => {
10994
+ const q = new Float64Array(h.length);
10995
+ for (let i = 0; i < h.length; i += 2) [q[i], q[i + 1]] = carry(h[i], h[i + 1], outer.cb, outer.ca, -outer.theta, 1 / s);
10996
+ return bbox(q);
10997
+ });
10998
+ HA.forEach((h, i) => {
10999
+ const a = bbox(h);
11000
+ inA.forEach((b, j) => {
11001
+ const w = Math.min(a[2], b[2]) - Math.max(a[0], b[0]);
11002
+ const v = Math.min(a[3], b[3]) - Math.max(a[1], b[1]);
11003
+ const inter = w > 0 && v > 0 ? w * v : 0;
11004
+ const union = (a[2] - a[0]) * (a[3] - a[1]) + (b[2] - b[0]) * (b[3] - b[1]) - inter;
11005
+ if (!(inter >= HOLE_IOU * union)) C[i][j] = Infinity;
11006
+ });
11007
+ });
11008
+ return C;
11009
+ }
11010
+ function piecesOf(subs) {
11011
+ const idx = [];
11012
+ subs.forEach((s, k) => {
11013
+ if (!s.hole) idx.push(k);
11014
+ });
11015
+ const holes = idx.map(() => []);
11016
+ subs.forEach((s) => {
11017
+ if (!s.hole) return;
11018
+ let k = idx.indexOf(parentOf(s.pts, subs));
11019
+ if (k < 0) {
11020
+ const [hx, hy] = centroid(s.pts);
11021
+ let bd = Infinity;
11022
+ idx.forEach((o, m) => {
11023
+ const [ox, oy] = centroid(subs[o].pts);
11024
+ const d = Math.hypot(ox - hx, oy - hy);
11025
+ if (d < bd) {
11026
+ bd = d;
11027
+ k = m;
11028
+ }
11029
+ });
11030
+ }
11031
+ holes[k].push(s.pts);
11032
+ });
11033
+ return {
11034
+ outers: idx.map((k) => subs[k].pts),
11035
+ holes
11036
+ };
11037
+ }
11038
+ function doubled(p) {
11039
+ const m = p.length;
11040
+ const q = new Float64Array(2 * m);
11041
+ for (let i = 0; i < m; i += 2) {
11042
+ const j = (i + 2) % m;
11043
+ q[2 * i] = p[i];
11044
+ q[2 * i + 1] = p[i + 1];
11045
+ q[2 * i + 2] = (p[i] + p[j]) / 2;
11046
+ q[2 * i + 3] = (p[i + 1] + p[j + 1]) / 2;
11047
+ }
11048
+ return q;
11049
+ }
11050
+ /** Region plan: outers ↔ outers (holed contours never duplicated), holes ↔
11051
+ * overlapping holes of the paired outer, direction locked; whatever has no
11052
+ * partner collapses/grows without ever breaking the nesting (rules above).
11053
+ * Every item flies closed. */
11054
+ function buildRegionPlan(srcSubs, dstSubs) {
11055
+ const n = Math.max(srcSubs[0].pts.length, dstSubs[0].pts.length) / 2;
11056
+ const fit = (s) => s[0].pts.length / 2 < n ? s.map((c) => ({
11057
+ ...c,
11058
+ pts: doubled(c.pts)
11059
+ })) : s;
11060
+ const A = piecesOf(fit(srcSubs));
11061
+ const B = piecesOf(fit(dstSubs));
11062
+ if (A.outers.length === 0 || B.outers.length === 0) throw new Error("morphicons: region has no outer contour");
11063
+ let pairs;
11064
+ const p = A.outers.length;
11065
+ const q = B.outers.length;
11066
+ const [large, small] = p < q ? [B, A] : [A, B];
11067
+ if (p === q || small.holes.every((h) => h.length === 0)) pairs = pairUp(A.outers, B.outers);
11068
+ else pairs = assign(costMatrix(large.outers, small.outers), large.outers.map((o) => SKIP + vanishCost(o)), small.holes.map((h) => h.length > 0), true).map((s, l) => p < q ? [s, l] : [l, s]);
11069
+ const items = [];
11070
+ let partial = false;
11071
+ for (const [i, j] of pairs) {
11072
+ if (i < 0 || j < 0) {
11073
+ partial = true;
11074
+ items.push(...i < 0 ? vanishingPiece(B.outers[j], B.holes[j], true) : vanishingPiece(A.outers[i], A.holes[i], false));
11075
+ continue;
11076
+ }
11077
+ const it = outerItem(A.outers[i], B.outers[j]);
11078
+ it.hole = false;
11079
+ items.push(it);
11080
+ const HA = A.holes[i];
11081
+ const HB = B.holes[j];
11082
+ const f = assign(holeCosts(HA, HB, it), HA.map(() => SKIP), HB.map(() => true), false);
11083
+ const holes = HA.map((h, k) => f[k] < 0 ? vanishingHole(h, it, false) : inFrame(h, HB[f[k]], it, true));
11084
+ HB.forEach((h, k) => {
11085
+ if (!f.includes(k)) holes.push(vanishingHole(h, it, true));
11086
+ });
11087
+ for (let k = 0; k < holes.length; k++) {
11088
+ const h = holes[k];
11089
+ if (h.half !== void 0) {
11090
+ partial = true;
11091
+ continue;
11092
+ }
11093
+ const c = strays(h, it, holes);
11094
+ if (!c) continue;
11095
+ holes.splice(k, 1, vanishingHole(h.a, it, false), vanishingHole(h.bO, it, true));
11096
+ if (strays(holes[k], it, holes) + strays(holes[k + 1], it, holes) >= c) holes.splice(k, 2, h);
11097
+ }
11098
+ items.push(...holes);
11099
+ }
11100
+ if (items.length > 1 && !partial) applyGlobal(items, n);
11101
+ return {
11102
+ items,
11103
+ n
11104
+ };
11105
+ }
11106
+ function flatten(input, tol) {
11107
+ const lines = [];
11108
+ const closed = [];
11109
+ for (const { pts, closed: c } of iconToCubics(input)) {
11110
+ const out = [pts[0], pts[1]];
11111
+ for (let i = 0; i + 7 < pts.length; i += 6) {
11112
+ const x0 = pts[i];
11113
+ const y0 = pts[i + 1];
11114
+ const x1 = pts[i + 2];
11115
+ const y1 = pts[i + 3];
11116
+ const x2 = pts[i + 4];
11117
+ const y2 = pts[i + 5];
11118
+ const x3 = pts[i + 6];
11119
+ const y3 = pts[i + 7];
11120
+ const dd = Math.max(Math.hypot(x0 - 2 * x1 + x2, y0 - 2 * y1 + y2), Math.hypot(x1 - 2 * x2 + x3, y1 - 2 * y2 + y3));
11121
+ const k = Math.min(128, Math.max(1, Math.ceil(Math.sqrt(6 * dd / (8 * tol)))));
11122
+ for (let s = 1; s <= k; s++) {
11123
+ const t = s / k;
11124
+ const u = 1 - t;
11125
+ out.push(u * u * u * x0 + 3 * u * u * t * x1 + 3 * u * t * t * x2 + t * t * t * x3, u * u * u * y0 + 3 * u * u * t * y1 + 3 * u * t * t * y2 + t * t * t * y3);
11126
+ }
11127
+ }
11128
+ lines.push(Float64Array.from(out));
11129
+ closed.push(c);
11130
+ }
11131
+ return {
11132
+ lines,
11133
+ closed
11134
+ };
11135
+ }
11136
+ function partsOf(input, width, tol) {
11137
+ if (typeof input === "string") return [{
11138
+ ...flatten(input, tol),
11139
+ half: width / 2,
11140
+ fill: 0
11141
+ }];
11142
+ const fillIcon = paintOf(input) === "fill";
11143
+ const parts = [];
11144
+ for (const el of input) {
11145
+ const a = el[1];
11146
+ if (translucent(a)) continue;
11147
+ const strokeOn = fillIcon ? painted(a.stroke) : a.stroke === void 0 || painted(a.stroke);
11148
+ const fillOn = fillIcon && (painted(a.fill) || a.fill === void 0 && !strokeOn);
11149
+ if (!strokeOn && !fillOn) continue;
11150
+ parts.push({
11151
+ ...flatten([el], tol),
11152
+ half: strokeOn ? num(a["stroke-width"], width) / 2 : 0,
11153
+ fill: fillOn ? String(a["fill-rule"] ?? "").trim() === "evenodd" ? 2 : 1 : 0
11154
+ });
11155
+ }
11156
+ return parts;
11157
+ }
11158
+ function eachNear(g, ax, ay, bx, by, r, fn) {
11159
+ const i0 = Math.max(0, Math.floor((Math.min(ax, bx) - r - g.x0) / g.h));
11160
+ const i1 = Math.min(g.nx - 1, Math.ceil((Math.max(ax, bx) + r - g.x0) / g.h));
11161
+ const j0 = Math.max(0, Math.floor((Math.min(ay, by) - r - g.y0) / g.h));
11162
+ const j1 = Math.min(g.ny - 1, Math.ceil((Math.max(ay, by) + r - g.y0) / g.h));
11163
+ for (let j = j0; j <= j1; j++) {
11164
+ const y = g.y0 + j * g.h;
11165
+ for (let i = i0; i <= i1; i++) fn(j * g.nx + i, g.x0 + i * g.h, y);
11166
+ }
11167
+ }
11168
+ function eachSeg(p, close, fn) {
11169
+ const n = p.length / 2;
11170
+ if (n === 1) fn(p[0], p[1], p[0], p[1]);
11171
+ for (let i = 0; i + 1 < n; i++) fn(p[2 * i], p[2 * i + 1], p[2 * i + 2], p[2 * i + 3]);
11172
+ if (close && n > 2) fn(p[2 * n - 2], p[2 * n - 1], p[0], p[1]);
11173
+ }
11174
+ function field(parts, g) {
11175
+ const F = new Float32Array(g.nx * g.ny).fill(BIG);
11176
+ const band = 2 * g.h;
11177
+ let D = null;
11178
+ for (const part of parts) {
11179
+ if (part.half > 0) {
11180
+ const r = part.half + band;
11181
+ part.lines.forEach((p, li) => {
11182
+ eachSeg(p, part.closed[li], (ax, ay, bx, by) => eachNear(g, ax, ay, bx, by, r, (k, x, y) => {
11183
+ const d = distSeg(x, y, ax, ay, bx, by) - part.half;
11184
+ if (d < F[k]) F[k] = d;
11185
+ }));
11186
+ });
11187
+ }
11188
+ if (part.fill) {
11189
+ D ??= new Float32Array(g.nx * g.ny);
11190
+ const Dm = D;
11191
+ Dm.fill(BIG);
11192
+ for (const p of part.lines) eachSeg(p, true, (ax, ay, bx, by) => eachNear(g, ax, ay, bx, by, band, (k, x, y) => {
11193
+ const d = distSeg(x, y, ax, ay, bx, by);
11194
+ if (d < Dm[k]) Dm[k] = d;
11195
+ }));
11196
+ const xs = [];
11197
+ const ws = [];
11198
+ for (let j = 0; j < g.ny; j++) {
11199
+ const y = g.y0 + j * g.h;
11200
+ const cross = [];
11201
+ for (const p of part.lines) eachSeg(p, true, (ax, ay, bx, by) => {
11202
+ if (ay <= y !== by <= y) cross.push([ax + (y - ay) * (bx - ax) / (by - ay), by > ay ? 1 : -1]);
11203
+ });
11204
+ cross.sort((u, v) => u[0] - v[0]);
11205
+ xs.length = 0;
11206
+ ws.length = 0;
11207
+ for (const [x, w] of cross) {
11208
+ xs.push(x);
11209
+ ws.push(w);
11210
+ }
11211
+ let c = 0;
11212
+ let wind = 0;
11213
+ for (let i = 0; i < g.nx; i++) {
11214
+ const x = g.x0 + i * g.h;
11215
+ while (c < xs.length && xs[c] < x) wind += ws[c++];
11216
+ const isIn = part.fill === 1 ? wind !== 0 : (wind & 1) === 1;
11217
+ const k = j * g.nx + i;
11218
+ const v = isIn ? -Dm[k] : Dm[k];
11219
+ if (v < F[k]) F[k] = v;
11220
+ }
11221
+ }
11222
+ }
11223
+ }
11224
+ return F;
11225
+ }
11226
+ function trace(F, g) {
11227
+ const { nx, ny, h, x0, y0 } = g;
11228
+ const pt = /* @__PURE__ */ new Map();
11229
+ const crossing = (key) => {
11230
+ if (pt.has(key)) return key;
11231
+ const node = key >> 1;
11232
+ const i = node % nx;
11233
+ const j = (node - i) / nx;
11234
+ const other = key & 1 ? node + nx : node + 1;
11235
+ const fa = F[node];
11236
+ const t = Math.min(Math.max(fa / (fa - F[other]), 1e-5), .99999);
11237
+ pt.set(key, key & 1 ? [x0 + i * h, y0 + (j + t) * h] : [x0 + (i + t) * h, y0 + j * h]);
11238
+ return key;
11239
+ };
11240
+ const adj = /* @__PURE__ */ new Map();
11241
+ const link = (a, b) => {
11242
+ const ka = crossing(a);
11243
+ const kb = crossing(b);
11244
+ const la = adj.get(ka);
11245
+ if (la) la.push(kb);
11246
+ else adj.set(ka, [kb]);
11247
+ const lb = adj.get(kb);
11248
+ if (lb) lb.push(ka);
11249
+ else adj.set(kb, [ka]);
11250
+ };
11251
+ for (let j = 0; j + 1 < ny; j++) for (let i = 0; i + 1 < nx; i++) {
11252
+ const a = j * nx + i;
11253
+ const b = a + 1;
11254
+ const c = a + nx + 1;
11255
+ const d = a + nx;
11256
+ const ia = F[a] < 0;
11257
+ const ib = F[b] < 0;
11258
+ const ic = F[c] < 0;
11259
+ const id = F[d] < 0;
11260
+ const top = 2 * a;
11261
+ const right = 2 * b + 1;
11262
+ const bottom = 2 * d;
11263
+ const left = 2 * a + 1;
11264
+ const edges = [];
11265
+ if (ia !== ib) edges.push(top);
11266
+ if (ib !== ic) edges.push(right);
11267
+ if (id !== ic) edges.push(bottom);
11268
+ if (ia !== id) edges.push(left);
11269
+ if (edges.length === 2) link(edges[0], edges[1]);
11270
+ else if (edges.length === 4) {
11271
+ if ((F[a] + F[b] + F[c] + F[d]) / 4 < 0 === ia) {
11272
+ link(top, right);
11273
+ link(bottom, left);
11274
+ } else {
11275
+ link(left, top);
11276
+ link(right, bottom);
11277
+ }
11278
+ }
11279
+ }
11280
+ const loops = [];
11281
+ const seen = /* @__PURE__ */ new Set();
11282
+ for (const start of adj.keys()) {
11283
+ if (seen.has(start)) continue;
11284
+ const ring = [];
11285
+ let prev = -1;
11286
+ let cur = start;
11287
+ while (!seen.has(cur)) {
11288
+ seen.add(cur);
11289
+ const p = pt.get(cur);
11290
+ ring.push(p[0], p[1]);
11291
+ const nb = adj.get(cur);
11292
+ const next = nb[0] !== prev ? nb[0] : nb[1];
11293
+ prev = cur;
11294
+ cur = next;
11295
+ }
11296
+ if (ring.length >= 6) loops.push(Float64Array.from(ring));
11297
+ }
11298
+ return loops;
11299
+ }
11300
+ function rdp(p, i0, i1, tol, keep) {
11301
+ const n = p.length / 2;
11302
+ const ax = p[2 * (i0 % n)];
11303
+ const ay = p[2 * (i0 % n) + 1];
11304
+ const bx = p[2 * (i1 % n)];
11305
+ const by = p[2 * (i1 % n) + 1];
11306
+ let worst = -1;
11307
+ let wd = tol;
11308
+ for (let i = i0 + 1; i < i1; i++) {
11309
+ const d = distSeg(p[2 * (i % n)], p[2 * (i % n) + 1], ax, ay, bx, by);
11310
+ if (d > wd) {
11311
+ wd = d;
11312
+ worst = i;
11313
+ }
11314
+ }
11315
+ if (worst < 0) return;
11316
+ keep[worst % n] = 1;
11317
+ rdp(p, i0, worst, tol, keep);
11318
+ rdp(p, worst, i1, tol, keep);
11319
+ }
11320
+ function simplify(p, tol) {
11321
+ const n = p.length / 2;
11322
+ if (n < 4) return p;
11323
+ let far = 0;
11324
+ let fd = -1;
11325
+ for (let i = 1; i < n; i++) {
11326
+ const d = Math.hypot(p[2 * i] - p[0], p[2 * i + 1] - p[1]);
11327
+ if (d > fd) {
11328
+ fd = d;
11329
+ far = i;
11330
+ }
11331
+ }
11332
+ const keep = new Uint8Array(n);
11333
+ keep[0] = 1;
11334
+ keep[far] = 1;
11335
+ rdp(p, 0, far, tol, keep);
11336
+ rdp(p, far, n, tol, keep);
11337
+ const out = [];
11338
+ for (let i = 0; i < n; i++) if (keep[i]) out.push(p[2 * i], p[2 * i + 1]);
11339
+ return Float64Array.from(out);
11340
+ }
11341
+ function recoverCorners(p, h) {
11342
+ const n = p.length / 2;
11343
+ if (n < 4) return p;
11344
+ const len = (k) => {
11345
+ const a = k % n;
11346
+ const b = (k + 1) % n;
11347
+ return Math.hypot(p[2 * b] - p[2 * a], p[2 * b + 1] - p[2 * a + 1]);
11348
+ };
11349
+ const long = [];
11350
+ for (let k = 0; k < n; k++) if (len(k) >= 2.5 * h) long.push(k);
11351
+ if (long.length < 2) return p;
11352
+ const drop = new Uint8Array(n);
11353
+ const moved = /* @__PURE__ */ new Map();
11354
+ for (let q = 0; q < long.length; q++) {
11355
+ const k1 = long[q];
11356
+ const k2 = long[(q + 1) % long.length];
11357
+ const gap = (k2 - k1 - 1 + n) % n;
11358
+ if (gap < 1 || gap > 3) continue;
11359
+ let gl = 0;
11360
+ for (let s = 1; s <= gap; s++) gl += len(k1 + s);
11361
+ if (gl > 3 * h) continue;
11362
+ const a0 = k1 % n;
11363
+ const a1 = (k1 + 1) % n;
11364
+ const b0 = k2 % n;
11365
+ const b1 = (k2 + 1) % n;
11366
+ const d1x = p[2 * a1] - p[2 * a0];
11367
+ const d1y = p[2 * a1 + 1] - p[2 * a0 + 1];
11368
+ const d2x = p[2 * b1] - p[2 * b0];
11369
+ const d2y = p[2 * b1 + 1] - p[2 * b0 + 1];
11370
+ const cr = d1x * d2y - d1y * d2x;
11371
+ if (Math.abs(Math.atan2(cr, d1x * d2x + d1y * d2y)) < Math.PI / 12) continue;
11372
+ const t = ((p[2 * b0] - p[2 * a0]) * d2y - (p[2 * b0 + 1] - p[2 * a0 + 1]) * d2x) / cr;
11373
+ const X = [p[2 * a0] + t * d1x, p[2 * a0 + 1] + t * d1y];
11374
+ const mx = (p[2 * a1] + p[2 * b0]) / 2;
11375
+ const my = (p[2 * a1 + 1] + p[2 * b0 + 1]) / 2;
11376
+ if (Math.hypot(X[0] - mx, X[1] - my) > 2 * h) continue;
11377
+ moved.set(a1, X);
11378
+ for (let s = 2; s <= gap + 1; s++) drop[(k1 + s) % n] = 1;
11379
+ }
11380
+ if (moved.size === 0) return p;
11381
+ const out = [];
11382
+ for (let i = 0; i < n; i++) {
11383
+ if (drop[i]) continue;
11384
+ const m = moved.get(i);
11385
+ if (m) out.push(m[0], m[1]);
11386
+ else out.push(p[2 * i], p[2 * i + 1]);
11387
+ }
11388
+ return Float64Array.from(out);
11389
+ }
11390
+ /** Contours of the visible surface: closed, non-overlapping, outers
11391
+ * positive / holes negative (nesting depth decides which is which). */
11392
+ function regionContours(input, options) {
11393
+ const h = options?.cell ?? .125;
11394
+ const parts = partsOf(input, options?.strokeWidth ?? 2, .004);
11395
+ let minX = Number.POSITIVE_INFINITY;
11396
+ let minY = Number.POSITIVE_INFINITY;
11397
+ let maxX = Number.NEGATIVE_INFINITY;
11398
+ let maxY = Number.NEGATIVE_INFINITY;
11399
+ let pad = 0;
11400
+ for (const part of parts) {
11401
+ pad = Math.max(pad, part.half);
11402
+ for (const p of part.lines) for (let i = 0; i < p.length; i += 2) {
11403
+ minX = Math.min(minX, p[i]);
11404
+ maxX = Math.max(maxX, p[i]);
11405
+ minY = Math.min(minY, p[i + 1]);
11406
+ maxY = Math.max(maxY, p[i + 1]);
11407
+ }
11408
+ }
11409
+ if (!(maxX >= minX)) return [];
11410
+ pad += 3 * h;
11411
+ const g = {
11412
+ x0: minX - pad,
11413
+ y0: minY - pad,
11414
+ h,
11415
+ nx: Math.ceil((maxX - minX + 2 * pad) / h) + 1,
11416
+ ny: Math.ceil((maxY - minY + 2 * pad) / h) + 1
11417
+ };
11418
+ const loops = trace(field(parts, g), g).filter((l) => Math.abs(signedArea(l)) > .01);
11419
+ return loops.map((l) => {
11420
+ let depth = 0;
11421
+ for (const o of loops) if (o !== l && inside(l[0], l[1], o)) depth++;
11422
+ const hole = depth % 2 === 1;
11423
+ return recoverCorners(simplify(signedArea(l) > 0 === !hole ? l : reversePts(l), h * .08), h);
11424
+ });
11425
+ }
11426
+ /** Any icon → its canonical region: one `<path>` (nonzero) whose contours
11427
+ * are the visible surface. Idempotent on regions. Stroke icons outline at
11428
+ * `strokeWidth` (round caps and joins — Lucide, Tabler, Feather,
11429
+ * Heroicons outline); fill icons honor each element's fill rule. */
11430
+ function toRegion(input, options) {
11431
+ if (isRegion(input)) return input;
11432
+ let d = "";
11433
+ for (const p of regionContours(input, options)) {
11434
+ d += `M${fmt(p[0])} ${fmt(p[1])}`;
11435
+ for (let i = 2; i < p.length; i += 2) d += `L${fmt(p[i])} ${fmt(p[i + 1])}`;
11436
+ d += "Z";
11437
+ }
11438
+ if (!d) throw new Error("morphicons: icon has no visible surface");
11439
+ return [["path", {
11440
+ d,
11441
+ fill: "currentColor",
11442
+ stroke: "none",
11443
+ "fill-rule": "nonzero",
11444
+ [REGION_ATTR]: "1"
11445
+ }]];
11446
+ }
11447
+ /** The region the driver draws for an icon (cached): a stroke icon
11448
+ * outlined at the element's stroke width, a fill icon as is. */
11449
+ function regionOf(icon, strokeWidth) {
11450
+ if (isRegion(icon)) return icon;
11451
+ const width = paintOf(icon) === "fill" && !icon.some(([, a]) => painted(a.stroke) && a["stroke-width"] === void 0) ? 0 : strokeWidth;
11452
+ let byWidth = typeof icon === "string" ? void 0 : forms.get(icon);
11453
+ let r = byWidth?.get(width);
11454
+ if (r) return r;
11455
+ const key = `${width}|${typeof icon === "string" ? icon : JSON.stringify(icon)}`;
11456
+ r = byContent.get(key);
11457
+ if (r) byContent.delete(key);
11458
+ else r = toRegion(icon, { strokeWidth });
11459
+ byContent.set(key, r);
11460
+ if (byContent.size > 64) byContent.delete(byContent.keys().next().value);
11461
+ if (typeof icon !== "string") {
11462
+ if (!byWidth) {
11463
+ byWidth = /* @__PURE__ */ new Map();
11464
+ forms.set(icon, byWidth);
11465
+ }
11466
+ byWidth.set(width, r);
11467
+ }
11468
+ return r;
11469
+ }
11470
+ function sampledOf$1(region) {
11471
+ let s = samples$1.get(region);
11472
+ if (!s) {
11473
+ s = resampleRegion(region);
11474
+ samples$1.set(region, s);
11475
+ }
11476
+ return s;
11477
+ }
11478
+ /** Region plan from `src` at rest to `dst` (cached by reference). */
11479
+ function regionPlan(src, dst, strokeWidth) {
11480
+ const a = regionOf(src, strokeWidth);
11481
+ const b = regionOf(dst, strokeWidth);
11482
+ let inner = plans$1.get(a);
11483
+ if (!inner) {
11484
+ inner = /* @__PURE__ */ new WeakMap();
11485
+ plans$1.set(a, inner);
11486
+ }
11487
+ let p = inner.get(b);
11488
+ if (!p) {
11489
+ p = buildRegionPlan(sampledOf$1(a), sampledOf$1(b));
11490
+ inner.set(b, p);
11491
+ }
11492
+ return p;
11493
+ }
11494
+ /** Region plan from the shape in flight to `dst` (never cached): region
11495
+ * samples as they are, or a centerline `d` (a stroke morph interrupted
11496
+ * toward a fill icon), outlined as it is. */
11497
+ function regionPlanFrom(shape, dst, strokeWidth) {
11498
+ return buildRegionPlan(typeof shape === "string" ? resampleRegion(regionOf(shape, strokeWidth)) : shape, sampledOf$1(regionOf(dst, strokeWidth)));
11499
+ }
11500
+ var REGION_THRESHOLDS, FINE, REGION_LAMBDA, FOLD_SLACK, FOLD_TRIES, SKIP, weight, vanishCost, HOLE_IOU, BIG, painted, num, fmt, forms, byContent, samples$1, plans$1;
11501
+ var init_region = __esmMin((() => {
11502
+ init_normalize_CYnN3Npw();
11503
+ init_resample_CXlaZ5ZQ();
11504
+ init_region_BjECuWZR();
11505
+ REGION_THRESHOLDS = [
11506
+ Math.PI / 4,
11507
+ Math.PI / 3,
11508
+ Math.PI / 2,
11509
+ Math.PI
11510
+ ];
11511
+ FINE = .3;
11512
+ REGION_LAMBDA = .3;
11513
+ FOLD_SLACK = .1;
11514
+ FOLD_TRIES = 16;
11515
+ SKIP = 1e6;
11516
+ weight = (it, t) => Math.min(1, Math.max(0, 2 * t - (it.half ?? t)));
11517
+ vanishCost = (pts) => costMatrix([pts], [dots(centroid(pts), pts.length / 2)])[0][0];
11518
+ HOLE_IOU = .25;
11519
+ BIG = 1e9;
11520
+ painted = (v) => v !== void 0 && String(v).trim().toLowerCase() !== "none";
11521
+ num = (v, fallback) => {
11522
+ const x = typeof v === "number" ? v : Number.parseFloat(String(v ?? ""));
11523
+ return Number.isFinite(x) ? x : fallback;
11524
+ };
11525
+ fmt = (v) => String(Math.round(v * 1e3) / 1e3);
11526
+ forms = /* @__PURE__ */ new WeakMap();
11527
+ byContent = /* @__PURE__ */ new Map();
11528
+ samples$1 = /* @__PURE__ */ new WeakMap();
11529
+ plans$1 = /* @__PURE__ */ new WeakMap();
11530
+ globalThis[Symbol.for("morphicons.region")] = {
11531
+ regionOf,
11532
+ regionPlan,
11533
+ regionPlanFrom
11534
+ };
11535
+ }));
10528
11536
  // node_modules/morphicons/dist/dom.js
11537
+ init_normalize_CYnN3Npw();
11538
+ init_resample_CXlaZ5ZQ();
11539
+ init_region_BjECuWZR();
10529
11540
  const tickers = /* @__PURE__ */ new Set();
10530
11541
  let rafId = 0;
10531
11542
  let last = -1;
@@ -10557,11 +11568,33 @@ function removeTicker(tick) {
10557
11568
  const samples = /* @__PURE__ */ new WeakMap();
10558
11569
  const canon = /* @__PURE__ */ new WeakMap();
10559
11570
  const plans = /* @__PURE__ */ new WeakMap();
11571
+ function cubicsOf(icon) {
11572
+ if (typeof icon === "string" || paintOf(icon) === "stroke") return iconToCubics(icon);
11573
+ return solid(icon).flatMap((el) => {
11574
+ const ps = iconToCubics([el]);
11575
+ const odd = String(el[1]["fill-rule"]).trim() === "evenodd";
11576
+ let sum = 0;
11577
+ for (const p of ps) sum += signedArea(p.pts);
11578
+ for (const p of ps) {
11579
+ let flip = sum < 0;
11580
+ if (odd) {
11581
+ let pos = true;
11582
+ for (const o of ps) if (o !== p && inside(p.pts[0], p.pts[1], o.pts)) pos = !pos;
11583
+ flip = signedArea(p.pts) > 0 !== pos;
11584
+ }
11585
+ if (flip) p.pts = reversePts(p.pts);
11586
+ }
11587
+ return ps;
11588
+ });
11589
+ }
10560
11590
  function sampledOf(icon) {
10561
11591
  if (typeof icon === "string") return resampleIcon(icon);
10562
11592
  let s = samples.get(icon);
10563
11593
  if (!s) {
10564
- s = resampleIcon(icon);
11594
+ s = cubicsOf(icon).map((p) => ({
11595
+ pts: resamplePath(p, 64),
11596
+ closed: p.closed
11597
+ }));
10565
11598
  samples.set(icon, s);
10566
11599
  }
10567
11600
  return s;
@@ -10569,12 +11602,13 @@ function sampledOf(icon) {
10569
11602
  /** Canonical `d` of an icon: the input string verbatim, or the real cubics
10570
11603
  * quantized to 4 decimals (the at-rest snap; engine-stable bytes so SSR
10571
11604
  * hydration matches, see fmtCanon in core/serialize). Exported because it
10572
- * is what a binding renders at SSR/rest before any runtime exists. */
11605
+ * is what a binding renders at SSR/rest before any runtime exists. A fill
11606
+ * icon's translucent duotone layer is left out (one path can't paint it). */
10573
11607
  function canonicalD(icon) {
10574
11608
  if (typeof icon === "string") return icon;
10575
11609
  let d = canon.get(icon);
10576
11610
  if (!d) {
10577
- d = cubicsToPathD(iconToCubics(icon));
11611
+ d = cubicsToPathD(cubicsOf(icon));
10578
11612
  canon.set(icon, d);
10579
11613
  }
10580
11614
  return d;
@@ -10593,6 +11627,123 @@ function planBetween(src, dst) {
10593
11627
  }
10594
11628
  return p;
10595
11629
  }
11630
+ let regionMod = null;
11631
+ let regionLoading = null;
11632
+ let regionSince = 0;
11633
+ let regionFailed = false;
11634
+ let regionUrl;
11635
+ let regionLoader = () => Promise.resolve().then(() => (init_region(), region_exports));
11636
+ const reload = (url) => new Promise((ok, ko) => {
11637
+ const s = document.createElement("script");
11638
+ s.type = "module";
11639
+ s.onload = s.onerror = () => {
11640
+ s.remove();
11641
+ const m = globalThis[Symbol.for("morphicons.region")];
11642
+ m ? ok(m) : ko(new Error(url));
11643
+ };
11644
+ s.src = `${url}#${Date.now()}`;
11645
+ document.head.append(s);
11646
+ });
11647
+ const fromSource = () => {
11648
+ const spec = /import\(\s*["'`]([^"'`]+)/.exec(String(regionLoader))?.[1];
11649
+ const here = /\w+:\/\/[^\s)]+?(?=:\d+:\d+)/.exec(String((/* @__PURE__ */ new Error()).stack))?.[0];
11650
+ try {
11651
+ return spec && new URL(spec, here).href;
11652
+ } catch {}
11653
+ };
11654
+ /** Starts (or joins) loading the region normalizer. Call it early — on
11655
+ * idle, on hover — to keep the first stroke↔fill morph off the network. */
11656
+ function preloadRegion() {
11657
+ if (regionMod) return Promise.resolve(regionMod);
11658
+ if (!regionLoading) {
11659
+ regionSince = Date.now();
11660
+ const url = regionUrl;
11661
+ regionLoading = regionLoader().catch((e) => url ? reload(url) : Promise.reject(e)).then((m) => {
11662
+ regionMod = m;
11663
+ return m;
11664
+ }, (e) => {
11665
+ regionLoading = null;
11666
+ regionFailed = true;
11667
+ regionUrl ??= /dynamically imported module:?\s*(\S+)/i.exec(String(e?.message))?.[1] ?? fromSource();
11668
+ throw e;
11669
+ });
11670
+ }
11671
+ return regionLoading;
11672
+ }
11673
+ const quietPreload = () => new Promise((ok, ko) => {
11674
+ if (typeof navigator === "undefined" ? false : navigator.connection?.saveData) return;
11675
+ const go = () => {
11676
+ regionFailed ? ko() : preloadRegion().then(ok, ko);
11677
+ };
11678
+ typeof requestIdleCallback === "function" ? requestIdleCallback(go, { timeout: 2e3 }) : setTimeout(go, 200);
11679
+ });
11680
+ /** How long a morph waits for the region chunk before flying the fallback
11681
+ * (RAIL's 100 ms response budget). A slow, failed or hanging load never
11682
+ * leaves the icon stuck on the old shape; the load goes on in the
11683
+ * background and the next morph flies. A load already older than the
11684
+ * budget isn't waited for again. */
11685
+ const REGION_WAIT_MS = 100;
11686
+ const paintAttrs = (p) => p === "stroke" ? {
11687
+ fill: "none",
11688
+ stroke: "inherit"
11689
+ } : {
11690
+ fill: "currentColor",
11691
+ stroke: p === "fill" ? "none" : "inherit",
11692
+ "fill-rule": "nonzero"
11693
+ };
11694
+ const looks = /* @__PURE__ */ new WeakMap();
11695
+ const paintedEls = /* @__PURE__ */ new WeakSet();
11696
+ function restLook(icon) {
11697
+ if (typeof icon === "string" || paintOf(icon) === "stroke") return "stroke";
11698
+ let look = looks.get(icon);
11699
+ if (look) return look;
11700
+ let filled = 0;
11701
+ let enclosed = -1;
11702
+ look = "fill";
11703
+ for (const el of solid(icon)) {
11704
+ const s = painted$1(el[1].stroke);
11705
+ const f = painted$1(el[1].fill) || el[1].fill === void 0 && !s;
11706
+ if (s) look = "both";
11707
+ let a = 0;
11708
+ for (const p of iconToCubics([el])) a += Math.abs(signedArea(p.pts));
11709
+ if (f) filled += a;
11710
+ else if (s) enclosed = Math.max(enclosed, 0) + a;
11711
+ }
11712
+ if (enclosed > 1.5 * filled) look = "stroke";
11713
+ looks.set(icon, look);
11714
+ return look;
11715
+ }
11716
+ /** The paint attributes a binding renders on the `<path>` with its first
11717
+ * icon (SSR included), so a fill icon is filled before any script runs.
11718
+ * None for a stroke icon: it inherits the `<svg>`'s stroke as always. */
11719
+ function restAttrs(icon) {
11720
+ if (icon === void 0 || paintOf(icon) === "stroke") return void 0;
11721
+ return paintAttrs(restLook(icon));
11722
+ }
11723
+ function popPlan(from, to) {
11724
+ const n = 64;
11725
+ const item = ({ pts, closed }, half) => {
11726
+ if (pts.length > 128) pts = pts.filter((_, i) => i % 4 < 2);
11727
+ const c = centroid(pts);
11728
+ const p = pts.map((v, i) => v - c[i & 1]);
11729
+ const z = /* @__PURE__ */ new Float64Array(128);
11730
+ return {
11731
+ aC: half ? z : p,
11732
+ bT: half ? p : z,
11733
+ ca: c,
11734
+ cb: c,
11735
+ theta: 0,
11736
+ lnSigma: 0,
11737
+ closed,
11738
+ half,
11739
+ block: null
11740
+ };
11741
+ };
11742
+ return {
11743
+ n,
11744
+ items: [...from.map((s) => item(s, 0)), ...to.map((s) => item(s, 1))]
11745
+ };
11746
+ }
10596
11747
  function resolveSpring(s) {
10597
11748
  if (typeof s === "string") return SPRING_PRESETS[s];
10598
11749
  const d = SPRING_PRESETS.snappy;
@@ -10605,6 +11756,7 @@ function resolveSpring(s) {
10605
11756
  function createMorph(el, icon, options) {
10606
11757
  const spring = new Spring();
10607
11758
  let reducedMotion = options?.reducedMotion ?? "never";
11759
+ let strokeWidth = options?.strokeWidth ?? 2;
10608
11760
  let target = icon;
10609
11761
  let rest = true;
10610
11762
  let plan = null;
@@ -10613,7 +11765,35 @@ function createMorph(el, icon, options) {
10613
11765
  let t = 1;
10614
11766
  let flying = false;
10615
11767
  let dead = false;
10616
- el.setAttribute("d", canonicalD(icon));
11768
+ let regionFlight = false;
11769
+ let drawn = false;
11770
+ let pending = null;
11771
+ let paint = "stroke";
11772
+ let known = !paintedEls.has(el);
11773
+ let split = 0;
11774
+ let popFrom = "stroke";
11775
+ let popBase = null;
11776
+ const paintAs = (p) => {
11777
+ if (p === paint && known) return;
11778
+ for (const [k, v] of Object.entries(paintAttrs(p))) el.setAttribute(k, v);
11779
+ paint = p;
11780
+ known = true;
11781
+ paintedEls.add(el);
11782
+ };
11783
+ const paintRest = (ic) => {
11784
+ const r = regionMod && paintOf(ic) === "fill" ? regionMod.regionOf(ic, strokeWidth) : ic;
11785
+ el.setAttribute("d", canonicalD(r));
11786
+ paintAs(restLook(r));
11787
+ };
11788
+ const upgrade = (load) => {
11789
+ const icon = target;
11790
+ load.then(() => {
11791
+ if (!dead && rest && target === icon && pending === null) paintRest(icon);
11792
+ }, () => {});
11793
+ };
11794
+ paintRest(icon);
11795
+ if (paintOf(icon) === "fill" && !regionMod) upgrade(quietPreload());
11796
+ const shown = (tt) => !split ? [0, plan?.items.length ?? 0] : tt < .5 ? [0, split] : [split, plan?.items.length ?? 0];
10617
11797
  const render = (tt) => {
10618
11798
  const p = plan;
10619
11799
  const o = out;
@@ -10621,7 +11801,10 @@ function createMorph(el, icon, options) {
10621
11801
  if (!p || !o || !cl) return;
10622
11802
  t = tt;
10623
11803
  interpPolar(p, tt, o);
10624
- el.setAttribute("d", serialize(o, cl));
11804
+ drawn = true;
11805
+ const [lo, hi] = shown(tt);
11806
+ if (split) paintAs(tt < .5 ? popFrom : restLook(target));
11807
+ el.setAttribute("d", serialize(o.slice(lo, hi), cl.slice(lo, hi)));
10625
11808
  };
10626
11809
  const stop = () => {
10627
11810
  if (!flying) return;
@@ -10644,7 +11827,10 @@ function createMorph(el, icon, options) {
10644
11827
  t = 1;
10645
11828
  spring.x = 1;
10646
11829
  spring.v = 0;
10647
- el.setAttribute("d", canonicalD(target));
11830
+ regionFlight = false;
11831
+ split = 0;
11832
+ paintRest(target);
11833
+ if (paintOf(target) === "fill" && !regionMod && (regionLoading || !regionFailed)) upgrade(preloadRegion());
10648
11834
  };
10649
11835
  /** The current shape as plan source: the at-rest icon, or the rendered
10650
11836
  * buffers (already N points per subpath). */
@@ -10652,20 +11838,73 @@ function createMorph(el, icon, options) {
10652
11838
  const p = plan;
10653
11839
  const o = out;
10654
11840
  if (rest || !p || !o) return sampledOf(target);
10655
- return o.map((buf, k) => ({
11841
+ const [lo, hi] = shown(t);
11842
+ return o.slice(lo, hi).map((buf, k) => ({
10656
11843
  pts: Float64Array.from(buf),
10657
- closed: p.items[k].closed
11844
+ closed: p.items[lo + k].closed,
11845
+ hole: p.items[lo + k].hole
10658
11846
  }));
10659
11847
  };
10660
- const retarget = (icon) => {
10661
- plan = rest ? planBetween(target, icon) : buildPlan(snapshot(), sampledOf(icon));
11848
+ /** A morph from the current shape to `icon` needs regions when either
11849
+ * side is filled, or when the shape in flight already is a region. */
11850
+ const needsRegion = (icon) => !rest && regionFlight || paintOf(icon) === "fill" || paintOf(target) === "fill";
11851
+ const retarget = (icon, pop) => {
11852
+ if (!rest && plan && out && !drawn) {
11853
+ t = 0;
11854
+ interpPolar(plan, 0, out);
11855
+ }
11856
+ if (pop || !rest && split) {
11857
+ const from = snapshot();
11858
+ popBase = rest ? target : null;
11859
+ popFrom = paint;
11860
+ plan = popPlan(from, sampledOf(icon));
11861
+ split = from.length;
11862
+ regionFlight = false;
11863
+ } else if (needsRegion(icon)) {
11864
+ const mod = regionMod;
11865
+ plan = rest || !out ? mod.regionPlan(target, icon, strokeWidth) : mod.regionPlanFrom(regionFlight ? snapshot() : serialize(out, closed ?? void 0), icon, strokeWidth);
11866
+ regionFlight = true;
11867
+ split = 0;
11868
+ paintAs("fill");
11869
+ } else {
11870
+ plan = rest ? planBetween(target, icon) : buildPlan(snapshot(), sampledOf(icon));
11871
+ regionFlight = false;
11872
+ }
10662
11873
  out = allocOutputs(plan);
11874
+ drawn = false;
10663
11875
  closed = plan.items.map((it) => it.closed);
10664
11876
  target = icon;
10665
11877
  rest = false;
10666
11878
  };
11879
+ const whenRegion = (icon, run, fallback) => {
11880
+ if (regionMod || !rest && split || !needsRegion(icon)) return false;
11881
+ const req = {};
11882
+ pending = req;
11883
+ const give = () => {
11884
+ if (dead || pending !== req) return;
11885
+ pending = null;
11886
+ fallback();
11887
+ };
11888
+ const load = preloadRegion();
11889
+ if (Date.now() - regionSince > REGION_WAIT_MS) {
11890
+ give();
11891
+ return true;
11892
+ }
11893
+ const timer = setTimeout(give, REGION_WAIT_MS - (Date.now() - regionSince));
11894
+ load.then(() => {
11895
+ clearTimeout(timer);
11896
+ if (dead || pending !== req) return;
11897
+ pending = null;
11898
+ run();
11899
+ }, () => {
11900
+ clearTimeout(timer);
11901
+ give();
11902
+ });
11903
+ return true;
11904
+ };
10667
11905
  const setNow = (icon) => {
10668
11906
  stop();
11907
+ pending = null;
10669
11908
  target = icon;
10670
11909
  settle();
10671
11910
  };
@@ -10676,31 +11915,44 @@ function createMorph(el, icon, options) {
10676
11915
  if (typeof matchMedia === "undefined") return false;
10677
11916
  return matchMedia?.("(prefers-reduced-motion: reduce)").matches ?? false;
10678
11917
  };
10679
- const seek = (icon, tt) => {
11918
+ const seek = (icon, tt, pop = false) => {
10680
11919
  if (dead) return;
10681
- const reuse = !rest && plan !== null && icon === target;
11920
+ if (!pop && whenRegion(icon, () => seek(icon, tt), () => seek(icon, tt, true))) return;
11921
+ pending = null;
11922
+ let reuse = !rest && plan !== null && icon === target;
11923
+ if (reuse && split && regionMod && popBase !== null) {
11924
+ target = popBase;
11925
+ rest = true;
11926
+ reuse = false;
11927
+ }
10682
11928
  stop();
10683
11929
  spring.v = 0;
10684
- if (!reuse) retarget(icon);
11930
+ if (!reuse) retarget(icon, pop);
10685
11931
  render(tt);
10686
11932
  };
11933
+ const fly = (icon, sp, pop) => {
11934
+ if (dead) return;
11935
+ if (icon === target && (rest || flying)) {
11936
+ pending = null;
11937
+ return;
11938
+ }
11939
+ if (motionOff()) {
11940
+ setNow(icon);
11941
+ return;
11942
+ }
11943
+ if (!pop && whenRegion(icon, () => fly(icon, sp, false), () => fly(icon, sp, true))) return;
11944
+ pending = null;
11945
+ const { k, c } = resolveSpring(sp);
11946
+ spring.config(k, c);
11947
+ retarget(icon, pop);
11948
+ spring.start();
11949
+ if (!flying) {
11950
+ flying = true;
11951
+ addTicker(tick);
11952
+ }
11953
+ };
10687
11954
  return {
10688
- morphTo(icon, sp) {
10689
- if (dead) return;
10690
- if (icon === target && (rest || flying)) return;
10691
- if (motionOff()) {
10692
- setNow(icon);
10693
- return;
10694
- }
10695
- const { k, c } = resolveSpring(sp);
10696
- spring.config(k, c);
10697
- retarget(icon);
10698
- spring.start();
10699
- if (!flying) {
10700
- flying = true;
10701
- addTicker(tick);
10702
- }
10703
- },
11955
+ morphTo: (icon, sp) => fly(icon, sp, false),
10704
11956
  set(icon) {
10705
11957
  if (dead) return;
10706
11958
  setNow(icon);
@@ -10718,22 +11970,42 @@ function createMorph(el, icon, options) {
10718
11970
  set reducedMotion(v) {
10719
11971
  reducedMotion = v;
10720
11972
  },
11973
+ get strokeWidth() {
11974
+ return strokeWidth;
11975
+ },
11976
+ set strokeWidth(v) {
11977
+ strokeWidth = v;
11978
+ },
10721
11979
  destroy() {
10722
11980
  stop();
10723
11981
  dead = true;
11982
+ pending = null;
10724
11983
  plan = null;
10725
11984
  out = null;
10726
11985
  closed = null;
10727
11986
  }
10728
11987
  };
10729
11988
  }
11989
+ // node_modules/morphicons/dist/controller--7SSBggk.js
11990
+ init_region_BjECuWZR();
11991
+ /** The endpoint a frozen controlled pair renders at rest at `t` (SSR
11992
+ * included), or null mid-way for a stroke pair, interpolated with the pure
11993
+ * core. A pair with a fill endpoint scrubs as a region morph, which only the
11994
+ * lazy chunk draws: mid-way it renders `from` until the client's first seek. */
11995
+ function frozenEnd(from, to, t) {
11996
+ if (t >= 1) return to;
11997
+ if (t <= 0 || paintOf(from) === "fill" || paintOf(to) === "fill") return from;
11998
+ return null;
11999
+ }
10730
12000
  // node_modules/morphicons/dist/react.js
12001
+ init_normalize_CYnN3Npw();
12002
+ init_resample_CXlaZ5ZQ();
10731
12003
  const useIsoLayoutEffect = typeof document === "undefined" ? react.useEffect : react.useLayoutEffect;
10732
12004
  /** Frozen shape of the from→to pair at t, using the pure core (SSR-safe).
10733
12005
  * At exact endpoints returns the canonical `d` (real curves, not polyline). */
10734
12006
  function frozenD(from, to, t) {
10735
- if (t <= 0) return canonicalD(from);
10736
- if (t >= 1) return canonicalD(to);
12007
+ const end = frozenEnd(from, to, t);
12008
+ if (end !== null) return canonicalD(end);
10737
12009
  const plan = buildPlan(resampleIcon(from), resampleIcon(to));
10738
12010
  const out = allocOutputs(plan);
10739
12011
  interpPolar(plan, t, out);
@@ -10747,12 +12019,23 @@ const MorphIcon = (0, react.forwardRef)(function MorphIcon(props, ref) {
10747
12019
  if (controlled) return frozenD(from, to, progress ?? 0);
10748
12020
  return initialIcon !== void 0 ? canonicalD(initialIcon) : "";
10749
12021
  });
12022
+ const [initialPaint] = (0, react.useState)(() => {
12023
+ const a = restAttrs(controlled ? frozenEnd(from, to, progress ?? 0) ?? ((progress ?? 0) < .5 ? from : to) : initialIcon);
12024
+ return a && {
12025
+ fill: a.fill,
12026
+ stroke: a.stroke,
12027
+ fillRule: a["fill-rule"]
12028
+ };
12029
+ });
10750
12030
  const pathRef = (0, react.useRef)(null);
10751
12031
  const morphRef = (0, react.useRef)(null);
10752
12032
  const springRef = (0, react.useRef)(spring);
10753
12033
  springRef.current = spring;
10754
12034
  const rmRef = (0, react.useRef)(reducedMotion);
10755
12035
  rmRef.current = reducedMotion;
12036
+ const gridSw = Number(absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth);
12037
+ const swRef = (0, react.useRef)(gridSw);
12038
+ swRef.current = gridSw;
10756
12039
  const prevIcon = (0, react.useRef)(icon);
10757
12040
  const prevControlled = (0, react.useRef)(controlled);
10758
12041
  const dead = (0, react.useRef)(false);
@@ -10766,14 +12049,20 @@ const MorphIcon = (0, react.forwardRef)(function MorphIcon(props, ref) {
10766
12049
  if (morphRef.current) return morphRef.current;
10767
12050
  const el = pathRef.current;
10768
12051
  if (dead.current || !el) return null;
10769
- morphRef.current = createMorph(el, birth, { reducedMotion: rmRef.current });
12052
+ morphRef.current = createMorph(el, birth, {
12053
+ reducedMotion: rmRef.current,
12054
+ strokeWidth: swRef.current
12055
+ });
10770
12056
  return morphRef.current;
10771
12057
  }, []);
10772
12058
  useIsoLayoutEffect(() => {
10773
12059
  dead.current = false;
10774
12060
  const el = pathRef.current;
10775
12061
  if (el && initialIcon !== void 0) {
10776
- const m = createMorph(el, controlled ? from : initialIcon, { reducedMotion: rmRef.current });
12062
+ const m = createMorph(el, controlled ? from : initialIcon, {
12063
+ reducedMotion: rmRef.current,
12064
+ strokeWidth: swRef.current
12065
+ });
10777
12066
  morphRef.current = m;
10778
12067
  if (controlled) {
10779
12068
  pair.current = [from, to];
@@ -10798,6 +12087,10 @@ const MorphIcon = (0, react.forwardRef)(function MorphIcon(props, ref) {
10798
12087
  const m = morphRef.current;
10799
12088
  if (m) m.reducedMotion = reducedMotion ?? "never";
10800
12089
  }, [reducedMotion]);
12090
+ (0, react.useEffect)(() => {
12091
+ const m = morphRef.current;
12092
+ if (m) m.strokeWidth = gridSw;
12093
+ }, [gridSw]);
10801
12094
  (0, react.useEffect)(() => {
10802
12095
  const left = prevControlled.current && !controlled;
10803
12096
  prevControlled.current = controlled;
@@ -10868,6 +12161,7 @@ const MorphIcon = (0, react.forwardRef)(function MorphIcon(props, ref) {
10868
12161
  viewBox: "0 0 24 24",
10869
12162
  fill: "none",
10870
12163
  stroke: color,
12164
+ color,
10871
12165
  strokeWidth: sw,
10872
12166
  strokeLinecap: "round",
10873
12167
  strokeLinejoin: "round",
@@ -10876,7 +12170,8 @@ const MorphIcon = (0, react.forwardRef)(function MorphIcon(props, ref) {
10876
12170
  ...rest,
10877
12171
  children: [label ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("title", { children: label }) : null, /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
10878
12172
  ref: pathRef,
10879
- d: initialD
12173
+ d: initialD,
12174
+ ...initialPaint
10880
12175
  })]
10881
12176
  });
10882
12177
  });
@@ -10964,6 +12259,8 @@ const ICONS = {
10964
12259
  close: X,
10965
12260
  delete: Trash,
10966
12261
  file: File,
12262
+ folder: Folder,
12263
+ folderOpen: FolderOpen,
10967
12264
  download: Download,
10968
12265
  inspect: Search,
10969
12266
  view: Eye,
@@ -11095,6 +12392,18 @@ const CloseIcon = (p) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Icon, {
11095
12392
  name: "close",
11096
12393
  ...p
11097
12394
  });
12395
+ const FolderIcon = (p) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Icon, {
12396
+ name: "folder",
12397
+ ...p
12398
+ });
12399
+ const FolderOpenIcon = (p) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Icon, {
12400
+ name: "folderOpen",
12401
+ ...p
12402
+ });
12403
+ const FileIcon = (p) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Icon, {
12404
+ name: "file",
12405
+ ...p
12406
+ });
11098
12407
  const ArrowRightIcon = (p) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Icon, {
11099
12408
  name: "arrowRight",
11100
12409
  ...p
@@ -14533,7 +15842,7 @@ function getState(open) {
14533
15842
  }
14534
15843
  __name(getState, "getState");
14535
15844
  // \0config-manager-css:/home/runner/work/dsh-config-manager/dsh-config-manager/src/client/config-manager.module.css.js
14536
- const css = "._367UGW_section{height:100%;min-height:0;font-family:var(--dsw-font-family);font-size:var(--cm-fs-base);color:var(--dsw-alias-label-primary);flex-direction:column;line-height:1.5;display:flex;position:relative;overflow:hidden}body{--cm-disk-card-h:420px;--cm-text-1:var(--dsw-alias-label-primary);--cm-text-2:var(--dsw-alias-label-secondary);--cm-text-3:var(--dsw-alias-label-tertiary);--cm-text-on-accent:var(--dsw-alias-label-primary-foreground);--cm-surface-1:var(--dsw-alias-bg-layer-1);--cm-surface-2:var(--dsw-alias-bg-layer-2);--cm-surface-hover:var(--dsw-alias-interactive-bg-hover);--cm-line-1:var(--dsw-alias-border-l1);--cm-line-2:var(--dsw-alias-border-l2);--cm-input-bg:var(--dsw-specific-input-major);--cm-chat-bubble:var(--dsw-specific-bubble,color-mix(in srgb, var(--cm-text-1) 12%, transparent));--cm-accent:var(--dsw-alias-state-business-primary);--cm-accent-fill:var(--dsw-alias-button-info-fill);--cm-accent-hover:var(--dsw-alias-button-info-hover);--cm-ok:var(--dsw-alias-state-success-primary);--cm-info:var(--cm-accent);--cm-warn:var(--dsw-alias-state-warn-primary);--cm-error:var(--dsw-alias-state-error-primary);--cm-idle:var(--dsw-alias-state-idle-primary,var(--dsw-alias-label-tertiary));--cm-brand:var(--dsw-alias-brand-primary,var(--cm-accent));--cm-warn-label:var(--dsw-alias-state-warn-label,var(--cm-warn));--cm-fs-meta:var(--dsw-font-xxxs-11-font-size,11px);--cm-fs-table:var(--dsw-font-xxs-12-font-size,12px);--cm-fs-base:12.5px;--cm-fs-title:var(--dsw-font-xs-13-font-size,13px);--cm-sp-1:2px;--cm-sp-2:4px;--cm-sp-3:6px;--cm-sp-4:8px;--cm-sp-5:10px;--cm-sp-6:12px;--cm-sp-7:14px;--cm-sp-8:16px;--cm-sp-9:24px;--cm-r-1:var(--dsw-radius-xs,4px);--cm-r-2:var(--dsw-radius-sm,8px);--cm-r-3:var(--dsw-radius-md,12px);--cm-r-surface:var(--dsw-radius-lg,16px);--cm-r-pill:999px;--cm-h-sm:24px;--cm-h-md:28px;--cm-h-lg:32px;--cm-menu-surface:var(--dsw-menu-surface-fill,var(--dsw-alias-bg-layer-2));--cm-menu-backdrop:var(--dsw-menu-backdrop-filter,none);--cm-menu-icon:var(--dsw-alias-menu-icon,var(--dsw-alias-label-secondary));--cm-tooltip-bg:var(--dsw-alias-tooltip-bg,var(--dsw-alias-bg-layer-2));--cm-tooltip-fg:var(--dsw-static-neutral-bluish-00,var(--dsw-alias-label-primary));--cm-toast-bg:var(--dsw-alias-toast-bg,var(--dsw-alias-bg-layer-2));--cm-toast-fg:var(--dsw-alias-toast-label,var(--dsw-alias-label-primary));--cm-mask:var(--dsw-alias-bg-mask-1,color-mix(in srgb, var(--dsw-alias-bg-base) 55%, transparent));--cm-mask-blur:var(--dsw-mask-blur,none);--cm-skeleton:var(--dsw-alias-bg-skeleton,color-mix(in srgb, var(--dsw-alias-label-tertiary) 14%, transparent));--cm-hover:var(--dsw-alias-interactive-bg-hover);--cm-active:var(--dsw-alias-interactive-bg-active,var(--dsw-alias-interactive-bg-hover));--cm-hover-danger:var(--dsw-alias-interactive-bg-hover-danger,color-mix(in srgb, var(--cm-error) 12%, transparent));--cm-ghost-active-fill:var(--dsw-alias-button-ghost-active-fill,color-mix(in srgb, var(--cm-accent) 16%, transparent));--cm-ghost-active-border:var(--dsw-alias-button-ghost-active-border,color-mix(in srgb, var(--cm-accent) 45%, transparent));--cm-primary-fill:var(--dsw-alias-button-primary-fill,var(--cm-accent-fill));--cm-primary-hover:var(--dsw-alias-button-primary-hover,var(--cm-accent-hover));--cm-shadow-1:var(--dsw-elevation-soft,0 10px 26px color-mix(in srgb, var(--dsw-alias-bg-base) 45%, transparent));--cm-shadow-2:var(--dsw-elevation-prominent,0 12px 32px color-mix(in srgb, var(--dsw-alias-bg-base) 40%, transparent));--cm-focus-width:var(--dsw-focus-ring-width,2px);--cm-focus-color:var(--dsw-focus-ring-color,var(--cm-accent));--cm-z-raise:1;--cm-z-sticky:2;--cm-z-task:90;--cm-z-mask:100;--cm-z-modal:101;--cm-z-pop:110;--cm-z-toast:120;--cm-motion-fast:.12s;--cm-motion-base:.18s;--cm-motion-slow:.3s;--cm-motion-ease-out:cubic-bezier(.16, 1, .3, 1);--cm-motion-ease-in-out:cubic-bezier(.4, 0, .6, 1)}._367UGW_section :is(button,a,input,select,textarea,[role=tab]){transition-property:background-color,border-color,color;transition-duration:var(--cm-motion-fast);transition-timing-function:ease}._367UGW_section :is(button,a,input,select,textarea,[role=tab]):focus-visible{outline:var(--cm-focus-width) solid var(--cm-focus-color);outline-offset:2px}._367UGW_mono{font-variant-numeric:tabular-nums;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}._367UGW_section svg{color:inherit;flex:none}._367UGW_shellNav{flex:none;align-items:center;gap:8px;padding:8px;display:flex}._367UGW_navStrip{border-radius:var(--cm-r-3);background:var(--cm-hover);border:none;flex:auto;align-items:center;gap:2px;min-width:0;padding:2px;display:flex;overflow:hidden}._367UGW_navTab,._367UGW_navMore{border-radius:var(--cm-r-2);height:24px;font:inherit;font-size:var(--cm-fs-table);color:var(--dsw-alias-label-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:none;flex:none;align-items:center;gap:4px;padding:0 10px;font-weight:500;display:inline-flex;position:relative}._367UGW_navTab:hover:not(:disabled),._367UGW_navMore:hover:not(:disabled){color:var(--dsw-alias-label-primary);background:var(--dsw-alias-interactive-bg-hover)}._367UGW_navMore:disabled{opacity:.4;cursor:default}._367UGW_navTab:focus-visible,._367UGW_navMore:focus-visible{outline:var(--cm-focus-width) solid var(--cm-focus-color);outline-offset:1px;border-radius:var(--cm-r-2)}._367UGW_navTab[data-active],._367UGW_navMore[data-active]{background:var(--cm-ghost-active-fill);box-shadow:inset 0 0 0 1px var(--cm-ghost-active-border);color:var(--dsw-alias-label-primary);font-weight:600}._367UGW_navDot{background:var(--cm-error);border-radius:50%;flex:none;width:6px;height:6px}._367UGW_navMoreRoot{flex:none}._367UGW_navMeasure{visibility:hidden;pointer-events:none;align-items:center;gap:2px;padding:2px;display:flex;position:absolute;top:0;left:-9999px}._367UGW_navActions{flex:none;align-items:center;gap:4px;margin-left:4px;display:flex}._367UGW_navActions ._367UGW_ghostButton[data-active]{border-color:color-mix(in srgb, var(--cm-accent) 55%, transparent);color:var(--cm-accent)}._367UGW_iconBtn{border-radius:var(--cm-r-2);width:28px;height:28px;font:inherit;font-size:var(--cm-fs-title);color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:none;justify-content:center;align-self:center;align-items:center;padding:0;line-height:1.25;display:inline-flex}._367UGW_iconBtn:hover{background:var(--cm-hover);color:var(--dsw-alias-label-primary)}._367UGW_iconBtn:focus-visible{outline:var(--cm-focus-width) solid var(--cm-focus-color);outline-offset:1px}._367UGW_iconBtn:disabled{opacity:.4;cursor:default}._367UGW_iconBtn[data-size=sm]{border-radius:var(--cm-r-1);width:18px;height:18px}._367UGW_iconBtn[data-active]{background:var(--cm-ghost-active-fill);box-shadow:inset 0 0 0 1px var(--cm-ghost-active-border);color:var(--cm-accent)}._367UGW_iconBtn[data-danger]{color:var(--cm-error)}._367UGW_iconBtn[data-danger]:hover{background:color-mix(in srgb, var(--cm-error) 12%, transparent);border-color:var(--cm-error);color:var(--cm-error)}._367UGW_shellMain{overscroll-behavior:contain;flex-direction:column;flex:auto;min-height:0;display:flex;overflow-y:auto}._367UGW_pagePad{min-height:0;animation:_367UGW_pageEnter var(--cm-motion-base) var(--cm-motion-ease-out);flex-direction:column;flex:auto;padding:12px 16px 16px;display:flex}@keyframes _367UGW_pageEnter{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}._367UGW_snapshotList>*,._367UGW_dataTable tbody tr{animation:_367UGW_itemEnter var(--cm-motion-base) var(--cm-motion-ease-out) both}._367UGW_snapshotList>:nth-child(2),._367UGW_dataTable tbody tr:nth-child(2){animation-delay:24ms}._367UGW_snapshotList>:nth-child(3),._367UGW_dataTable tbody tr:nth-child(3){animation-delay:48ms}._367UGW_snapshotList>:nth-child(4),._367UGW_dataTable tbody tr:nth-child(4){animation-delay:72ms}._367UGW_snapshotList>:nth-child(n+5),._367UGW_dataTable tbody tr:nth-child(n+5){animation-delay:96ms}@keyframes _367UGW_itemEnter{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}._367UGW_viewEnter{animation:_367UGW_itemEnter var(--cm-motion-base) var(--cm-motion-ease-out);flex-direction:column;flex:auto;gap:10px;min-height:0;display:flex}._367UGW_collapse{visibility:hidden;transition:grid-template-rows var(--cm-motion-base) var(--cm-motion-ease-out), visibility 0s linear var(--cm-motion-base);grid-template-rows:0fr;display:grid}._367UGW_collapse[data-open]{visibility:visible;transition:grid-template-rows var(--cm-motion-base) var(--cm-motion-ease-out), visibility 0s;grid-template-rows:1fr}._367UGW_collapseInner{min-height:0;overflow:hidden}._367UGW_shellContent{flex-direction:column;flex:auto;min-height:0;display:flex;position:relative}._367UGW_taskPanel{z-index:var(--cm-z-task);background:var(--dsw-alias-bg-layer-1);min-height:0;animation:_367UGW_taskPanelIn var(--cm-motion-base) var(--cm-motion-ease-out);flex-direction:column;display:flex;position:absolute;inset:0}@keyframes _367UGW_taskPanelIn{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:translate(0)}}._367UGW_taskHead{border-bottom:1px solid var(--dsw-alias-border-l1);flex:none;align-items:center;gap:8px;height:44px;padding:0 12px;display:flex}._367UGW_taskTitle{font-size:var(--cm-fs-title);color:var(--dsw-alias-label-primary);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:700;overflow:hidden}._367UGW_taskBody{overscroll-behavior:contain;flex:auto;min-height:0;padding:12px 16px 16px;overflow-y:auto}@media (prefers-reduced-motion:reduce){._367UGW_taskPanel{animation:none}}._367UGW_statusBar{border:1px solid var(--dsw-alias-border-l1);border-radius:var(--cm-r-3);background:var(--dsw-alias-bg-layer-2);height:28px;font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary);white-space:nowrap;flex:none;align-items:center;gap:10px;margin:0 8px 8px;padding:0 10px;display:flex;overflow:hidden}._367UGW_bannerSlot{padding:8px 12px 0}._367UGW_syncChannelBody{margin-top:10px}._367UGW_syncChannelBody ._367UGW_collapseInner{flex-direction:column;gap:10px;display:flex}._367UGW_statusTask{color:var(--dsw-alias-label-secondary);font-weight:600}._367UGW_statusProgress{background:color-mix(in srgb, var(--cm-accent) 20%, transparent);border-radius:999px;flex:none;width:60px;height:4px;display:inline-block;position:relative;overflow:hidden}._367UGW_statusProgress:after{content:\"\";background:var(--cm-accent);width:40%;animation:_367UGW_statusIndeterminate 1.2s var(--cm-motion-ease-in-out) infinite;border-radius:999px;position:absolute;inset:0 auto 0 0}@keyframes _367UGW_statusIndeterminate{0%{transform:translate(-100%)}to{transform:translate(250%)}}._367UGW_statusDot{width:10px;height:10px;color:var(--cm-idle);transition:color var(--cm-motion-fast) ease;border-radius:50%;flex:none;display:inline-block}._367UGW_statusDot[data-kind=ok]{color:var(--cm-ok)}._367UGW_statusDot[data-kind=info]{color:var(--cm-accent)}._367UGW_statusDot[data-kind=warn]{color:var(--cm-warn)}._367UGW_statusDot[data-kind=error]{color:var(--cm-error)}._367UGW_statusDot[data-pulse]{animation:1.2s ease-in-out infinite _367UGW_statusPulse}._367UGW_statusDot:after{content:\"\";background:currentColor;border-radius:50%;width:60%;height:60%;margin:20%;display:block}@keyframes _367UGW_statusPulse{0%,to{opacity:1}50%{opacity:.35}}._367UGW_statusText{text-overflow:ellipsis;min-width:0;overflow:hidden}._367UGW_statusSpacer{flex:auto}._367UGW_primaryButton,._367UGW_ghostButton,._367UGW_dangerButton{border-radius:var(--cm-r-2);height:28px;font:inherit;font-size:var(--cm-fs-table);white-space:nowrap;cursor:pointer;user-select:none;border:.5px solid #0000;justify-content:center;align-items:center;gap:4px;padding:0 10px;font-weight:500;line-height:1.25;display:inline-flex}._367UGW_primaryButton{background:var(--cm-primary-fill);color:var(--cm-text-on-accent)}._367UGW_primaryButton:hover:not(:disabled){background:var(--cm-primary-hover)}._367UGW_ghostButton{border-color:var(--dsw-alias-border-l3);color:var(--dsw-alias-label-primary);background:0 0}._367UGW_ghostButton:hover:not(:disabled){background:var(--cm-hover)}._367UGW_ghostButton:active:not(:disabled){background:var(--cm-active)}._367UGW_dangerButton{border-color:color-mix(in srgb, var(--cm-error) 45%, transparent);color:var(--cm-error);background:0 0}._367UGW_dangerButton:hover:not(:disabled){background:var(--cm-hover-danger);border-color:var(--cm-error)}._367UGW_primaryButton:focus-visible,._367UGW_ghostButton:focus-visible,._367UGW_dangerButton:focus-visible{outline:var(--cm-focus-width) solid var(--cm-focus-color);outline-offset:1px}._367UGW_primaryButton:disabled,._367UGW_ghostButton:disabled,._367UGW_dangerButton:disabled{opacity:.4;cursor:default}._367UGW_primaryButton[data-size=sm],._367UGW_ghostButton[data-size=sm],._367UGW_dangerButton[data-size=sm]{height:24px;font-size:var(--cm-fs-meta);border-radius:var(--cm-r-2);padding:0 8px}._367UGW_input{border:.5px solid var(--dsw-alias-border-l4);border-radius:var(--cm-r-2);background:var(--dsw-specific-input-major);height:28px;font:inherit;font-size:var(--cm-fs-base);color:var(--dsw-alias-label-primary);box-sizing:border-box;padding:0 8px}._367UGW_field>._367UGW_input,._367UGW_field>._367UGW_selectRoot{width:100%;position:relative}._367UGW_input::placeholder{color:var(--dsw-alias-label-dimmed)}._367UGW_input:hover{border-color:color-mix(in srgb, var(--cm-accent) 40%, var(--dsw-alias-border-l2))}._367UGW_input:focus{border-color:var(--cm-accent);outline:none}._367UGW_input:disabled{color:var(--dsw-alias-label-tertiary);cursor:default}._367UGW_input[type=password]{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--cm-fs-table)}._367UGW_selectRoot{vertical-align:middle;min-width:0;max-width:100%;font-size:var(--cm-fs-base);display:inline-block;position:relative}._367UGW_selectTrigger{box-sizing:border-box;border:.5px solid var(--dsw-alias-border-l4);border-radius:var(--cm-r-2);background:var(--dsw-specific-input-major);width:100%;height:28px;font:inherit;font-size:var(--cm-fs-base);color:var(--dsw-alias-label-primary);text-align:left;cursor:pointer;transition:border-color var(--cm-motion-fast) ease, box-shadow var(--cm-motion-fast) ease;align-items:center;gap:6px;padding:0 8px;display:flex}._367UGW_selectTrigger:hover{border-color:color-mix(in srgb, var(--cm-accent) 40%, var(--dsw-alias-border-l2))}._367UGW_selectTrigger:focus-visible,._367UGW_selectRoot[data-open] ._367UGW_selectTrigger{border-color:var(--cm-accent);outline:none}._367UGW_selectTrigger:disabled{color:var(--dsw-alias-label-tertiary);cursor:default}._367UGW_selectLabel{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}._367UGW_selectChevron{color:var(--dsw-alias-label-secondary);transition:transform var(--cm-motion-fast) var(--cm-motion-ease-out);flex:none}._367UGW_selectRoot[data-open] ._367UGW_selectChevron{transform:rotate(180deg)}._367UGW_selectMenu{z-index:var(--cm-z-pop);box-sizing:border-box;overscroll-behavior:contain;border-radius:var(--cm-r-surface);background:var(--cm-menu-surface);max-width:260px;max-height:220px;backdrop-filter:var(--cm-menu-backdrop);box-shadow:var(--cm-shadow-2);transform-origin:top;animation:_367UGW_selectMenuIn var(--cm-motion-fast) var(--cm-motion-ease-out);border:0;padding:4px;position:absolute;overflow-y:auto}._367UGW_selectRoot[data-align=end] ._367UGW_selectMenu{left:auto;right:0}._367UGW_selectMenuPortal{pointer-events:auto;visibility:hidden}._367UGW_selectMenuPortal[data-ready]{visibility:visible}@keyframes _367UGW_selectMenuIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}._367UGW_selectOption{border-radius:var(--cm-r-3);font-size:var(--cm-fs-base);color:var(--dsw-alias-label-primary);cursor:pointer;align-items:center;gap:8px;padding:6px 8px;display:flex}._367UGW_selectOption[data-active]{background:var(--cm-hover)}._367UGW_selectOption[aria-selected=true],._367UGW_selectOption[aria-checked=true]{color:var(--cm-accent);background:var(--cm-ghost-active-fill);box-shadow:inset 2px 0 0 var(--cm-accent);font-weight:600}._367UGW_selectOption[data-disabled]{opacity:.4;cursor:default}._367UGW_selectOptionLabel{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}._367UGW_libraryFilters{border:1px solid var(--dsw-alias-border-l1);border-radius:var(--cm-r-3);background:var(--dsw-alias-bg-layer-2);flex:none;align-items:center;gap:2px;margin-top:8px;padding:2px;display:flex;overflow:hidden}._367UGW_libraryFilter{border-radius:var(--cm-r-2);height:24px;font:inherit;font-size:var(--cm-fs-table);color:var(--dsw-alias-label-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:none;flex:none;align-items:center;gap:4px;padding:0 8px;display:inline-flex}._367UGW_libraryFilter:hover{background:var(--dsw-alias-interactive-bg-hover)}._367UGW_libraryFilter[data-active]{color:var(--cm-accent);background:color-mix(in srgb, var(--cm-accent) 16%, transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--cm-accent) 45%, transparent);font-weight:600}._367UGW_libraryFilterCount{font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary)}._367UGW_libraryFilter[data-active] ._367UGW_libraryFilterCount{color:inherit}._367UGW_librarySearch{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);border-radius:var(--cm-r-2);background:var(--dsw-specific-input-major);width:100%;height:28px;font:inherit;font-size:var(--cm-fs-base);color:var(--dsw-alias-label-primary);flex:none;margin-top:8px;padding:0 8px}._367UGW_librarySearch:focus-visible{border-color:var(--cm-accent);box-shadow:0 0 0 2px color-mix(in srgb, var(--cm-accent) 18%, transparent);outline:none}._367UGW_libraryFooter{border-top:1px solid var(--dsw-alias-border-l1);flex:none;align-items:center;gap:8px;margin-top:8px;padding-top:8px;display:flex}._367UGW_libraryCount{font-size:var(--cm-fs-table);color:var(--dsw-alias-label-secondary)}._367UGW_artifactList{overscroll-behavior:contain;flex:auto;min-height:0;margin:0;padding:0;list-style:none;overflow-y:auto}._367UGW_libraryListState{flex-direction:column;flex:auto;justify-content:center;min-height:0;display:flex}._367UGW_librarySkeletonRegion{justify-content:flex-start;overflow:hidden}._367UGW_artifactRow{border-bottom:1px solid color-mix(in srgb, var(--dsw-alias-border-l1) 60%, transparent)}._367UGW_artifactRow:last-child{border-bottom:none}._367UGW_artifactRow[data-expanded]{background:color-mix(in srgb, var(--cm-accent) 5%, transparent)}._367UGW_artifactRowHead{box-sizing:border-box;cursor:pointer;align-items:center;gap:8px;min-height:52px;padding:8px 10px;display:flex}._367UGW_artifactRowHead:hover{background:var(--dsw-alias-interactive-bg-hover)}._367UGW_artifactExpand{border-radius:var(--cm-r-1);width:20px;height:20px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:none;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}._367UGW_artifactExpand:focus-visible{outline:var(--cm-focus-width) solid var(--cm-focus-color);outline-offset:1px}._367UGW_artifactMain{flex:auto;min-width:0}._367UGW_artifactTitle{align-items:center;gap:6px;min-width:0;display:flex}._367UGW_artifactName{font-size:var(--cm-fs-base);color:var(--dsw-alias-label-primary);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}._367UGW_artifactMeta{font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;overflow:hidden}._367UGW_artifactBadges,._367UGW_artifactActions{flex:none;align-items:center;gap:4px;display:flex}._367UGW_artifactDetailWrap{transition:grid-template-rows var(--cm-motion-base) var(--cm-motion-ease-out);grid-template-rows:0fr;display:grid}._367UGW_artifactRow[data-expanded] ._367UGW_artifactDetailWrap{grid-template-rows:1fr}._367UGW_artifactDetailInner{min-height:0;transition:padding var(--cm-motion-base) var(--cm-motion-ease-out);padding:0 10px 0 38px;overflow:hidden}._367UGW_artifactRow[data-expanded] ._367UGW_artifactDetailInner{padding:2px 10px 10px 38px}._367UGW_artifactDetailInner>*{opacity:0;transition:opacity var(--cm-motion-fast) var(--cm-motion-ease-out)}._367UGW_artifactRow[data-expanded] ._367UGW_artifactDetailInner>*{opacity:1;transition-delay:60ms}._367UGW_artifactRow:not([data-expanded]) ._367UGW_artifactDetailInner>*{transition-delay:0s}._367UGW_paletteInput{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);border-radius:var(--cm-r-2);background:var(--dsw-specific-input-major);width:100%;height:32px;font:inherit;font-size:var(--cm-fs-title);color:var(--dsw-alias-label-primary);padding:0 10px}._367UGW_paletteInput:focus-visible{border-color:var(--cm-accent);box-shadow:0 0 0 2px color-mix(in srgb, var(--cm-accent) 18%, transparent);outline:none}._367UGW_paletteList{overscroll-behavior:contain;max-height:280px;margin-top:8px;overflow-y:auto}._367UGW_paletteGroup{font-size:var(--cm-fs-meta);letter-spacing:.02em;color:var(--dsw-alias-label-tertiary);user-select:none;padding:8px 8px 4px;font-weight:500}._367UGW_paletteGroup:not([data-first]){border-top:1px solid var(--dsw-alias-border-l1);margin-top:4px}._367UGW_paletteItem{border-radius:var(--cm-r-2);font-size:var(--cm-fs-base);color:var(--dsw-alias-label-primary);cursor:pointer;align-items:center;gap:8px;padding:6px 8px;display:flex}._367UGW_paletteItem[data-active]{background:var(--dsw-alias-interactive-bg-hover)}._367UGW_paletteItem[data-disabled]{opacity:.45;cursor:default}._367UGW_paletteItemLabel{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}._367UGW_paletteItemGroup{font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary);flex:none}._367UGW_paletteEmpty{font-size:var(--cm-fs-base);color:var(--dsw-alias-label-tertiary);padding:10px 8px}._367UGW_paletteHint{border-top:1px solid var(--dsw-alias-border-l1);font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary);margin-top:8px;padding-top:6px}._367UGW_checkboxRow,._367UGW_radioLabel{cursor:pointer;font-size:var(--cm-fs-base);color:var(--dsw-alias-label-primary);align-items:flex-start;gap:6px;display:flex}._367UGW_checkboxRow input,._367UGW_radioLabel input{width:16px;height:16px;accent-color:var(--cm-brand);cursor:pointer;flex:none;margin:2px 0 0}._367UGW_checkboxRow input:focus-visible,._367UGW_radioLabel input:focus-visible{outline:var(--cm-focus-width) solid var(--cm-focus-color);outline-offset:2px}._367UGW_badge{border-radius:var(--cm-r-pill);height:19px;font-size:var(--cm-fs-meta);white-space:nowrap;color:var(--dsw-alias-label-tertiary);border:none;align-items:center;gap:4px;padding:0 8px;font-weight:500;line-height:1.25;display:inline-flex}._367UGW_badge[data-kind=ok]{background:color-mix(in srgb, var(--cm-ok) 10%, transparent);color:var(--cm-ok)}._367UGW_badge[data-kind=info]{background:color-mix(in srgb, var(--cm-accent) 10%, transparent);color:var(--cm-accent)}._367UGW_badge[data-kind=warn]{background:color-mix(in srgb, var(--cm-warn) 12%, transparent);color:var(--cm-warn)}._367UGW_badge[data-kind=error]{background:color-mix(in srgb, var(--cm-error) 10%, transparent);color:var(--cm-error)}._367UGW_badgeHost{align-items:center;display:inline-flex}._367UGW_banner{animation:_367UGW_itemEnter var(--cm-motion-base) var(--cm-motion-ease-out);border-radius:var(--cm-r-3);border:.5px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);font-size:var(--cm-fs-base);box-sizing:border-box;flex-wrap:wrap;align-items:center;gap:6px 10px;width:100%;margin:0 0 10px;padding:8px 12px;display:flex}._367UGW_banner[data-kind=ok]{border-color:color-mix(in srgb, var(--cm-ok) 35%, transparent);background:color-mix(in srgb, var(--cm-ok) 10%, transparent)}._367UGW_banner[data-kind=info]{border-color:color-mix(in srgb, var(--cm-accent) 30%, transparent);background:color-mix(in srgb, var(--cm-accent) 10%, transparent)}._367UGW_banner[data-kind=warn]{border-color:color-mix(in srgb, var(--cm-warn) 40%, transparent);background:color-mix(in srgb, var(--cm-warn) 12%, transparent)}._367UGW_banner[data-kind=error]{border-color:color-mix(in srgb, var(--cm-error) 45%, transparent);background:color-mix(in srgb, var(--cm-error) 10%, transparent)}._367UGW_spinnerWrap{vertical-align:middle;align-items:center;gap:6px;display:inline-flex}._367UGW_spinner{vertical-align:middle;transform-origin:50%;flex:none;width:13px;height:13px;animation:.7s linear infinite _367UGW_spin;display:inline-block}._367UGW_spinnerTrack{fill:none;stroke:color-mix(in srgb, currentColor 30%, transparent);stroke-width:3px}._367UGW_spinnerArc{fill:none;stroke:currentColor;stroke-width:3px;stroke-linecap:round}@keyframes _367UGW_spin{to{transform:rotate(360deg)}}._367UGW_spinnerLabel{font-size:var(--cm-fs-table);color:inherit;opacity:.85}._367UGW_skeletonRoot{flex-direction:column;gap:8px;width:100%;margin-top:8px;display:flex}._367UGW_skeletonBars,._367UGW_skeletonCards{flex-direction:column;gap:8px;display:flex}._367UGW_skeletonBar{border-radius:var(--cm-r-1);background-color:var(--cm-skeleton);background-image:linear-gradient(90deg, transparent, color-mix(in srgb, var(--dsw-alias-label-tertiary) 26%, transparent), transparent);animation:_367UGW_skeletonShimmer 1.3s var(--cm-motion-ease-in-out) infinite;background-position:-160px 0;background-repeat:no-repeat;background-size:160px 100%;display:block}@keyframes _367UGW_skeletonShimmer{to{background-position:calc(100% + 160px) 0}}._367UGW_skeletonTitle{border-radius:var(--cm-r-2);width:42%;height:13px}._367UGW_skeletonLine{height:11px}._367UGW_skeletonBlock{border-radius:var(--cm-r-3);height:46px}._367UGW_skeletonRow{border-radius:var(--cm-r-2);height:30px}._367UGW_skeletonBars>._367UGW_skeletonBar:nth-child(4n+2){width:92%}._367UGW_skeletonBars>._367UGW_skeletonBar:nth-child(4n+3){width:78%}._367UGW_skeletonBars>._367UGW_skeletonBar:nth-child(4n){width:64%}._367UGW_skeletonBars>._367UGW_skeletonBar:nth-child(2){animation-delay:60ms}._367UGW_skeletonBars>._367UGW_skeletonBar:nth-child(3){animation-delay:.12s}._367UGW_skeletonBars>._367UGW_skeletonBar:nth-child(4){animation-delay:.18s}._367UGW_skeletonBars>._367UGW_skeletonBar:nth-child(n+5){animation-delay:.24s}._367UGW_skeletonCard{border:1px solid var(--dsw-alias-border-l1);border-radius:var(--cm-r-3);background:var(--dsw-alias-bg-layer-2);flex-direction:column;gap:8px;padding:12px;display:flex}._367UGW_skeletonCard>._367UGW_skeletonBar:nth-child(2){width:84%}._367UGW_skeletonCard>._367UGW_skeletonBar:nth-child(3){width:56%}._367UGW_skeletonTable{border:1px solid var(--dsw-alias-border-l1);border-radius:var(--cm-r-3);overflow:hidden}._367UGW_skeletonTableRow{border-bottom:1px solid var(--dsw-alias-border-l1);align-items:center;gap:10px;padding:8px 10px;display:flex}._367UGW_skeletonTableRow:last-child{border-bottom:none}._367UGW_skeletonTableCell{flex:1 1 0;height:11px}._367UGW_skeletonTableCell:first-child{flex:0 0 40%}._367UGW_skeletonTableCell:last-child{flex:0 0 20%}._367UGW_skeletonRows{flex-direction:column;display:flex}._367UGW_skeletonRowItem{box-sizing:border-box;border-bottom:1px solid color-mix(in srgb, var(--dsw-alias-border-l1) 60%, transparent);align-items:center;gap:8px;min-height:52px;padding:8px 10px;display:flex}._367UGW_skeletonRowItem:last-child{border-bottom:none}._367UGW_skeletonRowItem:nth-child(2) ._367UGW_skeletonBar{animation-delay:60ms}._367UGW_skeletonRowItem:nth-child(3) ._367UGW_skeletonBar{animation-delay:.12s}._367UGW_skeletonRowItem:nth-child(4) ._367UGW_skeletonBar{animation-delay:.18s}._367UGW_skeletonRowItem:nth-child(n+5) ._367UGW_skeletonBar{animation-delay:.24s}._367UGW_skeletonRowIcon{flex:none;width:20px;height:20px}._367UGW_skeletonRowBody{flex-direction:column;flex:auto;gap:6px;min-width:0;display:flex}._367UGW_skeletonRowTitle{width:38%;height:12px}._367UGW_skeletonRowMeta{width:24%;height:10px}._367UGW_skeletonRowAction{flex:none;width:56px;height:20px}._367UGW_statValueSkeleton{border-radius:var(--cm-r-1);width:26px;height:12px;display:inline-block}._367UGW_skeletonCaption{font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary)}._367UGW_card{border:1px solid var(--dsw-alias-border-l1);border-radius:var(--cm-r-3);background:var(--dsw-alias-bg-layer-2);margin:0 0 10px;padding:12px}._367UGW_groupLabel{font-size:var(--cm-fs-meta);letter-spacing:.02em;color:var(--dsw-alias-label-tertiary);margin-bottom:8px;font-weight:700;display:block}._367UGW_groupHeader{align-items:baseline;gap:8px;margin-bottom:10px;display:flex}._367UGW_groupHeader ._367UGW_groupLabel{white-space:nowrap;flex:none;margin-bottom:0}._367UGW_groupNote{font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary)}._367UGW_groupItems{flex-direction:column;gap:6px;display:flex}._367UGW_sectionOptionRow{flex-direction:column;gap:4px;display:flex}._367UGW_field{flex-direction:column;gap:4px;margin:0 0 10px;display:flex}._367UGW_fieldLabel{font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-secondary);font-weight:600}._367UGW_hint{font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary);line-height:1.5}._367UGW_formError{font-size:var(--cm-fs-meta);color:var(--cm-error)}._367UGW_infoHint{vertical-align:middle;align-items:center;display:inline-flex}._367UGW_infoHintBtn{border-radius:var(--cm-r-1);width:18px;height:18px;font:inherit;color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:none;flex:none;justify-content:center;align-items:center;padding:0;line-height:1.25;display:inline-flex}._367UGW_infoHintBtn:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}._367UGW_infoHintBtn[data-open]:focus-visible{outline:var(--cm-focus-width) solid var(--cm-focus-color);outline-offset:1px}._367UGW_infoHintBtn[data-open]{color:var(--dsw-alias-label-primary)}._367UGW_infoHintBtn[data-pinned]{background:color-mix(in srgb, var(--cm-accent) 14%, transparent);color:var(--cm-accent)}._367UGW_infoHintBubble{z-index:var(--cm-z-pop);box-sizing:border-box;border-radius:var(--cm-r-2);background:var(--cm-tooltip-bg);max-width:min(260px,100vw - 24px);max-height:min(480px,100vh - 16px);box-shadow:var(--cm-shadow-1);color:var(--cm-tooltip-fg);font-size:var(--cm-fs-table);white-space:pre-wrap;overflow-wrap:anywhere;pointer-events:none;visibility:hidden;border:0;padding:8px 10px;line-height:1.5;position:fixed;overflow-y:auto}._367UGW_infoHintBubble[data-ready]{visibility:visible;animation:_367UGW_infoHintIn var(--cm-motion-fast) var(--cm-motion-ease-out);transform-origin:top}._367UGW_infoHintBubble[data-ready][data-side=top]{transform-origin:bottom}@keyframes _367UGW_infoHintIn{0%{opacity:0}to{opacity:1}}._367UGW_controlRow{align-items:center;gap:8px;margin:0 0 10px;display:flex}._367UGW_sectionTitleBlock{min-width:0;margin:0 0 10px}._367UGW_sectionTitleRow{align-items:center;gap:8px;min-width:0;display:flex}._367UGW_sectionTitle{font-size:var(--cm-fs-title);color:var(--dsw-alias-label-primary);margin:0;font-weight:700;line-height:1.5}._367UGW_sectionSubtitle{font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary);margin:1px 0 0}._367UGW_empty{animation:_367UGW_itemEnter var(--cm-motion-base) var(--cm-motion-ease-out);border:1px dashed var(--dsw-alias-border-l2);border-radius:var(--cm-r-3);text-align:center;font-size:var(--cm-fs-table);color:var(--dsw-alias-label-tertiary);box-sizing:border-box;flex-direction:column;justify-content:center;align-items:center;gap:4px;width:100%;padding:24px 16px;display:flex}._367UGW_emptySteps{margin:2px 0 10px}._367UGW_tableWrap{border:1px solid var(--dsw-alias-border-l1);border-radius:var(--cm-r-3);background:var(--dsw-alias-bg-layer-2);margin-bottom:10px;overflow:hidden}._367UGW_tableFixed th,._367UGW_tableFixed td{padding-left:12px;padding-right:12px}._367UGW_tableScroll{max-height:420px;overflow:auto}._367UGW_dataTable{border-collapse:collapse;width:100%;font-size:var(--cm-fs-table)}._367UGW_dataTable th,._367UGW_dataTable td{box-sizing:border-box}._367UGW_tableFixed{table-layout:fixed}._367UGW_tableFixed td,._367UGW_tableFixed th{text-overflow:ellipsis;overflow:hidden}._367UGW_tableCompact th,._367UGW_tableCompact td{padding-left:8px;padding-right:8px}._367UGW_dataTable td._367UGW_dim{white-space:nowrap}._367UGW_dataTable th{z-index:var(--cm-z-raise);text-align:left;font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary);background:var(--dsw-alias-bg-layer-2);border-bottom:.5px solid var(--dsw-alias-border-l2);white-space:nowrap;padding:6px 10px;font-weight:600;position:sticky;top:0}._367UGW_dataTable td{border-bottom:.5px solid var(--dsw-alias-border-l2);vertical-align:middle;color:var(--dsw-alias-label-primary);padding:6px 10px}._367UGW_dataTable tbody tr:last-child td{border-bottom:none}._367UGW_dataTable tbody tr{transition:background-color .1s ease-out}._367UGW_dataTable tbody tr:hover{background:var(--dsw-alias-interactive-bg-hover)}._367UGW_dataTable tbody tr[data-selected]{background:color-mix(in srgb, var(--cm-accent) 9%, transparent)}._367UGW_dataTable ._367UGW_num{text-align:right;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--cm-fs-table);white-space:nowrap}._367UGW_dataTable ._367UGW_dim{color:var(--dsw-alias-label-secondary)}._367UGW_dataTable ._367UGW_cellActions{text-align:right;white-space:nowrap}._367UGW_dataTable td._367UGW_cellActions{text-overflow:clip;overflow:visible}._367UGW_rowActions{align-items:center;gap:2px;display:inline-flex}._367UGW_cellMain{flex-direction:column;justify-content:center;gap:1px;min-width:0;min-height:30px;display:flex}._367UGW_cellTitle{text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}._367UGW_cellMeta{font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary);align-items:center;gap:6px;min-width:0;display:inline-flex;overflow:hidden}._367UGW_cellMetaNoteText{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}._367UGW_actionRow ._367UGW_banner{flex:auto;min-width:0;margin:0}._367UGW_warnText{color:var(--cm-warn)}._367UGW_kvRow{border-bottom:.5px solid var(--dsw-alias-border-l2);font-size:var(--cm-fs-table);align-items:baseline;gap:10px;min-width:0;padding:4px 0;display:flex}._367UGW_kvRow:last-child{border-bottom:none}._367UGW_kvRow+._367UGW_actionRow{margin-top:8px}._367UGW_checkboxRow+._367UGW_actionRow{margin-top:10px}._367UGW_kvKey{width:88px;color:var(--dsw-alias-label-tertiary);font-size:var(--cm-fs-meta);flex:none}._367UGW_kvValue{overflow-wrap:anywhere;flex:auto;min-width:0}._367UGW_kvValue._367UGW_mono{font-size:var(--cm-fs-table);color:var(--dsw-alias-label-secondary)}._367UGW_segGroup,._367UGW_modeTabs{border-radius:var(--cm-r-3);background:var(--cm-hover);border:none;align-items:center;gap:2px;margin:0 0 10px;padding:2px;display:inline-flex}._367UGW_segItem,._367UGW_modeTab{border-radius:var(--cm-r-2);height:24px;font:inherit;font-size:var(--cm-fs-table);color:var(--dsw-alias-label-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:none;align-items:center;gap:4px;padding:0 10px;font-weight:500;display:inline-flex}._367UGW_segItem:hover,._367UGW_modeTab:hover{color:var(--dsw-alias-label-primary)}._367UGW_segItem:focus-visible,._367UGW_modeTab:focus-visible{outline:var(--cm-focus-width) solid var(--cm-focus-color);outline-offset:1px}._367UGW_segItem[data-active],._367UGW_modeTab[data-active]{background:var(--dsw-alias-bg-layer-1);color:var(--dsw-alias-label-primary);box-shadow:var(--cm-shadow-1);font-weight:500}._367UGW_modeHint{font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary);margin:-4px 0 10px}._367UGW_stepperDot,._367UGW_stepperLabel{transition:background-color var(--cm-motion-fast) ease, border-color var(--cm-motion-fast) ease, color var(--cm-motion-fast) ease}._367UGW_stepper{scrollbar-width:none;align-items:center;padding:2px 0;display:flex;overflow-x:auto}._367UGW_stepper::-webkit-scrollbar{display:none}._367UGW_stepperStep{flex:none;align-items:center;gap:4px;display:inline-flex}._367UGW_stepperDot{border:1.5px solid var(--dsw-alias-border-l2);width:17px;height:17px;font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary);background:var(--dsw-alias-bg-layer-2);border-radius:50%;flex:none;justify-content:center;align-items:center;font-weight:700;display:inline-flex}._367UGW_stepperDot[data-state=current]{border-color:var(--cm-accent);background:var(--cm-accent);color:var(--dsw-alias-label-primary-foreground)}._367UGW_stepperDot[data-state=done]{background:color-mix(in srgb, var(--cm-ok) 16%, transparent);color:var(--cm-ok);border-color:#0000}._367UGW_stepperLabel{font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary);white-space:nowrap}._367UGW_stepperStep[data-state=current] ._367UGW_stepperLabel{color:var(--dsw-alias-label-primary);font-weight:600}._367UGW_stepperStep[data-state=done] ._367UGW_stepperLabel{color:var(--dsw-alias-label-secondary)}._367UGW_stepperConnector{background:var(--dsw-alias-border-l2);flex:none;width:14px;height:1.5px;margin:0 4px}._367UGW_stepperStep[data-state=done] ._367UGW_stepperConnector{background:color-mix(in srgb, var(--cm-ok) 45%, transparent)}._367UGW_progressBlock{margin:0 0 10px}._367UGW_progressTrack{border-radius:var(--cm-r-1);background:color-mix(in srgb, var(--dsw-alias-border-l1) 80%, transparent);height:5px;position:relative;overflow:hidden}._367UGW_progressBar{border-radius:var(--cm-r-1);background:var(--cm-accent);transition:width var(--cm-motion-slow) var(--cm-motion-ease-out);position:absolute;inset:0 auto 0 0}._367UGW_progressBarDone{background:var(--cm-ok)}._367UGW_progressBarFailed{background:var(--cm-error)}._367UGW_progressIndeterminate{border-radius:var(--cm-r-1);background:var(--cm-accent);width:34%;animation:_367UGW_indet 1.15s var(--cm-motion-ease-in-out) infinite;position:absolute;top:0;bottom:0}@keyframes _367UGW_indet{0%{left:-34%}to{left:100%}}._367UGW_progressMeta{font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-secondary);align-items:center;gap:8px;margin-top:4px;display:flex}._367UGW_progressLabel{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}._367UGW_progressPercent{color:var(--dsw-alias-label-tertiary);flex:none;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}._367UGW_progressBadge{font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary);flex:none;align-items:center;gap:4px;display:inline-flex}._367UGW_progressBadgeCount{border-radius:var(--cm-r-3);background:color-mix(in srgb, var(--cm-info) 14%, transparent);color:var(--dsw-alias-label-secondary);padding:0 4px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}._367UGW_progressBadgeSection{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}._367UGW_progressDetail{font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary);margin-top:2px}._367UGW_planScroll,._367UGW_mergeScroll,._367UGW_reportScroll,._367UGW_confirmScroll,._367UGW_diffScroll,._367UGW_historyScroll,._367UGW_consultScroll{border:1px solid var(--dsw-alias-border-l1);border-radius:var(--cm-r-3);background:var(--dsw-alias-bg-base);max-height:380px;overflow:auto}._367UGW_consultScroll{padding:0 6px}._367UGW_logScroll{background:var(--dsw-alias-bg-base);max-height:220px;overflow:auto}._367UGW_dialogMask{z-index:var(--cm-z-mask);background:var(--cm-mask);backdrop-filter:var(--cm-mask-blur);animation:_367UGW_maskIn var(--cm-motion-fast) var(--cm-motion-ease-out);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}@keyframes _367UGW_maskIn{0%{opacity:0}to{opacity:1}}._367UGW_dialogContentCenter{z-index:var(--cm-z-modal);animation:_367UGW_dialogIn var(--cm-motion-base) var(--cm-motion-ease-out);position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes _367UGW_dialogIn{0%{opacity:0}to{opacity:1}}._367UGW_dialogMask[data-state=closed]{animation:_367UGW_maskOut var(--cm-motion-fast) var(--cm-motion-ease-out)}._367UGW_dialogContentCenter[data-state=closed]{animation:_367UGW_dialogOut var(--cm-motion-fast) var(--cm-motion-ease-out)}@keyframes _367UGW_maskOut{to{opacity:0}}@keyframes _367UGW_dialogOut{to{opacity:0;transform:translate(-50%,-50%)scale(.98)}}._367UGW_dialogCard{border-radius:var(--cm-r-surface);background:var(--dsw-alias-bg-layer-2);width:min(640px,100vw - 48px,95%);max-width:calc(100vw - 48px);max-height:min(600px,100vh - 64px,92%);box-shadow:var(--cm-shadow-2);border:0;flex-direction:column;display:flex}._367UGW_dialogHeader{font-size:var(--cm-fs-title);color:var(--dsw-alias-label-primary);padding:12px 16px 0;font-weight:500}._367UGW_dialogHeaderRow{align-items:center;gap:8px;padding:12px 14px 0;display:flex}._367UGW_dialogHeaderRow ._367UGW_dialogHeader{padding:0}._367UGW_dialogClose{margin-left:auto}._367UGW_dialogBody{min-height:0;font-size:var(--cm-fs-base);color:var(--dsw-alias-label-secondary);flex:auto;padding:8px 16px 12px;overflow-y:auto}._367UGW_dialogBodyScroll{scrollbar-gutter:stable;max-height:460px;overflow-y:auto}._367UGW_dialogWide{width:min(720px,100vw - 48px,96%);max-height:min(620px,100vh - 64px,92%)}._367UGW_dialogFooter{border-top:.5px solid var(--dsw-alias-border-l2);justify-content:flex-end;gap:8px;margin:0;padding:10px 16px 14px}._367UGW_updateVersionRow{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px;display:flex}._367UGW_updateVersionArrow{color:var(--dsw-alias-label-tertiary)}._367UGW_updateVersionTarget{font-size:var(--cm-fs-title);color:var(--dsw-alias-label-primary);font-weight:600}._367UGW_updateNotesLoading{justify-content:center;padding:24px 0;display:flex}._367UGW_toastViewport{z-index:var(--cm-z-toast);pointer-events:none;flex-direction:column;align-items:flex-end;gap:8px;max-width:calc(100% - 20px);display:flex;position:absolute;bottom:42px;right:10px}._367UGW_toast{pointer-events:auto;border-radius:var(--cm-r-surface);background:var(--cm-toast-bg);width:fit-content;max-width:420px;box-shadow:var(--cm-shadow-2);font-size:var(--cm-fs-title);color:var(--cm-toast-fg);animation:_367UGW_toastIn var(--cm-motion-base) var(--cm-motion-ease-out);border:0;align-items:flex-start;gap:8px;padding:12px 16px;line-height:1.5;display:flex}@keyframes _367UGW_toastIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}._367UGW_toast[data-kind=ok] ._367UGW_toastGlyph{color:var(--cm-ok)}._367UGW_toast[data-kind=info] ._367UGW_toastGlyph{color:var(--cm-accent)}._367UGW_toast[data-kind=warn] ._367UGW_toastGlyph{color:var(--cm-warn-label)}._367UGW_toast[data-kind=error] ._367UGW_toastGlyph{color:var(--cm-error)}._367UGW_toastGlyph{flex:none;margin-top:1px;display:inline-flex}._367UGW_toastText{word-break:break-word;min-width:0}._367UGW_toast>button{flex:none;width:18px;height:18px;margin-left:2px}._367UGW_statusAction{font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:8px;min-width:0;padding:0;display:inline-flex}._367UGW_statusAction:hover{color:var(--dsw-alias-label-primary);text-decoration:underline}._367UGW_statusAction:focus-visible{outline:var(--cm-focus-width) solid var(--cm-focus-color);outline-offset:1px;border-radius:var(--cm-r-1)}._367UGW_runsCenter{flex-direction:column;gap:10px;display:flex}._367UGW_runsSummary{flex-wrap:wrap;align-items:center;gap:8px;display:flex}._367UGW_runsSummaryTitle{font-size:var(--cm-fs-table);color:var(--dsw-alias-label-primary);font-weight:700}._367UGW_runsCardHead{flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 8px;display:flex}._367UGW_runsCardTitle{font-size:var(--cm-fs-base);color:var(--dsw-alias-label-primary);font-weight:600}._367UGW_runsWarnNote{border:1px solid color-mix(in srgb, var(--cm-warn) 45%, transparent);border-radius:var(--cm-r-2);background:color-mix(in srgb, var(--cm-warn) 10%, transparent);font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-secondary);margin:8px 0 0;padding:6px 8px}._367UGW_runsWarnNoteDetail{color:var(--dsw-alias-label-tertiary);margin:4px 0 0}._367UGW_runsCardTime{font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary);white-space:nowrap;margin-left:auto}._367UGW_runsCounts{font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary);margin:8px 0 0}._367UGW_runsLogTail{border:1px solid var(--dsw-alias-border-l1);border-radius:var(--cm-r-2);background:var(--dsw-alias-bg-base);max-height:108px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-secondary);margin:8px 0 0;padding:6px 8px;line-height:1.5;overflow-y:auto}._367UGW_runsLogLine{white-space:pre-wrap;word-break:break-all}._367UGW_runsCardActions{flex-wrap:wrap;align-items:center;gap:8px;margin:10px 0 0;display:flex}._367UGW_runsOption{border:1px solid var(--dsw-alias-border-l2);border-radius:var(--cm-r-3);background:var(--dsw-alias-bg-layer-2);width:100%;font:inherit;color:var(--dsw-alias-label-primary);text-align:left;cursor:pointer;flex-direction:column;gap:2px;margin:0 0 8px;padding:8px 10px;display:flex}._367UGW_runsOption:hover{border-color:var(--cm-accent)}._367UGW_runsOption:focus-visible{outline:var(--cm-focus-width) solid var(--cm-focus-color);outline-offset:1px}._367UGW_runsOption[data-active]{border-color:var(--cm-accent);background:color-mix(in srgb, var(--cm-accent) 8%, transparent)}._367UGW_runsOptionTitle{font-size:var(--cm-fs-base);align-items:center;gap:6px;font-weight:600;display:flex}._367UGW_runsOptionDesc{font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary)}._367UGW_runsOptionTag{font-size:var(--cm-fs-meta);background:color-mix(in srgb, var(--cm-accent) 14%, transparent);color:var(--cm-accent);border-radius:999px;padding:0 4px;font-weight:600}._367UGW_actionRow{flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 10px;display:flex}._367UGW_actionRowTop{flex-wrap:wrap;align-items:center;gap:8px;margin:10px 0;display:flex}._367UGW_headRow{flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 10px;display:flex}._367UGW_headRow ._367UGW_groupLabel{margin-bottom:0}._367UGW_authorRow{flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;display:flex}._367UGW_authorRow ._367UGW_groupLabel{margin-bottom:0}._367UGW_marketFilterGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:8px;display:grid}._367UGW_marketFilterSearch{grid-column:1/-1}._367UGW_marketFilterMeta{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;display:flex}._367UGW_statStrip{border:1px solid var(--dsw-alias-border-l1);border-radius:var(--cm-r-3);background:var(--dsw-alias-bg-layer-2);flex-wrap:wrap;flex:none;align-items:stretch;gap:6px 0;min-height:32px;margin-bottom:10px;display:flex}._367UGW_statStrip>:last-child{padding-right:8px}._367UGW_statStrip[data-tone=error]{border-color:color-mix(in srgb, var(--cm-error) 45%, transparent);background:color-mix(in srgb, var(--cm-error) 7%, transparent)}._367UGW_statStrip[data-tone=warn]{border-color:color-mix(in srgb, var(--cm-warn) 40%, transparent);background:color-mix(in srgb, var(--cm-warn) 6%, transparent)}._367UGW_statHealth{font-size:var(--cm-fs-table);color:var(--dsw-alias-label-primary);white-space:nowrap;flex:none;align-items:center;gap:6px;padding:4px 8px;font-weight:600;display:flex}._367UGW_statHealthAction{font:inherit;font-size:var(--cm-fs-table);cursor:pointer;text-align:left;background:0 0;border:none;font-weight:600}._367UGW_statHealthAction:hover{background:var(--dsw-alias-interactive-bg-hover)}._367UGW_statHealthAction:focus-visible{outline:var(--cm-focus-width) solid var(--cm-focus-color);outline-offset:-2px;border-radius:var(--cm-r-2)}._367UGW_statSeg{border:none;border-left:1px solid var(--dsw-alias-border-l1);font:inherit;font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-secondary);white-space:nowrap;cursor:pointer;background:0 0;flex:none;align-items:center;gap:6px;padding:4px 8px;display:flex}._367UGW_statSeg>span:first-child{color:var(--dsw-alias-label-tertiary)}._367UGW_statSeg:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}._367UGW_statSeg:hover>span:first-child{color:var(--dsw-alias-label-secondary)}._367UGW_statSeg:focus-visible{outline:var(--cm-focus-width) solid var(--cm-focus-color);outline-offset:-2px}._367UGW_statSeg b{color:var(--dsw-alias-label-primary);font-variant-numeric:tabular-nums;font-weight:700}._367UGW_statSegDim{color:var(--dsw-alias-label-tertiary)}._367UGW_toolRow{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px;display:flex}._367UGW_infoValue{flex:auto;align-items:center;gap:8px;min-width:0;display:inline-flex}._367UGW_infoValue ._367UGW_mono{font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-secondary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}._367UGW_copyBtn{border-radius:var(--cm-r-1);width:20px;height:20px;font:inherit;font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:none;flex:none;justify-content:center;align-items:center;padding:0;line-height:1.25;display:inline-flex}._367UGW_copyBtn:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}._367UGW_copyBtn:focus-visible{outline:var(--cm-focus-width) solid var(--cm-focus-color);outline-offset:1px}._367UGW_activityRow ._367UGW_copyBtn{opacity:0}._367UGW_activityRow:hover ._367UGW_copyBtn,._367UGW_activityRow ._367UGW_copyBtn:focus-visible{opacity:1}._367UGW_activityCard{flex-direction:column;min-height:0;margin-bottom:0;display:flex}._367UGW_diskUsageCard{height:var(--cm-disk-card-h);min-height:var(--cm-disk-card-h);max-height:var(--cm-disk-card-h)}._367UGW_diskUsageScroll{flex:auto;min-height:0;max-height:none}._367UGW_activityHeader{align-items:center;gap:8px;margin-bottom:8px;display:flex}._367UGW_activityTitle{font-size:var(--cm-fs-meta);letter-spacing:.02em;color:var(--dsw-alias-label-tertiary);flex:auto;font-weight:700}._367UGW_activityRows{border:1px solid var(--dsw-alias-border-l1);border-radius:var(--cm-r-3);background:var(--dsw-alias-bg-base);flex:auto;min-height:0;overflow-y:auto}._367UGW_activityRow{border-bottom:.5px solid var(--dsw-alias-border-l2);font-size:var(--cm-fs-table);grid-template-columns:72px minmax(0,1fr) auto;align-items:center;gap:10px;min-width:0;padding:4px 10px;line-height:1.5;display:grid}._367UGW_activityRow:last-child{border-bottom:none}._367UGW_activityTime{color:var(--dsw-alias-label-tertiary);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;line-height:1.5;font-size:var(--cm-fs-meta);white-space:nowrap;justify-self:end}._367UGW_activityKind{color:var(--dsw-alias-label-tertiary);line-height:1.5;font-size:var(--cm-fs-meta);white-space:nowrap;flex:none}._367UGW_activitySummary{min-width:0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;line-height:1.5;font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-secondary);align-items:center;gap:6px;display:inline-flex}._367UGW_activitySummaryText{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}._367UGW_activityBadge{flex:none;justify-content:flex-end;align-items:center;line-height:1.5;display:inline-flex}._367UGW_activityResultOk{line-height:1.5;font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary);white-space:nowrap;align-items:center;gap:4px;display:inline-flex}._367UGW_factGrid{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px 12px;display:grid}._367UGW_factCell{flex-direction:column;gap:2px;min-width:0;display:flex}._367UGW_factLabel{font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary);white-space:nowrap}._367UGW_factValue{font-size:var(--cm-fs-table);color:var(--dsw-alias-label-primary);white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}._367UGW_sectionGrid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:0 24px;display:grid}._367UGW_sectionRow{border-bottom:.5px solid var(--dsw-alias-border-l2);font-size:var(--cm-fs-table);grid-template-columns:minmax(0,1fr) auto 56px;align-items:center;gap:10px;min-width:0;padding:4px 0;display:grid}._367UGW_sectionRow:nth-last-child(-n+2){border-bottom:none}._367UGW_sectionName{min-width:0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-secondary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}._367UGW_sectionCount{color:var(--dsw-alias-label-tertiary);font-size:var(--cm-fs-meta);font-variant-numeric:tabular-nums;white-space:nowrap;justify-self:end}._367UGW_sectionSize{font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-secondary);font-variant-numeric:tabular-nums;white-space:nowrap;justify-self:end}._367UGW_activityEmpty{font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary);text-align:center;padding:16px}._367UGW_snapshotList{flex-direction:column;gap:10px;margin-bottom:12px;display:flex}._367UGW_snapshotRow{border:1px solid var(--dsw-alias-border-l1);border-radius:var(--cm-r-3);background:var(--dsw-alias-bg-layer-2);align-items:center;gap:10px;padding:12px 14px;display:flex}._367UGW_snapshotRow[data-selected]{border-color:var(--cm-accent);background:color-mix(in srgb, var(--cm-accent) 7%, transparent)}._367UGW_snapshotRowHeader{font-size:var(--cm-fs-table);align-items:center;gap:8px;display:flex}._367UGW_snapshotRowMain{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;font-weight:500;overflow:hidden}._367UGW_snapshotRowText{flex-direction:column;flex:auto;gap:4px;min-width:0;display:flex}._367UGW_snapshotRowName{font-weight:500;font-size:var(--cm-fs-base);word-break:break-all;line-height:1.5}._367UGW_snapshotRowMeta{min-width:0;font-size:var(--cm-fs-table);color:var(--dsw-alias-label-secondary);align-items:center;gap:10px;display:flex}._367UGW_snapshotRowFacts{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;flex:none}._367UGW_snapshotList._367UGW_reportScroll{background:var(--dsw-alias-bg-layer-2);margin-bottom:0;padding:10px 12px 10px 10px}._367UGW_reasonList{flex-direction:column;flex-basis:100%;gap:4px;min-width:0;display:flex}._367UGW_reasonLine{align-items:baseline;gap:6px;min-width:0;display:flex}._367UGW_reasonLine>span:first-child{overflow-wrap:anywhere;min-width:0}._367UGW_viewBody{flex-direction:column;flex:auto;min-width:0;min-height:0;display:flex}._367UGW_resultScroll{flex:auto;min-height:0;overflow-y:auto}._367UGW_resultFooter{border-top:1px solid var(--dsw-alias-border-l1);flex:none;align-items:center;margin:10px 0 0;padding-top:10px}._367UGW_fillCard{flex:auto;margin-bottom:0}._367UGW_fillViewport{flex-direction:column;flex:auto;min-height:0;margin-bottom:0;display:flex}._367UGW_fillViewport ._367UGW_tableScroll{flex:auto;max-height:none}._367UGW_compositionViewport{flex:auto;min-height:0;overflow:auto}._367UGW_sparseFill{flex-direction:column;flex:auto;justify-content:flex-start;align-items:flex-start;gap:10px;min-height:280px;display:flex}._367UGW_pickerRoot{flex-direction:column;gap:8px;min-width:0;display:flex;position:relative}._367UGW_pickerOverlay{z-index:var(--cm-z-sticky);animation:_367UGW_maskIn var(--cm-motion-fast) var(--cm-motion-ease-out);border-radius:var(--cm-r-3);background:color-mix(in srgb, var(--dsw-alias-bg-layer-2) 62%, transparent);backdrop-filter:blur(1px);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}._367UGW_pickerToolbar{align-items:center;gap:8px;min-width:0;display:flex}._367UGW_pickerToolbar ._367UGW_input{flex:auto;min-width:0}._367UGW_pickerList{border:1px solid var(--dsw-alias-border-l1);border-radius:var(--cm-r-3);background:var(--dsw-alias-bg-layer-2);max-height:320px;padding:4px 10px;overflow:auto}._367UGW_pickerModalBody{flex-direction:column;gap:8px;height:min(420px,62vh);min-height:0;display:flex}._367UGW_pickerModalBody ._367UGW_pickerRoot{flex:auto;min-height:0}._367UGW_pickerModalBody ._367UGW_pickerList{scrollbar-gutter:stable;flex:auto;min-height:0;max-height:none}._367UGW_pickerGroup+._367UGW_pickerGroup{border-top:.5px solid var(--dsw-alias-border-l2)}._367UGW_pickerUnit{animation:_367UGW_itemEnter var(--cm-motion-base) var(--cm-motion-ease-out);align-items:center;min-width:0;padding:2px 0 2px 16px;display:flex}._367UGW_pickerUnitName{font-size:var(--cm-fs-table);color:var(--dsw-alias-label-primary);text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:280px;overflow:hidden}._367UGW_pickerTreeRow{align-items:center;gap:4px;min-width:0;padding:4px 0;display:flex}._367UGW_pickerTreeRow>:last-child{flex:auto;min-width:0}._367UGW_pickerChevronSpacer{flex:none;width:18px;height:18px;display:inline-block}._367UGW_pickerGroupTitle{border-top:1px solid var(--dsw-alias-border-l2);align-items:center;gap:6px;padding:8px 0 4px;display:flex}._367UGW_pickerGroupTitle:first-child{border-top:none;padding-top:0}._367UGW_pickerGroupTitleName{font-size:var(--cm-fs-meta);letter-spacing:.02em;color:var(--dsw-alias-label-secondary);font-weight:600}._367UGW_pickerSubgroup{padding-left:18px}._367UGW_pickerSubgroupName{font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-secondary);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:600;overflow:hidden}._367UGW_pickerChildren{border-left:1px solid var(--dsw-alias-border-l1);margin-left:8px;padding-left:4px}._367UGW_pickerUnitNested{gap:4px}._367UGW_pickerMore{justify-content:center;align-items:center;gap:6px;padding:4px 0 2px 16px;display:flex}._367UGW_pickerUnitDetail{max-width:220px;font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}._367UGW_pickerCount{font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary);font-variant-numeric:tabular-nums;white-space:nowrap}._367UGW_pickerFooter{border-top:1px solid var(--dsw-alias-border-l1);font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-secondary);padding-top:6px}._367UGW_optionsRow{align-items:center;gap:16px;display:flex;& ._367UGW_noticeSlot{flex-direction:column;justify-content:center;min-height:40px;display:flex}& ._367UGW_noticeSlot ._367UGW_banner{margin:0}& ._367UGW_noticeLine{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}margin-bottom:4px}._367UGW_groupList{flex-direction:column;gap:8px;margin-bottom:10px;display:flex}._367UGW_groupCard{margin:0}._367UGW_categoryItem{flex-wrap:wrap;align-items:baseline;gap:8px;min-width:0;display:flex}._367UGW_categoryName{color:var(--dsw-alias-label-primary);flex:none;font-weight:500}._367UGW_categoryDesc{font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary);min-width:0}._367UGW_optionsCard{margin:0 0 10px}._367UGW_secretFields ._367UGW_field{margin-bottom:0}._367UGW_secretFields{background:0 0;border:none;border-radius:0;grid-template-columns:1fr 1fr;gap:0 10px;margin:6px 0 10px;padding:0;display:grid}._367UGW_warnList{font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-secondary);margin:4px 0 0;padding-left:18px}._367UGW_wizardStepperRow{align-items:center;gap:10px;margin-bottom:10px;display:flex}._367UGW_conflictDetail{margin-top:2px}._367UGW_conflictList{flex-direction:column;gap:8px;margin-bottom:10px;display:flex}._367UGW_conflictItem{border:1px solid color-mix(in srgb, var(--cm-warn) 35%, transparent);border-radius:var(--cm-r-3);background:var(--dsw-alias-bg-layer-2);padding:10px 12px}._367UGW_conflictHead{font-size:var(--cm-fs-table);align-items:center;gap:8px;margin-bottom:6px;display:flex}._367UGW_conflictId{color:var(--dsw-alias-label-primary);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:600;overflow:hidden}._367UGW_conflictOptions{flex-wrap:wrap;gap:4px 14px;margin-top:6px;display:flex}._367UGW_conflictChoices{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:8px;display:grid}._367UGW_choiceCard{border:1px solid var(--dsw-alias-border-l2);border-radius:var(--cm-r-3);background:var(--dsw-alias-bg-base);font-size:var(--cm-fs-table);color:var(--dsw-alias-label-secondary);cursor:pointer;align-items:center;gap:6px;padding:8px 10px;font-weight:500;transition:border-color .12s ease-out,background-color .12s ease-out;display:flex}._367UGW_choiceCard:hover{border-color:color-mix(in srgb, var(--cm-accent) 40%, var(--dsw-alias-border-l2))}._367UGW_choiceCard:focus-within{outline:var(--cm-focus-width) solid var(--cm-focus-color);outline-offset:1px}._367UGW_choiceCard[data-selected]{border-color:var(--cm-accent);background:color-mix(in srgb, var(--cm-accent) 9%, transparent);color:var(--dsw-alias-label-primary)}._367UGW_choiceCard input{width:13px;height:13px;accent-color:var(--cm-accent);flex:none;margin:0}._367UGW_choiceTitle{min-width:0}._367UGW_conflictDetail{border:1px solid var(--dsw-alias-border-l1);border-radius:var(--cm-r-2);background:var(--dsw-alias-bg-base);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-secondary);overflow-wrap:anywhere;white-space:normal;padding:8px 10px}._367UGW_conflictPrefix{color:var(--dsw-alias-label-tertiary);margin-bottom:4px}._367UGW_conflictLine{align-items:baseline;gap:8px;padding:4px 0;display:flex}._367UGW_conflictLine+._367UGW_conflictLine{border-top:.5px solid var(--dsw-alias-border-l2)}._367UGW_conflictLineLabel{min-width:56px;color:var(--dsw-alias-label-tertiary);flex:none;font-weight:600}._367UGW_conflictLineValue{overflow-wrap:anywhere;flex:auto;min-width:0}._367UGW_pathMappingList{flex-direction:column;gap:6px;margin-bottom:10px;display:flex}._367UGW_pathRow{border:1px solid var(--dsw-alias-border-l1);border-radius:var(--cm-r-3);background:var(--dsw-alias-bg-layer-2);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--cm-fs-meta);flex-direction:column;align-items:stretch;gap:8px;padding:8px 10px;display:flex}._367UGW_pathOld,._367UGW_pathNew{border:1px solid var(--dsw-alias-border-l2);border-radius:var(--cm-r-2);background:var(--dsw-alias-bg-base);overflow-wrap:anywhere;flex-direction:column;flex:auto;width:100%;min-width:0;padding:4px 8px;display:flex}._367UGW_pathValue{color:var(--dsw-alias-label-secondary);white-space:pre-wrap;overflow-wrap:anywhere;margin:2px 0 0}._367UGW_pathIssueKind{flex:none}._367UGW_secretsList{flex-direction:column;display:flex}._367UGW_snapshotPickerRow{flex-wrap:nowrap;align-items:flex-end;gap:8px;margin-top:10px;margin-bottom:10px;display:flex}._367UGW_snapshotPickerRow ._367UGW_field{margin-bottom:0}._367UGW_pickerAction{flex:none;align-items:center;display:inline-flex}._367UGW_logPanel{border:1px solid var(--dsw-alias-border-l1);border-radius:var(--cm-r-3);background:var(--dsw-alias-bg-base);margin-bottom:10px;overflow:hidden}._367UGW_logHeader{border-bottom:1px solid var(--dsw-alias-border-l1);font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary);background:var(--dsw-alias-bg-layer-2);align-items:center;gap:8px;padding:6px 10px;font-weight:600;display:flex}._367UGW_logLine{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-secondary);white-space:pre-wrap;overflow-wrap:anywhere;padding:1px 10px;line-height:1.5}._367UGW_logCounts{color:var(--dsw-alias-label-tertiary);font-weight:500}._367UGW_logFilterButton{font:inherit;font-size:var(--cm-fs-meta);color:var(--cm-accent);cursor:pointer;background:0 0;border:none;padding:0 4px}._367UGW_logFilterButton[data-active]{color:var(--dsw-alias-label-primary);font-weight:700}._367UGW_logEntry+._367UGW_logEntry{border-top:.5px solid var(--dsw-alias-border-l2)}._367UGW_logLine[data-level=fail]{color:var(--cm-error)}._367UGW_logLine[data-level=warn]{color:var(--cm-warn)}._367UGW_logLine[data-level=ok]{color:var(--cm-ok)}._367UGW_logLine[data-level=skip]{color:var(--dsw-alias-label-tertiary)}._367UGW_logLine[data-level=running]{color:var(--dsw-alias-label-primary)}._367UGW_logDetail{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary);white-space:pre-wrap;overflow-wrap:anywhere;padding:0 10px 0 22px;line-height:1.5}._367UGW_logDetail[data-kind=command]{color:var(--dsw-alias-label-secondary)}._367UGW_logEmpty{font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary);text-align:center;padding:12px}._367UGW_logJumpButton{font:inherit;font-size:var(--cm-fs-meta);color:var(--cm-accent);cursor:pointer;background:0 0;border:none;margin-left:auto;padding:0 4px}._367UGW_reportView{border:1px solid var(--dsw-alias-border-l1);border-radius:var(--cm-r-3);background:var(--dsw-alias-bg-layer-2);margin-bottom:10px;overflow:hidden}._367UGW_reportList{flex-direction:column;display:flex}._367UGW_confirmItem{border-bottom:1px solid color-mix(in srgb, var(--dsw-alias-border-l1) 50%, transparent);padding:8px 10px}._367UGW_confirmItem:last-child{border-bottom:none}._367UGW_confirmItemHead{flex-wrap:wrap;align-items:center;gap:8px;display:flex}._367UGW_confirmItemDesc{min-width:0;font-size:var(--cm-fs-base);color:var(--dsw-alias-label-primary);overflow-wrap:anywhere;flex:200px}._367UGW_confirmItemHead+._367UGW_conflictItem{margin-top:8px}._367UGW_reportBlock{margin-bottom:10px}._367UGW_reportProblemRow{border-bottom:1px solid color-mix(in srgb, var(--dsw-alias-border-l1) 50%, transparent);padding:6px 10px}._367UGW_reportProblemRow:last-child{border-bottom:none}._367UGW_reportProblemHead{align-items:center;gap:6px;display:flex}._367UGW_reportProblemText{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--cm-fs-table);color:var(--dsw-alias-label-primary);overflow-wrap:anywhere}._367UGW_reportProblemReason{font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-secondary);overflow-wrap:anywhere;margin-top:2px;line-height:1.5}._367UGW_reportSectionRow{align-items:center;gap:6px;padding:4px 0;display:flex}._367UGW_reportWarningRow{font-size:var(--cm-fs-meta);color:var(--cm-warn);overflow-wrap:anywhere;padding:2px 10px;line-height:1.5}._367UGW_reportDetails{font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary);margin-top:4px}._367UGW_reportDetails>summary{cursor:pointer;color:var(--dsw-alias-label-secondary);padding:2px 0}._367UGW_reportDetails ._367UGW_reportScroll{margin-top:6px}._367UGW_reportView ._367UGW_reportScroll{background:0 0;border:none;border-radius:0}._367UGW_reportBody{flex-direction:column;gap:2px;padding:8px 12px;display:flex}._367UGW_reportHeadline{font-size:var(--cm-fs-base);color:var(--dsw-alias-label-primary);margin-bottom:2px;font-weight:600}._367UGW_reportText{font-size:var(--cm-fs-table);color:var(--dsw-alias-label-secondary);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;padding:8px 12px}._367UGW_reportFooter{border-top:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-base);align-items:center;gap:8px;padding:8px 12px;display:flex}._367UGW_errorBanner{border:1px solid color-mix(in srgb, var(--cm-error) 45%, transparent);border-radius:var(--cm-r-3);background:color-mix(in srgb, var(--cm-error) 8%, transparent);font-size:var(--cm-fs-table);align-items:flex-start;gap:8px;margin:0 0 10px;padding:8px 12px;display:flex}._367UGW_errorTitle{color:var(--cm-error);font-weight:600}._367UGW_errorLine{white-space:pre-wrap;overflow-wrap:anywhere;color:var(--dsw-alias-label-secondary);margin:0}._367UGW_errorList{font-size:var(--cm-fs-meta);margin:4px 0 0;padding-left:18px}._367UGW_errorItem{overflow-wrap:anywhere}._367UGW_errorReason{white-space:pre-wrap;overflow-wrap:anywhere;min-width:0;color:var(--dsw-alias-label-tertiary);margin:0}._367UGW_errorFooter{margin-top:6px}._367UGW_errorAction{margin-right:8px}._367UGW_errorActionLabel{color:var(--cm-accent)}._367UGW_inspectGroup{margin-bottom:10px}._367UGW_kindTag{border-radius:var(--cm-r-1);background:var(--dsw-alias-interactive-bg-hover);height:16px;font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-secondary);white-space:nowrap;align-items:center;padding:0 6px;font-weight:600;display:inline-flex}._367UGW_kindTagOk{background:color-mix(in srgb, var(--cm-ok) 13%, transparent);color:var(--cm-ok)}._367UGW_kindTagInfo{background:color-mix(in srgb, var(--cm-accent) 13%, transparent);color:var(--cm-accent)}._367UGW_kindTagWarn{background:color-mix(in srgb, var(--cm-warn) 13%, transparent);color:var(--cm-warn)}._367UGW_kindTagError{background:color-mix(in srgb, var(--cm-error) 13%, transparent);color:var(--cm-error)}._367UGW_restorePlan{animation:_367UGW_itemEnter var(--cm-motion-base) var(--cm-motion-ease-out);flex-direction:column;gap:10px;display:flex}._367UGW_restorePlanList{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}._367UGW_restorePlanRow,._367UGW_restorePlanRowStatic{border-radius:var(--cm-r-2);align-items:center;gap:8px;width:100%;padding:4px 6px;display:flex}._367UGW_restorePlanRow{color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:none}._367UGW_restorePlanRow:hover{background:var(--dsw-alias-interactive-bg-hover)}._367UGW_restorePlanRow:focus-visible{box-shadow:0 0 0 2px color-mix(in srgb, var(--cm-accent) 55%, transparent);outline:none}._367UGW_restorePlanPath{min-width:0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--cm-fs-table);color:var(--dsw-alias-label-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}._367UGW_restorePlanStat{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary);font-variant-numeric:tabular-nums;white-space:nowrap;flex:none}._367UGW_restorePlanChevron{color:var(--dsw-alias-label-tertiary);flex:none}._367UGW_restorePlanNote{font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-secondary);overflow-wrap:anywhere;padding:0 6px 4px 24px}._367UGW_restorePlanGroupHead{align-items:center;gap:8px;margin:0 0 4px;display:flex}._367UGW_restorePlanGroupHead ._367UGW_groupLabel{margin-bottom:0;display:inline}._367UGW_diffGroupToggle{color:var(--dsw-alias-label-secondary);font-size:var(--cm-fs-meta);cursor:pointer;background:0 0;border:none;padding:0;font-weight:700}._367UGW_diffGroupToggle:hover{color:var(--dsw-alias-label-primary)}._367UGW_diffGroupToggle:focus-visible{border-radius:var(--cm-r-1);box-shadow:0 0 0 2px color-mix(in srgb, var(--cm-accent) 55%, transparent);outline:none}._367UGW_diffStatTotal{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--cm-fs-meta);font-variant-numeric:tabular-nums}._367UGW_diffStatAdd{color:var(--cm-ok)}._367UGW_diffStatDel{color:var(--cm-error)}._367UGW_rollbackTabIcon{flex:none;align-items:center;margin-right:6px;display:inline-flex}._367UGW_diffFileHead{border-bottom:1px solid var(--dsw-alias-border-l1);font-size:var(--cm-fs-table);flex:none;align-items:center;gap:8px;padding:2px 6px;line-height:1.5;display:flex}._367UGW_diffFilePath{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--dsw-alias-label-secondary);flex:auto;overflow:hidden}._367UGW_diffFileStat{font-variant-numeric:tabular-nums;flex:none}._367UGW_diffPane{margin:2px 0 8px}._367UGW_diffPaneFill{flex-direction:column;height:100%;min-height:0;margin:0;display:flex}._367UGW_diffPane ._367UGW_diffScroll{max-height:min(80vh,800px)}._367UGW_dialogCard ._367UGW_diffPane ._367UGW_diffScroll{max-height:380px}._367UGW_diffPaneFill ._367UGW_diffScroll{flex:auto;min-height:0;max-height:calc(100vh - 90px)}._367UGW_diffTable{border-collapse:collapse;table-layout:fixed;width:100%;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--cm-fs-table);line-height:1.5}._367UGW_diffNoColW3{width:calc(3ch + 18px)}._367UGW_diffNoColW4{width:calc(4ch + 18px)}._367UGW_diffNoColW5{width:calc(5ch + 18px)}._367UGW_diffNoColW6{width:calc(6ch + 18px)}._367UGW_diffNoHead{border-bottom:1px solid var(--dsw-alias-border-l1);border-right:1px solid var(--dsw-alias-border-l1);color:var(--dsw-alias-label-tertiary);font-size:var(--cm-fs-meta);text-align:left;padding:2px 6px;font-weight:600;line-height:1.5}._367UGW_diffNoHead+._367UGW_diffNoHead{border-left:1px solid var(--dsw-alias-border-l1)}._367UGW_diffHunkRow td{background:var(--dsw-alias-bg-layer-2);color:var(--dsw-alias-label-tertiary);padding:2px 6px}._367UGW_diffTable tbody td:nth-child(3),._367UGW_diffHunkRow td+td{border-left:1px solid var(--dsw-alias-border-l1)}._367UGW_diffNo{color:var(--dsw-alias-label-tertiary);font-variant-numeric:tabular-nums;text-align:right;vertical-align:top;user-select:none;padding:1px 4px}._367UGW_diffNoDel{background:color-mix(in srgb, var(--cm-error) 12%, transparent);color:var(--cm-error);box-shadow:inset 3px 0 0 var(--cm-error)}._367UGW_diffNoAdd{background:color-mix(in srgb, var(--cm-ok) 12%, transparent);color:var(--cm-ok);box-shadow:inset 3px 0 0 var(--cm-ok)}._367UGW_diffCell{color:var(--dsw-alias-label-secondary);white-space:pre-wrap;overflow-wrap:anywhere;vertical-align:top;padding:1px 6px}._367UGW_diffCellAdd{background:color-mix(in srgb, var(--cm-ok) 12%, transparent)}._367UGW_diffCellDel{background:color-mix(in srgb, var(--cm-error) 12%, transparent)}._367UGW_nextStepsGroup{margin-bottom:10px}._367UGW_nextStepsList{max-height:132px;overflow-y:auto}._367UGW_rollbackBox{border:1px solid var(--dsw-alias-border-l2);border-radius:var(--cm-r-3);background:var(--dsw-alias-bg-base);margin-bottom:10px;padding:8px 10px}._367UGW_statRow{flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;display:flex}._367UGW_statRow:not(:last-child){margin-bottom:10px}._367UGW_consultSection{margin-top:10px}._367UGW_consultSection:first-of-type{margin-top:8px}._367UGW_consultSection ._367UGW_statRow{margin-top:0}._367UGW_hiddenFile{display:none}._367UGW_cliName,._367UGW_cliCommand{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--cm-fs-meta)}._367UGW_cliCommand{color:var(--dsw-alias-label-secondary);white-space:pre-wrap;overflow-wrap:anywhere;margin:0}._367UGW_historyGroup{margin-bottom:12px}._367UGW_historyRow{border-bottom:.5px solid var(--dsw-alias-border-l2);font-size:var(--cm-fs-table);align-items:flex-start;gap:8px;padding:6px 8px;display:flex}._367UGW_historyRow:last-child{border-bottom:none}._367UGW_historyRowMain{flex:auto;min-width:0}._367UGW_historyMeta{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:2px;display:flex}._367UGW_historySummary{overflow-wrap:anywhere;color:var(--dsw-alias-label-secondary);display:block}._367UGW_historyTime{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary);flex:none;padding-top:1px}._367UGW_historySections{font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary)}._367UGW_profileRow{border:1px solid var(--dsw-alias-border-l1);border-radius:var(--cm-r-3);background:var(--dsw-alias-bg-layer-2);margin-bottom:6px;padding:8px 12px}._367UGW_profileRow[data-selected]{border-color:var(--cm-accent);background:color-mix(in srgb, var(--cm-accent) 7%, transparent)}._367UGW_profileRowHeader{font-size:var(--cm-fs-table);align-items:center;gap:8px;display:flex}._367UGW_profileRowMain{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;font-weight:500;overflow:hidden}button._367UGW_profileRowMain{font:inherit;color:var(--dsw-alias-label-primary);text-align:left;cursor:pointer;background:0 0;border:none;flex-direction:column;align-items:flex-start;gap:2px;padding:0;display:flex}._367UGW_profileRowTitle{align-items:center;gap:6px;min-width:0;max-width:100%;display:flex}._367UGW_profileRowName{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}._367UGW_profileRowMeta{max-width:100%;font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;font-weight:400;display:block;overflow:hidden}._367UGW_detailLines{font-size:var(--cm-fs-meta);flex-direction:column;gap:2px;min-width:0;display:flex}button._367UGW_profileRowMain:hover{color:var(--cm-accent)}._367UGW_listHeaderRow{align-items:center;gap:8px;margin:0 0 8px;display:flex}._367UGW_listHeaderRow ._367UGW_groupLabel{margin-bottom:0}._367UGW_listHeaderRow ._367UGW_cellMeta{flex:auto;min-width:0}._367UGW_badgeRow{flex:none;align-items:center;gap:4px;display:inline-flex}._367UGW_actionRow[data-inline]{flex:none;margin:0}._367UGW_aboutLinkRow{flex-wrap:wrap;align-items:center;gap:8px;display:flex}._367UGW_aboutAuthor{font-size:var(--cm-fs-base);color:var(--cm-accent);overflow-wrap:anywhere;font-weight:600;text-decoration:none}._367UGW_aboutAuthor:hover{text-decoration:underline}._367UGW_aboutAuthor:focus-visible{outline:var(--cm-focus-width) solid var(--cm-focus-color);outline-offset:1px;border-radius:var(--cm-r-1)}._367UGW_consultDimension{border-bottom:.5px solid var(--dsw-alias-border-l2);font-size:var(--cm-fs-table);padding:6px 0}._367UGW_consultDimension:last-child{border-bottom:none}._367UGW_severityError{color:var(--cm-error);font-weight:600}._367UGW_viewBody{gap:10px}._367UGW_viewBody>*{margin-bottom:0}._367UGW_viewBody>._367UGW_statRow{margin-top:0;margin-bottom:0}._367UGW_viewBody:after{content:\"\";flex:none;height:8px}@media (width<=900px){._367UGW_secretFields{grid-template-columns:1fr}._367UGW_pagePad{padding:10px 12px 12px}}._367UGW_marketReviewPage{flex-direction:column;flex:1 0 auto;gap:10px;min-height:200px;display:flex}._367UGW_marketReviewPage ._367UGW_pickerRoot{flex:auto}._367UGW_marketReviewScroll,._367UGW_marketReviewPage ._367UGW_pickerList{scrollbar-gutter:stable;flex:auto;min-height:200px;max-height:800px;overflow:auto}._367UGW_marketReviewScroll{border:1px solid var(--dsw-alias-border-l1);border-radius:var(--cm-r-3);background:var(--dsw-alias-bg-base);padding:6px 10px}@media (prefers-reduced-motion:reduce){._367UGW_toast,._367UGW_statusDot[data-pulse],._367UGW_pagePad,._367UGW_dialogMask,._367UGW_dialogContentCenter,._367UGW_snapshotList>*,._367UGW_dataTable tbody tr,._367UGW_viewEnter,._367UGW_pickerOverlay,._367UGW_pickerUnit,._367UGW_banner,._367UGW_empty{animation:none}._367UGW_statusDot,._367UGW_stepperDot,._367UGW_stepperLabel{transition:none}._367UGW_selectMenu,._367UGW_selectChevron{transition:none;animation:none}._367UGW_artifactDetailWrap,._367UGW_artifactDetailWrap>*{transition:none}._367UGW_dialogMask[data-state=closed],._367UGW_dialogContentCenter[data-state=closed],._367UGW_restorePlan,._367UGW_infoHintBubble{animation:none}._367UGW_collapse{transition:none}._367UGW_skeletonBar{background-image:none;animation:none}}._367UGW_sourceList{flex-direction:column;gap:6px;margin-bottom:10px;display:flex}._367UGW_sourceRow{border:1px solid var(--dsw-alias-border-l1);border-radius:var(--cm-r-3);background:var(--dsw-alias-bg-layer-2);align-items:flex-start;gap:8px;min-width:0;padding:8px 10px;display:flex}._367UGW_sourceRow[data-selected]{border-color:var(--cm-accent);background:color-mix(in srgb, var(--cm-accent) 7%, transparent)}._367UGW_sourceRow[data-disabled]{opacity:.7}._367UGW_sourceRowMain{flex:auto;min-width:0}._367UGW_sourceRowHead{align-items:center;gap:8px;min-width:0;display:flex}._367UGW_sourceRowName{font-size:var(--cm-fs-table);color:var(--dsw-alias-label-primary);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:600;overflow:hidden}._367UGW_sourceRowHead>:not(._367UGW_sourceRowName){flex:none}._367UGW_sourcePaths{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary);overflow-wrap:anywhere;margin-top:4px;line-height:1.5;display:block}._367UGW_skipList{font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-secondary);flex-direction:column;gap:4px;margin:6px 0 0;padding:0;display:flex}._367UGW_skipRow{flex-wrap:wrap;align-items:baseline;gap:6px;min-width:0;display:flex}._367UGW_skipCode{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--cm-fs-meta);border-radius:var(--cm-r-1);background:color-mix(in srgb, var(--dsw-alias-label-tertiary) 12%, transparent);color:var(--dsw-alias-label-secondary);white-space:nowrap;flex:none;padding:1px 4px}._367UGW_skipText{overflow-wrap:anywhere;flex:auto;min-width:0}._367UGW_skipMeta{font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary);font-variant-numeric:tabular-nums;flex:none}._367UGW_chatEntryScope{--cm-text-1:var(--dsw-alias-label-primary);--cm-text-3:var(--dsw-alias-label-tertiary);--cm-surface-2:var(--dsw-alias-bg-layer-2);--cm-chat-bubble:var(--dsw-specific-bubble,color-mix(in srgb, var(--cm-text-1) 12%, transparent));--cm-line-1:var(--dsw-alias-border-l1);--cm-line-2:var(--dsw-alias-border-l2);--cm-fs-meta:11px;--cm-fs-base:var(--dsh-content-font-size,14px);--cm-lh-base:calc(22px + var(--dsh-content-font-delta,0px));--cm-text-2:var(--dsw-alias-label-secondary);--cm-r-chat:var(--dsw-radius-xl,20px);--cm-r-act:var(--dsw-radius-sm,8px);--cm-chat-card-bg:var(--dsw-specific-input-major,transparent);--cm-chat-hover-bg:var(--dsw-alias-interactive-bg-hover,var(--cm-line-1));--cm-fs-second:var(--dsh-content-font-size-secondary,13px);--cm-lh-second:calc(24px + var(--dsh-content-font-delta,0px));--cm-lh-ref:calc(18px + var(--dsh-content-font-delta-secondary,0px));--cm-fs-card:14px;--cm-lh-card:22px;--cm-lh-meta:15px;--cm-chat-action:calc(28px + var(--dsh-content-font-delta,0px));--cm-chat-glyph:calc(15px + var(--dsh-content-font-delta,0px));--cm-sp-2:4px;--cm-sp-3:6px;--cm-sp-4:8px;--cm-sp-5:10px;--cm-sp-6:12px;--cm-sp-8:16px;--cm-r-2:6px;--cm-r-3:8px;min-width:0;color:var(--cm-text-1);font-size:var(--cm-fs-base);line-height:var(--cm-lh-base);display:block}._367UGW_chatEntryRow{align-items:flex-end;gap:var(--cm-sp-3);flex-direction:column;display:flex}._367UGW_chatEntryStack{align-items:flex-end;gap:var(--cm-sp-4);min-width:0;max-width:min(calc(var(--dsh-chat-content-width,748px) * .702), 82%);flex-direction:column;display:flex}._367UGW_chatBubble{max-width:100%;padding:var(--cm-sp-5) var(--cm-sp-8);border-radius:var(--cm-r-chat);background:var(--cm-chat-bubble);color:var(--cm-text-1);white-space:pre-wrap;word-break:break-word}._367UGW_chatBubbleText{white-space:pre-wrap;word-break:break-word}._367UGW_chatFallbackBubble{border-left:2px solid var(--cm-text-1)}._367UGW_chatAttachmentRow{justify-content:flex-end;gap:var(--cm-sp-4);flex-wrap:wrap;max-width:100%;display:flex}._367UGW_chatFileCard{align-items:center;gap:var(--cm-sp-5);box-sizing:border-box;width:240px;min-height:64px;padding:var(--cm-sp-4) var(--cm-sp-6);border:.5px solid var(--cm-line-2);border-radius:var(--cm-r-chat);background:var(--cm-chat-card-bg);flex:0 0 240px;display:inline-flex}._367UGW_chatFileIcon{flex:none;width:28px;height:28px}._367UGW_chatFileContent{flex-direction:column;flex:1;min-width:0;display:flex}._367UGW_chatFileExt{border-radius:var(--cm-r-2);background:var(--cm-line-1);min-width:28px;height:28px;color:var(--cm-text-1);font-size:var(--cm-fs-meta);letter-spacing:.02em;flex:none;justify-content:center;align-items:center;display:inline-flex}._367UGW_chatFileName{color:var(--cm-text-1);font-size:var(--cm-fs-card);font-weight:500;line-height:var(--cm-lh-card);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}._367UGW_chatFileMeta{color:var(--cm-text-3);font-size:12px;line-height:var(--cm-lh-meta);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}._367UGW_chatRawBlock{font-size:var(--cm-fs-meta);color:var(--cm-text-3)}._367UGW_chatRawSummary{cursor:pointer}._367UGW_chatRawPre{max-height:220px;margin:var(--cm-sp-2) 0 0;padding:var(--cm-sp-3);border-radius:var(--cm-r-2);background:var(--cm-surface-2);color:var(--cm-text-3);white-space:pre-wrap;word-break:break-all;overflow:auto}._367UGW_chatEntryActions{align-items:center;gap:var(--cm-sp-4);height:var(--cm-chat-action);margin-top:var(--cm-sp-2);margin-left:calc(-1 * var(--cm-sp-3));display:flex}._367UGW_chatEntryTime{color:var(--cm-text-3);font-size:var(--cm-fs-second);line-height:var(--cm-lh-second);white-space:nowrap;padding-right:var(--cm-sp-6)}._367UGW_chatEntryNotice{max-width:min(calc(var(--dsh-chat-content-width,748px) * .702), 82%);color:var(--cm-text-3);font-size:var(--cm-fs-meta)}._367UGW_chatEntryReference{color:var(--cm-text-3);font-size:var(--cm-fs-second);line-height:var(--cm-lh-ref)}._367UGW_chatActionBtn{width:var(--cm-chat-action);height:var(--cm-chat-action);padding:var(--cm-sp-3);border-radius:var(--cm-r-act);color:var(--cm-text-3);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;display:inline-flex}._367UGW_chatActionBtn svg{width:var(--cm-chat-glyph);height:var(--cm-chat-glyph)}._367UGW_chatActionBtn:hover{background:var(--cm-chat-hover-bg);color:var(--cm-text-2)}@media (hover:hover){:is([data-chat-flow-kind=user],[data-chat-flow-kind=steering]):has(~:is([data-chat-flow-kind=user],[data-chat-flow-kind=steering])) ._367UGW_chatEntryActions{opacity:0;transition:opacity var(--cm-motion-fast)}:is([data-chat-flow-kind=user],[data-chat-flow-kind=steering]):has(~:is([data-chat-flow-kind=user],[data-chat-flow-kind=steering])):hover ._367UGW_chatEntryActions,:is([data-chat-flow-kind=user],[data-chat-flow-kind=steering]):has(~:is([data-chat-flow-kind=user],[data-chat-flow-kind=steering])):focus-within ._367UGW_chatEntryActions{opacity:1}}._367UGW_chatActionBtn:disabled{color:var(--cm-text-3);opacity:.5;cursor:not-allowed}._367UGW_rollbackFileList{margin-top:var(--cm-sp-2);flex-direction:column;display:flex}._367UGW_rollbackFileRow{align-items:center;gap:var(--cm-sp-3);padding:var(--cm-sp-3) 0 var(--cm-sp-3) var(--cm-sp-2);grid-template-columns:auto minmax(0,1fr) auto;display:grid;position:relative}._367UGW_rollbackFileRow:before{content:\"\";left:0;top:var(--cm-sp-2);bottom:var(--cm-sp-2);background:var(--cm-info);width:2px;position:absolute}._367UGW_rollbackFileRow[data-kind=create]:before{background:var(--cm-ok)}._367UGW_rollbackFileRow[data-kind=delete]:before{background:var(--cm-error)}._367UGW_rollbackFileRow:not([data-kind]):before{display:none}._367UGW_rollbackFileIcon{flex:none;align-items:center;display:inline-flex}._367UGW_rollbackFilePath{min-width:0;color:var(--cm-text-1);font-size:var(--cm-fs-table);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}._367UGW_rollbackFileDir{color:var(--cm-text-3);transition:color var(--cm-motion-fast) ease}._367UGW_rollbackFileStat{justify-content:flex-end;justify-self:end;align-items:baseline;gap:var(--cm-sp-2);display:inline-flex}._367UGW_rollbackAdded{color:var(--cm-ok);font-size:var(--cm-fs-table);font-variant-numeric:tabular-nums;flex:none}._367UGW_rollbackRemoved{color:var(--cm-error);font-size:var(--cm-fs-table);font-variant-numeric:tabular-nums;flex:none}._367UGW_rollbackDeleted{color:var(--cm-error);font-size:var(--cm-fs-table);flex:none}._367UGW_rollbackFilePath:is(button){font:inherit;font-size:var(--cm-fs-table);color:var(--cm-text-1);text-align:left;cursor:pointer;transition:color var(--cm-motion-fast) ease;background:0 0;border:0;padding:0}._367UGW_rollbackFilePath:is(button):hover:not(:disabled),._367UGW_rollbackFilePath:is(button):focus-visible,._367UGW_rollbackFilePath:is(button):hover:not(:disabled) ._367UGW_rollbackFileDir,._367UGW_rollbackFilePath:is(button):focus-visible ._367UGW_rollbackFileDir{color:var(--cm-accent)}._367UGW_rollbackFilePath:is(button):disabled{color:var(--cm-text-1);cursor:not-allowed;opacity:.7}._367UGW_previewChoiceRow{justify-content:space-between;align-items:baseline;gap:var(--cm-sp-4);margin:0 0 var(--cm-sp-2);display:flex}._367UGW_previewScope{align-items:baseline;gap:var(--cm-sp-3);font-size:var(--cm-fs-meta);color:var(--cm-text-2);font-variant-numeric:tabular-nums;flex:none;display:inline-flex}._367UGW_previewScopeStats{align-items:baseline;gap:var(--cm-sp-3);display:inline-flex}._367UGW_previewScope[data-off=true] ._367UGW_previewScopeStats{color:var(--cm-text-3);opacity:.75}._367UGW_previewScopeOff{color:var(--cm-text-3)}._367UGW_inlineDiffBox{gap:var(--cm-sp-2);margin-top:var(--cm-sp-2);padding:var(--cm-sp-2);border:1px solid var(--cm-line-1);border-radius:var(--cm-r-2);flex-direction:column;display:flex}._367UGW_rollbackWarnings{flex-direction:column;gap:4px;margin-bottom:10px;display:flex}._367UGW_rollbackToolbar{align-items:center;gap:8px;margin-bottom:8px;display:flex}._367UGW_rollbackSummary{font-size:var(--cm-fs-table);color:var(--dsw-alias-label-secondary);font-variant-numeric:tabular-nums;font-weight:600}._367UGW_rollbackScroll{padding:8px}._367UGW_rollbackGroup{border:1px solid var(--dsw-alias-border-l1);border-radius:var(--cm-r-3);background:var(--dsw-alias-bg-layer-2);flex-direction:column;flex:auto;gap:8px;min-height:0;padding:8px 10px;display:flex}._367UGW_rollbackGroupHead{border-bottom:1px solid var(--dsw-alias-border-l1);flex-wrap:wrap;align-items:center;gap:6px;padding-bottom:6px;display:flex}._367UGW_rollbackGroupTitle{font-size:var(--cm-fs-table);color:var(--dsw-alias-label-secondary);overflow-wrap:anywhere;font-weight:600}._367UGW_rollbackGroupUnit{text-overflow:ellipsis;white-space:nowrap;text-align:right;min-width:0;font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary);flex:auto;margin-left:auto;overflow:hidden}._367UGW_rollbackPoints{flex-direction:column;gap:6px;display:flex}._367UGW_rollbackPoint{border:1px solid var(--dsw-alias-border-l1);border-radius:var(--cm-r-3);background:var(--dsw-alias-bg-base);border-left-width:2px;flex-direction:column;gap:4px;padding:8px 10px;display:flex}._367UGW_rollbackPoint[data-kind=auto]{border-left-color:var(--cm-ok)}._367UGW_rollbackPoint[data-kind=guard]{border-left-color:var(--cm-info)}._367UGW_rollbackPoint[data-kind=unknown]{border-left-color:var(--cm-text-3)}._367UGW_rollbackPointTop{flex-wrap:wrap;align-items:center;gap:6px;display:flex}._367UGW_rollbackPointTurn{font-size:var(--cm-fs-table);color:var(--dsw-alias-label-primary);font-variant-numeric:tabular-nums;font-weight:600}._367UGW_rollbackPointActions{flex:none;align-items:center;gap:6px;margin-left:auto;display:flex}._367UGW_rollbackPointMeta{font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary);flex-wrap:wrap;align-items:center;gap:6px;line-height:1.5;display:flex}._367UGW_rollbackMetaDot{color:var(--dsw-alias-label-tertiary);flex:none}._367UGW_rollbackLedger{align-items:stretch;gap:10px;height:340px;display:flex}._367UGW_rollbackSessions{flex-direction:column;flex:0 0 148px;gap:4px;height:100%;display:flex;overflow:auto}._367UGW_rollbackSessionItem{text-align:left;border:1px solid var(--dsw-alias-border-l1);border-radius:var(--cm-r-2);background:var(--dsw-alias-bg-base);width:100%;color:var(--dsw-alias-label-secondary);cursor:pointer;flex-direction:column;gap:2px;padding:6px 8px;display:flex}._367UGW_rollbackSessionItem:hover{background:var(--dsw-alias-bg-layer-2)}._367UGW_rollbackSessionItem[data-active]{border-color:var(--cm-accent);background:var(--dsw-alias-bg-layer-2);color:var(--dsw-alias-label-primary)}._367UGW_rollbackSessionId{font-size:var(--cm-fs-table);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}._367UGW_rollbackSessionMeta{font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary);align-items:center;gap:2px;line-height:1.5;display:flex}._367UGW_rollbackLedgerMain{flex-direction:column;flex:auto;gap:8px;min-width:0;height:100%;display:flex}._367UGW_rollbackPointsScroll{flex:auto;min-height:0;padding:8px;overflow:auto}._367UGW_rollbackPointNote{text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:100%;overflow:hidden}._367UGW_shHeaderTrailing{align-items:center;gap:8px;margin-left:auto;display:inline-flex}._367UGW_shHeaderTrailing~._367UGW_dialogClose{margin-left:0}._367UGW_shSummary{border:1px solid var(--dsw-alias-border-l1);border-radius:var(--cm-r-3);background:var(--dsw-alias-bg-layer-2);flex-direction:column;gap:10px;margin:0 0 10px;padding:12px 14px;display:flex}._367UGW_shMetrics{flex-wrap:wrap;align-items:flex-end;gap:8px 24px;display:flex}._367UGW_shMetric{flex-direction:column;gap:2px;min-width:0;display:flex}._367UGW_shMetricValue{font-size:var(--cm-fs-title);color:var(--dsw-alias-label-primary);font-variant-numeric:tabular-nums;font-weight:600;line-height:1.25}._367UGW_shMetricLabel{font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary)}._367UGW_shMetric[data-tone=warn] ._367UGW_shMetricValue{color:var(--cm-warn)}._367UGW_shMetric[data-tone=ok] ._367UGW_shMetricValue{color:var(--cm-ok)}._367UGW_shSeverities{flex-wrap:wrap;align-items:center;gap:6px;display:flex}._367UGW_shSeverity{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-base);font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-secondary);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:2px 8px;line-height:1.5;display:inline-flex}._367UGW_shSeverityCount{color:var(--dsw-alias-label-primary);font-variant-numeric:tabular-nums;font-weight:600}._367UGW_shSeverity[data-severity=blocksStartup],._367UGW_shSeverity[data-severity=unloadable]{border-color:color-mix(in srgb, var(--cm-error) 45%, transparent)}._367UGW_shSeverity[data-severity=nextRequestFails],._367UGW_shSeverity[data-severity=invisible]{border-color:color-mix(in srgb, var(--cm-warn) 45%, transparent)}._367UGW_shNotes{border-top:1px solid color-mix(in srgb, var(--dsw-alias-border-l1) 60%, transparent);flex-direction:column;gap:4px;padding-top:8px;display:flex}._367UGW_shSectionHead{flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 10px;display:flex}._367UGW_shSectionHead ._367UGW_groupLabel{margin-bottom:0}._367UGW_shSectionTitle{font-size:var(--cm-fs-title);color:var(--dsw-alias-label-primary);font-weight:600;line-height:1.25}._367UGW_snapshotList._367UGW_shScroll{background:var(--dsw-alias-bg-base);padding:8px}._367UGW_shRow{border:1px solid var(--dsw-alias-border-l1);border-radius:var(--cm-r-3);background:var(--dsw-alias-bg-layer-2);border-left-width:2px;flex-direction:column;gap:4px;padding:8px 10px;display:flex}._367UGW_shRow[data-severity=blocksStartup],._367UGW_shRow[data-severity=unloadable]{border-left-color:var(--cm-error)}._367UGW_shRow[data-severity=nextRequestFails],._367UGW_shRow[data-severity=invisible]{border-left-color:var(--cm-warn)}._367UGW_shRow[data-severity=ok]{border-left-color:var(--cm-ok)}._367UGW_shRowTop{flex-wrap:wrap;align-items:center;gap:6px;display:flex}._367UGW_shRowId{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:var(--cm-fs-table);color:var(--dsw-alias-label-primary);flex:auto;font-weight:600;overflow:hidden}._367UGW_shRowActions{flex:none;align-items:center;gap:6px;margin-left:auto;display:flex}._367UGW_shRowMeta{font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary);flex-wrap:wrap;align-items:center;gap:6px;line-height:1.5;display:flex}._367UGW_shIssue{border-radius:var(--cm-r-1);background:color-mix(in srgb, var(--dsw-alias-label-tertiary) 12%, transparent);color:var(--dsw-alias-label-secondary);align-items:center;padding:2px 6px;display:inline-flex}._367UGW_shRowFacts{white-space:nowrap;font-variant-numeric:tabular-nums;flex:none;margin-left:auto}._367UGW_shMetaDot{color:var(--dsw-alias-label-tertiary);flex:none}._367UGW_shLines{flex-direction:column;gap:4px;display:flex}._367UGW_shPanel{border:1px solid var(--dsw-alias-border-l2);border-radius:var(--cm-r-3);background:var(--dsw-alias-bg-base);margin:0 0 10px;padding:10px 12px}._367UGW_shPanelHead{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:6px;display:flex}._367UGW_shPanelTitle{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:var(--cm-fs-table);color:var(--dsw-alias-label-primary);flex:auto;font-weight:600;overflow:hidden}._367UGW_shCommands{border:1px solid var(--dsw-alias-border-l1);border-radius:var(--cm-r-3);background:var(--dsw-alias-bg-layer-2);margin:0 0 10px;padding:0;list-style:none;overflow:hidden}._367UGW_shCommand{border-bottom:1px solid color-mix(in srgb, var(--dsw-alias-border-l1) 50%, transparent);align-items:center;gap:8px;padding:8px 10px;display:flex}._367UGW_shCommand:last-child{border-bottom:none}._367UGW_shCommand code{overflow-wrap:anywhere;min-width:0;font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-secondary);flex:auto}._367UGW_mergeView{flex-direction:column;gap:10px;display:flex}._367UGW_mergeOverview{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}._367UGW_mergeTile{border:.5px solid var(--cm-line-1);border-radius:var(--cm-r-3);background:var(--cm-surface-1);flex-direction:column;gap:2px;padding:8px 10px;display:flex}._367UGW_mergeTile[data-tone=ok]{border-color:color-mix(in srgb, var(--cm-ok) 40%, transparent);background:color-mix(in srgb, var(--cm-ok) 8%, transparent)}._367UGW_mergeTile[data-tone=info]{border-color:color-mix(in srgb, var(--cm-info) 40%, transparent);background:color-mix(in srgb, var(--cm-info) 8%, transparent)}._367UGW_mergeTile[data-tone=warn]{border-color:color-mix(in srgb, var(--cm-warn) 40%, transparent);background:color-mix(in srgb, var(--cm-warn) 8%, transparent)}._367UGW_mergeTile[data-tone=error]{border-color:color-mix(in srgb, var(--cm-error) 40%, transparent);background:color-mix(in srgb, var(--cm-error) 8%, transparent)}._367UGW_mergeTileValue{font-size:var(--cm-fs-title);color:var(--cm-text-1);font-variant-numeric:tabular-nums;font-weight:600;line-height:1.25}._367UGW_mergeTileLabel{font-size:var(--cm-fs-meta);color:var(--cm-text-2);line-height:1.25}._367UGW_mergeToolbar{flex-wrap:wrap;align-items:center;gap:6px;display:flex}._367UGW_mergeToolbarLabel{font-size:var(--cm-fs-meta);color:var(--cm-text-3)}._367UGW_mergeIconLabel{align-items:center;gap:4px;display:inline-flex}._367UGW_mergeResult{border:.5px solid var(--cm-line-1);border-radius:var(--cm-r-3);background:var(--cm-surface-1);flex-direction:column;gap:2px;padding:10px 12px;display:flex}._367UGW_mergeFooterSummary{min-width:0;font-size:var(--cm-fs-meta);color:var(--cm-text-2);line-height:1.5}._367UGW_mergeSection{border:.5px solid var(--cm-line-1);border-radius:var(--cm-r-3);background:var(--cm-surface-1);padding:10px 12px}._367UGW_mergeSection+._367UGW_mergeSection{margin-top:8px}._367UGW_mergeSectionHead{flex-wrap:wrap;align-items:center;gap:8px;display:flex}._367UGW_mergeSectionName{font-size:var(--cm-fs-title);color:var(--cm-text-1);font-weight:600}._367UGW_mergeMeta{font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary)}._367UGW_mergeActions{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}._367UGW_mergeActionActive{background:var(--cm-ghost-active-fill);border-color:var(--cm-ghost-active-border);font-weight:600}._367UGW_mergeConflictRow{border:.5px solid var(--cm-line-1);border-radius:var(--cm-r-2);background:color-mix(in srgb, var(--cm-text-1) 4%, transparent);margin-top:8px;padding:8px}._367UGW_mergeConflictPath{overflow-wrap:anywhere;min-width:0;font-size:var(--cm-fs-table);color:var(--dsw-alias-label-primary);align-items:baseline;gap:6px;display:flex}._367UGW_mergeKind{border-radius:var(--cm-r-1);background:color-mix(in srgb, var(--cm-text-1) 8%, transparent);font-size:var(--cm-fs-meta);color:var(--cm-text-2);flex:none;padding:0 6px;line-height:1.5}._367UGW_mergeConflictReason{font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary);margin-top:4px}._367UGW_mergeCols{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:6px;display:grid}._367UGW_mergeCol{min-width:0}._367UGW_mergeColLabel{font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary);display:block}._367UGW_mergeColValue{white-space:pre-wrap;overflow-wrap:anywhere;max-height:88px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--cm-fs-meta);color:var(--cm-text-2);margin:0;overflow:auto}._367UGW_mergeScroll[data-fit=modal]{scrollbar-gutter:stable;max-height:46vh;padding:8px}._367UGW_syncActivity{flex-direction:column;gap:4px;margin-top:8px;display:flex}._367UGW_syncActivityTrack{display:block}._367UGW_syncActivityLabel{font-size:var(--cm-fs-meta);color:var(--cm-text-2);line-height:1.5}";
15845
+ const css = "._367UGW_section{height:100%;min-height:0;font-family:var(--dsw-font-family);font-size:var(--cm-fs-base);color:var(--dsw-alias-label-primary);flex-direction:column;line-height:1.5;display:flex;position:relative;overflow:hidden}body{--cm-disk-card-h:420px;--cm-text-1:var(--dsw-alias-label-primary);--cm-text-2:var(--dsw-alias-label-secondary);--cm-text-3:var(--dsw-alias-label-tertiary);--cm-text-on-accent:var(--dsw-alias-label-primary-foreground);--cm-surface-1:var(--dsw-alias-bg-layer-1);--cm-surface-2:var(--dsw-alias-bg-layer-2);--cm-surface-hover:var(--dsw-alias-interactive-bg-hover);--cm-line-1:var(--dsw-alias-border-l1);--cm-line-2:var(--dsw-alias-border-l2);--cm-input-bg:var(--dsw-specific-input-major);--cm-chat-bubble:var(--dsw-specific-bubble,color-mix(in srgb, var(--cm-text-1) 12%, transparent));--cm-accent:var(--dsw-alias-state-business-primary);--cm-accent-fill:var(--dsw-alias-button-info-fill);--cm-accent-hover:var(--dsw-alias-button-info-hover);--cm-ok:var(--dsw-alias-state-success-primary);--cm-info:var(--cm-accent);--cm-warn:var(--dsw-alias-state-warn-primary);--cm-error:var(--dsw-alias-state-error-primary);--cm-idle:var(--dsw-alias-state-idle-primary,var(--dsw-alias-label-tertiary));--cm-brand:var(--dsw-alias-brand-primary,var(--cm-accent));--cm-warn-label:var(--dsw-alias-state-warn-label,var(--cm-warn));--cm-fs-meta:var(--dsw-font-xxxs-11-font-size,11px);--cm-fs-table:var(--dsw-font-xxs-12-font-size,12px);--cm-fs-base:12.5px;--cm-fs-title:var(--dsw-font-xs-13-font-size,13px);--cm-sp-1:2px;--cm-sp-2:4px;--cm-sp-3:6px;--cm-sp-4:8px;--cm-sp-5:10px;--cm-sp-6:12px;--cm-sp-7:14px;--cm-sp-8:16px;--cm-sp-9:24px;--cm-r-1:var(--dsw-radius-xs,4px);--cm-r-2:var(--dsw-radius-sm,8px);--cm-r-3:var(--dsw-radius-md,12px);--cm-r-surface:var(--dsw-radius-lg,16px);--cm-r-pill:999px;--cm-h-sm:24px;--cm-h-md:28px;--cm-h-lg:32px;--cm-menu-surface:var(--dsw-menu-surface-fill,var(--dsw-alias-bg-layer-2));--cm-menu-backdrop:var(--dsw-menu-backdrop-filter,none);--cm-menu-icon:var(--dsw-alias-menu-icon,var(--dsw-alias-label-secondary));--cm-tooltip-bg:var(--dsw-alias-tooltip-bg,var(--dsw-alias-bg-layer-2));--cm-tooltip-fg:var(--dsw-static-neutral-bluish-00,var(--dsw-alias-label-primary));--cm-toast-bg:var(--dsw-alias-toast-bg,var(--dsw-alias-bg-layer-2));--cm-toast-fg:var(--dsw-alias-toast-label,var(--dsw-alias-label-primary));--cm-mask:var(--dsw-alias-bg-mask-1,color-mix(in srgb, var(--dsw-alias-bg-base) 55%, transparent));--cm-mask-blur:var(--dsw-mask-blur,none);--cm-skeleton:var(--dsw-alias-bg-skeleton,color-mix(in srgb, var(--dsw-alias-label-tertiary) 14%, transparent));--cm-hover:var(--dsw-alias-interactive-bg-hover);--cm-active:var(--dsw-alias-interactive-bg-active,var(--dsw-alias-interactive-bg-hover));--cm-hover-danger:var(--dsw-alias-interactive-bg-hover-danger,color-mix(in srgb, var(--cm-error) 12%, transparent));--cm-ghost-active-fill:var(--dsw-alias-button-ghost-active-fill,color-mix(in srgb, var(--cm-accent) 16%, transparent));--cm-ghost-active-border:var(--dsw-alias-button-ghost-active-border,color-mix(in srgb, var(--cm-accent) 45%, transparent));--cm-primary-fill:var(--dsw-alias-button-primary-fill,var(--cm-accent-fill));--cm-primary-hover:var(--dsw-alias-button-primary-hover,var(--cm-accent-hover));--cm-shadow-1:var(--dsw-elevation-soft,0 10px 26px color-mix(in srgb, var(--dsw-alias-bg-base) 45%, transparent));--cm-shadow-2:var(--dsw-elevation-prominent,0 12px 32px color-mix(in srgb, var(--dsw-alias-bg-base) 40%, transparent));--cm-focus-width:var(--dsw-focus-ring-width,2px);--cm-focus-color:var(--dsw-focus-ring-color,var(--cm-accent));--cm-z-raise:1;--cm-z-sticky:2;--cm-z-task:90;--cm-z-mask:100;--cm-z-modal:101;--cm-z-pop:110;--cm-z-toast:120;--cm-motion-fast:.12s;--cm-motion-base:.18s;--cm-motion-slow:.3s;--cm-motion-ease-out:cubic-bezier(.16, 1, .3, 1);--cm-motion-ease-in-out:cubic-bezier(.4, 0, .6, 1)}._367UGW_section :is(button,a,input,select,textarea,[role=tab]){transition-property:background-color,border-color,color;transition-duration:var(--cm-motion-fast);transition-timing-function:ease}._367UGW_section :is(button,a,input,select,textarea,[role=tab]):focus-visible{outline:var(--cm-focus-width) solid var(--cm-focus-color);outline-offset:2px}._367UGW_mono{font-variant-numeric:tabular-nums;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}._367UGW_section svg{color:inherit;flex:none}._367UGW_shellNav{flex:none;align-items:center;gap:8px;padding:8px;display:flex}._367UGW_navStrip{border-radius:var(--cm-r-3);background:var(--cm-hover);border:none;flex:auto;align-items:center;gap:2px;min-width:0;padding:2px;display:flex;overflow:hidden}._367UGW_navTab,._367UGW_navMore{border-radius:var(--cm-r-2);height:24px;font:inherit;font-size:var(--cm-fs-table);color:var(--dsw-alias-label-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:none;flex:none;align-items:center;gap:4px;padding:0 10px;font-weight:500;display:inline-flex;position:relative}._367UGW_navTab:hover:not(:disabled),._367UGW_navMore:hover:not(:disabled){color:var(--dsw-alias-label-primary);background:var(--dsw-alias-interactive-bg-hover)}._367UGW_navMore:disabled{opacity:.4;cursor:default}._367UGW_navTab:focus-visible,._367UGW_navMore:focus-visible{outline:var(--cm-focus-width) solid var(--cm-focus-color);outline-offset:1px;border-radius:var(--cm-r-2)}._367UGW_navTab[data-active],._367UGW_navMore[data-active]{background:var(--cm-ghost-active-fill);box-shadow:inset 0 0 0 1px var(--cm-ghost-active-border);color:var(--dsw-alias-label-primary);font-weight:600}._367UGW_navDot{background:var(--cm-error);border-radius:50%;flex:none;width:6px;height:6px}._367UGW_navMoreRoot{flex:none}._367UGW_navMeasure{visibility:hidden;pointer-events:none;align-items:center;gap:2px;padding:2px;display:flex;position:absolute;top:0;left:-9999px}._367UGW_navActions{flex:none;align-items:center;gap:4px;margin-left:4px;display:flex}._367UGW_navActions ._367UGW_ghostButton[data-active]{border-color:color-mix(in srgb, var(--cm-accent) 55%, transparent);color:var(--cm-accent)}._367UGW_iconBtn{border-radius:var(--cm-r-2);width:28px;height:28px;font:inherit;font-size:var(--cm-fs-title);color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:none;justify-content:center;align-self:center;align-items:center;padding:0;line-height:1.25;display:inline-flex}._367UGW_iconBtn:hover{background:var(--cm-hover);color:var(--dsw-alias-label-primary)}._367UGW_iconBtn:focus-visible{outline:var(--cm-focus-width) solid var(--cm-focus-color);outline-offset:1px}._367UGW_iconBtn:disabled{opacity:.4;cursor:default}._367UGW_iconBtn[data-size=sm]{border-radius:var(--cm-r-1);width:18px;height:18px}._367UGW_iconBtn[data-active]{background:var(--cm-ghost-active-fill);box-shadow:inset 0 0 0 1px var(--cm-ghost-active-border);color:var(--cm-accent)}._367UGW_iconBtn[data-danger]{color:var(--cm-error)}._367UGW_iconBtn[data-danger]:hover{background:color-mix(in srgb, var(--cm-error) 12%, transparent);border-color:var(--cm-error);color:var(--cm-error)}._367UGW_shellMain{overscroll-behavior:contain;flex-direction:column;flex:auto;min-height:0;display:flex;overflow-y:auto}._367UGW_pagePad{min-height:0;animation:_367UGW_pageEnter var(--cm-motion-base) var(--cm-motion-ease-out);flex-direction:column;flex:auto;padding:12px 16px 16px;display:flex}@keyframes _367UGW_pageEnter{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}._367UGW_snapshotList>*,._367UGW_dataTable tbody tr{animation:_367UGW_itemEnter var(--cm-motion-base) var(--cm-motion-ease-out) both}._367UGW_snapshotList>:nth-child(2),._367UGW_dataTable tbody tr:nth-child(2){animation-delay:24ms}._367UGW_snapshotList>:nth-child(3),._367UGW_dataTable tbody tr:nth-child(3){animation-delay:48ms}._367UGW_snapshotList>:nth-child(4),._367UGW_dataTable tbody tr:nth-child(4){animation-delay:72ms}._367UGW_snapshotList>:nth-child(n+5),._367UGW_dataTable tbody tr:nth-child(n+5){animation-delay:96ms}@keyframes _367UGW_itemEnter{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}._367UGW_viewEnter{animation:_367UGW_itemEnter var(--cm-motion-base) var(--cm-motion-ease-out);flex-direction:column;flex:auto;gap:10px;min-height:0;display:flex}._367UGW_collapse{visibility:hidden;transition:grid-template-rows var(--cm-motion-base) var(--cm-motion-ease-out), visibility 0s linear var(--cm-motion-base);grid-template-rows:0fr;display:grid}._367UGW_collapse[data-open]{visibility:visible;transition:grid-template-rows var(--cm-motion-base) var(--cm-motion-ease-out), visibility 0s;grid-template-rows:1fr}._367UGW_collapseInner{min-height:0;overflow:hidden}._367UGW_shellContent{flex-direction:column;flex:auto;min-height:0;display:flex;position:relative}._367UGW_taskPanel{z-index:var(--cm-z-task);background:var(--dsw-alias-bg-layer-1);min-height:0;animation:_367UGW_taskPanelIn var(--cm-motion-base) var(--cm-motion-ease-out);flex-direction:column;display:flex;position:absolute;inset:0}@keyframes _367UGW_taskPanelIn{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:translate(0)}}._367UGW_taskHead{border-bottom:1px solid var(--dsw-alias-border-l1);flex:none;align-items:center;gap:8px;height:44px;padding:0 12px;display:flex}._367UGW_taskTitle{font-size:var(--cm-fs-title);color:var(--dsw-alias-label-primary);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:700;overflow:hidden}._367UGW_taskBody{overscroll-behavior:contain;flex:auto;min-height:0;padding:12px 16px 16px;overflow-y:auto}@media (prefers-reduced-motion:reduce){._367UGW_taskPanel{animation:none}}._367UGW_statusBar{border:1px solid var(--dsw-alias-border-l1);border-radius:var(--cm-r-3);background:var(--dsw-alias-bg-layer-2);height:28px;font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary);white-space:nowrap;flex:none;align-items:center;gap:10px;margin:0 8px 8px;padding:0 10px;display:flex;overflow:hidden}._367UGW_bannerSlot{padding:8px 12px 0}._367UGW_syncChannelBody{margin-top:10px}._367UGW_syncChannelBody ._367UGW_collapseInner{flex-direction:column;gap:10px;display:flex}._367UGW_statusTask{color:var(--dsw-alias-label-secondary);font-weight:600}._367UGW_statusProgress{background:color-mix(in srgb, var(--cm-accent) 20%, transparent);border-radius:999px;flex:none;width:60px;height:4px;display:inline-block;position:relative;overflow:hidden}._367UGW_statusProgress:after{content:\"\";background:var(--cm-accent);width:40%;animation:_367UGW_statusIndeterminate 1.2s var(--cm-motion-ease-in-out) infinite;border-radius:999px;position:absolute;inset:0 auto 0 0}@keyframes _367UGW_statusIndeterminate{0%{transform:translate(-100%)}to{transform:translate(250%)}}._367UGW_statusDot{width:10px;height:10px;color:var(--cm-idle);transition:color var(--cm-motion-fast) ease;border-radius:50%;flex:none;display:inline-block}._367UGW_statusDot[data-kind=ok]{color:var(--cm-ok)}._367UGW_statusDot[data-kind=info]{color:var(--cm-accent)}._367UGW_statusDot[data-kind=warn]{color:var(--cm-warn)}._367UGW_statusDot[data-kind=error]{color:var(--cm-error)}._367UGW_statusDot[data-pulse]{animation:1.2s ease-in-out infinite _367UGW_statusPulse}._367UGW_statusDot:after{content:\"\";background:currentColor;border-radius:50%;width:60%;height:60%;margin:20%;display:block}@keyframes _367UGW_statusPulse{0%,to{opacity:1}50%{opacity:.35}}._367UGW_statusText{text-overflow:ellipsis;min-width:0;overflow:hidden}._367UGW_statusSpacer{flex:auto}._367UGW_primaryButton,._367UGW_ghostButton,._367UGW_dangerButton{border-radius:var(--cm-r-2);height:28px;font:inherit;font-size:var(--cm-fs-table);white-space:nowrap;cursor:pointer;user-select:none;border:.5px solid #0000;justify-content:center;align-items:center;gap:4px;padding:0 10px;font-weight:500;line-height:1.25;display:inline-flex}._367UGW_primaryButton{background:var(--cm-primary-fill);color:var(--cm-text-on-accent)}._367UGW_primaryButton:hover:not(:disabled){background:var(--cm-primary-hover)}._367UGW_ghostButton{border-color:var(--dsw-alias-border-l3);color:var(--dsw-alias-label-primary);background:0 0}._367UGW_ghostButton:hover:not(:disabled){background:var(--cm-hover)}._367UGW_ghostButton:active:not(:disabled){background:var(--cm-active)}._367UGW_dangerButton{border-color:color-mix(in srgb, var(--cm-error) 45%, transparent);color:var(--cm-error);background:0 0}._367UGW_dangerButton:hover:not(:disabled){background:var(--cm-hover-danger);border-color:var(--cm-error)}._367UGW_primaryButton:focus-visible,._367UGW_ghostButton:focus-visible,._367UGW_dangerButton:focus-visible{outline:var(--cm-focus-width) solid var(--cm-focus-color);outline-offset:1px}._367UGW_primaryButton:disabled,._367UGW_ghostButton:disabled,._367UGW_dangerButton:disabled{opacity:.4;cursor:default}._367UGW_primaryButton[data-size=sm],._367UGW_ghostButton[data-size=sm],._367UGW_dangerButton[data-size=sm]{height:24px;font-size:var(--cm-fs-meta);border-radius:var(--cm-r-2);padding:0 8px}._367UGW_input{border:.5px solid var(--dsw-alias-border-l4);border-radius:var(--cm-r-2);background:var(--dsw-specific-input-major);height:28px;font:inherit;font-size:var(--cm-fs-base);color:var(--dsw-alias-label-primary);box-sizing:border-box;padding:0 8px}._367UGW_field>._367UGW_input,._367UGW_field>._367UGW_selectRoot{width:100%;position:relative}._367UGW_input::placeholder{color:var(--dsw-alias-label-dimmed)}._367UGW_input:hover{border-color:color-mix(in srgb, var(--cm-accent) 40%, var(--dsw-alias-border-l2))}._367UGW_input:focus{border-color:var(--cm-accent);outline:none}._367UGW_input:disabled{color:var(--dsw-alias-label-tertiary);cursor:default}._367UGW_input[type=password]{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--cm-fs-table)}._367UGW_selectRoot{vertical-align:middle;min-width:0;max-width:100%;font-size:var(--cm-fs-base);display:inline-block;position:relative}._367UGW_selectTrigger{box-sizing:border-box;border:.5px solid var(--dsw-alias-border-l4);border-radius:var(--cm-r-2);background:var(--dsw-specific-input-major);width:100%;height:28px;font:inherit;font-size:var(--cm-fs-base);color:var(--dsw-alias-label-primary);text-align:left;cursor:pointer;transition:border-color var(--cm-motion-fast) ease, box-shadow var(--cm-motion-fast) ease;align-items:center;gap:6px;padding:0 8px;display:flex}._367UGW_selectTrigger:hover{border-color:color-mix(in srgb, var(--cm-accent) 40%, var(--dsw-alias-border-l2))}._367UGW_selectTrigger:focus-visible,._367UGW_selectRoot[data-open] ._367UGW_selectTrigger{border-color:var(--cm-accent);outline:none}._367UGW_selectTrigger:disabled{color:var(--dsw-alias-label-tertiary);cursor:default}._367UGW_selectLabel{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}._367UGW_selectChevron{color:var(--dsw-alias-label-secondary);transition:transform var(--cm-motion-fast) var(--cm-motion-ease-out);flex:none}._367UGW_selectRoot[data-open] ._367UGW_selectChevron{transform:rotate(180deg)}._367UGW_selectMenu{z-index:var(--cm-z-pop);box-sizing:border-box;overscroll-behavior:contain;border-radius:var(--cm-r-surface);background:var(--cm-menu-surface);max-width:260px;max-height:220px;backdrop-filter:var(--cm-menu-backdrop);box-shadow:var(--cm-shadow-2);transform-origin:top;animation:_367UGW_selectMenuIn var(--cm-motion-fast) var(--cm-motion-ease-out);border:0;padding:4px;position:absolute;overflow-y:auto}._367UGW_selectRoot[data-align=end] ._367UGW_selectMenu{left:auto;right:0}._367UGW_selectMenuPortal{pointer-events:auto;visibility:hidden}._367UGW_selectMenuPortal[data-ready]{visibility:visible}@keyframes _367UGW_selectMenuIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}._367UGW_selectOption{border-radius:var(--cm-r-3);font-size:var(--cm-fs-base);color:var(--dsw-alias-label-primary);cursor:pointer;align-items:center;gap:8px;padding:6px 8px;display:flex}._367UGW_selectOption[data-active]{background:var(--cm-hover)}._367UGW_selectOption[aria-selected=true],._367UGW_selectOption[aria-checked=true]{color:var(--cm-accent);background:var(--cm-ghost-active-fill);box-shadow:inset 2px 0 0 var(--cm-accent);font-weight:600}._367UGW_selectOption[data-disabled]{opacity:.4;cursor:default}._367UGW_selectOptionLabel{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}._367UGW_libraryFilters{border:1px solid var(--dsw-alias-border-l1);border-radius:var(--cm-r-3);background:var(--dsw-alias-bg-layer-2);flex:none;align-items:center;gap:2px;margin-top:8px;padding:2px;display:flex;overflow:hidden}._367UGW_libraryFilter{border-radius:var(--cm-r-2);height:24px;font:inherit;font-size:var(--cm-fs-table);color:var(--dsw-alias-label-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:none;flex:none;align-items:center;gap:4px;padding:0 8px;display:inline-flex}._367UGW_libraryFilter:hover{background:var(--dsw-alias-interactive-bg-hover)}._367UGW_libraryFilter[data-active]{color:var(--cm-accent);background:color-mix(in srgb, var(--cm-accent) 16%, transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--cm-accent) 45%, transparent);font-weight:600}._367UGW_libraryFilterCount{font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary)}._367UGW_libraryFilter[data-active] ._367UGW_libraryFilterCount{color:inherit}._367UGW_librarySearch{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);border-radius:var(--cm-r-2);background:var(--dsw-specific-input-major);width:100%;height:28px;font:inherit;font-size:var(--cm-fs-base);color:var(--dsw-alias-label-primary);flex:none;margin-top:8px;padding:0 8px}._367UGW_librarySearch:focus-visible{border-color:var(--cm-accent);box-shadow:0 0 0 2px color-mix(in srgb, var(--cm-accent) 18%, transparent);outline:none}._367UGW_libraryFooter{border-top:1px solid var(--dsw-alias-border-l1);flex:none;align-items:center;gap:8px;margin-top:8px;padding-top:8px;display:flex}._367UGW_libraryCount{font-size:var(--cm-fs-table);color:var(--dsw-alias-label-secondary)}._367UGW_artifactList{overscroll-behavior:contain;flex:auto;min-height:0;margin:0;padding:0;list-style:none;overflow-y:auto}._367UGW_libraryListState{flex-direction:column;flex:auto;justify-content:center;min-height:0;display:flex}._367UGW_librarySkeletonRegion{justify-content:flex-start;overflow:hidden}._367UGW_artifactRow{border-bottom:1px solid color-mix(in srgb, var(--dsw-alias-border-l1) 60%, transparent)}._367UGW_artifactRow:last-child{border-bottom:none}._367UGW_artifactRow[data-expanded]{background:color-mix(in srgb, var(--cm-accent) 5%, transparent)}._367UGW_artifactRowHead{box-sizing:border-box;cursor:pointer;align-items:center;gap:8px;min-height:52px;padding:8px 10px;display:flex}._367UGW_artifactRowHead:hover{background:var(--dsw-alias-interactive-bg-hover)}._367UGW_artifactExpand{border-radius:var(--cm-r-1);width:20px;height:20px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:none;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}._367UGW_artifactExpand:focus-visible{outline:var(--cm-focus-width) solid var(--cm-focus-color);outline-offset:1px}._367UGW_artifactMain{flex:auto;min-width:0}._367UGW_artifactTitle{align-items:center;gap:6px;min-width:0;display:flex}._367UGW_artifactName{font-size:var(--cm-fs-base);color:var(--dsw-alias-label-primary);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}._367UGW_artifactMeta{font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;overflow:hidden}._367UGW_artifactBadges,._367UGW_artifactActions{flex:none;align-items:center;gap:4px;display:flex}._367UGW_artifactDetailWrap{transition:grid-template-rows var(--cm-motion-base) var(--cm-motion-ease-out);grid-template-rows:0fr;display:grid}._367UGW_artifactRow[data-expanded] ._367UGW_artifactDetailWrap{grid-template-rows:1fr}._367UGW_artifactDetailInner{min-height:0;transition:padding var(--cm-motion-base) var(--cm-motion-ease-out);padding:0 10px 0 38px;overflow:hidden}._367UGW_artifactRow[data-expanded] ._367UGW_artifactDetailInner{padding:2px 10px 10px 38px}._367UGW_artifactDetailInner>*{opacity:0;transition:opacity var(--cm-motion-fast) var(--cm-motion-ease-out)}._367UGW_artifactRow[data-expanded] ._367UGW_artifactDetailInner>*{opacity:1;transition-delay:60ms}._367UGW_artifactRow:not([data-expanded]) ._367UGW_artifactDetailInner>*{transition-delay:0s}._367UGW_paletteInput{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);border-radius:var(--cm-r-2);background:var(--dsw-specific-input-major);width:100%;height:32px;font:inherit;font-size:var(--cm-fs-title);color:var(--dsw-alias-label-primary);padding:0 10px}._367UGW_paletteInput:focus-visible{border-color:var(--cm-accent);box-shadow:0 0 0 2px color-mix(in srgb, var(--cm-accent) 18%, transparent);outline:none}._367UGW_paletteList{overscroll-behavior:contain;max-height:280px;margin-top:8px;overflow-y:auto}._367UGW_paletteGroup{font-size:var(--cm-fs-meta);letter-spacing:.02em;color:var(--dsw-alias-label-tertiary);user-select:none;padding:8px 8px 4px;font-weight:500}._367UGW_paletteGroup:not([data-first]){border-top:1px solid var(--dsw-alias-border-l1);margin-top:4px}._367UGW_paletteItem{border-radius:var(--cm-r-2);font-size:var(--cm-fs-base);color:var(--dsw-alias-label-primary);cursor:pointer;align-items:center;gap:8px;padding:6px 8px;display:flex}._367UGW_paletteItem[data-active]{background:var(--dsw-alias-interactive-bg-hover)}._367UGW_paletteItem[data-disabled]{opacity:.45;cursor:default}._367UGW_paletteItemLabel{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}._367UGW_paletteItemGroup{font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary);flex:none}._367UGW_paletteEmpty{font-size:var(--cm-fs-base);color:var(--dsw-alias-label-tertiary);padding:10px 8px}._367UGW_paletteHint{border-top:1px solid var(--dsw-alias-border-l1);font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary);margin-top:8px;padding-top:6px}._367UGW_checkboxRow,._367UGW_radioLabel{cursor:pointer;font-size:var(--cm-fs-base);color:var(--dsw-alias-label-primary);align-items:flex-start;gap:6px;display:flex}._367UGW_checkboxRow input,._367UGW_radioLabel input{width:16px;height:16px;accent-color:var(--cm-brand);cursor:pointer;flex:none;margin:2px 0 0}._367UGW_checkboxRow input:focus-visible,._367UGW_radioLabel input:focus-visible{outline:var(--cm-focus-width) solid var(--cm-focus-color);outline-offset:2px}._367UGW_badge{border-radius:var(--cm-r-pill);height:19px;font-size:var(--cm-fs-meta);white-space:nowrap;color:var(--dsw-alias-label-tertiary);border:none;align-items:center;gap:4px;padding:0 8px;font-weight:500;line-height:1.25;display:inline-flex}._367UGW_badge[data-kind=ok]{background:color-mix(in srgb, var(--cm-ok) 10%, transparent);color:var(--cm-ok)}._367UGW_badge[data-kind=info]{background:color-mix(in srgb, var(--cm-accent) 10%, transparent);color:var(--cm-accent)}._367UGW_badge[data-kind=warn]{background:color-mix(in srgb, var(--cm-warn) 12%, transparent);color:var(--cm-warn)}._367UGW_badge[data-kind=error]{background:color-mix(in srgb, var(--cm-error) 10%, transparent);color:var(--cm-error)}._367UGW_badgeHost{align-items:center;display:inline-flex}._367UGW_banner{animation:_367UGW_itemEnter var(--cm-motion-base) var(--cm-motion-ease-out);border-radius:var(--cm-r-3);border:.5px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);font-size:var(--cm-fs-base);box-sizing:border-box;flex-wrap:wrap;align-items:center;gap:6px 10px;width:100%;margin:0 0 10px;padding:8px 12px;display:flex}._367UGW_banner[data-kind=ok]{border-color:color-mix(in srgb, var(--cm-ok) 35%, transparent);background:color-mix(in srgb, var(--cm-ok) 10%, transparent)}._367UGW_banner[data-kind=info]{border-color:color-mix(in srgb, var(--cm-accent) 30%, transparent);background:color-mix(in srgb, var(--cm-accent) 10%, transparent)}._367UGW_banner[data-kind=warn]{border-color:color-mix(in srgb, var(--cm-warn) 40%, transparent);background:color-mix(in srgb, var(--cm-warn) 12%, transparent)}._367UGW_banner[data-kind=error]{border-color:color-mix(in srgb, var(--cm-error) 45%, transparent);background:color-mix(in srgb, var(--cm-error) 10%, transparent)}._367UGW_spinnerWrap{vertical-align:middle;align-items:center;gap:6px;display:inline-flex}._367UGW_spinner{vertical-align:middle;transform-origin:50%;flex:none;width:13px;height:13px;animation:.7s linear infinite _367UGW_spin;display:inline-block}._367UGW_spinnerTrack{fill:none;stroke:color-mix(in srgb, currentColor 30%, transparent);stroke-width:3px}._367UGW_spinnerArc{fill:none;stroke:currentColor;stroke-width:3px;stroke-linecap:round}@keyframes _367UGW_spin{to{transform:rotate(360deg)}}._367UGW_spinnerLabel{font-size:var(--cm-fs-table);color:inherit;opacity:.85}._367UGW_skeletonRoot{flex-direction:column;gap:8px;width:100%;margin-top:8px;display:flex}._367UGW_skeletonBars,._367UGW_skeletonCards{flex-direction:column;gap:8px;display:flex}._367UGW_skeletonBar{border-radius:var(--cm-r-1);background-color:var(--cm-skeleton);background-image:linear-gradient(90deg, transparent, color-mix(in srgb, var(--dsw-alias-label-tertiary) 26%, transparent), transparent);animation:_367UGW_skeletonShimmer 1.3s var(--cm-motion-ease-in-out) infinite;background-position:-160px 0;background-repeat:no-repeat;background-size:160px 100%;display:block}@keyframes _367UGW_skeletonShimmer{to{background-position:calc(100% + 160px) 0}}._367UGW_skeletonTitle{border-radius:var(--cm-r-2);width:42%;height:13px}._367UGW_skeletonLine{height:11px}._367UGW_skeletonBlock{border-radius:var(--cm-r-3);height:46px}._367UGW_skeletonRow{border-radius:var(--cm-r-2);height:30px}._367UGW_skeletonBars>._367UGW_skeletonBar:nth-child(4n+2){width:92%}._367UGW_skeletonBars>._367UGW_skeletonBar:nth-child(4n+3){width:78%}._367UGW_skeletonBars>._367UGW_skeletonBar:nth-child(4n){width:64%}._367UGW_skeletonBars>._367UGW_skeletonBar:nth-child(2){animation-delay:60ms}._367UGW_skeletonBars>._367UGW_skeletonBar:nth-child(3){animation-delay:.12s}._367UGW_skeletonBars>._367UGW_skeletonBar:nth-child(4){animation-delay:.18s}._367UGW_skeletonBars>._367UGW_skeletonBar:nth-child(n+5){animation-delay:.24s}._367UGW_skeletonCard{border:1px solid var(--dsw-alias-border-l1);border-radius:var(--cm-r-3);background:var(--dsw-alias-bg-layer-2);flex-direction:column;gap:8px;padding:12px;display:flex}._367UGW_skeletonCard>._367UGW_skeletonBar:nth-child(2){width:84%}._367UGW_skeletonCard>._367UGW_skeletonBar:nth-child(3){width:56%}._367UGW_skeletonTable{border:1px solid var(--dsw-alias-border-l1);border-radius:var(--cm-r-3);overflow:hidden}._367UGW_skeletonTableRow{border-bottom:1px solid var(--dsw-alias-border-l1);align-items:center;gap:10px;padding:8px 10px;display:flex}._367UGW_skeletonTableRow:last-child{border-bottom:none}._367UGW_skeletonTableCell{flex:1 1 0;height:11px}._367UGW_skeletonTableCell:first-child{flex:0 0 40%}._367UGW_skeletonTableCell:last-child{flex:0 0 20%}._367UGW_skeletonRows{flex-direction:column;display:flex}._367UGW_skeletonRowItem{box-sizing:border-box;border-bottom:1px solid color-mix(in srgb, var(--dsw-alias-border-l1) 60%, transparent);align-items:center;gap:8px;min-height:52px;padding:8px 10px;display:flex}._367UGW_skeletonRowItem:last-child{border-bottom:none}._367UGW_skeletonRowItem:nth-child(2) ._367UGW_skeletonBar{animation-delay:60ms}._367UGW_skeletonRowItem:nth-child(3) ._367UGW_skeletonBar{animation-delay:.12s}._367UGW_skeletonRowItem:nth-child(4) ._367UGW_skeletonBar{animation-delay:.18s}._367UGW_skeletonRowItem:nth-child(n+5) ._367UGW_skeletonBar{animation-delay:.24s}._367UGW_skeletonRowIcon{flex:none;width:20px;height:20px}._367UGW_skeletonRowBody{flex-direction:column;flex:auto;gap:6px;min-width:0;display:flex}._367UGW_skeletonRowTitle{width:38%;height:12px}._367UGW_skeletonRowMeta{width:24%;height:10px}._367UGW_skeletonRowAction{flex:none;width:56px;height:20px}._367UGW_statValueSkeleton{border-radius:var(--cm-r-1);width:26px;height:12px;display:inline-block}._367UGW_skeletonCaption{font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary)}._367UGW_card{border:1px solid var(--dsw-alias-border-l1);border-radius:var(--cm-r-3);background:var(--dsw-alias-bg-layer-2);margin:0 0 10px;padding:12px}._367UGW_groupLabel{font-size:var(--cm-fs-meta);letter-spacing:.02em;color:var(--dsw-alias-label-tertiary);margin-bottom:8px;font-weight:700;display:block}._367UGW_groupHeader{align-items:baseline;gap:8px;margin-bottom:10px;display:flex}._367UGW_groupHeader ._367UGW_groupLabel{white-space:nowrap;flex:none;margin-bottom:0}._367UGW_groupNote{font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary)}._367UGW_groupItems{flex-direction:column;gap:6px;display:flex}._367UGW_sectionOptionRow{flex-direction:column;gap:4px;display:flex}._367UGW_field{flex-direction:column;gap:4px;margin:0 0 10px;display:flex}._367UGW_fieldLabel{font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-secondary);font-weight:600}._367UGW_hint{font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary);line-height:1.5}._367UGW_formError{font-size:var(--cm-fs-meta);color:var(--cm-error)}._367UGW_infoHint{vertical-align:middle;align-items:center;display:inline-flex}._367UGW_infoHintBtn{border-radius:var(--cm-r-1);width:18px;height:18px;font:inherit;color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:none;flex:none;justify-content:center;align-items:center;padding:0;line-height:1.25;display:inline-flex}._367UGW_infoHintBtn:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}._367UGW_infoHintBtn[data-open]:focus-visible{outline:var(--cm-focus-width) solid var(--cm-focus-color);outline-offset:1px}._367UGW_infoHintBtn[data-open]{color:var(--dsw-alias-label-primary)}._367UGW_infoHintBtn[data-pinned]{background:color-mix(in srgb, var(--cm-accent) 14%, transparent);color:var(--cm-accent)}._367UGW_infoHintBubble{z-index:var(--cm-z-pop);box-sizing:border-box;border-radius:var(--cm-r-2);background:var(--cm-tooltip-bg);max-width:min(260px,100vw - 24px);max-height:min(480px,100vh - 16px);box-shadow:var(--cm-shadow-1);color:var(--cm-tooltip-fg);font-size:var(--cm-fs-table);white-space:pre-wrap;overflow-wrap:anywhere;pointer-events:none;visibility:hidden;border:0;padding:8px 10px;line-height:1.5;position:fixed;overflow-y:auto}._367UGW_infoHintBubble[data-ready]{visibility:visible;animation:_367UGW_infoHintIn var(--cm-motion-fast) var(--cm-motion-ease-out);transform-origin:top}._367UGW_infoHintBubble[data-ready][data-side=top]{transform-origin:bottom}@keyframes _367UGW_infoHintIn{0%{opacity:0}to{opacity:1}}._367UGW_controlRow{align-items:center;gap:8px;margin:0 0 10px;display:flex}._367UGW_sectionTitleBlock{min-width:0;margin:0 0 10px}._367UGW_sectionTitleRow{align-items:center;gap:8px;min-width:0;display:flex}._367UGW_sectionTitle{font-size:var(--cm-fs-title);color:var(--dsw-alias-label-primary);margin:0;font-weight:700;line-height:1.5}._367UGW_sectionSubtitle{font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary);margin:1px 0 0}._367UGW_empty{animation:_367UGW_itemEnter var(--cm-motion-base) var(--cm-motion-ease-out);border:1px dashed var(--dsw-alias-border-l2);border-radius:var(--cm-r-3);text-align:center;font-size:var(--cm-fs-table);color:var(--dsw-alias-label-tertiary);box-sizing:border-box;flex-direction:column;justify-content:center;align-items:center;gap:4px;width:100%;padding:24px 16px;display:flex}._367UGW_emptySteps{margin:2px 0 10px}._367UGW_tableWrap{border:1px solid var(--dsw-alias-border-l1);border-radius:var(--cm-r-3);background:var(--dsw-alias-bg-layer-2);margin-bottom:10px;overflow:hidden}._367UGW_tableFixed th,._367UGW_tableFixed td{padding-left:12px;padding-right:12px}._367UGW_tableScroll{max-height:420px;overflow:auto}._367UGW_dataTable{border-collapse:collapse;width:100%;font-size:var(--cm-fs-table)}._367UGW_dataTable th,._367UGW_dataTable td{box-sizing:border-box}._367UGW_tableFixed{table-layout:fixed}._367UGW_tableFixed td,._367UGW_tableFixed th{text-overflow:ellipsis;overflow:hidden}._367UGW_tableCompact th,._367UGW_tableCompact td{padding-left:8px;padding-right:8px}._367UGW_dataTable td._367UGW_dim{white-space:nowrap}._367UGW_dataTable th{z-index:var(--cm-z-raise);text-align:left;font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary);background:var(--dsw-alias-bg-layer-2);border-bottom:.5px solid var(--dsw-alias-border-l2);white-space:nowrap;padding:6px 10px;font-weight:600;position:sticky;top:0}._367UGW_dataTable td{border-bottom:.5px solid var(--dsw-alias-border-l2);vertical-align:middle;color:var(--dsw-alias-label-primary);padding:6px 10px}._367UGW_dataTable tbody tr:last-child td{border-bottom:none}._367UGW_dataTable tbody tr{transition:background-color .1s ease-out}._367UGW_dataTable tbody tr:hover{background:var(--dsw-alias-interactive-bg-hover)}._367UGW_dataTable tbody tr[data-selected]{background:color-mix(in srgb, var(--cm-accent) 9%, transparent)}._367UGW_dataTable ._367UGW_num{text-align:right;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--cm-fs-table);white-space:nowrap}._367UGW_dataTable ._367UGW_dim{color:var(--dsw-alias-label-secondary)}._367UGW_dataTable ._367UGW_cellActions{text-align:right;white-space:nowrap}._367UGW_dataTable td._367UGW_cellActions{text-overflow:clip;overflow:visible}._367UGW_rowActions{align-items:center;gap:2px;display:inline-flex}._367UGW_cellMain{flex-direction:column;justify-content:center;gap:1px;min-width:0;min-height:30px;display:flex}._367UGW_cellTitle{text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}._367UGW_cellMeta{font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary);align-items:center;gap:6px;min-width:0;display:inline-flex;overflow:hidden}._367UGW_cellMetaNoteText{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}._367UGW_actionRow ._367UGW_banner{flex:auto;min-width:0;margin:0}._367UGW_warnText{color:var(--cm-warn)}._367UGW_kvRow{border-bottom:.5px solid var(--dsw-alias-border-l2);font-size:var(--cm-fs-table);align-items:baseline;gap:10px;min-width:0;padding:4px 0;display:flex}._367UGW_kvRow:last-child{border-bottom:none}._367UGW_kvRow+._367UGW_actionRow{margin-top:8px}._367UGW_checkboxRow+._367UGW_actionRow{margin-top:10px}._367UGW_kvKey{width:88px;color:var(--dsw-alias-label-tertiary);font-size:var(--cm-fs-meta);flex:none}._367UGW_kvValue{overflow-wrap:anywhere;flex:auto;min-width:0}._367UGW_kvValue._367UGW_mono{font-size:var(--cm-fs-table);color:var(--dsw-alias-label-secondary)}._367UGW_segGroup,._367UGW_modeTabs{border-radius:var(--cm-r-3);background:var(--cm-hover);border:none;align-items:center;gap:2px;margin:0 0 10px;padding:2px;display:inline-flex}._367UGW_segItem,._367UGW_modeTab{border-radius:var(--cm-r-2);height:24px;font:inherit;font-size:var(--cm-fs-table);color:var(--dsw-alias-label-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:none;align-items:center;gap:4px;padding:0 10px;font-weight:500;display:inline-flex}._367UGW_segItem:hover,._367UGW_modeTab:hover{color:var(--dsw-alias-label-primary)}._367UGW_segItem:focus-visible,._367UGW_modeTab:focus-visible{outline:var(--cm-focus-width) solid var(--cm-focus-color);outline-offset:1px}._367UGW_segItem[data-active],._367UGW_modeTab[data-active]{background:var(--dsw-alias-bg-layer-1);color:var(--dsw-alias-label-primary);box-shadow:var(--cm-shadow-1);font-weight:500}._367UGW_modeHint{font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary);margin:-4px 0 10px}._367UGW_stepperDot,._367UGW_stepperLabel{transition:background-color var(--cm-motion-fast) ease, border-color var(--cm-motion-fast) ease, color var(--cm-motion-fast) ease}._367UGW_stepper{scrollbar-width:none;align-items:center;padding:2px 0;display:flex;overflow-x:auto}._367UGW_stepper::-webkit-scrollbar{display:none}._367UGW_stepperStep{flex:none;align-items:center;gap:4px;display:inline-flex}._367UGW_stepperDot{border:1.5px solid var(--dsw-alias-border-l2);width:17px;height:17px;font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary);background:var(--dsw-alias-bg-layer-2);border-radius:50%;flex:none;justify-content:center;align-items:center;font-weight:700;display:inline-flex}._367UGW_stepperDot[data-state=current]{border-color:var(--cm-accent);background:var(--cm-accent);color:var(--dsw-alias-label-primary-foreground)}._367UGW_stepperDot[data-state=done]{background:color-mix(in srgb, var(--cm-ok) 16%, transparent);color:var(--cm-ok);border-color:#0000}._367UGW_stepperLabel{font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary);white-space:nowrap}._367UGW_stepperStep[data-state=current] ._367UGW_stepperLabel{color:var(--dsw-alias-label-primary);font-weight:600}._367UGW_stepperStep[data-state=done] ._367UGW_stepperLabel{color:var(--dsw-alias-label-secondary)}._367UGW_stepperConnector{background:var(--dsw-alias-border-l2);flex:none;width:14px;height:1.5px;margin:0 4px}._367UGW_stepperStep[data-state=done] ._367UGW_stepperConnector{background:color-mix(in srgb, var(--cm-ok) 45%, transparent)}._367UGW_progressBlock{margin:0 0 10px}._367UGW_progressTrack{border-radius:var(--cm-r-1);background:color-mix(in srgb, var(--dsw-alias-border-l1) 80%, transparent);height:5px;position:relative;overflow:hidden}._367UGW_progressBar{border-radius:var(--cm-r-1);background:var(--cm-accent);transition:width var(--cm-motion-slow) var(--cm-motion-ease-out);position:absolute;inset:0 auto 0 0}._367UGW_progressBarDone{background:var(--cm-ok)}._367UGW_progressBarFailed{background:var(--cm-error)}._367UGW_progressIndeterminate{border-radius:var(--cm-r-1);background:var(--cm-accent);width:34%;animation:_367UGW_indet 1.15s var(--cm-motion-ease-in-out) infinite;position:absolute;top:0;bottom:0}@keyframes _367UGW_indet{0%{left:-34%}to{left:100%}}._367UGW_progressMeta{font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-secondary);align-items:center;gap:8px;margin-top:4px;display:flex}._367UGW_progressLabel{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}._367UGW_progressPercent{color:var(--dsw-alias-label-tertiary);flex:none;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}._367UGW_progressBadge{font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary);flex:none;align-items:center;gap:4px;display:inline-flex}._367UGW_progressBadgeCount{border-radius:var(--cm-r-3);background:color-mix(in srgb, var(--cm-info) 14%, transparent);color:var(--dsw-alias-label-secondary);padding:0 4px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}._367UGW_progressBadgeSection{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}._367UGW_progressDetail{font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary);margin-top:2px}._367UGW_planScroll,._367UGW_mergeScroll,._367UGW_reportScroll,._367UGW_confirmScroll,._367UGW_diffScroll,._367UGW_historyScroll,._367UGW_consultScroll{border:1px solid var(--dsw-alias-border-l1);border-radius:var(--cm-r-3);background:var(--dsw-alias-bg-base);max-height:380px;overflow:auto}._367UGW_consultScroll{padding:0 6px}._367UGW_logScroll{background:var(--dsw-alias-bg-base);max-height:220px;overflow:auto}._367UGW_dialogMask{z-index:var(--cm-z-mask);background:var(--cm-mask);backdrop-filter:var(--cm-mask-blur);animation:_367UGW_maskIn var(--cm-motion-fast) var(--cm-motion-ease-out);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}@keyframes _367UGW_maskIn{0%{opacity:0}to{opacity:1}}._367UGW_dialogContentCenter{z-index:var(--cm-z-modal);animation:_367UGW_dialogIn var(--cm-motion-base) var(--cm-motion-ease-out);position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes _367UGW_dialogIn{0%{opacity:0}to{opacity:1}}._367UGW_dialogMask[data-state=closed]{animation:_367UGW_maskOut var(--cm-motion-fast) var(--cm-motion-ease-out)}._367UGW_dialogContentCenter[data-state=closed]{animation:_367UGW_dialogOut var(--cm-motion-fast) var(--cm-motion-ease-out)}@keyframes _367UGW_maskOut{to{opacity:0}}@keyframes _367UGW_dialogOut{to{opacity:0;transform:translate(-50%,-50%)scale(.98)}}._367UGW_dialogCard{border-radius:var(--cm-r-surface);background:var(--dsw-alias-bg-layer-2);width:min(640px,100vw - 48px,95%);max-width:calc(100vw - 48px);max-height:min(600px,100vh - 64px,92%);box-shadow:var(--cm-shadow-2);border:0;flex-direction:column;display:flex}._367UGW_dialogHeader{font-size:var(--cm-fs-title);color:var(--dsw-alias-label-primary);padding:12px 16px 0;font-weight:500}._367UGW_dialogHeaderRow{align-items:center;gap:8px;padding:12px 14px 0;display:flex}._367UGW_dialogHeaderRow ._367UGW_dialogHeader{padding:0}._367UGW_dialogClose{margin-left:auto}._367UGW_dialogBody{min-height:0;font-size:var(--cm-fs-base);color:var(--dsw-alias-label-secondary);flex:auto;padding:8px 16px 12px;overflow-y:auto}._367UGW_dialogBodyScroll{scrollbar-gutter:stable;max-height:460px;overflow-y:auto}._367UGW_dialogWide{width:min(720px,100vw - 48px,96%);max-height:min(620px,100vh - 64px,92%)}._367UGW_dialogFooter{border-top:.5px solid var(--dsw-alias-border-l2);justify-content:flex-end;gap:8px;margin:0;padding:10px 16px 14px}._367UGW_updateVersionRow{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px;display:flex}._367UGW_updateVersionArrow{color:var(--dsw-alias-label-tertiary)}._367UGW_updateVersionTarget{font-size:var(--cm-fs-title);color:var(--dsw-alias-label-primary);font-weight:600}._367UGW_updateNotesLoading{justify-content:center;padding:24px 0;display:flex}._367UGW_toastViewport{z-index:var(--cm-z-toast);pointer-events:none;flex-direction:column;align-items:flex-end;gap:8px;max-width:calc(100% - 20px);display:flex;position:absolute;bottom:42px;right:10px}._367UGW_toast{pointer-events:auto;border-radius:var(--cm-r-surface);background:var(--cm-toast-bg);width:fit-content;max-width:420px;box-shadow:var(--cm-shadow-2);font-size:var(--cm-fs-title);color:var(--cm-toast-fg);animation:_367UGW_toastIn var(--cm-motion-base) var(--cm-motion-ease-out);border:0;align-items:flex-start;gap:8px;padding:12px 16px;line-height:1.5;display:flex}@keyframes _367UGW_toastIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}._367UGW_toast[data-kind=ok] ._367UGW_toastGlyph{color:var(--cm-ok)}._367UGW_toast[data-kind=info] ._367UGW_toastGlyph{color:var(--cm-accent)}._367UGW_toast[data-kind=warn] ._367UGW_toastGlyph{color:var(--cm-warn-label)}._367UGW_toast[data-kind=error] ._367UGW_toastGlyph{color:var(--cm-error)}._367UGW_toastGlyph{flex:none;margin-top:1px;display:inline-flex}._367UGW_toastText{word-break:break-word;min-width:0}._367UGW_toast>button{flex:none;width:18px;height:18px;margin-left:2px}._367UGW_statusAction{font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:8px;min-width:0;padding:0;display:inline-flex}._367UGW_statusAction:hover{color:var(--dsw-alias-label-primary);text-decoration:underline}._367UGW_statusAction:focus-visible{outline:var(--cm-focus-width) solid var(--cm-focus-color);outline-offset:1px;border-radius:var(--cm-r-1)}._367UGW_runsCenter{flex-direction:column;gap:10px;display:flex}._367UGW_runsSummary{flex-wrap:wrap;align-items:center;gap:8px;display:flex}._367UGW_runsSummaryTitle{font-size:var(--cm-fs-table);color:var(--dsw-alias-label-primary);font-weight:700}._367UGW_runsCardHead{flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 8px;display:flex}._367UGW_runsCardTitle{font-size:var(--cm-fs-base);color:var(--dsw-alias-label-primary);font-weight:600}._367UGW_runsWarnNote{border:1px solid color-mix(in srgb, var(--cm-warn) 45%, transparent);border-radius:var(--cm-r-2);background:color-mix(in srgb, var(--cm-warn) 10%, transparent);font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-secondary);margin:8px 0 0;padding:6px 8px}._367UGW_runsWarnNoteDetail{color:var(--dsw-alias-label-tertiary);margin:4px 0 0}._367UGW_runsCardTime{font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary);white-space:nowrap;margin-left:auto}._367UGW_runsCounts{font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary);margin:8px 0 0}._367UGW_runsLogTail{border:1px solid var(--dsw-alias-border-l1);border-radius:var(--cm-r-2);background:var(--dsw-alias-bg-base);max-height:108px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-secondary);margin:8px 0 0;padding:6px 8px;line-height:1.5;overflow-y:auto}._367UGW_runsLogLine{white-space:pre-wrap;word-break:break-all}._367UGW_runsCardActions{flex-wrap:wrap;align-items:center;gap:8px;margin:10px 0 0;display:flex}._367UGW_runsOption{border:1px solid var(--dsw-alias-border-l2);border-radius:var(--cm-r-3);background:var(--dsw-alias-bg-layer-2);width:100%;font:inherit;color:var(--dsw-alias-label-primary);text-align:left;cursor:pointer;flex-direction:column;gap:2px;margin:0 0 8px;padding:8px 10px;display:flex}._367UGW_runsOption:hover{border-color:var(--cm-accent)}._367UGW_runsOption:focus-visible{outline:var(--cm-focus-width) solid var(--cm-focus-color);outline-offset:1px}._367UGW_runsOption[data-active]{border-color:var(--cm-accent);background:color-mix(in srgb, var(--cm-accent) 8%, transparent)}._367UGW_runsOptionTitle{font-size:var(--cm-fs-base);align-items:center;gap:6px;font-weight:600;display:flex}._367UGW_runsOptionDesc{font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary)}._367UGW_runsOptionTag{font-size:var(--cm-fs-meta);background:color-mix(in srgb, var(--cm-accent) 14%, transparent);color:var(--cm-accent);border-radius:999px;padding:0 4px;font-weight:600}._367UGW_actionRow{flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 10px;display:flex}._367UGW_actionRowTop{flex-wrap:wrap;align-items:center;gap:8px;margin:10px 0;display:flex}._367UGW_headRow{flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 10px;display:flex}._367UGW_headRow ._367UGW_groupLabel{margin-bottom:0}._367UGW_authorRow{flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;display:flex}._367UGW_authorRow ._367UGW_groupLabel{margin-bottom:0}._367UGW_marketFilterGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:8px;display:grid}._367UGW_marketFilterSearch{grid-column:1/-1}._367UGW_marketFilterMeta{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;display:flex}._367UGW_statStrip{border:1px solid var(--dsw-alias-border-l1);border-radius:var(--cm-r-3);background:var(--dsw-alias-bg-layer-2);flex-wrap:wrap;flex:none;align-items:stretch;gap:6px 0;min-height:32px;margin-bottom:10px;display:flex}._367UGW_statStrip>:last-child{padding-right:8px}._367UGW_statStrip[data-tone=error]{border-color:color-mix(in srgb, var(--cm-error) 45%, transparent);background:color-mix(in srgb, var(--cm-error) 7%, transparent)}._367UGW_statStrip[data-tone=warn]{border-color:color-mix(in srgb, var(--cm-warn) 40%, transparent);background:color-mix(in srgb, var(--cm-warn) 6%, transparent)}._367UGW_statHealth{font-size:var(--cm-fs-table);color:var(--dsw-alias-label-primary);white-space:nowrap;flex:none;align-items:center;gap:6px;padding:4px 8px;font-weight:600;display:flex}._367UGW_statHealthAction{font:inherit;font-size:var(--cm-fs-table);cursor:pointer;text-align:left;background:0 0;border:none;font-weight:600}._367UGW_statHealthAction:hover{background:var(--dsw-alias-interactive-bg-hover)}._367UGW_statHealthAction:focus-visible{outline:var(--cm-focus-width) solid var(--cm-focus-color);outline-offset:-2px;border-radius:var(--cm-r-2)}._367UGW_statSeg{border:none;border-left:1px solid var(--dsw-alias-border-l1);font:inherit;font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-secondary);white-space:nowrap;cursor:pointer;background:0 0;flex:none;align-items:center;gap:6px;padding:4px 8px;display:flex}._367UGW_statSeg>span:first-child{color:var(--dsw-alias-label-tertiary)}._367UGW_statSeg:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}._367UGW_statSeg:hover>span:first-child{color:var(--dsw-alias-label-secondary)}._367UGW_statSeg:focus-visible{outline:var(--cm-focus-width) solid var(--cm-focus-color);outline-offset:-2px}._367UGW_statSeg b{color:var(--dsw-alias-label-primary);font-variant-numeric:tabular-nums;font-weight:700}._367UGW_statSegDim{color:var(--dsw-alias-label-tertiary)}._367UGW_toolRow{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px;display:flex}._367UGW_infoValue{flex:auto;align-items:center;gap:8px;min-width:0;display:inline-flex}._367UGW_infoValue ._367UGW_mono{font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-secondary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}._367UGW_copyBtn{border-radius:var(--cm-r-1);width:20px;height:20px;font:inherit;font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:none;flex:none;justify-content:center;align-items:center;padding:0;line-height:1.25;display:inline-flex}._367UGW_copyBtn:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}._367UGW_copyBtn:focus-visible{outline:var(--cm-focus-width) solid var(--cm-focus-color);outline-offset:1px}._367UGW_activityRow ._367UGW_copyBtn{opacity:0}._367UGW_activityRow:hover ._367UGW_copyBtn,._367UGW_activityRow ._367UGW_copyBtn:focus-visible{opacity:1}._367UGW_activityCard{flex-direction:column;min-height:0;margin-bottom:0;display:flex}._367UGW_diskUsageCard{height:var(--cm-disk-card-h);min-height:var(--cm-disk-card-h);max-height:var(--cm-disk-card-h)}._367UGW_diskUsageScroll{flex:auto;min-height:0;max-height:none}._367UGW_activityHeader{align-items:center;gap:8px;margin-bottom:8px;display:flex}._367UGW_activityTitle{font-size:var(--cm-fs-meta);letter-spacing:.02em;color:var(--dsw-alias-label-tertiary);flex:auto;font-weight:700}._367UGW_activityRows{border:1px solid var(--dsw-alias-border-l1);border-radius:var(--cm-r-3);background:var(--dsw-alias-bg-base);flex:auto;min-height:0;overflow-y:auto}._367UGW_activityRow{border-bottom:.5px solid var(--dsw-alias-border-l2);font-size:var(--cm-fs-table);grid-template-columns:72px minmax(0,1fr) auto;align-items:center;gap:10px;min-width:0;padding:4px 10px;line-height:1.5;display:grid}._367UGW_activityRow:last-child{border-bottom:none}._367UGW_activityTime{color:var(--dsw-alias-label-tertiary);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;line-height:1.5;font-size:var(--cm-fs-meta);white-space:nowrap;justify-self:end}._367UGW_activityKind{color:var(--dsw-alias-label-tertiary);line-height:1.5;font-size:var(--cm-fs-meta);white-space:nowrap;flex:none}._367UGW_activitySummary{min-width:0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;line-height:1.5;font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-secondary);align-items:center;gap:6px;display:inline-flex}._367UGW_activitySummaryText{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}._367UGW_activityBadge{flex:none;justify-content:flex-end;align-items:center;line-height:1.5;display:inline-flex}._367UGW_activityResultOk{line-height:1.5;font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary);white-space:nowrap;align-items:center;gap:4px;display:inline-flex}._367UGW_factGrid{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px 12px;display:grid}._367UGW_factCell{flex-direction:column;gap:2px;min-width:0;display:flex}._367UGW_factLabel{font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary);white-space:nowrap}._367UGW_factValue{font-size:var(--cm-fs-table);color:var(--dsw-alias-label-primary);white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}._367UGW_sectionGrid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:0 24px;display:grid}._367UGW_sectionRow{border-bottom:.5px solid var(--dsw-alias-border-l2);font-size:var(--cm-fs-table);grid-template-columns:minmax(0,1fr) auto 56px;align-items:center;gap:10px;min-width:0;padding:4px 0;display:grid}._367UGW_sectionRow:nth-last-child(-n+2){border-bottom:none}._367UGW_sectionName{min-width:0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-secondary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}._367UGW_sectionCount{color:var(--dsw-alias-label-tertiary);font-size:var(--cm-fs-meta);font-variant-numeric:tabular-nums;white-space:nowrap;justify-self:end}._367UGW_sectionSize{font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-secondary);font-variant-numeric:tabular-nums;white-space:nowrap;justify-self:end}._367UGW_activityEmpty{font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary);text-align:center;padding:16px}._367UGW_snapshotList{flex-direction:column;gap:10px;margin-bottom:12px;display:flex}._367UGW_snapshotRow{border:1px solid var(--dsw-alias-border-l1);border-radius:var(--cm-r-3);background:var(--dsw-alias-bg-layer-2);align-items:center;gap:10px;padding:12px 14px;display:flex}._367UGW_snapshotRow[data-selected]{border-color:var(--cm-accent);background:color-mix(in srgb, var(--cm-accent) 7%, transparent)}._367UGW_snapshotRowHeader{font-size:var(--cm-fs-table);align-items:center;gap:8px;display:flex}._367UGW_snapshotRowMain{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;font-weight:500;overflow:hidden}._367UGW_snapshotRowText{flex-direction:column;flex:auto;gap:4px;min-width:0;display:flex}._367UGW_snapshotRowName{font-weight:500;font-size:var(--cm-fs-base);word-break:break-all;line-height:1.5}._367UGW_snapshotRowMeta{min-width:0;font-size:var(--cm-fs-table);color:var(--dsw-alias-label-secondary);align-items:center;gap:10px;display:flex}._367UGW_snapshotRowFacts{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;flex:none}._367UGW_snapshotList._367UGW_reportScroll{background:var(--dsw-alias-bg-layer-2);margin-bottom:0;padding:10px 12px 10px 10px}._367UGW_reasonList{flex-direction:column;flex-basis:100%;gap:4px;min-width:0;display:flex}._367UGW_reasonLine{align-items:baseline;gap:6px;min-width:0;display:flex}._367UGW_reasonLine>span:first-child{overflow-wrap:anywhere;min-width:0}._367UGW_viewBody{flex-direction:column;flex:auto;min-width:0;min-height:0;display:flex}._367UGW_resultScroll{flex:auto;min-height:0;overflow-y:auto}._367UGW_resultFooter{border-top:1px solid var(--dsw-alias-border-l1);flex:none;align-items:center;margin:10px 0 0;padding-top:10px}._367UGW_fillCard{flex:auto;margin-bottom:0}._367UGW_fillViewport{flex-direction:column;flex:auto;min-height:0;margin-bottom:0;display:flex}._367UGW_fillViewport ._367UGW_tableScroll{flex:auto;max-height:none}._367UGW_compositionViewport{flex:auto;min-height:0;overflow:auto}._367UGW_sparseFill{flex-direction:column;flex:auto;justify-content:flex-start;align-items:flex-start;gap:10px;min-height:280px;display:flex}._367UGW_pickerRoot{flex-direction:column;gap:8px;min-width:0;display:flex;position:relative}._367UGW_pickerOverlay{z-index:var(--cm-z-sticky);animation:_367UGW_maskIn var(--cm-motion-fast) var(--cm-motion-ease-out);border-radius:var(--cm-r-3);background:color-mix(in srgb, var(--dsw-alias-bg-layer-2) 62%, transparent);backdrop-filter:blur(1px);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}._367UGW_pickerToolbar{align-items:center;gap:8px;min-width:0;display:flex}._367UGW_pickerToolbar ._367UGW_input{flex:auto;min-width:0}._367UGW_pickerList{border:1px solid var(--dsw-alias-border-l1);border-radius:var(--cm-r-3);background:var(--dsw-alias-bg-layer-2);max-height:320px;padding:4px 10px;overflow:auto}._367UGW_pickerModalBody{flex-direction:column;gap:8px;height:min(420px,62vh);min-height:0;display:flex}._367UGW_pickerModalBody ._367UGW_pickerRoot{flex:auto;min-height:0}._367UGW_pickerModalBody ._367UGW_pickerList{scrollbar-gutter:stable;flex:auto;min-height:0;max-height:none}._367UGW_pickerGroup+._367UGW_pickerGroup{border-top:.5px solid var(--dsw-alias-border-l2)}._367UGW_pickerUnit{animation:_367UGW_itemEnter var(--cm-motion-base) var(--cm-motion-ease-out);align-items:center;min-width:0;padding:2px 0 2px 16px;display:flex}._367UGW_pickerUnitName{font-size:var(--cm-fs-table);color:var(--dsw-alias-label-primary);text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:280px;overflow:hidden}._367UGW_pickerTreeRow{align-items:center;gap:4px;min-width:0;padding:4px 0;display:flex}._367UGW_pickerTreeRow>:last-child{flex:auto;min-width:0}._367UGW_pickerChevronSpacer{flex:none;width:18px;height:18px;display:inline-block}._367UGW_pickerGroupTitle{border-top:1px solid var(--dsw-alias-border-l2);align-items:center;gap:6px;padding:8px 0 4px;display:flex}._367UGW_pickerGroupTitle:first-child{border-top:none;padding-top:0}._367UGW_pickerGroupTitleName{font-size:var(--cm-fs-meta);letter-spacing:.02em;color:var(--dsw-alias-label-secondary);font-weight:600}._367UGW_pickerSubgroup{padding-left:18px}._367UGW_pickerSubgroupName{font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-secondary);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:600;overflow:hidden}._367UGW_pickerChildren{border-left:1px solid var(--dsw-alias-border-l1);margin-left:8px;padding-left:4px}._367UGW_pickerUnitNested{gap:4px}._367UGW_pickerMore{justify-content:center;align-items:center;gap:6px;padding:4px 0 2px 16px;display:flex}._367UGW_pickerUnitDetail{max-width:220px;font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}._367UGW_pickerCount{font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary);font-variant-numeric:tabular-nums;white-space:nowrap}._367UGW_pickerFooter{border-top:1px solid var(--dsw-alias-border-l1);font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-secondary);padding-top:6px}._367UGW_optionsRow{align-items:center;gap:16px;display:flex;& ._367UGW_noticeSlot{flex-direction:column;justify-content:center;min-height:40px;display:flex}& ._367UGW_noticeSlot ._367UGW_banner{margin:0}& ._367UGW_noticeLine{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}margin-bottom:4px}._367UGW_groupList{flex-direction:column;gap:8px;margin-bottom:10px;display:flex}._367UGW_groupCard{margin:0}._367UGW_categoryItem{flex-wrap:wrap;align-items:baseline;gap:8px;min-width:0;display:flex}._367UGW_categoryName{color:var(--dsw-alias-label-primary);flex:none;font-weight:500}._367UGW_categoryDesc{font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary);min-width:0}._367UGW_optionsCard{margin:0 0 10px}._367UGW_secretFields ._367UGW_field{margin-bottom:0}._367UGW_secretFields{background:0 0;border:none;border-radius:0;grid-template-columns:1fr 1fr;gap:0 10px;margin:6px 0 10px;padding:0;display:grid}._367UGW_warnList{font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-secondary);margin:4px 0 0;padding-left:18px}._367UGW_wizardStepperRow{align-items:center;gap:10px;margin-bottom:10px;display:flex}._367UGW_conflictDetail{margin-top:2px}._367UGW_conflictList{flex-direction:column;gap:8px;margin-bottom:10px;display:flex}._367UGW_conflictItem{border:1px solid color-mix(in srgb, var(--cm-warn) 35%, transparent);border-radius:var(--cm-r-3);background:var(--dsw-alias-bg-layer-2);padding:10px 12px}._367UGW_conflictHead{font-size:var(--cm-fs-table);align-items:center;gap:8px;margin-bottom:6px;display:flex}._367UGW_conflictId{color:var(--dsw-alias-label-primary);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:600;overflow:hidden}._367UGW_conflictOptions{flex-wrap:wrap;gap:4px 14px;margin-top:6px;display:flex}._367UGW_conflictChoices{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:8px;display:grid}._367UGW_choiceCard{border:1px solid var(--dsw-alias-border-l2);border-radius:var(--cm-r-3);background:var(--dsw-alias-bg-base);font-size:var(--cm-fs-table);color:var(--dsw-alias-label-secondary);cursor:pointer;align-items:center;gap:6px;padding:8px 10px;font-weight:500;transition:border-color .12s ease-out,background-color .12s ease-out;display:flex}._367UGW_choiceCard:hover{border-color:color-mix(in srgb, var(--cm-accent) 40%, var(--dsw-alias-border-l2))}._367UGW_choiceCard:focus-within{outline:var(--cm-focus-width) solid var(--cm-focus-color);outline-offset:1px}._367UGW_choiceCard[data-selected]{border-color:var(--cm-accent);background:color-mix(in srgb, var(--cm-accent) 9%, transparent);color:var(--dsw-alias-label-primary)}._367UGW_choiceCard input{width:13px;height:13px;accent-color:var(--cm-accent);flex:none;margin:0}._367UGW_choiceTitle{min-width:0}._367UGW_conflictDetail{border:1px solid var(--dsw-alias-border-l1);border-radius:var(--cm-r-2);background:var(--dsw-alias-bg-base);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-secondary);overflow-wrap:anywhere;white-space:normal;padding:8px 10px}._367UGW_conflictPrefix{color:var(--dsw-alias-label-tertiary);margin-bottom:4px}._367UGW_conflictLine{align-items:baseline;gap:8px;padding:4px 0;display:flex}._367UGW_conflictLine+._367UGW_conflictLine{border-top:.5px solid var(--dsw-alias-border-l2)}._367UGW_conflictLineLabel{min-width:56px;color:var(--dsw-alias-label-tertiary);flex:none;font-weight:600}._367UGW_conflictLineValue{overflow-wrap:anywhere;flex:auto;min-width:0}._367UGW_pathMappingList{flex-direction:column;gap:6px;margin-bottom:10px;display:flex}._367UGW_pathRow{border:1px solid var(--dsw-alias-border-l1);border-radius:var(--cm-r-3);background:var(--dsw-alias-bg-layer-2);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--cm-fs-meta);flex-direction:column;align-items:stretch;gap:8px;padding:8px 10px;display:flex}._367UGW_pathOld,._367UGW_pathNew{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);border-radius:var(--cm-r-2);background:var(--dsw-alias-bg-base);overflow-wrap:anywhere;flex-direction:column;flex:auto;width:100%;min-width:0;padding:4px 8px;display:flex}._367UGW_pathValue{color:var(--dsw-alias-label-secondary);white-space:pre-wrap;overflow-wrap:anywhere;margin:2px 0 0}._367UGW_pathIssueKind{flex:none}._367UGW_pathInputRow{align-items:center;gap:4px;min-width:0;display:flex}._367UGW_pathInputRow>._367UGW_input{flex:auto;min-width:0}._367UGW_pickerPath{box-sizing:border-box;border-radius:var(--cm-r-2);background:var(--dsw-alias-bg-layer-2);width:100%;color:var(--dsw-alias-label-secondary);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--cm-fs-meta);overflow-wrap:anywhere;padding:4px 8px}._367UGW_pickerList{flex-direction:column;gap:2px;display:flex}._367UGW_pickerRow{box-sizing:border-box;border-radius:var(--cm-r-2);width:100%;min-width:0;color:inherit;font:inherit;font-size:var(--cm-fs-meta);text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;align-items:center;gap:6px;padding:4px 8px;display:flex}._367UGW_pickerRow:hover{background:var(--dsw-alias-bg-layer-2)}._367UGW_pickerRow:focus-visible{outline:2px solid var(--cm-accent);outline-offset:-1px}._367UGW_pickerName{overflow-wrap:anywhere;min-width:0}._367UGW_secretsList{flex-direction:column;display:flex}._367UGW_snapshotPickerRow{flex-wrap:nowrap;align-items:flex-end;gap:8px;margin-top:10px;margin-bottom:10px;display:flex}._367UGW_snapshotPickerRow ._367UGW_field{margin-bottom:0}._367UGW_pickerAction{flex:none;align-items:center;display:inline-flex}._367UGW_logPanel{border:1px solid var(--dsw-alias-border-l1);border-radius:var(--cm-r-3);background:var(--dsw-alias-bg-base);margin-bottom:10px;overflow:hidden}._367UGW_logHeader{border-bottom:1px solid var(--dsw-alias-border-l1);font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary);background:var(--dsw-alias-bg-layer-2);align-items:center;gap:8px;padding:6px 10px;font-weight:600;display:flex}._367UGW_logLine{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-secondary);white-space:pre-wrap;overflow-wrap:anywhere;padding:1px 10px;line-height:1.5}._367UGW_logCounts{color:var(--dsw-alias-label-tertiary);font-weight:500}._367UGW_logFilterButton{font:inherit;font-size:var(--cm-fs-meta);color:var(--cm-accent);cursor:pointer;background:0 0;border:none;padding:0 4px}._367UGW_logFilterButton[data-active]{color:var(--dsw-alias-label-primary);font-weight:700}._367UGW_logEntry+._367UGW_logEntry{border-top:.5px solid var(--dsw-alias-border-l2)}._367UGW_logLine[data-level=fail]{color:var(--cm-error)}._367UGW_logLine[data-level=warn]{color:var(--cm-warn)}._367UGW_logLine[data-level=ok]{color:var(--cm-ok)}._367UGW_logLine[data-level=skip]{color:var(--dsw-alias-label-tertiary)}._367UGW_logLine[data-level=running]{color:var(--dsw-alias-label-primary)}._367UGW_logDetail{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary);white-space:pre-wrap;overflow-wrap:anywhere;padding:0 10px 0 22px;line-height:1.5}._367UGW_logDetail[data-kind=command]{color:var(--dsw-alias-label-secondary)}._367UGW_logEmpty{font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary);text-align:center;padding:12px}._367UGW_logJumpButton{font:inherit;font-size:var(--cm-fs-meta);color:var(--cm-accent);cursor:pointer;background:0 0;border:none;margin-left:auto;padding:0 4px}._367UGW_reportView{border:1px solid var(--dsw-alias-border-l1);border-radius:var(--cm-r-3);background:var(--dsw-alias-bg-layer-2);margin-bottom:10px;overflow:hidden}._367UGW_reportList{flex-direction:column;display:flex}._367UGW_confirmItem{border-bottom:1px solid color-mix(in srgb, var(--dsw-alias-border-l1) 50%, transparent);padding:8px 10px}._367UGW_confirmItem:last-child{border-bottom:none}._367UGW_confirmItemHead{flex-wrap:wrap;align-items:center;gap:8px;display:flex}._367UGW_confirmItemDesc{min-width:0;font-size:var(--cm-fs-base);color:var(--dsw-alias-label-primary);overflow-wrap:anywhere;flex:200px}._367UGW_confirmItemHead+._367UGW_conflictItem{margin-top:8px}._367UGW_reportBlock{margin-bottom:10px}._367UGW_reportProblemRow{border-bottom:1px solid color-mix(in srgb, var(--dsw-alias-border-l1) 50%, transparent);padding:6px 10px}._367UGW_reportProblemRow:last-child{border-bottom:none}._367UGW_reportProblemHead{align-items:center;gap:6px;display:flex}._367UGW_reportProblemText{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--cm-fs-table);color:var(--dsw-alias-label-primary);overflow-wrap:anywhere}._367UGW_reportProblemReason{font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-secondary);overflow-wrap:anywhere;margin-top:2px;line-height:1.5}._367UGW_reportSectionRow{align-items:center;gap:6px;padding:4px 0;display:flex}._367UGW_reportWarningRow{font-size:var(--cm-fs-meta);color:var(--cm-warn);overflow-wrap:anywhere;padding:2px 10px;line-height:1.5}._367UGW_reportDetails{font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary);margin-top:4px}._367UGW_reportDetails>summary{cursor:pointer;color:var(--dsw-alias-label-secondary);padding:2px 0}._367UGW_reportDetails ._367UGW_reportScroll{margin-top:6px}._367UGW_reportView ._367UGW_reportScroll{background:0 0;border:none;border-radius:0}._367UGW_reportBody{flex-direction:column;gap:2px;padding:8px 12px;display:flex}._367UGW_reportHeadline{font-size:var(--cm-fs-base);color:var(--dsw-alias-label-primary);margin-bottom:2px;font-weight:600}._367UGW_reportText{font-size:var(--cm-fs-table);color:var(--dsw-alias-label-secondary);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;padding:8px 12px}._367UGW_reportFooter{border-top:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-base);align-items:center;gap:8px;padding:8px 12px;display:flex}._367UGW_errorBanner{border:1px solid color-mix(in srgb, var(--cm-error) 45%, transparent);border-radius:var(--cm-r-3);background:color-mix(in srgb, var(--cm-error) 8%, transparent);font-size:var(--cm-fs-table);align-items:flex-start;gap:8px;margin:0 0 10px;padding:8px 12px;display:flex}._367UGW_errorTitle{color:var(--cm-error);font-weight:600}._367UGW_errorLine{white-space:pre-wrap;overflow-wrap:anywhere;color:var(--dsw-alias-label-secondary);margin:0}._367UGW_errorList{font-size:var(--cm-fs-meta);margin:4px 0 0;padding-left:18px}._367UGW_errorItem{overflow-wrap:anywhere}._367UGW_errorReason{white-space:pre-wrap;overflow-wrap:anywhere;min-width:0;color:var(--dsw-alias-label-tertiary);margin:0}._367UGW_errorFooter{margin-top:6px}._367UGW_errorAction{margin-right:8px}._367UGW_errorActionLabel{color:var(--cm-accent)}._367UGW_inspectGroup{margin-bottom:10px}._367UGW_kindTag{border-radius:var(--cm-r-1);background:var(--dsw-alias-interactive-bg-hover);height:16px;font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-secondary);white-space:nowrap;align-items:center;padding:0 6px;font-weight:600;display:inline-flex}._367UGW_kindTagOk{background:color-mix(in srgb, var(--cm-ok) 13%, transparent);color:var(--cm-ok)}._367UGW_kindTagInfo{background:color-mix(in srgb, var(--cm-accent) 13%, transparent);color:var(--cm-accent)}._367UGW_kindTagWarn{background:color-mix(in srgb, var(--cm-warn) 13%, transparent);color:var(--cm-warn)}._367UGW_kindTagError{background:color-mix(in srgb, var(--cm-error) 13%, transparent);color:var(--cm-error)}._367UGW_restorePlan{animation:_367UGW_itemEnter var(--cm-motion-base) var(--cm-motion-ease-out);flex-direction:column;gap:10px;display:flex}._367UGW_restorePlanList{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}._367UGW_restorePlanRow,._367UGW_restorePlanRowStatic{border-radius:var(--cm-r-2);align-items:center;gap:8px;width:100%;padding:4px 6px;display:flex}._367UGW_restorePlanRow{color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:none}._367UGW_restorePlanRow:hover{background:var(--dsw-alias-interactive-bg-hover)}._367UGW_restorePlanRow:focus-visible{box-shadow:0 0 0 2px color-mix(in srgb, var(--cm-accent) 55%, transparent);outline:none}._367UGW_restorePlanPath{min-width:0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--cm-fs-table);color:var(--dsw-alias-label-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}._367UGW_restorePlanStat{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary);font-variant-numeric:tabular-nums;white-space:nowrap;flex:none}._367UGW_restorePlanChevron{color:var(--dsw-alias-label-tertiary);flex:none}._367UGW_restorePlanNote{font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-secondary);overflow-wrap:anywhere;padding:0 6px 4px 24px}._367UGW_restorePlanGroupHead{align-items:center;gap:8px;margin:0 0 4px;display:flex}._367UGW_restorePlanGroupHead ._367UGW_groupLabel{margin-bottom:0;display:inline}._367UGW_diffGroupToggle{color:var(--dsw-alias-label-secondary);font-size:var(--cm-fs-meta);cursor:pointer;background:0 0;border:none;padding:0;font-weight:700}._367UGW_diffGroupToggle:hover{color:var(--dsw-alias-label-primary)}._367UGW_diffGroupToggle:focus-visible{border-radius:var(--cm-r-1);box-shadow:0 0 0 2px color-mix(in srgb, var(--cm-accent) 55%, transparent);outline:none}._367UGW_diffStatTotal{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--cm-fs-meta);font-variant-numeric:tabular-nums}._367UGW_diffStatAdd{color:var(--cm-ok)}._367UGW_diffStatDel{color:var(--cm-error)}._367UGW_rollbackTabIcon{flex:none;align-items:center;margin-right:6px;display:inline-flex}._367UGW_diffFileHead{border-bottom:1px solid var(--dsw-alias-border-l1);font-size:var(--cm-fs-table);flex:none;align-items:center;gap:8px;padding:2px 6px;line-height:1.5;display:flex}._367UGW_diffFilePath{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--dsw-alias-label-secondary);flex:auto;overflow:hidden}._367UGW_diffFileStat{font-variant-numeric:tabular-nums;flex:none}._367UGW_diffPane{margin:2px 0 8px}._367UGW_diffPaneFill{flex-direction:column;height:100%;min-height:0;margin:0;display:flex}._367UGW_diffPane ._367UGW_diffScroll{max-height:min(80vh,800px)}._367UGW_dialogCard ._367UGW_diffPane ._367UGW_diffScroll{max-height:380px}._367UGW_diffPaneFill ._367UGW_diffScroll{flex:auto;min-height:0;max-height:calc(100vh - 90px)}._367UGW_diffTable{border-collapse:collapse;table-layout:fixed;width:100%;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--cm-fs-table);line-height:1.5}._367UGW_diffNoColW3{width:calc(3ch + 18px)}._367UGW_diffNoColW4{width:calc(4ch + 18px)}._367UGW_diffNoColW5{width:calc(5ch + 18px)}._367UGW_diffNoColW6{width:calc(6ch + 18px)}._367UGW_diffNoHead{border-bottom:1px solid var(--dsw-alias-border-l1);border-right:1px solid var(--dsw-alias-border-l1);color:var(--dsw-alias-label-tertiary);font-size:var(--cm-fs-meta);text-align:left;padding:2px 6px;font-weight:600;line-height:1.5}._367UGW_diffNoHead+._367UGW_diffNoHead{border-left:1px solid var(--dsw-alias-border-l1)}._367UGW_diffHunkRow td{background:var(--dsw-alias-bg-layer-2);color:var(--dsw-alias-label-tertiary);padding:2px 6px}._367UGW_diffTable tbody td:nth-child(3),._367UGW_diffHunkRow td+td{border-left:1px solid var(--dsw-alias-border-l1)}._367UGW_diffNo{color:var(--dsw-alias-label-tertiary);font-variant-numeric:tabular-nums;text-align:right;vertical-align:top;user-select:none;padding:1px 4px}._367UGW_diffNoDel{background:color-mix(in srgb, var(--cm-error) 12%, transparent);color:var(--cm-error);box-shadow:inset 3px 0 0 var(--cm-error)}._367UGW_diffNoAdd{background:color-mix(in srgb, var(--cm-ok) 12%, transparent);color:var(--cm-ok);box-shadow:inset 3px 0 0 var(--cm-ok)}._367UGW_diffCell{color:var(--dsw-alias-label-secondary);white-space:pre-wrap;overflow-wrap:anywhere;vertical-align:top;padding:1px 6px}._367UGW_diffCellAdd{background:color-mix(in srgb, var(--cm-ok) 12%, transparent)}._367UGW_diffCellDel{background:color-mix(in srgb, var(--cm-error) 12%, transparent)}._367UGW_nextStepsGroup{margin-bottom:10px}._367UGW_nextStepsList{max-height:132px;overflow-y:auto}._367UGW_rollbackBox{border:1px solid var(--dsw-alias-border-l2);border-radius:var(--cm-r-3);background:var(--dsw-alias-bg-base);margin-bottom:10px;padding:8px 10px}._367UGW_statRow{flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;display:flex}._367UGW_statRow:not(:last-child){margin-bottom:10px}._367UGW_consultSection{margin-top:10px}._367UGW_consultSection:first-of-type{margin-top:8px}._367UGW_consultSection ._367UGW_statRow{margin-top:0}._367UGW_hiddenFile{display:none}._367UGW_cliName,._367UGW_cliCommand{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--cm-fs-meta)}._367UGW_cliCommand{color:var(--dsw-alias-label-secondary);white-space:pre-wrap;overflow-wrap:anywhere;margin:0}._367UGW_historyGroup{margin-bottom:12px}._367UGW_historyRow{border-bottom:.5px solid var(--dsw-alias-border-l2);font-size:var(--cm-fs-table);align-items:flex-start;gap:8px;padding:6px 8px;display:flex}._367UGW_historyRow:last-child{border-bottom:none}._367UGW_historyRowMain{flex:auto;min-width:0}._367UGW_historyMeta{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:2px;display:flex}._367UGW_historySummary{overflow-wrap:anywhere;color:var(--dsw-alias-label-secondary);display:block}._367UGW_historyTime{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary);flex:none;padding-top:1px}._367UGW_historySections{font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary)}._367UGW_profileRow{border:1px solid var(--dsw-alias-border-l1);border-radius:var(--cm-r-3);background:var(--dsw-alias-bg-layer-2);margin-bottom:6px;padding:8px 12px}._367UGW_profileRow[data-selected]{border-color:var(--cm-accent);background:color-mix(in srgb, var(--cm-accent) 7%, transparent)}._367UGW_profileRowHeader{font-size:var(--cm-fs-table);align-items:center;gap:8px;display:flex}._367UGW_profileRowMain{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;font-weight:500;overflow:hidden}button._367UGW_profileRowMain{font:inherit;color:var(--dsw-alias-label-primary);text-align:left;cursor:pointer;background:0 0;border:none;flex-direction:column;align-items:flex-start;gap:2px;padding:0;display:flex}._367UGW_profileRowTitle{align-items:center;gap:6px;min-width:0;max-width:100%;display:flex}._367UGW_profileRowName{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}._367UGW_profileRowMeta{max-width:100%;font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;font-weight:400;display:block;overflow:hidden}._367UGW_detailLines{font-size:var(--cm-fs-meta);flex-direction:column;gap:2px;min-width:0;display:flex}button._367UGW_profileRowMain:hover{color:var(--cm-accent)}._367UGW_listHeaderRow{align-items:center;gap:8px;margin:0 0 8px;display:flex}._367UGW_listHeaderRow ._367UGW_groupLabel{margin-bottom:0}._367UGW_listHeaderRow ._367UGW_cellMeta{flex:auto;min-width:0}._367UGW_badgeRow{flex:none;align-items:center;gap:4px;display:inline-flex}._367UGW_actionRow[data-inline]{flex:none;margin:0}._367UGW_aboutLinkRow{flex-wrap:wrap;align-items:center;gap:8px;display:flex}._367UGW_aboutAuthor{font-size:var(--cm-fs-base);color:var(--cm-accent);overflow-wrap:anywhere;font-weight:600;text-decoration:none}._367UGW_aboutAuthor:hover{text-decoration:underline}._367UGW_aboutAuthor:focus-visible{outline:var(--cm-focus-width) solid var(--cm-focus-color);outline-offset:1px;border-radius:var(--cm-r-1)}._367UGW_consultDimension{border-bottom:.5px solid var(--dsw-alias-border-l2);font-size:var(--cm-fs-table);padding:6px 0}._367UGW_consultDimension:last-child{border-bottom:none}._367UGW_severityError{color:var(--cm-error);font-weight:600}._367UGW_viewBody{gap:10px}._367UGW_viewBody>*{margin-bottom:0}._367UGW_viewBody>._367UGW_statRow{margin-top:0;margin-bottom:0}._367UGW_viewBody:after{content:\"\";flex:none;height:8px}@media (width<=900px){._367UGW_secretFields{grid-template-columns:1fr}._367UGW_pagePad{padding:10px 12px 12px}}._367UGW_marketReviewPage{flex-direction:column;flex:1 0 auto;gap:10px;min-height:200px;display:flex}._367UGW_marketReviewPage ._367UGW_pickerRoot{flex:auto}._367UGW_marketReviewScroll,._367UGW_marketReviewPage ._367UGW_pickerList{scrollbar-gutter:stable;flex:auto;min-height:200px;max-height:800px;overflow:auto}._367UGW_marketReviewScroll{border:1px solid var(--dsw-alias-border-l1);border-radius:var(--cm-r-3);background:var(--dsw-alias-bg-base);padding:6px 10px}@media (prefers-reduced-motion:reduce){._367UGW_toast,._367UGW_statusDot[data-pulse],._367UGW_pagePad,._367UGW_dialogMask,._367UGW_dialogContentCenter,._367UGW_snapshotList>*,._367UGW_dataTable tbody tr,._367UGW_viewEnter,._367UGW_pickerOverlay,._367UGW_pickerUnit,._367UGW_banner,._367UGW_empty{animation:none}._367UGW_statusDot,._367UGW_stepperDot,._367UGW_stepperLabel{transition:none}._367UGW_selectMenu,._367UGW_selectChevron{transition:none;animation:none}._367UGW_artifactDetailWrap,._367UGW_artifactDetailWrap>*{transition:none}._367UGW_dialogMask[data-state=closed],._367UGW_dialogContentCenter[data-state=closed],._367UGW_restorePlan,._367UGW_infoHintBubble{animation:none}._367UGW_collapse{transition:none}._367UGW_skeletonBar{background-image:none;animation:none}}._367UGW_sourceList{flex-direction:column;gap:6px;margin-bottom:10px;display:flex}._367UGW_sourceRow{border:1px solid var(--dsw-alias-border-l1);border-radius:var(--cm-r-3);background:var(--dsw-alias-bg-layer-2);align-items:flex-start;gap:8px;min-width:0;padding:8px 10px;display:flex}._367UGW_sourceRow[data-selected]{border-color:var(--cm-accent);background:color-mix(in srgb, var(--cm-accent) 7%, transparent)}._367UGW_sourceRow[data-disabled]{opacity:.7}._367UGW_sourceRowMain{flex:auto;min-width:0}._367UGW_sourceRowHead{align-items:center;gap:8px;min-width:0;display:flex}._367UGW_sourceRowName{font-size:var(--cm-fs-table);color:var(--dsw-alias-label-primary);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:600;overflow:hidden}._367UGW_sourceRowHead>:not(._367UGW_sourceRowName){flex:none}._367UGW_sourcePaths{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary);overflow-wrap:anywhere;margin-top:4px;line-height:1.5;display:block}._367UGW_skipList{font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-secondary);flex-direction:column;gap:4px;margin:6px 0 0;padding:0;display:flex}._367UGW_skipRow{flex-wrap:wrap;align-items:baseline;gap:6px;min-width:0;display:flex}._367UGW_skipCode{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--cm-fs-meta);border-radius:var(--cm-r-1);background:color-mix(in srgb, var(--dsw-alias-label-tertiary) 12%, transparent);color:var(--dsw-alias-label-secondary);white-space:nowrap;flex:none;padding:1px 4px}._367UGW_skipText{overflow-wrap:anywhere;flex:auto;min-width:0}._367UGW_skipMeta{font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary);font-variant-numeric:tabular-nums;flex:none}._367UGW_chatEntryScope{--cm-text-1:var(--dsw-alias-label-primary);--cm-text-3:var(--dsw-alias-label-tertiary);--cm-surface-2:var(--dsw-alias-bg-layer-2);--cm-chat-bubble:var(--dsw-specific-bubble,color-mix(in srgb, var(--cm-text-1) 12%, transparent));--cm-line-1:var(--dsw-alias-border-l1);--cm-line-2:var(--dsw-alias-border-l2);--cm-fs-meta:11px;--cm-fs-base:var(--dsh-content-font-size,14px);--cm-lh-base:calc(22px + var(--dsh-content-font-delta,0px));--cm-text-2:var(--dsw-alias-label-secondary);--cm-r-chat:var(--dsw-radius-xl,20px);--cm-r-act:var(--dsw-radius-sm,8px);--cm-chat-card-bg:var(--dsw-specific-input-major,transparent);--cm-chat-hover-bg:var(--dsw-alias-interactive-bg-hover,var(--cm-line-1));--cm-fs-second:var(--dsh-content-font-size-secondary,13px);--cm-lh-second:calc(24px + var(--dsh-content-font-delta,0px));--cm-lh-ref:calc(18px + var(--dsh-content-font-delta-secondary,0px));--cm-fs-card:14px;--cm-lh-card:22px;--cm-lh-meta:15px;--cm-chat-action:calc(28px + var(--dsh-content-font-delta,0px));--cm-chat-glyph:calc(15px + var(--dsh-content-font-delta,0px));--cm-sp-2:4px;--cm-sp-3:6px;--cm-sp-4:8px;--cm-sp-5:10px;--cm-sp-6:12px;--cm-sp-8:16px;--cm-r-2:6px;--cm-r-3:8px;min-width:0;color:var(--cm-text-1);font-size:var(--cm-fs-base);line-height:var(--cm-lh-base);display:block}._367UGW_chatEntryRow{align-items:flex-end;gap:var(--cm-sp-3);flex-direction:column;display:flex}._367UGW_chatEntryStack{align-items:flex-end;gap:var(--cm-sp-4);min-width:0;max-width:min(calc(var(--dsh-chat-content-width,748px) * .702), 82%);flex-direction:column;display:flex}._367UGW_chatBubble{max-width:100%;padding:var(--cm-sp-5) var(--cm-sp-8);border-radius:var(--cm-r-chat);background:var(--cm-chat-bubble);color:var(--cm-text-1);white-space:pre-wrap;word-break:break-word}._367UGW_chatBubbleText{white-space:pre-wrap;word-break:break-word}._367UGW_chatFallbackBubble{border-left:2px solid var(--cm-text-1)}._367UGW_chatAttachmentRow{justify-content:flex-end;gap:var(--cm-sp-4);flex-wrap:wrap;max-width:100%;display:flex}._367UGW_chatFileCard{align-items:center;gap:var(--cm-sp-5);box-sizing:border-box;width:240px;min-height:64px;padding:var(--cm-sp-4) var(--cm-sp-6);border:.5px solid var(--cm-line-2);border-radius:var(--cm-r-chat);background:var(--cm-chat-card-bg);flex:0 0 240px;display:inline-flex}._367UGW_chatFileIcon{flex:none;width:28px;height:28px}._367UGW_chatFileContent{flex-direction:column;flex:1;min-width:0;display:flex}._367UGW_chatFileExt{border-radius:var(--cm-r-2);background:var(--cm-line-1);min-width:28px;height:28px;color:var(--cm-text-1);font-size:var(--cm-fs-meta);letter-spacing:.02em;flex:none;justify-content:center;align-items:center;display:inline-flex}._367UGW_chatFileName{color:var(--cm-text-1);font-size:var(--cm-fs-card);font-weight:500;line-height:var(--cm-lh-card);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}._367UGW_chatFileMeta{color:var(--cm-text-3);font-size:12px;line-height:var(--cm-lh-meta);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}._367UGW_chatRawBlock{font-size:var(--cm-fs-meta);color:var(--cm-text-3)}._367UGW_chatRawSummary{cursor:pointer}._367UGW_chatRawPre{max-height:220px;margin:var(--cm-sp-2) 0 0;padding:var(--cm-sp-3);border-radius:var(--cm-r-2);background:var(--cm-surface-2);color:var(--cm-text-3);white-space:pre-wrap;word-break:break-all;overflow:auto}._367UGW_chatEntryActions{align-items:center;gap:var(--cm-sp-4);height:var(--cm-chat-action);margin-top:var(--cm-sp-2);margin-left:calc(-1 * var(--cm-sp-3));display:flex}._367UGW_chatEntryTime{color:var(--cm-text-3);font-size:var(--cm-fs-second);line-height:var(--cm-lh-second);white-space:nowrap;padding-right:var(--cm-sp-6)}._367UGW_chatEntryNotice{max-width:min(calc(var(--dsh-chat-content-width,748px) * .702), 82%);color:var(--cm-text-3);font-size:var(--cm-fs-meta)}._367UGW_chatEntryReference{color:var(--cm-text-3);font-size:var(--cm-fs-second);line-height:var(--cm-lh-ref)}._367UGW_chatActionBtn{width:var(--cm-chat-action);height:var(--cm-chat-action);padding:var(--cm-sp-3);border-radius:var(--cm-r-act);color:var(--cm-text-3);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;display:inline-flex}._367UGW_chatActionBtn svg{width:var(--cm-chat-glyph);height:var(--cm-chat-glyph)}._367UGW_chatActionBtn:hover{background:var(--cm-chat-hover-bg);color:var(--cm-text-2)}@media (hover:hover){:is([data-chat-flow-kind=user],[data-chat-flow-kind=steering]):has(~:is([data-chat-flow-kind=user],[data-chat-flow-kind=steering])) ._367UGW_chatEntryActions{opacity:0;transition:opacity var(--cm-motion-fast)}:is([data-chat-flow-kind=user],[data-chat-flow-kind=steering]):has(~:is([data-chat-flow-kind=user],[data-chat-flow-kind=steering])):hover ._367UGW_chatEntryActions,:is([data-chat-flow-kind=user],[data-chat-flow-kind=steering]):has(~:is([data-chat-flow-kind=user],[data-chat-flow-kind=steering])):focus-within ._367UGW_chatEntryActions{opacity:1}}._367UGW_chatActionBtn:disabled{color:var(--cm-text-3);opacity:.5;cursor:not-allowed}._367UGW_rollbackFileList{margin-top:var(--cm-sp-2);flex-direction:column;display:flex}._367UGW_rollbackFileRow{align-items:center;gap:var(--cm-sp-3);padding:var(--cm-sp-3) 0 var(--cm-sp-3) var(--cm-sp-2);grid-template-columns:auto minmax(0,1fr) auto;display:grid;position:relative}._367UGW_rollbackFileRow:before{content:\"\";left:0;top:var(--cm-sp-2);bottom:var(--cm-sp-2);background:var(--cm-info);width:2px;position:absolute}._367UGW_rollbackFileRow[data-kind=create]:before{background:var(--cm-ok)}._367UGW_rollbackFileRow[data-kind=delete]:before{background:var(--cm-error)}._367UGW_rollbackFileRow:not([data-kind]):before{display:none}._367UGW_rollbackFileIcon{flex:none;align-items:center;display:inline-flex}._367UGW_rollbackFilePath{min-width:0;color:var(--cm-text-1);font-size:var(--cm-fs-table);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}._367UGW_rollbackFileDir{color:var(--cm-text-3);transition:color var(--cm-motion-fast) ease}._367UGW_rollbackFileStat{justify-content:flex-end;justify-self:end;align-items:baseline;gap:var(--cm-sp-2);display:inline-flex}._367UGW_rollbackAdded{color:var(--cm-ok);font-size:var(--cm-fs-table);font-variant-numeric:tabular-nums;flex:none}._367UGW_rollbackRemoved{color:var(--cm-error);font-size:var(--cm-fs-table);font-variant-numeric:tabular-nums;flex:none}._367UGW_rollbackDeleted{color:var(--cm-error);font-size:var(--cm-fs-table);flex:none}._367UGW_rollbackFilePath:is(button){font:inherit;font-size:var(--cm-fs-table);color:var(--cm-text-1);text-align:left;cursor:pointer;transition:color var(--cm-motion-fast) ease;background:0 0;border:0;padding:0}._367UGW_rollbackFilePath:is(button):hover:not(:disabled),._367UGW_rollbackFilePath:is(button):focus-visible,._367UGW_rollbackFilePath:is(button):hover:not(:disabled) ._367UGW_rollbackFileDir,._367UGW_rollbackFilePath:is(button):focus-visible ._367UGW_rollbackFileDir{color:var(--cm-accent)}._367UGW_rollbackFilePath:is(button):disabled{color:var(--cm-text-1);cursor:not-allowed;opacity:.7}._367UGW_previewChoiceRow{justify-content:space-between;align-items:baseline;gap:var(--cm-sp-4);margin:0 0 var(--cm-sp-2);display:flex}._367UGW_previewScope{align-items:baseline;gap:var(--cm-sp-3);font-size:var(--cm-fs-meta);color:var(--cm-text-2);font-variant-numeric:tabular-nums;flex:none;display:inline-flex}._367UGW_previewScopeStats{align-items:baseline;gap:var(--cm-sp-3);display:inline-flex}._367UGW_previewScope[data-off=true] ._367UGW_previewScopeStats{color:var(--cm-text-3);opacity:.75}._367UGW_previewScopeOff{color:var(--cm-text-3)}._367UGW_inlineDiffBox{gap:var(--cm-sp-2);margin-top:var(--cm-sp-2);padding:var(--cm-sp-2);border:1px solid var(--cm-line-1);border-radius:var(--cm-r-2);flex-direction:column;display:flex}._367UGW_rollbackWarnings{flex-direction:column;gap:4px;margin-bottom:10px;display:flex}._367UGW_rollbackToolbar{align-items:center;gap:8px;margin-bottom:8px;display:flex}._367UGW_rollbackSummary{font-size:var(--cm-fs-table);color:var(--dsw-alias-label-secondary);font-variant-numeric:tabular-nums;font-weight:600}._367UGW_rollbackScroll{padding:8px}._367UGW_rollbackGroup{border:1px solid var(--dsw-alias-border-l1);border-radius:var(--cm-r-3);background:var(--dsw-alias-bg-layer-2);flex-direction:column;flex:auto;gap:8px;min-height:0;padding:8px 10px;display:flex}._367UGW_rollbackGroupHead{border-bottom:1px solid var(--dsw-alias-border-l1);flex-wrap:wrap;align-items:center;gap:6px;padding-bottom:6px;display:flex}._367UGW_rollbackGroupTitle{font-size:var(--cm-fs-table);color:var(--dsw-alias-label-secondary);overflow-wrap:anywhere;font-weight:600}._367UGW_rollbackGroupUnit{text-overflow:ellipsis;white-space:nowrap;text-align:right;min-width:0;font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary);flex:auto;margin-left:auto;overflow:hidden}._367UGW_rollbackPoints{flex-direction:column;gap:6px;display:flex}._367UGW_rollbackPoint{border:1px solid var(--dsw-alias-border-l1);border-radius:var(--cm-r-3);background:var(--dsw-alias-bg-base);border-left-width:2px;flex-direction:column;gap:4px;padding:8px 10px;display:flex}._367UGW_rollbackPoint[data-kind=auto]{border-left-color:var(--cm-ok)}._367UGW_rollbackPoint[data-kind=guard]{border-left-color:var(--cm-info)}._367UGW_rollbackPoint[data-kind=unknown]{border-left-color:var(--cm-text-3)}._367UGW_rollbackPointTop{flex-wrap:wrap;align-items:center;gap:6px;display:flex}._367UGW_rollbackPointTurn{font-size:var(--cm-fs-table);color:var(--dsw-alias-label-primary);font-variant-numeric:tabular-nums;font-weight:600}._367UGW_rollbackPointActions{flex:none;align-items:center;gap:6px;margin-left:auto;display:flex}._367UGW_rollbackPointMeta{font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary);flex-wrap:wrap;align-items:center;gap:6px;line-height:1.5;display:flex}._367UGW_rollbackMetaDot{color:var(--dsw-alias-label-tertiary);flex:none}._367UGW_rollbackLedger{align-items:stretch;gap:10px;height:340px;display:flex}._367UGW_rollbackSessions{flex-direction:column;flex:0 0 148px;gap:4px;height:100%;display:flex;overflow:auto}._367UGW_rollbackSessionItem{text-align:left;border:1px solid var(--dsw-alias-border-l1);border-radius:var(--cm-r-2);background:var(--dsw-alias-bg-base);width:100%;color:var(--dsw-alias-label-secondary);cursor:pointer;flex-direction:column;gap:2px;padding:6px 8px;display:flex}._367UGW_rollbackSessionItem:hover{background:var(--dsw-alias-bg-layer-2)}._367UGW_rollbackSessionItem[data-active]{border-color:var(--cm-accent);background:var(--dsw-alias-bg-layer-2);color:var(--dsw-alias-label-primary)}._367UGW_rollbackSessionId{font-size:var(--cm-fs-table);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}._367UGW_rollbackSessionMeta{font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary);align-items:center;gap:2px;line-height:1.5;display:flex}._367UGW_rollbackLedgerMain{flex-direction:column;flex:auto;gap:8px;min-width:0;height:100%;display:flex}._367UGW_rollbackPointsScroll{flex:auto;min-height:0;padding:8px;overflow:auto}._367UGW_rollbackPointNote{text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:100%;overflow:hidden}._367UGW_shHeaderTrailing{align-items:center;gap:8px;margin-left:auto;display:inline-flex}._367UGW_shHeaderTrailing~._367UGW_dialogClose{margin-left:0}._367UGW_shSummary{border:1px solid var(--dsw-alias-border-l1);border-radius:var(--cm-r-3);background:var(--dsw-alias-bg-layer-2);flex-direction:column;gap:10px;margin:0 0 10px;padding:12px 14px;display:flex}._367UGW_shMetrics{flex-wrap:wrap;align-items:flex-end;gap:8px 24px;display:flex}._367UGW_shMetric{flex-direction:column;gap:2px;min-width:0;display:flex}._367UGW_shMetricValue{font-size:var(--cm-fs-title);color:var(--dsw-alias-label-primary);font-variant-numeric:tabular-nums;font-weight:600;line-height:1.25}._367UGW_shMetricLabel{font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary)}._367UGW_shMetric[data-tone=warn] ._367UGW_shMetricValue{color:var(--cm-warn)}._367UGW_shMetric[data-tone=ok] ._367UGW_shMetricValue{color:var(--cm-ok)}._367UGW_shSeverities{flex-wrap:wrap;align-items:center;gap:6px;display:flex}._367UGW_shSeverity{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-base);font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-secondary);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:2px 8px;line-height:1.5;display:inline-flex}._367UGW_shSeverityCount{color:var(--dsw-alias-label-primary);font-variant-numeric:tabular-nums;font-weight:600}._367UGW_shSeverity[data-severity=blocksStartup],._367UGW_shSeverity[data-severity=unloadable]{border-color:color-mix(in srgb, var(--cm-error) 45%, transparent)}._367UGW_shSeverity[data-severity=nextRequestFails],._367UGW_shSeverity[data-severity=invisible]{border-color:color-mix(in srgb, var(--cm-warn) 45%, transparent)}._367UGW_shNotes{border-top:1px solid color-mix(in srgb, var(--dsw-alias-border-l1) 60%, transparent);flex-direction:column;gap:4px;padding-top:8px;display:flex}._367UGW_shSectionHead{flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 10px;display:flex}._367UGW_shSectionHead ._367UGW_groupLabel{margin-bottom:0}._367UGW_shSectionTitle{font-size:var(--cm-fs-title);color:var(--dsw-alias-label-primary);font-weight:600;line-height:1.25}._367UGW_snapshotList._367UGW_shScroll{background:var(--dsw-alias-bg-base);padding:8px}._367UGW_shRow{border:1px solid var(--dsw-alias-border-l1);border-radius:var(--cm-r-3);background:var(--dsw-alias-bg-layer-2);border-left-width:2px;flex-direction:column;gap:4px;padding:8px 10px;display:flex}._367UGW_shRow[data-severity=blocksStartup],._367UGW_shRow[data-severity=unloadable]{border-left-color:var(--cm-error)}._367UGW_shRow[data-severity=nextRequestFails],._367UGW_shRow[data-severity=invisible]{border-left-color:var(--cm-warn)}._367UGW_shRow[data-severity=ok]{border-left-color:var(--cm-ok)}._367UGW_shRowTop{flex-wrap:wrap;align-items:center;gap:6px;display:flex}._367UGW_shRowId{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:var(--cm-fs-table);color:var(--dsw-alias-label-primary);flex:auto;font-weight:600;overflow:hidden}._367UGW_shRowActions{flex:none;align-items:center;gap:6px;margin-left:auto;display:flex}._367UGW_shRowMeta{font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary);flex-wrap:wrap;align-items:center;gap:6px;line-height:1.5;display:flex}._367UGW_shIssue{border-radius:var(--cm-r-1);background:color-mix(in srgb, var(--dsw-alias-label-tertiary) 12%, transparent);color:var(--dsw-alias-label-secondary);align-items:center;padding:2px 6px;display:inline-flex}._367UGW_shRowFacts{white-space:nowrap;font-variant-numeric:tabular-nums;flex:none;margin-left:auto}._367UGW_shMetaDot{color:var(--dsw-alias-label-tertiary);flex:none}._367UGW_shLines{flex-direction:column;gap:4px;display:flex}._367UGW_shPanel{border:1px solid var(--dsw-alias-border-l2);border-radius:var(--cm-r-3);background:var(--dsw-alias-bg-base);margin:0 0 10px;padding:10px 12px}._367UGW_shPanelHead{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:6px;display:flex}._367UGW_shPanelTitle{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:var(--cm-fs-table);color:var(--dsw-alias-label-primary);flex:auto;font-weight:600;overflow:hidden}._367UGW_shCommands{border:1px solid var(--dsw-alias-border-l1);border-radius:var(--cm-r-3);background:var(--dsw-alias-bg-layer-2);margin:0 0 10px;padding:0;list-style:none;overflow:hidden}._367UGW_shCommand{border-bottom:1px solid color-mix(in srgb, var(--dsw-alias-border-l1) 50%, transparent);align-items:center;gap:8px;padding:8px 10px;display:flex}._367UGW_shCommand:last-child{border-bottom:none}._367UGW_shCommand code{overflow-wrap:anywhere;min-width:0;font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-secondary);flex:auto}._367UGW_mergeView{flex-direction:column;gap:10px;display:flex}._367UGW_mergeOverview{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}._367UGW_mergeTile{border:.5px solid var(--cm-line-1);border-radius:var(--cm-r-3);background:var(--cm-surface-1);flex-direction:column;gap:2px;padding:8px 10px;display:flex}._367UGW_mergeTile[data-tone=ok]{border-color:color-mix(in srgb, var(--cm-ok) 40%, transparent);background:color-mix(in srgb, var(--cm-ok) 8%, transparent)}._367UGW_mergeTile[data-tone=info]{border-color:color-mix(in srgb, var(--cm-info) 40%, transparent);background:color-mix(in srgb, var(--cm-info) 8%, transparent)}._367UGW_mergeTile[data-tone=warn]{border-color:color-mix(in srgb, var(--cm-warn) 40%, transparent);background:color-mix(in srgb, var(--cm-warn) 8%, transparent)}._367UGW_mergeTile[data-tone=error]{border-color:color-mix(in srgb, var(--cm-error) 40%, transparent);background:color-mix(in srgb, var(--cm-error) 8%, transparent)}._367UGW_mergeTileValue{font-size:var(--cm-fs-title);color:var(--cm-text-1);font-variant-numeric:tabular-nums;font-weight:600;line-height:1.25}._367UGW_mergeTileLabel{font-size:var(--cm-fs-meta);color:var(--cm-text-2);line-height:1.25}._367UGW_mergeToolbar{flex-wrap:wrap;align-items:center;gap:6px;display:flex}._367UGW_mergeToolbarLabel{font-size:var(--cm-fs-meta);color:var(--cm-text-3)}._367UGW_mergeIconLabel{align-items:center;gap:4px;display:inline-flex}._367UGW_mergeResult{border:.5px solid var(--cm-line-1);border-radius:var(--cm-r-3);background:var(--cm-surface-1);flex-direction:column;gap:2px;padding:10px 12px;display:flex}._367UGW_mergeFooterSummary{min-width:0;font-size:var(--cm-fs-meta);color:var(--cm-text-2);line-height:1.5}._367UGW_mergeSection{border:.5px solid var(--cm-line-1);border-radius:var(--cm-r-3);background:var(--cm-surface-1);padding:10px 12px}._367UGW_mergeSection+._367UGW_mergeSection{margin-top:8px}._367UGW_mergeSectionHead{flex-wrap:wrap;align-items:center;gap:8px;display:flex}._367UGW_mergeSectionName{font-size:var(--cm-fs-title);color:var(--cm-text-1);font-weight:600}._367UGW_mergeMeta{font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary)}._367UGW_mergeActions{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}._367UGW_mergeActionActive{background:var(--cm-ghost-active-fill);border-color:var(--cm-ghost-active-border);font-weight:600}._367UGW_mergeConflictRow{border:.5px solid var(--cm-line-1);border-radius:var(--cm-r-2);background:color-mix(in srgb, var(--cm-text-1) 4%, transparent);margin-top:8px;padding:8px}._367UGW_mergeConflictPath{overflow-wrap:anywhere;min-width:0;font-size:var(--cm-fs-table);color:var(--dsw-alias-label-primary);align-items:baseline;gap:6px;display:flex}._367UGW_mergeKind{border-radius:var(--cm-r-1);background:color-mix(in srgb, var(--cm-text-1) 8%, transparent);font-size:var(--cm-fs-meta);color:var(--cm-text-2);flex:none;padding:0 6px;line-height:1.5}._367UGW_mergeConflictReason{font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary);margin-top:4px}._367UGW_mergeCols{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:6px;display:grid}._367UGW_mergeCol{min-width:0}._367UGW_mergeColLabel{font-size:var(--cm-fs-meta);color:var(--dsw-alias-label-tertiary);display:block}._367UGW_mergeColValue{white-space:pre-wrap;overflow-wrap:anywhere;max-height:88px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--cm-fs-meta);color:var(--cm-text-2);margin:0;overflow:auto}._367UGW_mergeScroll[data-fit=modal]{scrollbar-gutter:stable;max-height:46vh;padding:8px}._367UGW_syncActivity{flex-direction:column;gap:4px;margin-top:8px;display:flex}._367UGW_syncActivityTrack{display:block}._367UGW_syncActivityLabel{font-size:var(--cm-fs-meta);color:var(--cm-text-2);line-height:1.5}";
14537
15846
  const tagId = "dsh-config-manager/config-manager.module.css";
14538
15847
  if (typeof document !== "undefined" && document.querySelector("style[data-tag=\"dsh-config-manager/config-manager.module.css\"]") === null) {
14539
15848
  const tag = document.createElement("style");
@@ -14543,559 +15852,563 @@ if (typeof document !== "undefined" && document.querySelector("style[data-tag=\"
14543
15852
  document.head.appendChild(tag);
14544
15853
  }
14545
15854
  var config_manager_module_css_default = {
15855
+ "badgeRow": "_367UGW_badgeRow",
15856
+ "selectChevron": "_367UGW_selectChevron",
15857
+ "diskUsageCard": "_367UGW_diskUsageCard",
15858
+ "tableFixed": "_367UGW_tableFixed",
15859
+ "pickerName": "_367UGW_pickerName",
15860
+ "skipCode": "_367UGW_skipCode",
15861
+ "taskTitle": "_367UGW_taskTitle",
15862
+ "pathInputRow": "_367UGW_pathInputRow",
15863
+ "profileRowMain": "_367UGW_profileRowMain",
15864
+ "dim": "_367UGW_dim",
15865
+ "pickerMore": "_367UGW_pickerMore",
15866
+ "choiceTitle": "_367UGW_choiceTitle",
15867
+ "statStrip": "_367UGW_statStrip",
14546
15868
  "shRowFacts": "_367UGW_shRowFacts",
14547
- "reasonList": "_367UGW_reasonList",
14548
- "errorBanner": "_367UGW_errorBanner",
14549
- "pickerGroupTitle": "_367UGW_pickerGroupTitle",
15869
+ "rollbackScroll": "_367UGW_rollbackScroll",
14550
15870
  "paletteItem": "_367UGW_paletteItem",
14551
- "rowActions": "_367UGW_rowActions",
14552
- "paletteHint": "_367UGW_paletteHint",
14553
- "mergeTileValue": "_367UGW_mergeTileValue",
14554
- "chatFileIcon": "_367UGW_chatFileIcon",
14555
- "stepper": "_367UGW_stepper",
14556
- "errorActionLabel": "_367UGW_errorActionLabel",
14557
- "mergeToolbarLabel": "_367UGW_mergeToolbarLabel",
14558
- "spinnerArc": "_367UGW_spinnerArc",
14559
- "viewEnter": "_367UGW_viewEnter",
14560
- "restorePlanRow": "_367UGW_restorePlanRow",
14561
- "dataTable": "_367UGW_dataTable",
14562
- "skeletonTableCell": "_367UGW_skeletonTableCell",
14563
- "pickerUnitName": "_367UGW_pickerUnitName",
14564
- "rollbackPointMeta": "_367UGW_rollbackPointMeta",
14565
- "paletteEmpty": "_367UGW_paletteEmpty",
14566
- "optionsCard": "_367UGW_optionsCard",
14567
- "stepperDot": "_367UGW_stepperDot",
14568
- "reportDetails": "_367UGW_reportDetails",
14569
- "collapse": "_367UGW_collapse",
14570
- "selectRoot": "_367UGW_selectRoot",
14571
- "rollbackGroup": "_367UGW_rollbackGroup",
14572
- "navMore": "_367UGW_navMore",
14573
- "paletteList": "_367UGW_paletteList",
14574
- "historyGroup": "_367UGW_historyGroup",
14575
- "navDot": "_367UGW_navDot",
14576
- "chatEntryRow": "_367UGW_chatEntryRow",
14577
- "diffNoColW6": "_367UGW_diffNoColW6",
14578
- "chatEntryNotice": "_367UGW_chatEntryNotice",
14579
- "infoHint": "_367UGW_infoHint",
14580
- "rollbackPointActions": "_367UGW_rollbackPointActions",
14581
- "dialogBody": "_367UGW_dialogBody",
14582
- "marketFilterGrid": "_367UGW_marketFilterGrid",
14583
- "runsSummaryTitle": "_367UGW_runsSummaryTitle",
14584
- "emptySteps": "_367UGW_emptySteps",
14585
- "runsCounts": "_367UGW_runsCounts",
14586
- "paletteItemLabel": "_367UGW_paletteItemLabel",
14587
- "pickerUnitDetail": "_367UGW_pickerUnitDetail",
14588
- "diffNoDel": "_367UGW_diffNoDel",
14589
- "libraryFilter": "_367UGW_libraryFilter",
15871
+ "errorLine": "_367UGW_errorLine",
15872
+ "dialogMask": "_367UGW_dialogMask",
15873
+ "itemEnter": "_367UGW_itemEnter",
15874
+ "rollbackWarnings": "_367UGW_rollbackWarnings",
15875
+ "historySections": "_367UGW_historySections",
15876
+ "conflictOptions": "_367UGW_conflictOptions",
14590
15877
  "chatEntryStack": "_367UGW_chatEntryStack",
14591
- "chatRawSummary": "_367UGW_chatRawSummary",
14592
- "mergeSection": "_367UGW_mergeSection",
14593
- "chatFileExt": "_367UGW_chatFileExt",
14594
- "marketFilterSearch": "_367UGW_marketFilterSearch",
14595
- "shPanelTitle": "_367UGW_shPanelTitle",
15878
+ "paletteGroup": "_367UGW_paletteGroup",
15879
+ "diffFilePath": "_367UGW_diffFilePath",
15880
+ "sectionTitle": "_367UGW_sectionTitle",
15881
+ "aboutAuthor": "_367UGW_aboutAuthor",
15882
+ "errorReason": "_367UGW_errorReason",
15883
+ "hint": "_367UGW_hint",
14596
15884
  "kvValue": "_367UGW_kvValue",
14597
- "snapshotRowFacts": "_367UGW_snapshotRowFacts",
14598
- "pickerFooter": "_367UGW_pickerFooter",
14599
- "mergeCol": "_367UGW_mergeCol",
14600
- "activityCard": "_367UGW_activityCard",
15885
+ "pickerChevronSpacer": "_367UGW_pickerChevronSpacer",
15886
+ "logJumpButton": "_367UGW_logJumpButton",
15887
+ "activityRows": "_367UGW_activityRows",
15888
+ "activityTitle": "_367UGW_activityTitle",
15889
+ "sectionName": "_367UGW_sectionName",
15890
+ "pathIssueKind": "_367UGW_pathIssueKind",
15891
+ "syncActivity": "_367UGW_syncActivity",
15892
+ "previewScope": "_367UGW_previewScope",
15893
+ "sectionTitleRow": "_367UGW_sectionTitleRow",
15894
+ "skeletonTableRow": "_367UGW_skeletonTableRow",
15895
+ "reportList": "_367UGW_reportList",
15896
+ "profileRowHeader": "_367UGW_profileRowHeader",
15897
+ "rollbackPointMeta": "_367UGW_rollbackPointMeta",
15898
+ "progressIndeterminate": "_367UGW_progressIndeterminate",
15899
+ "reportProblemRow": "_367UGW_reportProblemRow",
15900
+ "mergeActionActive": "_367UGW_mergeActionActive",
15901
+ "toastText": "_367UGW_toastText",
15902
+ "marketReviewScroll": "_367UGW_marketReviewScroll",
15903
+ "shCommands": "_367UGW_shCommands",
15904
+ "snapshotRow": "_367UGW_snapshotRow",
15905
+ "mergeView": "_367UGW_mergeView",
15906
+ "dialogIn": "_367UGW_dialogIn",
15907
+ "marketReviewPage": "_367UGW_marketReviewPage",
15908
+ "reportView": "_367UGW_reportView",
15909
+ "cliName": "_367UGW_cliName",
14601
15910
  "toastViewport": "_367UGW_toastViewport",
14602
- "listHeaderRow": "_367UGW_listHeaderRow",
14603
- "sectionSubtitle": "_367UGW_sectionSubtitle",
15911
+ "groupLabel": "_367UGW_groupLabel",
15912
+ "statusBar": "_367UGW_statusBar",
15913
+ "headRow": "_367UGW_headRow",
15914
+ "diskUsageScroll": "_367UGW_diskUsageScroll",
15915
+ "factCell": "_367UGW_factCell",
15916
+ "resultScroll": "_367UGW_resultScroll",
15917
+ "fillCard": "_367UGW_fillCard",
15918
+ "snapshotRowMeta": "_367UGW_snapshotRowMeta",
15919
+ "cellMeta": "_367UGW_cellMeta",
15920
+ "restorePlanList": "_367UGW_restorePlanList",
15921
+ "conflictLineLabel": "_367UGW_conflictLineLabel",
14604
15922
  "pagePad": "_367UGW_pagePad",
14605
- "mergeResult": "_367UGW_mergeResult",
14606
- "statusSpacer": "_367UGW_statusSpacer",
14607
- "artifactDetailWrap": "_367UGW_artifactDetailWrap",
14608
- "badge": "_367UGW_badge",
14609
- "runsCardTitle": "_367UGW_runsCardTitle",
15923
+ "profileRow": "_367UGW_profileRow",
15924
+ "chatActionBtn": "_367UGW_chatActionBtn",
15925
+ "rollbackLedgerMain": "_367UGW_rollbackLedgerMain",
15926
+ "rollbackPointTop": "_367UGW_rollbackPointTop",
15927
+ "shSeverities": "_367UGW_shSeverities",
15928
+ "spinnerTrack": "_367UGW_spinnerTrack",
15929
+ "chatFallbackBubble": "_367UGW_chatFallbackBubble",
15930
+ "shLines": "_367UGW_shLines",
15931
+ "paletteHint": "_367UGW_paletteHint",
15932
+ "statRow": "_367UGW_statRow",
15933
+ "dataTable": "_367UGW_dataTable",
14610
15934
  "progressBadgeCount": "_367UGW_progressBadgeCount",
14611
- "chatFileMeta": "_367UGW_chatFileMeta",
14612
- "selectChevron": "_367UGW_selectChevron",
14613
- "updateNotesLoading": "_367UGW_updateNotesLoading",
14614
- "statusIndeterminate": "_367UGW_statusIndeterminate",
14615
15935
  "marketFilterMeta": "_367UGW_marketFilterMeta",
14616
- "factLabel": "_367UGW_factLabel",
14617
- "sourceRowHead": "_367UGW_sourceRowHead",
14618
- "pathMappingList": "_367UGW_pathMappingList",
14619
- "skeletonShimmer": "_367UGW_skeletonShimmer",
14620
- "shMetrics": "_367UGW_shMetrics",
14621
- "section": "_367UGW_section",
14622
- "shLines": "_367UGW_shLines",
14623
- "nextStepsList": "_367UGW_nextStepsList",
14624
- "shMetricValue": "_367UGW_shMetricValue",
14625
- "cellActions": "_367UGW_cellActions",
14626
- "consultScroll": "_367UGW_consultScroll",
14627
- "selectOption": "_367UGW_selectOption",
14628
- "authorRow": "_367UGW_authorRow",
14629
- "pickerList": "_367UGW_pickerList",
14630
- "chatBubble": "_367UGW_chatBubble",
14631
- "chatAttachmentRow": "_367UGW_chatAttachmentRow",
14632
- "skeletonLine": "_367UGW_skeletonLine",
14633
- "diffNoHead": "_367UGW_diffNoHead",
14634
- "historySections": "_367UGW_historySections",
14635
- "noticeSlot": "_367UGW_noticeSlot",
14636
- "toastIn": "_367UGW_toastIn",
14637
- "dim": "_367UGW_dim",
14638
- "sparseFill": "_367UGW_sparseFill",
14639
- "paletteItemGroup": "_367UGW_paletteItemGroup",
14640
- "shRowActions": "_367UGW_shRowActions",
14641
- "optionsRow": "_367UGW_optionsRow",
14642
- "snapshotRowText": "_367UGW_snapshotRowText",
15936
+ "skeletonRows": "_367UGW_skeletonRows",
15937
+ "bannerSlot": "_367UGW_bannerSlot",
15938
+ "stepperLabel": "_367UGW_stepperLabel",
15939
+ "taskPanelIn": "_367UGW_taskPanelIn",
15940
+ "libraryFooter": "_367UGW_libraryFooter",
15941
+ "pageEnter": "_367UGW_pageEnter",
15942
+ "diffNoColW4": "_367UGW_diffNoColW4",
15943
+ "rollbackFileIcon": "_367UGW_rollbackFileIcon",
15944
+ "rollbackGroupTitle": "_367UGW_rollbackGroupTitle",
15945
+ "snapshotPickerRow": "_367UGW_snapshotPickerRow",
14643
15946
  "shPanelHead": "_367UGW_shPanelHead",
15947
+ "viewBody": "_367UGW_viewBody",
15948
+ "reasonList": "_367UGW_reasonList",
15949
+ "pathMappingList": "_367UGW_pathMappingList",
15950
+ "segGroup": "_367UGW_segGroup",
15951
+ "pickerUnitName": "_367UGW_pickerUnitName",
15952
+ "mergeCol": "_367UGW_mergeCol",
15953
+ "pickerPath": "_367UGW_pickerPath",
15954
+ "pathValue": "_367UGW_pathValue",
15955
+ "skeletonRowBody": "_367UGW_skeletonRowBody",
15956
+ "mergeConflictRow": "_367UGW_mergeConflictRow",
15957
+ "navMeasure": "_367UGW_navMeasure",
15958
+ "rollbackSessionItem": "_367UGW_rollbackSessionItem",
15959
+ "historyGroup": "_367UGW_historyGroup",
15960
+ "historySummary": "_367UGW_historySummary",
15961
+ "empty": "_367UGW_empty",
15962
+ "chatRawBlock": "_367UGW_chatRawBlock",
15963
+ "spinner": "_367UGW_spinner",
15964
+ "infoHintBubble": "_367UGW_infoHintBubble",
15965
+ "rollbackPointsScroll": "_367UGW_rollbackPointsScroll",
15966
+ "runsLogTail": "_367UGW_runsLogTail",
15967
+ "shSectionHead": "_367UGW_shSectionHead",
15968
+ "diffGroupToggle": "_367UGW_diffGroupToggle",
15969
+ "profileRowMeta": "_367UGW_profileRowMeta",
14644
15970
  "banner": "_367UGW_banner",
14645
- "badgeHost": "_367UGW_badgeHost",
14646
- "logEmpty": "_367UGW_logEmpty",
14647
- "profileRowName": "_367UGW_profileRowName",
14648
- "libraryFilterCount": "_367UGW_libraryFilterCount",
14649
- "inspectGroup": "_367UGW_inspectGroup",
14650
- "diffNoAdd": "_367UGW_diffNoAdd",
14651
- "chatEntryReference": "_367UGW_chatEntryReference",
14652
- "mergeCols": "_367UGW_mergeCols",
14653
- "confirmItemDesc": "_367UGW_confirmItemDesc",
14654
- "snapshotList": "_367UGW_snapshotList",
14655
- "kvKey": "_367UGW_kvKey",
15971
+ "mergeKind": "_367UGW_mergeKind",
15972
+ "snapshotRowName": "_367UGW_snapshotRowName",
15973
+ "chatEntryTime": "_367UGW_chatEntryTime",
15974
+ "viewEnter": "_367UGW_viewEnter",
15975
+ "rowActions": "_367UGW_rowActions",
15976
+ "snapshotRowMain": "_367UGW_snapshotRowMain",
15977
+ "modeTab": "_367UGW_modeTab",
15978
+ "pickerSubgroupName": "_367UGW_pickerSubgroupName",
15979
+ "actionRow": "_367UGW_actionRow",
15980
+ "conflictItem": "_367UGW_conflictItem",
15981
+ "logDetail": "_367UGW_logDetail",
15982
+ "confirmScroll": "_367UGW_confirmScroll",
15983
+ "statHealth": "_367UGW_statHealth",
15984
+ "restorePlanRow": "_367UGW_restorePlanRow",
15985
+ "detailLines": "_367UGW_detailLines",
15986
+ "chatBubble": "_367UGW_chatBubble",
15987
+ "runsWarnNote": "_367UGW_runsWarnNote",
15988
+ "historyMeta": "_367UGW_historyMeta",
15989
+ "consultScroll": "_367UGW_consultScroll",
15990
+ "chatRawPre": "_367UGW_chatRawPre",
14656
15991
  "errorList": "_367UGW_errorList",
14657
- "librarySearch": "_367UGW_librarySearch",
14658
- "activityKind": "_367UGW_activityKind",
14659
- "paletteGroup": "_367UGW_paletteGroup",
14660
- "groupItems": "_367UGW_groupItems",
14661
- "diffNoColW4": "_367UGW_diffNoColW4",
14662
- "historyRowMain": "_367UGW_historyRowMain",
15992
+ "shellMain": "_367UGW_shellMain",
15993
+ "libraryFilters": "_367UGW_libraryFilters",
14663
15994
  "artifactRowHead": "_367UGW_artifactRowHead",
14664
- "artifactActions": "_367UGW_artifactActions",
14665
- "pickerUnitNested": "_367UGW_pickerUnitNested",
14666
- "mergeMeta": "_367UGW_mergeMeta",
14667
- "logPanel": "_367UGW_logPanel",
14668
- "progressLabel": "_367UGW_progressLabel",
14669
- "diskUsageScroll": "_367UGW_diskUsageScroll",
14670
- "diffNo": "_367UGW_diffNo",
14671
- "profileRowHeader": "_367UGW_profileRowHeader",
14672
- "runsSummary": "_367UGW_runsSummary",
14673
- "progressDetail": "_367UGW_progressDetail",
14674
- "progressIndeterminate": "_367UGW_progressIndeterminate",
14675
- "diffStatTotal": "_367UGW_diffStatTotal",
14676
- "historyRow": "_367UGW_historyRow",
14677
- "shSeverities": "_367UGW_shSeverities",
14678
- "rollbackFileDir": "_367UGW_rollbackFileDir",
14679
- "mergeColLabel": "_367UGW_mergeColLabel",
14680
- "mergeConflictReason": "_367UGW_mergeConflictReason",
15995
+ "cellTitle": "_367UGW_cellTitle",
15996
+ "nextStepsGroup": "_367UGW_nextStepsGroup",
15997
+ "dangerButton": "_367UGW_dangerButton",
15998
+ "reportProblemHead": "_367UGW_reportProblemHead",
15999
+ "dialogOut": "_367UGW_dialogOut",
16000
+ "restorePlanNote": "_367UGW_restorePlanNote",
16001
+ "chatEntryRow": "_367UGW_chatEntryRow",
16002
+ "skeletonCards": "_367UGW_skeletonCards",
16003
+ "activitySummaryText": "_367UGW_activitySummaryText",
16004
+ "dialogHeaderRow": "_367UGW_dialogHeaderRow",
16005
+ "rollbackPoints": "_367UGW_rollbackPoints",
16006
+ "chatEntryReference": "_367UGW_chatEntryReference",
16007
+ "shScroll": "_367UGW_shScroll",
14681
16008
  "aboutLinkRow": "_367UGW_aboutLinkRow",
14682
- "pickerRoot": "_367UGW_pickerRoot",
14683
- "primaryButton": "_367UGW_primaryButton",
14684
- "snapshotRow": "_367UGW_snapshotRow",
14685
- "runsWarnNoteDetail": "_367UGW_runsWarnNoteDetail",
14686
- "pickerUnit": "_367UGW_pickerUnit",
14687
- "spin": "_367UGW_spin",
14688
- "inlineDiffBox": "_367UGW_inlineDiffBox",
14689
- "rollbackGroupTitle": "_367UGW_rollbackGroupTitle",
14690
- "dialogMask": "_367UGW_dialogMask",
14691
- "runsWarnNote": "_367UGW_runsWarnNote",
14692
- "libraryFooter": "_367UGW_libraryFooter",
14693
- "shSeverityCount": "_367UGW_shSeverityCount",
14694
- "resultFooter": "_367UGW_resultFooter",
14695
- "runsOptionTag": "_367UGW_runsOptionTag",
14696
- "pathOld": "_367UGW_pathOld",
14697
- "num": "_367UGW_num",
14698
- "rollbackSessionId": "_367UGW_rollbackSessionId",
14699
- "progressBar": "_367UGW_progressBar",
14700
- "logJumpButton": "_367UGW_logJumpButton",
14701
- "logHeader": "_367UGW_logHeader",
16009
+ "statusIndeterminate": "_367UGW_statusIndeterminate",
16010
+ "nextStepsList": "_367UGW_nextStepsList",
16011
+ "selectOptionLabel": "_367UGW_selectOptionLabel",
16012
+ "rollbackAdded": "_367UGW_rollbackAdded",
16013
+ "mergeTile": "_367UGW_mergeTile",
16014
+ "statSegDim": "_367UGW_statSegDim",
16015
+ "pickerList": "_367UGW_pickerList",
16016
+ "rollbackPointActions": "_367UGW_rollbackPointActions",
16017
+ "card": "_367UGW_card",
16018
+ "artifactMeta": "_367UGW_artifactMeta",
16019
+ "conflictPrefix": "_367UGW_conflictPrefix",
16020
+ "pathRow": "_367UGW_pathRow",
16021
+ "activityKind": "_367UGW_activityKind",
16022
+ "sourceRowHead": "_367UGW_sourceRowHead",
16023
+ "toastIn": "_367UGW_toastIn",
16024
+ "statusAction": "_367UGW_statusAction",
16025
+ "snapshotRowHeader": "_367UGW_snapshotRowHeader",
16026
+ "diffNoHead": "_367UGW_diffNoHead",
16027
+ "mergeMeta": "_367UGW_mergeMeta",
16028
+ "mergeResult": "_367UGW_mergeResult",
16029
+ "syncChannelBody": "_367UGW_syncChannelBody",
16030
+ "shSummary": "_367UGW_shSummary",
16031
+ "skeletonBlock": "_367UGW_skeletonBlock",
16032
+ "groupItems": "_367UGW_groupItems",
16033
+ "choiceCard": "_367UGW_choiceCard",
16034
+ "statusPulse": "_367UGW_statusPulse",
16035
+ "wizardStepperRow": "_367UGW_wizardStepperRow",
16036
+ "chatEntryNotice": "_367UGW_chatEntryNotice",
16037
+ "historyTime": "_367UGW_historyTime",
16038
+ "progressBlock": "_367UGW_progressBlock",
16039
+ "skeletonRowMeta": "_367UGW_skeletonRowMeta",
14702
16040
  "kindTagOk": "_367UGW_kindTagOk",
14703
- "chatEntryActions": "_367UGW_chatEntryActions",
14704
- "profileRowMeta": "_367UGW_profileRowMeta",
14705
- "skipList": "_367UGW_skipList",
16041
+ "diffTable": "_367UGW_diffTable",
16042
+ "activityEmpty": "_367UGW_activityEmpty",
16043
+ "mono": "_367UGW_mono",
16044
+ "rollbackTabIcon": "_367UGW_rollbackTabIcon",
14706
16045
  "shMetricLabel": "_367UGW_shMetricLabel",
14707
- "conflictPrefix": "_367UGW_conflictPrefix",
14708
- "shCommand": "_367UGW_shCommand",
14709
- "statusProgress": "_367UGW_statusProgress",
14710
- "skeletonRow": "_367UGW_skeletonRow",
14711
- "shScroll": "_367UGW_shScroll",
14712
- "rollbackPoints": "_367UGW_rollbackPoints",
14713
- "rollbackPoint": "_367UGW_rollbackPoint",
14714
- "sectionName": "_367UGW_sectionName",
14715
- "errorReason": "_367UGW_errorReason",
14716
- "kindTagError": "_367UGW_kindTagError",
14717
- "skeletonBars": "_367UGW_skeletonBars",
14718
- "logDetail": "_367UGW_logDetail",
14719
- "maskOut": "_367UGW_maskOut",
14720
- "diffHunkRow": "_367UGW_diffHunkRow",
14721
- "rollbackGroupHead": "_367UGW_rollbackGroupHead",
14722
- "conflictDetail": "_367UGW_conflictDetail",
14723
- "activityRow": "_367UGW_activityRow",
14724
- "diffFileStat": "_367UGW_diffFileStat",
14725
- "navMeasure": "_367UGW_navMeasure",
14726
- "detailLines": "_367UGW_detailLines",
14727
- "reportBlock": "_367UGW_reportBlock",
14728
- "spinnerWrap": "_367UGW_spinnerWrap",
14729
- "paletteInput": "_367UGW_paletteInput",
14730
- "selectMenu": "_367UGW_selectMenu",
14731
- "dialogBodyScroll": "_367UGW_dialogBodyScroll",
14732
- "statHealth": "_367UGW_statHealth",
14733
- "shRowMeta": "_367UGW_shRowMeta",
14734
- "diffScroll": "_367UGW_diffScroll",
14735
- "skeletonCards": "_367UGW_skeletonCards",
14736
- "pathNew": "_367UGW_pathNew",
14737
- "pickerMore": "_367UGW_pickerMore",
14738
- "rollbackScroll": "_367UGW_rollbackScroll",
14739
- "activityHeader": "_367UGW_activityHeader",
14740
- "artifactMain": "_367UGW_artifactMain",
14741
- "updateVersionArrow": "_367UGW_updateVersionArrow",
14742
- "statRow": "_367UGW_statRow",
14743
- "dialogContentCenter": "_367UGW_dialogContentCenter",
14744
- "sectionTitle": "_367UGW_sectionTitle",
14745
- "conflictChoices": "_367UGW_conflictChoices",
14746
- "navActions": "_367UGW_navActions",
14747
- "statStrip": "_367UGW_statStrip",
14748
- "rollbackFileIcon": "_367UGW_rollbackFileIcon",
14749
- "indet": "_367UGW_indet",
14750
- "cliName": "_367UGW_cliName",
14751
- "statusDot": "_367UGW_statusDot",
14752
- "diffCellDel": "_367UGW_diffCellDel",
14753
- "restorePlan": "_367UGW_restorePlan",
14754
- "runsLogTail": "_367UGW_runsLogTail",
14755
- "formError": "_367UGW_formError",
16046
+ "skeletonTableCell": "_367UGW_skeletonTableCell",
16047
+ "infoHintIn": "_367UGW_infoHintIn",
16048
+ "toolRow": "_367UGW_toolRow",
16049
+ "pickerToolbar": "_367UGW_pickerToolbar",
16050
+ "reportProblemText": "_367UGW_reportProblemText",
16051
+ "artifactName": "_367UGW_artifactName",
16052
+ "chatFileMeta": "_367UGW_chatFileMeta",
16053
+ "dialogBody": "_367UGW_dialogBody",
16054
+ "pickerGroupTitleName": "_367UGW_pickerGroupTitleName",
16055
+ "mergeTileValue": "_367UGW_mergeTileValue",
16056
+ "fillViewport": "_367UGW_fillViewport",
16057
+ "runsSummaryTitle": "_367UGW_runsSummaryTitle",
16058
+ "iconBtn": "_367UGW_iconBtn",
16059
+ "pickerUnitNested": "_367UGW_pickerUnitNested",
14756
16060
  "reportScroll": "_367UGW_reportScroll",
14757
- "dialogWide": "_367UGW_dialogWide",
14758
- "dialogFooter": "_367UGW_dialogFooter",
14759
- "modeTab": "_367UGW_modeTab",
14760
- "skeletonTitle": "_367UGW_skeletonTitle",
14761
- "reasonLine": "_367UGW_reasonLine",
14762
- "warnList": "_367UGW_warnList",
14763
- "shSectionTitle": "_367UGW_shSectionTitle",
14764
- "restorePlanList": "_367UGW_restorePlanList",
16061
+ "tableCompact": "_367UGW_tableCompact",
16062
+ "selectOption": "_367UGW_selectOption",
14765
16063
  "diffCell": "_367UGW_diffCell",
14766
- "shSectionHead": "_367UGW_shSectionHead",
14767
- "mergeColValue": "_367UGW_mergeColValue",
14768
- "rollbackPointsScroll": "_367UGW_rollbackPointsScroll",
14769
- "rollbackBox": "_367UGW_rollbackBox",
14770
- "historyTime": "_367UGW_historyTime",
14771
- "diffStatAdd": "_367UGW_diffStatAdd",
14772
- "librarySkeletonRegion": "_367UGW_librarySkeletonRegion",
14773
- "snapshotRowName": "_367UGW_snapshotRowName",
14774
- "logCounts": "_367UGW_logCounts",
14775
- "runsCardHead": "_367UGW_runsCardHead",
14776
- "card": "_367UGW_card",
16064
+ "rollbackFileDir": "_367UGW_rollbackFileDir",
14777
16065
  "toastGlyph": "_367UGW_toastGlyph",
14778
- "hint": "_367UGW_hint",
14779
- "secretsList": "_367UGW_secretsList",
14780
- "reportProblemReason": "_367UGW_reportProblemReason",
14781
- "taskPanelIn": "_367UGW_taskPanelIn",
14782
- "snapshotRowMeta": "_367UGW_snapshotRowMeta",
14783
- "kindTag": "_367UGW_kindTag",
14784
- "toast": "_367UGW_toast",
14785
- "snapshotRowMain": "_367UGW_snapshotRowMain",
14786
- "viewBody": "_367UGW_viewBody",
14787
- "sectionRow": "_367UGW_sectionRow",
14788
- "syncActivityLabel": "_367UGW_syncActivityLabel",
14789
- "hiddenFile": "_367UGW_hiddenFile",
14790
- "warnText": "_367UGW_warnText",
14791
- "groupLabel": "_367UGW_groupLabel",
14792
- "pickerChildren": "_367UGW_pickerChildren",
14793
- "runsOptionTitle": "_367UGW_runsOptionTitle",
14794
- "chatEntryTime": "_367UGW_chatEntryTime",
16066
+ "progressTrack": "_367UGW_progressTrack",
16067
+ "navTab": "_367UGW_navTab",
16068
+ "groupNote": "_367UGW_groupNote",
14795
16069
  "taskPanel": "_367UGW_taskPanel",
14796
- "tableScroll": "_367UGW_tableScroll",
14797
- "artifactMeta": "_367UGW_artifactMeta",
14798
- "resultScroll": "_367UGW_resultScroll",
14799
- "previewScopeStats": "_367UGW_previewScopeStats",
14800
- "skeletonRows": "_367UGW_skeletonRows",
14801
- "segGroup": "_367UGW_segGroup",
14802
- "diffFilePath": "_367UGW_diffFilePath",
14803
- "activityRows": "_367UGW_activityRows",
14804
- "rollbackGroupUnit": "_367UGW_rollbackGroupUnit",
14805
- "progressMeta": "_367UGW_progressMeta",
14806
- "cliCommand": "_367UGW_cliCommand",
14807
- "reportWarningRow": "_367UGW_reportWarningRow",
14808
- "mergeConflictRow": "_367UGW_mergeConflictRow",
14809
- "tableCompact": "_367UGW_tableCompact",
14810
- "rollbackToolbar": "_367UGW_rollbackToolbar",
14811
- "shMetric": "_367UGW_shMetric",
14812
- "dialogHeaderRow": "_367UGW_dialogHeaderRow",
14813
- "pickerModalBody": "_367UGW_pickerModalBody",
14814
- "statValueSkeleton": "_367UGW_statValueSkeleton",
14815
- "stepperLabel": "_367UGW_stepperLabel",
14816
- "fieldLabel": "_367UGW_fieldLabel",
14817
- "radioLabel": "_367UGW_radioLabel",
14818
- "errorItem": "_367UGW_errorItem",
14819
- "runsCenter": "_367UGW_runsCenter",
14820
- "skeletonRowMeta": "_367UGW_skeletonRowMeta",
14821
- "dialogIn": "_367UGW_dialogIn",
14822
- "chatRawBlock": "_367UGW_chatRawBlock",
14823
- "runsLogLine": "_367UGW_runsLogLine",
14824
- "reportList": "_367UGW_reportList",
14825
- "conflictId": "_367UGW_conflictId",
14826
- "pickerToolbar": "_367UGW_pickerToolbar",
14827
- "shellMain": "_367UGW_shellMain",
14828
- "controlRow": "_367UGW_controlRow",
14829
- "restorePlanChevron": "_367UGW_restorePlanChevron",
14830
- "consultSection": "_367UGW_consultSection",
14831
- "kvRow": "_367UGW_kvRow",
14832
- "conflictItem": "_367UGW_conflictItem",
14833
- "mergeView": "_367UGW_mergeView",
14834
- "segItem": "_367UGW_segItem",
14835
- "diffNoColW5": "_367UGW_diffNoColW5",
16070
+ "selectMenuIn": "_367UGW_selectMenuIn",
16071
+ "formError": "_367UGW_formError",
16072
+ "syncActivityLabel": "_367UGW_syncActivityLabel",
16073
+ "updateVersionRow": "_367UGW_updateVersionRow",
16074
+ "artifactList": "_367UGW_artifactList",
16075
+ "kvKey": "_367UGW_kvKey",
14836
16076
  "skipRow": "_367UGW_skipRow",
14837
- "reportText": "_367UGW_reportText",
14838
- "selectMenuPortal": "_367UGW_selectMenuPortal",
14839
- "kindTagInfo": "_367UGW_kindTagInfo",
14840
- "aboutAuthor": "_367UGW_aboutAuthor",
14841
- "shSummary": "_367UGW_shSummary",
14842
- "libraryCount": "_367UGW_libraryCount",
14843
- "mergeKind": "_367UGW_mergeKind",
14844
- "profileRowMain": "_367UGW_profileRowMain",
14845
- "dialogCard": "_367UGW_dialogCard",
14846
- "confirmItemHead": "_367UGW_confirmItemHead",
16077
+ "restorePlanStat": "_367UGW_restorePlanStat",
16078
+ "diffScroll": "_367UGW_diffScroll",
16079
+ "infoValue": "_367UGW_infoValue",
16080
+ "factLabel": "_367UGW_factLabel",
16081
+ "confirmItem": "_367UGW_confirmItem",
16082
+ "stepperStep": "_367UGW_stepperStep",
16083
+ "marketFilterSearch": "_367UGW_marketFilterSearch",
16084
+ "spinnerArc": "_367UGW_spinnerArc",
16085
+ "skipText": "_367UGW_skipText",
16086
+ "chatRawSummary": "_367UGW_chatRawSummary",
16087
+ "shSectionTitle": "_367UGW_shSectionTitle",
16088
+ "activityTime": "_367UGW_activityTime",
16089
+ "syncActivityTrack": "_367UGW_syncActivityTrack",
16090
+ "conflictDetail": "_367UGW_conflictDetail",
16091
+ "shellContent": "_367UGW_shellContent",
16092
+ "skeletonTitle": "_367UGW_skeletonTitle",
16093
+ "segItem": "_367UGW_segItem",
16094
+ "sectionGrid": "_367UGW_sectionGrid",
16095
+ "pathOld": "_367UGW_pathOld",
16096
+ "pickerAction": "_367UGW_pickerAction",
16097
+ "sectionCount": "_367UGW_sectionCount",
16098
+ "skeletonCaption": "_367UGW_skeletonCaption",
16099
+ "conflictHead": "_367UGW_conflictHead",
16100
+ "activityRow": "_367UGW_activityRow",
16101
+ "sectionOptionRow": "_367UGW_sectionOptionRow",
16102
+ "rollbackSessions": "_367UGW_rollbackSessions",
16103
+ "skeletonRowTitle": "_367UGW_skeletonRowTitle",
16104
+ "consultSection": "_367UGW_consultSection",
16105
+ "shIssue": "_367UGW_shIssue",
16106
+ "shMetricValue": "_367UGW_shMetricValue",
16107
+ "activitySummary": "_367UGW_activitySummary",
16108
+ "conflictId": "_367UGW_conflictId",
16109
+ "pickerUnitDetail": "_367UGW_pickerUnitDetail",
16110
+ "confirmItemDesc": "_367UGW_confirmItemDesc",
16111
+ "logCounts": "_367UGW_logCounts",
16112
+ "fieldLabel": "_367UGW_fieldLabel",
16113
+ "activityBadge": "_367UGW_activityBadge",
16114
+ "reasonLine": "_367UGW_reasonLine",
16115
+ "runsOption": "_367UGW_runsOption",
16116
+ "copyBtn": "_367UGW_copyBtn",
16117
+ "listHeaderRow": "_367UGW_listHeaderRow",
16118
+ "paletteInput": "_367UGW_paletteInput",
16119
+ "updateVersionTarget": "_367UGW_updateVersionTarget",
16120
+ "reportProblemReason": "_367UGW_reportProblemReason",
16121
+ "runsCardHead": "_367UGW_runsCardHead",
16122
+ "historyRow": "_367UGW_historyRow",
16123
+ "mergeToolbarLabel": "_367UGW_mergeToolbarLabel",
14847
16124
  "rollbackRemoved": "_367UGW_rollbackRemoved",
14848
- "rollbackSessionMeta": "_367UGW_rollbackSessionMeta",
14849
- "rollbackPointTurn": "_367UGW_rollbackPointTurn",
14850
- "conflictLineValue": "_367UGW_conflictLineValue",
14851
- "rollbackSummary": "_367UGW_rollbackSummary",
14852
- "statSegDim": "_367UGW_statSegDim",
14853
- "restorePlanNote": "_367UGW_restorePlanNote",
16125
+ "primaryButton": "_367UGW_primaryButton",
16126
+ "libraryFilterCount": "_367UGW_libraryFilterCount",
16127
+ "previewChoiceRow": "_367UGW_previewChoiceRow",
16128
+ "selectRoot": "_367UGW_selectRoot",
16129
+ "section": "_367UGW_section",
16130
+ "historyScroll": "_367UGW_historyScroll",
16131
+ "rollbackToolbar": "_367UGW_rollbackToolbar",
16132
+ "restorePlanChevron": "_367UGW_restorePlanChevron",
16133
+ "progressLabel": "_367UGW_progressLabel",
16134
+ "ghostButton": "_367UGW_ghostButton",
16135
+ "updateVersionArrow": "_367UGW_updateVersionArrow",
16136
+ "librarySkeletonRegion": "_367UGW_librarySkeletonRegion",
16137
+ "diffNoDel": "_367UGW_diffNoDel",
16138
+ "sourcePaths": "_367UGW_sourcePaths",
16139
+ "tableScroll": "_367UGW_tableScroll",
16140
+ "kindTagWarn": "_367UGW_kindTagWarn",
16141
+ "shCommand": "_367UGW_shCommand",
16142
+ "pickerSubgroup": "_367UGW_pickerSubgroup",
16143
+ "logFilterButton": "_367UGW_logFilterButton",
16144
+ "conflictList": "_367UGW_conflictList",
16145
+ "factGrid": "_367UGW_factGrid",
16146
+ "logLine": "_367UGW_logLine",
16147
+ "pickerGroup": "_367UGW_pickerGroup",
16148
+ "skeletonRowItem": "_367UGW_skeletonRowItem",
16149
+ "noticeLine": "_367UGW_noticeLine",
16150
+ "restorePlanGroupHead": "_367UGW_restorePlanGroupHead",
16151
+ "shRowId": "_367UGW_shRowId",
16152
+ "artifactDetailWrap": "_367UGW_artifactDetailWrap",
16153
+ "chatFileCard": "_367UGW_chatFileCard",
16154
+ "toast": "_367UGW_toast",
16155
+ "statusSpacer": "_367UGW_statusSpacer",
16156
+ "maskOut": "_367UGW_maskOut",
14854
16157
  "rollbackPointNote": "_367UGW_rollbackPointNote",
14855
- "infoHintBtn": "_367UGW_infoHintBtn",
14856
- "diffStatDel": "_367UGW_diffStatDel",
14857
- "pickerOverlay": "_367UGW_pickerOverlay",
14858
- "mergeTile": "_367UGW_mergeTile",
14859
- "confirmItem": "_367UGW_confirmItem",
16158
+ "mergeActions": "_367UGW_mergeActions",
16159
+ "statusDot": "_367UGW_statusDot",
16160
+ "runsWarnNoteDetail": "_367UGW_runsWarnNoteDetail",
16161
+ "optionsRow": "_367UGW_optionsRow",
16162
+ "mergeColLabel": "_367UGW_mergeColLabel",
16163
+ "sourceRowName": "_367UGW_sourceRowName",
16164
+ "pickerGroupTitle": "_367UGW_pickerGroupTitle",
16165
+ "checkboxRow": "_367UGW_checkboxRow",
16166
+ "rollbackBox": "_367UGW_rollbackBox",
16167
+ "profileRowTitle": "_367UGW_profileRowTitle",
14860
16168
  "statusText": "_367UGW_statusText",
14861
- "dialogOut": "_367UGW_dialogOut",
14862
- "pickerCount": "_367UGW_pickerCount",
14863
- "reportProblemText": "_367UGW_reportProblemText",
14864
- "pathIssueKind": "_367UGW_pathIssueKind",
16169
+ "badge": "_367UGW_badge",
16170
+ "runsSummary": "_367UGW_runsSummary",
16171
+ "reportText": "_367UGW_reportText",
16172
+ "categoryItem": "_367UGW_categoryItem",
16173
+ "paletteList": "_367UGW_paletteList",
16174
+ "kindTag": "_367UGW_kindTag",
16175
+ "skeletonRowIcon": "_367UGW_skeletonRowIcon",
16176
+ "inlineDiffBox": "_367UGW_inlineDiffBox",
16177
+ "progressBadgeSection": "_367UGW_progressBadgeSection",
16178
+ "noticeSlot": "_367UGW_noticeSlot",
16179
+ "inspectGroup": "_367UGW_inspectGroup",
16180
+ "kindTagError": "_367UGW_kindTagError",
14865
16181
  "shPanel": "_367UGW_shPanel",
14866
- "skipCode": "_367UGW_skipCode",
14867
- "rollbackFileStat": "_367UGW_rollbackFileStat",
14868
- "diffFileHead": "_367UGW_diffFileHead",
14869
- "shNotes": "_367UGW_shNotes",
14870
- "choiceCard": "_367UGW_choiceCard",
14871
- "rollbackWarnings": "_367UGW_rollbackWarnings",
14872
- "activityBadge": "_367UGW_activityBadge",
14873
- "skeletonRowItem": "_367UGW_skeletonRowItem",
16182
+ "groupHeader": "_367UGW_groupHeader",
14874
16183
  "cellMain": "_367UGW_cellMain",
16184
+ "shSeverityCount": "_367UGW_shSeverityCount",
16185
+ "categoryDesc": "_367UGW_categoryDesc",
16186
+ "chatFileContent": "_367UGW_chatFileContent",
16187
+ "mergeToolbar": "_367UGW_mergeToolbar",
16188
+ "consultDimension": "_367UGW_consultDimension",
16189
+ "mergeOverview": "_367UGW_mergeOverview",
16190
+ "sectionSubtitle": "_367UGW_sectionSubtitle",
16191
+ "stepperDot": "_367UGW_stepperDot",
16192
+ "dialogBodyScroll": "_367UGW_dialogBodyScroll",
16193
+ "reportHeadline": "_367UGW_reportHeadline",
16194
+ "historyRowMain": "_367UGW_historyRowMain",
16195
+ "taskBody": "_367UGW_taskBody",
14875
16196
  "logScroll": "_367UGW_logScroll",
14876
- "collapseInner": "_367UGW_collapseInner",
14877
- "statusPulse": "_367UGW_statusPulse",
16197
+ "runsOptionTag": "_367UGW_runsOptionTag",
16198
+ "spinnerWrap": "_367UGW_spinnerWrap",
16199
+ "navMoreRoot": "_367UGW_navMoreRoot",
16200
+ "confirmItemHead": "_367UGW_confirmItemHead",
16201
+ "conflictLineValue": "_367UGW_conflictLineValue",
16202
+ "skeletonBar": "_367UGW_skeletonBar",
16203
+ "mergeIconLabel": "_367UGW_mergeIconLabel",
16204
+ "sectionSize": "_367UGW_sectionSize",
16205
+ "skeletonBars": "_367UGW_skeletonBars",
16206
+ "runsCenter": "_367UGW_runsCenter",
16207
+ "kindTagInfo": "_367UGW_kindTagInfo",
16208
+ "cliCommand": "_367UGW_cliCommand",
16209
+ "errorAction": "_367UGW_errorAction",
16210
+ "sectionRow": "_367UGW_sectionRow",
16211
+ "shHeaderTrailing": "_367UGW_shHeaderTrailing",
16212
+ "sourceRowMain": "_367UGW_sourceRowMain",
16213
+ "diffPaneFill": "_367UGW_diffPaneFill",
16214
+ "navActions": "_367UGW_navActions",
14878
16215
  "conflictLine": "_367UGW_conflictLine",
14879
- "statusAction": "_367UGW_statusAction",
14880
- "reportProblemHead": "_367UGW_reportProblemHead",
14881
- "mergeActionActive": "_367UGW_mergeActionActive",
14882
- "activityTitle": "_367UGW_activityTitle",
14883
- "spinnerLabel": "_367UGW_spinnerLabel",
14884
- "sourceList": "_367UGW_sourceList",
14885
- "rollbackAdded": "_367UGW_rollbackAdded",
16216
+ "chatBubbleText": "_367UGW_chatBubbleText",
16217
+ "shRowMeta": "_367UGW_shRowMeta",
16218
+ "rollbackGroup": "_367UGW_rollbackGroup",
16219
+ "reportSectionRow": "_367UGW_reportSectionRow",
16220
+ "rollbackSessionMeta": "_367UGW_rollbackSessionMeta",
16221
+ "mergeConflictReason": "_367UGW_mergeConflictReason",
16222
+ "chatFileName": "_367UGW_chatFileName",
16223
+ "paletteItemLabel": "_367UGW_paletteItemLabel",
16224
+ "updateNotesLoading": "_367UGW_updateNotesLoading",
16225
+ "progressBarDone": "_367UGW_progressBarDone",
16226
+ "snapshotRowFacts": "_367UGW_snapshotRowFacts",
16227
+ "errorTitle": "_367UGW_errorTitle",
14886
16228
  "shellNav": "_367UGW_shellNav",
14887
- "artifactTitle": "_367UGW_artifactTitle",
14888
- "spinnerTrack": "_367UGW_spinnerTrack",
14889
- "progressPercent": "_367UGW_progressPercent",
14890
- "dialogHeader": "_367UGW_dialogHeader",
14891
- "syncChannelBody": "_367UGW_syncChannelBody",
14892
- "mergeSectionHead": "_367UGW_mergeSectionHead",
14893
- "snapshotPickerRow": "_367UGW_snapshotPickerRow",
16229
+ "radioLabel": "_367UGW_radioLabel",
16230
+ "cellActions": "_367UGW_cellActions",
16231
+ "rollbackSessionId": "_367UGW_rollbackSessionId",
16232
+ "spinnerLabel": "_367UGW_spinnerLabel",
16233
+ "skeletonShimmer": "_367UGW_skeletonShimmer",
14894
16234
  "modeTabs": "_367UGW_modeTabs",
14895
- "activityEmpty": "_367UGW_activityEmpty",
14896
- "groupList": "_367UGW_groupList",
14897
- "historyMeta": "_367UGW_historyMeta",
14898
- "rollbackSessionItem": "_367UGW_rollbackSessionItem",
14899
- "skeletonBlock": "_367UGW_skeletonBlock",
14900
- "sectionSize": "_367UGW_sectionSize",
14901
- "secretFields": "_367UGW_secretFields",
14902
- "bannerSlot": "_367UGW_bannerSlot",
14903
- "copyBtn": "_367UGW_copyBtn",
14904
- "skeletonRowAction": "_367UGW_skeletonRowAction",
14905
- "mergeTileLabel": "_367UGW_mergeTileLabel",
14906
- "selectOptionLabel": "_367UGW_selectOptionLabel",
14907
- "rollbackFilePath": "_367UGW_rollbackFilePath",
14908
- "badgeRow": "_367UGW_badgeRow",
14909
- "syncActivity": "_367UGW_syncActivity",
14910
- "pickerTreeRow": "_367UGW_pickerTreeRow",
14911
- "categoryItem": "_367UGW_categoryItem",
14912
- "updateVersionRow": "_367UGW_updateVersionRow",
14913
- "consultDimension": "_367UGW_consultDimension",
14914
- "marketReviewPage": "_367UGW_marketReviewPage",
14915
- "field": "_367UGW_field",
14916
- "factValue": "_367UGW_factValue",
14917
- "historyScroll": "_367UGW_historyScroll",
14918
- "shMetaDot": "_367UGW_shMetaDot",
14919
- "skeletonBar": "_367UGW_skeletonBar",
14920
- "pickerGroupTitleName": "_367UGW_pickerGroupTitleName",
14921
- "conflictList": "_367UGW_conflictList",
14922
- "iconBtn": "_367UGW_iconBtn",
16235
+ "shNotes": "_367UGW_shNotes",
16236
+ "dialogWide": "_367UGW_dialogWide",
16237
+ "restorePlanRowStatic": "_367UGW_restorePlanRowStatic",
16238
+ "libraryListState": "_367UGW_libraryListState",
16239
+ "activityResultOk": "_367UGW_activityResultOk",
16240
+ "chatFileExt": "_367UGW_chatFileExt",
16241
+ "diffCellDel": "_367UGW_diffCellDel",
16242
+ "librarySearch": "_367UGW_librarySearch",
14923
16243
  "artifactRow": "_367UGW_artifactRow",
14924
- "rollbackTabIcon": "_367UGW_rollbackTabIcon",
14925
- "artifactExpand": "_367UGW_artifactExpand",
14926
- "navTab": "_367UGW_navTab",
14927
- "activitySummary": "_367UGW_activitySummary",
14928
- "runsOptionDesc": "_367UGW_runsOptionDesc",
14929
- "diskUsageCard": "_367UGW_diskUsageCard",
14930
- "conflictOptions": "_367UGW_conflictOptions",
14931
- "shellContent": "_367UGW_shellContent",
14932
- "groupNote": "_367UGW_groupNote",
14933
- "reportView": "_367UGW_reportView",
14934
- "profileRowTitle": "_367UGW_profileRowTitle",
14935
- "rollbackFileRow": "_367UGW_rollbackFileRow",
14936
- "mergeConflictPath": "_367UGW_mergeConflictPath",
14937
- "progressBadge": "_367UGW_progressBadge",
14938
- "rollbackSessions": "_367UGW_rollbackSessions",
14939
- "tableFixed": "_367UGW_tableFixed",
16244
+ "pickerModalBody": "_367UGW_pickerModalBody",
16245
+ "mergeSectionHead": "_367UGW_mergeSectionHead",
14940
16246
  "skeletonRoot": "_367UGW_skeletonRoot",
14941
- "progressBarFailed": "_367UGW_progressBarFailed",
14942
- "nextStepsGroup": "_367UGW_nextStepsGroup",
14943
- "ghostButton": "_367UGW_ghostButton",
14944
- "severityError": "_367UGW_severityError",
14945
- "conflictHead": "_367UGW_conflictHead",
14946
- "chatFallbackBubble": "_367UGW_chatFallbackBubble",
14947
- "rollbackDeleted": "_367UGW_rollbackDeleted",
14948
- "shSeverity": "_367UGW_shSeverity",
14949
- "mergeActions": "_367UGW_mergeActions",
14950
- "errorLine": "_367UGW_errorLine",
14951
- "toolRow": "_367UGW_toolRow",
14952
- "cellMetaNoteText": "_367UGW_cellMetaNoteText",
14953
- "skeletonTableRow": "_367UGW_skeletonTableRow",
14954
- "reportHeadline": "_367UGW_reportHeadline",
16247
+ "secretFields": "_367UGW_secretFields",
16248
+ "shRowActions": "_367UGW_shRowActions",
16249
+ "controlRow": "_367UGW_controlRow",
16250
+ "input": "_367UGW_input",
16251
+ "dialogContentCenter": "_367UGW_dialogContentCenter",
16252
+ "logEntry": "_367UGW_logEntry",
14955
16253
  "sourceRow": "_367UGW_sourceRow",
14956
- "marketReviewScroll": "_367UGW_marketReviewScroll",
14957
- "sourceRowMain": "_367UGW_sourceRowMain",
14958
- "chatFileContent": "_367UGW_chatFileContent",
14959
- "restorePlanRowStatic": "_367UGW_restorePlanRowStatic",
14960
- "shIssue": "_367UGW_shIssue",
14961
- "navStrip": "_367UGW_navStrip",
14962
- "syncActivityTrack": "_367UGW_syncActivityTrack",
16254
+ "dialogClose": "_367UGW_dialogClose",
16255
+ "kvRow": "_367UGW_kvRow",
14963
16256
  "diffNoColW3": "_367UGW_diffNoColW3",
14964
- "pickerGroup": "_367UGW_pickerGroup",
14965
- "empty": "_367UGW_empty",
14966
- "skeletonRowTitle": "_367UGW_skeletonRowTitle",
14967
- "statHealthAction": "_367UGW_statHealthAction",
14968
- "mono": "_367UGW_mono",
14969
- "shRowTop": "_367UGW_shRowTop",
14970
- "activityResultOk": "_367UGW_activityResultOk",
14971
- "sectionGrid": "_367UGW_sectionGrid",
14972
- "artifactName": "_367UGW_artifactName",
14973
- "mergeFooterSummary": "_367UGW_mergeFooterSummary",
14974
- "sourcePaths": "_367UGW_sourcePaths",
16257
+ "conflictChoices": "_367UGW_conflictChoices",
16258
+ "rollbackMetaDot": "_367UGW_rollbackMetaDot",
16259
+ "rollbackLedger": "_367UGW_rollbackLedger",
16260
+ "artifactMain": "_367UGW_artifactMain",
16261
+ "pickerFooter": "_367UGW_pickerFooter",
16262
+ "activityCard": "_367UGW_activityCard",
14975
16263
  "errorFooter": "_367UGW_errorFooter",
14976
- "selectMenuIn": "_367UGW_selectMenuIn",
14977
- "skeletonCaption": "_367UGW_skeletonCaption",
14978
- "snapshotRowHeader": "_367UGW_snapshotRowHeader",
14979
- "rollbackLedgerMain": "_367UGW_rollbackLedgerMain",
14980
- "restorePlanStat": "_367UGW_restorePlanStat",
14981
- "itemEnter": "_367UGW_itemEnter",
14982
- "libraryListState": "_367UGW_libraryListState",
14983
- "sectionOptionRow": "_367UGW_sectionOptionRow",
14984
- "sectionTitleBlock": "_367UGW_sectionTitleBlock",
14985
- "artifactDetailInner": "_367UGW_artifactDetailInner",
14986
- "pickerAction": "_367UGW_pickerAction",
14987
- "headRow": "_367UGW_headRow",
14988
- "profileRow": "_367UGW_profileRow",
14989
- "skipMeta": "_367UGW_skipMeta",
14990
- "pathValue": "_367UGW_pathValue",
14991
- "logLine": "_367UGW_logLine",
14992
- "reportSectionRow": "_367UGW_reportSectionRow",
14993
- "categoryDesc": "_367UGW_categoryDesc",
14994
- "diffGroupToggle": "_367UGW_diffGroupToggle",
14995
- "statusBar": "_367UGW_statusBar",
14996
- "artifactBadges": "_367UGW_artifactBadges",
14997
- "stepperStep": "_367UGW_stepperStep",
14998
- "pickerSubgroupName": "_367UGW_pickerSubgroupName",
14999
- "logFilterButton": "_367UGW_logFilterButton",
15000
- "rollbackFileList": "_367UGW_rollbackFileList",
15001
- "navMoreRoot": "_367UGW_navMoreRoot",
15002
- "infoValue": "_367UGW_infoValue",
15003
- "noticeLine": "_367UGW_noticeLine",
15004
- "previewChoiceRow": "_367UGW_previewChoiceRow",
15005
- "pageEnter": "_367UGW_pageEnter",
16264
+ "runsOptionDesc": "_367UGW_runsOptionDesc",
16265
+ "statusProgress": "_367UGW_statusProgress",
16266
+ "indet": "_367UGW_indet",
16267
+ "severityError": "_367UGW_severityError",
16268
+ "runsCounts": "_367UGW_runsCounts",
16269
+ "runsCardTime": "_367UGW_runsCardTime",
16270
+ "groupList": "_367UGW_groupList",
16271
+ "errorActionLabel": "_367UGW_errorActionLabel",
16272
+ "previewScopeOff": "_367UGW_previewScopeOff",
16273
+ "selectMenuPortal": "_367UGW_selectMenuPortal",
16274
+ "factValue": "_367UGW_factValue",
16275
+ "skeletonLine": "_367UGW_skeletonLine",
16276
+ "libraryCount": "_367UGW_libraryCount",
16277
+ "statusTask": "_367UGW_statusTask",
15006
16278
  "tableWrap": "_367UGW_tableWrap",
15007
- "previewScope": "_367UGW_previewScope",
15008
- "mergeToolbar": "_367UGW_mergeToolbar",
15009
- "pickerChevronSpacer": "_367UGW_pickerChevronSpacer",
16279
+ "marketFilterGrid": "_367UGW_marketFilterGrid",
16280
+ "infoHint": "_367UGW_infoHint",
16281
+ "pickerRoot": "_367UGW_pickerRoot",
16282
+ "pickerCount": "_367UGW_pickerCount",
16283
+ "reportDetails": "_367UGW_reportDetails",
16284
+ "paletteItemGroup": "_367UGW_paletteItemGroup",
16285
+ "runsLogLine": "_367UGW_runsLogLine",
16286
+ "pickerUnit": "_367UGW_pickerUnit",
16287
+ "progressMeta": "_367UGW_progressMeta",
16288
+ "mergeSection": "_367UGW_mergeSection",
15010
16289
  "compositionViewport": "_367UGW_compositionViewport",
15011
- "taskHead": "_367UGW_taskHead",
15012
- "shRowId": "_367UGW_shRowId",
15013
- "selectTrigger": "_367UGW_selectTrigger",
15014
- "mergeOverview": "_367UGW_mergeOverview",
15015
- "statSeg": "_367UGW_statSeg",
15016
- "spinner": "_367UGW_spinner",
15017
- "actionRowTop": "_367UGW_actionRowTop",
15018
- "diffCellAdd": "_367UGW_diffCellAdd",
15019
- "chatFileCard": "_367UGW_chatFileCard",
15020
- "infoHintBubble": "_367UGW_infoHintBubble",
15021
- "sourceRowName": "_367UGW_sourceRowName",
15022
- "libraryFilters": "_367UGW_libraryFilters",
15023
- "progressTrack": "_367UGW_progressTrack",
15024
- "input": "_367UGW_input",
15025
- "pathRow": "_367UGW_pathRow",
15026
- "kindTagWarn": "_367UGW_kindTagWarn",
15027
- "shHeaderTrailing": "_367UGW_shHeaderTrailing",
15028
- "statusTask": "_367UGW_statusTask",
15029
- "chatFileName": "_367UGW_chatFileName",
15030
- "restorePlanPath": "_367UGW_restorePlanPath",
15031
- "pickerSubgroup": "_367UGW_pickerSubgroup",
15032
- "skipText": "_367UGW_skipText",
15033
16290
  "skeletonTable": "_367UGW_skeletonTable",
15034
- "checkboxRow": "_367UGW_checkboxRow",
15035
- "fillViewport": "_367UGW_fillViewport",
15036
- "errorTitle": "_367UGW_errorTitle",
15037
- "groupHeader": "_367UGW_groupHeader",
15038
- "reportFooter": "_367UGW_reportFooter",
15039
- "conflictLineLabel": "_367UGW_conflictLineLabel",
15040
- "taskBody": "_367UGW_taskBody",
15041
- "rollbackMetaDot": "_367UGW_rollbackMetaDot",
15042
- "logEntry": "_367UGW_logEntry",
15043
- "shCommands": "_367UGW_shCommands",
15044
- "wizardStepperRow": "_367UGW_wizardStepperRow",
16291
+ "cellMetaNoteText": "_367UGW_cellMetaNoteText",
16292
+ "shPanelTitle": "_367UGW_shPanelTitle",
16293
+ "chatAttachmentRow": "_367UGW_chatAttachmentRow",
16294
+ "selectLabel": "_367UGW_selectLabel",
16295
+ "sparseFill": "_367UGW_sparseFill",
16296
+ "diffNoAdd": "_367UGW_diffNoAdd",
16297
+ "dialogHeader": "_367UGW_dialogHeader",
16298
+ "skipMeta": "_367UGW_skipMeta",
16299
+ "selectMenu": "_367UGW_selectMenu",
16300
+ "navMore": "_367UGW_navMore",
16301
+ "runsOptionTitle": "_367UGW_runsOptionTitle",
16302
+ "authorRow": "_367UGW_authorRow",
16303
+ "artifactTitle": "_367UGW_artifactTitle",
16304
+ "diffPane": "_367UGW_diffPane",
16305
+ "rollbackFileList": "_367UGW_rollbackFileList",
15045
16306
  "planScroll": "_367UGW_planScroll",
15046
- "progressBarDone": "_367UGW_progressBarDone",
15047
- "updateVersionTarget": "_367UGW_updateVersionTarget",
15048
- "reportProblemRow": "_367UGW_reportProblemRow",
15049
- "mergeIconLabel": "_367UGW_mergeIconLabel",
15050
- "restorePlanGroupHead": "_367UGW_restorePlanGroupHead",
15051
- "mergeSectionName": "_367UGW_mergeSectionName",
15052
- "diffTable": "_367UGW_diffTable",
15053
- "reportBody": "_367UGW_reportBody",
15054
- "skeletonRowIcon": "_367UGW_skeletonRowIcon",
15055
- "chatActionBtn": "_367UGW_chatActionBtn",
15056
- "artifactList": "_367UGW_artifactList",
16307
+ "artifactDetailInner": "_367UGW_artifactDetailInner",
16308
+ "progressDetail": "_367UGW_progressDetail",
16309
+ "runsCardTitle": "_367UGW_runsCardTitle",
16310
+ "rollbackFileStat": "_367UGW_rollbackFileStat",
16311
+ "shRowTop": "_367UGW_shRowTop",
16312
+ "emptySteps": "_367UGW_emptySteps",
16313
+ "resultFooter": "_367UGW_resultFooter",
16314
+ "chatFileIcon": "_367UGW_chatFileIcon",
16315
+ "chatEntryActions": "_367UGW_chatEntryActions",
16316
+ "mergeFooterSummary": "_367UGW_mergeFooterSummary",
16317
+ "collapse": "_367UGW_collapse",
16318
+ "previewScopeStats": "_367UGW_previewScopeStats",
16319
+ "diffNoColW5": "_367UGW_diffNoColW5",
16320
+ "rollbackPoint": "_367UGW_rollbackPoint",
16321
+ "snapshotRowText": "_367UGW_snapshotRowText",
16322
+ "logEmpty": "_367UGW_logEmpty",
16323
+ "diffNo": "_367UGW_diffNo",
16324
+ "logHeader": "_367UGW_logHeader",
16325
+ "progressBadge": "_367UGW_progressBadge",
16326
+ "paletteEmpty": "_367UGW_paletteEmpty",
16327
+ "profileRowName": "_367UGW_profileRowName",
16328
+ "mergeColValue": "_367UGW_mergeColValue",
15057
16329
  "chatEntryScope": "_367UGW_chatEntryScope",
15058
- "activitySummaryText": "_367UGW_activitySummaryText",
15059
- "taskTitle": "_367UGW_taskTitle",
15060
- "mergeScroll": "_367UGW_mergeScroll",
15061
- "runsOption": "_367UGW_runsOption",
16330
+ "diffFileStat": "_367UGW_diffFileStat",
16331
+ "statSeg": "_367UGW_statSeg",
16332
+ "spin": "_367UGW_spin",
16333
+ "restorePlan": "_367UGW_restorePlan",
16334
+ "diffCellAdd": "_367UGW_diffCellAdd",
16335
+ "rollbackDeleted": "_367UGW_rollbackDeleted",
16336
+ "warnList": "_367UGW_warnList",
16337
+ "maskIn": "_367UGW_maskIn",
16338
+ "pickerChildren": "_367UGW_pickerChildren",
16339
+ "warnText": "_367UGW_warnText",
15062
16340
  "runsCardActions": "_367UGW_runsCardActions",
15063
- "dangerButton": "_367UGW_dangerButton",
15064
- "diffPaneFill": "_367UGW_diffPaneFill",
15065
- "progressBlock": "_367UGW_progressBlock",
15066
- "dialogClose": "_367UGW_dialogClose",
15067
- "previewScopeOff": "_367UGW_previewScopeOff",
15068
- "actionRow": "_367UGW_actionRow",
15069
- "categoryName": "_367UGW_categoryName",
15070
- "fillCard": "_367UGW_fillCard",
15071
- "progressBadgeSection": "_367UGW_progressBadgeSection",
15072
- "choiceTitle": "_367UGW_choiceTitle",
15073
- "skeletonCard": "_367UGW_skeletonCard",
15074
- "factCell": "_367UGW_factCell",
15075
- "cellTitle": "_367UGW_cellTitle",
16341
+ "reportBlock": "_367UGW_reportBlock",
16342
+ "shMetrics": "_367UGW_shMetrics",
16343
+ "taskHead": "_367UGW_taskHead",
16344
+ "mergeTileLabel": "_367UGW_mergeTileLabel",
16345
+ "stepper": "_367UGW_stepper",
16346
+ "dialogCard": "_367UGW_dialogCard",
16347
+ "progressBar": "_367UGW_progressBar",
16348
+ "mergeCols": "_367UGW_mergeCols",
16349
+ "rollbackPointTurn": "_367UGW_rollbackPointTurn",
16350
+ "hiddenFile": "_367UGW_hiddenFile",
16351
+ "selectTrigger": "_367UGW_selectTrigger",
16352
+ "skipList": "_367UGW_skipList",
16353
+ "mergeSectionName": "_367UGW_mergeSectionName",
16354
+ "reportWarningRow": "_367UGW_reportWarningRow",
16355
+ "num": "_367UGW_num",
16356
+ "reportFooter": "_367UGW_reportFooter",
16357
+ "rollbackFileRow": "_367UGW_rollbackFileRow",
15076
16358
  "modeHint": "_367UGW_modeHint",
15077
- "rollbackLedger": "_367UGW_rollbackLedger",
15078
- "diffPane": "_367UGW_diffPane",
15079
- "chatBubbleText": "_367UGW_chatBubbleText",
15080
- "historySummary": "_367UGW_historySummary",
15081
- "factGrid": "_367UGW_factGrid",
15082
- "stepperConnector": "_367UGW_stepperConnector",
16359
+ "mergeConflictPath": "_367UGW_mergeConflictPath",
16360
+ "shSeverity": "_367UGW_shSeverity",
16361
+ "infoHintBtn": "_367UGW_infoHintBtn",
16362
+ "dialogFooter": "_367UGW_dialogFooter",
16363
+ "pickerOverlay": "_367UGW_pickerOverlay",
16364
+ "logPanel": "_367UGW_logPanel",
16365
+ "navStrip": "_367UGW_navStrip",
16366
+ "diffStatTotal": "_367UGW_diffStatTotal",
16367
+ "diffNoColW6": "_367UGW_diffNoColW6",
16368
+ "statHealthAction": "_367UGW_statHealthAction",
16369
+ "progressBarFailed": "_367UGW_progressBarFailed",
16370
+ "categoryName": "_367UGW_categoryName",
16371
+ "reportBody": "_367UGW_reportBody",
16372
+ "diffStatAdd": "_367UGW_diffStatAdd",
16373
+ "progressPercent": "_367UGW_progressPercent",
16374
+ "rollbackGroupHead": "_367UGW_rollbackGroupHead",
15083
16375
  "shRow": "_367UGW_shRow",
15084
- "cellMeta": "_367UGW_cellMeta",
15085
- "toastText": "_367UGW_toastText",
15086
- "sectionCount": "_367UGW_sectionCount",
15087
- "maskIn": "_367UGW_maskIn",
15088
- "selectLabel": "_367UGW_selectLabel",
15089
- "errorAction": "_367UGW_errorAction",
16376
+ "badgeHost": "_367UGW_badgeHost",
16377
+ "pathNew": "_367UGW_pathNew",
16378
+ "diffHunkRow": "_367UGW_diffHunkRow",
16379
+ "sectionTitleBlock": "_367UGW_sectionTitleBlock",
16380
+ "rollbackFilePath": "_367UGW_rollbackFilePath",
16381
+ "activityHeader": "_367UGW_activityHeader",
16382
+ "restorePlanPath": "_367UGW_restorePlanPath",
16383
+ "skeletonRowAction": "_367UGW_skeletonRowAction",
16384
+ "sourceList": "_367UGW_sourceList",
16385
+ "navDot": "_367UGW_navDot",
16386
+ "field": "_367UGW_field",
16387
+ "shMetric": "_367UGW_shMetric",
16388
+ "rollbackSummary": "_367UGW_rollbackSummary",
16389
+ "statValueSkeleton": "_367UGW_statValueSkeleton",
16390
+ "pickerTreeRow": "_367UGW_pickerTreeRow",
16391
+ "actionRowTop": "_367UGW_actionRowTop",
16392
+ "diffFileHead": "_367UGW_diffFileHead",
16393
+ "libraryFilter": "_367UGW_libraryFilter",
16394
+ "stepperConnector": "_367UGW_stepperConnector",
16395
+ "secretsList": "_367UGW_secretsList",
15090
16396
  "groupCard": "_367UGW_groupCard",
15091
- "activityTime": "_367UGW_activityTime",
15092
- "rollbackPointTop": "_367UGW_rollbackPointTop",
15093
- "infoHintIn": "_367UGW_infoHintIn",
15094
- "chatRawPre": "_367UGW_chatRawPre",
15095
- "sectionTitleRow": "_367UGW_sectionTitleRow",
15096
- "confirmScroll": "_367UGW_confirmScroll",
15097
- "skeletonRowBody": "_367UGW_skeletonRowBody",
15098
- "runsCardTime": "_367UGW_runsCardTime"
16397
+ "diffStatDel": "_367UGW_diffStatDel",
16398
+ "skeletonRow": "_367UGW_skeletonRow",
16399
+ "errorBanner": "_367UGW_errorBanner",
16400
+ "artifactBadges": "_367UGW_artifactBadges",
16401
+ "artifactActions": "_367UGW_artifactActions",
16402
+ "skeletonCard": "_367UGW_skeletonCard",
16403
+ "mergeScroll": "_367UGW_mergeScroll",
16404
+ "artifactExpand": "_367UGW_artifactExpand",
16405
+ "errorItem": "_367UGW_errorItem",
16406
+ "snapshotList": "_367UGW_snapshotList",
16407
+ "rollbackGroupUnit": "_367UGW_rollbackGroupUnit",
16408
+ "optionsCard": "_367UGW_optionsCard",
16409
+ "collapseInner": "_367UGW_collapseInner",
16410
+ "pickerRow": "_367UGW_pickerRow",
16411
+ "shMetaDot": "_367UGW_shMetaDot"
15099
16412
  };
15100
16413
  // src/client/common/Modal.tsx
15101
16414
  /**
@@ -16712,6 +18025,18 @@ const zh$4 = {
16712
18025
  "import.paths.kind.homeMismatch": "基础路径不同",
16713
18026
  "import.paths.unresolved": "还有 {count} 条路径未映射(留空将跳过该路径,可以继续)",
16714
18027
  "import.paths.empty": "无需映射路径",
18028
+ "import.paths.browse": "选择本机路径",
18029
+ "import.paths.picker.title": "选择本机路径",
18030
+ "import.paths.picker.up": "上一层",
18031
+ "import.paths.picker.home": "主目录",
18032
+ "import.paths.picker.thisPc": "此电脑",
18033
+ "import.paths.picker.useCurrent": "使用当前目录",
18034
+ "import.paths.picker.empty": "这个目录里没有可进入的项",
18035
+ "import.paths.picker.truncated": "只显示前 {count} 项",
18036
+ "import.paths.picker.notFound": "这个路径不存在(已为你打开上一级)",
18037
+ "import.paths.picker.denied": "没有读取这个目录的权限",
18038
+ "import.paths.picker.notAbsolute": "请填绝对路径(如 D:\\ 或 /)",
18039
+ "import.paths.picker.failed": "读取这个目录失败",
16715
18040
  "home.schedule.title": "定时备份",
16716
18041
  "snapshots.selectHint": "选择快照以预览恢复计划(只读预览,不会改动任何设置):",
16717
18042
  "snapshots.status": "状态",
@@ -17533,6 +18858,18 @@ const en$4 = {
17533
18858
  "import.paths.kind.homeMismatch": "Different base path",
17534
18859
  "import.paths.unresolved": "{count} path(s) unmapped (blank = skip that path, you can continue)",
17535
18860
  "import.paths.empty": "No paths to map",
18861
+ "import.paths.browse": "Choose a local path",
18862
+ "import.paths.picker.title": "Choose a local path",
18863
+ "import.paths.picker.up": "Up one level",
18864
+ "import.paths.picker.home": "Home folder",
18865
+ "import.paths.picker.thisPc": "This PC",
18866
+ "import.paths.picker.useCurrent": "Use this folder",
18867
+ "import.paths.picker.empty": "Nothing to open in this folder",
18868
+ "import.paths.picker.truncated": "Showing the first {count} entries",
18869
+ "import.paths.picker.notFound": "That path does not exist (opened its parent instead)",
18870
+ "import.paths.picker.denied": "No permission to read this folder",
18871
+ "import.paths.picker.notAbsolute": "Enter an absolute path (e.g. D:\\ or /)",
18872
+ "import.paths.picker.failed": "Could not read this folder",
17536
18873
  "home.schedule.title": "Schedule",
17537
18874
  "snapshots.selectHint": "Select a snapshot to preview its restore plan (read-only preview, changes nothing):",
17538
18875
  "snapshots.status": "Status",
@@ -21482,13 +22819,22 @@ function CopyButton({ text, label, t }) {
21482
22819
  } else toast.warn(t("toast.copyFailed"));
21483
22820
  });
21484
22821
  };
22822
+ /**
22823
+ * 图标 = **对话(聊天)回退条用的那两颗宿主原生图**(2026-10-28 用户要求「复制图标统一替换成
22824
+ * 对话回退的复制 icon」):`IconCopyOutlineRegular → IconCheckOutlineRegular` 的**瞬时换图**,
22825
+ * 与宿主 MessageIconActions / ChatEntryCopyAction 同一对、同一字形与描边重量。
22826
+ * 拿不到宿主图标的老宿主回落 morphicons 的 `CopyStateIcon`(绝不能变成空白按钮)。
22827
+ */
22828
+ const HostCopyIcon = hostIcon("IconCopyOutlineRegular");
22829
+ const HostCheckIcon = hostIcon("IconCheckOutlineRegular");
21485
22830
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
21486
22831
  type: "button",
21487
22832
  className: config_manager_module_css_default.copyBtn,
21488
22833
  "aria-label": label,
21489
22834
  title: label,
21490
22835
  onClick,
21491
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(CopyStateIcon, {
22836
+ "data-copy-state": copied ? "copied" : "idle",
22837
+ children: HostCopyIcon !== null && HostCheckIcon !== null ? copied ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(HostCheckIcon, { size: 12 }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(HostCopyIcon, { size: 12 }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(CopyStateIcon, {
21492
22838
  done: copied,
21493
22839
  size: 12
21494
22840
  })
@@ -25287,6 +26633,170 @@ function ConflictList({ collector, t, onChanged }) {
25287
26633
  ]
25288
26634
  });
25289
26635
  }
26636
+ // src/client/import/PathPickerDialog.tsx
26637
+ /**
26638
+ * 本机路径选择弹窗(导入 → 路径映射 → 每条「新路径」右侧的文件夹按钮)。
26639
+ *
26640
+ * 为什么需要它
26641
+ * ------------
26642
+ * 路径映射要求用户给一堆**绝对路径**指定本机新位置,而浏览器拿不到真实路径
26643
+ * (File System Access API 只给 handle,`<input type="file">` 只给文件名)。此前用户只能凭记忆
26644
+ * 手打 `D:\\Apps\\nodejs\\node_global\\gitnexus.cmd` 这类字符串 —— 打错一位就等于「导不进」。
26645
+ * 目录列举由宿主 `GET /path-browse` 提供(src/core/path-browse.ts,只读、有界),本组件只画界面。
26646
+ *
26647
+ * 交互约定
26648
+ * --------
26649
+ * - 点目录 = 进入;点文件 = 直接选中(原路径可能指向文件,如 .cmd / .json);
26650
+ * - 「使用当前目录」回填当前目录;「上一层」「主目录」是导航快捷入口;
26651
+ * - 起点 `startPath` 若是文件或不存在,宿主会同时给出 `parent`,这里上浮一层再列(只自动上浮一次,
26652
+ * 免得用户在空目录里被反复弹走)。
26653
+ *
26654
+ * 边界:组件不发请求做判断,不创建/改名/删除任何东西;错误码由字典翻译(引擎不产文案)。
26655
+ */
26656
+ /** 列举失败原因码 → 字典键(与 core 的 `BrowseErrorCode` 一一对应)。 */
26657
+ const BROWSE_ERROR_LABEL = {
26658
+ "not-found": "import.paths.picker.notFound",
26659
+ denied: "import.paths.picker.denied",
26660
+ failed: "import.paths.picker.failed",
26661
+ "not-absolute": "import.paths.picker.notAbsolute"
26662
+ };
26663
+ /**
26664
+ * 目录浏览弹窗:列一层目录,点目录进入、点文件选中。
26665
+ */
26666
+ function PathPickerDialog({ open, api, t, startPath, onPick, onClose }) {
26667
+ const [current, setCurrent] = (0, react.useState)(null);
26668
+ const [state, setState] = (0, react.useState)({ kind: "loading" });
26669
+ const risenFor = (0, react.useRef)(null);
26670
+ const trimmedStart = startPath.trim();
26671
+ (0, react.useEffect)(() => {
26672
+ if (!open) return;
26673
+ risenFor.current = null;
26674
+ setCurrent(trimmedStart === "" ? null : trimmedStart);
26675
+ }, [open, trimmedStart]);
26676
+ (0, react.useEffect)(() => {
26677
+ if (!open) return;
26678
+ let alive = true;
26679
+ setState({ kind: "loading" });
26680
+ api.browsePath(current ?? void 0).then((data) => {
26681
+ if (!alive) return;
26682
+ if (data.error === "not-found" && data.path === trimmedStart && data.parent !== null && risenFor.current !== data.path) {
26683
+ risenFor.current = data.path;
26684
+ setCurrent(data.parent);
26685
+ return;
26686
+ }
26687
+ setState({
26688
+ kind: "ready",
26689
+ data
26690
+ });
26691
+ }, (error) => {
26692
+ if (!alive) return;
26693
+ setState({
26694
+ kind: "failed",
26695
+ detail: error instanceof Error ? error.message : String(error)
26696
+ });
26697
+ });
26698
+ return () => {
26699
+ alive = false;
26700
+ };
26701
+ }, [
26702
+ open,
26703
+ current,
26704
+ trimmedStart,
26705
+ api
26706
+ ]);
26707
+ const data = state.kind === "ready" ? state.data : null;
26708
+ const atRoots = data !== null && data.path === "";
26709
+ const canGoUp = data !== null && data.parent !== null;
26710
+ const pathLabel = atRoots ? t("import.paths.picker.thisPc") : data?.path ?? trimmedStart;
26711
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(Modal, {
26712
+ open,
26713
+ onClose,
26714
+ title: t("import.paths.picker.title"),
26715
+ wide: true,
26716
+ children: [
26717
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Modal.Header, {
26718
+ title: t("import.paths.picker.title"),
26719
+ onClose,
26720
+ closeLabel: t("common.close")
26721
+ }),
26722
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(Modal.Body, {
26723
+ scroll: true,
26724
+ style: { maxHeight: "56vh" },
26725
+ children: [
26726
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
26727
+ className: config_manager_module_css_default.pickerPath,
26728
+ title: pathLabel,
26729
+ children: pathLabel
26730
+ }),
26731
+ state.kind === "loading" && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Spinner, { label: t("common.loading") }),
26732
+ state.kind === "failed" && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Banner, {
26733
+ kind: "error",
26734
+ children: state.detail
26735
+ }),
26736
+ state.kind === "ready" && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [
26737
+ state.data.error !== null && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Banner, {
26738
+ kind: "warn",
26739
+ children: t(BROWSE_ERROR_LABEL[state.data.error])
26740
+ }),
26741
+ state.data.error === null && state.data.truncated && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Banner, {
26742
+ kind: "info",
26743
+ children: t("import.paths.picker.truncated", { count: String(state.data.entries.length) })
26744
+ }),
26745
+ state.data.error === null && state.data.entries.length === 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
26746
+ className: config_manager_module_css_default.empty,
26747
+ children: t("import.paths.picker.empty")
26748
+ }),
26749
+ state.data.entries.length > 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
26750
+ className: config_manager_module_css_default.pickerList,
26751
+ children: state.data.entries.map((entry) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
26752
+ type: "button",
26753
+ className: config_manager_module_css_default.pickerRow,
26754
+ "data-kind": entry.kind,
26755
+ title: entry.path,
26756
+ onClick: () => {
26757
+ if (entry.kind === "dir") setCurrent(entry.path);
26758
+ else onPick(entry.path);
26759
+ },
26760
+ children: [entry.kind === "dir" ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(FolderIcon, { size: 14 }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(FileIcon, { size: 14 }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
26761
+ className: config_manager_module_css_default.pickerName,
26762
+ children: entry.name
26763
+ })]
26764
+ }, entry.path))
26765
+ })
26766
+ ] })
26767
+ ]
26768
+ }),
26769
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(Modal.Footer, { children: [
26770
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Button, {
26771
+ onClick: () => {
26772
+ if (data?.parent != null) setCurrent(data.parent);
26773
+ },
26774
+ disabled: !canGoUp,
26775
+ children: t("import.paths.picker.up")
26776
+ }),
26777
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Button, {
26778
+ onClick: () => {
26779
+ if (data !== null) setCurrent(data.home);
26780
+ },
26781
+ disabled: data === null,
26782
+ children: t("import.paths.picker.home")
26783
+ }),
26784
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Button, {
26785
+ onClick: onClose,
26786
+ children: t("common.cancel")
26787
+ }),
26788
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Button, {
26789
+ variant: "primary",
26790
+ disabled: data === null || atRoots,
26791
+ onClick: () => {
26792
+ if (data !== null) onPick(data.path);
26793
+ },
26794
+ children: t("import.paths.picker.useCurrent")
26795
+ })
26796
+ ] })
26797
+ ]
26798
+ });
26799
+ }
25290
26800
  // src/client/import/PathMappingForm.tsx
25291
26801
  /**
25292
26802
  * 路径映射表单(规范 §12,绑 src/ui/types.ts 的 PathMappingDraft 形状)。
@@ -25310,7 +26820,8 @@ const PATH_ISSUE_LABEL = {
25310
26820
  * 路径映射表单:每条 PathIssue 一行(原路径 → 新路径输入框),
25311
26821
  * 留空 = 该路径不映射(unresolved);填写 = 输出 core PathMapping[]。
25312
26822
  */
25313
- function PathMappingForm({ issues, initial, t, onChange }) {
26823
+ function PathMappingForm({ issues, initial, t, onChange, api }) {
26824
+ const [pickingFor, setPickingFor] = (0, react.useState)(null);
25314
26825
  const [drafts, setDrafts] = (0, react.useState)(() => {
25315
26826
  const out = {};
25316
26827
  for (const m of initial ?? []) out[m.oldPrefix] = m.newPrefix;
@@ -25328,6 +26839,32 @@ function PathMappingForm({ issues, initial, t, onChange }) {
25328
26839
  appliesTo: []
25329
26840
  })));
25330
26841
  };
26842
+ /**
26843
+ * 文件夹按钮的完整动作,三层降级,任一层拿到绝对路径就回填:
26844
+ * ① **DSH 宿主自带**的目录选择器(就是「选择工作区目录」那个原生窗口,跟着宿主主进程走,最稳);
26845
+ * ② 插件自己的系统对话框(Windows = 资源管理器同款、macOS = Finder、Linux = zenity/kdialog);
26846
+ * ③ 内置目录浏览器(前两层都没有时才用)。
26847
+ *
26848
+ * 用户在任何一层点取消 ⇒ 什么都不做(不是错误,不弹红条)。
26849
+ */
26850
+ const pickFolder = (oldPrefix) => {
26851
+ const startPath = (drafts[oldPrefix] ?? "").trim();
26852
+ (async () => {
26853
+ const viaHost = api.pickDshPath === void 0 ? void 0 : await api.pickDshPath();
26854
+ if (viaHost?.ok === true) {
26855
+ setNewPrefix(oldPrefix, viaHost.path);
26856
+ return;
26857
+ }
26858
+ if (viaHost?.reason === "canceled") return;
26859
+ const native = await api.pickNativePath(startPath, t("import.paths.picker.title")).catch(() => null);
26860
+ if (native !== null && native.ok) {
26861
+ setNewPrefix(oldPrefix, native.path);
26862
+ return;
26863
+ }
26864
+ if (native !== null && native.reason === "canceled") return;
26865
+ setPickingFor(oldPrefix);
26866
+ })();
26867
+ };
25331
26868
  const unresolved = (0, react.useMemo)(() => {
25332
26869
  return issues.filter((issue) => (drafts[issue.value] ?? "") === "");
25333
26870
  }, [issues, drafts]);
@@ -25365,16 +26902,38 @@ function PathMappingForm({ issues, initial, t, onChange }) {
25365
26902
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
25366
26903
  className: config_manager_module_css_default.fieldLabel,
25367
26904
  children: t("import.paths.new")
25368
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
25369
- className: config_manager_module_css_default.input,
25370
- value: drafts[issue.value] ?? "",
25371
- placeholder: issue.mappedTo ?? "",
25372
- onChange: (e) => {
25373
- setNewPrefix(issue.value, e.target.value);
25374
- }
26905
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
26906
+ className: config_manager_module_css_default.pathInputRow,
26907
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
26908
+ className: config_manager_module_css_default.input,
26909
+ value: drafts[issue.value] ?? "",
26910
+ placeholder: issue.mappedTo ?? "",
26911
+ onChange: (e) => {
26912
+ setNewPrefix(issue.value, e.target.value);
26913
+ }
26914
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconButton, {
26915
+ icon: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(FolderOpenIcon, { size: 14 }),
26916
+ label: t("import.paths.browse"),
26917
+ onClick: () => {
26918
+ pickFolder(issue.value);
26919
+ }
26920
+ })]
25375
26921
  })]
25376
26922
  })]
25377
- }, issue.value))
26923
+ }, issue.value)),
26924
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(PathPickerDialog, {
26925
+ open: pickingFor !== null,
26926
+ api,
26927
+ t,
26928
+ startPath: pickingFor === null ? "" : drafts[pickingFor] ?? "",
26929
+ onPick: (path) => {
26930
+ if (pickingFor !== null) setNewPrefix(pickingFor, path);
26931
+ setPickingFor(null);
26932
+ },
26933
+ onClose: () => {
26934
+ setPickingFor(null);
26935
+ }
26936
+ })
25378
26937
  ]
25379
26938
  });
25380
26939
  }
@@ -25635,7 +27194,7 @@ function ConflictsStage(props) {
25635
27194
  }
25636
27195
  /** 路径映射(phase=path-mapping)。 */
25637
27196
  function PathMappingStage(props) {
25638
- const { issues, mappings, onMappingsChange, onBack, onNext, t } = props;
27197
+ const { issues, mappings, onMappingsChange, onBack, onNext, t, api } = props;
25639
27198
  return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
25640
27199
  className: config_manager_module_css_default.viewBody,
25641
27200
  children: [
@@ -25650,7 +27209,8 @@ function PathMappingStage(props) {
25650
27209
  issues,
25651
27210
  initial: mappings,
25652
27211
  t,
25653
- onChange: onMappingsChange
27212
+ onChange: onMappingsChange,
27213
+ api
25654
27214
  }),
25655
27215
  /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
25656
27216
  className: config_manager_module_css_default.actionRow,
@@ -27162,7 +28722,8 @@ function ImportWizardBody({ api, t, uiT, onOpenForeignImport }) {
27162
28722
  setPhase("preview");
27163
28723
  },
27164
28724
  onNext: finishPathMapping,
27165
- t
28725
+ t,
28726
+ api
27166
28727
  });
27167
28728
  if (phase === "secrets" && step === "preview") return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(SecretsStage, {
27168
28729
  missing: pendingSecretRequests(selectedPlan, decryptRefs),
@@ -28715,6 +30276,22 @@ function workdirBacklog(workDir) {
28715
30276
  remoteSnapshots
28716
30277
  };
28717
30278
  }
30279
+ /**
30280
+ * 「这一步该按哪个方向」—— 动作行只留一个 primary(issue 115:两个按钮并排、首次使用看不出该按哪个)。
30281
+ *
30282
+ * 判定只用**已确证**的远端事实,没证据就回落下行:一键同步先拉远端再三方合并、逐项确认,
30283
+ * 不会拿本机默认值覆盖远端历史;上行推送才是产生新快照、改写远端历史的那个动作。
30284
+ * 唯一让上行成为 primary 的情形是「远端确证零快照」(git 工作副本自检 remoteSnapshots === 0):
30285
+ * 此时同步无事可做,用户要的就是第一次备份。判定入口收在本函数里(channel 一并传入),
30286
+ * 组件不用在调用点再判一次通道 —— 判据只有一处。
30287
+ */
30288
+ function pickSyncPrimary(statusInfo, channel) {
30289
+ if (channel !== "git") return "sync";
30290
+ const backlog = workdirBacklog(statusInfo?.workDir);
30291
+ if (backlog.kind === "never-synced") return "push";
30292
+ if (backlog.kind === "clean" && backlog.remoteSnapshots === 0) return "push";
30293
+ return "sync";
30294
+ }
28718
30295
  function formatSyncUrlPreview(url, max = 60) {
28719
30296
  return url.slice(0, max);
28720
30297
  }
@@ -33315,7 +34892,7 @@ function SyncPanel({ api, t, cmT }) {
33315
34892
  className: config_manager_module_css_default.actionRow,
33316
34893
  children: [
33317
34894
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Button, {
33318
- variant: "primary",
34895
+ variant: pickSyncPrimary(state.statusInfo, channel) === "sync" ? "primary" : "ghost",
33319
34896
  disabled: busy,
33320
34897
  loading: state.busy === "sync",
33321
34898
  onClick: () => {
@@ -33324,6 +34901,7 @@ function SyncPanel({ api, t, cmT }) {
33324
34901
  children: state.busy === "sync" ? syncPhase === "preview" ? t("syncflow.checkingRemote") : t("syncflow.syncing") : t("syncflow.button")
33325
34902
  }),
33326
34903
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Button, {
34904
+ variant: pickSyncPrimary(state.statusInfo, channel) === "push" ? "primary" : "ghost",
33327
34905
  disabled: !computeSyncButtons(state.busy, ready, uiT).canPush || githubBusy || !hasSelectedSections(cs) || computeEncryptInvalid(cs),
33328
34906
  onClick: () => {
33329
34907
  switchChannel(channel);
@@ -40256,7 +41834,7 @@ function navigationSourcesOf(ctx) {
40256
41834
  return {
40257
41835
  workspace: asWorkspaceSource(safeGet("uiWorkspace")),
40258
41836
  sessions: asSessionListSource(safeGet("sessions")),
40259
- workspaces: asArchiveSource(safeGet("workspaces"))
41837
+ workspaces: asArchiveSource(safeGet("uiWorkspace")) ?? asArchiveSource(safeGet("workspaces"))
40260
41838
  };
40261
41839
  }
40262
41840
  /**
@@ -47934,14 +49512,6 @@ function ConfigManagerSection({ api, syncApi, syncT, marketApi, myConfigsApi, ma
47934
49512
  * 切页会重挂面板,忙态若存面板里会随切页蒸发。
47935
49513
  */
47936
49514
  const [libraryPending, setLibraryPending] = (0, react.useState)(null);
47937
- /**
47938
- * 导入面板当前是否停在「从其它 agent 导入」这一页(t17)。
47939
- *
47940
- * 为什么是壳层 state 而不是 runStore:它与「导入面板」同生命周期,且**不该被持久化** ——
47941
- * 刷新后重放一个「正在选来源」的界面只会骗人(来源检测结果要重新拉)。
47942
- * 关面板 / 切走即随组件卸载归零,与 libraryAction 同一档语义。
47943
- */
47944
- const [foreignImportOpen, setForeignImportOpen] = (0, react.useState)(false);
47945
49515
  const [starPromptOpen, setStarPromptOpen] = (0, react.useState)(false);
47946
49516
  /** 弹窗展示的 GitHub 仓库地址(GET /star-prompt 返回;不落 store) */
47947
49517
  const starRepoUrl = (0, react.useRef)("");
@@ -48194,8 +49764,7 @@ function ConfigManagerSection({ api, syncApi, syncT, marketApi, myConfigsApi, ma
48194
49764
  openTask("market", { subView: "myconfigs" });
48195
49765
  return;
48196
49766
  case "import.foreign":
48197
- openTask("import");
48198
- setForeignImportOpen(true);
49767
+ openTask("import", { foreign: true });
48199
49768
  return;
48200
49769
  case "maintenance.open":
48201
49770
  openMaintenance();
@@ -48232,8 +49801,7 @@ function ConfigManagerSection({ api, syncApi, syncT, marketApi, myConfigsApi, ma
48232
49801
  t,
48233
49802
  syncT,
48234
49803
  openForeignImport: () => {
48235
- openTask("import");
48236
- setForeignImportOpen(true);
49804
+ openTask("import", { foreign: true });
48237
49805
  }
48238
49806
  });
48239
49807
  break;
@@ -48415,23 +49983,31 @@ function ConfigManagerSection({ api, syncApi, syncT, marketApi, myConfigsApi, ma
48415
49983
  api,
48416
49984
  t
48417
49985
  }),
48418
- activeTask.kind === "import" && (foreignImportOpen ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ForeignImportView, {
49986
+ activeTask.kind === "import" && (importTaskForeign(activeTask.payload) ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ForeignImportView, {
48419
49987
  api,
48420
49988
  t,
48421
49989
  uiT,
48422
49990
  onReady: (result) => {
48423
- setForeignImportOpen(false);
48424
- runStore.patch({ library: { pendingZip: {
48425
- zipPath: result.zipPath,
48426
- name: result.name
48427
- } } });
49991
+ runStore.patch({
49992
+ task: {
49993
+ ...activeTask,
49994
+ payload: { foreign: false }
49995
+ },
49996
+ library: { pendingZip: {
49997
+ zipPath: result.zipPath,
49998
+ name: result.name
49999
+ } }
50000
+ });
48428
50001
  }
48429
50002
  }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ImportWizardView, {
48430
50003
  api,
48431
50004
  t,
48432
50005
  uiT,
48433
50006
  onOpenForeignImport: () => {
48434
- setForeignImportOpen(true);
50007
+ runStore.patch({ task: {
50008
+ ...activeTask,
50009
+ payload: { foreign: true }
50010
+ } });
48435
50011
  }
48436
50012
  })),
48437
50013
  activeTask.kind === "market" && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(MarketPanel, {
@@ -48559,6 +50135,18 @@ function marketTaskSubView(payload) {
48559
50135
  const v = payload.subView;
48560
50136
  return v === "myconfigs" || v === "browse" ? v : void 0;
48561
50137
  }
50138
+ /**
50139
+ * Task 入参里取「导入面板停在来源选择」(t17「从其它 agent 导入」)。
50140
+ *
50141
+ * 为什么放进 Task 入参而不是壳层 useState(原 bug 的根因):壳层 state 与「导入面板」**不同**
50142
+ * 生命周期 —— 关面板只是 `task: null`,壳层不重挂,于是「先点从其它 agent 导入 → 关掉 → 再点导入」
50143
+ * 会带着旧的 true 进来,看到的是来源选择页而不是导入向导。入参随 Task 一起生灭(且 Task 本身
50144
+ * 不持久化,见 run-store 的 `task: null`),开一个**新的**导入面板自然就是向导。
50145
+ */
50146
+ function importTaskForeign(payload) {
50147
+ if (typeof payload !== "object" || payload === null) return false;
50148
+ return payload.foreign === true;
50149
+ }
48562
50150
  function marketTaskItemId(payload) {
48563
50151
  if (typeof payload !== "object" || payload === null) return void 0;
48564
50152
  const id = payload.marketId;
@@ -51839,7 +53427,12 @@ function apply(ctx) {
51839
53427
  const readLanguage = () => ctx.locale.getLocale().active;
51840
53428
  setUiLanguageSource(readLanguage);
51841
53429
  const uiT = makeLiveUiT(readLanguage);
51842
- const api = new ConfigManagerApi(uiT);
53430
+ const api = new ConfigManagerApi(uiT, makeDshDirectoryPicker({
53431
+ get desktop() {
53432
+ return globalThis.__DSH_DIRECTORY_PICKER__;
53433
+ },
53434
+ getService: (name) => ctx.get(name)
53435
+ }));
51843
53436
  const syncT = ctx.locale.bind(SYNC_NS);
51844
53437
  const syncApi = new SyncApi(uiT);
51845
53438
  const marketT = ctx.locale.bind(MARKET_NS);