@ouro.bot/cli 0.1.0-alpha.45 → 0.1.0-alpha.451

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 (348) hide show
  1. package/README.md +127 -19
  2. package/{AdoptionSpecialist.ouro → SerpentGuide.ouro}/agent.json +3 -2
  3. package/{AdoptionSpecialist.ouro → SerpentGuide.ouro}/psyche/SOUL.md +2 -2
  4. package/{AdoptionSpecialist.ouro → SerpentGuide.ouro}/psyche/identities/the-serpent.md +1 -1
  5. package/changelog.json +2861 -0
  6. package/dist/arc/attention-types.js +8 -0
  7. package/dist/arc/cares.js +140 -0
  8. package/dist/arc/episodes.js +117 -0
  9. package/dist/arc/intentions.js +133 -0
  10. package/dist/arc/json-store.js +117 -0
  11. package/dist/arc/obligations.js +237 -0
  12. package/dist/arc/packets.js +193 -0
  13. package/dist/arc/presence.js +185 -0
  14. package/dist/arc/task-lifecycle.js +65 -0
  15. package/dist/heart/active-work.js +832 -0
  16. package/dist/heart/agent-entry.js +58 -3
  17. package/dist/heart/attachments/image-normalize.js +194 -0
  18. package/dist/heart/attachments/materialize.js +97 -0
  19. package/dist/heart/attachments/originals.js +88 -0
  20. package/dist/heart/attachments/render.js +29 -0
  21. package/dist/heart/attachments/sources/adapter.js +2 -0
  22. package/dist/heart/attachments/sources/bluebubbles.js +156 -0
  23. package/dist/heart/attachments/sources/cli-local-file.js +78 -0
  24. package/dist/heart/attachments/sources/index.js +16 -0
  25. package/dist/heart/attachments/store.js +103 -0
  26. package/dist/heart/attachments/types.js +93 -0
  27. package/dist/heart/auth/auth-flow.js +426 -0
  28. package/dist/heart/bridges/manager.js +358 -0
  29. package/dist/heart/bridges/state-machine.js +135 -0
  30. package/dist/heart/bridges/store.js +123 -0
  31. package/dist/heart/bundle-state.js +168 -0
  32. package/dist/heart/commitments.js +111 -0
  33. package/dist/heart/config-registry.js +304 -0
  34. package/dist/heart/config.js +110 -128
  35. package/dist/heart/core.js +745 -227
  36. package/dist/heart/cross-chat-delivery.js +131 -0
  37. package/dist/heart/daemon/agent-config-check.js +490 -0
  38. package/dist/heart/daemon/agent-discovery.js +79 -3
  39. package/dist/heart/daemon/agent-service.js +360 -0
  40. package/dist/heart/daemon/agentic-repair.js +216 -0
  41. package/dist/heart/daemon/bluebubbles-health-diagnostics.js +122 -0
  42. package/dist/heart/daemon/cadence.js +70 -0
  43. package/dist/heart/daemon/cli-defaults.js +631 -0
  44. package/dist/heart/daemon/cli-exec.js +6026 -0
  45. package/dist/heart/daemon/cli-help.js +445 -0
  46. package/dist/heart/daemon/cli-parse.js +1197 -0
  47. package/dist/heart/daemon/cli-render-doctor.js +57 -0
  48. package/dist/heart/daemon/cli-render.js +561 -0
  49. package/dist/heart/daemon/cli-types.js +8 -0
  50. package/dist/heart/daemon/connect-bay.js +323 -0
  51. package/dist/heart/daemon/daemon-cli.js +29 -1617
  52. package/dist/heart/daemon/daemon-entry.js +356 -3
  53. package/dist/heart/daemon/daemon-health.js +141 -0
  54. package/dist/heart/daemon/daemon-runtime-sync.js +190 -12
  55. package/dist/heart/daemon/daemon-tombstone.js +236 -0
  56. package/dist/heart/daemon/daemon.js +684 -58
  57. package/dist/heart/daemon/doctor-types.js +8 -0
  58. package/dist/heart/daemon/doctor.js +427 -0
  59. package/dist/heart/daemon/health-monitor.js +79 -1
  60. package/dist/heart/daemon/hooks/agent-config-v2.js +33 -0
  61. package/dist/heart/daemon/hooks/bundle-meta.js +115 -1
  62. package/dist/heart/daemon/http-health-probe.js +80 -0
  63. package/dist/heart/daemon/human-command-screens.js +234 -0
  64. package/dist/heart/daemon/human-readiness.js +114 -0
  65. package/dist/heart/daemon/inner-status.js +89 -0
  66. package/dist/heart/daemon/interactive-repair.js +394 -0
  67. package/dist/heart/daemon/launchd.js +25 -5
  68. package/dist/heart/daemon/log-tailer.js +82 -12
  69. package/dist/heart/daemon/logs-prune.js +105 -0
  70. package/dist/heart/daemon/message-router.js +2 -2
  71. package/dist/heart/daemon/os-cron-deps.js +134 -0
  72. package/dist/heart/daemon/ouro-bot-entry.js +4 -2
  73. package/dist/heart/daemon/ouro-entry.js +3 -1
  74. package/dist/heart/daemon/process-manager.js +214 -0
  75. package/dist/heart/daemon/provider-discovery.js +137 -0
  76. package/dist/heart/daemon/provider-ping-progress.js +83 -0
  77. package/dist/heart/daemon/pulse.js +475 -0
  78. package/dist/heart/daemon/readiness-repair.js +365 -0
  79. package/dist/heart/daemon/run-hooks.js +2 -0
  80. package/dist/heart/daemon/runtime-logging.js +67 -16
  81. package/dist/heart/daemon/runtime-metadata.js +73 -0
  82. package/dist/heart/daemon/runtime-mode.js +67 -0
  83. package/dist/heart/daemon/safe-mode.js +161 -0
  84. package/dist/heart/daemon/sense-manager.js +152 -36
  85. package/dist/heart/daemon/session-id-resolver.js +131 -0
  86. package/dist/heart/daemon/skill-management-installer.js +94 -0
  87. package/dist/heart/daemon/socket-client.js +307 -0
  88. package/dist/heart/daemon/stale-bundle-prune.js +96 -0
  89. package/dist/heart/daemon/startup-tui.js +264 -0
  90. package/dist/heart/daemon/task-scheduler.js +3 -25
  91. package/dist/heart/daemon/terminal-ui.js +499 -0
  92. package/dist/heart/daemon/thoughts.js +510 -0
  93. package/dist/heart/daemon/up-progress.js +366 -0
  94. package/dist/heart/delegation.js +62 -0
  95. package/dist/heart/habits/habit-migration.js +189 -0
  96. package/dist/heart/habits/habit-parser.js +140 -0
  97. package/dist/heart/habits/habit-runtime-state.js +100 -0
  98. package/dist/heart/habits/habit-scheduler.js +372 -0
  99. package/dist/heart/{daemon → hatch}/hatch-flow.js +52 -117
  100. package/dist/heart/{daemon → hatch}/hatch-specialist.js +3 -3
  101. package/dist/heart/{daemon → hatch}/specialist-prompt.js +12 -9
  102. package/dist/heart/{daemon → hatch}/specialist-tools.js +35 -12
  103. package/dist/heart/identity.js +201 -66
  104. package/dist/heart/kept-notes.js +357 -0
  105. package/dist/heart/kicks.js +1 -1
  106. package/dist/heart/machine-identity.js +161 -0
  107. package/dist/heart/mcp/mcp-server.js +653 -0
  108. package/dist/heart/migrate-config.js +100 -0
  109. package/dist/heart/model-capabilities.js +59 -0
  110. package/dist/heart/outlook/outlook-http-hooks.js +66 -0
  111. package/dist/heart/outlook/outlook-http-response.js +7 -0
  112. package/dist/heart/outlook/outlook-http-routes.js +244 -0
  113. package/dist/heart/outlook/outlook-http-static.js +99 -0
  114. package/dist/heart/outlook/outlook-http-transport.js +116 -0
  115. package/dist/heart/outlook/outlook-http.js +99 -0
  116. package/dist/heart/outlook/outlook-read.js +31 -0
  117. package/dist/heart/outlook/outlook-types.js +27 -0
  118. package/dist/heart/outlook/outlook-view.js +195 -0
  119. package/dist/heart/outlook/readers/agent-machine.js +359 -0
  120. package/dist/heart/outlook/readers/continuity-readers.js +332 -0
  121. package/dist/heart/outlook/readers/mail.js +203 -0
  122. package/dist/heart/outlook/readers/runtime-readers.js +644 -0
  123. package/dist/heart/outlook/readers/sessions.js +232 -0
  124. package/dist/heart/outlook/readers/shared.js +111 -0
  125. package/dist/heart/platform.js +81 -0
  126. package/dist/heart/progress-story.js +42 -0
  127. package/dist/heart/provider-attempt.js +134 -0
  128. package/dist/heart/provider-binding-resolver.js +255 -0
  129. package/dist/heart/provider-credentials.js +424 -0
  130. package/dist/heart/provider-failover.js +266 -0
  131. package/dist/heart/provider-models.js +81 -0
  132. package/dist/heart/provider-ping.js +262 -0
  133. package/dist/heart/provider-state.js +216 -0
  134. package/dist/heart/provider-visibility.js +188 -0
  135. package/dist/heart/providers/anthropic-token.js +131 -0
  136. package/dist/heart/providers/anthropic.js +193 -55
  137. package/dist/heart/providers/azure.js +103 -12
  138. package/dist/heart/providers/error-classification.js +63 -0
  139. package/dist/heart/providers/github-copilot.js +145 -0
  140. package/dist/heart/providers/minimax-vlm.js +189 -0
  141. package/dist/heart/providers/minimax.js +29 -7
  142. package/dist/heart/providers/openai-codex.js +62 -38
  143. package/dist/heart/runtime-capability-check.js +170 -0
  144. package/dist/heart/runtime-credentials.js +260 -0
  145. package/dist/heart/sense-truth.js +11 -4
  146. package/dist/heart/session-activity.js +190 -0
  147. package/dist/heart/session-events.js +855 -0
  148. package/dist/heart/session-transcript.js +167 -0
  149. package/dist/heart/start-of-turn-packet.js +345 -0
  150. package/dist/heart/streaming.js +36 -27
  151. package/dist/heart/sync.js +332 -0
  152. package/dist/heart/target-resolution.js +127 -0
  153. package/dist/heart/tempo.js +93 -0
  154. package/dist/heart/temporal-view.js +41 -0
  155. package/dist/heart/tool-activity-callbacks.js +36 -0
  156. package/dist/heart/tool-description.js +135 -0
  157. package/dist/heart/tool-friction.js +55 -0
  158. package/dist/heart/tool-loop.js +200 -0
  159. package/dist/heart/turn-context.js +361 -0
  160. package/dist/heart/turn-coordinator.js +28 -0
  161. package/dist/heart/{daemon → versioning}/ouro-bot-global-installer.js +1 -1
  162. package/dist/heart/{daemon → versioning}/ouro-bot-wrapper.js +1 -1
  163. package/dist/heart/versioning/ouro-path-installer.js +425 -0
  164. package/dist/heart/versioning/ouro-version-manager.js +295 -0
  165. package/dist/heart/{daemon → versioning}/staged-restart.js +40 -8
  166. package/dist/heart/{daemon → versioning}/update-checker.js +5 -1
  167. package/dist/heart/{daemon → versioning}/update-hooks.js +63 -59
  168. package/dist/mailroom/blob-store.js +154 -0
  169. package/dist/mailroom/core.js +387 -0
  170. package/dist/mailroom/entry.js +160 -0
  171. package/dist/mailroom/file-store.js +230 -0
  172. package/dist/mailroom/mbox-import.js +105 -0
  173. package/dist/mailroom/reader.js +150 -0
  174. package/dist/mailroom/smtp-ingress.js +176 -0
  175. package/dist/mind/bundle-manifest.js +7 -1
  176. package/dist/mind/context.js +132 -93
  177. package/dist/mind/diary-integrity.js +60 -0
  178. package/dist/mind/{memory.js → diary.js} +74 -93
  179. package/dist/mind/embedding-provider.js +60 -0
  180. package/dist/mind/file-state.js +179 -0
  181. package/dist/mind/friends/channel.js +30 -0
  182. package/dist/mind/friends/group-context.js +144 -0
  183. package/dist/mind/friends/resolver.js +38 -1
  184. package/dist/mind/friends/store-file.js +39 -3
  185. package/dist/mind/friends/trust-explanation.js +74 -0
  186. package/dist/mind/friends/types.js +2 -2
  187. package/dist/mind/journal-index.js +161 -0
  188. package/dist/mind/note-search.js +268 -0
  189. package/dist/mind/obligation-steering.js +221 -0
  190. package/dist/mind/pending.js +66 -7
  191. package/dist/mind/prompt-refresh.js +3 -2
  192. package/dist/mind/prompt.js +963 -169
  193. package/dist/mind/provenance-trust.js +26 -0
  194. package/dist/mind/scrutiny.js +173 -0
  195. package/dist/nerves/cli-logging.js +7 -1
  196. package/dist/nerves/coverage/audit-rules.js +15 -6
  197. package/dist/nerves/coverage/audit.js +28 -2
  198. package/dist/nerves/coverage/cli.js +1 -1
  199. package/dist/nerves/coverage/contract.js +5 -5
  200. package/dist/nerves/coverage/file-completeness.js +83 -5
  201. package/dist/nerves/coverage/run-artifacts.js +1 -1
  202. package/dist/nerves/event-buffer.js +111 -0
  203. package/dist/nerves/index.js +224 -4
  204. package/dist/nerves/observation.js +20 -0
  205. package/dist/nerves/redact.js +79 -0
  206. package/dist/nerves/runtime.js +5 -1
  207. package/dist/outlook-ui/assets/index-BXw3xmUo.js +61 -0
  208. package/dist/outlook-ui/assets/index-D4Wg-o8Z.css +1 -0
  209. package/dist/outlook-ui/index.html +15 -0
  210. package/dist/repertoire/ado-client.js +15 -56
  211. package/dist/repertoire/ado-semantic.js +11 -10
  212. package/dist/repertoire/api-client.js +97 -0
  213. package/dist/repertoire/bitwarden-store.js +774 -0
  214. package/dist/repertoire/bundle-templates.js +72 -0
  215. package/dist/repertoire/bw-installer.js +180 -0
  216. package/dist/repertoire/coding/codex-jsonl.js +64 -0
  217. package/dist/repertoire/coding/context-pack.js +330 -0
  218. package/dist/repertoire/coding/feedback.js +197 -30
  219. package/dist/repertoire/coding/manager.js +158 -9
  220. package/dist/repertoire/coding/spawner.js +55 -9
  221. package/dist/repertoire/coding/tools.js +170 -7
  222. package/dist/repertoire/commerce-errors.js +109 -0
  223. package/dist/repertoire/commerce-self-test.js +156 -0
  224. package/dist/repertoire/credential-access.js +111 -0
  225. package/dist/repertoire/duffel-client.js +185 -0
  226. package/dist/repertoire/github-client.js +14 -55
  227. package/dist/repertoire/graph-client.js +11 -52
  228. package/dist/repertoire/guardrails.js +371 -0
  229. package/dist/repertoire/mcp-client.js +255 -0
  230. package/dist/repertoire/mcp-manager.js +305 -0
  231. package/dist/repertoire/mcp-tools.js +63 -0
  232. package/dist/repertoire/shell-sessions.js +133 -0
  233. package/dist/repertoire/skills.js +15 -24
  234. package/dist/repertoire/stripe-client.js +131 -0
  235. package/dist/repertoire/tasks/board.js +43 -5
  236. package/dist/repertoire/tasks/fix.js +182 -0
  237. package/dist/repertoire/tasks/index.js +37 -4
  238. package/dist/repertoire/tasks/lifecycle.js +2 -2
  239. package/dist/repertoire/tasks/parser.js +3 -2
  240. package/dist/repertoire/tasks/scanner.js +194 -37
  241. package/dist/repertoire/tasks/transitions.js +16 -78
  242. package/dist/repertoire/tool-results.js +29 -0
  243. package/dist/repertoire/tools-attachments.js +317 -0
  244. package/dist/repertoire/tools-base.js +42 -690
  245. package/dist/repertoire/tools-bluebubbles.js +1 -0
  246. package/dist/repertoire/tools-bridge.js +141 -0
  247. package/dist/repertoire/tools-bundle.js +984 -0
  248. package/dist/repertoire/tools-config.js +185 -0
  249. package/dist/repertoire/tools-continuity.js +248 -0
  250. package/dist/repertoire/tools-credential.js +361 -0
  251. package/dist/repertoire/tools-files.js +342 -0
  252. package/dist/repertoire/tools-flight.js +224 -0
  253. package/dist/repertoire/tools-flow.js +105 -0
  254. package/dist/repertoire/tools-github.js +1 -7
  255. package/dist/repertoire/tools-mail.js +209 -0
  256. package/dist/repertoire/tools-notes.js +376 -0
  257. package/dist/repertoire/tools-session.js +739 -0
  258. package/dist/repertoire/tools-shell.js +120 -0
  259. package/dist/repertoire/tools-stripe.js +180 -0
  260. package/dist/repertoire/tools-surface.js +243 -0
  261. package/dist/repertoire/tools-teams.js +9 -39
  262. package/dist/repertoire/tools-travel.js +125 -0
  263. package/dist/repertoire/tools-user-profile.js +144 -0
  264. package/dist/repertoire/tools-vault.js +40 -0
  265. package/dist/repertoire/tools.js +144 -113
  266. package/dist/repertoire/travel-api-client.js +360 -0
  267. package/dist/repertoire/user-profile.js +131 -0
  268. package/dist/repertoire/vault-setup.js +246 -0
  269. package/dist/repertoire/vault-unlock.js +561 -0
  270. package/dist/scripts/claude-code-hook.js +41 -0
  271. package/dist/scripts/claude-code-stop-hook.js +47 -0
  272. package/dist/senses/attention-queue.js +116 -0
  273. package/dist/senses/bluebubbles/attachment-cache.js +53 -0
  274. package/dist/senses/bluebubbles/attachment-download.js +137 -0
  275. package/dist/senses/{bluebubbles-client.js → bluebubbles/client.js} +219 -18
  276. package/dist/senses/bluebubbles/entry.js +73 -0
  277. package/dist/senses/{bluebubbles-inbound-log.js → bluebubbles/inbound-log.js} +7 -3
  278. package/dist/senses/bluebubbles/index.js +1620 -0
  279. package/dist/senses/{bluebubbles-media.js → bluebubbles/media.js} +121 -70
  280. package/dist/senses/{bluebubbles-model.js → bluebubbles/model.js} +33 -12
  281. package/dist/senses/{bluebubbles-mutation-log.js → bluebubbles/mutation-log.js} +3 -3
  282. package/dist/senses/bluebubbles/replay.js +129 -0
  283. package/dist/senses/{bluebubbles-runtime-state.js → bluebubbles/runtime-state.js} +2 -2
  284. package/dist/senses/{bluebubbles-session-cleanup.js → bluebubbles/session-cleanup.js} +1 -1
  285. package/dist/senses/cli/bracketed-paste.js +82 -0
  286. package/dist/senses/cli/image-paste.js +287 -0
  287. package/dist/senses/cli/image-ref-navigation.js +75 -0
  288. package/dist/senses/cli/ink-app.js +156 -0
  289. package/dist/senses/cli/inline-diff.js +64 -0
  290. package/dist/senses/cli/input-keys.js +174 -0
  291. package/dist/senses/cli/kill-ring.js +86 -0
  292. package/dist/senses/cli/message-list.js +51 -0
  293. package/dist/senses/cli/ouro-tui.js +605 -0
  294. package/dist/senses/cli/spinner-imperative.js +135 -0
  295. package/dist/senses/cli/spinner.js +101 -0
  296. package/dist/senses/cli/status-line.js +60 -0
  297. package/dist/senses/cli/streaming-markdown.js +526 -0
  298. package/dist/senses/cli/tool-display.js +83 -0
  299. package/dist/senses/cli/tool-render.js +85 -0
  300. package/dist/senses/cli/tui-store.js +240 -0
  301. package/dist/senses/cli/virtual-list.js +35 -0
  302. package/dist/senses/cli-entry.js +60 -8
  303. package/dist/senses/cli-layout.js +187 -0
  304. package/dist/senses/cli.js +516 -211
  305. package/dist/senses/commands.js +66 -3
  306. package/dist/senses/habit-turn-message.js +108 -0
  307. package/dist/senses/inner-dialog-worker.js +102 -19
  308. package/dist/senses/inner-dialog.js +597 -95
  309. package/dist/senses/pipeline.js +533 -72
  310. package/dist/senses/proactive-content-guard.js +51 -0
  311. package/dist/senses/shared-turn.js +205 -0
  312. package/dist/senses/surface-tool.js +68 -0
  313. package/dist/senses/teams-entry.js +60 -8
  314. package/dist/senses/teams.js +413 -163
  315. package/dist/senses/trust-gate.js +5 -5
  316. package/package.json +37 -7
  317. package/skills/agent-commerce.md +106 -0
  318. package/skills/browser-navigation.md +117 -0
  319. package/skills/commerce-setup-guide.md +116 -0
  320. package/skills/commerce-setup.md +84 -0
  321. package/skills/configure-dev-tools.md +101 -0
  322. package/skills/travel-planning.md +138 -0
  323. package/dist/heart/daemon/ouro-path-installer.js +0 -178
  324. package/dist/heart/daemon/subagent-installer.js +0 -166
  325. package/dist/mind/associative-recall.js +0 -209
  326. package/dist/senses/bluebubbles-entry.js +0 -13
  327. package/dist/senses/bluebubbles.js +0 -1028
  328. package/dist/senses/debug-activity.js +0 -127
  329. package/subagents/README.md +0 -86
  330. package/subagents/work-doer.md +0 -237
  331. package/subagents/work-merger.md +0 -618
  332. package/subagents/work-planner.md +0 -390
  333. /package/{AdoptionSpecialist.ouro → SerpentGuide.ouro}/psyche/identities/basilisk.md +0 -0
  334. /package/{AdoptionSpecialist.ouro → SerpentGuide.ouro}/psyche/identities/jafar.md +0 -0
  335. /package/{AdoptionSpecialist.ouro → SerpentGuide.ouro}/psyche/identities/jormungandr.md +0 -0
  336. /package/{AdoptionSpecialist.ouro → SerpentGuide.ouro}/psyche/identities/kaa.md +0 -0
  337. /package/{AdoptionSpecialist.ouro → SerpentGuide.ouro}/psyche/identities/medusa.md +0 -0
  338. /package/{AdoptionSpecialist.ouro → SerpentGuide.ouro}/psyche/identities/monty.md +0 -0
  339. /package/{AdoptionSpecialist.ouro → SerpentGuide.ouro}/psyche/identities/nagini.md +0 -0
  340. /package/{AdoptionSpecialist.ouro → SerpentGuide.ouro}/psyche/identities/ouroboros.md +0 -0
  341. /package/{AdoptionSpecialist.ouro → SerpentGuide.ouro}/psyche/identities/python.md +0 -0
  342. /package/{AdoptionSpecialist.ouro → SerpentGuide.ouro}/psyche/identities/quetzalcoatl.md +0 -0
  343. /package/{AdoptionSpecialist.ouro → SerpentGuide.ouro}/psyche/identities/sir-hiss.md +0 -0
  344. /package/{AdoptionSpecialist.ouro → SerpentGuide.ouro}/psyche/identities/the-snake.md +0 -0
  345. /package/dist/heart/{daemon → hatch}/hatch-animation.js +0 -0
  346. /package/dist/heart/{daemon → hatch}/specialist-orchestrator.js +0 -0
  347. /package/dist/heart/{daemon → versioning}/ouro-uti.js +0 -0
  348. /package/dist/heart/{daemon → versioning}/wrapper-publish-guard.js +0 -0
@@ -0,0 +1 @@
1
+ @import"https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,600;1,400;1,600&family=Outfit:wght@300;400;500;600&family=JetBrains+Mono:wght@400;500&display=swap";/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */@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-space-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-duration:initial;--tw-ease:initial;--tw-content:""}}}@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:"JetBrains Mono", "SFMono-Regular", monospace;--color-red-200:oklch(88.5% .062 18.334);--color-red-300:oklch(80.8% .114 19.571);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-orange-200:oklch(90.1% .076 70.697);--color-orange-300:oklch(83.7% .128 66.29);--color-orange-400:oklch(75% .183 55.934);--color-orange-500:oklch(70.5% .213 47.604);--color-orange-600:oklch(64.6% .222 41.116);--color-orange-700:oklch(55.3% .195 38.402);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-500:oklch(76.9% .188 70.08);--color-amber-600:oklch(66.6% .179 58.318);--color-amber-700:oklch(55.5% .163 48.998);--color-amber-950:oklch(27.9% .077 45.635);--color-yellow-300:oklch(90.5% .182 98.111);--color-yellow-400:oklch(85.2% .199 91.936);--color-yellow-600:oklch(68.1% .162 75.834);--color-yellow-700:oklch(55.4% .135 66.442);--color-yellow-950:oklch(28.6% .066 53.813);--color-lime-300:oklch(89.7% .196 126.665);--color-lime-400:oklch(84.1% .238 128.85);--color-lime-600:oklch(64.8% .2 131.684);--color-lime-700:oklch(53.2% .157 131.589);--color-lime-950:oklch(27.4% .072 132.109);--color-green-400:oklch(79.2% .209 151.711);--color-green-500:oklch(72.3% .219 149.579);--color-green-600:oklch(62.7% .194 149.214);--color-green-700:oklch(52.7% .154 150.069);--color-emerald-400:oklch(76.5% .177 163.223);--color-emerald-500:oklch(69.6% .17 162.48);--color-emerald-600:oklch(59.6% .145 163.225);--color-emerald-700:oklch(50.8% .118 165.612);--color-teal-300:oklch(85.5% .138 181.071);--color-teal-500:oklch(70.4% .14 182.503);--color-teal-600:oklch(60% .118 184.704);--color-teal-700:oklch(51.1% .096 186.391);--color-cyan-300:oklch(86.5% .127 207.078);--color-cyan-400:oklch(78.9% .154 211.53);--color-cyan-500:oklch(71.5% .143 215.221);--color-cyan-700:oklch(52% .105 223.128);--color-cyan-950:oklch(30.2% .056 229.695);--color-sky-300:oklch(82.8% .111 230.318);--color-sky-500:oklch(68.5% .169 237.323);--color-sky-600:oklch(58.8% .158 241.966);--color-sky-700:oklch(50% .134 242.749);--color-blue-300:oklch(80.9% .105 251.813);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-indigo-200:oklch(87% .065 274.039);--color-indigo-300:oklch(78.5% .115 274.713);--color-indigo-400:oklch(67.3% .182 276.935);--color-indigo-500:oklch(58.5% .233 277.117);--color-indigo-600:oklch(51.1% .262 276.966);--color-indigo-700:oklch(45.7% .24 277.023);--color-violet-200:oklch(89.4% .057 293.283);--color-violet-300:oklch(81.1% .111 293.571);--color-violet-400:oklch(70.2% .183 293.541);--color-violet-500:oklch(60.6% .25 292.717);--color-violet-600:oklch(54.1% .281 293.009);--color-violet-700:oklch(49.1% .27 292.581);--color-purple-200:oklch(90.2% .063 306.703);--color-purple-300:oklch(82.7% .119 306.383);--color-purple-400:oklch(71.4% .203 305.504);--color-purple-500:oklch(62.7% .265 303.9);--color-purple-600:oklch(55.8% .288 302.321);--color-purple-700:oklch(49.6% .265 301.924);--color-fuchsia-200:oklch(90.3% .076 319.62);--color-fuchsia-300:oklch(83.3% .145 321.434);--color-fuchsia-400:oklch(74% .238 322.16);--color-fuchsia-500:oklch(66.7% .295 322.15);--color-fuchsia-600:oklch(59.1% .293 322.896);--color-fuchsia-700:oklch(51.8% .253 323.949);--color-pink-200:oklch(89.9% .061 343.231);--color-pink-300:oklch(82.3% .12 346.018);--color-pink-400:oklch(71.8% .202 349.761);--color-pink-500:oklch(65.6% .241 354.308);--color-pink-600:oklch(59.2% .249 .584);--color-pink-700:oklch(52.5% .223 3.958);--color-rose-200:oklch(89.2% .058 10.001);--color-rose-300:oklch(81% .117 11.638);--color-rose-400:oklch(71.2% .194 13.428);--color-rose-500:oklch(64.5% .246 16.439);--color-rose-600:oklch(58.6% .253 17.585);--color-rose-700:oklch(51.4% .222 16.935);--color-zinc-200:oklch(92% .004 286.32);--color-zinc-300:oklch(87.1% .006 286.286);--color-zinc-400:oklch(70.5% .015 286.067);--color-zinc-500:oklch(55.2% .016 285.938);--color-zinc-600:oklch(44.2% .017 285.786);--color-zinc-700:oklch(37% .013 285.805);--color-zinc-800:oklch(27.4% .006 286.033);--color-zinc-900:oklch(21% .006 285.885);--color-zinc-950:oklch(14.1% .005 285.823);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-lg:32rem;--container-6xl:72rem;--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: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height: 1.2 ;--font-weight-medium:500;--font-weight-semibold:600;--tracking-wider:.05em;--tracking-widest:.1em;--leading-tight:1.25;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--ease-in:cubic-bezier(.4, 0, 1, 1);--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) 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);--color-ouro-void:#07110d;--color-ouro-deep:#0c1a12;--color-ouro-moss:#183325;--color-ouro-scale:#2f8f4e;--color-ouro-glow:#74e08f;--color-ouro-bone:#eef2ea;--color-ouro-mist:#a5b8a8;--color-ouro-shadow:#708373;--color-ouro-fang:#d35f47;--color-ouro-gold:#d6b56f;--font-display:"Cormorant Garamond", "Iowan Old Style", "Palatino Linotype", serif;--font-body:"Outfit", "Avenir Next", "Segoe UI Variable Text", sans-serif}}@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%;-moz-tab-size:4;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;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]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance: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{.collapse{visibility:collapse}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.inset-0{inset:calc(var(--spacing) * 0)}.inset-x-2{inset-inline:calc(var(--spacing) * 2)}.inset-y-0{inset-block:calc(var(--spacing) * 0)}.inset-y-2{inset-block:calc(var(--spacing) * 2)}.top-1\/2{top:50%}.-bottom-2\.5{bottom:calc(var(--spacing) * -2.5)}.-left-4{left:calc(var(--spacing) * -4)}.left-0{left:calc(var(--spacing) * 0)}.left-1\/2{left:50%}.isolate{isolation:isolate}.col-start-1{grid-column-start:1}.-mx-1{margin-inline:calc(var(--spacing) * -1)}.mx-auto{margin-inline:auto}.my-4{margin-block:calc(var(--spacing) * 4)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.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)}.mt-8{margin-top:calc(var(--spacing) * 8)}.-mb-3{margin-bottom:calc(var(--spacing) * -3)}.mb-0\.5{margin-bottom:calc(var(--spacing) * .5)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.-ml-4{margin-left:calc(var(--spacing) * -4)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-auto{margin-left:auto}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.flex{display:flex}.grid{display:grid}.inline-flex{display:inline-flex}.inline-grid{display:inline-grid}.size-\[max\(100\%\,2\.75rem\)\]{width:max(100%,2.75rem);height:max(100%,2.75rem)}.size-full{width:100%;height:100%}.h-0\.5{height:calc(var(--spacing) * .5)}.h-1{height:calc(var(--spacing) * 1)}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-4{height:calc(var(--spacing) * 4)}.h-6{height:calc(var(--spacing) * 6)}.h-full{height:100%}.h-screen{height:100vh}.max-h-20{max-height:calc(var(--spacing) * 20)}.max-h-24{max-height:calc(var(--spacing) * 24)}.max-h-32{max-height:calc(var(--spacing) * 32)}.max-h-60{max-height:calc(var(--spacing) * 60)}.max-h-96{max-height:calc(var(--spacing) * 96)}.max-h-\[60vh\]{max-height:60vh}.max-h-\[64vh\]{max-height:64vh}.max-h-\[70vh\]{max-height:70vh}.min-h-0{min-height:calc(var(--spacing) * 0)}.min-h-\[54vh\]{min-height:54vh}.min-h-\[58vh\]{min-height:58vh}.min-h-\[64vh\]{min-height:64vh}.min-h-svh{min-height:100svh}.w-0\.5{width:calc(var(--spacing) * .5)}.w-2{width:calc(var(--spacing) * 2)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-3{width:calc(var(--spacing) * 3)}.w-4{width:calc(var(--spacing) * 4)}.w-64{width:calc(var(--spacing) * 64)}.w-full{width:100%}.w-px{width:1px}.max-w-6xl{max-width:var(--container-6xl)}.max-w-32{max-width:calc(var(--spacing) * 32)}.max-w-80{max-width:calc(var(--spacing) * 80)}.max-w-\[85\%\]{max-width:85%}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.min-w-0{min-width:calc(var(--spacing) * 0)}.flex-1{flex:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.animate-pulse{animation:var(--animate-pulse)}.cursor-default{cursor:default}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)))}: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-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * 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(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-8>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 8) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 8) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-1\.5{column-gap:calc(var(--spacing) * 1.5)}.gap-x-2{column-gap:calc(var(--spacing) * 2)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-\(--avatar-radius\){border-radius:var(--avatar-radius)}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-\[20\%\]{border-radius:20%}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-none{border-radius:0}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-t-md{border-top-left-radius:var(--radius-md);border-top-right-radius:var(--radius-md)}.rounded-br-md{border-bottom-right-radius:var(--radius-md)}.rounded-br-sm{border-bottom-right-radius:var(--radius-sm)}.rounded-bl-md{border-bottom-left-radius:var(--radius-md)}.rounded-bl-sm{border-bottom-left-radius:var(--radius-sm)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-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-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-\[\#1f3a2c\]{border-color:#1f3a2c}.border-\[\#22c55e\]{border-color:#22c55e}.border-\[\#60a5fa\]{border-color:#60a5fa}.border-\[\#d7dce6\]{border-color:#d7dce6}.border-\[\#d8d1ff\]{border-color:#d8d1ff}.border-\[\#e2e8f0\]{border-color:#e2e8f0}.border-\[\#edf2f7\]{border-color:#edf2f7}.border-\[\#fee2e2\]{border-color:#fee2e2}.border-black\/10{border-color:#0000001a}@supports (color:color-mix(in lab,red,red)){.border-black\/10{border-color:color-mix(in oklab,var(--color-black) 10%,transparent)}}.border-current\/10{border-color:currentColor}@supports (color:color-mix(in lab,red,red)){.border-current\/10{border-color:color-mix(in oklab,currentcolor 10%,transparent)}}.border-ouro-glow{border-color:var(--color-ouro-glow)}.border-ouro-moss\/10{border-color:#1833251a}@supports (color:color-mix(in lab,red,red)){.border-ouro-moss\/10{border-color:color-mix(in oklab,var(--color-ouro-moss) 10%,transparent)}}.border-ouro-moss\/15{border-color:#18332526}@supports (color:color-mix(in lab,red,red)){.border-ouro-moss\/15{border-color:color-mix(in oklab,var(--color-ouro-moss) 15%,transparent)}}.border-ouro-moss\/20{border-color:#18332533}@supports (color:color-mix(in lab,red,red)){.border-ouro-moss\/20{border-color:color-mix(in oklab,var(--color-ouro-moss) 20%,transparent)}}.border-ouro-moss\/30{border-color:#1833254d}@supports (color:color-mix(in lab,red,red)){.border-ouro-moss\/30{border-color:color-mix(in oklab,var(--color-ouro-moss) 30%,transparent)}}.border-transparent{border-color:#0000}.border-zinc-200{border-color:var(--color-zinc-200)}.border-zinc-950\/5{border-color:#09090b0d}@supports (color:color-mix(in lab,red,red)){.border-zinc-950\/5{border-color:color-mix(in oklab,var(--color-zinc-950) 5%,transparent)}}.border-zinc-950\/10{border-color:#09090b1a}@supports (color:color-mix(in lab,red,red)){.border-zinc-950\/10{border-color:color-mix(in oklab,var(--color-zinc-950) 10%,transparent)}}.bg-\(--btn-border\){background-color:var(--btn-border)}.bg-\[\#0a84ff\]{background-color:#0a84ff}.bg-\[\#0f1a15\]{background-color:#0f1a15}.bg-\[\#4f3bb3\]{background-color:#4f3bb3}.bg-\[\#2563eb\]{background-color:#2563eb}.bg-\[\#050807\]{background-color:#050807}.bg-\[\#101815\]{background-color:#101815}.bg-\[\#e9e9eb\]{background-color:#e9e9eb}.bg-\[\#eaf3ff\]{background-color:#eaf3ff}.bg-\[\#ede9fe\]{background-color:#ede9fe}.bg-\[\#eef2f7\]{background-color:#eef2f7}.bg-\[\#f5f5f7\]{background-color:#f5f5f7}.bg-\[\#f7f5ff\]{background-color:#f7f5ff}.bg-\[\#f7f8fb\]{background-color:#f7f8fb}.bg-\[\#fbfbfd\]{background-color:#fbfbfd}.bg-\[\#fbfcfe\]{background-color:#fbfcfe}.bg-\[\#fff7ed\]{background-color:#fff7ed}.bg-amber-400\/20{background-color:#fcbb0033}@supports (color:color-mix(in lab,red,red)){.bg-amber-400\/20{background-color:color-mix(in oklab,var(--color-amber-400) 20%,transparent)}}.bg-black\/5{background-color:#0000000d}@supports (color:color-mix(in lab,red,red)){.bg-black\/5{background-color:color-mix(in oklab,var(--color-black) 5%,transparent)}}.bg-black\/10{background-color:#0000001a}@supports (color:color-mix(in lab,red,red)){.bg-black\/10{background-color:color-mix(in oklab,var(--color-black) 10%,transparent)}}.bg-black\/30{background-color:#0000004d}@supports (color:color-mix(in lab,red,red)){.bg-black\/30{background-color:color-mix(in oklab,var(--color-black) 30%,transparent)}}.bg-blue-500\/15{background-color:#3080ff26}@supports (color:color-mix(in lab,red,red)){.bg-blue-500\/15{background-color:color-mix(in oklab,var(--color-blue-500) 15%,transparent)}}.bg-cyan-400\/20{background-color:#00d2ef33}@supports (color:color-mix(in lab,red,red)){.bg-cyan-400\/20{background-color:color-mix(in oklab,var(--color-cyan-400) 20%,transparent)}}.bg-emerald-500\/15{background-color:#00bb7f26}@supports (color:color-mix(in lab,red,red)){.bg-emerald-500\/15{background-color:color-mix(in oklab,var(--color-emerald-500) 15%,transparent)}}.bg-fuchsia-400\/15{background-color:#ec6cff26}@supports (color:color-mix(in lab,red,red)){.bg-fuchsia-400\/15{background-color:color-mix(in oklab,var(--color-fuchsia-400) 15%,transparent)}}.bg-green-500\/15{background-color:#00c75826}@supports (color:color-mix(in lab,red,red)){.bg-green-500\/15{background-color:color-mix(in oklab,var(--color-green-500) 15%,transparent)}}.bg-indigo-500\/15{background-color:#625fff26}@supports (color:color-mix(in lab,red,red)){.bg-indigo-500\/15{background-color:color-mix(in oklab,var(--color-indigo-500) 15%,transparent)}}.bg-lime-400\/20{background-color:#9de50033}@supports (color:color-mix(in lab,red,red)){.bg-lime-400\/20{background-color:color-mix(in oklab,var(--color-lime-400) 20%,transparent)}}.bg-orange-500\/15{background-color:#fe6e0026}@supports (color:color-mix(in lab,red,red)){.bg-orange-500\/15{background-color:color-mix(in oklab,var(--color-orange-500) 15%,transparent)}}.bg-ouro-deep{background-color:var(--color-ouro-deep)}.bg-ouro-fang{background-color:var(--color-ouro-fang)}.bg-ouro-fang\/5{background-color:#d35f470d}@supports (color:color-mix(in lab,red,red)){.bg-ouro-fang\/5{background-color:color-mix(in oklab,var(--color-ouro-fang) 5%,transparent)}}.bg-ouro-glow{background-color:var(--color-ouro-glow)}.bg-ouro-glow\/5{background-color:#74e08f0d}@supports (color:color-mix(in lab,red,red)){.bg-ouro-glow\/5{background-color:color-mix(in oklab,var(--color-ouro-glow) 5%,transparent)}}.bg-ouro-glow\/6{background-color:#74e08f0f}@supports (color:color-mix(in lab,red,red)){.bg-ouro-glow\/6{background-color:color-mix(in oklab,var(--color-ouro-glow) 6%,transparent)}}.bg-ouro-glow\/8{background-color:#74e08f14}@supports (color:color-mix(in lab,red,red)){.bg-ouro-glow\/8{background-color:color-mix(in oklab,var(--color-ouro-glow) 8%,transparent)}}.bg-ouro-gold{background-color:var(--color-ouro-gold)}.bg-ouro-gold\/5{background-color:#d6b56f0d}@supports (color:color-mix(in lab,red,red)){.bg-ouro-gold\/5{background-color:color-mix(in oklab,var(--color-ouro-gold) 5%,transparent)}}.bg-ouro-gold\/8{background-color:#d6b56f14}@supports (color:color-mix(in lab,red,red)){.bg-ouro-gold\/8{background-color:color-mix(in oklab,var(--color-ouro-gold) 8%,transparent)}}.bg-ouro-moss\/8{background-color:#18332514}@supports (color:color-mix(in lab,red,red)){.bg-ouro-moss\/8{background-color:color-mix(in oklab,var(--color-ouro-moss) 8%,transparent)}}.bg-ouro-moss\/10{background-color:#1833251a}@supports (color:color-mix(in lab,red,red)){.bg-ouro-moss\/10{background-color:color-mix(in oklab,var(--color-ouro-moss) 10%,transparent)}}.bg-ouro-moss\/15{background-color:#18332526}@supports (color:color-mix(in lab,red,red)){.bg-ouro-moss\/15{background-color:color-mix(in oklab,var(--color-ouro-moss) 15%,transparent)}}.bg-ouro-moss\/20{background-color:#18332533}@supports (color:color-mix(in lab,red,red)){.bg-ouro-moss\/20{background-color:color-mix(in oklab,var(--color-ouro-moss) 20%,transparent)}}.bg-ouro-moss\/25{background-color:#18332540}@supports (color:color-mix(in lab,red,red)){.bg-ouro-moss\/25{background-color:color-mix(in oklab,var(--color-ouro-moss) 25%,transparent)}}.bg-ouro-scale\/10{background-color:#2f8f4e1a}@supports (color:color-mix(in lab,red,red)){.bg-ouro-scale\/10{background-color:color-mix(in oklab,var(--color-ouro-scale) 10%,transparent)}}.bg-ouro-scale\/12{background-color:#2f8f4e1f}@supports (color:color-mix(in lab,red,red)){.bg-ouro-scale\/12{background-color:color-mix(in oklab,var(--color-ouro-scale) 12%,transparent)}}.bg-ouro-scale\/15{background-color:#2f8f4e26}@supports (color:color-mix(in lab,red,red)){.bg-ouro-scale\/15{background-color:color-mix(in oklab,var(--color-ouro-scale) 15%,transparent)}}.bg-ouro-void{background-color:var(--color-ouro-void)}.bg-ouro-void\/30{background-color:#07110d4d}@supports (color:color-mix(in lab,red,red)){.bg-ouro-void\/30{background-color:color-mix(in oklab,var(--color-ouro-void) 30%,transparent)}}.bg-ouro-void\/40{background-color:#07110d66}@supports (color:color-mix(in lab,red,red)){.bg-ouro-void\/40{background-color:color-mix(in oklab,var(--color-ouro-void) 40%,transparent)}}.bg-ouro-void\/50{background-color:#07110d80}@supports (color:color-mix(in lab,red,red)){.bg-ouro-void\/50{background-color:color-mix(in oklab,var(--color-ouro-void) 50%,transparent)}}.bg-ouro-void\/60{background-color:#07110d99}@supports (color:color-mix(in lab,red,red)){.bg-ouro-void\/60{background-color:color-mix(in oklab,var(--color-ouro-void) 60%,transparent)}}.bg-pink-400\/15{background-color:#fb64b626}@supports (color:color-mix(in lab,red,red)){.bg-pink-400\/15{background-color:color-mix(in oklab,var(--color-pink-400) 15%,transparent)}}.bg-purple-500\/15{background-color:#ac4bff26}@supports (color:color-mix(in lab,red,red)){.bg-purple-500\/15{background-color:color-mix(in oklab,var(--color-purple-500) 15%,transparent)}}.bg-red-500\/15{background-color:#fb2c3626}@supports (color:color-mix(in lab,red,red)){.bg-red-500\/15{background-color:color-mix(in oklab,var(--color-red-500) 15%,transparent)}}.bg-rose-400\/15{background-color:#ff667f26}@supports (color:color-mix(in lab,red,red)){.bg-rose-400\/15{background-color:color-mix(in oklab,var(--color-rose-400) 15%,transparent)}}.bg-sky-500\/15{background-color:#00a5ef26}@supports (color:color-mix(in lab,red,red)){.bg-sky-500\/15{background-color:color-mix(in oklab,var(--color-sky-500) 15%,transparent)}}.bg-teal-500\/15{background-color:#00baa726}@supports (color:color-mix(in lab,red,red)){.bg-teal-500\/15{background-color:color-mix(in oklab,var(--color-teal-500) 15%,transparent)}}.bg-transparent{background-color:#0000}.bg-violet-500\/15{background-color:#8d54ff26}@supports (color:color-mix(in lab,red,red)){.bg-violet-500\/15{background-color:color-mix(in oklab,var(--color-violet-500) 15%,transparent)}}.bg-white{background-color:var(--color-white)}.bg-yellow-400\/20{background-color:#fac80033}@supports (color:color-mix(in lab,red,red)){.bg-yellow-400\/20{background-color:color-mix(in oklab,var(--color-yellow-400) 20%,transparent)}}.bg-zinc-600\/10{background-color:#52525c1a}@supports (color:color-mix(in lab,red,red)){.bg-zinc-600\/10{background-color:color-mix(in oklab,var(--color-zinc-600) 10%,transparent)}}.bg-zinc-950{background-color:var(--color-zinc-950)}.bg-zinc-950\/2\.5{background-color:#09090b06}@supports (color:color-mix(in lab,red,red)){.bg-zinc-950\/2\.5{background-color:color-mix(in oklab,var(--color-zinc-950) 2.5%,transparent)}}.bg-zinc-950\/10{background-color:#09090b1a}@supports (color:color-mix(in lab,red,red)){.bg-zinc-950\/10{background-color:color-mix(in oklab,var(--color-zinc-950) 10%,transparent)}}.fill-current{fill:currentColor}.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)}.p-8{padding:calc(var(--spacing) * 8)}.p-\[5\%\]{padding:5%}.px-0\.5{padding-inline:calc(var(--spacing) * .5)}.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-3\.5{padding-inline:calc(var(--spacing) * 3.5)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.px-\[calc\(--spacing\(3\.5\)-1px\)\]{padding-inline:calc(calc(var(--spacing) * 3.5) - 1px)}.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-3\.5{padding-block:calc(var(--spacing) * 3.5)}.py-5{padding-block:calc(var(--spacing) * 5)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-10{padding-block:calc(var(--spacing) * 10)}.py-24{padding-block:calc(var(--spacing) * 24)}.py-\[calc\(--spacing\(2\.5\)-1px\)\]{padding-block:calc(calc(var(--spacing) * 2.5) - 1px)}.pt-1{padding-top:calc(var(--spacing) * 1)}.pt-1\.5{padding-top:calc(var(--spacing) * 1.5)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pb-1{padding-bottom:calc(var(--spacing) * 1)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.align-middle{vertical-align:middle}.font-body{font-family:var(--font-body)}.font-display{font-family:var(--font-display)}.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-2xl\/8{font-size:var(--text-2xl);line-height:calc(var(--spacing) * 8)}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-base\/6{font-size:var(--text-base);line-height:calc(var(--spacing) * 6)}.text-base\/7{font-size:var(--text-base);line-height:calc(var(--spacing) * 7)}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-sm\/5{font-size:var(--text-sm);line-height:calc(var(--spacing) * 5)}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-xs\/6{font-size:var(--text-xs);line-height:calc(var(--spacing) * 6)}.text-\[9px\]{font-size:9px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12px\]{font-size:12px}.text-\[48px\]{font-size:48px}.leading-4{--tw-leading:calc(var(--spacing) * 4);line-height:calc(var(--spacing) * 4)}.leading-5{--tw-leading:calc(var(--spacing) * 5);line-height:calc(var(--spacing) * 5)}.leading-6{--tw-leading:calc(var(--spacing) * 6);line-height:calc(var(--spacing) * 6)}.leading-7{--tw-leading:calc(var(--spacing) * 7);line-height:calc(var(--spacing) * 7)}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.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-\[0\.2em\]{--tw-tracking:.2em;letter-spacing:.2em}.tracking-\[0\.12em\]{--tw-tracking:.12em;letter-spacing:.12em}.tracking-\[0\.14em\]{--tw-tracking:.14em;letter-spacing:.14em}.tracking-\[0\.15em\]{--tw-tracking:.15em;letter-spacing:.15em}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.whitespace-pre-wrap{white-space:pre-wrap}.text-\[\#0f172a\]{color:#0f172a}.text-\[\#1d1d1f\]{color:#1d1d1f}.text-\[\#1e293b\]{color:#1e293b}.text-\[\#1f2937\]{color:#1f2937}.text-\[\#5b5fc7\]{color:#5b5fc7}.text-\[\#6b7280\]{color:#6b7280}.text-\[\#6ee7b7\]{color:#6ee7b7}.text-\[\#9a3412\]{color:#9a3412}.text-\[\#22c55e\]{color:#22c55e}.text-\[\#60a5fa\]{color:#60a5fa}.text-\[\#86efac\]{color:#86efac}.text-\[\#64748b\]{color:#64748b}.text-\[\#172033\]{color:#172033}.text-\[\#242424\]{color:#242424}.text-\[\#334155\]{color:#334155}.text-\[\#475569\]{color:#475569}.text-\[\#bbf7d0\]{color:#bbf7d0}.text-\[\#d1fae5\]{color:#d1fae5}.text-\[\#dbeafe\]{color:#dbeafe}.text-amber-700{color:var(--color-amber-700)}.text-amber-950{color:var(--color-amber-950)}.text-blue-700{color:var(--color-blue-700)}.text-cyan-700{color:var(--color-cyan-700)}.text-cyan-950{color:var(--color-cyan-950)}.text-emerald-700{color:var(--color-emerald-700)}.text-fuchsia-700{color:var(--color-fuchsia-700)}.text-green-700{color:var(--color-green-700)}.text-indigo-700{color:var(--color-indigo-700)}.text-lime-700{color:var(--color-lime-700)}.text-lime-950{color:var(--color-lime-950)}.text-orange-700{color:var(--color-orange-700)}.text-ouro-bone{color:var(--color-ouro-bone)}.text-ouro-fang{color:var(--color-ouro-fang)}.text-ouro-glow{color:var(--color-ouro-glow)}.text-ouro-glow\/50{color:#74e08f80}@supports (color:color-mix(in lab,red,red)){.text-ouro-glow\/50{color:color-mix(in oklab,var(--color-ouro-glow) 50%,transparent)}}.text-ouro-glow\/60{color:#74e08f99}@supports (color:color-mix(in lab,red,red)){.text-ouro-glow\/60{color:color-mix(in oklab,var(--color-ouro-glow) 60%,transparent)}}.text-ouro-glow\/70{color:#74e08fb3}@supports (color:color-mix(in lab,red,red)){.text-ouro-glow\/70{color:color-mix(in oklab,var(--color-ouro-glow) 70%,transparent)}}.text-ouro-gold{color:var(--color-ouro-gold)}.text-ouro-gold\/50{color:#d6b56f80}@supports (color:color-mix(in lab,red,red)){.text-ouro-gold\/50{color:color-mix(in oklab,var(--color-ouro-gold) 50%,transparent)}}.text-ouro-gold\/70{color:#d6b56fb3}@supports (color:color-mix(in lab,red,red)){.text-ouro-gold\/70{color:color-mix(in oklab,var(--color-ouro-gold) 70%,transparent)}}.text-ouro-mist{color:var(--color-ouro-mist)}.text-ouro-mist\/60{color:#a5b8a899}@supports (color:color-mix(in lab,red,red)){.text-ouro-mist\/60{color:color-mix(in oklab,var(--color-ouro-mist) 60%,transparent)}}.text-ouro-shadow{color:var(--color-ouro-shadow)}.text-ouro-shadow\/30{color:#7083734d}@supports (color:color-mix(in lab,red,red)){.text-ouro-shadow\/30{color:color-mix(in oklab,var(--color-ouro-shadow) 30%,transparent)}}.text-ouro-shadow\/40{color:#70837366}@supports (color:color-mix(in lab,red,red)){.text-ouro-shadow\/40{color:color-mix(in oklab,var(--color-ouro-shadow) 40%,transparent)}}.text-ouro-shadow\/50{color:#70837380}@supports (color:color-mix(in lab,red,red)){.text-ouro-shadow\/50{color:color-mix(in oklab,var(--color-ouro-shadow) 50%,transparent)}}.text-ouro-shadow\/60{color:#70837399}@supports (color:color-mix(in lab,red,red)){.text-ouro-shadow\/60{color:color-mix(in oklab,var(--color-ouro-shadow) 60%,transparent)}}.text-ouro-shadow\/70{color:#708373b3}@supports (color:color-mix(in lab,red,red)){.text-ouro-shadow\/70{color:color-mix(in oklab,var(--color-ouro-shadow) 70%,transparent)}}.text-pink-700{color:var(--color-pink-700)}.text-purple-700{color:var(--color-purple-700)}.text-red-700{color:var(--color-red-700)}.text-rose-700{color:var(--color-rose-700)}.text-sky-700{color:var(--color-sky-700)}.text-teal-700{color:var(--color-teal-700)}.text-violet-700{color:var(--color-violet-700)}.text-white{color:var(--color-white)}.text-white\/70{color:#ffffffb3}@supports (color:color-mix(in lab,red,red)){.text-white\/70{color:color-mix(in oklab,var(--color-white) 70%,transparent)}}.text-yellow-700{color:var(--color-yellow-700)}.text-yellow-950{color:var(--color-yellow-950)}.text-zinc-500{color:var(--color-zinc-500)}.text-zinc-700{color:var(--color-zinc-700)}.text-zinc-950{color:var(--color-zinc-950)}.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-ouro-glow\/30{text-decoration-color:#74e08f4d}@supports (color:color-mix(in lab,red,red)){.decoration-ouro-glow\/30{-webkit-text-decoration-color:color-mix(in oklab,var(--color-ouro-glow) 30%,transparent);text-decoration-color:color-mix(in oklab,var(--color-ouro-glow) 30%,transparent)}}.decoration-zinc-950\/50{text-decoration-color:#09090b80}@supports (color:color-mix(in lab,red,red)){.decoration-zinc-950\/50{-webkit-text-decoration-color:color-mix(in oklab,var(--color-zinc-950) 50%,transparent);text-decoration-color:color-mix(in oklab,var(--color-zinc-950) 50%,transparent)}}.underline-offset-2{text-underline-offset:2px}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.opacity-80{opacity:.8}.shadow{--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)}.shadow-\[0_0_16px_theme\(--color-ouro-glow\)\]{--tw-shadow:0 0 16px var(--tw-shadow-color,#74e08f);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_20px_theme\(--color-ouro-glow\)\]{--tw-shadow:0 0 20px var(--tw-shadow-color,#74e08f);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.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)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px 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)}.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-\[\#1f3a2c\]{--tw-ring-color:#1f3a2c}.ring-\[\#c4b5fd\]{--tw-ring-color:#c4b5fd}.ring-\[\#d8d1ff\]{--tw-ring-color:#d8d1ff}.ring-\[\#e5e5e5\]{--tw-ring-color:#e5e5e5}.ring-black\/10{--tw-ring-color:#0000001a}@supports (color:color-mix(in lab,red,red)){.ring-black\/10{--tw-ring-color:color-mix(in oklab, var(--color-black) 10%, transparent)}}.ring-current\/10{--tw-ring-color:currentcolor}@supports (color:color-mix(in lab,red,red)){.ring-current\/10{--tw-ring-color:color-mix(in oklab, currentcolor 10%, transparent)}}.ring-ouro-fang\/10{--tw-ring-color:#d35f471a}@supports (color:color-mix(in lab,red,red)){.ring-ouro-fang\/10{--tw-ring-color:color-mix(in oklab, var(--color-ouro-fang) 10%, transparent)}}.ring-ouro-fang\/15{--tw-ring-color:#d35f4726}@supports (color:color-mix(in lab,red,red)){.ring-ouro-fang\/15{--tw-ring-color:color-mix(in oklab, var(--color-ouro-fang) 15%, transparent)}}.ring-ouro-glow\/8{--tw-ring-color:#74e08f14}@supports (color:color-mix(in lab,red,red)){.ring-ouro-glow\/8{--tw-ring-color:color-mix(in oklab, var(--color-ouro-glow) 8%, transparent)}}.ring-ouro-glow\/10{--tw-ring-color:#74e08f1a}@supports (color:color-mix(in lab,red,red)){.ring-ouro-glow\/10{--tw-ring-color:color-mix(in oklab, var(--color-ouro-glow) 10%, transparent)}}.ring-ouro-glow\/12{--tw-ring-color:#74e08f1f}@supports (color:color-mix(in lab,red,red)){.ring-ouro-glow\/12{--tw-ring-color:color-mix(in oklab, var(--color-ouro-glow) 12%, transparent)}}.ring-ouro-glow\/15{--tw-ring-color:#74e08f26}@supports (color:color-mix(in lab,red,red)){.ring-ouro-glow\/15{--tw-ring-color:color-mix(in oklab, var(--color-ouro-glow) 15%, transparent)}}.ring-ouro-glow\/20{--tw-ring-color:#74e08f33}@supports (color:color-mix(in lab,red,red)){.ring-ouro-glow\/20{--tw-ring-color:color-mix(in oklab, var(--color-ouro-glow) 20%, transparent)}}.ring-ouro-gold\/10{--tw-ring-color:#d6b56f1a}@supports (color:color-mix(in lab,red,red)){.ring-ouro-gold\/10{--tw-ring-color:color-mix(in oklab, var(--color-ouro-gold) 10%, transparent)}}.ring-ouro-gold\/15{--tw-ring-color:#d6b56f26}@supports (color:color-mix(in lab,red,red)){.ring-ouro-gold\/15{--tw-ring-color:color-mix(in oklab, var(--color-ouro-gold) 15%, transparent)}}.ring-ouro-moss\/10{--tw-ring-color:#1833251a}@supports (color:color-mix(in lab,red,red)){.ring-ouro-moss\/10{--tw-ring-color:color-mix(in oklab, var(--color-ouro-moss) 10%, transparent)}}.ring-ouro-moss\/12{--tw-ring-color:#1833251f}@supports (color:color-mix(in lab,red,red)){.ring-ouro-moss\/12{--tw-ring-color:color-mix(in oklab, var(--color-ouro-moss) 12%, transparent)}}.ring-ouro-moss\/15{--tw-ring-color:#18332526}@supports (color:color-mix(in lab,red,red)){.ring-ouro-moss\/15{--tw-ring-color:color-mix(in oklab, var(--color-ouro-moss) 15%, transparent)}}.ring-ouro-moss\/20{--tw-ring-color:#18332533}@supports (color:color-mix(in lab,red,red)){.ring-ouro-moss\/20{--tw-ring-color:color-mix(in oklab, var(--color-ouro-moss) 20%, transparent)}}.ring-ouro-moss\/40{--tw-ring-color:#18332566}@supports (color:color-mix(in lab,red,red)){.ring-ouro-moss\/40{--tw-ring-color:color-mix(in oklab, var(--color-ouro-moss) 40%, transparent)}}.ring-ouro-scale\/15{--tw-ring-color:#2f8f4e26}@supports (color:color-mix(in lab,red,red)){.ring-ouro-scale\/15{--tw-ring-color:color-mix(in oklab, var(--color-ouro-scale) 15%, transparent)}}.ring-ouro-scale\/20{--tw-ring-color:#2f8f4e33}@supports (color:color-mix(in lab,red,red)){.ring-ouro-scale\/20{--tw-ring-color:color-mix(in oklab, var(--color-ouro-scale) 20%, transparent)}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.-outline-offset-1{outline-offset:-1px}.outline-black\/10{outline-color:#0000001a}@supports (color:color-mix(in lab,red,red)){.outline-black\/10{outline-color:color-mix(in oklab,var(--color-black) 10%,transparent)}}.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-all{transition-property:all;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))}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.select-none{-webkit-user-select:none;user-select:none}.\[--avatar-radius\:20\%\]{--avatar-radius:20%}.\[--btn-bg\:var\(--color-amber-400\)\]{--btn-bg:var(--color-amber-400)}.\[--btn-bg\:var\(--color-blue-600\)\]{--btn-bg:var(--color-blue-600)}.\[--btn-bg\:var\(--color-cyan-300\)\]{--btn-bg:var(--color-cyan-300)}.\[--btn-bg\:var\(--color-emerald-600\)\]{--btn-bg:var(--color-emerald-600)}.\[--btn-bg\:var\(--color-fuchsia-500\)\]{--btn-bg:var(--color-fuchsia-500)}.\[--btn-bg\:var\(--color-green-600\)\]{--btn-bg:var(--color-green-600)}.\[--btn-bg\:var\(--color-indigo-500\)\]{--btn-bg:var(--color-indigo-500)}.\[--btn-bg\:var\(--color-lime-300\)\]{--btn-bg:var(--color-lime-300)}.\[--btn-bg\:var\(--color-orange-500\)\]{--btn-bg:var(--color-orange-500)}.\[--btn-bg\:var\(--color-pink-500\)\]{--btn-bg:var(--color-pink-500)}.\[--btn-bg\:var\(--color-purple-500\)\]{--btn-bg:var(--color-purple-500)}.\[--btn-bg\:var\(--color-red-600\)\]{--btn-bg:var(--color-red-600)}.\[--btn-bg\:var\(--color-rose-500\)\]{--btn-bg:var(--color-rose-500)}.\[--btn-bg\:var\(--color-sky-500\)\]{--btn-bg:var(--color-sky-500)}.\[--btn-bg\:var\(--color-teal-600\)\]{--btn-bg:var(--color-teal-600)}.\[--btn-bg\:var\(--color-violet-500\)\]{--btn-bg:var(--color-violet-500)}.\[--btn-bg\:var\(--color-yellow-300\)\]{--btn-bg:var(--color-yellow-300)}.\[--btn-bg\:var\(--color-zinc-600\)\]{--btn-bg:var(--color-zinc-600)}.\[--btn-bg\:var\(--color-zinc-900\)\]{--btn-bg:var(--color-zinc-900)}.\[--btn-bg\:white\]{--btn-bg:white}.\[--btn-border\:var\(--color-amber-500\)\]\/80{--btn-border:#f99c00cc}@supports (color:color-mix(in lab,red,red)){.\[--btn-border\:var\(--color-amber-500\)\]\/80{--btn-border:color-mix(in oklab, var(--color-amber-500) 80%, transparent)}}.\[--btn-border\:var\(--color-blue-700\)\]\/90{--btn-border:#1447e6e6}@supports (color:color-mix(in lab,red,red)){.\[--btn-border\:var\(--color-blue-700\)\]\/90{--btn-border:color-mix(in oklab, var(--color-blue-700) 90%, transparent)}}.\[--btn-border\:var\(--color-cyan-400\)\]\/80{--btn-border:#00d2efcc}@supports (color:color-mix(in lab,red,red)){.\[--btn-border\:var\(--color-cyan-400\)\]\/80{--btn-border:color-mix(in oklab, var(--color-cyan-400) 80%, transparent)}}.\[--btn-border\:var\(--color-emerald-700\)\]\/90{--btn-border:#007956e6}@supports (color:color-mix(in lab,red,red)){.\[--btn-border\:var\(--color-emerald-700\)\]\/90{--btn-border:color-mix(in oklab, var(--color-emerald-700) 90%, transparent)}}.\[--btn-border\:var\(--color-fuchsia-600\)\]\/90{--btn-border:#c600dbe6}@supports (color:color-mix(in lab,red,red)){.\[--btn-border\:var\(--color-fuchsia-600\)\]\/90{--btn-border:color-mix(in oklab, var(--color-fuchsia-600) 90%, transparent)}}.\[--btn-border\:var\(--color-green-700\)\]\/90{--btn-border:#008138e6}@supports (color:color-mix(in lab,red,red)){.\[--btn-border\:var\(--color-green-700\)\]\/90{--btn-border:color-mix(in oklab, var(--color-green-700) 90%, transparent)}}.\[--btn-border\:var\(--color-indigo-600\)\]\/90{--btn-border:#4f39f6e6}@supports (color:color-mix(in lab,red,red)){.\[--btn-border\:var\(--color-indigo-600\)\]\/90{--btn-border:color-mix(in oklab, var(--color-indigo-600) 90%, transparent)}}.\[--btn-border\:var\(--color-lime-400\)\]\/80{--btn-border:#9de500cc}@supports (color:color-mix(in lab,red,red)){.\[--btn-border\:var\(--color-lime-400\)\]\/80{--btn-border:color-mix(in oklab, var(--color-lime-400) 80%, transparent)}}.\[--btn-border\:var\(--color-orange-600\)\]\/90{--btn-border:#f05100e6}@supports (color:color-mix(in lab,red,red)){.\[--btn-border\:var\(--color-orange-600\)\]\/90{--btn-border:color-mix(in oklab, var(--color-orange-600) 90%, transparent)}}.\[--btn-border\:var\(--color-pink-600\)\]\/90{--btn-border:#e30076e6}@supports (color:color-mix(in lab,red,red)){.\[--btn-border\:var\(--color-pink-600\)\]\/90{--btn-border:color-mix(in oklab, var(--color-pink-600) 90%, transparent)}}.\[--btn-border\:var\(--color-purple-600\)\]\/90{--btn-border:#9810fae6}@supports (color:color-mix(in lab,red,red)){.\[--btn-border\:var\(--color-purple-600\)\]\/90{--btn-border:color-mix(in oklab, var(--color-purple-600) 90%, transparent)}}.\[--btn-border\:var\(--color-red-700\)\]\/90{--btn-border:#bf000fe6}@supports (color:color-mix(in lab,red,red)){.\[--btn-border\:var\(--color-red-700\)\]\/90{--btn-border:color-mix(in oklab, var(--color-red-700) 90%, transparent)}}.\[--btn-border\:var\(--color-rose-600\)\]\/90{--btn-border:#e70044e6}@supports (color:color-mix(in lab,red,red)){.\[--btn-border\:var\(--color-rose-600\)\]\/90{--btn-border:color-mix(in oklab, var(--color-rose-600) 90%, transparent)}}.\[--btn-border\:var\(--color-sky-600\)\]\/80{--btn-border:#0084cccc}@supports (color:color-mix(in lab,red,red)){.\[--btn-border\:var\(--color-sky-600\)\]\/80{--btn-border:color-mix(in oklab, var(--color-sky-600) 80%, transparent)}}.\[--btn-border\:var\(--color-teal-700\)\]\/90{--btn-border:#00776ee6}@supports (color:color-mix(in lab,red,red)){.\[--btn-border\:var\(--color-teal-700\)\]\/90{--btn-border:color-mix(in oklab, var(--color-teal-700) 90%, transparent)}}.\[--btn-border\:var\(--color-violet-600\)\]\/90{--btn-border:#7f22fee6}@supports (color:color-mix(in lab,red,red)){.\[--btn-border\:var\(--color-violet-600\)\]\/90{--btn-border:color-mix(in oklab, var(--color-violet-600) 90%, transparent)}}.\[--btn-border\:var\(--color-yellow-400\)\]\/80{--btn-border:#fac800cc}@supports (color:color-mix(in lab,red,red)){.\[--btn-border\:var\(--color-yellow-400\)\]\/80{--btn-border:color-mix(in oklab, var(--color-yellow-400) 80%, transparent)}}.\[--btn-border\:var\(--color-zinc-700\)\]\/90{--btn-border:#3f3f46e6}@supports (color:color-mix(in lab,red,red)){.\[--btn-border\:var\(--color-zinc-700\)\]\/90{--btn-border:color-mix(in oklab, var(--color-zinc-700) 90%, transparent)}}.\[--btn-border\:var\(--color-zinc-950\)\]\/10{--btn-border:#09090b1a}@supports (color:color-mix(in lab,red,red)){.\[--btn-border\:var\(--color-zinc-950\)\]\/10{--btn-border:color-mix(in oklab, var(--color-zinc-950) 10%, transparent)}}.\[--btn-border\:var\(--color-zinc-950\)\]\/90{--btn-border:#09090be6}@supports (color:color-mix(in lab,red,red)){.\[--btn-border\:var\(--color-zinc-950\)\]\/90{--btn-border:color-mix(in oklab, var(--color-zinc-950) 90%, transparent)}}.\[--btn-hover-overlay\:var\(--color-white\)\]\/10{--btn-hover-overlay:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.\[--btn-hover-overlay\:var\(--color-white\)\]\/10{--btn-hover-overlay:color-mix(in oklab, var(--color-white) 10%, transparent)}}.\[--btn-hover-overlay\:var\(--color-white\)\]\/25{--btn-hover-overlay:#ffffff40}@supports (color:color-mix(in lab,red,red)){.\[--btn-hover-overlay\:var\(--color-white\)\]\/25{--btn-hover-overlay:color-mix(in oklab, var(--color-white) 25%, transparent)}}.\[--btn-hover-overlay\:var\(--color-zinc-950\)\]\/2\.5{--btn-hover-overlay:#09090b06}@supports (color:color-mix(in lab,red,red)){.\[--btn-hover-overlay\:var\(--color-zinc-950\)\]\/2\.5{--btn-hover-overlay:color-mix(in oklab, var(--color-zinc-950) 2.5%, transparent)}}.\[--btn-icon\:var\(--color-amber-600\)\]{--btn-icon:var(--color-amber-600)}.\[--btn-icon\:var\(--color-blue-400\)\]{--btn-icon:var(--color-blue-400)}.\[--btn-icon\:var\(--color-cyan-500\)\]{--btn-icon:var(--color-cyan-500)}.\[--btn-icon\:var\(--color-fuchsia-300\)\]{--btn-icon:var(--color-fuchsia-300)}.\[--btn-icon\:var\(--color-indigo-300\)\]{--btn-icon:var(--color-indigo-300)}.\[--btn-icon\:var\(--color-lime-600\)\]{--btn-icon:var(--color-lime-600)}.\[--btn-icon\:var\(--color-orange-300\)\]{--btn-icon:var(--color-orange-300)}.\[--btn-icon\:var\(--color-pink-300\)\]{--btn-icon:var(--color-pink-300)}.\[--btn-icon\:var\(--color-purple-300\)\]{--btn-icon:var(--color-purple-300)}.\[--btn-icon\:var\(--color-red-300\)\]{--btn-icon:var(--color-red-300)}.\[--btn-icon\:var\(--color-rose-300\)\]{--btn-icon:var(--color-rose-300)}.\[--btn-icon\:var\(--color-violet-300\)\]{--btn-icon:var(--color-violet-300)}.\[--btn-icon\:var\(--color-white\)\]\/60{--btn-icon:#fff9}@supports (color:color-mix(in lab,red,red)){.\[--btn-icon\:var\(--color-white\)\]\/60{--btn-icon:color-mix(in oklab, var(--color-white) 60%, transparent)}}.\[--btn-icon\:var\(--color-yellow-600\)\]{--btn-icon:var(--color-yellow-600)}.\[--btn-icon\:var\(--color-zinc-400\)\]{--btn-icon:var(--color-zinc-400)}.\[--btn-icon\:var\(--color-zinc-500\)\]{--btn-icon:var(--color-zinc-500)}:is(.\*\:col-start-1>*){grid-column-start:1}:is(.\*\:row-start-1>*){grid-row-start:1}:is(.\*\:rounded-\(--avatar-radius\)>*){border-radius:var(--avatar-radius)}:is(.\*\:rounded-full>*){border-radius:3.40282e38px}.group-data-hover\:bg-amber-400\/30:is(:where(.group)[data-hover] *){background-color:#fcbb004d}@supports (color:color-mix(in lab,red,red)){.group-data-hover\:bg-amber-400\/30:is(:where(.group)[data-hover] *){background-color:color-mix(in oklab,var(--color-amber-400) 30%,transparent)}}.group-data-hover\:bg-blue-500\/25:is(:where(.group)[data-hover] *){background-color:#3080ff40}@supports (color:color-mix(in lab,red,red)){.group-data-hover\:bg-blue-500\/25:is(:where(.group)[data-hover] *){background-color:color-mix(in oklab,var(--color-blue-500) 25%,transparent)}}.group-data-hover\:bg-cyan-400\/30:is(:where(.group)[data-hover] *){background-color:#00d2ef4d}@supports (color:color-mix(in lab,red,red)){.group-data-hover\:bg-cyan-400\/30:is(:where(.group)[data-hover] *){background-color:color-mix(in oklab,var(--color-cyan-400) 30%,transparent)}}.group-data-hover\:bg-emerald-500\/25:is(:where(.group)[data-hover] *){background-color:#00bb7f40}@supports (color:color-mix(in lab,red,red)){.group-data-hover\:bg-emerald-500\/25:is(:where(.group)[data-hover] *){background-color:color-mix(in oklab,var(--color-emerald-500) 25%,transparent)}}.group-data-hover\:bg-fuchsia-400\/25:is(:where(.group)[data-hover] *){background-color:#ec6cff40}@supports (color:color-mix(in lab,red,red)){.group-data-hover\:bg-fuchsia-400\/25:is(:where(.group)[data-hover] *){background-color:color-mix(in oklab,var(--color-fuchsia-400) 25%,transparent)}}.group-data-hover\:bg-green-500\/25:is(:where(.group)[data-hover] *){background-color:#00c75840}@supports (color:color-mix(in lab,red,red)){.group-data-hover\:bg-green-500\/25:is(:where(.group)[data-hover] *){background-color:color-mix(in oklab,var(--color-green-500) 25%,transparent)}}.group-data-hover\:bg-indigo-500\/25:is(:where(.group)[data-hover] *){background-color:#625fff40}@supports (color:color-mix(in lab,red,red)){.group-data-hover\:bg-indigo-500\/25:is(:where(.group)[data-hover] *){background-color:color-mix(in oklab,var(--color-indigo-500) 25%,transparent)}}.group-data-hover\:bg-lime-400\/30:is(:where(.group)[data-hover] *){background-color:#9de5004d}@supports (color:color-mix(in lab,red,red)){.group-data-hover\:bg-lime-400\/30:is(:where(.group)[data-hover] *){background-color:color-mix(in oklab,var(--color-lime-400) 30%,transparent)}}.group-data-hover\:bg-orange-500\/25:is(:where(.group)[data-hover] *){background-color:#fe6e0040}@supports (color:color-mix(in lab,red,red)){.group-data-hover\:bg-orange-500\/25:is(:where(.group)[data-hover] *){background-color:color-mix(in oklab,var(--color-orange-500) 25%,transparent)}}.group-data-hover\:bg-pink-400\/25:is(:where(.group)[data-hover] *){background-color:#fb64b640}@supports (color:color-mix(in lab,red,red)){.group-data-hover\:bg-pink-400\/25:is(:where(.group)[data-hover] *){background-color:color-mix(in oklab,var(--color-pink-400) 25%,transparent)}}.group-data-hover\:bg-purple-500\/25:is(:where(.group)[data-hover] *){background-color:#ac4bff40}@supports (color:color-mix(in lab,red,red)){.group-data-hover\:bg-purple-500\/25:is(:where(.group)[data-hover] *){background-color:color-mix(in oklab,var(--color-purple-500) 25%,transparent)}}.group-data-hover\:bg-red-500\/25:is(:where(.group)[data-hover] *){background-color:#fb2c3640}@supports (color:color-mix(in lab,red,red)){.group-data-hover\:bg-red-500\/25:is(:where(.group)[data-hover] *){background-color:color-mix(in oklab,var(--color-red-500) 25%,transparent)}}.group-data-hover\:bg-rose-400\/25:is(:where(.group)[data-hover] *){background-color:#ff667f40}@supports (color:color-mix(in lab,red,red)){.group-data-hover\:bg-rose-400\/25:is(:where(.group)[data-hover] *){background-color:color-mix(in oklab,var(--color-rose-400) 25%,transparent)}}.group-data-hover\:bg-sky-500\/25:is(:where(.group)[data-hover] *){background-color:#00a5ef40}@supports (color:color-mix(in lab,red,red)){.group-data-hover\:bg-sky-500\/25:is(:where(.group)[data-hover] *){background-color:color-mix(in oklab,var(--color-sky-500) 25%,transparent)}}.group-data-hover\:bg-teal-500\/25:is(:where(.group)[data-hover] *){background-color:#00baa740}@supports (color:color-mix(in lab,red,red)){.group-data-hover\:bg-teal-500\/25:is(:where(.group)[data-hover] *){background-color:color-mix(in oklab,var(--color-teal-500) 25%,transparent)}}.group-data-hover\:bg-violet-500\/25:is(:where(.group)[data-hover] *){background-color:#8d54ff40}@supports (color:color-mix(in lab,red,red)){.group-data-hover\:bg-violet-500\/25:is(:where(.group)[data-hover] *){background-color:color-mix(in oklab,var(--color-violet-500) 25%,transparent)}}.group-data-hover\:bg-yellow-400\/30:is(:where(.group)[data-hover] *){background-color:#fac8004d}@supports (color:color-mix(in lab,red,red)){.group-data-hover\:bg-yellow-400\/30:is(:where(.group)[data-hover] *){background-color:color-mix(in oklab,var(--color-yellow-400) 30%,transparent)}}.group-data-hover\:bg-zinc-600\/20:is(:where(.group)[data-hover] *){background-color:#52525c33}@supports (color:color-mix(in lab,red,red)){.group-data-hover\:bg-zinc-600\/20:is(:where(.group)[data-hover] *){background-color:color-mix(in oklab,var(--color-zinc-600) 20%,transparent)}}.before\:absolute:before{content:var(--tw-content);position:absolute}.before\:inset-0:before{content:var(--tw-content);inset:calc(var(--spacing) * 0)}.before\:-z-10:before{content:var(--tw-content);z-index:-10}.before\:rounded-\[calc\(var\(--radius-lg\)-1px\)\]:before{content:var(--tw-content);border-radius:calc(var(--radius-lg) - 1px)}.before\:bg-\(--btn-bg\):before{content:var(--tw-content);background-color:var(--btn-bg)}.before\:shadow-sm:before{content:var(--tw-content);--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)}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:inset-0:after{content:var(--tw-content);inset:calc(var(--spacing) * 0)}.after\:-z-10:after{content:var(--tw-content);z-index:-10}.after\:rounded-\[calc\(var\(--radius-lg\)-1px\)\]:after{content:var(--tw-content);border-radius:calc(var(--radius-lg) - 1px)}.after\:shadow-\[inset_0_1px_--theme\(--color-white\/15\%\)\]:after{content:var(--tw-content);--tw-shadow:inset 0 1px var(--tw-shadow-color,#ffffff26)}@supports (color:color-mix(in lab,red,red)){.after\:shadow-\[inset_0_1px_--theme\(--color-white\/15\%\)\]:after{--tw-shadow:inset 0 1px var(--tw-shadow-color,color-mix(in oklab, var(--color-white) 15%, transparent))}}.after\:shadow-\[inset_0_1px_--theme\(--color-white\/15\%\)\]:after{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.first\:border-none:first-child{--tw-border-style:none;border-style:none}.last\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}@media(hover:hover){.hover\:bg-\[\#f8fafc\]:hover{background-color:#f8fafc}.hover\:bg-ouro-moss\/8:hover{background-color:#18332514}@supports (color:color-mix(in lab,red,red)){.hover\:bg-ouro-moss\/8:hover{background-color:color-mix(in oklab,var(--color-ouro-moss) 8%,transparent)}}.hover\:bg-ouro-moss\/10:hover{background-color:#1833251a}@supports (color:color-mix(in lab,red,red)){.hover\:bg-ouro-moss\/10:hover{background-color:color-mix(in oklab,var(--color-ouro-moss) 10%,transparent)}}.hover\:bg-white\/60:hover{background-color:#fff9}@supports (color:color-mix(in lab,red,red)){.hover\:bg-white\/60:hover{background-color:color-mix(in oklab,var(--color-white) 60%,transparent)}}.hover\:text-ouro-bone:hover{color:var(--color-ouro-bone)}.hover\:text-ouro-fang:hover{color:var(--color-ouro-fang)}.hover\:text-ouro-glow:hover{color:var(--color-ouro-glow)}.hover\:text-ouro-mist:hover{color:var(--color-ouro-mist)}.hover\:decoration-ouro-glow:hover{-webkit-text-decoration-color:var(--color-ouro-glow);text-decoration-color:var(--color-ouro-glow)}.hover\:opacity-90:hover{opacity:.9}.hover\:ring-\[\#0a84ff\]\/30:hover{--tw-ring-color:oklab(62.4254% -.0515206 -.199017/.3)}.hover\:ring-\[\#5b5fc7\]\/40:hover{--tw-ring-color:oklab(53.6756% .021962 -.157026/.4)}.hover\:ring-\[\#22c55e\]\/40:hover{--tw-ring-color:oklab(72.2746% -.165574 .0972219/.4)}.hover\:ring-ouro-fang\/25:hover{--tw-ring-color:#d35f4740}@supports (color:color-mix(in lab,red,red)){.hover\:ring-ouro-fang\/25:hover{--tw-ring-color:color-mix(in oklab, var(--color-ouro-fang) 25%, transparent)}}.hover\:ring-ouro-glow\/15:hover{--tw-ring-color:#74e08f26}@supports (color:color-mix(in lab,red,red)){.hover\:ring-ouro-glow\/15:hover{--tw-ring-color:color-mix(in oklab, var(--color-ouro-glow) 15%, transparent)}}.hover\:ring-ouro-glow\/20:hover{--tw-ring-color:#74e08f33}@supports (color:color-mix(in lab,red,red)){.hover\:ring-ouro-glow\/20:hover{--tw-ring-color:color-mix(in oklab, var(--color-ouro-glow) 20%, transparent)}}.hover\:ring-ouro-glow\/25:hover{--tw-ring-color:#74e08f40}@supports (color:color-mix(in lab,red,red)){.hover\:ring-ouro-glow\/25:hover{--tw-ring-color:color-mix(in oklab, var(--color-ouro-glow) 25%, transparent)}}.hover\:ring-ouro-glow\/30:hover{--tw-ring-color:#74e08f4d}@supports (color:color-mix(in lab,red,red)){.hover\:ring-ouro-glow\/30:hover{--tw-ring-color:color-mix(in oklab, var(--color-ouro-glow) 30%, transparent)}}.hover\:ring-ouro-moss\/20:hover{--tw-ring-color:#18332533}@supports (color:color-mix(in lab,red,red)){.hover\:ring-ouro-moss\/20:hover{--tw-ring-color:color-mix(in oklab, var(--color-ouro-moss) 20%, transparent)}}}.focus\:not-data-focus\:outline-hidden:focus:not([data-focus]){--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.focus\:not-data-focus\:outline-hidden:focus:not([data-focus]){outline-offset:2px;outline:2px solid #0000}}.data-active\:bg-zinc-950\/2\.5[data-active]{background-color:#09090b06}@supports (color:color-mix(in lab,red,red)){.data-active\:bg-zinc-950\/2\.5[data-active]{background-color:color-mix(in oklab,var(--color-zinc-950) 2.5%,transparent)}}.data-active\:bg-zinc-950\/5[data-active]{background-color:#09090b0d}@supports (color:color-mix(in lab,red,red)){.data-active\:bg-zinc-950\/5[data-active]{background-color:color-mix(in oklab,var(--color-zinc-950) 5%,transparent)}}.data-active\:\[--btn-border\:var\(--color-zinc-950\)\]\/15[data-active]{--btn-border:#09090b26}@supports (color:color-mix(in lab,red,red)){.data-active\:\[--btn-border\:var\(--color-zinc-950\)\]\/15[data-active]{--btn-border:color-mix(in oklab, var(--color-zinc-950) 15%, transparent)}}.data-active\:\[--btn-icon\:var\(--color-blue-300\)\][data-active]{--btn-icon:var(--color-blue-300)}.data-active\:\[--btn-icon\:var\(--color-fuchsia-200\)\][data-active]{--btn-icon:var(--color-fuchsia-200)}.data-active\:\[--btn-icon\:var\(--color-indigo-200\)\][data-active]{--btn-icon:var(--color-indigo-200)}.data-active\:\[--btn-icon\:var\(--color-lime-700\)\][data-active]{--btn-icon:var(--color-lime-700)}.data-active\:\[--btn-icon\:var\(--color-orange-200\)\][data-active]{--btn-icon:var(--color-orange-200)}.data-active\:\[--btn-icon\:var\(--color-pink-200\)\][data-active]{--btn-icon:var(--color-pink-200)}.data-active\:\[--btn-icon\:var\(--color-purple-200\)\][data-active]{--btn-icon:var(--color-purple-200)}.data-active\:\[--btn-icon\:var\(--color-red-200\)\][data-active]{--btn-icon:var(--color-red-200)}.data-active\:\[--btn-icon\:var\(--color-rose-200\)\][data-active]{--btn-icon:var(--color-rose-200)}.data-active\:\[--btn-icon\:var\(--color-violet-200\)\][data-active]{--btn-icon:var(--color-violet-200)}.data-active\:\[--btn-icon\:var\(--color-white\)\]\/80[data-active]{--btn-icon:#fffc}@supports (color:color-mix(in lab,red,red)){.data-active\:\[--btn-icon\:var\(--color-white\)\]\/80[data-active]{--btn-icon:color-mix(in oklab, var(--color-white) 80%, transparent)}}.data-active\:\[--btn-icon\:var\(--color-yellow-700\)\][data-active]{--btn-icon:var(--color-yellow-700)}.data-active\:\[--btn-icon\:var\(--color-zinc-300\)\][data-active]{--btn-icon:var(--color-zinc-300)}.data-active\:\[--btn-icon\:var\(--color-zinc-500\)\][data-active]{--btn-icon:var(--color-zinc-500)}.data-active\:\[--btn-icon\:var\(--color-zinc-700\)\][data-active]{--btn-icon:var(--color-zinc-700)}.data-active\:after\:bg-\(--btn-hover-overlay\)[data-active]:after{content:var(--tw-content);background-color:var(--btn-hover-overlay)}.data-closed\:-translate-x-full[data-closed]{--tw-translate-x:-100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.data-closed\:opacity-0[data-closed]{opacity:0}.data-disabled\:opacity-50[data-disabled]{opacity:.5}.data-disabled\:before\:shadow-none[data-disabled]:before,.data-disabled\:after\:shadow-none[data-disabled]:after{content:var(--tw-content);--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.data-enter\:duration-300[data-enter]{--tw-duration:.3s;transition-duration:.3s}.data-enter\:ease-out[data-enter]{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.data-focus\:outline-2[data-focus]{outline-style:var(--tw-outline-style);outline-width:2px}.data-focus\:outline-offset-2[data-focus]{outline-offset:2px}.data-focus\:outline-blue-500[data-focus]{outline-color:var(--color-blue-500)}.data-hover\:bg-zinc-950\/2\.5[data-hover]{background-color:#09090b06}@supports (color:color-mix(in lab,red,red)){.data-hover\:bg-zinc-950\/2\.5[data-hover]{background-color:color-mix(in oklab,var(--color-zinc-950) 2.5%,transparent)}}.data-hover\:bg-zinc-950\/5[data-hover]{background-color:#09090b0d}@supports (color:color-mix(in lab,red,red)){.data-hover\:bg-zinc-950\/5[data-hover]{background-color:color-mix(in oklab,var(--color-zinc-950) 5%,transparent)}}.data-hover\:decoration-zinc-950[data-hover]{-webkit-text-decoration-color:var(--color-zinc-950);text-decoration-color:var(--color-zinc-950)}.data-hover\:\[--btn-border\:var\(--color-zinc-950\)\]\/15[data-hover]{--btn-border:#09090b26}@supports (color:color-mix(in lab,red,red)){.data-hover\:\[--btn-border\:var\(--color-zinc-950\)\]\/15[data-hover]{--btn-border:color-mix(in oklab, var(--color-zinc-950) 15%, transparent)}}.data-hover\:\[--btn-icon\:var\(--color-blue-300\)\][data-hover]{--btn-icon:var(--color-blue-300)}.data-hover\:\[--btn-icon\:var\(--color-fuchsia-200\)\][data-hover]{--btn-icon:var(--color-fuchsia-200)}.data-hover\:\[--btn-icon\:var\(--color-indigo-200\)\][data-hover]{--btn-icon:var(--color-indigo-200)}.data-hover\:\[--btn-icon\:var\(--color-lime-700\)\][data-hover]{--btn-icon:var(--color-lime-700)}.data-hover\:\[--btn-icon\:var\(--color-orange-200\)\][data-hover]{--btn-icon:var(--color-orange-200)}.data-hover\:\[--btn-icon\:var\(--color-pink-200\)\][data-hover]{--btn-icon:var(--color-pink-200)}.data-hover\:\[--btn-icon\:var\(--color-purple-200\)\][data-hover]{--btn-icon:var(--color-purple-200)}.data-hover\:\[--btn-icon\:var\(--color-red-200\)\][data-hover]{--btn-icon:var(--color-red-200)}.data-hover\:\[--btn-icon\:var\(--color-rose-200\)\][data-hover]{--btn-icon:var(--color-rose-200)}.data-hover\:\[--btn-icon\:var\(--color-violet-200\)\][data-hover]{--btn-icon:var(--color-violet-200)}.data-hover\:\[--btn-icon\:var\(--color-white\)\]\/80[data-hover]{--btn-icon:#fffc}@supports (color:color-mix(in lab,red,red)){.data-hover\:\[--btn-icon\:var\(--color-white\)\]\/80[data-hover]{--btn-icon:color-mix(in oklab, var(--color-white) 80%, transparent)}}.data-hover\:\[--btn-icon\:var\(--color-yellow-700\)\][data-hover]{--btn-icon:var(--color-yellow-700)}.data-hover\:\[--btn-icon\:var\(--color-zinc-300\)\][data-hover]{--btn-icon:var(--color-zinc-300)}.data-hover\:\[--btn-icon\:var\(--color-zinc-500\)\][data-hover]{--btn-icon:var(--color-zinc-500)}.data-hover\:\[--btn-icon\:var\(--color-zinc-700\)\][data-hover]{--btn-icon:var(--color-zinc-700)}.data-hover\:after\:bg-\(--btn-hover-overlay\)[data-hover]:after{content:var(--tw-content);background-color:var(--btn-hover-overlay)}.data-leave\:duration-200[data-leave]{--tw-duration:.2s;transition-duration:.2s}.data-leave\:ease-in[data-leave]{--tw-ease:var(--ease-in);transition-timing-function:var(--ease-in)}:is(.\*\:data-\[slot\=avatar\]\:-m-0\.5>*)[data-slot=avatar]{margin:calc(var(--spacing) * -.5)}:is(.\*\:data-\[slot\=avatar\]\:size-7>*)[data-slot=avatar]{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}:is(.\*\:data-\[slot\=avatar\]\:\[--avatar-radius\:var\(--radius-md\)\]>*)[data-slot=avatar]{--avatar-radius:var(--radius-md)}:is(.\*\:data-\[slot\=icon\]\:-mx-0\.5>*)[data-slot=icon]{margin-inline:calc(var(--spacing) * -.5)}:is(.\*\:data-\[slot\=icon\]\:my-0\.5>*)[data-slot=icon]{margin-block:calc(var(--spacing) * .5)}:is(.\*\:data-\[slot\=icon\]\:size-5>*)[data-slot=icon]{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}:is(.\*\:data-\[slot\=icon\]\:size-6>*)[data-slot=icon]{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}:is(.\*\:data-\[slot\=icon\]\:shrink-0>*)[data-slot=icon]{flex-shrink:0}:is(.\*\:data-\[slot\=icon\]\:self-center>*)[data-slot=icon]{align-self:center}:is(.\*\:data-\[slot\=icon\]\:fill-zinc-500>*)[data-slot=icon]{fill:var(--color-zinc-500)}:is(.\*\:data-\[slot\=icon\]\:text-\(--btn-icon\)>*)[data-slot=icon]{color:var(--btn-icon)}:is(.\*\:last\:data-\[slot\=icon\]\:ml-auto>*):last-child[data-slot=icon]{margin-left:auto}:is(.\*\:last\:data-\[slot\=icon\]\:size-5>*):last-child[data-slot=icon]{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}:is(.\*\:not-nth-2\:last\:data-\[slot\=icon\]\:ml-auto>*):not(:nth-child(2)):last-child[data-slot=icon]{margin-left:auto}:is(.\*\:not-nth-2\:last\:data-\[slot\=icon\]\:size-5>*):not(:nth-child(2)):last-child[data-slot=icon]{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}:is(.data-active\:\*\:data-\[slot\=icon\]\:fill-zinc-950[data-active]>*)[data-slot=icon],:is(.data-current\:\*\:data-\[slot\=icon\]\:fill-zinc-950[data-current]>*)[data-slot=icon],:is(.data-hover\:\*\:data-\[slot\=icon\]\:fill-zinc-950[data-hover]>*)[data-slot=icon]{fill:var(--color-zinc-950)}@media not all and (min-width:64rem){.max-lg\:hidden{display:none}.max-lg\:flex-col{flex-direction:column}}@media(min-width:40rem){.sm\:max-w-\[75\%\]{max-width:75%}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:grid-cols-\[min\(50\%\,--spacing\(80\)\)_auto\]{grid-template-columns:min(50%,calc(var(--spacing) * 80)) auto}.sm\:border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.sm\:border-zinc-950\/5{border-color:#09090b0d}@supports (color:color-mix(in lab,red,red)){.sm\:border-zinc-950\/5{border-color:color-mix(in oklab,var(--color-zinc-950) 5%,transparent)}}.sm\:p-5{padding:calc(var(--spacing) * 5)}.sm\:px-\[calc\(--spacing\(3\)-1px\)\]{padding-inline:calc(calc(var(--spacing) * 3) - 1px)}.sm\:py-2{padding-block:calc(var(--spacing) * 2)}.sm\:py-3{padding-block:calc(var(--spacing) * 3)}.sm\:py-\[calc\(--spacing\(1\.5\)-1px\)\]{padding-block:calc(calc(var(--spacing) * 1.5) - 1px)}.sm\:text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.sm\:text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.sm\:text-sm\/5{font-size:var(--text-sm);line-height:calc(var(--spacing) * 5)}.sm\:text-sm\/6{font-size:var(--text-sm);line-height:calc(var(--spacing) * 6)}.sm\:text-xl\/8{font-size:var(--text-xl);line-height:calc(var(--spacing) * 8)}.sm\:text-xs\/5{font-size:var(--text-xs);line-height:calc(var(--spacing) * 5)}.sm\:text-\[0\.8125rem\]{font-size:.8125rem}:is(.sm\:\*\:data-\[slot\=avatar\]\:size-6>*)[data-slot=avatar]{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}:is(.sm\:\*\:data-\[slot\=icon\]\:my-1>*)[data-slot=icon]{margin-block:calc(var(--spacing) * 1)}:is(.sm\:\*\:data-\[slot\=icon\]\:size-4>*)[data-slot=icon]{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}:is(.sm\:\*\:data-\[slot\=icon\]\:size-5>*)[data-slot=icon]{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}:is(.sm\:\*\:last\:data-\[slot\=icon\]\:size-4>*):last-child[data-slot=icon],:is(.sm\:\*\:not-nth-2\:last\:data-\[slot\=icon\]\:size-4>*):not(:nth-child(2)):last-child[data-slot=icon]{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.sm\:nth-2\:border-none:nth-child(2){--tw-border-style:none;border-style:none}}@media(min-width:64rem){.lg\:-mx-4{margin-inline:calc(var(--spacing) * -4)}.lg\:hidden{display:none}.lg\:min-w-0{min-width:calc(var(--spacing) * 0)}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-\[13rem_minmax\(18rem\,24rem\)_minmax\(0\,1fr\)\]{grid-template-columns:13rem minmax(18rem,24rem) minmax(0,1fr)}.lg\:border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.lg\:border-b-0{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.lg\:p-8{padding:calc(var(--spacing) * 8)}.lg\:pl-64{padding-left:calc(var(--spacing) * 64)}}@media(prefers-color-scheme:dark){.dark\:border-ouro-moss\/30{border-color:#1833254d}@supports (color:color-mix(in lab,red,red)){.dark\:border-ouro-moss\/30{border-color:color-mix(in oklab,var(--color-ouro-moss) 30%,transparent)}}.dark\:border-white\/5{border-color:#ffffff0d}@supports (color:color-mix(in lab,red,red)){.dark\:border-white\/5{border-color:color-mix(in oklab,var(--color-white) 5%,transparent)}}.dark\:border-white\/10{border-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.dark\:border-white\/10{border-color:color-mix(in oklab,var(--color-white) 10%,transparent)}}.dark\:border-white\/15{border-color:#ffffff26}@supports (color:color-mix(in lab,red,red)){.dark\:border-white\/15{border-color:color-mix(in oklab,var(--color-white) 15%,transparent)}}.dark\:border-white\/20{border-color:#fff3}@supports (color:color-mix(in lab,red,red)){.dark\:border-white\/20{border-color:color-mix(in oklab,var(--color-white) 20%,transparent)}}.dark\:bg-\(--btn-bg\){background-color:var(--btn-bg)}.dark\:bg-amber-400\/10{background-color:#fcbb001a}@supports (color:color-mix(in lab,red,red)){.dark\:bg-amber-400\/10{background-color:color-mix(in oklab,var(--color-amber-400) 10%,transparent)}}.dark\:bg-cyan-400\/10{background-color:#00d2ef1a}@supports (color:color-mix(in lab,red,red)){.dark\:bg-cyan-400\/10{background-color:color-mix(in oklab,var(--color-cyan-400) 10%,transparent)}}.dark\:bg-emerald-500\/10{background-color:#00bb7f1a}@supports (color:color-mix(in lab,red,red)){.dark\:bg-emerald-500\/10{background-color:color-mix(in oklab,var(--color-emerald-500) 10%,transparent)}}.dark\:bg-fuchsia-400\/10{background-color:#ec6cff1a}@supports (color:color-mix(in lab,red,red)){.dark\:bg-fuchsia-400\/10{background-color:color-mix(in oklab,var(--color-fuchsia-400) 10%,transparent)}}.dark\:bg-green-500\/10{background-color:#00c7581a}@supports (color:color-mix(in lab,red,red)){.dark\:bg-green-500\/10{background-color:color-mix(in oklab,var(--color-green-500) 10%,transparent)}}.dark\:bg-lime-400\/10{background-color:#9de5001a}@supports (color:color-mix(in lab,red,red)){.dark\:bg-lime-400\/10{background-color:color-mix(in oklab,var(--color-lime-400) 10%,transparent)}}.dark\:bg-orange-500\/10{background-color:#fe6e001a}@supports (color:color-mix(in lab,red,red)){.dark\:bg-orange-500\/10{background-color:color-mix(in oklab,var(--color-orange-500) 10%,transparent)}}.dark\:bg-pink-400\/10{background-color:#fb64b61a}@supports (color:color-mix(in lab,red,red)){.dark\:bg-pink-400\/10{background-color:color-mix(in oklab,var(--color-pink-400) 10%,transparent)}}.dark\:bg-red-500\/10{background-color:#fb2c361a}@supports (color:color-mix(in lab,red,red)){.dark\:bg-red-500\/10{background-color:color-mix(in oklab,var(--color-red-500) 10%,transparent)}}.dark\:bg-rose-400\/10{background-color:#ff667f1a}@supports (color:color-mix(in lab,red,red)){.dark\:bg-rose-400\/10{background-color:color-mix(in oklab,var(--color-rose-400) 10%,transparent)}}.dark\:bg-sky-500\/10{background-color:#00a5ef1a}@supports (color:color-mix(in lab,red,red)){.dark\:bg-sky-500\/10{background-color:color-mix(in oklab,var(--color-sky-500) 10%,transparent)}}.dark\:bg-teal-500\/10{background-color:#00baa71a}@supports (color:color-mix(in lab,red,red)){.dark\:bg-teal-500\/10{background-color:color-mix(in oklab,var(--color-teal-500) 10%,transparent)}}.dark\:bg-white{background-color:var(--color-white)}.dark\:bg-white\/5{background-color:#ffffff0d}@supports (color:color-mix(in lab,red,red)){.dark\:bg-white\/5{background-color:color-mix(in oklab,var(--color-white) 5%,transparent)}}.dark\:bg-white\/10{background-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.dark\:bg-white\/10{background-color:color-mix(in oklab,var(--color-white) 10%,transparent)}}.dark\:bg-yellow-400\/10{background-color:#fac8001a}@supports (color:color-mix(in lab,red,red)){.dark\:bg-yellow-400\/10{background-color:color-mix(in oklab,var(--color-yellow-400) 10%,transparent)}}.dark\:text-amber-400{color:var(--color-amber-400)}.dark\:text-blue-400{color:var(--color-blue-400)}.dark\:text-cyan-300{color:var(--color-cyan-300)}.dark\:text-emerald-400{color:var(--color-emerald-400)}.dark\:text-fuchsia-400{color:var(--color-fuchsia-400)}.dark\:text-green-400{color:var(--color-green-400)}.dark\:text-indigo-400{color:var(--color-indigo-400)}.dark\:text-lime-300{color:var(--color-lime-300)}.dark\:text-orange-400{color:var(--color-orange-400)}.dark\:text-pink-400{color:var(--color-pink-400)}.dark\:text-purple-400{color:var(--color-purple-400)}.dark\:text-red-400{color:var(--color-red-400)}.dark\:text-rose-400{color:var(--color-rose-400)}.dark\:text-sky-300{color:var(--color-sky-300)}.dark\:text-teal-300{color:var(--color-teal-300)}.dark\:text-violet-400{color:var(--color-violet-400)}.dark\:text-white{color:var(--color-white)}.dark\:text-yellow-300{color:var(--color-yellow-300)}.dark\:text-zinc-400{color:var(--color-zinc-400)}.dark\:text-zinc-950{color:var(--color-zinc-950)}.dark\:decoration-white\/50{text-decoration-color:#ffffff80}@supports (color:color-mix(in lab,red,red)){.dark\:decoration-white\/50{-webkit-text-decoration-color:color-mix(in oklab,var(--color-white) 50%,transparent);text-decoration-color:color-mix(in oklab,var(--color-white) 50%,transparent)}}.dark\:outline-white\/10{outline-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.dark\:outline-white\/10{outline-color:color-mix(in oklab,var(--color-white) 10%,transparent)}}.dark\:\[--btn-bg\:transparent\]{--btn-bg:transparent}.dark\:\[--btn-bg\:var\(--color-zinc-600\)\]{--btn-bg:var(--color-zinc-600)}.dark\:\[--btn-bg\:var\(--color-zinc-800\)\]{--btn-bg:var(--color-zinc-800)}.dark\:\[--btn-bg\:white\]{--btn-bg:white}.dark\:\[--btn-hover-overlay\:var\(--color-white\)\]\/5{--btn-hover-overlay:#ffffff0d}@supports (color:color-mix(in lab,red,red)){.dark\:\[--btn-hover-overlay\:var\(--color-white\)\]\/5{--btn-hover-overlay:color-mix(in oklab, var(--color-white) 5%, transparent)}}.dark\:\[--btn-hover-overlay\:var\(--color-zinc-950\)\]\/5{--btn-hover-overlay:#09090b0d}@supports (color:color-mix(in lab,red,red)){.dark\:\[--btn-hover-overlay\:var\(--color-zinc-950\)\]\/5{--btn-hover-overlay:color-mix(in oklab, var(--color-zinc-950) 5%, transparent)}}.dark\:\[--btn-icon\:var\(--color-zinc-500\)\]{--btn-icon:var(--color-zinc-500)}.dark\:group-data-hover\:bg-amber-400\/15:is(:where(.group)[data-hover] *){background-color:#fcbb0026}@supports (color:color-mix(in lab,red,red)){.dark\:group-data-hover\:bg-amber-400\/15:is(:where(.group)[data-hover] *){background-color:color-mix(in oklab,var(--color-amber-400) 15%,transparent)}}.dark\:group-data-hover\:bg-blue-500\/25:is(:where(.group)[data-hover] *){background-color:#3080ff40}@supports (color:color-mix(in lab,red,red)){.dark\:group-data-hover\:bg-blue-500\/25:is(:where(.group)[data-hover] *){background-color:color-mix(in oklab,var(--color-blue-500) 25%,transparent)}}.dark\:group-data-hover\:bg-cyan-400\/15:is(:where(.group)[data-hover] *){background-color:#00d2ef26}@supports (color:color-mix(in lab,red,red)){.dark\:group-data-hover\:bg-cyan-400\/15:is(:where(.group)[data-hover] *){background-color:color-mix(in oklab,var(--color-cyan-400) 15%,transparent)}}.dark\:group-data-hover\:bg-emerald-500\/20:is(:where(.group)[data-hover] *){background-color:#00bb7f33}@supports (color:color-mix(in lab,red,red)){.dark\:group-data-hover\:bg-emerald-500\/20:is(:where(.group)[data-hover] *){background-color:color-mix(in oklab,var(--color-emerald-500) 20%,transparent)}}.dark\:group-data-hover\:bg-fuchsia-400\/20:is(:where(.group)[data-hover] *){background-color:#ec6cff33}@supports (color:color-mix(in lab,red,red)){.dark\:group-data-hover\:bg-fuchsia-400\/20:is(:where(.group)[data-hover] *){background-color:color-mix(in oklab,var(--color-fuchsia-400) 20%,transparent)}}.dark\:group-data-hover\:bg-green-500\/20:is(:where(.group)[data-hover] *){background-color:#00c75833}@supports (color:color-mix(in lab,red,red)){.dark\:group-data-hover\:bg-green-500\/20:is(:where(.group)[data-hover] *){background-color:color-mix(in oklab,var(--color-green-500) 20%,transparent)}}.dark\:group-data-hover\:bg-indigo-500\/20:is(:where(.group)[data-hover] *){background-color:#625fff33}@supports (color:color-mix(in lab,red,red)){.dark\:group-data-hover\:bg-indigo-500\/20:is(:where(.group)[data-hover] *){background-color:color-mix(in oklab,var(--color-indigo-500) 20%,transparent)}}.dark\:group-data-hover\:bg-lime-400\/15:is(:where(.group)[data-hover] *){background-color:#9de50026}@supports (color:color-mix(in lab,red,red)){.dark\:group-data-hover\:bg-lime-400\/15:is(:where(.group)[data-hover] *){background-color:color-mix(in oklab,var(--color-lime-400) 15%,transparent)}}.dark\:group-data-hover\:bg-orange-500\/20:is(:where(.group)[data-hover] *){background-color:#fe6e0033}@supports (color:color-mix(in lab,red,red)){.dark\:group-data-hover\:bg-orange-500\/20:is(:where(.group)[data-hover] *){background-color:color-mix(in oklab,var(--color-orange-500) 20%,transparent)}}.dark\:group-data-hover\:bg-pink-400\/20:is(:where(.group)[data-hover] *){background-color:#fb64b633}@supports (color:color-mix(in lab,red,red)){.dark\:group-data-hover\:bg-pink-400\/20:is(:where(.group)[data-hover] *){background-color:color-mix(in oklab,var(--color-pink-400) 20%,transparent)}}.dark\:group-data-hover\:bg-purple-500\/20:is(:where(.group)[data-hover] *){background-color:#ac4bff33}@supports (color:color-mix(in lab,red,red)){.dark\:group-data-hover\:bg-purple-500\/20:is(:where(.group)[data-hover] *){background-color:color-mix(in oklab,var(--color-purple-500) 20%,transparent)}}.dark\:group-data-hover\:bg-red-500\/20:is(:where(.group)[data-hover] *){background-color:#fb2c3633}@supports (color:color-mix(in lab,red,red)){.dark\:group-data-hover\:bg-red-500\/20:is(:where(.group)[data-hover] *){background-color:color-mix(in oklab,var(--color-red-500) 20%,transparent)}}.dark\:group-data-hover\:bg-rose-400\/20:is(:where(.group)[data-hover] *){background-color:#ff667f33}@supports (color:color-mix(in lab,red,red)){.dark\:group-data-hover\:bg-rose-400\/20:is(:where(.group)[data-hover] *){background-color:color-mix(in oklab,var(--color-rose-400) 20%,transparent)}}.dark\:group-data-hover\:bg-sky-500\/20:is(:where(.group)[data-hover] *){background-color:#00a5ef33}@supports (color:color-mix(in lab,red,red)){.dark\:group-data-hover\:bg-sky-500\/20:is(:where(.group)[data-hover] *){background-color:color-mix(in oklab,var(--color-sky-500) 20%,transparent)}}.dark\:group-data-hover\:bg-teal-500\/20:is(:where(.group)[data-hover] *){background-color:#00baa733}@supports (color:color-mix(in lab,red,red)){.dark\:group-data-hover\:bg-teal-500\/20:is(:where(.group)[data-hover] *){background-color:color-mix(in oklab,var(--color-teal-500) 20%,transparent)}}.dark\:group-data-hover\:bg-violet-500\/20:is(:where(.group)[data-hover] *){background-color:#8d54ff33}@supports (color:color-mix(in lab,red,red)){.dark\:group-data-hover\:bg-violet-500\/20:is(:where(.group)[data-hover] *){background-color:color-mix(in oklab,var(--color-violet-500) 20%,transparent)}}.dark\:group-data-hover\:bg-white\/10:is(:where(.group)[data-hover] *){background-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.dark\:group-data-hover\:bg-white\/10:is(:where(.group)[data-hover] *){background-color:color-mix(in oklab,var(--color-white) 10%,transparent)}}.dark\:group-data-hover\:bg-yellow-400\/15:is(:where(.group)[data-hover] *){background-color:#fac80026}@supports (color:color-mix(in lab,red,red)){.dark\:group-data-hover\:bg-yellow-400\/15:is(:where(.group)[data-hover] *){background-color:color-mix(in oklab,var(--color-yellow-400) 15%,transparent)}}.dark\:before\:hidden:before{content:var(--tw-content);display:none}.dark\:after\:-inset-px:after{content:var(--tw-content);top:-1px;right:-1px;bottom:-1px;left:-1px}.dark\:after\:rounded-lg:after{content:var(--tw-content);border-radius:var(--radius-lg)}.dark\:data-active\:bg-white\/5[data-active]{background-color:#ffffff0d}@supports (color:color-mix(in lab,red,red)){.dark\:data-active\:bg-white\/5[data-active]{background-color:color-mix(in oklab,var(--color-white) 5%,transparent)}}.dark\:data-active\:bg-white\/10[data-active]{background-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.dark\:data-active\:bg-white\/10[data-active]{background-color:color-mix(in oklab,var(--color-white) 10%,transparent)}}.dark\:data-active\:\[--btn-icon\:var\(--color-zinc-400\)\][data-active]{--btn-icon:var(--color-zinc-400)}.dark\:data-hover\:bg-white\/5[data-hover]{background-color:#ffffff0d}@supports (color:color-mix(in lab,red,red)){.dark\:data-hover\:bg-white\/5[data-hover]{background-color:color-mix(in oklab,var(--color-white) 5%,transparent)}}.dark\:data-hover\:bg-white\/10[data-hover]{background-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.dark\:data-hover\:bg-white\/10[data-hover]{background-color:color-mix(in oklab,var(--color-white) 10%,transparent)}}.dark\:data-hover\:decoration-white[data-hover]{-webkit-text-decoration-color:var(--color-white);text-decoration-color:var(--color-white)}.dark\:data-hover\:\[--btn-icon\:var\(--color-zinc-400\)\][data-hover]{--btn-icon:var(--color-zinc-400)}:is(.dark\:\*\:data-\[slot\=icon\]\:fill-zinc-400>*)[data-slot=icon]{fill:var(--color-zinc-400)}:is(.dark\:data-active\:\*\:data-\[slot\=icon\]\:fill-white[data-active]>*)[data-slot=icon],:is(.dark\:data-current\:\*\:data-\[slot\=icon\]\:fill-white[data-current]>*)[data-slot=icon],:is(.dark\:data-hover\:\*\:data-\[slot\=icon\]\:fill-white[data-hover]>*)[data-slot=icon]{fill:var(--color-white)}@media(min-width:40rem){.dark\:sm\:border-white\/5{border-color:#ffffff0d}@supports (color:color-mix(in lab,red,red)){.dark\:sm\:border-white\/5{border-color:color-mix(in oklab,var(--color-white) 5%,transparent)}}}}@media(min-width:40rem){@media(prefers-color-scheme:dark){.sm\:dark\:border-white\/5{border-color:#ffffff0d}@supports (color:color-mix(in lab,red,red)){.sm\:dark\:border-white\/5{border-color:color-mix(in oklab,var(--color-white) 5%,transparent)}}}}@media(forced-colors:active){.forced-colors\:outline{outline-style:var(--tw-outline-style);outline-width:1px}.forced-colors\:\[--btn-icon\:ButtonText\],.forced-colors\:data-hover\:\[--btn-icon\:ButtonText\][data-hover]{--btn-icon:ButtonText}}@media(pointer:fine){.pointer-fine\:hidden{display:none}}.\[\&\>\[data-slot\=section\]\+\[data-slot\=section\]\]\:mt-2\.5>[data-slot=section]+[data-slot=section]{margin-top:calc(var(--spacing) * 2.5)}.\[\&\>\[data-slot\=section\]\+\[data-slot\=section\]\]\:mt-4>[data-slot=section]+[data-slot=section]{margin-top:calc(var(--spacing) * 4)}.\[\&\>\[data-slot\=section\]\+\[data-slot\=section\]\]\:mt-8>[data-slot=section]+[data-slot=section]{margin-top:calc(var(--spacing) * 8)}}body{font-family:var(--font-body);background-color:var(--color-ouro-void);color:var(--color-ouro-bone);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media(prefers-color-scheme:light){:root{--color-ouro-void:#f4f7f2;--color-ouro-deep:#fff;--color-ouro-moss:#c8d9cc;--color-ouro-scale:#2f8f4e;--color-ouro-glow:#1a7a3a;--color-ouro-bone:#102116;--color-ouro-mist:#3d5a47;--color-ouro-shadow:#708373;--color-ouro-fang:#c44a33;--color-ouro-gold:#9a7a2e}}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#183325;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#2f8f4e}@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-space-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-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@keyframes pulse{50%{opacity:.5}}
@@ -0,0 +1,15 @@
1
+ <!doctype html>
2
+ <html lang="en" class="dark">
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
6
+ <meta name="color-scheme" content="dark" />
7
+ <title>Ouro Outlook</title>
8
+ <meta name="description" content="The daemon-hosted shared orientation surface for agents alive on this machine." />
9
+ <script type="module" crossorigin src="/assets/index-BXw3xmUo.js"></script>
10
+ <link rel="stylesheet" crossorigin href="/assets/index-D4Wg-o8Z.css">
11
+ </head>
12
+ <body>
13
+ <div id="app"></div>
14
+ </body>
15
+ </html>
@@ -9,6 +9,7 @@ exports.discoverOrganizations = discoverOrganizations;
9
9
  exports.discoverProjects = discoverProjects;
10
10
  const api_error_1 = require("../heart/api-error");
11
11
  const runtime_1 = require("../nerves/runtime");
12
+ const api_client_1 = require("./api-client");
12
13
  const ADO_BASE = "https://dev.azure.com";
13
14
  const VSSPS_BASE = "https://app.vssps.visualstudio.com";
14
15
  const DEFAULT_API_VERSION = "api-version=7.1";
@@ -30,62 +31,20 @@ function resolveContentType(method, path) {
30
31
  // Generic ADO API request. Returns response body as pretty-printed JSON string.
31
32
  // `host` overrides the base URL for non-standard APIs (e.g. "vsapm.dev.azure.com", "vssps.dev.azure.com").
32
33
  async function adoRequest(token, method, org, path, body, host) {
33
- try {
34
- const base = host ? `https://${host}/${org}` : `${ADO_BASE}/${org}`;
35
- (0, runtime_1.emitNervesEvent)({
36
- event: "client.request_start",
37
- component: "clients",
38
- message: "starting ADO request",
39
- meta: { client: "ado", method, org, path },
40
- });
41
- const fullPath = ensureApiVersion(path);
42
- const url = `${base}${fullPath}`;
43
- const contentType = resolveContentType(method, path);
44
- const opts = {
45
- method,
46
- headers: {
47
- Authorization: `Bearer ${token}`,
48
- "Content-Type": contentType,
49
- },
50
- };
51
- if (body)
52
- opts.body = body;
53
- const res = await fetch(url, opts);
54
- if (!res.ok) {
55
- (0, runtime_1.emitNervesEvent)({
56
- level: "error",
57
- event: "client.error",
58
- component: "clients",
59
- message: "ADO request failed",
60
- meta: { client: "ado", method, org, path, status: res.status },
61
- });
62
- return (0, api_error_1.handleApiError)(res, "ADO", "ado");
63
- }
64
- const data = await res.json();
65
- (0, runtime_1.emitNervesEvent)({
66
- event: "client.request_end",
67
- component: "clients",
68
- message: "ADO request completed",
69
- meta: { client: "ado", method, org, path, success: true },
70
- });
71
- return JSON.stringify(data, null, 2);
72
- }
73
- catch (err) {
74
- (0, runtime_1.emitNervesEvent)({
75
- level: "error",
76
- event: "client.error",
77
- component: "clients",
78
- message: "ADO request threw exception",
79
- meta: {
80
- client: "ado",
81
- method,
82
- org,
83
- path,
84
- reason: err instanceof Error ? err.message : String(err),
85
- },
86
- });
87
- return (0, api_error_1.handleApiError)(err, "ADO", "ado");
88
- }
34
+ const base = host ? `https://${host}/${org}` : `${ADO_BASE}/${org}`;
35
+ const fullPath = ensureApiVersion(path);
36
+ return (0, api_client_1.apiRequest)({
37
+ baseUrl: base,
38
+ method,
39
+ path: fullPath,
40
+ token,
41
+ clientName: "ado",
42
+ serviceLabel: "ADO",
43
+ connectionName: "ado",
44
+ body,
45
+ contentType: resolveContentType(method, path),
46
+ eventMeta: { org },
47
+ });
89
48
  }
90
49
  // Backward-compatible thin wrapper: runs WIQL query and returns formatted work items.
91
50
  async function queryWorkItems(token, org, query) {
@@ -221,7 +221,7 @@ exports.adoSemanticToolDefinitions = [
221
221
  type: "function",
222
222
  function: {
223
223
  name: "ado_backlog_list",
224
- description: "Query the backlog and return enriched work items with hierarchy, type, parent, assignee, area path, and iteration. Supports filtering. Use this instead of raw WIQL queries.",
224
+ description: "Query the backlog and return enriched work items with hierarchy, type, parent, assignee, area path, and iteration. Supports filtering. Use this instead of raw WIQL queries. Provides enriched results with hierarchy.",
225
225
  parameters: {
226
226
  type: "object",
227
227
  properties: {
@@ -279,6 +279,7 @@ exports.adoSemanticToolDefinitions = [
279
279
  return formatForChannel(items, ctx, organization, project);
280
280
  },
281
281
  integration: "ado",
282
+ summaryKeys: ["organization", "project"],
282
283
  },
283
284
  // -- ado_create_epic --
284
285
  {
@@ -286,7 +287,7 @@ exports.adoSemanticToolDefinitions = [
286
287
  type: "function",
287
288
  function: {
288
289
  name: "ado_create_epic",
289
- description: "Create an epic in Azure DevOps with title, description, area path, and optional parent.",
290
+ description: "Create an epic in Azure DevOps with title, description, area path, and optional parent. Use ado_preview_changes first to dry-run the operation.",
290
291
  parameters: {
291
292
  type: "object",
292
293
  properties: {
@@ -317,7 +318,7 @@ exports.adoSemanticToolDefinitions = [
317
318
  return result;
318
319
  },
319
320
  integration: "ado",
320
- confirmationRequired: true,
321
+ summaryKeys: ["organization", "project", "title"],
321
322
  },
322
323
  // -- ado_create_issue --
323
324
  {
@@ -325,7 +326,7 @@ exports.adoSemanticToolDefinitions = [
325
326
  type: "function",
326
327
  function: {
327
328
  name: "ado_create_issue",
328
- description: "Create an issue or user story in Azure DevOps with title, description, area path, and parent epic.",
329
+ description: "Create an issue or user story in Azure DevOps with title, description, area path, and parent epic. Use ado_preview_changes first to dry-run the operation.",
329
330
  parameters: {
330
331
  type: "object",
331
332
  properties: {
@@ -358,7 +359,7 @@ exports.adoSemanticToolDefinitions = [
358
359
  return result;
359
360
  },
360
361
  integration: "ado",
361
- confirmationRequired: true,
362
+ summaryKeys: ["organization", "project", "title"],
362
363
  },
363
364
  // -- ado_move_items --
364
365
  {
@@ -366,7 +367,7 @@ exports.adoSemanticToolDefinitions = [
366
367
  type: "function",
367
368
  function: {
368
369
  name: "ado_move_items",
369
- description: "Reparent work items -- move them to a new parent epic or feature.",
370
+ description: "Reparent work items -- move them to a new parent epic or feature. Use ado_preview_changes first. These mutations affect real work items.",
370
371
  parameters: {
371
372
  type: "object",
372
373
  properties: {
@@ -412,7 +413,7 @@ exports.adoSemanticToolDefinitions = [
412
413
  return JSON.stringify({ moved, errors, organization: adoCtx.organization, project: adoCtx.project });
413
414
  },
414
415
  integration: "ado",
415
- confirmationRequired: true,
416
+ summaryKeys: ["organization", "project", "workItemIds"],
416
417
  },
417
418
  // -- ado_restructure_backlog --
418
419
  {
@@ -420,7 +421,7 @@ exports.adoSemanticToolDefinitions = [
420
421
  type: "function",
421
422
  function: {
422
423
  name: "ado_restructure_backlog",
423
- description: "Bulk restructure: reparent multiple work items in a single logical operation.",
424
+ description: "Bulk restructure: reparent multiple work items in a single logical operation. Use ado_preview_changes first. These mutations affect real work items.",
424
425
  parameters: {
425
426
  type: "object",
426
427
  properties: {
@@ -470,7 +471,7 @@ exports.adoSemanticToolDefinitions = [
470
471
  return JSON.stringify({ results, organization: adoCtx.organization, project: adoCtx.project });
471
472
  },
472
473
  integration: "ado",
473
- confirmationRequired: true,
474
+ summaryKeys: ["organization", "project"],
474
475
  },
475
476
  // -- ado_validate_structure --
476
477
  {
@@ -671,7 +672,7 @@ exports.adoSemanticToolDefinitions = [
671
672
  return JSON.stringify({ results, organization: adoCtx.organization, project: adoCtx.project });
672
673
  },
673
674
  integration: "ado",
674
- confirmationRequired: true,
675
+ summaryKeys: ["organization", "project"],
675
676
  },
676
677
  // -- ado_detect_orphans --
677
678
  {
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+ /**
3
+ * Shared HTTP API client for Graph, ADO, and GitHub clients.
4
+ *
5
+ * All three API clients follow the same pattern: emit request_start event,
6
+ * build request with auth header, fetch, handle errors, emit request_end,
7
+ * and return pretty-printed JSON. This module extracts that shared logic.
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.apiRequest = apiRequest;
11
+ const api_error_1 = require("../heart/api-error");
12
+ const runtime_1 = require("../nerves/runtime");
13
+ const credential_access_1 = require("./credential-access");
14
+ /**
15
+ * Execute an authenticated API request with standard logging and error handling.
16
+ * Returns the response body as a pretty-printed JSON string.
17
+ */
18
+ async function apiRequest(options) {
19
+ const { baseUrl, method, path, token, clientName, serviceLabel, connectionName, body, extraHeaders, contentType, eventMeta, credentialDomain, credentialField, } = options;
20
+ // Resolve token from credential store if credentialDomain is provided
21
+ let resolvedToken = token;
22
+ if (credentialDomain) {
23
+ try {
24
+ const store = (0, credential_access_1.getCredentialStore)();
25
+ resolvedToken = await store.getRawSecret(credentialDomain, credentialField ?? "password");
26
+ (0, runtime_1.emitNervesEvent)({
27
+ event: "client.credential_fetch",
28
+ component: "clients",
29
+ message: `fetched credential from store for ${serviceLabel}`,
30
+ meta: { client: clientName, credentialDomain },
31
+ });
32
+ }
33
+ catch (err) {
34
+ (0, runtime_1.emitNervesEvent)({
35
+ level: "error",
36
+ event: "client.credential_error",
37
+ component: "clients",
38
+ message: `failed to fetch credential for ${serviceLabel}`,
39
+ /* v8 ignore next -- defensive: getRawSecret throws Error instances @preserve */
40
+ meta: { client: clientName, credentialDomain, reason: err instanceof Error ? err.message : String(err) },
41
+ });
42
+ return (0, api_error_1.handleApiError)(err, serviceLabel, connectionName);
43
+ }
44
+ }
45
+ try {
46
+ (0, runtime_1.emitNervesEvent)({
47
+ event: "client.request_start",
48
+ component: "clients",
49
+ message: `starting ${serviceLabel} request`,
50
+ meta: { client: clientName, method, path, ...eventMeta },
51
+ });
52
+ const url = `${baseUrl}${path}`;
53
+ const headers = {
54
+ Authorization: `Bearer ${resolvedToken}`,
55
+ "Content-Type": contentType ?? "application/json",
56
+ ...extraHeaders,
57
+ };
58
+ const opts = { method, headers };
59
+ if (body)
60
+ opts.body = body;
61
+ const res = await fetch(url, opts);
62
+ if (!res.ok) {
63
+ (0, runtime_1.emitNervesEvent)({
64
+ level: "error",
65
+ event: "client.error",
66
+ component: "clients",
67
+ message: `${serviceLabel} request failed`,
68
+ meta: { client: clientName, method, path, status: res.status, ...eventMeta },
69
+ });
70
+ return (0, api_error_1.handleApiError)(res, serviceLabel, connectionName);
71
+ }
72
+ const data = await res.json();
73
+ (0, runtime_1.emitNervesEvent)({
74
+ event: "client.request_end",
75
+ component: "clients",
76
+ message: `${serviceLabel} request completed`,
77
+ meta: { client: clientName, method, path, success: true, ...eventMeta },
78
+ });
79
+ return JSON.stringify(data, null, 2);
80
+ }
81
+ catch (err) {
82
+ (0, runtime_1.emitNervesEvent)({
83
+ level: "error",
84
+ event: "client.error",
85
+ component: "clients",
86
+ message: `${serviceLabel} request threw exception`,
87
+ meta: {
88
+ client: clientName,
89
+ method,
90
+ path,
91
+ reason: err instanceof Error ? err.message : String(err),
92
+ ...eventMeta,
93
+ },
94
+ });
95
+ return (0, api_error_1.handleApiError)(err, serviceLabel, connectionName);
96
+ }
97
+ }