@interf/compiler 0.16.0 → 0.21.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 (203) hide show
  1. package/LICENSE.md +1 -0
  2. package/README.md +90 -73
  3. package/TRADEMARKS.md +4 -4
  4. package/dist/cli/commands/mcp.d.ts +0 -34
  5. package/dist/cli/commands/mcp.js +246 -45
  6. package/dist/cli/commands/method.js +261 -15
  7. package/dist/cli/commands/prep.js +116 -15
  8. package/dist/cli/commands/runs.js +103 -9
  9. package/dist/cli/commands/status.js +4 -2
  10. package/dist/cli/commands/test.d.ts +10 -0
  11. package/dist/cli/commands/{verify.js → test.js} +24 -17
  12. package/dist/cli/commands/web.js +82 -8
  13. package/dist/cli/commands/wizard.js +158 -51
  14. package/dist/cli/index.d.ts +2 -2
  15. package/dist/cli/index.js +3 -3
  16. package/dist/compiler-ui/404.html +1 -1
  17. package/dist/compiler-ui/__next.__PAGE__.txt +5 -5
  18. package/dist/compiler-ui/__next._full.txt +13 -12
  19. package/dist/compiler-ui/__next._head.txt +3 -3
  20. package/dist/compiler-ui/__next._index.txt +5 -4
  21. package/dist/compiler-ui/__next._tree.txt +4 -3
  22. package/dist/compiler-ui/_next/static/chunks/01646j7yi.w5a.css +1 -0
  23. package/dist/compiler-ui/_next/static/chunks/{0n51hrfoufc7g.js → 02f_.8.ebn556.js} +1 -1
  24. package/dist/compiler-ui/_next/static/chunks/02r7siaw-_p5w.js +1 -0
  25. package/dist/compiler-ui/_next/static/chunks/{08m7vf5asqlsm.js → 04d0ly-7xb~-j.js} +10 -10
  26. package/dist/compiler-ui/_next/static/chunks/0fhs9psnxqd8s.js +1 -0
  27. package/dist/compiler-ui/_next/static/chunks/0mssmhpbifj15.css +2 -0
  28. package/dist/compiler-ui/_next/static/chunks/0nypu~ddwxari.js +116 -0
  29. package/dist/compiler-ui/_next/static/chunks/0p3s8iyhgcww2.js +31 -0
  30. package/dist/compiler-ui/_next/static/chunks/0tjf-vu_rz8s0.css +1 -0
  31. package/dist/compiler-ui/_next/static/chunks/0u6p3fpbbfgtl.js +1 -0
  32. package/dist/compiler-ui/_next/static/chunks/0wpx5..8dnh0w.js +1 -0
  33. package/dist/compiler-ui/_next/static/chunks/0y0uj160p0ts~.js +1 -0
  34. package/dist/compiler-ui/_next/static/chunks/10t8l~_oenf.c.js +1 -0
  35. package/dist/compiler-ui/_next/static/chunks/13gz9e7z~imx1.js +5 -0
  36. package/dist/compiler-ui/_next/static/chunks/156xed-b6czaw.js +1 -0
  37. package/dist/compiler-ui/_next/static/chunks/{turbopack-0.uq1k8c0j4s..js → turbopack-02-3e_c-yz~5g.js} +1 -1
  38. package/dist/compiler-ui/_next/static/chunks/{turbopack-10e~t1yzi4svj.js → turbopack-0apv8vb-nczuy.js} +1 -1
  39. package/dist/compiler-ui/_not-found/__next._full.txt +10 -9
  40. package/dist/compiler-ui/_not-found/__next._head.txt +3 -3
  41. package/dist/compiler-ui/_not-found/__next._index.txt +5 -4
  42. package/dist/compiler-ui/_not-found/__next._not-found.__PAGE__.txt +2 -2
  43. package/dist/compiler-ui/_not-found/__next._not-found.txt +3 -3
  44. package/dist/compiler-ui/_not-found/__next._tree.txt +3 -2
  45. package/dist/compiler-ui/_not-found.html +1 -1
  46. package/dist/compiler-ui/_not-found.txt +10 -9
  47. package/dist/compiler-ui/index.html +1 -1
  48. package/dist/compiler-ui/index.txt +13 -12
  49. package/dist/packages/contracts/index.d.ts +2 -2
  50. package/dist/packages/contracts/index.js +1 -1
  51. package/dist/packages/contracts/lib/schema.d.ts +275 -72
  52. package/dist/packages/contracts/lib/schema.js +244 -83
  53. package/dist/packages/engine/action-definitions.d.ts +174 -13
  54. package/dist/packages/engine/action-definitions.js +125 -122
  55. package/dist/packages/engine/action-planner.js +4 -11
  56. package/dist/packages/engine/agents/lib/shells.d.ts +15 -5
  57. package/dist/packages/engine/agents/lib/shells.js +134 -123
  58. package/dist/packages/engine/agents/role-executors.js +1 -1
  59. package/dist/packages/engine/cloud-seams.d.ts +115 -0
  60. package/dist/packages/engine/cloud-seams.js +84 -0
  61. package/dist/packages/engine/compile/artifact-counts.d.ts +1 -1
  62. package/dist/packages/engine/compile/artifact-counts.js +3 -3
  63. package/dist/packages/engine/compile/artifact-status.d.ts +41 -0
  64. package/dist/packages/engine/compile/artifact-status.js +166 -0
  65. package/dist/packages/engine/compile/billing-events.d.ts +89 -0
  66. package/dist/packages/engine/compile/billing-events.js +74 -0
  67. package/dist/packages/engine/compile/check-evaluator.d.ts +66 -0
  68. package/dist/packages/engine/compile/check-evaluator.js +298 -0
  69. package/dist/packages/engine/compile/compiled-paths.js +6 -6
  70. package/dist/packages/engine/compile/compiled-schema.d.ts +7 -17
  71. package/dist/packages/engine/compile/compiled-schema.js +55 -70
  72. package/dist/packages/engine/compile/compiled-stage-plan.d.ts +1 -0
  73. package/dist/packages/engine/compile/compiled-stage-plan.js +32 -15
  74. package/dist/packages/engine/compile/compiled-stage-runner.js +1 -1
  75. package/dist/packages/engine/compile/index.d.ts +0 -1
  76. package/dist/packages/engine/compile/index.js +0 -1
  77. package/dist/packages/engine/compile/lib/schema.d.ts +111 -92
  78. package/dist/packages/engine/compile/lib/schema.js +35 -39
  79. package/dist/packages/engine/compile/method-primitives.d.ts +2 -2
  80. package/dist/packages/engine/compile/method-primitives.js +1 -1
  81. package/dist/packages/engine/compile/reset.js +4 -4
  82. package/dist/packages/engine/compile/runtime-contracts.js +2 -1
  83. package/dist/packages/engine/compile/runtime-prompt.js +3 -2
  84. package/dist/packages/engine/compile/runtime-reconcile.js +35 -35
  85. package/dist/packages/engine/compile/runtime-runs.js +0 -1
  86. package/dist/packages/engine/compile/runtime-types.d.ts +7 -8
  87. package/dist/packages/engine/compile/runtime.d.ts +1 -2
  88. package/dist/packages/engine/compile/runtime.js +0 -1
  89. package/dist/packages/engine/compile/state-health.js +6 -6
  90. package/dist/packages/engine/compile/state-view.js +7 -6
  91. package/dist/packages/engine/compile/validate-compiled.js +61 -30
  92. package/dist/packages/engine/compile/validate.js +26 -24
  93. package/dist/packages/engine/connection-config.js +1 -1
  94. package/dist/packages/engine/execution/lib/schema.d.ts +89 -33
  95. package/dist/packages/engine/execution/lib/schema.js +13 -5
  96. package/dist/packages/engine/index.d.ts +2 -2
  97. package/dist/packages/engine/index.js +1 -1
  98. package/dist/packages/engine/instance-paths.d.ts +15 -9
  99. package/dist/packages/engine/instance-paths.js +15 -9
  100. package/dist/packages/engine/lib/schema.d.ts +1316 -351
  101. package/dist/packages/engine/lib/schema.js +99 -36
  102. package/dist/packages/engine/native-run-handlers.js +25 -15
  103. package/dist/packages/engine/preparation-store.d.ts +9 -7
  104. package/dist/packages/engine/preparation-store.js +20 -0
  105. package/dist/packages/engine/requested-artifacts.d.ts +5 -0
  106. package/dist/packages/engine/requested-artifacts.js +36 -0
  107. package/dist/packages/engine/routes.d.ts +7 -1
  108. package/dist/packages/engine/routes.js +7 -1
  109. package/dist/packages/engine/run-observability.js +4 -4
  110. package/dist/packages/engine/runtime-event-applier.js +7 -0
  111. package/dist/packages/engine/runtime-proposal-helpers.d.ts +2 -2
  112. package/dist/packages/engine/runtime-proposal-helpers.js +6 -8
  113. package/dist/packages/engine/runtime-resource-builders.d.ts +11 -6
  114. package/dist/packages/engine/runtime-resource-builders.js +18 -6
  115. package/dist/packages/engine/runtime.d.ts +70 -8
  116. package/dist/packages/engine/runtime.js +304 -49
  117. package/dist/packages/engine/server.d.ts +25 -0
  118. package/dist/packages/engine/server.js +161 -50
  119. package/dist/packages/engine/verify/index.d.ts +10 -10
  120. package/dist/packages/engine/verify/index.js +8 -8
  121. package/dist/packages/engine/verify/readiness-check-run.d.ts +27 -4
  122. package/dist/packages/engine/verify/readiness-check-run.js +92 -24
  123. package/dist/packages/engine/verify/{test-execution.d.ts → verify-execution.d.ts} +2 -2
  124. package/dist/packages/engine/verify/{test-execution.js → verify-execution.js} +3 -3
  125. package/dist/packages/engine/verify/{test-paths.d.ts → verify-paths.d.ts} +1 -1
  126. package/dist/packages/engine/verify/{test-sandbox.d.ts → verify-sandbox.d.ts} +1 -1
  127. package/dist/packages/engine/verify/{test-specs.d.ts → verify-specs.d.ts} +1 -1
  128. package/dist/packages/engine/verify/{test-specs.js → verify-specs.js} +1 -1
  129. package/dist/packages/engine/verify/{test-targets.d.ts → verify-targets.d.ts} +1 -1
  130. package/dist/packages/engine/verify/{test.d.ts → verify.d.ts} +4 -4
  131. package/dist/packages/engine/verify/{test.js → verify.js} +3 -3
  132. package/dist/packages/engine/wire-schemas.d.ts +549 -0
  133. package/dist/packages/engine/wire-schemas.js +59 -0
  134. package/dist/packages/methods/authoring/method-authoring.d.ts +5 -1
  135. package/dist/packages/methods/authoring/method-authoring.js +68 -18
  136. package/dist/packages/methods/authoring/method-edit-session.js +5 -5
  137. package/dist/packages/methods/authoring/method-improvement.js +1 -1
  138. package/dist/packages/methods/package/builtin-compiled-method.d.ts +12 -12
  139. package/dist/packages/methods/package/builtin-compiled-method.js +26 -23
  140. package/dist/packages/methods/package/context-interface.d.ts +39 -26
  141. package/dist/packages/methods/package/context-interface.js +48 -39
  142. package/dist/packages/methods/package/interf-method-package.js +28 -47
  143. package/dist/packages/methods/package/local-methods.d.ts +4 -4
  144. package/dist/packages/methods/package/local-methods.js +53 -66
  145. package/dist/packages/methods/package/method-definitions.d.ts +4 -6
  146. package/dist/packages/methods/package/method-definitions.js +1 -5
  147. package/dist/packages/methods/package/method-helpers.d.ts +0 -2
  148. package/dist/packages/methods/package/method-helpers.js +0 -4
  149. package/dist/packages/project/interf-detect.js +6 -6
  150. package/dist/packages/project/interf-scaffold.js +12 -12
  151. package/dist/packages/project/lib/schema.d.ts +193 -0
  152. package/dist/packages/project/lib/schema.js +46 -1
  153. package/dist/packages/project/source-config.js +6 -1
  154. package/dist/packages/project/source-folders.js +1 -1
  155. package/package.json +12 -23
  156. package/public-repo/CONTRIBUTING.md +47 -0
  157. package/public-repo/LICENSE.md +1 -0
  158. package/public-repo/README.md +325 -0
  159. package/public-repo/SECURITY.md +67 -0
  160. package/public-repo/TRADEMARKS.md +8 -0
  161. package/{builtin-methods → public-repo/methods}/interf-default/README.md +10 -7
  162. package/{builtin-methods → public-repo/methods}/interf-default/compile/stages/shape/SKILL.md +4 -8
  163. package/{builtin-methods → public-repo/methods}/interf-default/method.json +8 -69
  164. package/public-repo/methods/interf-default/method.schema.json +75 -0
  165. package/public-repo/methods/interf-default/use/query/SKILL.md +23 -0
  166. package/public-repo/plugins/README.md +9 -0
  167. package/public-repo/plugins/interf/.claude-plugin/plugin.json +21 -0
  168. package/public-repo/plugins/interf/.mcp.json +12 -0
  169. package/public-repo/plugins/interf/README.md +29 -0
  170. package/public-repo/plugins/interf/skills/interf/SKILL.md +477 -0
  171. package/public-repo/skills/interf/SKILL.md +477 -0
  172. package/agent-skills/interf-actions/SKILL.md +0 -185
  173. package/agent-skills/interf-actions/references/cli.md +0 -243
  174. package/builtin-methods/interf-default/method.schema.json +0 -73
  175. package/builtin-methods/interf-default/use/query/SKILL.md +0 -28
  176. package/dist/cli/commands/verify.d.ts +0 -8
  177. package/dist/compiler-ui/_next/static/chunks/06yhdspx~ca5-.js +0 -5
  178. package/dist/compiler-ui/_next/static/chunks/06z~l3kwb891e.js +0 -1
  179. package/dist/compiler-ui/_next/static/chunks/08g7lvje.te.u.js +0 -1
  180. package/dist/compiler-ui/_next/static/chunks/0_i-3_5l9t2qe.js +0 -1
  181. package/dist/compiler-ui/_next/static/chunks/0b-ywny_j0g~0.js +0 -1
  182. package/dist/compiler-ui/_next/static/chunks/0b52v41o1gixx.js +0 -1
  183. package/dist/compiler-ui/_next/static/chunks/0gpzgsv0w.q~m.js +0 -31
  184. package/dist/compiler-ui/_next/static/chunks/0ilwfezfvu6~-.js +0 -1
  185. package/dist/compiler-ui/_next/static/chunks/0jipmpez3_ehh.js +0 -89
  186. package/dist/compiler-ui/_next/static/chunks/0xxmf45eskdt~.css +0 -1
  187. package/dist/compiler-ui/_next/static/chunks/13awzu4tooflw.css +0 -3
  188. package/dist/compiler-ui/_next/static/chunks/14wtz~vq25~qq.js +0 -1
  189. package/dist/packages/engine/compile/runtime-acceptance.d.ts +0 -9
  190. package/dist/packages/engine/compile/runtime-acceptance.js +0 -265
  191. /package/dist/compiler-ui/_next/static/{a3UiUF0DiMEbfWy_0gihg → tYHMLL9oKds1yDoNYgkPV}/_buildManifest.js +0 -0
  192. /package/dist/compiler-ui/_next/static/{a3UiUF0DiMEbfWy_0gihg → tYHMLL9oKds1yDoNYgkPV}/_clientMiddlewareManifest.js +0 -0
  193. /package/dist/compiler-ui/_next/static/{a3UiUF0DiMEbfWy_0gihg → tYHMLL9oKds1yDoNYgkPV}/_ssgManifest.js +0 -0
  194. /package/dist/packages/engine/verify/{test-paths.js → verify-paths.js} +0 -0
  195. /package/dist/packages/engine/verify/{test-profile-presets.d.ts → verify-profile-presets.d.ts} +0 -0
  196. /package/dist/packages/engine/verify/{test-profile-presets.js → verify-profile-presets.js} +0 -0
  197. /package/dist/packages/engine/verify/{test-sandbox.js → verify-sandbox.js} +0 -0
  198. /package/dist/packages/engine/verify/{test-targets.js → verify-targets.js} +0 -0
  199. /package/dist/packages/engine/verify/{test-types.d.ts → verify-types.d.ts} +0 -0
  200. /package/dist/packages/engine/verify/{test-types.js → verify-types.js} +0 -0
  201. /package/{builtin-methods → public-repo/methods}/interf-default/compile/stages/structure/SKILL.md +0 -0
  202. /package/{builtin-methods → public-repo/methods}/interf-default/compile/stages/summarize/SKILL.md +0 -0
  203. /package/{builtin-methods → public-repo/methods}/interf-default/improve/SKILL.md +0 -0
@@ -1 +0,0 @@
1
- .trace-viewer-module__xytY5W__traceNode{position:relative}.trace-viewer-module__xytY5W__childRow{flex-direction:row;align-items:flex-start;display:flex}.trace-viewer-module__xytY5W__spanNode{background-color:var(--span-background);color:var(--span-text);border:1px solid var(--span-border);text-overflow:ellipsis;white-space:nowrap;box-shadow:var(--ds-shadow-small);content-visibility:auto;cursor:pointer;-webkit-user-select:none;user-select:none;z-index:2;border-radius:8px;flex-direction:row;align-items:center;padding:0;display:flex;position:absolute;overflow:hidden}.trace-viewer-module__xytY5W__spanNode.trace-viewer-module__xytY5W__huge{overflow:visible}.trace-viewer-module__xytY5W__spanNode.trace-viewer-module__xytY5W__huge .trace-viewer-module__xytY5W__spanName{flex:0 auto;position:sticky;left:0}.trace-viewer-module__xytY5W__spanNode.trace-viewer-module__xytY5W__huge .trace-viewer-module__xytY5W__spanSpacer{flex:1 0 0}.trace-viewer-module__xytY5W__spanNode.trace-viewer-module__xytY5W__huge .trace-viewer-module__xytY5W__spanDuration{background-color:var(--span-background);box-shadow:-8px 0 16px 8px var(--span-background);padding-left:6px;position:sticky;right:0}.trace-viewer-module__xytY5W__spanNode:after{width:var(--span-width);height:var(--row-height);content:"";position:absolute;top:-1px;left:-1px}.trace-viewer-module__xytY5W__spanNode.trace-viewer-module__xytY5W__small:not(.trace-viewer-module__xytY5W__xHover):after{top:-7px}.trace-viewer-module__xytY5W__spanNode:hover:not([data-selected]){filter:brightness(.95)}.trace-viewer-module__xytY5W__spanNode.trace-viewer-module__xytY5W__xHover{z-index:3;min-width:var(--span-width);background:linear-gradient(90deg, var(--span-background) calc(var(--span-width) - 1px), var(--span-line), var(--geist-background) calc(var(--span-width) + 1px));max-width:75%}.trace-viewer-module__xytY5W__spanNode.trace-viewer-module__xytY5W__xHover[data-right-side=true]{background:linear-gradient(270deg, var(--span-background) calc(var(--span-width) - 1px), var(--span-line), var(--geist-background) calc(var(--span-width) + 1px))}.trace-viewer-module__xytY5W__spanNode.trace-viewer-module__xytY5W__xHover .trace-viewer-module__xytY5W__spanName{max-width:max(var(--span-width), 40vw)}.trace-viewer-module__xytY5W__spanNode.trace-viewer-module__xytY5W__xHover .trace-viewer-module__xytY5W__spanDuration{box-shadow:none;background:0 0}.trace-viewer-module__xytY5W__spanNode.trace-viewer-module__xytY5W__small:not(.trace-viewer-module__xytY5W__xHover){background-color:var(--span-background);border-color:var(--span-border);border-radius:4px}.trace-viewer-module__xytY5W__spanNode[data-selected]{outline:2px solid var(--span-border);outline-offset:-1px;border-width:2px}.trace-viewer-module__xytY5W__spanNode[data-selected]:hover{filter:brightness(.95)}.trace-viewer-module__xytY5W__spanNodeEvent{height:var(--row-height);pointer-events:none;z-index:4;position:absolute}.trace-viewer-module__xytY5W__spanNodeEvent .trace-viewer-module__xytY5W__eventDiamond{--size:7px;--offset:-4px;left:var(--offset);bottom:calc(var(--offset) + 1px);width:var(--size);height:var(--size);border:1px solid var(--span-secondary);background:var(--span-background);transform-origin:50% 50% 0;border-radius:2px;position:absolute;transform:rotate(45deg)}.trace-viewer-module__xytY5W__spanNodeEvent.trace-viewer-module__xytY5W__customEventColor .trace-viewer-module__xytY5W__eventDiamond{border-color:var(--event-color,var(--span-border));background:var(--event-color,var(--span-background));opacity:.8}.trace-viewer-module__xytY5W__spanNodeEvent.trace-viewer-module__xytY5W__customEventColor .trace-viewer-module__xytY5W__hoverInfo{border-color:var(--span-border);background:var(--span-background)}.trace-viewer-module__xytY5W__spanNodeEvent.trace-viewer-module__xytY5W__customEventColor .trace-viewer-module__xytY5W__hoverInfo .trace-viewer-module__xytY5W__eventName{color:var(--span-text);font-weight:500}.trace-viewer-module__xytY5W__spanNodeEvent.trace-viewer-module__xytY5W__customEventColor .trace-viewer-module__xytY5W__hoverInfo .trace-viewer-module__xytY5W__eventTimestamp{color:var(--span-secondary)}.trace-viewer-module__xytY5W__spanNodeEvent .trace-viewer-module__xytY5W__hoverInfo{background:var(--span-background);border:1px solid var(--span-border);box-shadow:var(--ds-shadow-small);border-radius:6px;flex-direction:row;align-items:center;gap:6px;margin-top:-1px;padding:3px 6px;font-size:12px;line-height:1;display:none;position:absolute;top:100%;transform:translateY(-50%)}.trace-viewer-module__xytY5W__spanNodeEvent .trace-viewer-module__xytY5W__hoverInfo.trace-viewer-module__xytY5W__alignStart{padding-left:18px;left:-10px}.trace-viewer-module__xytY5W__spanNodeEvent .trace-viewer-module__xytY5W__hoverInfo.trace-viewer-module__xytY5W__alignEnd{padding-right:18px;right:-10px}.trace-viewer-module__xytY5W__spanNodeEvent .trace-viewer-module__xytY5W__hoverInfo .trace-viewer-module__xytY5W__eventName{color:var(--span-text)}.trace-viewer-module__xytY5W__spanNodeEvent .trace-viewer-module__xytY5W__hoverInfo .trace-viewer-module__xytY5W__eventTimestamp{color:var(--span-secondary);font-variant-numeric:tabular-nums}.trace-viewer-module__xytY5W__spanNodeEvent[data-hovered=true]{z-index:4}.trace-viewer-module__xytY5W__spanNodeEvent[data-hovered=true] .trace-viewer-module__xytY5W__eventDiamond{background:var(--span-text);border-color:var(--span-text)}.trace-viewer-module__xytY5W__spanNodeEvent[data-hovered=true] .trace-viewer-module__xytY5W__hoverInfo{display:flex}.trace-viewer-module__xytY5W__colorVercel{--span-background:var(--ds-background-100);--span-border:var(--ds-gray-500);--span-line:var(--ds-gray-400);--span-text:var(--ds-gray-1000);--span-secondary:var(--ds-gray-900);--geist-background:var(--ds-gray-100)}.trace-viewer-module__xytY5W__color0{--span-background:var(--ds-teal-200);--span-border:var(--ds-teal-500);--span-line:var(--ds-teal-400);--span-text:var(--ds-gray-1000);--span-secondary:var(--ds-teal-900)}.trace-viewer-module__xytY5W__color1{--span-background:var(--ds-blue-200);--span-border:var(--ds-blue-500);--span-line:var(--ds-blue-400);--span-text:var(--ds-gray-1000);--span-secondary:var(--ds-blue-900)}.trace-viewer-module__xytY5W__color2{--span-background:var(--ds-green-200);--span-border:var(--ds-green-500);--span-line:var(--ds-green-400);--span-text:var(--ds-gray-1000);--span-secondary:var(--ds-green-900)}.trace-viewer-module__xytY5W__color3{--span-background:var(--ds-purple-200);--span-border:var(--ds-purple-500);--span-line:var(--ds-purple-400);--span-text:var(--ds-gray-1000);--span-secondary:var(--ds-purple-900)}.trace-viewer-module__xytY5W__color4{--span-background:var(--ds-pink-200);--span-border:var(--ds-pink-500);--span-line:var(--ds-pink-400);--span-text:var(--ds-gray-1000);--span-secondary:var(--ds-pink-900)}.trace-viewer-module__xytY5W__colorHighlight{--span-background:var(--ds-amber-200);--span-border:var(--ds-amber-500);--span-line:var(--ds-amber-400);--span-text:var(--ds-gray-1000);--span-secondary:var(--ds-amber-900)}.trace-viewer-module__xytY5W__unlit{opacity:.3}:is(.dark-theme,.dark) .trace-viewer-module__xytY5W__mapContainer canvas{filter:invert()}:is(:is(.dark-theme,.dark) .trace-viewer-module__xytY5W__spanNode.trace-viewer-module__xytY5W__small.trace-viewer-module__xytY5W__xHover,:is(.dark-theme,.dark) .trace-viewer-module__xytY5W__spanNode.trace-viewer-module__xytY5W__small:focus-visible):before{text-shadow:0 1px #000}:is(.dark-theme,.dark) .trace-viewer-module__xytY5W__spanNode:hover:not([data-selected]),:is(.dark-theme,.dark) .trace-viewer-module__xytY5W__spanNode[data-selected]:hover{filter:brightness(1.05)}@media (prefers-color-scheme:dark){:root:not(.light) .trace-viewer-module__xytY5W__mapContainer canvas{filter:invert()}:is(:root:not(.light) .trace-viewer-module__xytY5W__spanNode.trace-viewer-module__xytY5W__small.trace-viewer-module__xytY5W__xHover,:root:not(.light) .trace-viewer-module__xytY5W__spanNode.trace-viewer-module__xytY5W__small:focus-visible):before{text-shadow:0 1px #000}:root:not(.light) .trace-viewer-module__xytY5W__spanNode:hover:not([data-selected]),:root:not(.light) .trace-viewer-module__xytY5W__spanNode[data-selected]:hover{filter:brightness(1.05)}}.trace-viewer-module__xytY5W__spanName{text-align:left;text-overflow:ellipsis;z-index:1;flex:auto;padding-inline:6px;position:relative;overflow:hidden}.trace-viewer-module__xytY5W__spanDuration{font-variant-numeric:tabular-nums;color:var(--span-secondary,var(--ds-gray-alpha-700));z-index:1;flex:none;padding-right:6px;position:relative}.trace-viewer-module__xytY5W__spanDetailPanel{flex-direction:column;flex:0 auto;justify-content:flex-start;align-items:stretch;height:100%;display:flex}.trace-viewer-module__xytY5W__spanDetailPanelResizer{cursor:col-resize;z-index:1;width:20px;height:100%;display:none;position:absolute;top:0;left:0}@media (hover:hover){.trace-viewer-module__xytY5W__spanDetailPanelResizer{display:block}}.trace-viewer-module__xytY5W__spanDetailPanelTop{flex-direction:row;flex:0 auto;justify-content:space-between;align-items:stretch;display:flex;position:relative}.trace-viewer-module__xytY5W__spanDetailPanelBody{flex-direction:column;flex:1 1 0;justify-content:flex-start;align-items:stretch;gap:12px;min-height:0;padding:16px 12px 24px;display:flex;overflow:hidden auto}.trace-viewer-module__xytY5W__spanDetailPanelTopInfo{--row-height:32px;border-bottom:1px solid var(--border-color);flex-direction:row;flex:0 auto;justify-content:space-between;align-items:center;gap:8px;width:100%;padding:8px 12px;font-size:12px;display:flex}.trace-viewer-module__xytY5W__spanNameDetailPanel{font-size:inherit;color:var(--ds-gray-1000);word-break:break-word}.trace-viewer-module__xytY5W__spanDetailPanelTruncatedHeading{flex-direction:row;flex:0 100%;justify-content:flex-start;align-items:center;gap:8px;display:flex;overflow:hidden}.trace-viewer-module__xytY5W__spanDetailPanelName{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--ds-gray-1000);flex:1 1 0;font-size:12px;font-weight:500;overflow:hidden}.trace-viewer-module__xytY5W__spanDetailPanelDuration{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--ds-gray-600);background-color:var(--ds-gray-200);border-radius:4px;flex-shrink:0;padding:2px 6px;font-size:10px}.trace-viewer-module__xytY5W__spanDetailPanelCorner{height:var(--row-height);flex-direction:row;flex:none;justify-content:flex-end;align-items:center;gap:8px;display:flex}.trace-viewer-module__xytY5W__spanDetailPanelCornerInner{flex-direction:row;flex:0 auto;justify-content:flex-start;align-items:stretch;display:flex}.trace-viewer-module__xytY5W__spanDetailPanelCloseVerticalRule{border-left:1px solid var(--ds-gray-300);height:16px}.trace-viewer-module__xytY5W__spanDetailPanelClose{cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;width:24px;height:24px;display:flex}.trace-viewer-module__xytY5W__spanDetailPanelClose:hover,.trace-viewer-module__xytY5W__spanDetailPanelClose:focus-visible{background-color:var(--ds-gray-200)}.trace-viewer-module__xytY5W__spanDetailPanelAttribute{border-bottom:1px solid var(--border-color);flex-direction:row;justify-content:space-between;align-items:center;gap:16px;margin:0;padding-block:8px;font-size:14px;line-height:1.4;display:flex}.trace-viewer-module__xytY5W__spanDetailPanelAttribute:last-child{border-bottom:none}.trace-viewer-module__xytY5W__spanDetailPanelAttributeKey{font-size:inherit;color:var(--ds-gray-900);flex:none;margin:0;padding-left:8px}.trace-viewer-module__xytY5W__spanDetailPanelAttributeValue{font-family:var(--font-mono);white-space:nowrap;text-overflow:ellipsis;flex:0 auto;margin:0;padding-right:8px;font-size:13px;overflow-x:hidden}.trace-viewer-module__xytY5W__spanDetailPanelQuickLink{color:inherit;text-decoration:none}.trace-viewer-module__xytY5W__spanDetailPanelQuickLink:hover .trace-viewer-module__xytY5W__spanDetailPanelQuickLinkLabel{text-decoration:underline}.trace-viewer-module__xytY5W__spanDetailPanelQuickLinkLabel{font:inherit;flex-direction:row;align-items:center;gap:8px;display:flex}.trace-viewer-module__xytY5W__detailGroup{flex-direction:column;flex:0 auto;justify-content:flex-start;align-items:stretch;display:flex}.trace-viewer-module__xytY5W__detailGroup:after{background:var(--border-color);content:"";height:1px;margin:12px -12px 0}.trace-viewer-module__xytY5W__detailHeading{color:var(--ds-gray-1000);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;border-radius:6px;flex-direction:row;justify-content:space-between;align-items:center;padding:8px;font-family:inherit;font-size:14px;font-weight:500;display:flex}.trace-viewer-module__xytY5W__detailHeading:hover,.trace-viewer-module__xytY5W__detailHeading:focus-visible{background-color:var(--ds-gray-100)}.trace-viewer-module__xytY5W__buttonLink{color:var(--ds-gray-1000);background-color:var(--ds-background-100);border:1px solid var(--accents-2);border-radius:6px;align-items:center;gap:6px;padding:4px 8px;font-size:12px;line-height:1;text-decoration:none;display:inline-flex}.trace-viewer-module__xytY5W__buttonLink:hover,.trace-viewer-module__xytY5W__buttonLink:focus-visible{background-color:var(--ds-gray-100)}.trace-viewer-module__xytY5W__note{color:var(--ds-gray-900);background-color:var(--ds-background-100);border:1px solid var(--ds-gray-300);border-radius:6px;padding:8px 10px}.trace-viewer-module__xytY5W__skeleton{background-color:var(--ds-gray-200);border-radius:4px;display:inline-block}.trace-viewer-module__xytY5W__skeletonRounded{border-radius:50%}.trace-viewer-module__xytY5W__detailGroup.trace-viewer-module__xytY5W__collapsed .trace-viewer-module__xytY5W__detailHeadingIcon{transform:rotate(-90deg)}.trace-viewer-module__xytY5W__infraSpanDescription{color:var(--ds-gray-900);flex-direction:column;gap:16px;padding:8px;font-size:14px;line-height:1.4;display:flex}.trace-viewer-module__xytY5W__ancestorNode{cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;border-radius:6px;padding:8px;font-family:inherit;font-size:13px}.trace-viewer-module__xytY5W__ancestorNode:hover,.trace-viewer-module__xytY5W__ancestorNode:focus-visible{background:var(--ds-gray-100)}.trace-viewer-module__xytY5W__ancestorText{color:var(--ds-gray-900);white-space:nowrap;flex-direction:row;justify-content:space-between;align-items:center;gap:4px;display:flex}.trace-viewer-module__xytY5W__ancestorName{text-overflow:ellipsis;overflow:hidden}.trace-viewer-module__xytY5W__ancestorDuration{font-variant-numeric:tabular-nums}.trace-viewer-module__xytY5W__ancestorLineContainer{background-color:var(--ds-gray-alpha-400);width:100%;height:1px;margin-top:6px;display:block;position:relative}.trace-viewer-module__xytY5W__ancestorLineContainer:before,.trace-viewer-module__xytY5W__ancestorLineContainer:after{background-color:inherit;content:"";width:1px;height:5px;position:absolute;top:-2px}.trace-viewer-module__xytY5W__ancestorLineContainer:before{left:0}.trace-viewer-module__xytY5W__ancestorLineContainer:after{right:0}.trace-viewer-module__xytY5W__ancestorLine{background-color:var(--span-background);border:1px solid var(--span-line);border-radius:1px;height:5px;position:absolute;top:-2px}:is(.trace-viewer-module__xytY5W__ancestorNode:hover,.trace-viewer-module__xytY5W__ancestorNode:focus-visible,.trace-viewer-module__xytY5W__ancestorNode:last-of-type) .trace-viewer-module__xytY5W__ancestorName{color:var(--ds-gray-1000)}:is(.trace-viewer-module__xytY5W__ancestorNode:hover,.trace-viewer-module__xytY5W__ancestorNode:focus-visible,.trace-viewer-module__xytY5W__ancestorNode:last-of-type) .trace-viewer-module__xytY5W__ancestorLine{background-color:var(--span-line);border-color:var(--span-border)}.trace-viewer-module__xytY5W__zoomButtonGroup{background-color:var(--geist-background);box-shadow:var(--ds-shadow-small);border:1px solid var(--accents-2);border-radius:10ex;flex-direction:row;flex:0 auto;justify-content:flex-start;align-items:stretch;animation:.3s .3s backwards trace-viewer-module__xytY5W__zoom-buttons-fade-in;display:inline-flex}@keyframes trace-viewer-module__xytY5W__zoom-buttons-fade-in{0%{opacity:0}to{opacity:1}}.trace-viewer-module__xytY5W__zoomButton{width:38px;height:32px;color:var(--accents-5);cursor:pointer;background-color:#0000;border:none;justify-content:center;align-items:center;padding:6px;display:flex;box-shadow:none!important}.trace-viewer-module__xytY5W__zoomButton:hover,.trace-viewer-module__xytY5W__zoomButton:focus-visible{color:var(--accents-7)}.trace-viewer-module__xytY5W__zoomButton:hover{color:var(--accents-7);background-color:#0000}.trace-viewer-module__xytY5W__divider{background-color:var(--accents-2);width:1px;margin:-1px}.trace-viewer-module__xytY5W__markersContainer{width:100%;height:calc(100% - var(--scrollbar-width));z-index:4;pointer-events:none;line-height:1;position:absolute;top:-8px;left:-8px}.trace-viewer-module__xytY5W__markers{gap:calc(var(--marker-width) - 1px);height:var(--marker-height);background:var(--ds-background-200);box-shadow:0 4px 8px 0 var(--ds-background-200);border-bottom:1px solid var(--marker-color);flex-direction:row;padding-left:8px;display:flex;position:sticky;top:0;overflow:hidden}.trace-viewer-module__xytY5W__marker{border-left:1px solid var(--marker-color);font-variant-numeric:tabular-nums;color:var(--ds-gray-900);height:var(--marker-height);flex:0 0 1px;font-size:10px;position:relative}.trace-viewer-module__xytY5W__marker.trace-viewer-module__xytY5W__notch{top:calc(var(--marker-height) - var(--marker-notch-height));height:var(--marker-notch-height)}.trace-viewer-module__xytY5W__markerLabel{color:var(--ds-gray-900);-webkit-user-select:none;user-select:none;white-space:nowrap;position:absolute;bottom:6px;left:2px}.trace-viewer-module__xytY5W__markerClockTime{color:var(--ds-gray-alpha-500);letter-spacing:.02em;white-space:nowrap;margin-top:1px;font-size:9px;display:block}.trace-viewer-module__xytY5W__eventMarkersContainer{width:var(--timeline-scroll-width);height:calc(100% - var(--scrollbar-width));z-index:1;pointer-events:none;line-height:1;position:absolute;top:-8px}.trace-viewer-module__xytY5W__eventMarkers{height:calc(100% + 2 * var(--timeline-padding));position:sticky;top:0;overflow:hidden}.trace-viewer-module__xytY5W__eventMarker{border-left:1px dotted var(--ds-gray-500);height:100%;position:absolute}.trace-viewer-module__xytY5W__cursorMarkerStickyParent{width:var(--timeline-scroll-width);height:calc(100% + 2 * var(--timeline-padding));pointer-events:none;position:absolute;top:-8px;left:0}.trace-viewer-module__xytY5W__cursorMarkerLabelContainer{z-index:5;pointer-events:none;width:1px;height:100%;display:none;position:sticky;top:0;left:0}.trace-viewer-module__xytY5W__cursorMarkerLabel{width:1px;height:var(--marker-height);background-color:var(--marker-color);position:sticky;top:4px}.trace-viewer-module__xytY5W__cursorMarkerLabel[data-text]:before{font-variant-numeric:tabular-nums;background-color:var(--ds-background-100);height:18px;color:var(--ds-gray-900);border:1px solid var(--ds-gray-500);box-shadow:var(--ds-shadow-small);content:attr(data-text);border-radius:10ex;margin:0;padding:0 6px;font-size:10px;font-weight:500;line-height:16px;position:absolute;top:0;left:0;transform:translate(-50%)}.trace-viewer-module__xytY5W__cursorMarkerLabel[data-align=left]:before{transform:unset;left:-6px}.trace-viewer-module__xytY5W__cursorMarkerLabel[data-align=right]:before{left:unset;transform:unset;right:-6px}.trace-viewer-module__xytY5W__cursorMarkerContainer{pointer-events:none;width:1px;height:100%;position:sticky;top:0}.trace-viewer-module__xytY5W__cursorMarker{background-color:var(--marker-color);z-index:1;width:1px;height:100%;display:none;position:sticky;top:0}.trace-viewer-module__xytY5W__cursorSelection{background-color:var(--ds-gray-100);border-inline:1px solid var(--ds-gray-300);flex-direction:row;justify-content:space-between;align-items:flex-end;gap:8px;height:100%;display:none;position:absolute;top:0}.trace-viewer-module__xytY5W__cursorSelection:before,.trace-viewer-module__xytY5W__cursorSelection:after{font-variant-numeric:tabular-nums;background-color:var(--ds-background-100);height:18px;color:var(--ds-gray-900);border:1px solid var(--ds-gray-500);box-shadow:var(--ds-shadow-small);white-space:nowrap;border-radius:10ex;padding:0 6px;font-size:10px;font-weight:500;line-height:16px;position:sticky;bottom:8px}.trace-viewer-module__xytY5W__cursorSelection:before{content:attr(data-range);margin-left:8px}.trace-viewer-module__xytY5W__cursorSelection:after{content:attr(data-duration);margin-right:8px}@keyframes trace-viewer-module__xytY5W__span-skeleton{0%{opacity:.6}to{opacity:.3}}.trace-viewer-module__xytY5W__traceViewer.trace-viewer-module__xytY5W__skeleton *{pointer-events:none!important}.trace-viewer-module__xytY5W__traceViewer.trace-viewer-module__xytY5W__skeleton .trace-viewer-module__xytY5W__mapCanvas,.trace-viewer-module__xytY5W__traceViewer.trace-viewer-module__xytY5W__skeleton .trace-viewer-module__xytY5W__markerLabel{display:none}.trace-viewer-module__xytY5W__traceViewer.trace-viewer-module__xytY5W__skeleton .trace-viewer-module__xytY5W__spanNode{animation:1s infinite alternate trace-viewer-module__xytY5W__span-skeleton}.trace-viewer-module__xytY5W__traceViewer.trace-viewer-module__xytY5W__skeleton .trace-viewer-module__xytY5W__spanNode *{display:none}.trace-viewer-module__xytY5W__traceViewer.trace-viewer-module__xytY5W__skeleton .trace-viewer-module__xytY5W__zoomButtonTraceViewer{display:none}.trace-viewer-module__xytY5W__traceViewer .trace-viewer-module__xytY5W__markers{border-top:1px solid var(--marker-color);border-bottom:none}.trace-viewer-module__xytY5W__traceViewer .trace-viewer-module__xytY5W__marker.trace-viewer-module__xytY5W__notch{top:0}.trace-viewer-module__xytY5W__traceViewer .trace-viewer-module__xytY5W__markerLabel{bottom:3px}.trace-viewer-module__xytY5W__traceViewer .trace-viewer-module__xytY5W__cursorMarkerLabel{top:8px}.trace-viewer-module__xytY5W__timeline:hover .trace-viewer-module__xytY5W__cursorMarkerLabelContainer,.trace-viewer-module__xytY5W__timeline:hover .trace-viewer-module__xytY5W__cursorMarker{display:block}.trace-viewer-module__xytY5W__searchBar{left:0;top:var(--search-gap);gap:var(--search-gap);width:100%;padding-inline:var(--search-gap);height:var(--search-height);flex-direction:row;display:flex;position:absolute}.trace-viewer-module__xytY5W__searchInput{height:var(--search-height);background:var(--ds-background-100);flex:0 100%;position:relative}.trace-viewer-module__xytY5W__searchInputLabel{box-shadow:0 0 0 1px var(--border-color,var(--ds-gray-alpha-400));border-radius:6px;justify-content:center;align-items:center;display:flex}.trace-viewer-module__xytY5W__searchInputLabel input{background:0 0;border:none;outline:none;margin-left:-16px;padding-inline:12px;font-family:inherit;font-size:14px}.trace-viewer-module__xytY5W__searchInputLabel input::-webkit-search-decoration{display:none}.trace-viewer-module__xytY5W__searchInputLabel input::-webkit-search-cancel-button{display:none}.trace-viewer-module__xytY5W__searchInputLabel input::-webkit-search-results-button{display:none}.trace-viewer-module__xytY5W__searchInputLabel input::-webkit-search-results-decoration{display:none}.trace-viewer-module__xytY5W__searchInputPrefix{width:var(--search-height);height:var(--search-height);color:var(--ds-gray-800);justify-content:center;align-items:center;display:flex}.trace-viewer-module__xytY5W__mapContainer{left:0;top:calc(var(--search-height) + 2 * var(--search-gap));cursor:move;position:absolute}.trace-viewer-module__xytY5W__mapCanvas{z-index:1;pointer-events:none;mix-blend-mode:multiply;position:absolute;top:0;left:0}:is(.dark-theme .trace-viewer-module__xytY5W__mapCanvas,.dark .trace-viewer-module__xytY5W__mapCanvas){mix-blend-mode:screen}@media (prefers-color-scheme:dark){:root:not(.light) .trace-viewer-module__xytY5W__mapCanvas{mix-blend-mode:screen}}.trace-viewer-module__xytY5W__mapThumb{height:var(--map-height);background:var(--ds-gray-alpha-200);border:1px solid var(--ds-gray-alpha-400);box-shadow:var(--ds-shadow-small);transform:translateX(var(--timeline-padding));pointer-events:none;border-radius:3px;position:absolute;top:0}.trace-viewer-module__xytY5W__traceViewer,.trace-viewer-module__xytY5W__spanDetailPanelTraceViewer{--border-color:var(--ds-gray-300);--marker-color:var(--ds-gray-300)}.trace-viewer-module__xytY5W__traceViewer{--scrollbar-width:0;font-family:var(--font-sans);text-rendering:optimizelegibility;-moz-text-size-adjust:100%;text-size-adjust:100%;background-color:var(--ds-background-200);display:flex;position:relative}.trace-viewer-module__xytY5W__traceViewer button{font-family:inherit}.trace-viewer-module__xytY5W__traceViewerContent{left:0;top:calc(var(--search-height) + 3 * var(--search-gap) + var(--map-height));width:calc(var(--timeline-width) + 2 * var(--timeline-padding));height:calc(var(--timeline-height) - 2 * var(--timeline-padding) - var(--scrollbar-width) - var(--marker-height) - var(--search-height));position:absolute}.trace-viewer-module__xytY5W__traceViewerContent.trace-viewer-module__xytY5W__inert{display:none}.trace-viewer-module__xytY5W__timeline{width:calc(var(--timeline-width) + 2 * var(--timeline-padding));height:var(--timeline-height);-webkit-overflow-scrolling:touch;font-size:13px;position:relative;overflow:scroll}.trace-viewer-module__xytY5W__zoomButtonTraceViewer{bottom:calc(-12px - var(--search-height) - var(--scrollbar-width));right:calc(var(--scrollbar-width) + 12px);z-index:10;position:absolute}.trace-viewer-module__xytY5W__spanDetailPanelTraceViewer{right:0;top:calc(var(--search-height) + 2 * var(--search-gap) + var(--map-height) + 9px);width:var(--panel-width);border-top:1px solid var(--ds-gray-200);border-left:1px solid var(--ds-gray-200);background-color:var(--geist-background);z-index:10;margin-top:-1px;position:absolute;bottom:0}.trace-viewer-module__xytY5W__spanDetailPanelTraceViewer.trace-viewer-module__xytY5W__hidden{display:none}.trace-viewer-module__xytY5W__spanDetailPanelTraceViewer.trace-viewer-module__xytY5W__mobile{--panel-width:calc(var(--timeline-width) + 2 * var(--timeline-padding));border-left:none;top:0}.trace-viewer-module__xytY5W__spanRunning,.trace-viewer-module__xytY5W__spanPending{--span-background:var(--ds-blue-200);--span-border:var(--ds-blue-500);--span-line:var(--ds-blue-400);--span-text:var(--ds-gray-1000);--span-secondary:var(--ds-blue-900)}.trace-viewer-module__xytY5W__spanCompleted{--span-background:var(--ds-green-200);--span-border:var(--ds-green-500);--span-line:var(--ds-green-400);--span-text:var(--ds-gray-1000);--span-secondary:var(--ds-green-900)}.trace-viewer-module__xytY5W__spanCancelled{--span-background:var(--ds-amber-200);--span-border:var(--ds-amber-500);--span-line:var(--ds-amber-400);--span-text:var(--ds-gray-1000);--span-secondary:var(--ds-amber-900)}.trace-viewer-module__xytY5W__spanFailed{--span-background:var(--ds-red-200);--span-border:var(--ds-red-500);--span-line:var(--ds-red-400);--span-text:var(--ds-gray-1000);--span-secondary:var(--ds-red-900)}.trace-viewer-module__xytY5W__spanPendingStriped{--span-background:repeating-linear-gradient(45deg, var(--ds-blue-200), var(--ds-blue-200) 10px, color-mix(in srgb, var(--ds-blue-200) 70%, white) 10px, color-mix(in srgb, var(--ds-blue-200) 70%, white) 20px);--span-border:var(--ds-blue-500);--span-line:var(--ds-blue-400);--span-text:var(--ds-gray-1000);--span-secondary:var(--ds-blue-900)}.trace-viewer-module__xytY5W__hasQueuedTime:before{content:"";left:var(--queued-width);border-left:2px dotted var(--ds-gray-700);pointer-events:none;height:100%;position:absolute}.trace-viewer-module__xytY5W__spanSleep{--span-background:var(--ds-amber-200);--span-border:var(--ds-amber-500);--span-line:var(--ds-amber-400);--span-text:var(--ds-gray-1000);--span-secondary:var(--ds-amber-900)}.trace-viewer-module__xytY5W__spanHook{--span-background:var(--ds-gray-200);--span-border:var(--ds-gray-500);--span-line:var(--ds-gray-400);--span-text:var(--ds-gray-1000);--span-secondary:var(--ds-gray-900)}.trace-viewer-module__xytY5W__segmentLayer{z-index:0;border-radius:inherit;pointer-events:none;position:absolute;inset:0}.trace-viewer-module__xytY5W__segment{pointer-events:auto;position:absolute;top:0;bottom:0;overflow:hidden}.trace-viewer-module__xytY5W__segmentLabel{font-variant-numeric:tabular-nums;white-space:nowrap;height:100%;color:var(--ds-gray-900);opacity:.7;pointer-events:none;-webkit-user-select:none;user-select:none;align-items:center;padding:0 4px;font-size:9px;display:flex}.trace-viewer-module__xytY5W__segmentTag{font-variant-numeric:tabular-nums;opacity:.6;white-space:nowrap;font-size:10px}.trace-viewer-module__xytY5W__segQueued{background:repeating-linear-gradient(45deg, var(--ds-gray-alpha-200), var(--ds-gray-alpha-200) 6px, var(--ds-gray-alpha-100) 6px, var(--ds-gray-alpha-100) 12px)}.trace-viewer-module__xytY5W__segRunning{background-color:var(--ds-blue-200)}.trace-viewer-module__xytY5W__segFailed{background-color:var(--ds-red-200)}.trace-viewer-module__xytY5W__segRetrying{background:repeating-linear-gradient(45deg, var(--ds-gray-alpha-200), var(--ds-gray-alpha-200) 6px, var(--ds-gray-alpha-100) 6px, var(--ds-gray-alpha-100) 12px)}.trace-viewer-module__xytY5W__segSucceeded{background-color:var(--ds-green-200)}.trace-viewer-module__xytY5W__segWaiting{background:repeating-linear-gradient(45deg, var(--ds-gray-alpha-200), var(--ds-gray-alpha-200) 6px, var(--ds-gray-alpha-100) 6px, var(--ds-gray-alpha-100) 12px)}.trace-viewer-module__xytY5W__segSleeping{background-color:var(--ds-amber-200)}.trace-viewer-module__xytY5W__segReceived{background-color:var(--ds-blue-200)}.trace-viewer-module__xytY5W__boundaryMarker .trace-viewer-module__xytY5W__boundaryLine{z-index:0;background-color:#0000;width:1px;transition:background-color .15s;position:absolute;top:0;bottom:0;left:-.5px}.trace-viewer-module__xytY5W__boundaryMarker[data-hovered=true] .trace-viewer-module__xytY5W__boundaryLine{background-color:var(--ds-gray-alpha-400)}.trace-viewer-module__xytY5W__boundaryMarker .trace-viewer-module__xytY5W__hoverInfo{z-index:1}.trace-viewer-module__xytY5W__spanNode.trace-viewer-module__xytY5W__hasSegments{background-color:#0000}.trace-viewer-module__xytY5W__spanNode.trace-viewer-module__xytY5W__hasSegments.trace-viewer-module__xytY5W__small:not(.trace-viewer-module__xytY5W__xHover){background-color:#0000}.trace-viewer-module__xytY5W__spanNode.trace-viewer-module__xytY5W__hasSegments.trace-viewer-module__xytY5W__xHover{min-width:var(--span-width);max-width:var(--span-width);background:0 0}.trace-viewer-module__xytY5W__spanNode.trace-viewer-module__xytY5W__hasSegments.trace-viewer-module__xytY5W__xHover[data-right-side=true]{background:0 0}.trace-viewer-module__xytY5W__spanNode.trace-viewer-module__xytY5W__hasSegments .trace-viewer-module__xytY5W__spanDuration{box-shadow:none;background-color:#0000}.trace-viewer-module__xytY5W__spanNode.trace-viewer-module__xytY5W__hasSegments:after{pointer-events:none}.trace-viewer-module__xytY5W__spanNode.trace-viewer-module__xytY5W__hasSegments .trace-viewer-module__xytY5W__segmentLayer{pointer-events:auto}.trace-viewer-module__xytY5W__eventFailed{--event-color:var(--ds-red-600);--span-background:var(--ds-red-100);--span-border:var(--ds-red-500);--span-text:var(--ds-red-900);--span-secondary:var(--ds-red-700)}.trace-viewer-module__xytY5W__eventRetrying{--event-color:var(--ds-amber-600);--span-background:var(--ds-amber-100);--span-border:var(--ds-amber-500);--span-text:var(--ds-amber-900);--span-secondary:var(--ds-amber-700)}.trace-viewer-module__xytY5W__eventHook{--event-color:var(--ds-purple-600);--span-background:var(--ds-purple-100);--span-border:var(--ds-purple-500);--span-text:var(--ds-purple-900);--span-secondary:var(--ds-purple-700)}.trace-viewer-module__xytY5W__eventDefault{--event-color:var(--ds-blue-600);--span-background:var(--ds-blue-100);--span-border:var(--ds-blue-500);--span-text:var(--ds-blue-900);--span-secondary:var(--ds-blue-700)}
@@ -1,3 +0,0 @@
1
- @font-face{font-family:GeistMono;src:url(../media/GeistMono_Variable.p.17jn9btb_52pq.woff2)format("woff2");font-display:swap;font-weight:100 900}.geistmono_157ca88a-module__uNhmwG__className{font-family:GeistMono,ui-monospace,SFMono-Regular,Roboto Mono,Menlo,Monaco,Liberation Mono,DejaVu Sans Mono,Courier New,monospace}.geistmono_157ca88a-module__uNhmwG__variable{--font-geist-mono:"GeistMono", ui-monospace, SFMono-Regular, Roboto Mono, Menlo, Monaco, Liberation Mono, DejaVu Sans Mono, Courier New, monospace}
2
- @font-face{font-family:GeistSans;src:url(../media/Geist_Variable-s.p.0-te~ja_gpvcf.woff2)format("woff2");font-display:swap;font-weight:100 900}@font-face{font-family:GeistSans Fallback;src:local(Arial);ascent-override:94.56%;descent-override:27.76%;line-gap-override:0.0%;size-adjust:106.28%}.geistsans_d5a4f12f-module__iZqIaq__className{font-family:GeistSans,GeistSans Fallback}.geistsans_d5a4f12f-module__iZqIaq__variable{--font-geist-sans:"GeistSans", "GeistSans Fallback"}
3
- @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-400:#ff6568;--color-red-700:#bf000f;--color-red-900:#82181a;--color-blue-400:#54a2ff;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--font-weight-medium:500;--font-weight-semibold:600;--tracking-tight:-.025em;--tracking-wide:.025em;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--animate-spin:spin 1s linear infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}@supports (color:lab(0% 0 0)){:root,:host{--color-red-400:lab(63.7053% 60.745 31.3109);--color-red-700:lab(40.4273% 67.2623 53.7441);--color-red-900:lab(28.5139% 44.5539 29.0463);--color-blue-400:lab(65.0361% -1.42065 -56.9802)}}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.\!absolute{position:absolute!important}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.inset-0{inset:calc(var(--spacing) * 0)}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.\!top-2{top:calc(var(--spacing) * 2)!important}.-top-3{top:calc(var(--spacing) * -3)}.top-0{top:calc(var(--spacing) * 0)}.top-3{top:calc(var(--spacing) * 3)}.top-9{top:calc(var(--spacing) * 9)}.\!right-2{right:calc(var(--spacing) * 2)!important}.right-2{right:calc(var(--spacing) * 2)}.right-4{right:calc(var(--spacing) * 4)}.bottom-0{bottom:calc(var(--spacing) * 0)}.bottom-2{bottom:calc(var(--spacing) * 2)}.left-0{left:calc(var(--spacing) * 0)}.left-3{left:calc(var(--spacing) * 3)}.left-6{left:calc(var(--spacing) * 6)}.z-10{z-index:10}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.m-0{margin:calc(var(--spacing) * 0)}.m-4{margin:calc(var(--spacing) * 4)}.mx-2\.5{margin-inline:calc(var(--spacing) * 2.5)}.my-1\.5{margin-block:calc(var(--spacing) * 1.5)}.my-2{margin-block:calc(var(--spacing) * 2)}.my-3\.5{margin-block:calc(var(--spacing) * 3.5)}.my-4{margin-block:calc(var(--spacing) * 4)}.mt-0{margin-top:calc(var(--spacing) * 0)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mr-3{margin-right:calc(var(--spacing) * 3)}.-mb-px{margin-bottom:-1px}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-6{margin-left:calc(var(--spacing) * 6)}.ml-12{margin-left:calc(var(--spacing) * 12)}.ml-16{margin-left:calc(var(--spacing) * 16)}.\!flex{display:flex!important}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.\!h-6{height:calc(var(--spacing) * 6)!important}.h-2{height:calc(var(--spacing) * 2)}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-\[20px\]{height:20px}.h-\[56px\]{height:56px}.h-full{height:100%}.h-px{height:1px}.max-h-\[200px\]{max-height:200px}.min-h-0{min-height:calc(var(--spacing) * 0)}.min-h-\[32px\]{min-height:32px}.\!w-6{width:calc(var(--spacing) * 6)!important}.w-0{width:calc(var(--spacing) * 0)}.w-1{width:calc(var(--spacing) * 1)}.w-2{width:calc(var(--spacing) * 2)}.w-3{width:calc(var(--spacing) * 3)}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-\[10\%\]{width:10%}.w-\[20\%\]{width:20%}.w-\[35\%\]{width:35%}.w-\[55\%\]{width:55%}.w-\[75\%\]{width:75%}.w-\[90\%\]{width:90%}.w-full{width:100%}.w-px{width:1px}.max-w-\[70\%\]{max-width:70%}.max-w-\[800px\]{max-width:800px}.max-w-none{max-width:none}.min-w-0{min-width:calc(var(--spacing) * 0)}.flex-1{flex:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.grow{flex-grow:1}.-translate-y-px{--tw-translate-y:-1px;translate:var(--tw-translate-x) var(--tw-translate-y)}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-spin{animation:var(--animate-spin)}.cursor-col-resize{cursor:col-resize}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.resize{resize:both}.flex-col{flex-direction:column}.\!items-center{align-items:center!important}.items-center{align-items:center}.items-start{align-items:flex-start}.\!justify-center{justify-content:center!important}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-0{gap:calc(var(--spacing) * 0)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}.self-stretch{align-self:stretch}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.\!rounded-md{border-radius:var(--radius-md)!important}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-bl-lg{border-bottom-left-radius:var(--radius-lg)}.\!border{border-style:var(--tw-border-style)!important;border-width:1px!important}.border{border-style:var(--tw-border-style);border-width:1px}.border-y{border-block-style:var(--tw-border-style);border-block-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-red-400{border-color:var(--color-red-400)}.\!bg-\[var\(--ds-background-100\)\]{background-color:var(--ds-background-100)!important}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-6{padding:calc(var(--spacing) * 6)}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-8{padding-block:calc(var(--spacing) * 8)}.pt-0{padding-top:calc(var(--spacing) * 0)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-9{padding-top:calc(var(--spacing) * 9)}.pr-10{padding-right:calc(var(--spacing) * 10)}.pb-1\.5{padding-bottom:calc(var(--spacing) * 1.5)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-8{padding-bottom:calc(var(--spacing) * 8)}.pl-6{padding-left:calc(var(--spacing) * 6)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[13px\]{font-size:13px}.text-\[14px\]{font-size:14px}.leading-none{--tw-leading:1;line-height:1}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.break-words{overflow-wrap:break-word}.text-ellipsis{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.\!text-\[var\(--ds-gray-800\)\]{color:var(--ds-gray-800)!important}.text-red-900{color:var(--color-red-900)}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.underline{text-decoration-line:underline}.decoration-transparent{text-decoration-color:#0000}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-100{--tw-duration:.1s;transition-duration:.1s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.select-none{-webkit-user-select:none;user-select:none}.group-open\:rotate-90:is(:where(.group):is([open],:popover-open,:open) *){rotate:90deg}@media (hover:hover){.group-hover\/copy\:opacity-100:is(:where(.group\/copy):hover *),.group-hover\/payload\:opacity-100:is(:where(.group\/payload):hover *){opacity:1}}.first-letter\:uppercase:first-letter{text-transform:uppercase}.first\:mt-0:first-child{margin-top:calc(var(--spacing) * 0)}@media (hover:hover){.hover\:\!bg-\[var\(--ds-gray-alpha-200\)\]:hover{background-color:var(--ds-gray-alpha-200)!important}.hover\:\!bg-\[var\(--ds-red-200\)\]:hover{background-color:var(--ds-red-200)!important}.hover\:bg-\[var\(--ds-gray-alpha-100\)\]:hover{background-color:var(--ds-gray-alpha-100)}.hover\:bg-\[var\(--ds-gray-alpha-200\)\]:hover{background-color:var(--ds-gray-alpha-200)}.hover\:bg-blue-400\/50:hover{background-color:#54a2ff80}@supports (color:color-mix(in lab, red, red)){.hover\:bg-blue-400\/50:hover{background-color:color-mix(in oklab, var(--color-blue-400) 50%, transparent)}}.hover\:brightness-95:hover{--tw-brightness:brightness(95%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}}.active\:\!scale-95:active{--tw-scale-x:95%!important;--tw-scale-y:95%!important;--tw-scale-z:95%!important;scale:var(--tw-scale-x) var(--tw-scale-y)!important}.active\:\!bg-\[var\(--ds-gray-alpha-300\)\]:active{background-color:var(--ds-gray-alpha-300)!important}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}@media (prefers-color-scheme:dark){.dark\:border-red-700{border-color:var(--color-red-700)}}.\[\&_p\]\:leading-relaxed p{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.\[\&\:\:-webkit-details-marker\]\:hidden::-webkit-details-marker{display:none}.\[\&\>\*\:first-child\]\:mt-0>:first-child{margin-top:calc(var(--spacing) * 0)}.\[\&\>\*\:last-child\]\:mb-0>:last-child{margin-bottom:calc(var(--spacing) * 0)}.\[\&\>svg\]\:absolute>svg{position:absolute}.\[\&\>svg\]\:top-4>svg{top:calc(var(--spacing) * 4)}.\[\&\>svg\]\:left-4>svg{left:calc(var(--spacing) * 4)}.\[\&\>svg\]\:text-red-900>svg{color:var(--color-red-900)}.\[\&\>svg\+div\]\:translate-y-\[-3px\]>svg+div{--tw-translate-y:-3px;translate:var(--tw-translate-x) var(--tw-translate-y)}.\[\&\>svg\~\*\]\:pl-7>svg~*{padding-left:calc(var(--spacing) * 7)}}:root{--ds-background-100:#fff;--ds-background-200:#fafafa;--ds-gray-100:#f2f2f2;--ds-gray-200:#ebebeb;--ds-gray-300:#e6e6e6;--ds-gray-400:#ebebeb;--ds-gray-500:#c9c9c9;--ds-gray-600:#a8a8a8;--ds-gray-700:#8f8f8f;--ds-gray-800:#7d7d7d;--ds-gray-900:#666;--ds-gray-1000:#171717;--ds-gray-alpha-100:#0000000d;--ds-gray-alpha-200:#00000015;--ds-gray-alpha-400:#00000014;--ds-gray-alpha-700:#00000070;--ds-gray-alpha-1000:#000000e8;--ds-blue-100:#f0f7ff;--ds-blue-200:#ebf5ff;--ds-blue-300:#e0f0ff;--ds-blue-400:#cce6ff;--ds-blue-500:#99ceff;--ds-blue-600:#52aeff;--ds-blue-700:#0072f5;--ds-blue-900:#0068d6;--ds-red-100:#fff0f0;--ds-red-200:#ffebeb;--ds-red-300:#ffe6e6;--ds-red-400:#fdd8d8;--ds-red-500:#f8b9b9;--ds-red-600:#f87275;--ds-red-700:#e5484d;--ds-red-900:#cb2a2f;--ds-amber-100:#fff6e6;--ds-amber-200:#fff4d6;--ds-amber-300:#fef0cd;--ds-amber-400:#ffdd8f;--ds-amber-500:#ffc96b;--ds-amber-600:#f5b047;--ds-amber-700:#ffb224;--ds-amber-900:#a35200;--ds-green-100:#effbef;--ds-green-200:#ebfaeb;--ds-green-300:#daf6da;--ds-green-400:#c6f1c7;--ds-green-500:#99e69e;--ds-green-600:#6cda75;--ds-green-700:#45a557;--ds-green-900:#297a3a;--ds-teal-200:#e5faf6;--ds-teal-400:#bef4eb;--ds-teal-500:#86ead9;--ds-teal-900:#067a6e;--ds-purple-100:#f9f0ff;--ds-purple-200:#f9f1fe;--ds-purple-300:#f4e8fc;--ds-purple-400:#eddcf9;--ds-purple-500:#d5b1f1;--ds-purple-600:#bf89ec;--ds-purple-700:#8e4ec6;--ds-purple-900:#7820bc;--ds-pink-200:#feecf2;--ds-pink-400:#f9d7e2;--ds-pink-500:#f5b8cc;--ds-pink-900:#bd2864;--ds-shadow-small:0px 1px 2px #0000000a}.dark-theme,.dark,[data-theme=dark]{--ds-background-100:#121212;--ds-background-200:#1a1a1a;--ds-gray-100:#1c1c1c;--ds-gray-200:#242424;--ds-gray-300:#2b2b2b;--ds-gray-400:#242424;--ds-gray-500:#3b3b3b;--ds-gray-600:#575757;--ds-gray-700:#707070;--ds-gray-800:#828282;--ds-gray-900:#a1a1a1;--ds-gray-1000:#ededed;--ds-gray-alpha-100:#ffffff0f;--ds-gray-alpha-200:#ffffff17;--ds-gray-alpha-400:#ffffff24;--ds-gray-alpha-700:#ffffff73;--ds-gray-alpha-1000:#ffffffeb;--ds-blue-100:#0f1c2e;--ds-blue-200:#10233d;--ds-blue-300:#0f2f57;--ds-blue-400:#0d3868;--ds-blue-500:#0a4380;--ds-blue-600:#075cb0;--ds-blue-700:#0073e6;--ds-blue-900:#70b8ff;--ds-red-100:#2a1314;--ds-red-200:#3c1618;--ds-red-300:#561a1e;--ds-red-400:#671e21;--ds-red-500:#832126;--ds-red-600:#c41c22;--ds-red-700:#e5484d;--ds-red-900:#ff8589;--ds-amber-100:#291800;--ds-amber-200:#381f00;--ds-amber-300:#4d2a00;--ds-amber-400:#573300;--ds-amber-500:#704100;--ds-amber-600:#995c00;--ds-amber-700:#ffb224;--ds-amber-900:#ffd68a;--ds-green-100:#0b2212;--ds-green-200:#0f2e18;--ds-green-300:#12361b;--ds-green-400:#0c451b;--ds-green-500:#126426;--ds-green-600:#1a9338;--ds-green-700:#45a557;--ds-green-900:#97d897;--ds-teal-200:#062d26;--ds-teal-400:#0d4a40;--ds-teal-500:#115f52;--ds-teal-900:#47ebca;--ds-purple-100:#231528;--ds-purple-200:#2e1938;--ds-purple-300:#422154;--ds-purple-400:#4f2768;--ds-purple-500:#5f2e85;--ds-purple-600:#8e4ec6;--ds-purple-700:#8e4ec6;--ds-purple-900:#bf7af0;--ds-pink-200:#2f1822;--ds-pink-400:#5c243a;--ds-pink-500:#7a2949;--ds-pink-900:#f075a6;--ds-shadow-small:0px 1px 2px #0000004d}.react-flow{--xy-edge-stroke-default:#b1b1b7;--xy-edge-stroke-width-default:1;--xy-edge-stroke-selected-default:#555;--xy-connectionline-stroke-default:#b1b1b7;--xy-connectionline-stroke-width-default:1;--xy-attribution-background-color-default:#ffffff80;--xy-minimap-background-color-default:#fff;--xy-minimap-mask-background-color-default:#f0f0f099;--xy-minimap-mask-stroke-color-default:transparent;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#e2e2e2;--xy-minimap-node-stroke-color-default:transparent;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:transparent;--xy-background-pattern-dots-color-default:#91919a;--xy-background-pattern-lines-color-default:#eee;--xy-background-pattern-cross-color-default:#e2e2e2;background-color:var(--xy-background-color,var(--xy-background-color-default));--xy-node-color-default:inherit;--xy-node-border-default:1px solid #1a192b;--xy-node-background-color-default:#fff;--xy-node-group-background-color-default:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #00000014;--xy-node-boxshadow-selected-default:0 0 0 .5px #1a192b;--xy-node-border-radius-default:3px;--xy-handle-background-color-default:#1a192b;--xy-handle-border-color-default:#fff;--xy-selection-background-color-default:#0059dc14;--xy-selection-border-default:1px dotted #0059dccc;--xy-controls-button-background-color-default:#fefefe;--xy-controls-button-background-color-hover-default:#f4f4f4;--xy-controls-button-color-default:inherit;--xy-controls-button-color-hover-default:inherit;--xy-controls-button-border-color-default:#eee;--xy-controls-box-shadow-default:0 0 2px 1px #00000014;--xy-edge-label-background-color-default:#fff;--xy-edge-label-color-default:inherit;--xy-resize-background-color-default:#3367d9;direction:ltr}.react-flow.dark{--xy-edge-stroke-default:#3e3e3e;--xy-edge-stroke-width-default:1;--xy-edge-stroke-selected-default:#727272;--xy-connectionline-stroke-default:#b1b1b7;--xy-connectionline-stroke-width-default:1;--xy-attribution-background-color-default:#96969640;--xy-minimap-background-color-default:#141414;--xy-minimap-mask-background-color-default:#3c3c3c99;--xy-minimap-mask-stroke-color-default:transparent;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#2b2b2b;--xy-minimap-node-stroke-color-default:transparent;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:#141414;--xy-background-pattern-dots-color-default:#777;--xy-background-pattern-lines-color-default:#777;--xy-background-pattern-cross-color-default:#777;--xy-node-color-default:#f8f8f8;--xy-node-border-default:1px solid #3c3c3c;--xy-node-background-color-default:#1e1e1e;--xy-node-group-background-color-default:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #ffffff14;--xy-node-boxshadow-selected-default:0 0 0 .5px #999;--xy-handle-background-color-default:#bebebe;--xy-handle-border-color-default:#1e1e1e;--xy-selection-background-color-default:#c8c8dc14;--xy-selection-border-default:1px dotted #c8c8dccc;--xy-controls-button-background-color-default:#2b2b2b;--xy-controls-button-background-color-hover-default:#3e3e3e;--xy-controls-button-color-default:#f8f8f8;--xy-controls-button-color-hover-default:#fff;--xy-controls-button-border-color-default:#5b5b5b;--xy-controls-box-shadow-default:0 0 2px 1px #00000014;--xy-edge-label-background-color-default:#141414;--xy-edge-label-color-default:#f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props,var(--xy-background-color,var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__pane{z-index:1}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width,var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke,var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width,var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{pointer-events:none;position:absolute;overflow:visible}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:.5s linear infinite dashdraw}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected,var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke,var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:.5s linear infinite dashdraw}svg.react-flow__connectionline{z-index:1001;position:absolute;overflow:visible}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{-webkit-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default;position:absolute}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:0 0;pointer-events:none}.react-flow__nodesselection-rect{pointer-events:all;cursor:grab;position:absolute}.react-flow__handle{pointer-events:none;background-color:var(--xy-handle-background-color,var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color,var(--xy-handle-border-color-default));border-radius:100%;width:6px;min-width:5px;height:6px;min-height:5px;position:absolute}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;bottom:0;left:50%;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{z-index:5;margin:15px;position:absolute}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px)translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px)translateY(-50%)}.react-flow__attribution{background:var(--xy-attribution-background-color,var(--xy-attribution-background-color-default));margin:0;padding:2px 3px;font-size:10px}.react-flow__attribution a{color:#999;text-decoration:none}@keyframes dashdraw{0%{stroke-dashoffset:10px}}.react-flow__edgelabel-renderer{pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__viewport-portal{-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__minimap{background:var(--xy-minimap-background-color-props,var(--xy-minimap-background-color,var(--xy-minimap-background-color-default)))}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var(--xy-minimap-mask-background-color-props,var(--xy-minimap-mask-background-color,var(--xy-minimap-mask-background-color-default)));stroke:var(--xy-minimap-mask-stroke-color-props,var(--xy-minimap-mask-stroke-color,var(--xy-minimap-mask-stroke-color-default)));stroke-width:var(--xy-minimap-mask-stroke-width-props,var(--xy-minimap-mask-stroke-width,var(--xy-minimap-mask-stroke-width-default)))}.react-flow__minimap-node{fill:var(--xy-minimap-node-background-color-props,var(--xy-minimap-node-background-color,var(--xy-minimap-node-background-color-default)));stroke:var(--xy-minimap-node-stroke-color-props,var(--xy-minimap-node-stroke-color,var(--xy-minimap-node-stroke-color-default)));stroke-width:var(--xy-minimap-node-stroke-width-props,var(--xy-minimap-node-stroke-width,var(--xy-minimap-node-stroke-width-default)))}.react-flow__background-pattern.dots{fill:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-dots-color-default)))}.react-flow__background-pattern.lines{stroke:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-lines-color-default)))}.react-flow__background-pattern.cross{stroke:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-cross-color-default)))}.react-flow__controls{box-shadow:var(--xy-controls-box-shadow,var(--xy-controls-box-shadow-default));flex-direction:column;display:flex}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{background:var(--xy-controls-button-background-color,var(--xy-controls-button-background-color-default));border:none;border-bottom:1px solid var(--xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default)));width:26px;height:26px;color:var(--xy-controls-button-color-props,var(--xy-controls-button-color,var(--xy-controls-button-color-default)));cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;padding:4px;display:flex}.react-flow__controls-button svg{fill:currentColor;width:100%;max-width:12px;max-height:12px}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{border-radius:var(--xy-node-border-radius,var(--xy-node-border-radius-default));width:150px;color:var(--xy-node-color,var(--xy-node-color-default));text-align:center;border:var(--xy-node-border,var(--xy-node-border-default));background-color:var(--xy-node-background-color,var(--xy-node-background-color-default));padding:10px;font-size:12px}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover,var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected,var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color,var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color,var(--xy-selection-background-color-default));border:var(--xy-selection-border,var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var(--xy-controls-button-background-color-hover-props,var(--xy-controls-button-background-color-hover,var(--xy-controls-button-background-color-hover-default)));color:var(--xy-controls-button-color-hover-props,var(--xy-controls-button-color-hover,var(--xy-controls-button-color-hover-default)))}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var(--xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default)))}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{background-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border:1px solid #fff;border-radius:1px;width:5px;height:5px;translate:-50% -50%}.react-flow__resize-control.handle.left{top:50%;left:0}.react-flow__resize-control.handle.right{top:50%;left:100%}.react-flow__resize-control.handle.top{top:0;left:50%}.react-flow__resize-control.handle.bottom{top:100%;left:50%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border-style:solid;border-width:0}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;height:100%;top:0;transform:translate(-50%)}.react-flow__resize-control.line.left{border-left-width:1px;left:0}.react-flow__resize-control.line.right{border-right-width:1px;left:100%}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{width:100%;height:1px;left:0;transform:translateY(-50%)}.react-flow__resize-control.line.top{border-top-width:1px;top:0}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color,var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color,var(--xy-edge-label-color-default))}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--page-gutter:clamp(24px, 7.4vw, 152px);--font-sans:var(--font-geist-sans), ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:var(--font-geist-mono), ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;--background:#080808;--foreground:#f2f2f2;--card:#0d0d0d;--card-foreground:var(--foreground);--popover:#111;--popover-foreground:var(--foreground);--primary:#f2f2f2;--primary-foreground:#080808;--secondary:#171717;--secondary-foreground:var(--foreground);--muted:#171717;--muted-foreground:#9b9b9b;--accent:#181818;--accent-foreground:var(--foreground);--control:#242424;--control-hover:#181818;--control-active:#070707;--control-border:#3a3a3a;--field:#090909;--canvas:#050505;--destructive:#ff5f57;--destructive-foreground:#fff;--border:#262626;--input:#383838;--ring:#60a5fa;--radius:8px;--bg:var(--background);--panel:var(--card);--panel-raised:var(--popover);--panel-soft:var(--secondary);--line:var(--border);--line-strong:var(--input);--ink:var(--foreground);--muted-2:#6f6f6f;--green:#43d08a;--green-soft:#43d08a2e;--blue:#60a5fa;--blue-soft:#60a5fa33;--red:#ff5f57;--red-soft:#ff5f572e;--amber:#f7c948;--amber-soft:#f7c94829;--text-shadow:0 1px 0 #00000059}html.light{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--background:#fff;--foreground:#171717;--card:#fff;--card-foreground:var(--foreground);--popover:#fafafa;--popover-foreground:var(--foreground);--primary:#171717;--primary-foreground:#fff;--secondary:#f5f5f5;--secondary-foreground:var(--foreground);--muted:#f5f5f5;--muted-foreground:#737373;--accent:#f5f5f5;--accent-foreground:var(--foreground);--control:#f5f5f5;--control-hover:#eee;--control-active:#fff;--control-border:#d4d4d4;--field:#fff;--canvas:#fff;--border:#e5e5e5;--input:#d4d4d4;--bg:var(--background);--panel:var(--card);--panel-raised:var(--popover);--panel-soft:var(--secondary);--line:var(--border);--line-strong:var(--input);--ink:var(--foreground);--muted-2:#8a8a8a;--text-shadow:none}*{box-sizing:border-box}html,body{background:var(--bg);min-height:100%;color:var(--ink);font-family:var(--font-sans);-webkit-tap-highlight-color:#f2f2f21a;margin:0}body{overflow-x:hidden}button,input,select,textarea{font:inherit}button{color:inherit;touch-action:manipulation}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,tr[role=button]:focus-visible{box-shadow:0 0 0 2px var(--blue);outline:0}h1,h2,h3,p{margin-top:0}code,time{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.compiler-shell{width:100%;min-height:100vh;padding-bottom:42px}.compiler-shell.run-canvas-mode,.compiler-shell.source-canvas-mode{height:100dvh;min-height:100dvh;padding-bottom:0;overflow:hidden}.run-canvas-mode .top-nav{position:relative}.content-shell{width:100%;padding:34px var(--page-gutter) 0;margin:0 auto}.run-canvas-shell,.method-canvas-shell{height:calc(100dvh - 77px);padding:18px 28px 0;overflow:hidden}.source-canvas-shell{height:calc(100dvh - 77px);padding:34px var(--page-gutter) 0;overflow:hidden}.detail-wide-shell{padding:18px 28px 0}.top-nav{z-index:40;border-bottom:1px solid var(--line);background:var(--bg);justify-content:space-between;align-items:center;gap:20px;min-height:78px;padding:16px 24px;display:flex;position:sticky;top:0}.brand-row,.nav-actions,.run-action-row{align-items:center;display:flex}.brand-row{gap:18px;min-width:0}.brand-link{color:var(--ink);letter-spacing:0;text-shadow:var(--text-shadow);flex:none;align-items:center;font-size:clamp(1.18rem,1.7vw,1.55rem);font-weight:780;line-height:1;text-decoration:none;display:inline-flex}.brand-link:hover{color:#fff}.brand-mark{border:1px solid var(--line-strong);object-fit:cover;border-radius:12px;width:48px;height:48px}.nav-divider{background:var(--line);width:1px;height:32px}.path-open-control{min-width:0;color:var(--muted-foreground);text-align:left;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:2px 14px;display:grid}.path-open-control:hover code,.path-open-control:focus-within code{color:var(--ink)}.path-open-copy{gap:2px;min-width:0;display:grid;overflow:hidden}.path-open-control.disabled code{color:var(--muted-foreground)}.path-open-control span{color:var(--muted-2);letter-spacing:.08em;text-transform:uppercase;font-size:.66rem;font-weight:850;line-height:1}.path-open-control code{min-width:0;color:var(--muted-foreground);text-overflow:ellipsis;white-space:nowrap;font-size:.82rem;font-weight:700;line-height:1.2;overflow:hidden}.path-open-action{opacity:0;pointer-events:none;transition:opacity .12s}.path-open-control:hover .path-open-action,.path-open-control:focus-within .path-open-action{opacity:1;pointer-events:auto}.local-path{max-width:min(680px,48vw)}.local-path .path-open-copy{align-items:baseline;gap:8px;display:flex}.local-path span{color:var(--muted-foreground);letter-spacing:0;text-transform:none;flex:none;font-size:.9rem;font-weight:520;line-height:1.1}.local-path span:after{content:":"}.local-path code{color:var(--muted-foreground);font-family:var(--font-sans);font-size:.9rem;font-weight:520}.nav-actions{flex:none;gap:10px}.theme-switcher{border:1px solid var(--control-border);background:var(--control);border-radius:8px;gap:2px;min-height:36px;padding:3px;display:inline-flex;box-shadow:inset 0 1px #ffffff0a}.theme-switcher button{width:30px;min-height:28px;color:var(--muted-foreground);cursor:pointer;background:0 0;border:0;border-radius:7px;justify-content:center;align-items:center;display:inline-flex}.theme-switcher button.active{background:var(--control-active);color:var(--ink)}.theme-switcher button:hover{color:var(--ink)}.health-link,.icon-button,.docs-link,.toolbar-button,.segmented-tabs,.detail-tabs,.status-badge{border:1px solid var(--line-strong);background:var(--panel-raised);box-shadow:inset 0 1px #ffffff0a}.health-link{min-height:36px;color:var(--ink);background:0 0;border-color:#0000;align-items:center;gap:9px;padding:0 12px;font-size:.88rem;font-weight:700;text-decoration:none;display:inline-flex}.icon-button,.docs-link,.toolbar-button,.preparation-action-button,.local-open-button{min-height:36px;color:var(--ink);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:7px;padding:0 13px;font-size:.84rem;font-weight:700;text-decoration:none;display:inline-flex}.toolbar-button:disabled,.preparation-action-button:disabled,.local-open-button:disabled{cursor:not-allowed;opacity:.55}.icon-button:hover,.docs-link:hover,.toolbar-button:hover,.preparation-action-button:hover,.local-open-button:hover,.segmented-tabs button:hover,.detail-tabs button:hover,.runs-table tr[role=button]:hover{background:var(--control-hover)}html.light .brand-link:hover{color:#000}html.light .theme-switcher button.active,html.light .segmented-tabs button.active,html.light .detail-tabs button.active{background:#fff;box-shadow:0 1px 2px #0000001a}html.light .icon-button:hover,html.light .docs-link:hover,html.light .toolbar-button:hover,html.light .preparation-action-button:hover,html.light .local-open-button:hover,html.light .segmented-tabs button:hover,html.light .detail-tabs button:hover,html.light .runs-table tr[role=button]:hover{background:#f5f5f5}.offline-panel{border:1px solid var(--line);background:var(--panel);border-radius:8px;margin-top:34px;padding:18px}.offline-panel p{margin-bottom:10px}.offline-panel code{color:var(--red);overflow-wrap:anywhere;display:block}.segmented-tabs,.detail-tabs{border-color:var(--control-border);background:var(--control);border-radius:8px;gap:4px;padding:4px;display:inline-flex}.segmented-tabs{justify-self:start;margin:0 0 24px}.segmented-tabs button,.detail-tabs button{min-height:34px;color:var(--muted-foreground);cursor:pointer;background:0 0;border:0;border-radius:7px;font-size:.88rem;font-weight:750}.segmented-tabs button{min-width:86px;padding:0 16px}.detail-tabs button{min-width:88px;padding:0 13px}.segmented-tabs button.active,.detail-tabs button.active{background:var(--control-active);color:var(--ink)}.run-workspace,.run-detail-page{gap:12px;display:grid}.run-list-head{align-items:end}.run-detail-page{grid-template-rows:auto minmax(0,1fr);height:100%;min-height:0}.compiler-workspace-grid,.compiler-workspace-grid.agent-panel-collapsed{display:block}.compiler-main-stack{min-width:0}.run-canvas-shell .compiler-main-stack,.method-canvas-shell .compiler-main-stack{height:100%;min-height:0}.source-canvas-shell .compiler-main-stack{grid-template-rows:auto minmax(0,1fr);height:100%;min-height:0;display:grid}.method-canvas-shell .source-layout{height:100%;min-height:0;overflow:hidden}.agent-chat-panel{z-index:90;border:1px solid var(--line);background:var(--panel);border-radius:8px;grid-template-rows:auto minmax(0,1fr) auto auto;gap:10px;width:min(420px,100vw - 24px);height:min(640px,100dvh - 96px);min-height:0;padding:16px;display:grid;position:fixed;bottom:88px;right:20px;overflow:hidden;box-shadow:0 24px 80px #00000085}.agent-panel-head,.proposal-title-row,.agent-head-actions,.proposal-actions{align-items:center;display:flex}.agent-panel-head,.proposal-title-row,.agent-head-actions{justify-content:space-between;gap:12px}.agent-head-actions{gap:8px}.agent-review-pill{border:1px solid var(--line-strong);background:var(--panel-raised);min-height:30px;color:var(--muted-foreground);white-space:nowrap;border-radius:999px;align-items:center;padding:0 10px;font-size:.76rem;font-weight:800;display:inline-flex}.agent-field span,.proposal-meta,.agent-empty{color:var(--muted-foreground);font-size:.78rem}.agent-title{align-items:center;gap:10px;min-width:0;display:flex}.agent-title svg{color:var(--green);flex:none}.agent-title-copy{gap:4px;min-width:0;display:grid}.agent-panel-head h2{color:var(--ink);letter-spacing:0;margin:0;font-size:.94rem;font-weight:800;line-height:1.1}.agent-status-label{min-width:0;color:var(--muted-foreground);letter-spacing:0;text-transform:uppercase;align-items:center;gap:6px;font-size:.74rem;font-weight:800;line-height:1;display:flex}.agent-executor-switcher{min-width:0;color:var(--muted-foreground);align-items:center;gap:6px;display:inline-flex}.agent-executor-switcher select{appearance:none;min-width:0;max-width:180px;height:30px;color:var(--muted-foreground);cursor:pointer;background:0 0;border:0;padding:0;font-size:.78rem;font-weight:800;line-height:1.1}.agent-executor-switcher select:disabled{opacity:1}.agent-executor-switcher svg{color:var(--muted-foreground);flex:none}.agent-executor-switcher svg:last-child{pointer-events:none;transform:rotate(90deg)}.agent-status-dot{background:var(--muted-2);border-radius:999px;width:8px;height:8px}.agent-status-dot.status-ok{background:var(--green)}.agent-status-dot.status-fail{background:var(--red)}.agent-collapse-button{border:1px solid var(--line);color:var(--muted-foreground);cursor:pointer;background:#0a0a0a;border-radius:7px;justify-content:center;align-items:center;width:32px;height:32px;display:inline-flex}.agent-launcher{z-index:91;border:1px solid var(--line-strong);background:var(--panel-raised);width:48px;height:48px;color:var(--green);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;display:inline-flex;position:fixed;bottom:20px;right:20px;box-shadow:0 18px 48px #0000006b}.agent-collapse-button:hover,.agent-launcher:hover{color:var(--green);background:#171717}.agent-launcher.open{background:var(--panel-raised);color:var(--green)}.rail-status-dot{background:currentColor;border-radius:999px;width:7px;height:7px;position:absolute;bottom:6px;right:6px}.agent-settings{border:1px solid var(--line);background:var(--panel-soft);border-radius:8px;min-width:0;padding:8px 10px}.agent-settings summary{color:var(--muted-foreground);cursor:pointer;justify-content:space-between;align-items:center;gap:8px;font-size:.78rem;line-height:1.35;display:flex}.agent-settings summary::-webkit-details-marker{display:none}.agent-settings[open] summary svg{transform:rotate(90deg)}.agent-control-grid{grid-template-columns:1fr;gap:8px;padding-top:10px;display:grid}.agent-field{gap:6px;display:grid}.agent-field select,.agent-compose textarea{border:1px solid var(--line-strong);background:var(--field);width:100%;color:var(--ink);border-radius:8px}.agent-field select{height:38px;padding:0 12px}.chat-transcript{scrollbar-gutter:stable;scrollbar-color:var(--line-strong) transparent;scrollbar-width:thin;align-content:start;gap:12px;min-height:0;padding:2px 2px 8px;display:grid;overflow-y:auto}.chat-transcript::-webkit-scrollbar{width:8px}.chat-transcript::-webkit-scrollbar-track{background:0 0}.chat-transcript::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:999px}.chat-turn{gap:8px;display:grid}.chat-turn.pending{opacity:1}.chat-message{gap:9px;min-width:0;display:grid}.chat-message p{border:1px solid var(--line);width:fit-content;max-width:100%;color:var(--ink);overflow-wrap:anywhere;border-radius:8px;margin:0;padding:8px 10px;font-size:.82rem;line-height:1.42}.chat-message.user{justify-items:end}.chat-message.user p{border-color:var(--line-strong);color:#dedede;background:0 0}.chat-message.assistant p{background:var(--field)}.chat-message.assistant .planning-copy{color:var(--muted-foreground);align-items:center;gap:8px;display:inline-flex}.command-preview{border:1px solid var(--line);background:var(--canvas);border-radius:8px;gap:5px;width:100%;padding:9px 10px;display:grid}.command-preview span{color:var(--muted-2);text-transform:uppercase;font-size:.68rem;font-weight:850;line-height:1}.command-preview code{color:#dedede;font-family:var(--font-mono);overflow-wrap:anywhere;font-size:.78rem;line-height:1.4}.proposal-actions button{border:1px solid var(--line-strong);background:var(--panel-raised);min-height:32px;color:var(--ink);cursor:pointer;border-radius:7px;flex:1;justify-content:center;align-items:center;gap:6px;font-size:.78rem;font-weight:750;display:inline-flex}.proposal-actions button:hover{background:#181818}.agent-suggestions{border-top:1px solid var(--line);scrollbar-width:none;gap:8px;min-width:0;padding:12px 1px 2px;display:flex;overflow-x:auto}.agent-suggestions::-webkit-scrollbar{display:none}.agent-suggestions button{border:1px solid var(--line-strong);min-height:32px;color:var(--ink);cursor:pointer;background:0 0;border-radius:999px;flex:none;padding:0 11px;font-size:.78rem;font-weight:800}.agent-suggestions button:hover{background:var(--control-hover)}.agent-compose{align-items:stretch;gap:8px;display:grid}.agent-input-shell{border:1px solid var(--line-strong);background:var(--field);border-radius:8px;grid-template-rows:minmax(64px,auto) auto;align-items:stretch;gap:10px;min-width:0;padding:12px;display:grid}.agent-input-shell:focus-within{border-color:var(--blue);box-shadow:0 0 0 2px var(--blue)}.agent-compose textarea{resize:none;background:0 0;border:0;min-height:64px;max-height:130px;padding:0;line-height:1.4}.agent-compose textarea:focus-visible{box-shadow:none}.agent-compose-footer{justify-content:space-between;align-items:center;gap:10px;min-width:0;display:flex}.agent-attached-values{border:1px solid var(--line);background:var(--panel-soft);min-width:0;color:var(--muted-foreground);border-radius:8px;justify-content:space-between;align-items:center;gap:8px;padding:7px 9px;font-size:.76rem;font-weight:850;display:flex}.agent-attached-values button{border:1px solid var(--line);min-height:24px;color:var(--ink);cursor:pointer;background:0 0;border-radius:6px;padding:0 8px;font-size:.72rem;font-weight:800}.send-button{border:1px solid var(--line-strong);background:var(--panel-raised);min-height:36px;color:var(--ink);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:7px;padding:0 12px;font-weight:850;display:inline-flex}.send-button:disabled{cursor:not-allowed;opacity:.48}.agent-error{color:var(--red);margin:0;font-size:.78rem;line-height:1.4}.proposal-card{border:1px solid var(--line);background:#0a0a0a;border-radius:8px;gap:10px;padding:12px;display:grid}.proposal-card.compact{background:#080808}.chat-turn.historical{opacity:.78}.proposal-card.historical{background:#070707;gap:8px}.proposal-card.actionable{border-color:var(--line-strong);box-shadow:inset 0 1px #ffffff0a}.proposal-skeleton{overflow:hidden}.skeleton-line{background:linear-gradient(90deg,#ffffff0f,#ffffff21,#ffffff0f) 0 0/180% 100%;border-radius:999px;width:68%;height:10px;animation:1.2s ease-in-out infinite skeleton-pulse}.skeleton-line.wide{width:92%}.spin{animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@keyframes skeleton-pulse{0%{background-position:100% 0}to{background-position:-100% 0}}.proposal-title-row strong{overflow-wrap:anywhere;min-width:0;font-size:.9rem;line-height:1.32}.proposal-card p{color:var(--muted-foreground);margin:0;font-size:.82rem;line-height:1.45}.proposal-meta{flex-wrap:wrap;gap:8px;display:flex}.proposal-meta span{border:1px solid var(--line);background:var(--panel-raised);border-radius:999px;padding:2px 7px}.proposal-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;display:grid}.proposal-detail-grid div{gap:3px;min-width:0;display:grid}.proposal-detail-grid dt{color:var(--muted-2);text-transform:uppercase;font-size:.68rem;font-weight:850;line-height:1}.proposal-detail-grid dd{color:var(--ink);overflow-wrap:anywhere;margin:0;font-size:.78rem;line-height:1.35}.proposal-detail-grid dd.mono{font-family:var(--font-mono);font-size:.72rem}.proposal-card.compact .proposal-detail-grid{grid-template-columns:1fr}.proposal-card.compact .proposal-detail-grid div{border:1px solid var(--line);background:var(--canvas);border-radius:8px;padding:8px}.proposal-card.compact .proposal-detail-grid dd{scrollbar-width:thin;max-height:92px;overflow:auto}.proposal-actions{gap:8px}.proposal-run-link{border:1px solid var(--line-strong);background:var(--panel-raised);min-height:32px;color:var(--ink);cursor:pointer;border-radius:7px;justify-content:center;align-items:center;gap:6px;font-size:.78rem;font-weight:800;display:inline-flex}.proposal-run-link:hover{background:var(--control-hover)}.payload-details{border-top:1px solid var(--line);padding-top:8px}.payload-details summary{color:var(--muted-foreground);cursor:pointer;font-size:.76rem;font-weight:800}.breadcrumb-row{color:var(--muted-foreground);align-items:center;gap:10px;font-size:.86rem;display:flex}.breadcrumb-row button{color:var(--ink);cursor:pointer;background:0 0;border:0;font-weight:800}.breadcrumb-row code{color:var(--muted-foreground);overflow-wrap:anywhere}.table-frame{border:1px solid var(--line);background:var(--panel);border-radius:8px;overflow:auto}.runs-table{border-collapse:collapse;width:100%;min-width:1120px}.runs-table th,.runs-table td{border-bottom:1px solid var(--line);text-align:left;vertical-align:middle;padding:13px 18px}.runs-table th{z-index:1;background:var(--panel);color:var(--muted-foreground);font-size:.8rem;font-weight:800;position:sticky;top:0}.runs-table td{color:var(--ink);font-size:.9rem}.runs-table tr:last-child td{border-bottom:0}.runs-table code{color:#d6d6d6;overflow-wrap:anywhere;font-size:.78rem}.runs-table time,.runs-table td span{color:var(--muted-foreground)}.run-history-table th:first-child,.run-history-table td:first-child{min-width:280px}.run-history-table th:nth-child(2),.run-history-table td:nth-child(2){min-width:220px}.run-history-table th:nth-child(5),.run-history-table td:nth-child(5),.run-history-table th:nth-child(6),.run-history-table td:nth-child(6){min-width:150px}.run-name-cell{gap:5px;min-width:0;display:grid}.run-name-cell strong,.run-name-cell span{overflow-wrap:anywhere}.run-name-cell strong{font-size:.95rem}.run-name-cell span{color:var(--muted-foreground);font-size:.8rem}.empty-table{min-height:112px;color:var(--muted-foreground);text-align:center;place-items:center;gap:8px;padding:22px;display:grid}.empty-table strong{color:var(--ink);font-size:1rem}.detail-panel,.run-header-card,.empty-detail{border:1px solid var(--line);background:var(--panel);border-radius:8px}.run-detail{grid-template-rows:auto auto minmax(0,1fr);gap:14px;min-width:0;height:100%;min-height:0;display:grid;overflow:hidden}.run-header-card{gap:22px;min-width:0;padding:18px;display:grid}.run-detail>.detail-panel{min-height:0;overflow:auto}.method-trace-frame,.method-events-frame,.run-readiness-frame{border:1px solid var(--line);background:var(--canvas);border-radius:8px;min-width:0;min-height:0}.method-trace-frame{height:100%;overflow:hidden}.native-trace-panel{background:var(--canvas);grid-template-rows:auto minmax(0,1fr);gap:10px;height:100%;min-height:0;padding:12px;display:grid}.native-trace-head{border:1px solid var(--line);background:var(--panel);border-radius:8px;justify-content:space-between;align-items:center;gap:16px;min-width:0;padding:10px 12px;display:flex}.native-trace-head>div{gap:3px;min-width:0;display:grid}.native-trace-head strong{color:var(--ink);font-size:.9rem}.native-trace-head span{color:var(--muted-foreground);font-size:.78rem}.native-trace-list{scrollbar-color:var(--line-strong) transparent;scrollbar-width:thin;align-content:start;gap:8px;min-height:0;display:grid;overflow:auto}.native-trace-row{border:1px solid var(--line);background:var(--panel);border-radius:8px;grid-template-columns:10px minmax(0,1fr) auto;align-items:start;gap:10px;min-width:0;padding:10px 12px;display:grid}.native-trace-row .status-dot{margin-top:5px}.native-trace-row div{gap:3px;min-width:0;display:grid}.native-trace-row strong{color:var(--ink);font-size:.84rem}.native-trace-row span,.native-trace-row em{color:var(--muted-foreground);font-size:.76rem;font-style:normal}.native-trace-row code{border:1px solid var(--line);background:var(--field);min-width:0;color:var(--muted-foreground);font-family:var(--font-mono);overflow-wrap:anywhere;border-radius:6px;margin-top:5px;padding:7px 9px;font-size:.72rem;display:block}.method-events-frame{height:100%;overflow:hidden}.eyebrow{color:var(--muted-foreground);letter-spacing:.12em;text-transform:uppercase;margin:0 0 6px;font-size:.72rem;font-weight:850}.empty-state{min-height:116px;color:var(--muted-foreground);text-align:center;place-items:center;gap:8px;padding:18px;display:grid}.empty-state strong{color:var(--ink)}.empty-detail{color:var(--muted-foreground);align-content:center;justify-items:center}.empty-detail strong{color:var(--ink)}.run-overview,.run-metadata,.panel-title{justify-content:space-between;align-items:start;gap:18px;display:flex}.run-overview h1{margin:0;font-size:1.25rem;line-height:1.25}.run-overview p,.metric-box p,.compact-list p,.failure-text,.muted{color:var(--muted-foreground);font-size:.86rem;line-height:1.45}.run-overview p,.compact-list p{margin-bottom:0}.run-action-row{gap:10px}.table-action-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.run-metadata{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));padding:8px 0 4px;display:grid}.run-context-panel{border-top:1px solid var(--line);grid-template-columns:minmax(300px,.62fr) minmax(0,1.38fr);gap:16px;min-width:0;padding-top:16px;display:grid}.run-context-copy{align-content:start;gap:8px;min-width:0;display:grid}.run-context-copy span{color:var(--muted-foreground);letter-spacing:.08em;text-transform:uppercase;font-size:.72rem;font-weight:850}.run-context-copy p{color:var(--ink);margin:0;font-size:.86rem;line-height:1.45}.run-context-metrics{grid-template-columns:repeat(5,minmax(112px,1fr))}.run-readiness-frame{align-content:start;height:100%;overflow:auto}.run-readiness-metrics{grid-template-columns:repeat(5,minmax(120px,1fr))}.readiness-check-section{gap:10px;min-width:0;display:grid}.meta-item{gap:6px;min-width:0;display:grid}.meta-item span{color:var(--muted-foreground);font-size:.75rem;font-weight:700}.meta-item strong,.meta-item code{min-width:0;color:var(--ink);overflow-wrap:anywhere;font-size:.8rem}.failure-text{color:var(--red);margin:0}.metric-box{border:1px solid var(--line);background:var(--panel-soft);border-radius:8px;min-width:0;min-height:76px;padding:10px 12px}.metric-box .metric-label{color:var(--muted-foreground);text-transform:uppercase;margin:0 0 5px;font-size:.72rem;font-weight:800;display:block}.check-stack{gap:8px;display:grid}.check-stack article,.compact-list article{border-top:1px solid var(--line);grid-template-columns:72px minmax(0,1fr);align-items:start;gap:12px;min-width:0;padding:10px 0;display:grid}.check-stack article span{text-transform:uppercase;font-size:.72rem;font-weight:850}.check-stack article p{color:var(--ink);overflow-wrap:anywhere;margin:0;font-size:.84rem;line-height:1.45}.method-canvas{border:1px solid var(--line);background-color:#050505;background-image:radial-gradient(circle,#fff3 1px,#0000 1px),none;background-position:0 0,0 0;background-repeat:repeat,repeat;background-size:28px 28px;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;border-radius:8px;min-height:560px;position:relative;overflow:auto}.canvas-legend{z-index:2;border:1px solid var(--line);width:230px;color:var(--muted-foreground);background:#0a0a0aeb;border-radius:8px;gap:9px;margin:16px;padding:12px;font-size:.78rem;display:grid;position:sticky;top:16px;left:16px}.canvas-legend span{align-items:center;gap:8px;display:flex}.legend-dot{border-radius:99px;width:10px;height:10px;display:inline-block}.legend-dot.start{background:var(--blue)}.legend-dot.stage{background:var(--green)}.legend-line{background:var(--line-strong);width:22px;height:2px;display:inline-block}.graph-stack{justify-items:center;min-width:820px;padding:4px 24px 44px;display:grid}.graph-step{justify-items:center;display:grid}.graph-connector{background:var(--line-strong);width:2px;height:84px;display:block}.graph-node{background:var(--panel-raised);width:min(440px,76vw);min-height:86px;color:var(--green);text-align:center;border:1px solid;border-radius:8px;justify-items:center;gap:7px;padding:14px 18px;display:grid;box-shadow:0 18px 40px #00000047}.graph-node.start,.graph-node.end{color:var(--blue);background:#102033}.graph-node strong{color:var(--ink);overflow-wrap:anywhere;font-size:1rem;line-height:1.25}.graph-node p{color:var(--muted-foreground);margin:0;font-size:.78rem;line-height:1.35}.node-icon{border:2px solid;border-radius:99px;width:18px;height:18px;display:block}.node-icon.stage{border-radius:5px}.detail-panel{gap:16px;padding:18px;display:grid}.evidence-stack{border:1px solid var(--line);background:var(--panel-raised);border-radius:8px;gap:12px;min-width:0;padding:12px;display:grid}.panel-title h2{margin:0;font-size:1.03rem}.panel-title span{color:var(--muted-foreground);font-size:.82rem}.metric-grid{grid-template-columns:repeat(auto-fit,minmax(135px,1fr));gap:10px;display:grid}.metric-box strong{color:var(--ink);overflow-wrap:anywhere;font-size:1rem;line-height:1.22;display:block}.metric-box p{margin:5px 0 0}.metric-box .status-badge{min-height:28px}.run-context-metrics .metric-box p{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.local-open-button{border:1px solid var(--control-border);background:var(--panel-raised);min-height:36px;color:var(--ink);cursor:pointer;white-space:nowrap;border-radius:8px;justify-content:center;align-items:center;gap:7px;padding:0 13px;font-size:.84rem;font-weight:800;line-height:1;text-decoration:none;display:inline-flex}.local-open-button:hover{border-color:var(--line-strong);background:var(--control-hover)}.local-open-button.primary{background:var(--green-soft);min-height:40px;color:var(--green);border-color:#43d08a70;padding:0 14px;box-shadow:inset 0 1px #ffffff0d}.local-open-button.primary:hover{background:#43d08a3d}.local-open-button.compact{border-radius:7px;min-height:26px;padding-inline:8px;font-size:.68rem;line-height:1}.local-open-button.failed{color:var(--red)}.tab-grid{grid-template-columns:minmax(0,1.4fr) minmax(320px,.6fr);align-items:start;gap:18px;display:grid}.compact-list{gap:2px;display:grid}.compact-list article{grid-template-columns:auto minmax(0,1fr)}.compact-list strong,.compact-list p{overflow-wrap:anywhere}.method-layout{grid-template-columns:minmax(330px,.42fr) minmax(0,1fr);align-items:start;gap:18px;display:grid}.method-list-layout{gap:18px;display:grid}.page-head{justify-content:space-between;align-items:end;gap:18px;min-width:0;display:flex}.page-head>div{gap:10px;min-width:0;display:grid}.page-head h1{overflow-wrap:anywhere;margin:0;font-size:1.4rem;line-height:1.15}.page-head p{color:var(--muted-foreground);font-family:var(--font-mono);overflow-wrap:anywhere;margin:0;font-size:.84rem}.page-path-control,.section-path-control{background:0 0;border:1px solid #0000;border-radius:8px;width:min(760px,100%);padding:7px 9px}.page-path-control:hover,.page-path-control:focus-within,.section-path-control:hover,.section-path-control:focus-within{border-color:var(--line);background:var(--field)}.page-path-control code,.section-path-control code{font-family:var(--font-mono);font-size:.84rem}.page-head>.toolbar-button,.page-head>.preparation-action-button{flex:none}.method-table-frame{max-height:calc(100vh - 220px)}.method-table-frame .runs-table{min-width:560px}.method-table-wide .runs-table{min-width:1100px}.method-table th:first-child,.method-table td:first-child{min-width:420px}.method-table th:nth-child(2),.method-table td:nth-child(2){min-width:180px}.method-table th:nth-child(4),.method-table td:nth-child(4){min-width:240px}.method-runs-panel{gap:12px;min-width:0;display:grid}.method-runs-note{border:1px solid var(--line);background:var(--panel-soft);border-radius:8px;gap:4px;min-width:0;padding:12px 14px;display:grid}.method-runs-note strong{color:var(--ink);font-size:.86rem;line-height:1.25}.method-runs-note span{color:var(--muted-foreground);font-size:.8rem;line-height:1.45}.row-action-menu{display:inline-flex;position:relative}.row-action-trigger{width:34px;height:30px;color:var(--muted-foreground);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:7px;justify-content:center;align-items:center;display:inline-flex}.row-action-trigger.active,.row-action-trigger:hover{border-color:var(--control-border);background:var(--control-hover);color:var(--ink)}.row-action-menu-content{z-index:80;border:1px solid var(--line-strong);background:var(--panel-raised);border-radius:8px;min-width:150px;max-height:min(260px,100dvh - 24px);padding:5px;display:grid;position:fixed;overflow:auto;box-shadow:0 16px 42px #00000061}.row-action-menu-content button{min-height:32px;color:var(--ink);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:6px;padding:0 10px;font-size:.78rem;font-weight:760}.row-action-menu-content button:hover{background:var(--control-hover)}.row-action-menu-content button.destructive{color:var(--red)}.action-dialog-backdrop{z-index:120;overflow-anchor:none;background:#00000094;place-items:center;padding:24px;display:grid;position:fixed;inset:0;overflow:auto}.action-dialog{overflow-anchor:none;border:1px solid var(--line-strong);background:var(--panel-raised);width:min(760px,100vw - 32px);max-height:min(820px,100dvh - 48px);font-family:var(--font-sans);border-radius:14px;gap:0;display:grid;overflow:auto;box-shadow:0 24px 80px #0000007a}.action-dialog-head,.action-dialog-actions{justify-content:space-between;align-items:flex-start;gap:12px;min-width:0;display:flex}.action-dialog-head{border-bottom:1px solid var(--line);background:radial-gradient(circle at 16% 0%, #ffffff0f, transparent 34%), var(--panel-raised);padding:20px 22px 18px}.action-dialog-head h2{margin:0 0 6px;font-size:1.12rem;line-height:1.2}.action-dialog-head p{color:var(--muted-foreground);overflow-wrap:anywhere;margin:0;font-size:.84rem;line-height:1.45}.action-form{gap:0;display:grid}.action-form-summary{border-bottom:1px solid var(--line);background:var(--panel-soft);grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;min-width:0;margin:0;padding:16px 22px;display:grid}@supports (color:color-mix(in lab, red, red)){.action-form-summary{background:color-mix(in srgb, var(--panel-soft) 62%, transparent)}}.action-form-summary>div{border:1px solid var(--line);background:var(--field);border-radius:10px;min-width:0;padding:10px 11px}.action-form-summary dt{color:var(--muted-foreground);letter-spacing:.08em;text-transform:uppercase;margin:0 0 5px;font-size:.68rem;font-weight:900}.action-form-summary dd{color:var(--ink);overflow-wrap:anywhere;margin:0;font-size:.9rem;font-weight:760;line-height:1.35}.action-form-field{border-bottom:1px solid var(--line);gap:6px;min-width:0;padding:16px 22px;display:grid}.action-form-field>span{color:var(--ink);font-size:.88rem;font-weight:800}.action-form-field p{color:var(--muted-foreground);margin:-2px 0 0;font-size:.8rem;line-height:1.4}.action-form-field input,.action-form-field select,.action-form-field textarea{border:1px solid var(--line-strong);background:var(--field);width:100%;min-width:0;color:var(--ink);font-family:var(--font-sans);border-radius:8px;font-size:.9rem}.action-form-field input,.action-form-field select{height:38px;padding:0 11px}.action-form-field select{appearance:none;cursor:pointer;background-image:linear-gradient(45deg, transparent 50%, var(--muted-foreground) 50%), linear-gradient(135deg, var(--muted-foreground) 50%, transparent 50%);background-position:calc(100% - 18px),calc(100% - 12px);background-repeat:no-repeat;background-size:6px 6px;padding-right:38px}.action-form-field select::-ms-expand{display:none}.action-form-field textarea{resize:vertical;min-height:92px;padding:10px 11px;line-height:1.4}.action-form-readonly{border:1px solid var(--line);background:var(--panel-soft);border-radius:8px;min-width:0;padding:10px 11px}.action-form-readonly code{color:var(--muted-foreground);font-family:var(--font-sans);overflow-wrap:anywhere;font-size:.86rem;font-weight:560;line-height:1.35;display:block}.action-form-field [aria-invalid=true]{border-color:var(--red)}.action-form-field strong{color:var(--red);font-size:.75rem;line-height:1.35}.action-advanced-fields{border-bottom:1px solid var(--line);min-width:0}.action-advanced-fields summary{color:var(--muted-foreground);cursor:pointer;padding:14px 22px;font-size:.82rem;font-weight:850;list-style:none}.action-advanced-fields summary::-webkit-details-marker{display:none}.action-advanced-fields summary:before{content:"›";color:var(--muted-2);margin-right:8px;transition:transform .12s;display:inline-block}.action-advanced-fields[open] summary:before{transform:rotate(90deg)}.action-advanced-fields>div{border-top:1px solid var(--line);background:var(--panel-soft);display:grid}.action-advanced-fields .action-form-field{background:0 0;padding-block:14px}.action-form-hidden-errors{border:1px solid var(--red);background:var(--red-soft);border-radius:8px;gap:4px;margin:14px 22px 0;padding:10px 11px;display:grid}.action-form-hidden-errors strong{color:var(--red);font-size:.76rem;line-height:1.35}.action-form-service-error{border:1px solid var(--red);background:var(--red-soft);color:var(--red);overflow-wrap:anywhere;border-radius:8px;margin:14px 22px 0;padding:10px 11px;font-size:.82rem;font-weight:760;line-height:1.4}.action-values-preview{border:1px solid var(--line);background:var(--panel-soft);border-width:1px 0 0;border-radius:0;gap:8px;min-width:0;margin:0;padding:14px 22px;display:grid}.action-values-preview>span{color:var(--muted-foreground);letter-spacing:.08em;text-transform:uppercase;font-size:.7rem;font-weight:900}.action-values-preview>div{max-height:220px;overflow:auto}.action-dialog-actions{z-index:1;border-top:1px solid var(--line);background:var(--panel-raised);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);justify-content:flex-end;align-items:center;padding:14px 22px;position:sticky;bottom:0}.method-detail{gap:18px;min-width:0;display:grid}.method-detail-canvas-mode{flex-direction:column;height:calc(100dvh - 112px);min-height:0;display:flex;overflow:hidden}.method-canvas-shell .method-detail-canvas-mode{height:100%}.method-canvas-shell .context-workspace-canvas-mode{flex-direction:column;height:100%;min-height:0;display:flex;overflow:hidden}.method-detail-canvas-mode>.source-tab-panel,.context-workspace-canvas-mode>.source-tab-panel{height:100%;min-height:0;overflow:hidden}.method-detail-head{border:1px solid var(--line);background:var(--panel);border-radius:8px;justify-content:space-between;align-items:flex-start;gap:28px;min-width:0;padding:22px;display:flex}.method-detail-head>div:first-child{gap:9px;min-width:0;display:grid}.method-detail-head h1{overflow-wrap:anywhere;margin:0;font-size:1.35rem;line-height:1.16}.method-detail-head p{max-width:820px;color:var(--muted-foreground);overflow-wrap:anywhere;margin:0;font-size:.86rem;line-height:1.42}.method-detail-head code{color:var(--muted-foreground);overflow-wrap:anywhere;font-size:.82rem}.method-detail-graph{border:1px solid var(--line);background:#050505;border-radius:8px;grid-template-rows:minmax(0,1fr);min-width:0;height:calc(100vh - 380px);min-height:520px;display:grid;position:relative;overflow:hidden}.method-detail-canvas-mode .method-detail-graph,.context-workspace-canvas-mode>.method-detail-graph{flex:auto;height:auto;min-height:0}.method-detail-graph>.method-graph-layout{height:100%;min-height:0}.close-button{width:34px;height:34px;color:var(--muted-foreground);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:7px;justify-content:center;align-items:center;display:inline-flex}.close-button:hover{border-color:var(--control-border);background:var(--control-hover);color:var(--ink)}.method-graph-layout{grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1fr);min-width:0;height:100%;min-height:0;max-height:100%;display:grid;overflow:hidden}.method-graph-layout.has-inspector{grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,2fr) minmax(340px,.72fr);align-items:stretch}.method-graph-layout.has-inspector>.method-flow-canvas,.method-graph-layout.has-inspector>.method-stage-inspector{height:100%;min-height:0;max-height:100%}.method-flow-canvas{background:#050505;min-width:0;height:100%;min-height:0;position:relative;overflow:hidden}.method-flow-canvas .react-flow{background:#050505}.method-flow-canvas .react-flow__node{font-family:inherit}.method-flow-canvas .react-flow__handle{background:#050505;border:2px solid #d4d4d4;width:10px;height:10px}.method-flow-canvas .react-flow__edge-path{stroke-linecap:round}.method-flow-canvas .react-flow__controls,.method-flow-canvas .react-flow__minimap{border:1px solid var(--line);background:#0a0a0ae0;border-radius:8px;overflow:hidden;box-shadow:0 14px 34px #00000059}.method-flow-canvas .react-flow__controls-button{border-bottom:1px solid var(--line);color:var(--ink);background:#0b0b0b}.method-flow-canvas .react-flow__controls-button:hover{background:#181818}.method-flow-canvas .react-flow__minimap{background:#090909}.method-flow-legend{border:1px solid var(--line);min-width:210px;color:var(--muted-foreground);background:#0a0a0aeb;border-radius:8px;gap:9px;padding:12px;font-size:.78rem;display:grid}.method-flow-legend span{align-items:center;gap:8px;display:flex}.method-stage-inspector{overscroll-behavior:contain;border-left:1px solid var(--line);background:var(--panel);scrollbar-gutter:stable;scrollbar-color:#5c5c5c #111;scrollbar-width:auto;align-content:start;align-self:stretch;gap:12px;height:100%;min-height:0;max-height:100%;padding:18px 18px 76px;display:grid;overflow:hidden scroll}.method-stage-inspector::-webkit-scrollbar{width:12px}.method-stage-inspector::-webkit-scrollbar-track{border-left:1px solid var(--line);background:#111}.method-stage-inspector::-webkit-scrollbar-thumb{background:#5c5c5c;border:3px solid #111;border-radius:999px}.method-package-inspector{gap:14px}.method-stage-inspector .close-button{justify-self:end;width:auto;padding:0 10px;font-size:.74rem;font-weight:800}.method-stage-inspector h2,.method-stage-inspector h3,.method-stage-inspector p{margin:0}.method-stage-inspector h2{color:var(--ink);font-size:1.02rem;line-height:1.25}.method-stage-inspector h3{color:var(--muted-foreground);letter-spacing:.04em;text-transform:uppercase;font-size:.72rem;font-weight:850}.method-stage-inspector p{color:var(--muted-foreground);font-size:.8rem;line-height:1.45}.stage-drawer-meta{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.stage-drawer-section{border-top:1px solid var(--line);gap:6px;min-width:0;padding-top:10px;display:grid}.method-file-tree{gap:7px;min-width:0;display:grid}.method-file-row{border:1px solid var(--line);background:var(--panel-raised);border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;min-width:0;padding:8px;display:grid}.method-file-main{min-width:0;color:inherit;text-align:left;background:0 0;border:0;align-items:center;gap:9px;padding:0;display:flex}button.method-file-main{cursor:pointer}button.method-file-main:hover strong{color:var(--ink)}.method-file-main svg{color:var(--muted-foreground);flex:none}.method-file-main>div{gap:2px;min-width:0;display:grid}.method-file-main strong,.method-file-main span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.method-file-main strong{color:var(--ink);font-size:.8rem;line-height:1.2}.method-file-main span{color:var(--muted-foreground);font-family:var(--font-mono);font-size:.68rem;line-height:1.25}.method-file-row .local-open-button{min-height:30px}.flow-node-label{text-align:center;place-items:center;gap:6px;min-width:0;padding:8px 10px;display:grid}.flow-node-label strong{color:var(--ink);overflow-wrap:anywhere;font-size:1rem;line-height:1.25}.flow-node-label span,.flow-node-label em{color:var(--muted-foreground);overflow-wrap:anywhere;font-size:.78rem;font-style:normal;line-height:1.35}.source-home-layout{grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr);align-items:start;gap:16px;min-width:0;display:grid}.portable-context-layout{grid-template-columns:minmax(0,1fr)}.source-home-side{gap:16px;min-width:0;display:grid}.source-home-panel{border:1px solid var(--line);background:var(--panel);border-radius:8px;gap:14px;min-width:0;padding:14px;display:grid}.source-home-panel .file-explorer{background:0 0;border:0;padding:0}.source-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.portable-workspace-panel .source-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.source-action-group{flex-wrap:wrap;justify-content:flex-end;gap:8px;width:max-content;max-width:100%;display:inline-flex}.source-action-group .preparation-action-button{text-align:center;min-height:38px}.source-action-group .preparation-action-button:hover{border-color:var(--control-border)}.source-folder-view{grid-template-rows:auto minmax(0,1fr);height:100%;min-height:0;overflow:hidden}.source-folder-view .workspace-home-grid{height:100%;min-height:0;overflow:hidden}.source-folder-view .workspace-source-root{grid-template-rows:auto auto minmax(0,1fr);height:100%;min-height:0;overflow:hidden}.source-folder-view .workspace-source-root.empty-source-root{height:auto}.source-folder-view .workspace-source-root .file-explorer{height:100%;max-height:none}.source-folder-view .source-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.file-explorer{border:1px solid var(--line);background:var(--panel-raised);min-width:0;max-height:min(58vh,640px);font-family:var(--font-mono);scrollbar-color:var(--line-strong) transparent;scrollbar-width:thin;border-radius:8px;overflow:auto}.file-explorer-head,.file-explorer-root,.file-explorer-row{min-width:0}.file-explorer-head{z-index:1;border-bottom:1px solid var(--line);background:var(--panel-raised);justify-content:space-between;align-items:center;gap:12px;min-height:34px;padding:8px 10px;display:flex;position:sticky;top:0}.file-explorer-head span{color:var(--ink);font-family:var(--font-sans);font-size:.78rem;font-weight:850}.file-explorer-head em{color:var(--muted-foreground);white-space:nowrap;font-size:.68rem;font-style:normal}.file-explorer-root,.file-explorer-row{align-items:center;gap:7px;display:grid}.file-explorer-root{border-bottom:1px solid var(--line);background:0 0;grid-template-columns:16px minmax(0,1fr) auto;min-height:38px;padding:7px 10px}.file-explorer-items{gap:1px;padding:5px 6px 7px;display:grid}.file-explorer-row{min-height:30px;color:var(--muted-foreground);padding-block:4px;background:0 0;border:1px solid #0000;border-radius:6px;grid-template-columns:16px 16px minmax(0,1fr) auto;padding-right:7px}.file-explorer-row:hover,.file-explorer-row:focus-within{border-color:var(--line);background:var(--field)}.file-explorer-row.folder{color:var(--ink)}.file-explorer-root svg,.file-explorer-row svg{color:var(--muted-foreground);flex:none}.file-explorer-disclosure,.file-explorer-label{color:inherit;cursor:pointer;background:0 0;border:0}.file-explorer-disclosure{border-radius:4px;place-items:center;width:16px;height:16px;padding:0;display:grid}.file-explorer-disclosure:hover{background:var(--control-hover)}.file-explorer-disclosure svg{transition:transform .12s}.file-explorer-disclosure.expanded svg{transform:rotate(90deg)}.file-explorer-spacer{width:16px;height:16px}.file-explorer-root>div,.file-explorer-label,.file-explorer-row>div:not(.file-explorer-actions){text-align:left;gap:1px;min-width:0;display:grid}.file-explorer-label{padding:0}.file-explorer-root strong,.file-explorer-label strong,.file-explorer-row strong{min-width:0;color:var(--ink);font-family:var(--font-sans);text-overflow:ellipsis;white-space:nowrap;font-size:.76rem;font-weight:800;line-height:1.2;display:block;overflow:hidden}.file-explorer-root span,.file-explorer-label span,.file-explorer-row span{min-width:0;color:var(--muted-foreground);text-overflow:ellipsis;white-space:nowrap;font-size:.66rem;line-height:1.2;display:block;overflow:hidden}.file-explorer-actions{opacity:0;pointer-events:none;justify-content:flex-end;align-items:center;min-width:46px;transition:opacity .12s;display:flex}.file-explorer-root:hover .file-explorer-actions,.file-explorer-root:focus-within .file-explorer-actions,.file-explorer-row:hover .file-explorer-actions,.file-explorer-row:focus-within .file-explorer-actions{opacity:1;pointer-events:auto}.file-explorer-actions .local-open-button{min-height:26px}.portable-empty{border:1px solid var(--line);background:var(--panel);border-radius:8px}.expected-output-list{border-style:dashed;max-height:none}.expected-output-row{color:var(--ink)}.expected-output-tag{border:1px solid var(--line);min-height:22px;color:var(--muted-foreground);font-family:var(--font-sans);text-transform:uppercase;border-radius:999px;align-items:center;padding:0 7px;font-size:.66rem;font-weight:800;display:inline-flex}.source-file-details{border-top:1px solid var(--line);padding-top:12px}.source-file-details summary{color:var(--ink);cursor:pointer;font-size:.86rem;font-weight:800}.source-file-list{gap:10px;max-height:320px;margin-top:12px;display:grid;overflow:auto}.source-file-list div{border-top:1px solid var(--line);gap:4px;padding:10px 0;display:grid}.source-file-list strong,.source-file-list span{overflow-wrap:anywhere;min-width:0}.source-file-list strong{color:var(--ink);font-size:.84rem}.source-file-list span{color:var(--muted-foreground);font-size:.78rem}.source-layout{gap:18px;display:grid}.workspace-home{gap:18px;min-width:0;display:grid}.workspace-home-head{justify-content:space-between;align-items:end;gap:18px;min-width:0;display:flex}.workspace-home-head>div{gap:10px;min-width:0;display:grid}.workspace-home-head h1{overflow-wrap:anywhere;margin:0;font-size:1.4rem;line-height:1.15}.workspace-home-head p{color:var(--muted-foreground);font-family:var(--font-mono);overflow-wrap:anywhere;margin:0;font-size:.84rem}.workspace-home-grid{grid-template-columns:minmax(0,.95fr) minmax(390px,.7fr);align-items:start;gap:16px;min-width:0;display:grid}.workspace-home-grid.source-only{grid-template-columns:minmax(0,1fr)}.workspace-panel{border:1px solid var(--line);background:var(--panel);border-radius:8px;gap:14px;min-width:0;padding:14px;display:grid}.workspace-source-root .file-tree-outline{max-height:min(64vh,720px)}.workspace-table-frame .workspace-table{min-width:980px}.workspace-row-actions{justify-content:flex-start}.preparation-method-tab{height:100%;min-height:0;overflow:hidden}.readiness-evidence-panel{border:1px solid var(--line);background:var(--panel);border-radius:8px;gap:14px;min-width:0;padding:14px;display:grid}.proof-disclosure{border:1px solid var(--line);background:var(--panel-raised);border-radius:8px;min-width:0;overflow:hidden}.proof-disclosure summary{min-width:0;color:var(--ink);cursor:pointer;justify-content:space-between;align-items:center;gap:16px;padding:12px;list-style:none;display:flex}.proof-disclosure summary::-webkit-details-marker{display:none}.proof-disclosure summary span{color:var(--ink);font-size:.88rem;font-weight:800}.proof-disclosure summary strong{color:var(--muted-foreground);font-size:.78rem}.proof-disclosure>.method-stage-evidence-list,.proof-disclosure>.check-stack,.proof-disclosure>.muted{margin:0 12px 12px}.compact-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.method-stage-evidence-list{border:1px solid var(--line);background:var(--panel-raised);border-radius:8px;gap:0;min-width:0;display:grid;overflow:hidden}.method-stage-evidence-list article{border-bottom:1px solid var(--line);grid-template-columns:auto minmax(0,1fr);align-items:start;gap:10px;min-width:0;padding:11px;display:grid}.method-stage-evidence-list article:last-child{border-bottom:0}.method-stage-evidence-list strong,.method-stage-evidence-list p,.method-stage-evidence-list span{overflow-wrap:anywhere}.method-stage-evidence-list strong{color:var(--ink);font-size:.84rem;line-height:1.25;display:block}.method-stage-evidence-list p,.method-stage-evidence-list span{color:var(--muted-foreground);margin:4px 0 0;font-size:.76rem;line-height:1.35}.compact-evidence{padding:10px}.folder-identity,.preparation-action-group,.source-section-head{align-items:flex-start;display:flex}.workspace-detail-controls{justify-content:space-between;align-items:center;gap:12px;min-width:0;display:flex}.workspace-detail-controls .source-detail-tabs{flex:0 auto;min-width:0}.context-workspace-head-actions{flex:none;justify-items:end;gap:10px;min-width:0;display:grid}.context-workspace-head-actions .local-open-button{width:auto;min-width:220px}.context-workspace-action-panel{border:1px solid var(--line);background:var(--panel-raised);border-radius:8px;justify-content:flex-end;width:max-content;min-width:0;max-width:100%;padding:10px;display:flex}.context-workspace-action-panel .preparation-action-group{flex-wrap:wrap;justify-content:flex-end;width:auto}.context-workspace-action-panel .preparation-action-button{min-height:34px;padding-inline:11px}.folder-identity{min-width:0;color:var(--muted-foreground);gap:10px}.folder-identity svg{flex:none;margin-top:3px}.folder-identity>div{gap:3px;min-width:0;display:grid}.folder-identity span{text-transform:uppercase;font-size:.72rem;font-weight:800}.folder-identity code{color:var(--muted-foreground);overflow-wrap:anywhere;font-size:.82rem}.preparation-action-group{flex-wrap:wrap;gap:8px;padding:0}.preparation-action-button{border:1px solid var(--control-border);background:var(--panel-raised);min-height:36px;color:var(--ink);cursor:pointer;white-space:nowrap;border-radius:8px;justify-content:center;align-items:center;gap:7px;padding:0 13px;font-size:.84rem;font-weight:800;line-height:1;display:inline-flex}.preparation-action-button:hover{border-color:var(--line-strong);background:var(--control-hover);color:var(--ink)}.preparation-action-button.failed{color:var(--red)}.source-detail-tabs{margin:0}.source-tab-panel{gap:16px;min-width:0;display:grid}.source-section-head{justify-content:space-between;gap:16px;padding-bottom:2px}.source-section-head h2{margin:0 0 4px;font-size:1.05rem}.source-section-head p{color:var(--muted-foreground);overflow-wrap:anywhere;margin:0;font-size:.82rem}.error-box{border:1px solid var(--red);background:var(--red-soft);border-radius:8px;gap:8px;padding:12px;display:grid}.error-box strong{color:var(--red)}.error-box code{color:var(--ink);overflow-wrap:anywhere}.key-value-list{gap:14px;display:grid}.status-badge{width:max-content;min-height:26px;color:var(--muted-foreground);white-space:nowrap;border-radius:999px;align-items:center;gap:7px;padding:0 9px;font-size:.78rem;font-weight:800;display:inline-flex}.status-badge em{color:var(--muted-foreground);font-style:normal;font-weight:650}.status-dot{background:currentColor;border-radius:99px;width:8px;height:8px;display:inline-block}.status-ok,.status-ok .status-dot{color:var(--green)}.status-run,.status-run .status-dot{color:var(--blue)}.status-wait,.status-wait .status-dot{color:var(--amber)}.status-fail,.status-fail .status-dot{color:var(--red)}.status-skip,.status-skip .status-dot,.status-idle,.status-idle .status-dot{color:var(--muted-foreground)}@media (max-width:1100px){:root{--page-gutter:24px}.content-shell{padding-inline:var(--page-gutter)}.top-nav,.run-overview,.method-detail-head,.page-head,.workspace-home-head,.workspace-detail-controls{flex-direction:column;align-items:stretch}.nav-actions,.source-action-group{justify-content:flex-start}.context-workspace-head-actions{width:100%}.run-metadata,.run-context-panel,.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tab-grid,.method-layout,.method-graph-layout.has-inspector,.workspace-home-grid,.source-home-layout{grid-template-columns:1fr}.method-stage-inspector{border-top:1px solid var(--line);border-left:0}.source-metrics,.portable-workspace-panel .source-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.agent-chat-panel{width:calc(100vw - 24px);height:min(560px,100dvh - 92px);bottom:80px;right:12px}.agent-launcher{bottom:12px;right:12px}.action-dialog-backdrop{align-items:end;padding:12px}.action-dialog{width:100%;max-height:calc(100dvh - 24px)}}@media (max-width:680px){:root{--page-gutter:12px}.content-shell{padding-inline:var(--page-gutter)}.top-nav{padding:14px 16px}.brand-row{flex-wrap:wrap}.local-path{flex-basis:100%}.segmented-tabs,.detail-tabs{grid-template-columns:repeat(2,minmax(0,1fr));width:100%;display:grid}.segmented-tabs button,.detail-tabs button{min-width:0}.run-detail,.detail-panel{padding:14px}.run-metadata,.run-context-panel,.metric-grid,.agent-control-grid,.source-metrics{grid-template-columns:1fr}.context-workspace-action-panel .preparation-action-group,.source-action-group{justify-content:stretch;width:100%}.context-workspace-action-panel{width:100%}.source-action-group .preparation-action-button,.context-workspace-action-panel .preparation-action-button,.context-workspace-head-actions .local-open-button{flex:100%}.source-home-layout{grid-template-columns:1fr;gap:5px;display:grid}.action-dialog-head,.action-dialog-actions{flex-direction:column;align-items:stretch}.action-dialog-actions .toolbar-button,.action-dialog-actions .preparation-action-button{width:100%}}.preparation-switcher{flex:none;position:relative}.preparation-switcher-trigger{border:1px solid var(--control-border);background:var(--panel-raised);min-height:36px;color:var(--ink);cursor:pointer;border-radius:8px;align-items:center;gap:8px;padding:4px 10px;font-family:inherit;font-size:.84rem;display:inline-flex}.preparation-switcher-trigger:hover,.preparation-switcher-trigger.active{border-color:var(--line-strong);background:var(--control-hover)}.preparation-switcher-label{color:var(--muted-foreground);letter-spacing:.08em;text-transform:uppercase;font-size:.66rem;font-weight:850;line-height:1}.preparation-switcher-trigger strong{text-overflow:ellipsis;white-space:nowrap;max-width:220px;font-weight:700;overflow:hidden}.preparation-switcher-chevron{transition:transform .12s;transform:rotate(90deg)}.preparation-switcher-chevron.open{transform:rotate(-90deg)}.preparation-switcher-menu{z-index:100;border:1px solid var(--line-strong);background:var(--panel);border-radius:10px;min-width:280px;max-width:380px;padding:4px;display:grid;position:absolute;top:calc(100% + 6px);left:0;box-shadow:0 12px 30px #00000040}.preparation-switcher-option,.preparation-switcher-create{color:var(--ink);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:6px;gap:2px;padding:8px 10px;font-family:inherit;display:grid}.preparation-switcher-option strong{color:var(--ink);font-size:.84rem;font-weight:700}.preparation-switcher-option span{color:var(--muted-foreground);text-overflow:ellipsis;white-space:nowrap;font-size:.74rem;overflow:hidden}.preparation-switcher-option:hover,.preparation-switcher-option.active{background:var(--control-hover)}.preparation-switcher-create{border-top:1px solid var(--line);color:var(--muted-foreground);border-radius:0 0 6px 6px;margin-top:4px;padding:8px 10px;font-weight:700}.preparation-switcher-create:hover{background:var(--control-hover);color:var(--ink)}.preparation-switcher-empty{color:var(--muted-foreground);padding:10px;font-size:.78rem}.preparation-compiled-tab{gap:16px;min-width:0;display:grid}.preparation-compiled-actions{flex-wrap:wrap;gap:8px;display:inline-flex}.preparation-compile-summary,.preparation-portable-locator,.preparation-compiled-readiness{gap:12px;display:grid}.preparation-compiled-path{background:var(--panel-raised);color:var(--ink);font-family:var(--font-mono);overflow-wrap:anywhere;border-radius:6px;padding:8px 10px;font-size:.82rem;display:block}.method-output-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.method-output-row{border:1px solid var(--panel-border);background:var(--panel-raised);border-radius:6px;align-items:baseline;gap:12px;padding:10px 12px;display:flex}.method-output-row code{font-family:var(--font-mono);color:var(--ink);font-size:.86rem;font-weight:600}.method-output-row .dim{font-size:.78rem}.method-checks-stack{flex-direction:column;gap:14px;display:flex}.method-checks-stage{border:1px solid var(--panel-border);background:var(--panel-raised);border-radius:8px;padding:12px 14px}.method-checks-stage header{align-items:baseline;gap:12px;margin-bottom:8px;display:flex}.method-checks-stage header code{font-family:var(--font-mono);color:var(--ink);font-size:.92rem;font-weight:700}.method-checks-stage ul{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.method-checks-stage li{font-size:.82rem;font-family:var(--font-mono)}.method-checks-stage li code{color:var(--ink)}.method-used-by-line{margin-top:6px;font-size:.8rem}.link-button{font:inherit;color:var(--accent);cursor:pointer;background:0 0;border:none;margin:0;padding:0;text-decoration:underline}.link-button:hover{color:var(--ink)}.method-checks-stage li{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.check-rule-label{font-family:var(--font-sans);color:var(--ink);font-size:.86rem}.check-rule-detail{font-family:var(--font-mono);color:var(--accent);background:#0000002e;border-radius:4px;padding:1px 6px;font-size:.78rem}.readiness-question-stack{flex-direction:column;gap:10px;margin-top:10px;display:flex}.readiness-question-card{border:1px solid var(--panel-border);background:var(--panel-raised);border-radius:8px;padding:10px 14px}.readiness-question-text{color:var(--ink);margin:0 0 6px;font-weight:600}.readiness-question-meta{flex-direction:column;gap:2px;margin:0;padding:0;font-size:.78rem;list-style:none;display:flex}.readiness-question-meta li code{font-family:var(--font-mono)}.status-pending{color:var(--ink-soft,var(--ink));opacity:.6;text-transform:uppercase;letter-spacing:.04em;font-size:.7rem;font-weight:700}.status-warn{color:#b48c2a;text-transform:uppercase;letter-spacing:.04em;font-size:.7rem;font-weight:700}.header-icon-button{border:1px solid var(--panel-border);width:32px;height:32px;color:var(--ink);cursor:pointer;background:0 0;border-radius:6px;justify-content:center;align-items:center;padding:0;display:inline-flex}.header-icon-button:hover{background:var(--panel-raised)}.agents-notice-banner{border:1px dashed var(--panel-border);color:var(--ink-soft,var(--ink));opacity:.85;border-radius:6px;align-items:baseline;gap:10px;margin-top:8px;padding:10px 14px;font-size:.85rem;display:flex}.agents-notice-banner code{font-family:var(--font-mono);background:var(--panel-raised);border-radius:4px;padding:1px 5px;font-size:.8rem}.locator-drawer-backdrop{z-index:80;background:#00000073;justify-content:flex-end;animation:.12s ease-out locator-fade-in;display:flex;position:fixed;inset:0}.locator-drawer{background:var(--panel-bg,var(--bg,#1c1c1c));border-left:1px solid var(--panel-border,var(--line));flex-direction:column;width:min(720px,90vw);height:100vh;animation:.16s ease-out locator-slide-in;display:flex}.locator-drawer-header{border-bottom:1px solid var(--panel-border,var(--line));justify-content:space-between;align-items:flex-start;gap:16px;padding:18px 20px;display:flex}.locator-drawer-title{flex-direction:column;gap:4px;min-width:0;display:flex}.locator-drawer-title h2{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:1rem;font-weight:700;line-height:1.2;overflow:hidden}.locator-drawer-eyebrow{letter-spacing:.08em;color:var(--muted-2);text-transform:uppercase;font-size:.66rem;font-weight:850}.locator-drawer-locator{font-family:var(--font-mono);color:var(--muted-foreground);white-space:nowrap;text-overflow:ellipsis;font-size:.74rem;overflow:hidden}.locator-drawer-close{border:1px solid var(--panel-border,var(--line));color:var(--muted-foreground);cursor:pointer;background:0 0;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:1.1rem;display:flex}.locator-drawer-close:hover{color:var(--ink);border-color:var(--ink)}.locator-drawer-body{flex:auto;padding:18px 20px;overflow:auto}.locator-drawer-loading{color:var(--muted-foreground);font-size:.85rem}.locator-drawer-text{font-family:var(--font-mono);color:var(--ink);white-space:pre-wrap;word-break:break-word;margin:0;font-size:.84rem;line-height:1.5}.locator-drawer-binary,.locator-drawer-error{color:var(--ink-soft,var(--ink));flex-direction:column;gap:10px;font-size:.86rem;display:flex}.locator-drawer-error code{font-family:var(--font-mono);color:var(--muted-foreground);background:var(--panel-raised);border-radius:4px;padding:6px 10px;font-size:.78rem;display:inline-block}.locator-drawer-download{border:1px solid var(--panel-border,var(--line));color:var(--ink);border-radius:6px;width:fit-content;padding:6px 12px;text-decoration:none;display:inline-block}.locator-drawer-download:hover{border-color:var(--ink)}@keyframes locator-fade-in{0%{opacity:0}to{opacity:1}}@keyframes locator-slide-in{0%{transform:translate(100%)}to{transform:translate(0)}}.agents-active-tag{background:var(--ok-bg,#4ade801f);color:var(--ok-color,#4ade80);letter-spacing:.08em;text-transform:uppercase;border-radius:4px;align-items:center;margin-left:8px;padding:1px 8px;font-size:.66rem;font-weight:850;display:inline-flex}.agents-row-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.agents-disclosure{margin-top:24px}.agents-role-map{margin-top:12px}.agents-role-select{border:1px solid var(--line-strong);background:var(--panel-raised);min-height:32px;color:var(--ink);font-size:.84rem;font-weight:600;font-family:var(--font-mono);border-radius:6px;padding:0 10px}.agents-role-select:disabled{opacity:.5;cursor:not-allowed}.agents-register-form{border:1px solid var(--line-strong);background:var(--panel-raised);border-radius:8px;flex-direction:column;gap:12px;margin-bottom:12px;padding:16px;display:flex}.agents-register-form label{color:var(--muted-foreground);flex-direction:column;gap:4px;font-size:.78rem;font-weight:700;display:flex}.agents-register-form label>span{letter-spacing:.08em;text-transform:uppercase;color:var(--muted-2);font-size:.66rem;font-weight:850}.agents-register-form input{border:1px solid var(--line-strong);background:var(--bg);min-height:36px;color:var(--ink);font-family:var(--font-mono);border-radius:6px;padding:0 12px;font-size:.84rem}.agents-register-form input:focus{border-color:var(--ink);outline:none}.agents-register-actions{justify-content:flex-end;gap:8px;display:flex}.agents-stale-tag{color:#f59e0b;letter-spacing:.08em;text-transform:uppercase;background:#f59e0b24;border-radius:4px;align-items:center;margin-left:8px;padding:1px 8px;font-size:.66rem;font-weight:850;display:inline-flex}.toolbar-button.agents-destructive{color:#f87171;border-color:#f8717166}.toolbar-button.agents-destructive:hover{background:#f8717114;border-color:#f87171}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,68405,e=>{"use strict";var i=e.i(20982);e.s([],49974),e.i(49974),e.s(["Mermaid",()=>i.e],68405)}]);
@@ -1,9 +0,0 @@
1
- import { type CompiledState, type RuntimeStageAcceptance, type RuntimeStageContract } from "./lib/schema.js";
2
- import { type RuntimeStageAcceptanceValidation } from "./runtime-types.js";
3
- export declare function stageRecordFromState(state: CompiledState | null, stageId: string): Record<string, unknown> | null;
4
- export declare function validateResolvedStageAcceptance(dirPath: string, options: {
5
- stageId: string;
6
- acceptance?: RuntimeStageAcceptance;
7
- counts?: Record<string, number>;
8
- }): RuntimeStageAcceptanceValidation;
9
- export declare function validateStageContractAcceptance(dirPath: string, contract?: RuntimeStageContract | null): RuntimeStageAcceptanceValidation;
@@ -1,265 +0,0 @@
1
- import { existsSync, } from "node:fs";
2
- import { join } from "node:path";
3
- import { listFilesRecursive } from "../../contracts/utils/filesystem.js";
4
- import { readJsonFileWithSchema } from "../../contracts/utils/parse.js";
5
- import { METHOD_SCHEMA_FILE, compiledZoneAbsolutePath, findCompiledSchemaZone, readCompiledSchemaFile, } from "./compiled-schema.js";
6
- import { RuntimeStageContractSchema, } from "./lib/schema.js";
7
- import { ACCEPTANCE_RULE_KEYS } from "../../contracts/lib/schema.js";
8
- import { stageContractPath } from "./runtime-paths.js";
9
- import { methodPackagePathForCompiled } from "./compiled-paths.js";
10
- import { loadState } from "./state-io.js";
11
- import { countBrokenWikilinks, isOutputMarkdownFile, safeReadText, validateSynthFiles } from "./validate.js";
12
- import { countCompiledZoneArtifacts } from "./artifact-counts.js";
13
- function toFiniteNumber(value) {
14
- if (typeof value !== "number" || !Number.isFinite(value))
15
- return null;
16
- return value;
17
- }
18
- function hasAcceptanceRules(acceptance) {
19
- if (!acceptance)
20
- return false;
21
- // Drive off the canonical rule-key list so a new key added to
22
- // contracts/ is automatically considered here.
23
- for (const key of ACCEPTANCE_RULE_KEYS) {
24
- const value = acceptance[key];
25
- if (Array.isArray(value)) {
26
- if (value.length > 0)
27
- return true;
28
- }
29
- else if (value && typeof value === "object") {
30
- if (Object.keys(value).length > 0)
31
- return true;
32
- }
33
- }
34
- return false;
35
- }
36
- function readPathValue(record, keyPath) {
37
- if (!record)
38
- return undefined;
39
- return keyPath
40
- .split(".")
41
- .filter((segment) => segment.length > 0)
42
- .reduce((current, segment) => {
43
- if (!current || typeof current !== "object" || Array.isArray(current))
44
- return undefined;
45
- return current[segment];
46
- }, record);
47
- }
48
- function markdownFilesForZone(compiledPath, zonePath, kind) {
49
- const absolutePath = compiledZoneAbsolutePath(compiledPath, { path: zonePath });
50
- if (!existsSync(absolutePath))
51
- return [];
52
- if (kind === "file") {
53
- return isOutputMarkdownFile(absolutePath) ? [absolutePath] : [];
54
- }
55
- return listFilesRecursive(absolutePath, isOutputMarkdownFile);
56
- }
57
- function zoneRoots(compiledPath, acceptanceZones) {
58
- const schema = readCompiledSchemaFile(methodPackagePathForCompiled(compiledPath));
59
- if (!schema)
60
- return [];
61
- return acceptanceZones
62
- .map((zoneId) => findCompiledSchemaZone(schema, zoneId))
63
- .filter((zone) => zone !== null)
64
- .map((zone) => compiledZoneAbsolutePath(compiledPath, zone));
65
- }
66
- function readArtifactText(compiledPath, relativePath) {
67
- const artifactPath = join(compiledPath, relativePath);
68
- if (!existsSync(artifactPath))
69
- return null;
70
- return safeReadText(artifactPath);
71
- }
72
- function resolveStageCounts(contract, stageRecord) {
73
- const merged = { ...contract.counts };
74
- const fromStage = stageRecord?.counts;
75
- if (fromStage && typeof fromStage === "object" && !Array.isArray(fromStage)) {
76
- for (const [key, value] of Object.entries(fromStage)) {
77
- const numeric = toFiniteNumber(value);
78
- if (numeric !== null)
79
- merged[key] = numeric;
80
- }
81
- }
82
- return merged;
83
- }
84
- export function stageRecordFromState(state, stageId) {
85
- const stages = state?.stages;
86
- if (!stages || typeof stages !== "object")
87
- return null;
88
- const stage = stages[stageId];
89
- if (!stage || typeof stage !== "object" || Array.isArray(stage))
90
- return null;
91
- return stage;
92
- }
93
- export function validateResolvedStageAcceptance(dirPath, options) {
94
- const acceptance = options.acceptance;
95
- if (!hasAcceptanceRules(acceptance)) {
96
- return {
97
- ok: true,
98
- summary: "No additional stage acceptance criteria were declared.",
99
- failures: [],
100
- };
101
- }
102
- const schema = readCompiledSchemaFile(methodPackagePathForCompiled(dirPath));
103
- if (!schema) {
104
- return {
105
- ok: false,
106
- summary: `Stage acceptance failed for ${options.stageId}: missing Method schema.`,
107
- failures: [`Missing method/${METHOD_SCHEMA_FILE}.`],
108
- };
109
- }
110
- const failures = [];
111
- const state = loadState(dirPath);
112
- const stageRecord = stageRecordFromState(state, options.stageId);
113
- const counts = options.counts ?? {};
114
- for (const relativePath of acceptance?.artifacts_exist ?? []) {
115
- if (!existsSync(join(dirPath, relativePath))) {
116
- failures.push(`Missing required artifact: ${relativePath}.`);
117
- }
118
- }
119
- for (const keyPath of acceptance?.stage_truthy ?? []) {
120
- if (!readPathValue(stageRecord, keyPath)) {
121
- failures.push(`Expected truthy stage value at "${keyPath}".`);
122
- }
123
- }
124
- for (const [keyPath, countKey] of Object.entries(acceptance?.stage_equals_counts ?? {})) {
125
- const actual = readPathValue(stageRecord, keyPath);
126
- const expected = counts[countKey];
127
- if (typeof expected !== "number") {
128
- failures.push(`Acceptance references missing count "${countKey}" for "${keyPath}".`);
129
- continue;
130
- }
131
- if (actual !== expected) {
132
- failures.push(`Expected stage "${keyPath}" to equal count "${countKey}" (${expected}), got ${JSON.stringify(actual)}.`);
133
- }
134
- }
135
- for (const [keyPath, minimum] of Object.entries(acceptance?.stage_at_least ?? {})) {
136
- const actual = toFiniteNumber(readPathValue(stageRecord, keyPath));
137
- if (actual === null || actual < minimum) {
138
- failures.push(`Expected stage "${keyPath}" to be at least ${minimum}, got ${actual === null ? "non-numeric" : actual}.`);
139
- }
140
- }
141
- for (const [keyPath, countKey] of Object.entries(acceptance?.stage_at_least_counts ?? {})) {
142
- const actual = toFiniteNumber(readPathValue(stageRecord, keyPath));
143
- const expected = counts[countKey];
144
- if (typeof expected !== "number") {
145
- failures.push(`Acceptance references missing count "${countKey}" for "${keyPath}".`);
146
- continue;
147
- }
148
- if (actual === null || actual < expected) {
149
- failures.push(`Expected stage "${keyPath}" to be at least count "${countKey}" (${expected}), got ${actual === null ? "non-numeric" : actual}.`);
150
- }
151
- }
152
- for (const [zoneId, minimum] of Object.entries(acceptance?.zone_counts_at_least ?? {})) {
153
- const zone = findCompiledSchemaZone(schema, zoneId);
154
- if (!zone) {
155
- failures.push(`Acceptance references unknown zone "${zoneId}".`);
156
- continue;
157
- }
158
- const actual = countCompiledZoneArtifacts(dirPath, zone.path, zone.kind);
159
- if (actual < minimum) {
160
- failures.push(`Expected zone "${zoneId}" to contain at least ${minimum} artifact(s), got ${actual}.`);
161
- }
162
- }
163
- for (const [zoneId, countKey] of Object.entries(acceptance?.zone_counts_at_least_counts ?? {})) {
164
- const zone = findCompiledSchemaZone(schema, zoneId);
165
- if (!zone) {
166
- failures.push(`Acceptance references unknown zone "${zoneId}".`);
167
- continue;
168
- }
169
- const expected = counts[countKey];
170
- if (typeof expected !== "number") {
171
- failures.push(`Acceptance references missing count "${countKey}" for zone "${zoneId}".`);
172
- continue;
173
- }
174
- const actual = countCompiledZoneArtifacts(dirPath, zone.path, zone.kind);
175
- if (actual < expected) {
176
- failures.push(`Expected zone "${zoneId}" to contain at least count "${countKey}" (${expected}) artifact(s), got ${actual}.`);
177
- }
178
- }
179
- for (const zoneId of acceptance?.markdown_frontmatter_valid_zones ?? []) {
180
- const zone = findCompiledSchemaZone(schema, zoneId);
181
- if (!zone) {
182
- failures.push(`Acceptance references unknown zone "${zoneId}".`);
183
- continue;
184
- }
185
- const validation = validateSynthFiles(markdownFilesForZone(dirPath, zone.path, zone.kind));
186
- if (validation.invalid_frontmatter > 0) {
187
- failures.push(`Zone "${zoneId}" has ${validation.invalid_frontmatter} markdown file(s) with invalid or incomplete frontmatter.`);
188
- }
189
- }
190
- for (const [zoneId, requiredKeys] of Object.entries(acceptance?.frontmatter_required_keys_in_zones ?? {})) {
191
- const zone = findCompiledSchemaZone(schema, zoneId);
192
- if (!zone) {
193
- failures.push(`Acceptance references unknown zone "${zoneId}".`);
194
- continue;
195
- }
196
- const validation = validateSynthFiles(markdownFilesForZone(dirPath, zone.path, zone.kind), { requiredFrontmatterKeys: requiredKeys });
197
- if (validation.invalid_frontmatter > 0) {
198
- failures.push(`Zone "${zoneId}" has ${validation.invalid_frontmatter} markdown file(s) missing required frontmatter keys (${requiredKeys.join(", ")}).`);
199
- }
200
- }
201
- for (const zoneId of acceptance?.markdown_abstract_valid_zones ?? []) {
202
- const zone = findCompiledSchemaZone(schema, zoneId);
203
- if (!zone) {
204
- failures.push(`Acceptance references unknown zone "${zoneId}".`);
205
- continue;
206
- }
207
- const validation = validateSynthFiles(markdownFilesForZone(dirPath, zone.path, zone.kind));
208
- if (validation.short_abstracts > 0) {
209
- failures.push(`Zone "${zoneId}" has ${validation.short_abstracts} markdown file(s) with missing or weak abstracts.`);
210
- }
211
- }
212
- if ((acceptance?.wikilinks_valid_in_zones?.length ?? 0) > 0) {
213
- const roots = zoneRoots(dirPath, acceptance?.wikilinks_valid_in_zones ?? []);
214
- const brokenLinks = countBrokenWikilinks(dirPath, roots, roots);
215
- if (brokenLinks > 0) {
216
- failures.push(`Detected ${brokenLinks} broken wikilink(s) across the declared acceptance zones.`);
217
- }
218
- }
219
- for (const [relativePath, disallowedTexts] of Object.entries(acceptance?.artifacts_must_not_contain ?? {})) {
220
- const content = readArtifactText(dirPath, relativePath);
221
- if (content === null) {
222
- failures.push(`Missing artifact required for content check: ${relativePath}.`);
223
- continue;
224
- }
225
- for (const disallowed of disallowedTexts) {
226
- if (content.includes(disallowed)) {
227
- failures.push(`Artifact "${relativePath}" still contains forbidden text: ${JSON.stringify(disallowed)}.`);
228
- }
229
- }
230
- }
231
- if (failures.length === 0) {
232
- return {
233
- ok: true,
234
- summary: `Stage acceptance satisfied for ${options.stageId}.`,
235
- failures: [],
236
- };
237
- }
238
- return {
239
- ok: false,
240
- summary: `Stage acceptance failed for ${options.stageId}: ${failures.join(" ")}`,
241
- failures,
242
- };
243
- }
244
- export function validateStageContractAcceptance(dirPath, contract = null) {
245
- const resolvedContract = contract ?? (() => {
246
- const path = stageContractPath(dirPath);
247
- if (!existsSync(path))
248
- return null;
249
- return readJsonFileWithSchema(path, "stage contract", RuntimeStageContractSchema);
250
- })();
251
- if (!resolvedContract) {
252
- return {
253
- ok: true,
254
- summary: "No active stage contract found for acceptance validation.",
255
- failures: [],
256
- };
257
- }
258
- const state = loadState(dirPath);
259
- const stageRecord = stageRecordFromState(state, resolvedContract.stage);
260
- return validateResolvedStageAcceptance(dirPath, {
261
- stageId: resolvedContract.stage,
262
- acceptance: resolvedContract.acceptance,
263
- counts: resolveStageCounts(resolvedContract, stageRecord),
264
- });
265
- }