groove-dev 0.27.42 → 0.27.44

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 (28) hide show
  1. package/node_modules/@groove-dev/cli/package.json +1 -1
  2. package/node_modules/@groove-dev/daemon/package.json +1 -1
  3. package/node_modules/@groove-dev/gui/dist/assets/{index-C1C2biHU.js → index-B5Uor698.js} +20 -20
  4. package/node_modules/@groove-dev/gui/dist/assets/index-VGmIZurO.css +1 -0
  5. package/node_modules/@groove-dev/gui/dist/index.html +2 -2
  6. package/node_modules/@groove-dev/gui/package.json +1 -1
  7. package/node_modules/@groove-dev/gui/src/components/editor/terminal.jsx +5 -0
  8. package/node_modules/@groove-dev/gui/src/components/layout/activity-bar.jsx +1 -2
  9. package/node_modules/@groove-dev/gui/src/components/layout/status-bar.jsx +12 -0
  10. package/node_modules/@groove-dev/gui/src/components/layout/terminal-panel.jsx +25 -7
  11. package/node_modules/@groove-dev/gui/src/stores/groove.js +1 -0
  12. package/node_modules/@groove-dev/gui/src/views/agents.jsx +1 -1
  13. package/package.json +1 -1
  14. package/packages/cli/package.json +1 -1
  15. package/packages/daemon/package.json +1 -1
  16. package/packages/gui/dist/assets/{index-C1C2biHU.js → index-B5Uor698.js} +20 -20
  17. package/packages/gui/dist/assets/index-VGmIZurO.css +1 -0
  18. package/packages/gui/dist/index.html +2 -2
  19. package/packages/gui/package.json +1 -1
  20. package/packages/gui/src/components/editor/terminal.jsx +5 -0
  21. package/packages/gui/src/components/layout/activity-bar.jsx +1 -2
  22. package/packages/gui/src/components/layout/status-bar.jsx +12 -0
  23. package/packages/gui/src/components/layout/terminal-panel.jsx +25 -7
  24. package/packages/gui/src/stores/groove.js +1 -0
  25. package/packages/gui/src/views/agents.jsx +1 -1
  26. package/analyist/groove-security-audit.md +0 -323
  27. package/node_modules/@groove-dev/gui/dist/assets/index-Dx7i-7_K.css +0 -1
  28. package/packages/gui/dist/assets/index-Dx7i-7_K.css +0 -1
@@ -1,323 +0,0 @@
1
- GROOVE SECURITY AUDIT & ANALYSIS
2
- =================================
3
-
4
- Date: April 17, 2026
5
- Auditor: GROOVE Security Agent (internal, automated)
6
- Version: v0.27.41
7
- Scope: Full daemon, GUI, CLI, and provider architecture review
8
-
9
-
10
- EXECUTIVE SUMMARY
11
- -----------------
12
-
13
- Groove is a localhost-only process manager for AI coding agents. Its security model is
14
- fundamentally different from tools that bind to open ports or proxy credentials through
15
- a server. The daemon hard-blocks network exposure, encrypts stored credentials with
16
- machine-bound keys, validates all inputs against strict schemas, and isolates agents
17
- through scope-based file locks enforced at runtime.
18
-
19
- This report covers 12 security areas across the full codebase.
20
-
21
-
22
- ================================================================================
23
- 1. NETWORK BINDING -- LOCALHOST ONLY (ENFORCED)
24
- ================================================================================
25
-
26
- The daemon binds to 127.0.0.1:31415. This is not just a default -- it is a hard
27
- security policy. If anyone attempts to bind to 0.0.0.0 or ::, the daemon prints an
28
- error and exits immediately. The process refuses to start.
29
-
30
- Remote access is only available through two channels, both encrypted and authenticated:
31
-
32
- - SSH tunnel (groove connect)
33
- - Tailscale private mesh network (--host tailscale)
34
-
35
- There is no configuration path that exposes Groove to the open internet.
36
-
37
- Result: PASS
38
-
39
-
40
- ================================================================================
41
- 2. CORS -- RESTRICTIVE ORIGIN VALIDATION
42
- ================================================================================
43
-
44
- Every HTTP request is checked against a strict origin whitelist. Only requests from
45
- localhost, 127.0.0.1, or the explicitly bound Tailscale interface are allowed. Any
46
- other origin is silently rejected -- the browser never receives a permissive CORS
47
- header, so cross-origin requests from external websites are blocked automatically.
48
-
49
- Result: PASS
50
-
51
-
52
- ================================================================================
53
- 3. WEBSOCKET SECURITY -- ORIGIN VERIFICATION + FEDERATION SIGNING
54
- ================================================================================
55
-
56
- WebSocket upgrade requests go through the same origin check as HTTP. Non-whitelisted
57
- origins have their sockets destroyed immediately -- the connection is terminated before
58
- any data is exchanged.
59
-
60
- Federation connections (daemon-to-daemon) require signed headers with a daemon ID and
61
- cryptographic signature. Missing or invalid headers result in immediate socket
62
- destruction.
63
-
64
- Result: PASS
65
-
66
-
67
- ================================================================================
68
- 4. INPUT VALIDATION -- STRICT SCHEMA ENFORCEMENT
69
- ================================================================================
70
-
71
- All API inputs are validated against strict patterns and size limits before processing:
72
-
73
- Role: Alphanumeric plus dash/underscore, max 50 characters
74
- Name: Alphanumeric plus dash/underscore, max 64 characters
75
- Scope patterns: Max 20 patterns, each max 200 characters
76
- Scope paths: No ".." (path traversal), no "/" prefix (absolute paths), no null bytes
77
- Prompt: Max 50,000 characters
78
- Permission: Must be "auto" or "full" (whitelist)
79
- Unknown fields: Silently stripped -- only safe fields are accepted
80
-
81
- Path traversal, absolute path injection, and null byte injection are all explicitly
82
- rejected at the validation layer.
83
-
84
- Result: PASS
85
-
86
-
87
- ================================================================================
88
- 5. CREDENTIAL ENCRYPTION -- AES-256-GCM WITH MACHINE-BOUND KEYS
89
- ================================================================================
90
-
91
- Stored API keys are encrypted using AES-256-GCM, which is authenticated encryption --
92
- it provides both confidentiality (nobody can read the key) and integrity (nobody can
93
- tamper with the ciphertext without detection).
94
-
95
- The encryption key is derived via scrypt from a machine-specific seed that incorporates
96
- the machine's hostname, home directory path, and a 256-bit random seed. Each encryption
97
- operation uses a fresh random 128-bit initialization vector.
98
-
99
- Key properties:
100
-
101
- - Credentials copied to another machine are unrecoverable
102
- - The GCM authentication tag detects any tampering
103
- - All credential files are set to owner-only read/write permissions (0o600)
104
- - The random seed file itself is also owner-only (0o600)
105
-
106
- Result: PASS
107
-
108
-
109
- ================================================================================
110
- 6. PROCESS SPAWNING -- NO SHELL INJECTION
111
- ================================================================================
112
-
113
- Agent processes are spawned using Node.js spawn() with an arguments array, never
114
- through a shell. This is a critical distinction -- arguments are passed as discrete
115
- values, not concatenated into a string that gets interpreted by bash or zsh.
116
-
117
- User-controlled values like model names, prompts, and agent roles are passed as literal
118
- arguments. The "shell: true" option is never set anywhere in the codebase. No string
119
- interpolation occurs in command construction.
120
-
121
- Result: PASS
122
-
123
-
124
- ================================================================================
125
- 7. SCOPE-BASED AGENT ISOLATION (KNOCK PROTOCOL)
126
- ================================================================================
127
-
128
- Groove implements a scope-based file isolation system that operates at two stages:
129
-
130
- Spawn-Time Collision Check:
131
- When an agent is spawned, its declared file scope patterns are checked against all
132
- running agents. If two agents' scopes overlap, the second spawn fails. Two agents
133
- cannot be assigned to the same files simultaneously.
134
-
135
- Runtime Knock Protocol:
136
- Every file operation an agent attempts triggers a validation check before it executes.
137
- The lock manager verifies the target file path against the agent's registered scope
138
- patterns. If an agent tries to write outside its scope, the operation is denied and
139
- the attempt is logged to the audit trail.
140
-
141
- Working Directory Containment:
142
- Agent working directories must reside within the project directory. Paths outside the
143
- project boundary are rejected at spawn time.
144
-
145
- Important caveat: This is orchestration-level isolation, not OS-level sandboxing. Agents
146
- run as the same Unix user as the daemon. The knock protocol prevents agents from
147
- conflicting with each other through the tool layer, but does not provide kernel-level
148
- containment like containers or seccomp. The isolation is enforced at the coordination
149
- layer, which is effective for its purpose but distinct from a full sandbox.
150
-
151
- Result: PASS
152
-
153
-
154
- ================================================================================
155
- 8. PROTOTYPE POLLUTION PROTECTION
156
- ================================================================================
157
-
158
- The agent registry only accepts updates to a defined whitelist of safe fields. Any
159
- attempt to set unknown fields -- including __proto__ or constructor -- is silently
160
- dropped.
161
-
162
- WebSocket message parsing explicitly checks for and rejects messages containing
163
- __proto__ or constructor keys. This prevents attackers from manipulating the JavaScript
164
- prototype chain through crafted payloads.
165
-
166
- Result: PASS
167
-
168
-
169
- ================================================================================
170
- 9. FILE PERMISSIONS -- OWNER-ONLY ACROSS ALL SENSITIVE FILES
171
- ================================================================================
172
-
173
- All sensitive files are created with 0o600 permissions (owner read/write only, no
174
- group or world access):
175
-
176
- Agent logs
177
- Credential seed file
178
- Credential store
179
- Audit log
180
- Federation private keys
181
- Integration credential files
182
-
183
- The only exception is the federation public key, which is intentionally set to 0o644
184
- (world-readable) since it is designed to be shared.
185
-
186
- Result: PASS
187
-
188
-
189
- ================================================================================
190
- 10. WHAT GROOVE DOES NOT DO
191
- ================================================================================
192
-
193
- This is architecturally significant and differentiates Groove from tools that proxy
194
- credentials:
195
-
196
- Proxy API calls to Claude/OpenAI/Gemini? No.
197
- Touch OAuth tokens? No.
198
- Impersonate AI providers? No.
199
- Store user subscription credentials? No.
200
- Forward agent credentials through the daemon? No.
201
-
202
- Each agent process (Claude Code, Codex, Gemini CLI) runs as a standalone executable
203
- with its own authentication. The daemon never relays API calls or handles provider
204
- credentials on behalf of agents.
205
-
206
- The one exception: Groove's journalist feature makes direct Anthropic API calls using
207
- a locally-stored API key for internal project synthesis. This is the daemon's own
208
- feature -- it does not proxy on behalf of any agent.
209
-
210
- Result: PASS
211
-
212
-
213
- ================================================================================
214
- 11. AUDIT TRAIL
215
- ================================================================================
216
-
217
- All state-changing operations are logged to an append-only audit file:
218
-
219
- Knock protocol decisions (allowed and denied) with agent ID, tool, and targets
220
- Agent lifecycle events (spawn, kill, rotate)
221
- Configuration changes
222
- Credential operations
223
-
224
- Audit logs use owner-only permissions and are append-only -- no API endpoint can
225
- truncate or delete the log.
226
-
227
- Result: PASS
228
-
229
-
230
- ================================================================================
231
- 12. PORT EXPOSURE
232
- ================================================================================
233
-
234
- Port 31415: Bound to 127.0.0.1. Not network-accessible.
235
- Ports 31416-25: Fallback range if 31415 is in use. Also bound to 127.0.0.1.
236
-
237
- No other ports are opened by the daemon. Remote access requires explicit SSH tunnel
238
- or Tailscale configuration, both of which are encrypted and authenticated.
239
-
240
- Result: PASS
241
-
242
-
243
- ================================================================================
244
- GROOVE vs. TOOLS THAT LEAVE PORTS OPEN
245
- ================================================================================
246
-
247
- Network binding:
248
- Groove binds to 127.0.0.1 and enforces it -- you cannot override to 0.0.0.0.
249
- Many open-source agent tools default to 0.0.0.0, making them accessible to any
250
- device on the network.
251
-
252
- Credential handling:
253
- Groove uses machine-bound AES-256-GCM encryption and never proxies credentials.
254
- Tools with open ports may proxy API keys through the server, exposing them to
255
- network-level interception.
256
-
257
- Agent isolation:
258
- Groove enforces scope locks and a knock protocol on every file operation.
259
- Most comparable tools have no agent-to-agent isolation at all.
260
-
261
- Input validation:
262
- Groove validates all inputs against strict schemas and blocks path traversal.
263
- Input validation quality varies widely across open-source agent tools.
264
-
265
- Remote access:
266
- Groove requires SSH tunnel or Tailscale -- both encrypted and authenticated.
267
- Tools with open ports allow direct, often unauthenticated network access.
268
-
269
- CORS policy:
270
- Groove validates origins and only allows localhost.
271
- Many tools use permissive CORS (wildcard *) or skip CORS entirely.
272
-
273
- Process spawning:
274
- Groove uses argument arrays, never shell interpolation.
275
- Some tools concatenate user input into shell commands.
276
-
277
- Prototype pollution:
278
- Groove explicitly whitelists fields and blocks __proto__/constructor.
279
- This is rarely addressed in comparable tools.
280
-
281
-
282
- ================================================================================
283
- SHOULD GROOVE BE INSTALLED ON A SEPARATE MACHINE?
284
- ================================================================================
285
-
286
- For standard development use: No. A separate machine is not required.
287
-
288
- The daemon is not network-accessible. No provider credentials are proxied or exposed.
289
- Stored keys are encrypted and machine-bound. All sensitive files have restrictive
290
- permissions. The architecture is designed for safe use on a daily development machine.
291
-
292
- The residual risk is the AI agents themselves, not Groove's architecture. Claude Code,
293
- Codex, and Gemini CLI run with your filesystem permissions. If an agent were to execute
294
- a destructive command, that would be the agent's behavior within its own permission
295
- model -- not a Groove vulnerability. Groove mitigates this through scope locks and the
296
- knock protocol, but does not provide kernel-level containment.
297
-
298
- For high-security environments where production credentials, banking sessions, or
299
- sensitive SSH keys are present on the same machine, using a dedicated development
300
- machine or VM is a reasonable precaution. However, this applies to any tool that gives
301
- AI agents shell access, not to Groove specifically.
302
-
303
-
304
- ================================================================================
305
- CONCLUSION
306
- ================================================================================
307
-
308
- Groove's security architecture is defense-in-depth at the orchestration layer:
309
- localhost binding (enforced, not just default), no credential proxying, authenticated
310
- encryption, scope-based agent isolation, strict input validation, prototype pollution
311
- protection, and a full audit trail.
312
-
313
- It significantly reduces the attack surface compared to tools that bind to open ports
314
- or tunnel credentials through a server. The architecture makes network exposure,
315
- credential theft, command injection, and prototype pollution structurally impossible
316
- through the daemon's interfaces.
317
-
318
- The remaining attack surface -- AI agents acting within their own process permissions --
319
- is an industry-wide challenge that no orchestration tool fully solves today. Groove
320
- addresses it better than most through scope locks and the knock protocol, while being
321
- transparent about the boundary of its guarantees.
322
-
323
- All 12 areas audited: PASS.
@@ -1 +0,0 @@
1
- /*! 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-divide-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@layer theme{:root,:host{--font-sans:"Inter Variable", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono Variable", "SF Mono", "Fira Code", "Cascadia Code", Consolas, monospace;--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-orange-400:oklch(75% .183 55.934);--color-yellow-400:oklch(85.2% .199 91.936);--color-green-400:oklch(79.2% .209 151.711);--color-blue-400:oklch(70.7% .165 254.624);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--container-xl:36rem;--container-2xl:42rem;--container-4xl:56rem;--text-xs:.6875rem;--text-xs--line-height:1rem;--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;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-normal:0em;--tracking-wide:.025em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-tight:1.25;--leading-snug:1.375;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-ping:ping 1s cubic-bezier(0, 0, .2, 1) infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--blur-sm:8px;--blur-md:12px;--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-surface-0:#1a1e25;--color-surface-1:#1e2127;--color-surface-2:#24282f;--color-surface-3:#282c34;--color-surface-4:#2c313a;--color-surface-5:#333842;--color-surface-6:#3a3f4b;--color-text-0:#e6e6e6;--color-text-1:#bcc2cd;--color-text-2:#8b929e;--color-text-3:#6e7681;--color-text-4:#6b7280;--color-border:#3e4451;--color-border-subtle:#2c313a;--color-accent:#33afbc;--color-success:#4ae168;--color-warning:#e5c07b;--color-danger:#e06c75;--color-info:#61afef;--color-purple:#c678dd;--color-orange:#d19a66;--text-2xs:.625rem;--text-2xs--line-height:1rem}}@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}.react-flow{--xy-edge-stroke-default:#b1b1b7;--xy-edge-stroke-width-default:1;--xy-edge-stroke-selected-default:#555;--xy-connectionline-stroke-default:#b1b1b7;--xy-connectionline-stroke-width-default:1;--xy-attribution-background-color-default:#ffffff80;--xy-minimap-background-color-default:#fff;--xy-minimap-mask-background-color-default:#f0f0f099;--xy-minimap-mask-stroke-color-default:transparent;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#e2e2e2;--xy-minimap-node-stroke-color-default:transparent;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:transparent;--xy-background-pattern-dots-color-default:#91919a;--xy-background-pattern-lines-color-default:#eee;--xy-background-pattern-cross-color-default:#e2e2e2;background-color:var(--xy-background-color,var(--xy-background-color-default));--xy-node-color-default:inherit;--xy-node-border-default:1px solid #1a192b;--xy-node-background-color-default:#fff;--xy-node-group-background-color-default:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #00000014;--xy-node-boxshadow-selected-default:0 0 0 .5px #1a192b;--xy-node-border-radius-default:3px;--xy-handle-background-color-default:#1a192b;--xy-handle-border-color-default:#fff;--xy-selection-background-color-default:#0059dc14;--xy-selection-border-default:1px dotted #0059dccc;--xy-controls-button-background-color-default:#fefefe;--xy-controls-button-background-color-hover-default:#f4f4f4;--xy-controls-button-color-default:inherit;--xy-controls-button-color-hover-default:inherit;--xy-controls-button-border-color-default:#eee;--xy-controls-box-shadow-default:0 0 2px 1px #00000014;--xy-edge-label-background-color-default:#fff;--xy-edge-label-color-default:inherit;--xy-resize-background-color-default:#3367d9;direction:ltr}.react-flow.dark{--xy-edge-stroke-default:#3e3e3e;--xy-edge-stroke-width-default:1;--xy-edge-stroke-selected-default:#727272;--xy-connectionline-stroke-default:#b1b1b7;--xy-connectionline-stroke-width-default:1;--xy-attribution-background-color-default:#96969640;--xy-minimap-background-color-default:#141414;--xy-minimap-mask-background-color-default:#3c3c3c99;--xy-minimap-mask-stroke-color-default:transparent;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#2b2b2b;--xy-minimap-node-stroke-color-default:transparent;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:#141414;--xy-background-pattern-dots-color-default:#777;--xy-background-pattern-lines-color-default:#777;--xy-background-pattern-cross-color-default:#777;--xy-node-color-default:#f8f8f8;--xy-node-border-default:1px solid #3c3c3c;--xy-node-background-color-default:#1e1e1e;--xy-node-group-background-color-default:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #ffffff14;--xy-node-boxshadow-selected-default:0 0 0 .5px #999;--xy-handle-background-color-default:#bebebe;--xy-handle-border-color-default:#1e1e1e;--xy-selection-background-color-default:#c8c8dc14;--xy-selection-border-default:1px dotted #c8c8dccc;--xy-controls-button-background-color-default:#2b2b2b;--xy-controls-button-background-color-hover-default:#3e3e3e;--xy-controls-button-color-default:#f8f8f8;--xy-controls-button-color-hover-default:#fff;--xy-controls-button-border-color-default:#5b5b5b;--xy-controls-box-shadow-default:0 0 2px 1px #00000014;--xy-edge-label-background-color-default:#141414;--xy-edge-label-color-default:#f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props,var(--xy-background-color,var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__pane{z-index:1}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width,var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke,var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width,var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{pointer-events:none;position:absolute;overflow:visible}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:.5s linear infinite dashdraw}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected,var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke,var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:.5s linear infinite dashdraw}svg.react-flow__connectionline{z-index:1001;position:absolute;overflow:visible}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{-webkit-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default;position:absolute}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:0 0;pointer-events:none}.react-flow__nodesselection-rect{pointer-events:all;cursor:grab;position:absolute}.react-flow__handle{pointer-events:none;background-color:var(--xy-handle-background-color,var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color,var(--xy-handle-border-color-default));border-radius:100%;width:6px;min-width:5px;height:6px;min-height:5px;position:absolute}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;bottom:0;left:50%;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{z-index:5;margin:15px;position:absolute}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px)translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px)translateY(-50%)}.react-flow__attribution{background:var(--xy-attribution-background-color,var(--xy-attribution-background-color-default));margin:0;padding:2px 3px;font-size:10px}.react-flow__attribution a{color:#999;text-decoration:none}@keyframes dashdraw{0%{stroke-dashoffset:10px}}.react-flow__edgelabel-renderer{pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__viewport-portal{-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__minimap{background:var(--xy-minimap-background-color-props,var(--xy-minimap-background-color,var(--xy-minimap-background-color-default)))}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var(--xy-minimap-mask-background-color-props,var(--xy-minimap-mask-background-color,var(--xy-minimap-mask-background-color-default)));stroke:var(--xy-minimap-mask-stroke-color-props,var(--xy-minimap-mask-stroke-color,var(--xy-minimap-mask-stroke-color-default)));stroke-width:var(--xy-minimap-mask-stroke-width-props,var(--xy-minimap-mask-stroke-width,var(--xy-minimap-mask-stroke-width-default)))}.react-flow__minimap-node{fill:var(--xy-minimap-node-background-color-props,var(--xy-minimap-node-background-color,var(--xy-minimap-node-background-color-default)));stroke:var(--xy-minimap-node-stroke-color-props,var(--xy-minimap-node-stroke-color,var(--xy-minimap-node-stroke-color-default)));stroke-width:var(--xy-minimap-node-stroke-width-props,var(--xy-minimap-node-stroke-width,var(--xy-minimap-node-stroke-width-default)))}.react-flow__background-pattern.dots{fill:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-dots-color-default)))}.react-flow__background-pattern.lines{stroke:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-lines-color-default)))}.react-flow__background-pattern.cross{stroke:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-cross-color-default)))}.react-flow__controls{box-shadow:var(--xy-controls-box-shadow,var(--xy-controls-box-shadow-default));flex-direction:column;display:flex}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{background:var(--xy-controls-button-background-color,var(--xy-controls-button-background-color-default));border:none;border-bottom:1px solid var(--xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default)));width:26px;height:26px;color:var(--xy-controls-button-color-props,var(--xy-controls-button-color,var(--xy-controls-button-color-default)));cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;padding:4px;display:flex}.react-flow__controls-button svg{fill:currentColor;width:100%;max-width:12px;max-height:12px}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{border-radius:var(--xy-node-border-radius,var(--xy-node-border-radius-default));width:150px;color:var(--xy-node-color,var(--xy-node-color-default));text-align:center;border:var(--xy-node-border,var(--xy-node-border-default));background-color:var(--xy-node-background-color,var(--xy-node-background-color-default));padding:10px;font-size:12px}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover,var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected,var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color,var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color,var(--xy-selection-background-color-default));border:var(--xy-selection-border,var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var(--xy-controls-button-background-color-hover-props,var(--xy-controls-button-background-color-hover,var(--xy-controls-button-background-color-hover-default)));color:var(--xy-controls-button-color-hover-props,var(--xy-controls-button-color-hover,var(--xy-controls-button-color-hover-default)))}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var(--xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default)))}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{background-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border:1px solid #fff;border-radius:1px;width:5px;height:5px;translate:-50% -50%}.react-flow__resize-control.handle.left{top:50%;left:0}.react-flow__resize-control.handle.right{top:50%;left:100%}.react-flow__resize-control.handle.top{top:0;left:50%}.react-flow__resize-control.handle.bottom{top:100%;left:50%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border-style:solid;border-width:0}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;height:100%;top:0;transform:translate(-50%)}.react-flow__resize-control.line.left{border-left-width:1px;left:0}.react-flow__resize-control.line.right{border-right-width:1px;left:100%}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{width:100%;height:1px;left:0;transform:translateY(-50%)}.react-flow__resize-control.line.top{border-top-width:1px;top:0}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color,var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color,var(--xy-edge-label-color-default))}.xterm{cursor:text;-webkit-user-select:none;user-select:none;position:relative}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{z-index:5;position:absolute;top:0}.xterm .xterm-helper-textarea{opacity:0;z-index:-5;white-space:nowrap;resize:none;border:0;width:0;height:0;margin:0;padding:0;position:absolute;top:0;left:-9999em;overflow:hidden}.xterm .composition-view{color:#fff;white-space:nowrap;z-index:1;background:#000;display:none;position:absolute}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{cursor:default;background-color:#000;position:absolute;top:0;right:0;bottom:0;left:0;overflow-y:scroll}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;top:0;left:0}.xterm-char-measure-element{visibility:hidden;line-height:normal;display:inline-block;position:absolute;top:0;left:-9999em}.xterm.enable-mouse-events{cursor:default}.xterm.xterm-cursor-pointer,.xterm .xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility:not(.debug),.xterm .xterm-message{z-index:10;color:#0000;pointer-events:none;position:absolute;top:0;right:0;bottom:0;left:0}.xterm .xterm-accessibility-tree:not(.debug) ::selection{color:#0000}.xterm .xterm-accessibility-tree{-webkit-user-select:text;user-select:text;white-space:pre;font-family:monospace}.xterm .xterm-accessibility-tree>div{transform-origin:0;width:fit-content}.xterm .live-region{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{-webkit-text-decoration:underline double;text-decoration:underline double}.xterm-underline-3{-webkit-text-decoration:underline wavy;text-decoration:underline wavy}.xterm-underline-4{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.xterm-underline-5{-webkit-text-decoration:underline dashed;text-decoration:underline dashed}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:underline overline}.xterm-overline.xterm-underline-2{-webkit-text-decoration:overline double underline;text-decoration:overline double underline}.xterm-overline.xterm-underline-3{-webkit-text-decoration:overline wavy underline;text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{-webkit-text-decoration:overline dotted underline;text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{-webkit-text-decoration:overline dashed underline;text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;pointer-events:none;position:absolute;top:0;right:0}.xterm-decoration-top{z-index:2;position:relative}.xterm .xterm-scrollable-element>.scrollbar{cursor:default}.xterm .xterm-scrollable-element>.scrollbar>.scra{cursor:pointer;font-size:11px!important}.xterm .xterm-scrollable-element>.visible{opacity:1;z-index:11;background:0 0;transition:opacity .1s linear}.xterm .xterm-scrollable-element>.invisible{opacity:0;pointer-events:none}.xterm .xterm-scrollable-element>.invisible.fade{transition:opacity .8s linear}.xterm .xterm-scrollable-element>.shadow{display:none;position:absolute}.xterm .xterm-scrollable-element>.shadow.top{width:100%;height:3px;box-shadow:var(--vscode-scrollbar-shadow,#000) 0 6px 6px -6px inset;display:block;top:0;left:3px}.xterm .xterm-scrollable-element>.shadow.left{width:3px;height:100%;box-shadow:var(--vscode-scrollbar-shadow,#000) 6px 0 6px -6px inset;display:block;top:3px;left:0}.xterm .xterm-scrollable-element>.shadow.top-left-corner{width:3px;height:3px;display:block;top:0;left:0}.xterm .xterm-scrollable-element>.shadow.top.left{box-shadow:var(--vscode-scrollbar-shadow,#000) 6px 0 6px -6px inset}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing) * 0)}.inset-1{inset:calc(var(--spacing) * 1)}.inset-\[-2px\]{top:-2px;right:-2px;bottom:-2px;left:-2px}.inset-\[-14px\]{top:-14px;right:-14px;bottom:-14px;left:-14px}.inset-\[5px\]{top:5px;right:5px;bottom:5px;left:5px}.inset-\[6px\]{top:6px;right:6px;bottom:6px;left:6px}.inset-\[10px\]{top:10px;right:10px;bottom:10px;left:10px}.inset-y-0{inset-block:calc(var(--spacing) * 0)}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.-top-0\.5{top:calc(var(--spacing) * -.5)}.top-0{top:calc(var(--spacing) * 0)}.top-1\.5{top:calc(var(--spacing) * 1.5)}.top-1\/2{top:50%}.top-2{top:calc(var(--spacing) * 2)}.top-3{top:calc(var(--spacing) * 3)}.top-4{top:calc(var(--spacing) * 4)}.top-\[-1px\]{top:-1px}.top-\[15\%\]{top:15%}.top-full{top:100%}.-right-0\.5{right:calc(var(--spacing) * -.5)}.right-0{right:calc(var(--spacing) * 0)}.right-1\.5{right:calc(var(--spacing) * 1.5)}.right-2{right:calc(var(--spacing) * 2)}.right-2\.5{right:calc(var(--spacing) * 2.5)}.right-3{right:calc(var(--spacing) * 3)}.right-3\.5{right:calc(var(--spacing) * 3.5)}.right-4{right:calc(var(--spacing) * 4)}.bottom-0{bottom:calc(var(--spacing) * 0)}.bottom-2{bottom:calc(var(--spacing) * 2)}.bottom-4{bottom:calc(var(--spacing) * 4)}.bottom-10{bottom:calc(var(--spacing) * 10)}.bottom-\[-1px\]{bottom:-1px}.left-0{left:calc(var(--spacing) * 0)}.left-1\/2{left:50%}.left-2{left:calc(var(--spacing) * 2)}.left-2\.5{left:calc(var(--spacing) * 2.5)}.left-3{left:calc(var(--spacing) * 3)}.left-3\.5{left:calc(var(--spacing) * 3.5)}.left-4{left:calc(var(--spacing) * 4)}.left-\[-13px\]{left:-13px}.left-\[7px\]{left:7px}.left-\[9px\]{left:9px}.left-\[60px\]{left:60px}.z-10{z-index:10}.z-20{z-index:20}.z-40{z-index:40}.z-50{z-index:50}.z-\[100\]{z-index:100}.col-span-2{grid-column:span 2/span 2}.col-span-3{grid-column:span 3/span 3}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.mx-0\.5{margin-inline:calc(var(--spacing) * .5)}.mx-1{margin-inline:calc(var(--spacing) * 1)}.mx-1\.5{margin-inline:calc(var(--spacing) * 1.5)}.mx-2{margin-inline:calc(var(--spacing) * 2)}.mx-3{margin-inline:calc(var(--spacing) * 3)}.mx-4{margin-inline:calc(var(--spacing) * 4)}.mx-auto{margin-inline:auto}.my-1{margin-block:calc(var(--spacing) * 1)}.my-1\.5{margin-block:calc(var(--spacing) * 1.5)}.my-2{margin-block:calc(var(--spacing) * 2)}.my-3{margin-block:calc(var(--spacing) * 3)}.my-5{margin-block:calc(var(--spacing) * 5)}.my-auto{margin-block:auto}.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-2\.5{margin-top:calc(var(--spacing) * 2.5)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-3\.5{margin-top:calc(var(--spacing) * 3.5)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mt-auto{margin-top:auto}.mr-1{margin-right:calc(var(--spacing) * 1)}.mr-2{margin-right:calc(var(--spacing) * 2)}.-mb-px{margin-bottom:-1px}.mb-0{margin-bottom:calc(var(--spacing) * 0)}.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-2\.5{margin-bottom:calc(var(--spacing) * 2.5)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-5{margin-bottom:calc(var(--spacing) * 5)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.mb-8{margin-bottom:calc(var(--spacing) * 8)}.mb-10{margin-bottom:calc(var(--spacing) * 10)}.mb-px{margin-bottom:1px}.-ml-1{margin-left:calc(var(--spacing) * -1)}.ml-0\.5{margin-left:calc(var(--spacing) * .5)}.ml-1{margin-left:calc(var(--spacing) * 1)}.ml-1\.5{margin-left:calc(var(--spacing) * 1.5)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-3{margin-left:calc(var(--spacing) * 3)}.ml-3\.5{margin-left:calc(var(--spacing) * 3.5)}.ml-6{margin-left:calc(var(--spacing) * 6)}.ml-8{margin-left:calc(var(--spacing) * 8)}.ml-11{margin-left:calc(var(--spacing) * 11)}.ml-auto{margin-left:auto}.line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-3{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.\!h-1{height:calc(var(--spacing) * 1)!important}.h-0\.5{height:calc(var(--spacing) * .5)}.h-1{height:calc(var(--spacing) * 1)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-11{height:calc(var(--spacing) * 11)}.h-12{height:calc(var(--spacing) * 12)}.h-14{height:calc(var(--spacing) * 14)}.h-16{height:calc(var(--spacing) * 16)}.h-20{height:calc(var(--spacing) * 20)}.h-28{height:calc(var(--spacing) * 28)}.h-40{height:calc(var(--spacing) * 40)}.h-52{height:calc(var(--spacing) * 52)}.h-64{height:calc(var(--spacing) * 64)}.h-\[2px\]{height:2px}.h-\[4px\]{height:4px}.h-\[6px\]{height:6px}.h-\[18px\]{height:18px}.h-\[20px\]{height:20px}.h-\[72px\]{height:72px}.h-\[calc\(100\%-57px\)\]{height:calc(100% - 57px)}.h-\[calc\(100\%-65px\)\]{height:calc(100% - 65px)}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-28{max-height:calc(var(--spacing) * 28)}.max-h-32{max-height:calc(var(--spacing) * 32)}.max-h-40{max-height:calc(var(--spacing) * 40)}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-80{max-height:calc(var(--spacing) * 80)}.max-h-\[10rem\]{max-height:10rem}.max-h-\[70vh\]{max-height:70vh}.max-h-\[85vh\]{max-height:85vh}.max-h-\[320px\]{max-height:320px}.max-h-\[340px\]{max-height:340px}.max-h-\[400px\]{max-height:400px}.min-h-0{min-height:calc(var(--spacing) * 0)}.min-h-\[4rem\]{min-height:4rem}.min-h-\[40px\]{min-height:40px}.min-h-\[120px\]{min-height:120px}.min-h-\[140px\]{min-height:140px}.\!w-1{width:calc(var(--spacing) * 1)!important}.w-1{width:calc(var(--spacing) * 1)}.w-1\.5{width:calc(var(--spacing) * 1.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-3\.5{width:calc(var(--spacing) * 3.5)}.w-3\/4{width:75%}.w-4{width:calc(var(--spacing) * 4)}.w-4\/5{width:80%}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-7{width:calc(var(--spacing) * 7)}.w-8{width:calc(var(--spacing) * 8)}.w-9{width:calc(var(--spacing) * 9)}.w-10{width:calc(var(--spacing) * 10)}.w-11{width:calc(var(--spacing) * 11)}.w-12{width:calc(var(--spacing) * 12)}.w-14{width:calc(var(--spacing) * 14)}.w-16{width:calc(var(--spacing) * 16)}.w-20{width:calc(var(--spacing) * 20)}.w-24{width:calc(var(--spacing) * 24)}.w-28{width:calc(var(--spacing) * 28)}.w-32{width:calc(var(--spacing) * 32)}.w-48{width:calc(var(--spacing) * 48)}.w-72{width:calc(var(--spacing) * 72)}.w-80{width:calc(var(--spacing) * 80)}.w-\[6px\]{width:6px}.w-\[11px\]{width:11px}.w-\[18px\]{width:18px}.w-\[40\%\]{width:40%}.w-\[50px\]{width:50px}.w-\[60\%\]{width:60%}.w-\[70\%\]{width:70%}.w-\[90\%\]{width:90%}.w-\[220px\]{width:220px}.w-\[240px\]{width:240px}.w-\[400px\]{width:400px}.w-\[480px\]{width:480px}.w-\[520px\]{width:520px}.w-full{width:100%}.w-px{width:1px}.max-w-2xl{max-width:var(--container-2xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-24{max-width:calc(var(--spacing) * 24)}.max-w-28{max-width:calc(var(--spacing) * 28)}.max-w-36{max-width:calc(var(--spacing) * 36)}.max-w-40{max-width:calc(var(--spacing) * 40)}.max-w-\[72px\]{max-width:72px}.max-w-\[80px\]{max-width:80px}.max-w-\[85\%\]{max-width:85%}.max-w-\[90\%\]{max-width:90%}.max-w-\[100px\]{max-width:100px}.max-w-\[120px\]{max-width:120px}.max-w-\[160px\]{max-width:160px}.max-w-\[180px\]{max-width:180px}.max-w-\[220px\]{max-width:220px}.max-w-\[240px\]{max-width:240px}.max-w-\[260px\]{max-width:260px}.max-w-\[280px\]{max-width:280px}.max-w-\[440px\]{max-width:440px}.max-w-\[460px\]{max-width:460px}.max-w-\[520px\]{max-width:520px}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-sm{max-width:var(--container-sm)}.max-w-xl{max-width:var(--container-xl)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-4{min-width:calc(var(--spacing) * 4)}.min-w-\[18px\]{min-width:18px}.min-w-\[20px\]{min-width:20px}.min-w-\[140px\]{min-width:140px}.min-w-\[160px\]{min-width:160px}.min-w-\[200px\]{min-width:200px}.min-w-\[220px\]{min-width:220px}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.flex-1{flex:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.basis-\[12\.5\%\]{flex-basis:12.5%}.-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-x-2{--tw-translate-x:calc(var(--spacing) * -2);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-0{--tw-translate-x:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-4{--tw-translate-x:calc(var(--spacing) * 4);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)}.rotate-90{rotate:90deg}.rotate-180{rotate:180deg}.animate-\[shimmer_1\.5s_ease-in-out_infinite\]{animation:1.5s ease-in-out infinite shimmer}.animate-\[spin-slow_3s_linear_infinite\]{animation:3s linear infinite spin-slow}.animate-\[spin-slow_30s_linear_infinite\]{animation:30s linear infinite spin-slow}.animate-ping{animation:var(--animate-ping)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-col-resize{cursor:col-resize}.cursor-crosshair{cursor:crosshair}.cursor-default{cursor:default}.cursor-help{cursor:help}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.cursor-row-resize{cursor:row-resize}.touch-none{touch-action:none}.resize{resize:both}.resize-none{resize:none}.resize-y{resize:vertical}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.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))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-\[1fr\,100px\]{grid-template-columns:1fr,100px}.grid-cols-\[repeat\(auto-fill\,minmax\(260px\,1fr\)\)\]{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.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{gap:calc(var(--spacing) * 0)}.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-3\.5{gap:calc(var(--spacing) * 3.5)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-8{gap:calc(var(--spacing) * 8)}.gap-px{gap:1px}:where(.space-y-0>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 0) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 0) * calc(1 - var(--tw-space-y-reverse)))}: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-2\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2.5) * 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-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-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-10>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 10) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 10) * calc(1 - var(--tw-space-y-reverse)))}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-border-subtle>:not(:last-child)){border-color:var(--color-border-subtle)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.scroll-smooth{scroll-behavior:smooth}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-\[4px\]{border-radius:4px}.rounded-\[inherit\]{border-radius:inherit}.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-br-md{border-bottom-right-radius:var(--radius-md)}.rounded-bl-md{border-bottom-left-radius:var(--radius-md)}.\!border-0{border-style:var(--tw-border-style)!important;border-width:0!important}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-x{border-inline-style:var(--tw-border-style);border-inline-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-0{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-solid{--tw-border-style:solid;border-style:solid}.border-\[\#2e323a\]{border-color:#2e323a}.border-\[\#61afef\]\/20{border-color:#61afef33}.border-\[\#61afef\]\/35{border-color:#61afef59}.border-\[\#61afef\]\/40{border-color:#61afef66}.border-\[\#262a32\]{border-color:#262a32}.border-accent{border-color:var(--color-accent)}.border-accent\/10{border-color:#33afbc1a}@supports (color:color-mix(in lab,red,red)){.border-accent\/10{border-color:color-mix(in oklab,var(--color-accent) 10%,transparent)}}.border-accent\/15{border-color:#33afbc26}@supports (color:color-mix(in lab,red,red)){.border-accent\/15{border-color:color-mix(in oklab,var(--color-accent) 15%,transparent)}}.border-accent\/20{border-color:#33afbc33}@supports (color:color-mix(in lab,red,red)){.border-accent\/20{border-color:color-mix(in oklab,var(--color-accent) 20%,transparent)}}.border-accent\/25{border-color:#33afbc40}@supports (color:color-mix(in lab,red,red)){.border-accent\/25{border-color:color-mix(in oklab,var(--color-accent) 25%,transparent)}}.border-accent\/30{border-color:#33afbc4d}@supports (color:color-mix(in lab,red,red)){.border-accent\/30{border-color:color-mix(in oklab,var(--color-accent) 30%,transparent)}}.border-accent\/40{border-color:#33afbc66}@supports (color:color-mix(in lab,red,red)){.border-accent\/40{border-color:color-mix(in oklab,var(--color-accent) 40%,transparent)}}.border-border{border-color:var(--color-border)}.border-border-subtle{border-color:var(--color-border-subtle)}.border-border-subtle\/30{border-color:#2c313a4d}@supports (color:color-mix(in lab,red,red)){.border-border-subtle\/30{border-color:color-mix(in oklab,var(--color-border-subtle) 30%,transparent)}}.border-border-subtle\/50{border-color:#2c313a80}@supports (color:color-mix(in lab,red,red)){.border-border-subtle\/50{border-color:color-mix(in oklab,var(--color-border-subtle) 50%,transparent)}}.border-danger{border-color:var(--color-danger)}.border-danger\/15{border-color:#e06c7526}@supports (color:color-mix(in lab,red,red)){.border-danger\/15{border-color:color-mix(in oklab,var(--color-danger) 15%,transparent)}}.border-danger\/20{border-color:#e06c7533}@supports (color:color-mix(in lab,red,red)){.border-danger\/20{border-color:color-mix(in oklab,var(--color-danger) 20%,transparent)}}.border-danger\/30{border-color:#e06c754d}@supports (color:color-mix(in lab,red,red)){.border-danger\/30{border-color:color-mix(in oklab,var(--color-danger) 30%,transparent)}}.border-info\/15{border-color:#61afef26}@supports (color:color-mix(in lab,red,red)){.border-info\/15{border-color:color-mix(in oklab,var(--color-info) 15%,transparent)}}.border-info\/20{border-color:#61afef33}@supports (color:color-mix(in lab,red,red)){.border-info\/20{border-color:color-mix(in oklab,var(--color-info) 20%,transparent)}}.border-info\/25{border-color:#61afef40}@supports (color:color-mix(in lab,red,red)){.border-info\/25{border-color:color-mix(in oklab,var(--color-info) 25%,transparent)}}.border-purple\/20{border-color:#c678dd33}@supports (color:color-mix(in lab,red,red)){.border-purple\/20{border-color:color-mix(in oklab,var(--color-purple) 20%,transparent)}}.border-red-500\/15{border-color:#fb2c3626}@supports (color:color-mix(in lab,red,red)){.border-red-500\/15{border-color:color-mix(in oklab,var(--color-red-500) 15%,transparent)}}.border-success\/20{border-color:#4ae16833}@supports (color:color-mix(in lab,red,red)){.border-success\/20{border-color:color-mix(in oklab,var(--color-success) 20%,transparent)}}.border-success\/30{border-color:#4ae1684d}@supports (color:color-mix(in lab,red,red)){.border-success\/30{border-color:color-mix(in oklab,var(--color-success) 30%,transparent)}}.border-success\/40{border-color:#4ae16866}@supports (color:color-mix(in lab,red,red)){.border-success\/40{border-color:color-mix(in oklab,var(--color-success) 40%,transparent)}}.border-surface-2{border-color:var(--color-surface-2)}.border-transparent{border-color:#0000}.border-warning{border-color:var(--color-warning)}.border-warning\/12{border-color:#e5c07b1f}@supports (color:color-mix(in lab,red,red)){.border-warning\/12{border-color:color-mix(in oklab,var(--color-warning) 12%,transparent)}}.border-warning\/15{border-color:#e5c07b26}@supports (color:color-mix(in lab,red,red)){.border-warning\/15{border-color:color-mix(in oklab,var(--color-warning) 15%,transparent)}}.border-warning\/20{border-color:#e5c07b33}@supports (color:color-mix(in lab,red,red)){.border-warning\/20{border-color:color-mix(in oklab,var(--color-warning) 20%,transparent)}}.border-warning\/30{border-color:#e5c07b4d}@supports (color:color-mix(in lab,red,red)){.border-warning\/30{border-color:color-mix(in oklab,var(--color-warning) 30%,transparent)}}.border-white\/\[0\.04\]{border-color:#ffffff0a}@supports (color:color-mix(in lab,red,red)){.border-white\/\[0\.04\]{border-color:color-mix(in oklab,var(--color-white) 4%,transparent)}}.border-white\/\[0\.06\]{border-color:#ffffff0f}@supports (color:color-mix(in lab,red,red)){.border-white\/\[0\.06\]{border-color:color-mix(in oklab,var(--color-white) 6%,transparent)}}.border-x-border{border-inline-color:var(--color-border)}.border-t-accent{border-top-color:var(--color-accent)}.border-t-transparent{border-top-color:#0000}.border-b-accent{border-bottom-color:var(--color-accent)}.\!border-l-accent{border-left-color:var(--color-accent)!important}.border-l-accent{border-left-color:var(--color-accent)}.border-l-danger{border-left-color:var(--color-danger)}.border-l-success{border-left-color:var(--color-success)}.border-l-warning{border-left-color:var(--color-warning)}.\!bg-transparent{background-color:#0000!important}.bg-\[\#0d1117\]{background-color:#0d1117}.bg-\[\#1c1f26\]{background-color:#1c1f26}.bg-\[\#242830\]{background-color:#242830}.bg-\[rgba\(51\,175\,188\,0\.05\)\]{background-color:#33afbc0d}.bg-accent{background-color:var(--color-accent)}.bg-accent\/5{background-color:#33afbc0d}@supports (color:color-mix(in lab,red,red)){.bg-accent\/5{background-color:color-mix(in oklab,var(--color-accent) 5%,transparent)}}.bg-accent\/8{background-color:#33afbc14}@supports (color:color-mix(in lab,red,red)){.bg-accent\/8{background-color:color-mix(in oklab,var(--color-accent) 8%,transparent)}}.bg-accent\/10{background-color:#33afbc1a}@supports (color:color-mix(in lab,red,red)){.bg-accent\/10{background-color:color-mix(in oklab,var(--color-accent) 10%,transparent)}}.bg-accent\/12{background-color:#33afbc1f}@supports (color:color-mix(in lab,red,red)){.bg-accent\/12{background-color:color-mix(in oklab,var(--color-accent) 12%,transparent)}}.bg-accent\/15{background-color:#33afbc26}@supports (color:color-mix(in lab,red,red)){.bg-accent\/15{background-color:color-mix(in oklab,var(--color-accent) 15%,transparent)}}.bg-accent\/20{background-color:#33afbc33}@supports (color:color-mix(in lab,red,red)){.bg-accent\/20{background-color:color-mix(in oklab,var(--color-accent) 20%,transparent)}}.bg-accent\/40{background-color:#33afbc66}@supports (color:color-mix(in lab,red,red)){.bg-accent\/40{background-color:color-mix(in oklab,var(--color-accent) 40%,transparent)}}.bg-accent\/50{background-color:#33afbc80}@supports (color:color-mix(in lab,red,red)){.bg-accent\/50{background-color:color-mix(in oklab,var(--color-accent) 50%,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-black\/40{background-color:#0006}@supports (color:color-mix(in lab,red,red)){.bg-black\/40{background-color:color-mix(in oklab,var(--color-black) 40%,transparent)}}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab,red,red)){.bg-black\/50{background-color:color-mix(in oklab,var(--color-black) 50%,transparent)}}.bg-border-subtle{background-color:var(--color-border-subtle)}.bg-danger\/8{background-color:#e06c7514}@supports (color:color-mix(in lab,red,red)){.bg-danger\/8{background-color:color-mix(in oklab,var(--color-danger) 8%,transparent)}}.bg-danger\/10{background-color:#e06c751a}@supports (color:color-mix(in lab,red,red)){.bg-danger\/10{background-color:color-mix(in oklab,var(--color-danger) 10%,transparent)}}.bg-danger\/12{background-color:#e06c751f}@supports (color:color-mix(in lab,red,red)){.bg-danger\/12{background-color:color-mix(in oklab,var(--color-danger) 12%,transparent)}}.bg-danger\/15{background-color:#e06c7526}@supports (color:color-mix(in lab,red,red)){.bg-danger\/15{background-color:color-mix(in oklab,var(--color-danger) 15%,transparent)}}.bg-danger\/80{background-color:#e06c75cc}@supports (color:color-mix(in lab,red,red)){.bg-danger\/80{background-color:color-mix(in oklab,var(--color-danger) 80%,transparent)}}.bg-green-400{background-color:var(--color-green-400)}.bg-info\/10{background-color:#61afef1a}@supports (color:color-mix(in lab,red,red)){.bg-info\/10{background-color:color-mix(in oklab,var(--color-info) 10%,transparent)}}.bg-info\/12{background-color:#61afef1f}@supports (color:color-mix(in lab,red,red)){.bg-info\/12{background-color:color-mix(in oklab,var(--color-info) 12%,transparent)}}.bg-info\/15{background-color:#61afef26}@supports (color:color-mix(in lab,red,red)){.bg-info\/15{background-color:color-mix(in oklab,var(--color-info) 15%,transparent)}}.bg-info\/20{background-color:#61afef33}@supports (color:color-mix(in lab,red,red)){.bg-info\/20{background-color:color-mix(in oklab,var(--color-info) 20%,transparent)}}.bg-orange\/12{background-color:#d19a661f}@supports (color:color-mix(in lab,red,red)){.bg-orange\/12{background-color:color-mix(in oklab,var(--color-orange) 12%,transparent)}}.bg-purple\/10{background-color:#c678dd1a}@supports (color:color-mix(in lab,red,red)){.bg-purple\/10{background-color:color-mix(in oklab,var(--color-purple) 10%,transparent)}}.bg-purple\/12{background-color:#c678dd1f}@supports (color:color-mix(in lab,red,red)){.bg-purple\/12{background-color:color-mix(in oklab,var(--color-purple) 12%,transparent)}}.bg-purple\/15{background-color:#c678dd26}@supports (color:color-mix(in lab,red,red)){.bg-purple\/15{background-color:color-mix(in oklab,var(--color-purple) 15%,transparent)}}.bg-purple\/20{background-color:#c678dd33}@supports (color:color-mix(in lab,red,red)){.bg-purple\/20{background-color:color-mix(in oklab,var(--color-purple) 20%,transparent)}}.bg-red-500\/5{background-color:#fb2c360d}@supports (color:color-mix(in lab,red,red)){.bg-red-500\/5{background-color:color-mix(in oklab,var(--color-red-500) 5%,transparent)}}.bg-success{background-color:var(--color-success)}.bg-success\/5{background-color:#4ae1680d}@supports (color:color-mix(in lab,red,red)){.bg-success\/5{background-color:color-mix(in oklab,var(--color-success) 5%,transparent)}}.bg-success\/8{background-color:#4ae16814}@supports (color:color-mix(in lab,red,red)){.bg-success\/8{background-color:color-mix(in oklab,var(--color-success) 8%,transparent)}}.bg-success\/10{background-color:#4ae1681a}@supports (color:color-mix(in lab,red,red)){.bg-success\/10{background-color:color-mix(in oklab,var(--color-success) 10%,transparent)}}.bg-success\/12{background-color:#4ae1681f}@supports (color:color-mix(in lab,red,red)){.bg-success\/12{background-color:color-mix(in oklab,var(--color-success) 12%,transparent)}}.bg-success\/15{background-color:#4ae16826}@supports (color:color-mix(in lab,red,red)){.bg-success\/15{background-color:color-mix(in oklab,var(--color-success) 15%,transparent)}}.bg-success\/20{background-color:#4ae16833}@supports (color:color-mix(in lab,red,red)){.bg-success\/20{background-color:color-mix(in oklab,var(--color-success) 20%,transparent)}}.bg-success\/30{background-color:#4ae1684d}@supports (color:color-mix(in lab,red,red)){.bg-success\/30{background-color:color-mix(in oklab,var(--color-success) 30%,transparent)}}.bg-surface-0{background-color:var(--color-surface-0)}.bg-surface-0\/90{background-color:#1a1e25e6}@supports (color:color-mix(in lab,red,red)){.bg-surface-0\/90{background-color:color-mix(in oklab,var(--color-surface-0) 90%,transparent)}}.bg-surface-1{background-color:var(--color-surface-1)}.bg-surface-1\/50{background-color:#1e212780}@supports (color:color-mix(in lab,red,red)){.bg-surface-1\/50{background-color:color-mix(in oklab,var(--color-surface-1) 50%,transparent)}}.bg-surface-1\/80{background-color:#1e2127cc}@supports (color:color-mix(in lab,red,red)){.bg-surface-1\/80{background-color:color-mix(in oklab,var(--color-surface-1) 80%,transparent)}}.bg-surface-2{background-color:var(--color-surface-2)}.bg-surface-2\/95{background-color:#24282ff2}@supports (color:color-mix(in lab,red,red)){.bg-surface-2\/95{background-color:color-mix(in oklab,var(--color-surface-2) 95%,transparent)}}.bg-surface-3{background-color:var(--color-surface-3)}.bg-surface-3\/30{background-color:#282c344d}@supports (color:color-mix(in lab,red,red)){.bg-surface-3\/30{background-color:color-mix(in oklab,var(--color-surface-3) 30%,transparent)}}.bg-surface-3\/50{background-color:#282c3480}@supports (color:color-mix(in lab,red,red)){.bg-surface-3\/50{background-color:color-mix(in oklab,var(--color-surface-3) 50%,transparent)}}.bg-surface-4{background-color:var(--color-surface-4)}.bg-surface-4\/50{background-color:#2c313a80}@supports (color:color-mix(in lab,red,red)){.bg-surface-4\/50{background-color:color-mix(in oklab,var(--color-surface-4) 50%,transparent)}}.bg-surface-5{background-color:var(--color-surface-5)}.bg-surface-5\/40{background-color:#33384266}@supports (color:color-mix(in lab,red,red)){.bg-surface-5\/40{background-color:color-mix(in oklab,var(--color-surface-5) 40%,transparent)}}.bg-text-3{background-color:var(--color-text-3)}.bg-text-4{background-color:var(--color-text-4)}.bg-transparent{background-color:#0000}.bg-warning{background-color:var(--color-warning)}.bg-warning\/5{background-color:#e5c07b0d}@supports (color:color-mix(in lab,red,red)){.bg-warning\/5{background-color:color-mix(in oklab,var(--color-warning) 5%,transparent)}}.bg-warning\/6{background-color:#e5c07b0f}@supports (color:color-mix(in lab,red,red)){.bg-warning\/6{background-color:color-mix(in oklab,var(--color-warning) 6%,transparent)}}.bg-warning\/8{background-color:#e5c07b14}@supports (color:color-mix(in lab,red,red)){.bg-warning\/8{background-color:color-mix(in oklab,var(--color-warning) 8%,transparent)}}.bg-warning\/10{background-color:#e5c07b1a}@supports (color:color-mix(in lab,red,red)){.bg-warning\/10{background-color:color-mix(in oklab,var(--color-warning) 10%,transparent)}}.bg-warning\/12{background-color:#e5c07b1f}@supports (color:color-mix(in lab,red,red)){.bg-warning\/12{background-color:color-mix(in oklab,var(--color-warning) 12%,transparent)}}.bg-warning\/15{background-color:#e5c07b26}@supports (color:color-mix(in lab,red,red)){.bg-warning\/15{background-color:color-mix(in oklab,var(--color-warning) 15%,transparent)}}.bg-white{background-color:var(--color-white)}.bg-white\/8{background-color:#ffffff14}@supports (color:color-mix(in lab,red,red)){.bg-white\/8{background-color:color-mix(in oklab,var(--color-white) 8%,transparent)}}.bg-white\/\[0\.04\]{background-color:#ffffff0a}@supports (color:color-mix(in lab,red,red)){.bg-white\/\[0\.04\]{background-color:color-mix(in oklab,var(--color-white) 4%,transparent)}}.bg-gradient-to-b{--tw-gradient-position:to bottom in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-r{--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-accent\/8{--tw-gradient-from:#33afbc14}@supports (color:color-mix(in lab,red,red)){.from-accent\/8{--tw-gradient-from:color-mix(in oklab, var(--color-accent) 8%, transparent)}}.from-accent\/8{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-surface-0{--tw-gradient-from:var(--color-surface-0);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-surface-4{--tw-gradient-from:var(--color-surface-4);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.via-surface-5{--tw-gradient-via:var(--color-surface-5);--tw-gradient-via-stops:var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.to-accent\/3{--tw-gradient-to:#33afbc08}@supports (color:color-mix(in lab,red,red)){.to-accent\/3{--tw-gradient-to:color-mix(in oklab, var(--color-accent) 3%, transparent)}}.to-accent\/3{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-surface-1{--tw-gradient-to:var(--color-surface-1);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-surface-4{--tw-gradient-to:var(--color-surface-4);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.bg-\[length\:200\%_100\%\]{background-size:200% 100%}.fill-surface-4{fill:var(--color-surface-4)}.object-contain{object-fit:contain}.p-0{padding:calc(var(--spacing) * 0)}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:calc(var(--spacing) * 1)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-3\.5{padding:calc(var(--spacing) * 3.5)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.p-10{padding:calc(var(--spacing) * 10)}.px-0{padding-inline:calc(var(--spacing) * 0)}.px-0\.5{padding-inline:calc(var(--spacing) * .5)}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-3\.5{padding-inline:calc(var(--spacing) * 3.5)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.px-8{padding-inline:calc(var(--spacing) * 8)}.py-0{padding-block:calc(var(--spacing) * 0)}.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-4{padding-block:calc(var(--spacing) * 4)}.py-5{padding-block:calc(var(--spacing) * 5)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-10{padding-block:calc(var(--spacing) * 10)}.py-12{padding-block:calc(var(--spacing) * 12)}.py-16{padding-block:calc(var(--spacing) * 16)}.py-px{padding-block:1px}.pt-0{padding-top:calc(var(--spacing) * 0)}.pt-0\.5{padding-top:calc(var(--spacing) * .5)}.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-2\.5{padding-top:calc(var(--spacing) * 2.5)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-5{padding-top:calc(var(--spacing) * 5)}.pt-6{padding-top:calc(var(--spacing) * 6)}.pt-px{padding-top:1px}.pr-1{padding-right:calc(var(--spacing) * 1)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pr-7{padding-right:calc(var(--spacing) * 7)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pr-9{padding-right:calc(var(--spacing) * 9)}.pr-10{padding-right:calc(var(--spacing) * 10)}.pr-12{padding-right:calc(var(--spacing) * 12)}.pr-20{padding-right:calc(var(--spacing) * 20)}.pb-0{padding-bottom:calc(var(--spacing) * 0)}.pb-0\.5{padding-bottom:calc(var(--spacing) * .5)}.pb-1{padding-bottom:calc(var(--spacing) * 1)}.pb-1\.5{padding-bottom:calc(var(--spacing) * 1.5)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-2\.5{padding-bottom:calc(var(--spacing) * 2.5)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-5{padding-bottom:calc(var(--spacing) * 5)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-3\.5{padding-left:calc(var(--spacing) * 3.5)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-5{padding-left:calc(var(--spacing) * 5)}.pl-6{padding-left:calc(var(--spacing) * 6)}.pl-8{padding-left:calc(var(--spacing) * 8)}.pl-9{padding-left:calc(var(--spacing) * 9)}.pl-10{padding-left:calc(var(--spacing) * 10)}.pl-11{padding-left:calc(var(--spacing) * 11)}.pl-24{padding-left:calc(var(--spacing) * 24)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-2xs{font-size:var(--text-2xs);line-height:var(--tw-leading,var(--text-2xs--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.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-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-\[7px\]{font-size:7px}.text-\[8px\]{font-size:8px}.text-\[9px\]{font-size:9px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.text-\[14px\]{font-size:14px}.text-\[15px\]{font-size:15px}.text-\[20px\]{font-size:20px}.text-\[22px\]{font-size:22px}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.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\.05em\]{--tw-tracking:.05em;letter-spacing:.05em}.tracking-normal{--tw-tracking:var(--tracking-normal);letter-spacing:var(--tracking-normal)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.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-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-\[\#2a2e36\]{color:#2a2e36}.text-\[\#8b929e\]{color:#8b929e}.text-\[\#61afef\]{color:#61afef}.text-\[\#61afef\]\/60{color:#61afef99}.text-\[\#505862\]{color:#505862}.text-\[\#606878\]{color:#606878}.text-\[\#bcc2cd\]{color:#bcc2cd}.text-\[\#c9d1d9\]{color:#c9d1d9}.text-\[\#e6e6e6\]{color:#e6e6e6}.text-\[var\(--color-danger\)\]{color:var(--color-danger)}.text-\[var\(--text-dim\,\#6b7f95\)\]{color:var(--text-dim,#6b7f95)}.text-accent{color:var(--color-accent)}.text-accent\/50{color:#33afbc80}@supports (color:color-mix(in lab,red,red)){.text-accent\/50{color:color-mix(in oklab,var(--color-accent) 50%,transparent)}}.text-accent\/70{color:#33afbcb3}@supports (color:color-mix(in lab,red,red)){.text-accent\/70{color:color-mix(in oklab,var(--color-accent) 70%,transparent)}}.text-accent\/80{color:#33afbccc}@supports (color:color-mix(in lab,red,red)){.text-accent\/80{color:color-mix(in oklab,var(--color-accent) 80%,transparent)}}.text-blue-400{color:var(--color-blue-400)}.text-danger{color:var(--color-danger)}.text-danger\/60{color:#e06c7599}@supports (color:color-mix(in lab,red,red)){.text-danger\/60{color:color-mix(in oklab,var(--color-danger) 60%,transparent)}}.text-danger\/70{color:#e06c75b3}@supports (color:color-mix(in lab,red,red)){.text-danger\/70{color:color-mix(in oklab,var(--color-danger) 70%,transparent)}}.text-green-400{color:var(--color-green-400)}.text-info{color:var(--color-info)}.text-orange{color:var(--color-orange)}.text-orange-400{color:var(--color-orange-400)}.text-purple{color:var(--color-purple)}.text-red-400{color:var(--color-red-400)}.text-success{color:var(--color-success)}.text-surface-0{color:var(--color-surface-0)}.text-text-0{color:var(--color-text-0)}.text-text-1{color:var(--color-text-1)}.text-text-2{color:var(--color-text-2)}.text-text-3{color:var(--color-text-3)}.text-text-4{color:var(--color-text-4)}.text-warning{color:var(--color-warning)}.text-warning\/70{color:#e5c07bb3}@supports (color:color-mix(in lab,red,red)){.text-warning\/70{color:color-mix(in oklab,var(--color-warning) 70%,transparent)}}.text-warning\/80{color:#e5c07bcc}@supports (color:color-mix(in lab,red,red)){.text-warning\/80{color:color-mix(in oklab,var(--color-warning) 80%,transparent)}}.text-white{color:var(--color-white)}.text-yellow-400{color:var(--color-yellow-400)}.capitalize{text-transform:capitalize}.normal-case{text-transform:none}.uppercase{text-transform:uppercase}.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,)}.no-underline{text-decoration-line:none}.underline{text-decoration-line:underline}.underline-offset-2{text-underline-offset:2px}.accent-\[var\(--color-danger\)\]{accent-color:var(--color-danger)}.opacity-0{opacity:0}.opacity-20{opacity:.2}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-90{opacity:.9}.opacity-100{opacity:1}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);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_28px_rgba\(97\,175\,239\,0\.15\)\]{--tw-shadow:0 0 28px var(--tw-shadow-color,#61afef26);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px 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-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px 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-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,.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)}.shadow-accent\/5{--tw-shadow-color:#33afbc0d}@supports (color:color-mix(in lab,red,red)){.shadow-accent\/5{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-accent) 5%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-accent\/10{--tw-shadow-color:#33afbc1a}@supports (color:color-mix(in lab,red,red)){.shadow-accent\/10{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-accent) 10%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-black\/10{--tw-shadow-color:#0000001a}@supports (color:color-mix(in lab,red,red)){.shadow-black\/10{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-black) 10%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-danger\/20{--tw-shadow-color:#e06c7533}@supports (color:color-mix(in lab,red,red)){.shadow-danger\/20{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-danger) 20%, transparent) var(--tw-shadow-alpha), transparent)}}.ring-accent\/30{--tw-ring-color:#33afbc4d}@supports (color:color-mix(in lab,red,red)){.ring-accent\/30{--tw-ring-color:color-mix(in oklab, var(--color-accent) 30%, transparent)}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.\!filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)!important}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur-md{--tw-backdrop-blur:blur(var(--blur-md));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.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-\[grid-template-rows\]{transition-property:grid-template-rows;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))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-75{--tw-duration:75ms;transition-duration:75ms}.duration-100{--tw-duration:.1s;transition-duration:.1s}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.duration-700{--tw-duration:.7s;transition-duration:.7s}.duration-\[250ms\]{--tw-duration:.25s;transition-duration:.25s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-all{-webkit-user-select:all;user-select:all}.select-none{-webkit-user-select:none;user-select:none}@media(hover:hover){.group-hover\:block:is(:where(.group):hover *){display:block}.group-hover\:scale-110:is(:where(.group):hover *){--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x) var(--tw-scale-y)}.group-hover\:bg-accent\/15:is(:where(.group):hover *){background-color:#33afbc26}@supports (color:color-mix(in lab,red,red)){.group-hover\:bg-accent\/15:is(:where(.group):hover *){background-color:color-mix(in oklab,var(--color-accent) 15%,transparent)}}.group-hover\:text-accent:is(:where(.group):hover *){color:var(--color-accent)}.group-hover\:text-text-1:is(:where(.group):hover *){color:var(--color-text-1)}.group-hover\:text-text-2:is(:where(.group):hover *){color:var(--color-text-2)}.group-hover\:opacity-80:is(:where(.group):hover *){opacity:.8}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}.placeholder\:text-text-4::placeholder{color:var(--color-text-4)}.first\:pt-0:first-child{padding-top:calc(var(--spacing) * 0)}.last\:border-0:last-child{border-style:var(--tw-border-style);border-width:0}.last\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.last\:pb-0:last-child{padding-bottom:calc(var(--spacing) * 0)}.focus-within\:border-accent\/30:focus-within{border-color:#33afbc4d}@supports (color:color-mix(in lab,red,red)){.focus-within\:border-accent\/30:focus-within{border-color:color-mix(in oklab,var(--color-accent) 30%,transparent)}}.focus-within\:border-info\/40:focus-within{border-color:#61afef66}@supports (color:color-mix(in lab,red,red)){.focus-within\:border-info\/40:focus-within{border-color:color-mix(in oklab,var(--color-info) 40%,transparent)}}@media(hover:hover){.hover\:scale-\[1\.02\]:hover{scale:1.02}.hover\:border-\[\#2e3640\]:hover{border-color:#2e3640}.hover\:border-accent\/20:hover{border-color:#33afbc33}@supports (color:color-mix(in lab,red,red)){.hover\:border-accent\/20:hover{border-color:color-mix(in oklab,var(--color-accent) 20%,transparent)}}.hover\:border-accent\/30:hover{border-color:#33afbc4d}@supports (color:color-mix(in lab,red,red)){.hover\:border-accent\/30:hover{border-color:color-mix(in oklab,var(--color-accent) 30%,transparent)}}.hover\:border-accent\/40:hover{border-color:#33afbc66}@supports (color:color-mix(in lab,red,red)){.hover\:border-accent\/40:hover{border-color:color-mix(in oklab,var(--color-accent) 40%,transparent)}}.hover\:border-accent\/50:hover{border-color:#33afbc80}@supports (color:color-mix(in lab,red,red)){.hover\:border-accent\/50:hover{border-color:color-mix(in oklab,var(--color-accent) 50%,transparent)}}.hover\:border-border:hover{border-color:var(--color-border)}.hover\:border-border-subtle:hover{border-color:var(--color-border-subtle)}.hover\:bg-\[\#141720\]:hover{background-color:#141720}.hover\:bg-\[rgba\(51\,175\,188\,0\.06\)\]:hover{background-color:#33afbc0f}.hover\:bg-\[rgba\(51\,175\,188\,0\.08\)\]:hover{background-color:#33afbc14}.hover\:bg-accent\/5:hover{background-color:#33afbc0d}@supports (color:color-mix(in lab,red,red)){.hover\:bg-accent\/5:hover{background-color:color-mix(in oklab,var(--color-accent) 5%,transparent)}}.hover\:bg-accent\/8:hover{background-color:#33afbc14}@supports (color:color-mix(in lab,red,red)){.hover\:bg-accent\/8:hover{background-color:color-mix(in oklab,var(--color-accent) 8%,transparent)}}.hover\:bg-accent\/10:hover{background-color:#33afbc1a}@supports (color:color-mix(in lab,red,red)){.hover\:bg-accent\/10:hover{background-color:color-mix(in oklab,var(--color-accent) 10%,transparent)}}.hover\:bg-accent\/12:hover{background-color:#33afbc1f}@supports (color:color-mix(in lab,red,red)){.hover\:bg-accent\/12:hover{background-color:color-mix(in oklab,var(--color-accent) 12%,transparent)}}.hover\:bg-accent\/20:hover{background-color:#33afbc33}@supports (color:color-mix(in lab,red,red)){.hover\:bg-accent\/20:hover{background-color:color-mix(in oklab,var(--color-accent) 20%,transparent)}}.hover\:bg-accent\/25:hover{background-color:#33afbc40}@supports (color:color-mix(in lab,red,red)){.hover\:bg-accent\/25:hover{background-color:color-mix(in oklab,var(--color-accent) 25%,transparent)}}.hover\:bg-accent\/30:hover{background-color:#33afbc4d}@supports (color:color-mix(in lab,red,red)){.hover\:bg-accent\/30:hover{background-color:color-mix(in oklab,var(--color-accent) 30%,transparent)}}.hover\:bg-accent\/80:hover{background-color:#33afbccc}@supports (color:color-mix(in lab,red,red)){.hover\:bg-accent\/80:hover{background-color:color-mix(in oklab,var(--color-accent) 80%,transparent)}}.hover\:bg-accent\/90:hover{background-color:#33afbce6}@supports (color:color-mix(in lab,red,red)){.hover\:bg-accent\/90:hover{background-color:color-mix(in oklab,var(--color-accent) 90%,transparent)}}.hover\:bg-danger:hover{background-color:var(--color-danger)}.hover\:bg-danger\/10:hover{background-color:#e06c751a}@supports (color:color-mix(in lab,red,red)){.hover\:bg-danger\/10:hover{background-color:color-mix(in oklab,var(--color-danger) 10%,transparent)}}.hover\:bg-danger\/20:hover{background-color:#e06c7533}@supports (color:color-mix(in lab,red,red)){.hover\:bg-danger\/20:hover{background-color:color-mix(in oklab,var(--color-danger) 20%,transparent)}}.hover\:bg-danger\/25:hover{background-color:#e06c7540}@supports (color:color-mix(in lab,red,red)){.hover\:bg-danger\/25:hover{background-color:color-mix(in oklab,var(--color-danger) 25%,transparent)}}.hover\:bg-info\/20:hover{background-color:#61afef33}@supports (color:color-mix(in lab,red,red)){.hover\:bg-info\/20:hover{background-color:color-mix(in oklab,var(--color-info) 20%,transparent)}}.hover\:bg-info\/25:hover{background-color:#61afef40}@supports (color:color-mix(in lab,red,red)){.hover\:bg-info\/25:hover{background-color:color-mix(in oklab,var(--color-info) 25%,transparent)}}.hover\:bg-purple\/25:hover{background-color:#c678dd40}@supports (color:color-mix(in lab,red,red)){.hover\:bg-purple\/25:hover{background-color:color-mix(in oklab,var(--color-purple) 25%,transparent)}}.hover\:bg-red-400\/10:hover{background-color:#ff65681a}@supports (color:color-mix(in lab,red,red)){.hover\:bg-red-400\/10:hover{background-color:color-mix(in oklab,var(--color-red-400) 10%,transparent)}}.hover\:bg-success\/10:hover{background-color:#4ae1681a}@supports (color:color-mix(in lab,red,red)){.hover\:bg-success\/10:hover{background-color:color-mix(in oklab,var(--color-success) 10%,transparent)}}.hover\:bg-surface-1:hover{background-color:var(--color-surface-1)}.hover\:bg-surface-1\/80:hover{background-color:#1e2127cc}@supports (color:color-mix(in lab,red,red)){.hover\:bg-surface-1\/80:hover{background-color:color-mix(in oklab,var(--color-surface-1) 80%,transparent)}}.hover\:bg-surface-2:hover{background-color:var(--color-surface-2)}.hover\:bg-surface-3:hover{background-color:var(--color-surface-3)}.hover\:bg-surface-3\/50:hover{background-color:#282c3480}@supports (color:color-mix(in lab,red,red)){.hover\:bg-surface-3\/50:hover{background-color:color-mix(in oklab,var(--color-surface-3) 50%,transparent)}}.hover\:bg-surface-4:hover{background-color:var(--color-surface-4)}.hover\:bg-surface-4\/50:hover{background-color:#2c313a80}@supports (color:color-mix(in lab,red,red)){.hover\:bg-surface-4\/50:hover{background-color:color-mix(in oklab,var(--color-surface-4) 50%,transparent)}}.hover\:bg-surface-5:hover{background-color:var(--color-surface-5)}.hover\:bg-surface-5\/30:hover{background-color:#3338424d}@supports (color:color-mix(in lab,red,red)){.hover\:bg-surface-5\/30:hover{background-color:color-mix(in oklab,var(--color-surface-5) 30%,transparent)}}.hover\:bg-surface-5\/50:hover{background-color:#33384280}@supports (color:color-mix(in lab,red,red)){.hover\:bg-surface-5\/50:hover{background-color:color-mix(in oklab,var(--color-surface-5) 50%,transparent)}}.hover\:bg-surface-5\/70:hover{background-color:#333842b3}@supports (color:color-mix(in lab,red,red)){.hover\:bg-surface-5\/70:hover{background-color:color-mix(in oklab,var(--color-surface-5) 70%,transparent)}}.hover\:bg-surface-6:hover{background-color:var(--color-surface-6)}.hover\:bg-warning\/25:hover{background-color:#e5c07b40}@supports (color:color-mix(in lab,red,red)){.hover\:bg-warning\/25:hover{background-color:color-mix(in oklab,var(--color-warning) 25%,transparent)}}.hover\:from-accent\/14:hover{--tw-gradient-from:#33afbc24}@supports (color:color-mix(in lab,red,red)){.hover\:from-accent\/14:hover{--tw-gradient-from:color-mix(in oklab, var(--color-accent) 14%, transparent)}}.hover\:from-accent\/14:hover{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.hover\:to-accent\/6:hover{--tw-gradient-to:#33afbc0f}@supports (color:color-mix(in lab,red,red)){.hover\:to-accent\/6:hover{--tw-gradient-to:color-mix(in oklab, var(--color-accent) 6%, transparent)}}.hover\:to-accent\/6:hover{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.hover\:text-\[\#8b929e\]:hover{color:#8b929e}.hover\:text-accent:hover{color:var(--color-accent)}.hover\:text-accent\/80:hover{color:#33afbccc}@supports (color:color-mix(in lab,red,red)){.hover\:text-accent\/80:hover{color:color-mix(in oklab,var(--color-accent) 80%,transparent)}}.hover\:text-danger:hover{color:var(--color-danger)}.hover\:text-red-400:hover{color:var(--color-red-400)}.hover\:text-success\/80:hover{color:#4ae168cc}@supports (color:color-mix(in lab,red,red)){.hover\:text-success\/80:hover{color:color-mix(in oklab,var(--color-success) 80%,transparent)}}.hover\:text-text-0:hover{color:var(--color-text-0)}.hover\:text-text-1:hover{color:var(--color-text-1)}.hover\:text-text-2:hover{color:var(--color-text-2)}.hover\:text-text-3:hover{color:var(--color-text-3)}.hover\:underline:hover{text-decoration-line:underline}.hover\:\!opacity-100:hover{opacity:1!important}.hover\:opacity-85:hover{opacity:.85}.hover\:shadow-lg:hover{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px 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)}.hover\:shadow-black\/20:hover{--tw-shadow-color:#0003}@supports (color:color-mix(in lab,red,red)){.hover\:shadow-black\/20:hover{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-black) 20%, transparent) var(--tw-shadow-alpha), transparent)}}}.focus\:border-accent:focus{border-color:var(--color-accent)}.focus\:border-accent\/40:focus{border-color:#33afbc66}@supports (color:color-mix(in lab,red,red)){.focus\:border-accent\/40:focus{border-color:color-mix(in oklab,var(--color-accent) 40%,transparent)}}.focus\:border-accent\/50:focus{border-color:#33afbc80}@supports (color:color-mix(in lab,red,red)){.focus\:border-accent\/50:focus{border-color:color-mix(in oklab,var(--color-accent) 50%,transparent)}}.focus\:bg-danger\/10:focus{background-color:#e06c751a}@supports (color:color-mix(in lab,red,red)){.focus\:bg-danger\/10:focus{background-color:color-mix(in oklab,var(--color-danger) 10%,transparent)}}.focus\:bg-surface-5:focus{background-color:var(--color-surface-5)}.focus\:text-text-0:focus{color:var(--color-text-0)}.focus\:ring-1:focus{--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)}.focus\:ring-accent:focus{--tw-ring-color:var(--color-accent)}.focus\:ring-accent\/40:focus{--tw-ring-color:#33afbc66}@supports (color:color-mix(in lab,red,red)){.focus\:ring-accent\/40:focus{--tw-ring-color:color-mix(in oklab, var(--color-accent) 40%, transparent)}}.focus\:ring-danger:focus{--tw-ring-color:var(--color-danger)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:ring-1:focus-visible{--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)}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + 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)}.focus-visible\:ring-accent:focus-visible{--tw-ring-color:var(--color-accent)}.focus-visible\:ring-danger:focus-visible{--tw-ring-color:var(--color-danger)}.focus-visible\:ring-purple:focus-visible{--tw-ring-color:var(--color-purple)}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus-visible\:ring-offset-surface-0:focus-visible{--tw-ring-offset-color:var(--color-surface-0)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:cursor-wait:disabled{cursor:wait}.disabled\:opacity-15:disabled{opacity:.15}.disabled\:opacity-20:disabled{opacity:.2}.disabled\:opacity-30:disabled{opacity:.3}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}.data-\[state\=active\]\:border-accent[data-state=active]{border-color:var(--color-accent)}.data-\[state\=active\]\:text-text-0[data-state=active]{color:var(--color-text-0)}@media(min-width:40rem){.sm\:inline{display:inline}}@media(min-width:48rem){.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(data:font/woff2;base64,d09GMgABAAAAAAfsABQAAAAAEAwAAAeCAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhwbHhwoP0hWQVJbBmA/U1RBVIFiJyYAdC9qEQgKhGSEAAsgADCGCAE2AiQDOgQgBYlMB4EUDAcbLQ4onoexrSC/2ZyLAa8p8VHB8/x3Vue+V0hVJalMJg2nx/TCrQXxBeqLjQG7FyM1WEa/X1tEXN7cFz9EJEMmMUz3RihWSSKeQCbcIou0izz/C8v+fq3VfajEa9gDD11CImXS7qL/RJFVzC1qiB6KmKeD6TZdQ6IRGv78dL6uSVVCfgni5mzu7kcgQBgAEAQTQRCoL++STTYybkJxNfQxAAIAGu8OdEB9teW2jh4BpgDqFjAeSEByW3zFP0CBBgNMsMCGEDjgggdhiEAUAeIIED7ABTDUEnkIE9Q9ahFgKttcVhApo4ACB4qobHaccgDfEjFO6aaWUhjMLt2SyIvHKoDqoA4CSUwEIYQCEjhAO9R1G6keDeDZGjNo+AhxOjCEGTr1WeIF3kYBiLAOKvkJSMiKX0VdAyQt3SDJClCkxJCHkCzfqyVTriJZLcolS32JZHUekq2TYNkYtCtjYHMQXSxGjXDz2t/yLWXzDzxz+o3zFwDEaN23F+13pyMdQAEaSKAR9vcGq4A4MTSKCElGW+M7UcY7xqkggITb28ZJhlqc9q2twYKTt0NjixBgYvO9BIihEBLYuOFXQzfIQ7dXGUEEEgFDooBfAzqiQbpJrhiWSuKJCRFKYbHCyJKI2G5GiZbNAvgAu5pc3vwx4G+g3aDkhklABiSz0BICXrYghtYhx/cdJ+44rY2oZ0aMNRFz3VZjb6W33F3gzltqtOCV8tTHSpOeXuItfvr5lCdfzFpqtEitvqdcdGGFd28ZqqC0tPbeChGXgrIlnhSWu/eUso4uKWFLugyDzQJhflY4659+WjQ++6x72WUMv9G8mw6QJl7BVxX5fe/kpUsOvnZwee9uQ0cGXYd0o89XB2748sDSnt8d2VphdOTTgceDVvOds0v9P/s7HPq15aGun/6Vllb56f1dl0t1LejqrNkpdRZsG8TOnM5vkBG5oiVyVGnS8LHps5cfNWJs6qKPfaNSxiQNBUm3cKNWROr0GSur7Za31k1vieq7LH11VF+jXdRIasRKflc7jkobm1Z9te1IyZA0pDkhLR98+H37Zf1c/8at+dB7x+7GfVyTfJMPiYztsnl59Y5l4j+0n1RXlpHnF3Tq7HecmNF/CJodEMAikruxiyJaGLvHOdAfoA+oDvpjBm2b91cHGRZMU9n25xEU0A8fgEEAdKI3Q1iDtc034sug5YVMkE2jsE+BIkwSoQ3gxXMqz9tELp48bd0cFKOKS7xYjEuXBnZP5ia7DyiO/X/YI+PQSbt2uSdqAkWL9nQbV1XB94/+uPfdZz8dnXYFBYrcTl2SIR/ybxJNJPz/Gupb0JaZeens2ekC7EKr8t+Ls/P5VJPYJdHKyqfg2nqU6bhlidzcddQV/7MmecTzJ5VPcKXkNKSEogHjYFx6QZ7rQ+FSe8njaiNuOnXS8H2ScQ619c2mC3VTtauL0rRbXd/CkSOP37FY9Zkjz8+GibYUMOEWF+RdrFS8Ecv1SHOpPUPZGEIpjPvFyU5cXKjd6OXqorTqy9GwRd++HVufPGnVsW+aO3vggKZ18jR9sXaTC1PWTEsVUaK0FkNySbTQDqlm2PfDjZcu4aalnSLKjnOoYQ0nUlqqXcGpPu/4VgV/xU2pAqW4BW3qzhQ8/hFKhV2qE3+BKAtDqBXjfgnVdH4y0wg5tbVNRenNdTWOrenWLcupQdmsbq5b+18piTe/xRdp1xbILxNPJGInm2z6hoB21Lal0i+ePTtd7B45+3XhFJ329evskXm7qurUVREotqSluSo/L29d3qDhI4YOQqWhI4YNvBNfsMHeXKemXrxQfKeuPOGRVayA3JtkJKEgbPp+dXUDluddutRYLFoXGXWX6N3WFaGLbQtRSitVYNacTNSdy7AaG/HSaUEANcBoGXNdcZvZsOqQ1icBDv21/gzAoYPHH/WDW0qNR3QTYKEAEHig6o13NXbND06CQPlRtYjGNnSktRc09k1mAMDvAlDKfQjgy6fssInlfzmNAjKkDxoxHOBLdVRAIVt9j4qo+hA1w9T1aNBNTUOTTNUHLbqokE+UAfJXCIGw/IxCSL5GRUJeR40rL/UxTm4Q08H6MbCs70ObuNyIIXrINHQYInF06UUlevTjbQzTh5upiDMzMMogUtEnjPs/Y7jAHCJeB0GBHh04tC6FiB6ZFB1oArUSIoFoqhzCeAN6lHwm0T4C3VVPWvjpSMXReuWesMEcoqrmgtNBGd2noWeV0hNAz9rFeShNJxHGsPa3HXeKTk8b55hahySYHaYKKFFLpCfN8rsoaJn01CR04Gkc+5k7KVTCmClX8Q10HCrUEkVlSX+XO33oQR9609tJ516H497WSobWs5Up6TLaS10/dessIskgJSLiDlWvHVUywpkQ7hdPZqGyiEF0uVQerVcPamT1A3eKXdyI1vG9OoflrSXihZ1qqGE3nhmAgiIbRCQgPLEPtOM3UQwTLYaYYomNlpA44opnjV6jkD6id80OOrzf6BzmMD6eEa1zKyeYG1fzfEf16V6jw9XYOaar1/b2kP/IYX8oR2mcFvv2GtBV3JXgd437AQAA)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-cyrillic-wght-normal-D73BlboJ.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-greek-wght-normal-Bw9x6K1M.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-vietnamese-wght-normal-Bt-aOZkq.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}body{font-family:var(--font-sans);background:var(--color-surface-2);color:var(--color-text-1);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:.875rem}html{font-size:15px}#root{width:100vw;height:100vh;overflow:hidden}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-surface-5);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--color-surface-6)}::selection{background:#33afbc40}.xterm-viewport::-webkit-scrollbar{width:6px}.xterm-viewport::-webkit-scrollbar-track{background:0 0}.xterm-viewport::-webkit-scrollbar-thumb{background:var(--color-surface-5);border-radius:3px}.xterm-viewport::-webkit-scrollbar-thumb:hover{background:var(--color-surface-6)}.xterm-viewport{scrollbar-width:thin;scrollbar-color:var(--color-surface-5) transparent}.xterm{padding:0}.xterm-screen{width:100%!important}@keyframes pulse{50%{opacity:.5}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.animate-shimmer{background-size:200% 100%;animation:2.5s ease-in-out infinite shimmer}.animate-ellipsis:after{content:"";animation:1.5s steps(4,end) infinite ellipsis}@keyframes ellipsis{0%{content:""}25%{content:"."}50%{content:".."}75%{content:"..."}}@keyframes phase-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.animate-phase-in{animation:.35s ease-out forwards phase-in}@keyframes cascade-in{0%{opacity:0;transform:translate(-6px)}to{opacity:1;transform:translate(0)}}.animate-cascade-in{opacity:0;animation:.25s ease-out forwards cascade-in}@keyframes spin-slow{to{transform:rotate(360deg)}}@keyframes edge-flow{0%{stroke-dashoffset:20px}to{stroke-dashoffset:0}}*{--radius:6px}@keyframes gauge-pulse{0%,to{filter:drop-shadow(0 0 3px)}50%{filter:drop-shadow(0 0 8px)}}@keyframes node-scan{0%{transform:translateY(-100%)}to{transform:translateY(100%)}}@keyframes node-pulse-bar{0%,to{opacity:.4}50%{opacity:1}}@keyframes tooltip-slide-in{0%{opacity:0;transform:translate(-6px)}to{opacity:1;transform:translate(0)}}@keyframes orb-travel{0%{offset-distance:0%;opacity:0}5%{opacity:1}95%{opacity:1}to{offset-distance:100%;opacity:0}}@keyframes edge-dash-flow{to{stroke-dashoffset:-20px}}@keyframes edge-pulse{0%,to{stroke-opacity:.25}50%{stroke-opacity:.45}}.react-flow__edge path{stroke:#61afef59!important;stroke-width:1px!important;stroke-dasharray:6 4!important;animation:4s ease-in-out infinite edge-pulse!important}.react-flow__edge.animated path{filter:drop-shadow(0 0 4px #61afef66);stroke:#61afefb3!important;stroke-width:1.5px!important;stroke-dasharray:8 4!important;animation:1s linear infinite edge-dash-flow!important}@keyframes wizard-checkmark{0%{stroke-dashoffset:24px}to{stroke-dashoffset:0}}.electron-drag{-webkit-app-region:drag}.electron-no-drag-children button,.electron-no-drag-children input,.electron-no-drag-children a,.electron-no-drag-children kbd,.electron-no-drag-children select{-webkit-app-region:no-drag}.react-flow__node,.react-flow__node.dragging{transition:none!important}@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-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@keyframes spin{to{transform:rotate(360deg)}}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}