@pimote/pimote 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +333 -0
  3. package/bin/pimote.js +8 -0
  4. package/client/build/_app/env.js +1 -0
  5. package/client/build/_app/immutable/assets/0.CsjXJ2oE.css +2 -0
  6. package/client/build/_app/immutable/assets/2.CIRqqeIr.css +1 -0
  7. package/client/build/_app/immutable/assets/inter-cyrillic-ext-wght-normal.BOeWTOD4.woff2 +0 -0
  8. package/client/build/_app/immutable/assets/inter-cyrillic-wght-normal.DqGufNeO.woff2 +0 -0
  9. package/client/build/_app/immutable/assets/inter-greek-ext-wght-normal.DlzME5K_.woff2 +0 -0
  10. package/client/build/_app/immutable/assets/inter-greek-wght-normal.CkhJZR-_.woff2 +0 -0
  11. package/client/build/_app/immutable/assets/inter-latin-ext-wght-normal.DO1Apj_S.woff2 +0 -0
  12. package/client/build/_app/immutable/assets/inter-latin-wght-normal.Dx4kXJAl.woff2 +0 -0
  13. package/client/build/_app/immutable/assets/inter-vietnamese-wght-normal.CBcvBZtf.woff2 +0 -0
  14. package/client/build/_app/immutable/assets/jetbrains-mono-cyrillic-wght-normal.D73BlboJ.woff2 +0 -0
  15. package/client/build/_app/immutable/assets/jetbrains-mono-greek-wght-normal.Bw9x6K1M.woff2 +0 -0
  16. package/client/build/_app/immutable/assets/jetbrains-mono-latin-ext-wght-normal.DBQx-q_a.woff2 +0 -0
  17. package/client/build/_app/immutable/assets/jetbrains-mono-latin-wght-normal.B9CIFXIH.woff2 +0 -0
  18. package/client/build/_app/immutable/assets/jetbrains-mono-vietnamese-wght-normal.Bt-aOZkq.woff2 +0 -0
  19. package/client/build/_app/immutable/chunks/5FogVG_p.js +1 -0
  20. package/client/build/_app/immutable/chunks/BN18Mjoo.js +1 -0
  21. package/client/build/_app/immutable/chunks/BTSGQ0LP.js +3 -0
  22. package/client/build/_app/immutable/chunks/BTW4yCoz.js +1 -0
  23. package/client/build/_app/immutable/chunks/BgJ-X-tf.js +3 -0
  24. package/client/build/_app/immutable/chunks/CHncfsjL.js +1 -0
  25. package/client/build/_app/immutable/chunks/CnTTbAN2.js +1 -0
  26. package/client/build/_app/immutable/chunks/CnuZs6QA.js +1 -0
  27. package/client/build/_app/immutable/chunks/CvWR-ThL.js +1 -0
  28. package/client/build/_app/immutable/chunks/D1hYfEew.js +1 -0
  29. package/client/build/_app/immutable/chunks/D5m3x_L9.js +5 -0
  30. package/client/build/_app/immutable/chunks/L5t1qIFa.js +50 -0
  31. package/client/build/_app/immutable/entry/app.BjHwmkZK.js +2 -0
  32. package/client/build/_app/immutable/entry/start.CZeUhs5D.js +1 -0
  33. package/client/build/_app/immutable/nodes/0.HHf1ps7Y.js +5 -0
  34. package/client/build/_app/immutable/nodes/1.CjbUSBAL.js +1 -0
  35. package/client/build/_app/immutable/nodes/2.C22f_gRz.js +49 -0
  36. package/client/build/_app/version.json +1 -0
  37. package/client/build/index.html +45 -0
  38. package/client/build/pwa/badge-96.png +0 -0
  39. package/client/build/pwa/icon-192.png +0 -0
  40. package/client/build/pwa/icon-512.png +0 -0
  41. package/client/build/pwa/manifest.json +39 -0
  42. package/client/build/robots.txt +3 -0
  43. package/client/build/sw.js +2 -0
  44. package/package.json +81 -0
  45. package/patches/@mariozechner+pi-coding-agent+0.65.0.patch +24 -0
  46. package/scripts/postinstall-patches.mjs +55 -0
  47. package/server/dist/cli.js +347 -0
  48. package/server/dist/config.js +78 -0
  49. package/server/dist/event-buffer.js +223 -0
  50. package/server/dist/extension-ui-bridge.js +175 -0
  51. package/server/dist/folder-index.js +126 -0
  52. package/server/dist/index.js +54 -0
  53. package/server/dist/message-mapper.js +80 -0
  54. package/server/dist/panel-state.js +28 -0
  55. package/server/dist/paths.js +14 -0
  56. package/server/dist/push-infrastructure.js +73 -0
  57. package/server/dist/push-notification.js +56 -0
  58. package/server/dist/server.js +223 -0
  59. package/server/dist/session-manager.js +313 -0
  60. package/server/dist/session-metadata.js +81 -0
  61. package/server/dist/takeover.js +172 -0
  62. package/server/dist/ws-handler.js +989 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Antoine Lennartz
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,333 @@
1
+ # Pimote
2
+
3
+ [![npm](https://img.shields.io/npm/v/%40pimote%2Fpimote?style=flat-square)](https://www.npmjs.com/package/@pimote/pimote)
4
+ [![license](https://img.shields.io/npm/l/%40pimote%2Fpimote?style=flat-square)](LICENSE)
5
+ [![node](https://img.shields.io/node/v/%40pimote%2Fpimote?style=flat-square)](https://www.npmjs.com/package/@pimote/pimote)
6
+ [![publish app](https://github.com/alennartz/pimote/actions/workflows/publish-pimote.yml/badge.svg)](https://github.com/alennartz/pimote/actions/workflows/publish-pimote.yml)
7
+ [![panels](https://img.shields.io/npm/v/%40pimote%2Fpanels?style=flat-square&label=%40pimote%2Fpanels)](https://www.npmjs.com/package/@pimote/panels)
8
+
9
+ A full-featured web client for [pi](https://github.com/mariozechner/pi-coding-agent). Use your coding agent from your phone, tablet, or any browser — with multi-session management, real-time streaming, and push notifications.
10
+
11
+ Pimote implements all of pi's RPC-compatible UI extension mechanisms (select, confirm, input, editor, status, widgets, panels), so you can use your favorite pi extensions exactly as they work in the terminal — just through a browser.
12
+
13
+ **Links:** [npm package](https://www.npmjs.com/package/@pimote/pimote) · [panels package](https://www.npmjs.com/package/@pimote/panels) · [issues](https://github.com/alennartz/pimote/issues) · [pi](https://github.com/mariozechner/pi-coding-agent)
14
+
15
+ ## Quick start
16
+
17
+ **Requirements:** Node.js 22+, npm 10+, and at least one working pi provider/model configuration.
18
+
19
+ ### Install globally
20
+
21
+ ```bash
22
+ npm install -g @pimote/pimote
23
+ pimote
24
+ ```
25
+
26
+ ### Or run once with npx
27
+
28
+ ```bash
29
+ npx @pimote/pimote
30
+ ```
31
+
32
+ On first run, Pimote will:
33
+
34
+ - explain what it does
35
+ - ask which parent directories to scan for projects
36
+ - ask which port to use
37
+ - write `~/.config/pimote/config.json`
38
+ - start the server for you
39
+
40
+ Then open the printed URL in your browser — usually `http://localhost:3000` unless you picked another port.
41
+
42
+ > The npm package name is `@pimote/pimote`, but the installed command is simply `pimote`.
43
+
44
+ ## Why
45
+
46
+ Using pi through SSH on a phone doesn't work well — you can't scroll while the agent is working, and taking over sessions between devices means hunting for PIDs. Pimote gives you a dedicated UI that solves these problems and enables multi-session management across projects.
47
+
48
+ ## Architecture
49
+
50
+ ```
51
+ Phone/Browser ←→ Pimote Server
52
+
53
+ AgentSession (pi SDK)
54
+ ```
55
+
56
+ Pimote is published as the app package `@pimote/pimote` at the repo root, backed by an npm workspace monorepo:
57
+
58
+ | Package | Path | Description |
59
+ | -------------------- | ------------------ | ----------------------------------------------------- |
60
+ | **`@pimote/pimote`** | `./` | Publishable app package and `pimote` CLI |
61
+ | **`@pimote/shared`** | `shared/` | TypeScript types for the WebSocket wire protocol |
62
+ | **`@pimote/server`** | `server/` | Node.js HTTP + WebSocket server hosting pi sessions |
63
+ | **client** | `client/` | SvelteKit PWA (Svelte 5, Tailwind CSS, shadcn-svelte) |
64
+ | **`@pimote/panels`** | `packages/panels/` | Library for extensions to push card data to the UI |
65
+
66
+ ### Server
67
+
68
+ Node.js process that embeds pi `AgentSession` instances directly via the SDK. Manages session lifecycles, brokers WebSocket connections, buffers events for reconnect replay, bridges extension UI calls, detects conflicting processes, and delivers push notifications.
69
+
70
+ ### Client
71
+
72
+ Installable PWA (Svelte 5, Tailwind CSS, shadcn-svelte) with real-time streaming, multi-session tabs, folder browsing, extension UI, and push notifications. Works on phone and desktop.
73
+
74
+ ## Usage
75
+
76
+ ### Projects and Folders
77
+
78
+ The landing page shows a session-first home view. Sessions are grouped by project and ordered by recency so you can quickly resume work. Use the top-level **New session** action to pick any discovered project and start fresh.
79
+
80
+ ### Sessions
81
+
82
+ Each conversation with pi is a **session**, tied to a project folder. You can:
83
+
84
+ - **Open multiple sessions** simultaneously across different projects — tabs in the active session bar let you switch instantly
85
+ - **Resume existing sessions** — the session list shows all past conversations with creation date, message count, and a preview of the first message
86
+ - **Rename sessions** for easier identification
87
+ - **Archive sessions** to hide them from the default list without deleting them (toggle "show archived" to see them again)
88
+ - **Delete sessions** permanently
89
+ - **Fork sessions** to branch a conversation from a specific point
90
+ - **Start fresh** with a new session in the same project at any time
91
+
92
+ Session state persists across browser restarts — reopening Pimote restores your open tabs and reconnects automatically.
93
+
94
+ ### Conversation
95
+
96
+ Once in a session, you can:
97
+
98
+ - **Send prompts** with text and pasted/attached images
99
+ - **Steer** the agent while it's working — messages queue and deliver when the agent is ready
100
+ - **Abort** a running agent turn
101
+ - **Switch models** and **thinking levels** on the fly
102
+ - **Compact** the conversation to manage context window usage (also supports auto-compaction)
103
+ - Use **slash commands** — type `/` to get autocomplete for skills, extension commands, and prompt templates
104
+ - **Listen** to responses via per-message text-to-speech
105
+
106
+ ### Extensions
107
+
108
+ Pimote bridges all of pi's UI extension mechanisms over WebSocket:
109
+
110
+ - **Dialogs** — select (inline with keyboard shortcuts), confirm, text input, and multi-line code editor (CodeMirror with syntax highlighting)
111
+ - **Status bar** — live status entries from extensions
112
+ - **Panels** — structured card data pushed by extensions, displayed in a side panel (desktop) or overlay (mobile)
113
+
114
+ This means any pi extension that uses the standard UI APIs works in Pimote without modification.
115
+
116
+ ### Multi-Device and Conflict Handling
117
+
118
+ - **Session takeover** — if a project has an external pi process running (e.g., from a terminal), Pimote detects it and offers to kill it and take over
119
+ - **Device switching** — if you open the same session from another browser/device, the new connection displaces the old one
120
+ - **Push notifications** — enable notifications to get alerted when a background session finishes working (useful when switching away from the browser)
121
+
122
+ ### Reconnect
123
+
124
+ Network drops are handled transparently. The server buffers recent events per session, so when you reconnect, any missed events are replayed automatically — no lost output.
125
+
126
+ ## Prerequisites
127
+
128
+ - **Node.js** ≥ 22
129
+ - **npm** ≥ 10
130
+ - At least one LLM provider configured (pi is bundled as a dependency)
131
+
132
+ ## Install
133
+
134
+ ### From npm
135
+
136
+ ```bash
137
+ npm install -g @pimote/pimote
138
+ pimote
139
+ ```
140
+
141
+ ### With npx
142
+
143
+ ```bash
144
+ npx @pimote/pimote
145
+ ```
146
+
147
+ The first-run setup flow is the same either way. You can also run setup explicitly:
148
+
149
+ ```bash
150
+ pimote init
151
+ ```
152
+
153
+ Use a custom port either during setup or at startup:
154
+
155
+ ```bash
156
+ pimote init --port 3001
157
+ pimote --port 3001
158
+ ```
159
+
160
+ You can preseed project roots too:
161
+
162
+ ```bash
163
+ pimote init --root ~/projects --root ~/work --port 3001
164
+ ```
165
+
166
+ After startup, open the printed URL in your browser.
167
+
168
+ ### From source
169
+
170
+ ```bash
171
+ git clone https://github.com/alennartz/pimote.git
172
+ cd pimote
173
+ npm install
174
+ npm run build
175
+ npm start
176
+ ```
177
+
178
+ ## Configuration
179
+
180
+ Pimote reads its config from `~/.config/pimote/config.json` (respects `$XDG_CONFIG_HOME`).
181
+
182
+ The first-run wizard creates this file for you, but you can also edit it manually. The most important setting is `roots`: parent directories that contain your projects. Pimote scans each root one level deep and discovers project folders by looking for `.git` or `package.json`.
183
+
184
+ Example:
185
+
186
+ ```json
187
+ {
188
+ "roots": ["/home/you/projects", "/home/you/work"],
189
+ "port": 3000
190
+ }
191
+ ```
192
+
193
+ With this config, if `/home/you/projects/` contains `my-app/` and `another-repo/`, both show up in Pimote's folder browser.
194
+
195
+ ### Options
196
+
197
+ | Field | Type | Default | Description |
198
+ | ---------------------- | ---------- | -------------- | --------------------------------------------- |
199
+ | `roots` | `string[]` | **(required)** | Parent directories to scan for projects |
200
+ | `port` | `number` | `3000` | Server port |
201
+ | `idleTimeout` | `number` | `1800000` | Idle session reap timeout (ms, default 30min) |
202
+ | `bufferSize` | `number` | `1000` | Event ring buffer size per session |
203
+ | `defaultProvider` | `string` | — | Default LLM provider |
204
+ | `defaultModel` | `string` | — | Default model |
205
+ | `defaultThinkingLevel` | `string` | — | Default thinking level |
206
+
207
+ VAPID keys for push notifications are auto-generated on first run and written back to the config file. Session metadata and push subscription state live under `~/.local/state/pimote` (or `$XDG_STATE_HOME/pimote`).
208
+
209
+ ## Running
210
+
211
+ ### Installed app
212
+
213
+ ```bash
214
+ pimote
215
+ ```
216
+
217
+ Other useful commands:
218
+
219
+ ```bash
220
+ pimote start
221
+ pimote --port 3001
222
+ pimote help
223
+ pimote version
224
+ ```
225
+
226
+ > **Note:** Pimote has no built-in authentication. If you expose it over the internet, front it with a reverse proxy that handles auth (e.g., Cloudflare Tunnel with Access, OAuth2 Proxy, Tailscale).
227
+
228
+ ### Local installed deployment
229
+
230
+ If you want your personal Pimote service to run from an installed package instead of this repo's live build output, use the deployment targets:
231
+
232
+ ```bash
233
+ make deploy
234
+ ```
235
+
236
+ This will:
237
+
238
+ - build the app
239
+ - pack the npm package
240
+ - install it under `~/.local/share/pimote/releases/...`
241
+ - update `~/.local/share/pimote/current`
242
+ - write/update `~/.config/systemd/user/pimote.service`
243
+ - reload and restart the user service
244
+
245
+ Useful follow-up commands:
246
+
247
+ ```bash
248
+ make status
249
+ make logs
250
+ make start-installed
251
+ make deploy-paths
252
+ ```
253
+
254
+ ### Development
255
+
256
+ Run in two separate terminals:
257
+
258
+ ```bash
259
+ # Terminal 1 — server with hot-reload
260
+ make dev-server
261
+
262
+ # Terminal 2 — Vite dev server (proxies WebSocket to the server)
263
+ make dev-client
264
+ ```
265
+
266
+ ## Commands
267
+
268
+ ### CLI
269
+
270
+ ```bash
271
+ pimote Start Pimote (runs setup if needed)
272
+ pimote start Start with existing config
273
+ pimote init Create or update config
274
+ pimote --port 3001 Override the port for this run
275
+ pimote init --root ~/projects Seed one or more project roots
276
+ pimote help Show CLI help
277
+ pimote version Show installed version
278
+ ```
279
+
280
+ ### Source repo
281
+
282
+ ```
283
+ npm install Install workspace dependencies
284
+ npm run build Build shared → server → client
285
+ npm start Start the repo build via the publishable CLI
286
+ make package Create a publishable npm tarball in .artifacts/
287
+ make install-local Install the built package under ~/.local/share/pimote
288
+ make install-service Write/update the user systemd unit
289
+ make deploy Install local release + restart service
290
+ make start-installed Run the currently installed package manually
291
+ make dev-server Server with hot-reload (tsx watch)
292
+ make dev-client Vite dev server with HMR
293
+ make test Run all tests (server + client)
294
+ make format Format with Prettier
295
+ make lint Run ESLint
296
+ make check Type-check (svelte-check + tsc)
297
+ make clean Remove all build artifacts
298
+ make help Show make targets
299
+ ```
300
+
301
+ For first-publish steps, see [docs/releasing.md](docs/releasing.md).
302
+
303
+ ## `@pimote/panels`
304
+
305
+ A standalone package that pi extensions can import to push structured card data into the Pimote side panel. Cards appear in a responsive side panel (desktop) or overlay (mobile).
306
+
307
+ ```typescript
308
+ import { detect } from '@pimote/panels';
309
+
310
+ export function activate(ctx: ExtensionAPI) {
311
+ const panel = detect(ctx);
312
+ if (!panel) return; // not running in pimote
313
+
314
+ panel.update([
315
+ {
316
+ id: 'status',
317
+ title: 'Build Status',
318
+ color: 'green',
319
+ body: [{ style: 'compact', items: ['All tests passing'] }],
320
+ },
321
+ ]);
322
+ }
323
+ ```
324
+
325
+ See [`packages/panels/README.md`](packages/panels/README.md) for full API docs.
326
+
327
+ ## Status
328
+
329
+ Early development.
330
+
331
+ ## License
332
+
333
+ MIT. See [LICENSE](LICENSE).
package/bin/pimote.js ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env node
2
+
3
+ import { runCli } from '../server/dist/cli.js';
4
+
5
+ runCli().catch((err) => {
6
+ console.error(err instanceof Error ? err.message : err);
7
+ process.exit(1);
8
+ });
@@ -0,0 +1 @@
1
+ export const env={}
@@ -0,0 +1,2 @@
1
+ /*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */
2
+ @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking: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-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}@layer theme{:root,:host{--font-mono:"JetBrains Mono Variable", ui-monospace, "Cascadia Code", "Source Code Pro", Menlo, Consolas, monospace;--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-orange-500:oklch(70.5% .213 47.604);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-500:oklch(76.9% .188 70.08);--color-amber-600:oklch(66.6% .179 58.318);--color-yellow-400:oklch(85.2% .199 91.936);--color-yellow-500:oklch(79.5% .184 86.047);--color-yellow-600:oklch(68.1% .162 75.834);--color-green-500:oklch(72.3% .219 149.579);--color-emerald-400:oklch(76.5% .177 163.223);--color-emerald-500:oklch(69.6% .17 162.48);--color-emerald-600:oklch(59.6% .145 163.225);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-gray-400:oklch(70.7% .022 261.325);--color-black:#000;--spacing:.25rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--container-3xl:48rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-wide:.025em;--tracking-widest:.1em;--radius-md:calc(var(--radius) * .8);--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;--blur-xs:4px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:"Inter Variable", sans-serif;--default-mono-font-family:"JetBrains Mono Variable", ui-monospace, "Cascadia Code", "Source Code Pro", Menlo, Consolas, monospace}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{border-color:var(--border);outline-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){*{outline-color:color-mix(in oklab, var(--ring) 50%, transparent)}}html{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;height:100%;font-family:Inter Variable,sans-serif;overflow:hidden}body{background-color:var(--background);color:var(--foreground);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overscroll-behavior:none;height:100%;overflow:hidden}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.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-x-0{inset-inline:calc(var(--spacing) * 0)}.inset-y-0{inset-block:calc(var(--spacing) * 0)}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.-top-1{top:calc(var(--spacing) * -1)}.-top-1\.5{top:calc(var(--spacing) * -1.5)}.top-0{top:calc(var(--spacing) * 0)}.top-1\/2{top:50%}.top-2{top:calc(var(--spacing) * 2)}.top-4{top:calc(var(--spacing) * 4)}.top-auto{top:auto}.-right-1{right:calc(var(--spacing) * -1)}.-right-1\.5{right:calc(var(--spacing) * -1.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-3{right:calc(var(--spacing) * 3)}.bottom-0{bottom:calc(var(--spacing) * 0)}.bottom-1\.5{bottom:calc(var(--spacing) * 1.5)}.bottom-3{bottom:calc(var(--spacing) * 3)}.bottom-full{bottom:100%}.left-0{left:calc(var(--spacing) * 0)}.left-1\/2{left:50%}.isolate{isolation:isolate}.z-10{z-index:10}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.-mx-1{margin-inline:calc(var(--spacing) * -1)}.-mx-4{margin-inline:calc(var(--spacing) * -4)}.mx-0\.5{margin-inline:calc(var(--spacing) * .5)}.mx-3{margin-inline:calc(var(--spacing) * 3)}.mx-auto{margin-inline:auto}.my-1{margin-block:calc(var(--spacing) * 1)}.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)}.-mr-1{margin-right:calc(var(--spacing) * -1)}.-mb-4{margin-bottom:calc(var(--spacing) * -4)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.mb-8{margin-bottom:calc(var(--spacing) * 8)}.ml-0\.5{margin-left:calc(var(--spacing) * .5)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-4{margin-left:calc(var(--spacing) * 4)}.ml-auto{margin-left:auto}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.table{display:table}.size-2{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.size-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.size-32{width:calc(var(--spacing) * 32);height:calc(var(--spacing) * 32)}.size-full{width:100%;height:100%}.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-12{height:calc(var(--spacing) * 12)}.h-16{height:calc(var(--spacing) * 16)}.h-dvh{height:100dvh}.h-full{height:100%}.h-px{height:1px}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-72{max-height:calc(var(--spacing) * 72)}.max-h-80{max-height:calc(var(--spacing) * 80)}.max-h-\[85dvh\]{max-height:85dvh}.min-h-0{min-height:calc(var(--spacing) * 0)}.w-\(--bits-dropdown-menu-anchor-width\){width:var(--bits-dropdown-menu-anchor-width)}.w-5{width:calc(var(--spacing) * 5)}.w-16{width:calc(var(--spacing) * 16)}.w-70{width:calc(var(--spacing) * 70)}.w-72{width:calc(var(--spacing) * 72)}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.w-screen{width:100vw}.max-w-3xl{max-width:var(--container-3xl)}.max-w-48{max-width:calc(var(--spacing) * 48)}.max-w-\[6rem\]{max-width:6rem}.max-w-\[8rem\]{max-width:8rem}.max-w-\[60\%\]{max-width:60%}.max-w-\[80px\]{max-width:80px}.max-w-\[calc\(100\%-2rem\)\]{max-width:calc(100% - 2rem)}.max-w-full{max-width:100%}.max-w-md{max-width:var(--container-md)}.max-w-none{max-width:none}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-4{min-width:calc(var(--spacing) * 4)}.min-w-32{min-width:calc(var(--spacing) * 32)}.min-w-36{min-width:calc(var(--spacing) * 36)}.min-w-52{min-width:calc(var(--spacing) * 52)}.min-w-\[96px\]{min-width:96px}.flex-1{flex:1}.flex-shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.border-collapse{border-collapse:collapse}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-x-full{--tw-translate-x:-100%;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-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-0{--tw-translate-y:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.rotate-90{rotate:90deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-in{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.animate-ping{animation:var(--animate-ping)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-not-allowed{cursor:not-allowed}.touch-none{touch-action:none}.resize{resize:both}.resize-none{resize:none}.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}.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-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}: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)))}.self-stretch{align-self:stretch}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.overflow-y-hidden{overflow-y:hidden}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:calc(var(--radius) * 1.8)}.rounded-4xl{border-radius:calc(var(--radius) * 2.6)}.rounded-\[inherit\]{border-radius:inherit}.rounded-\[min\(var\(--radius-md\)\,10px\)\]{border-radius:min(var(--radius-md), 10px)}.rounded-\[min\(var\(--radius-md\)\,12px\)\]{border-radius:min(var(--radius-md), 12px)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) * .8)}.rounded-none{border-radius:0}.rounded-xl{border-radius:calc(var(--radius) * 1.4)}.rounded-t-2xl{border-top-left-radius:calc(var(--radius) * 1.8);border-top-right-radius:calc(var(--radius) * 1.8)}.rounded-b-none{border-bottom-right-radius:0;border-bottom-left-radius:0}.rounded-b-xl{border-bottom-right-radius:calc(var(--radius) * 1.4);border-bottom-left-radius:calc(var(--radius) * 1.4)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-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-amber-500\/20{border-color:#f99c0033}@supports (color:color-mix(in lab, red, red)){.border-amber-500\/20{border-color:color-mix(in oklab, var(--color-amber-500) 20%, transparent)}}.border-blue-500\/20{border-color:#3080ff33}@supports (color:color-mix(in lab, red, red)){.border-blue-500\/20{border-color:color-mix(in oklab, var(--color-blue-500) 20%, transparent)}}.border-border,.border-border\/50{border-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.border-border\/50{border-color:color-mix(in oklab, var(--border) 50%, transparent)}}.border-border\/60{border-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.border-border\/60{border-color:color-mix(in oklab, var(--border) 60%, transparent)}}.border-destructive\/30{border-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.border-destructive\/30{border-color:color-mix(in oklab, var(--destructive) 30%, transparent)}}.border-emerald-500\/20{border-color:#00bb7f33}@supports (color:color-mix(in lab, red, red)){.border-emerald-500\/20{border-color:color-mix(in oklab, var(--color-emerald-500) 20%, transparent)}}.border-input{border-color:var(--input)}.border-muted-foreground\/30{border-color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.border-muted-foreground\/30{border-color:color-mix(in oklab, var(--muted-foreground) 30%, transparent)}}.border-red-500\/20{border-color:#fb2c3633}@supports (color:color-mix(in lab, red, red)){.border-red-500\/20{border-color:color-mix(in oklab, var(--color-red-500) 20%, transparent)}}.border-sidebar-border{border-color:var(--sidebar-border)}.border-transparent{border-color:#0000}.border-warning\/30{border-color:var(--warning)}@supports (color:color-mix(in lab, red, red)){.border-warning\/30{border-color:color-mix(in oklab, var(--warning) 30%, transparent)}}.border-yellow-500\/30{border-color:#edb2004d}@supports (color:color-mix(in lab, red, red)){.border-yellow-500\/30{border-color:color-mix(in oklab, var(--color-yellow-500) 30%, transparent)}}.border-l-green-500{border-left-color:var(--color-green-500)}.border-l-muted-foreground{border-left-color:var(--muted-foreground)}.border-l-primary{border-left-color:var(--primary)}.border-l-red-500{border-left-color:var(--color-red-500)}.border-l-yellow-500{border-left-color:var(--color-yellow-500)}.bg-accent{background-color:var(--accent)}.bg-amber-400{background-color:var(--color-amber-400)}.bg-amber-500{background-color:var(--color-amber-500)}.bg-amber-500\/10{background-color:#f99c001a}@supports (color:color-mix(in lab, red, red)){.bg-amber-500\/10{background-color:color-mix(in oklab, var(--color-amber-500) 10%, transparent)}}.bg-background,.bg-background\/80{background-color:var(--background)}@supports (color:color-mix(in lab, red, red)){.bg-background\/80{background-color:color-mix(in oklab, var(--background) 80%, transparent)}}.bg-background\/95{background-color:var(--background)}@supports (color:color-mix(in lab, red, red)){.bg-background\/95{background-color:color-mix(in oklab, var(--background) 95%, transparent)}}.bg-black\/10{background-color:#0000001a}@supports (color:color-mix(in lab, red, red)){.bg-black\/10{background-color:color-mix(in oklab, var(--color-black) 10%, transparent)}}.bg-black\/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-blue-500{background-color:var(--color-blue-500)}.bg-blue-500\/10{background-color:#3080ff1a}@supports (color:color-mix(in lab, red, red)){.bg-blue-500\/10{background-color:color-mix(in oklab, var(--color-blue-500) 10%, transparent)}}.bg-border{background-color:var(--border)}.bg-card{background-color:var(--card)}.bg-destructive,.bg-destructive\/10{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.bg-destructive\/10{background-color:color-mix(in oklab, var(--destructive) 10%, transparent)}}.bg-emerald-400{background-color:var(--color-emerald-400)}.bg-emerald-500{background-color:var(--color-emerald-500)}.bg-emerald-500\/10{background-color:#00bb7f1a}@supports (color:color-mix(in lab, red, red)){.bg-emerald-500\/10{background-color:color-mix(in oklab, var(--color-emerald-500) 10%, transparent)}}.bg-gray-400{background-color:var(--color-gray-400)}.bg-muted,.bg-muted\/30{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.bg-muted\/30{background-color:color-mix(in oklab, var(--muted) 30%, transparent)}}.bg-muted\/50{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.bg-muted\/50{background-color:color-mix(in oklab, var(--muted) 50%, transparent)}}.bg-orange-500{background-color:var(--color-orange-500)}.bg-popover{background-color:var(--popover)}.bg-primary{background-color:var(--primary)}.bg-red-500{background-color:var(--color-red-500)}.bg-red-500\/10{background-color:#fb2c361a}@supports (color:color-mix(in lab, red, red)){.bg-red-500\/10{background-color:color-mix(in oklab, var(--color-red-500) 10%, transparent)}}.bg-secondary{background-color:var(--secondary)}.bg-sidebar{background-color:var(--sidebar)}.bg-sidebar-accent{background-color:var(--sidebar-accent)}.bg-status-connected{background-color:var(--status-connected)}.bg-status-error{background-color:var(--status-error)}.bg-status-reconnecting{background-color:var(--status-reconnecting)}.bg-status-streaming{background-color:var(--status-streaming)}.bg-transparent{background-color:#0000}.bg-warning,.bg-warning\/10{background-color:var(--warning)}@supports (color:color-mix(in lab, red, red)){.bg-warning\/10{background-color:color-mix(in oklab, var(--warning) 10%, transparent)}}.bg-yellow-500\/10{background-color:#edb2001a}@supports (color:color-mix(in lab, red, red)){.bg-yellow-500\/10{background-color:color-mix(in oklab, var(--color-yellow-500) 10%, transparent)}}.bg-clip-padding{background-clip:padding-box}.object-cover{object-fit:cover}.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-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-8{padding:calc(var(--spacing) * 8)}.p-px{padding:1px}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.pt-1{padding-top:calc(var(--spacing) * 1)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pr-11{padding-right:calc(var(--spacing) * 11)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-\[max\(env\(safe-area-inset-bottom\)\,8px\)\]{padding-bottom:max(env(safe-area-inset-bottom), 8px)}.pl-1\.5{padding-left:calc(var(--spacing) * 1.5)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-4{padding-left:calc(var(--spacing) * 4)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-mono{font-family:JetBrains Mono Variable,ui-monospace,Cascadia Code,Source Code Pro,Menlo,Consolas,monospace}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[0\.8rem\]{font-size:.8rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.leading-4{--tw-leading:calc(var(--spacing) * 4);line-height:calc(var(--spacing) * 4)}.leading-5{--tw-leading:calc(var(--spacing) * 5);line-height:calc(var(--spacing) * 5)}.leading-none{--tw-leading:1;line-height:1}.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-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.break-words{overflow-wrap:break-word}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-amber-400{color:var(--color-amber-400)}.text-amber-600{color:var(--color-amber-600)}.text-blue-600{color:var(--color-blue-600)}.text-destructive{color:var(--destructive)}.text-emerald-600{color:var(--color-emerald-600)}.text-foreground{color:var(--foreground)}.text-muted-foreground,.text-muted-foreground\/60{color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.text-muted-foreground\/60{color:color-mix(in oklab, var(--muted-foreground) 60%, transparent)}}.text-popover-foreground{color:var(--popover-foreground)}.text-primary{color:var(--primary)}.text-primary-foreground,.text-primary-foreground\/50{color:var(--primary-foreground)}@supports (color:color-mix(in lab, red, red)){.text-primary-foreground\/50{color:color-mix(in oklab, var(--primary-foreground) 50%, transparent)}}.text-red-400{color:var(--color-red-400)}.text-red-600{color:var(--color-red-600)}.text-secondary-foreground,.text-secondary-foreground\/50{color:var(--secondary-foreground)}@supports (color:color-mix(in lab, red, red)){.text-secondary-foreground\/50{color:color-mix(in oklab, var(--secondary-foreground) 50%, transparent)}}.text-sidebar-foreground{color:var(--sidebar-foreground)}.text-warning{color:var(--warning)}.text-warning-foreground{color:var(--warning-foreground)}.text-yellow-600{color:var(--color-yellow-600)}.uppercase{text-transform:uppercase}.italic{font-style:italic}.underline{text-decoration-line:underline}.underline-offset-4{text-underline-offset:4px}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.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)}.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-2{--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)}.ring-foreground\/10{--tw-ring-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.ring-foreground\/10{--tw-ring-color:color-mix(in oklab, var(--foreground) 10%, transparent)}}.ring-ring{--tw-ring-color:var(--ring)}.outline-hidden{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.outline-hidden{outline-offset:2px;outline:2px solid #0000}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur{--tw-backdrop-blur:blur(8px);-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-\[color\,box-shadow\]{transition-property:color,box-shadow;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-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}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.running{animation-play-state:running}.slide-in-from-bottom{--tw-enter-translate-y:100%}.group-focus\/dropdown-menu-item\:text-accent-foreground:is(:where(.group\/dropdown-menu-item):focus *){color:var(--accent-foreground)}.file\:inline-flex::file-selector-button{display:inline-flex}.file\:h-6::file-selector-button{height:calc(var(--spacing) * 6)}.file\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.file\:bg-transparent::file-selector-button{background-color:#0000}.file\:text-sm::file-selector-button{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.file\:font-medium::file-selector-button{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.file\:text-foreground::file-selector-button{color:var(--foreground)}.placeholder\:text-muted-foreground::placeholder{color:var(--muted-foreground)}@media (hover:hover){.hover\:border-muted-foreground\/50:hover{border-color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.hover\:border-muted-foreground\/50:hover{border-color:color-mix(in oklab, var(--muted-foreground) 50%, transparent)}}.hover\:bg-accent:hover,.hover\:bg-accent\/50:hover{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-accent\/50:hover{background-color:color-mix(in oklab, var(--accent) 50%, transparent)}}.hover\:bg-destructive:hover,.hover\:bg-destructive\/10:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-destructive\/10:hover{background-color:color-mix(in oklab, var(--destructive) 10%, transparent)}}.hover\:bg-destructive\/20:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-destructive\/20:hover{background-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.hover\:bg-destructive\/80:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-destructive\/80:hover{background-color:color-mix(in oklab, var(--destructive) 80%, transparent)}}.hover\:bg-muted:hover{background-color:var(--muted)}.hover\:bg-primary-foreground\/20:hover{background-color:var(--primary-foreground)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary-foreground\/20:hover{background-color:color-mix(in oklab, var(--primary-foreground) 20%, transparent)}}.hover\:bg-primary\/80:hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/80:hover{background-color:color-mix(in oklab, var(--primary) 80%, transparent)}}.hover\:bg-secondary-foreground\/20:hover{background-color:var(--secondary-foreground)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-secondary-foreground\/20:hover{background-color:color-mix(in oklab, var(--secondary-foreground) 20%, transparent)}}.hover\:bg-secondary\/80:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-secondary\/80:hover{background-color:color-mix(in oklab, var(--secondary) 80%, transparent)}}.hover\:bg-sidebar-accent:hover{background-color:var(--sidebar-accent)}.hover\:bg-status-streaming\/80:hover{background-color:var(--status-streaming)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-status-streaming\/80:hover{background-color:color-mix(in oklab, var(--status-streaming) 80%, transparent)}}.hover\:bg-warning\/20:hover{background-color:var(--warning)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-warning\/20:hover{background-color:color-mix(in oklab, var(--warning) 20%, transparent)}}.hover\:bg-warning\/80:hover{background-color:var(--warning)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-warning\/80:hover{background-color:color-mix(in oklab, var(--warning) 80%, transparent)}}.hover\:text-accent-foreground:hover{color:var(--accent-foreground)}.hover\:text-foreground:hover{color:var(--foreground)}.hover\:text-muted-foreground:hover{color:var(--muted-foreground)}.hover\:text-primary-foreground:hover{color:var(--primary-foreground)}.hover\:text-secondary-foreground:hover{color:var(--secondary-foreground)}.hover\:text-sidebar-foreground:hover{color:var(--sidebar-foreground)}.hover\:underline:hover{text-decoration-line:underline}}.focus\:border-ring:focus{border-color:var(--ring)}.focus\:bg-accent:focus{background-color:var(--accent)}.focus\:bg-destructive\/10:focus{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.focus\:bg-destructive\/10:focus{background-color:color-mix(in oklab, var(--destructive) 10%, transparent)}}.focus\:text-accent-foreground:focus{color:var(--accent-foreground)}.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-ring:focus{--tw-ring-color:var(--ring)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}:is(.focus\:\*\*\:text-accent-foreground:focus *),:is(.not-data-\[variant\=destructive\]\:focus\:\*\*\:text-accent-foreground:not([data-variant=destructive]):focus *){color:var(--accent-foreground)}.focus-visible\:border-destructive\/40:focus-visible{border-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:border-destructive\/40:focus-visible{border-color:color-mix(in oklab, var(--destructive) 40%, transparent)}}.focus-visible\:border-ring:focus-visible{border-color:var(--ring)}.focus-visible\:ring-3:focus-visible,.focus-visible\:ring-\[3px\]:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + 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-destructive\/20:focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:color-mix(in oklab, var(--ring) 50%, transparent)}}.focus-visible\:outline-1:focus-visible{outline-style:var(--tw-outline-style);outline-width:1px}.active\:translate-y-px:active{--tw-translate-y:1px;translate:var(--tw-translate-x) var(--tw-translate-y)}.active\:scale-\[0\.97\]:active{scale:.97}.active\:bg-accent:active,.active\:bg-accent\/70:active{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.active\:bg-accent\/70:active{background-color:color-mix(in oklab, var(--accent) 70%, transparent)}}.active\:bg-destructive\/70:active{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.active\:bg-destructive\/70:active{background-color:color-mix(in oklab, var(--destructive) 70%, transparent)}}.active\:bg-primary\/70:active{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.active\:bg-primary\/70:active{background-color:color-mix(in oklab, var(--primary) 70%, transparent)}}.active\:bg-sidebar-accent\/80:active{background-color:var(--sidebar-accent)}@supports (color:color-mix(in lab, red, red)){.active\:bg-sidebar-accent\/80:active{background-color:color-mix(in oklab, var(--sidebar-accent) 80%, transparent)}}.active\:bg-status-streaming\/70:active{background-color:var(--status-streaming)}@supports (color:color-mix(in lab, red, red)){.active\:bg-status-streaming\/70:active{background-color:color-mix(in oklab, var(--status-streaming) 70%, transparent)}}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:bg-input\/50:disabled{background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.disabled\:bg-input\/50:disabled{background-color:color-mix(in oklab, var(--input) 50%, transparent)}}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}:where([data-slot=button-group]) .in-data-\[slot\=button-group\]\:rounded-lg{border-radius:var(--radius)}.has-data-\[icon\=inline-end\]\:pr-1\.5:has([data-icon=inline-end]){padding-right:calc(var(--spacing) * 1.5)}.has-data-\[icon\=inline-end\]\:pr-2:has([data-icon=inline-end]){padding-right:calc(var(--spacing) * 2)}.has-data-\[icon\=inline-end\]\:pr-3:has([data-icon=inline-end]){padding-right:calc(var(--spacing) * 3)}.has-data-\[icon\=inline-start\]\:pl-1\.5:has([data-icon=inline-start]){padding-left:calc(var(--spacing) * 1.5)}.has-data-\[icon\=inline-start\]\:pl-2:has([data-icon=inline-start]){padding-left:calc(var(--spacing) * 2)}.has-data-\[icon\=inline-start\]\:pl-3:has([data-icon=inline-start]){padding-left:calc(var(--spacing) * 3)}.aria-expanded\:bg-muted[aria-expanded=true]{background-color:var(--muted)}.aria-expanded\:bg-secondary[aria-expanded=true]{background-color:var(--secondary)}.aria-expanded\:text-foreground[aria-expanded=true]{color:var(--foreground)}.aria-expanded\:text-secondary-foreground[aria-expanded=true]{color:var(--secondary-foreground)}.aria-invalid\:border-destructive[aria-invalid=true]{border-color:var(--destructive)}.aria-invalid\:ring-3[aria-invalid=true]{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + 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)}.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.data-inset\:pl-7[data-inset]{padding-left:calc(var(--spacing) * 7)}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[inset\]\:ps-8[data-inset]{padding-inline-start:calc(var(--spacing) * 8)}.data-\[inset\]\:pl-8[data-inset]{padding-left:calc(var(--spacing) * 8)}.data-\[orientation\=horizontal\]\:h-px[data-orientation=horizontal]{height:1px}.data-\[orientation\=horizontal\]\:w-full[data-orientation=horizontal]{width:100%}.data-\[orientation\=vertical\]\:h-full[data-orientation=vertical]{height:100%}.data-\[orientation\=vertical\]\:w-px[data-orientation=vertical]{width:1px}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:calc(2*var(--spacing)*-1)}.data-\[side\=inline-end\]\:slide-in-from-left-2[data-side=inline-end]{--tw-enter-translate-x:calc(2*var(--spacing)*-1)}.data-\[side\=inline-start\]\:slide-in-from-right-2[data-side=inline-start],.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:calc(2*var(--spacing))}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:calc(2*var(--spacing)*-1)}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:calc(2*var(--spacing))}.data-\[variant\=destructive\]\:text-destructive[data-variant=destructive]{color:var(--destructive)}.data-\[variant\=destructive\]\:focus\:bg-destructive\/10[data-variant=destructive]:focus{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.data-\[variant\=destructive\]\:focus\:bg-destructive\/10[data-variant=destructive]:focus{background-color:color-mix(in oklab, var(--destructive) 10%, transparent)}}.data-\[variant\=destructive\]\:focus\:text-destructive[data-variant=destructive]:focus{color:var(--destructive)}@supports ((-webkit-backdrop-filter:var(--tw)) or (backdrop-filter:var(--tw))){.supports-backdrop-filter\:backdrop-blur-xs{--tw-backdrop-blur:blur(var(--blur-xs));-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,)}}@media (width>=40rem){.sm\:top-1\/2{top:50%}.sm\:left-1\/2{left:50%}.sm\:block{display:block}.sm\:hidden{display:none}.sm\:inline{display:inline}.sm\:h-\[min\(92dvh\,960px\)\]{height:min(92dvh,960px)}.sm\:max-h-none{max-height:none}.sm\:w-\[min\(96vw\,1280px\)\]{width:min(96vw,1280px)}.sm\:w-auto{width:auto}.sm\:max-w-\[min\(96vw\,1280px\)\]{max-width:min(96vw,1280px)}.sm\:max-w-lg{max-width:var(--container-lg)}.sm\:max-w-md{max-width:var(--container-md)}.sm\:max-w-sm{max-width:var(--container-sm)}.sm\:-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.sm\:-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:items-start{align-items:flex-start}.sm\:justify-between{justify-content:space-between}.sm\:justify-end{justify-content:flex-end}.sm\:gap-4{gap:calc(var(--spacing) * 4)}.sm\:rounded-xl{border-radius:calc(var(--radius) * 1.4)}.sm\:p-4{padding:calc(var(--spacing) * 4)}.sm\:px-0{padding-inline:calc(var(--spacing) * 0)}.sm\:px-5{padding-inline:calc(var(--spacing) * 5)}.sm\:py-0{padding-block:calc(var(--spacing) * 0)}}@media (width>=48rem){.md\:relative{position:relative}.md\:z-0{z-index:0}.md\:block{display:block}.md\:flex{display:flex}.md\:hidden{display:none}.md\:translate-x-0{--tw-translate-x:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.md\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.md\:opacity-0{opacity:0}@media (hover:hover){.md\:group-hover\/chip\:opacity-100:is(:where(.group\/chip):hover *){opacity:1}}}.dark\:border-input:is(.dark *){border-color:var(--input)}.dark\:bg-destructive\/20:is(.dark *){background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:bg-destructive\/20:is(.dark *){background-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.dark\:bg-input\/30:is(.dark *){background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.dark\:bg-input\/30:is(.dark *){background-color:color-mix(in oklab, var(--input) 30%, transparent)}}.dark\:text-amber-400:is(.dark *){color:var(--color-amber-400)}.dark\:text-blue-400:is(.dark *){color:var(--color-blue-400)}.dark\:text-emerald-400:is(.dark *){color:var(--color-emerald-400)}.dark\:text-red-400:is(.dark *){color:var(--color-red-400)}.dark\:text-yellow-400:is(.dark *){color:var(--color-yellow-400)}@media (hover:hover){.dark\:hover\:bg-destructive\/30:is(.dark *):hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-destructive\/30:is(.dark *):hover{background-color:color-mix(in oklab, var(--destructive) 30%, transparent)}}.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:color-mix(in oklab, var(--input) 50%, transparent)}}.dark\:hover\:bg-muted\/50:is(.dark *):hover{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-muted\/50:is(.dark *):hover{background-color:color-mix(in oklab, var(--muted) 50%, transparent)}}}.dark\:focus\:bg-destructive\/20:is(.dark *):focus{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:focus\:bg-destructive\/20:is(.dark *):focus{background-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:color-mix(in oklab, var(--destructive) 40%, transparent)}}.dark\:disabled\:bg-input\/80:is(.dark *):disabled{background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.dark\:disabled\:bg-input\/80:is(.dark *):disabled{background-color:color-mix(in oklab, var(--input) 80%, transparent)}}.dark\:aria-invalid\:border-destructive\/50:is(.dark *)[aria-invalid=true]{border-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:aria-invalid\:border-destructive\/50:is(.dark *)[aria-invalid=true]{border-color:color-mix(in oklab, var(--destructive) 50%, transparent)}}.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--destructive) 40%, transparent)}}.dark\:data-\[variant\=destructive\]\:focus\:bg-destructive\/20:is(.dark *)[data-variant=destructive]:focus{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:data-\[variant\=destructive\]\:focus\:bg-destructive\/20:is(.dark *)[data-variant=destructive]:focus{background-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.data-open\:animate-in:where([data-state=open]),.data-open\:animate-in:where([data-open]:not([data-open=false])){animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-open\:bg-accent:where([data-state=open]),.data-open\:bg-accent:where([data-open]:not([data-open=false])){background-color:var(--accent)}.data-open\:text-accent-foreground:where([data-state=open]),.data-open\:text-accent-foreground:where([data-open]:not([data-open=false])){color:var(--accent-foreground)}.data-open\:fade-in-0:where([data-state=open]),.data-open\:fade-in-0:where([data-open]:not([data-open=false])){--tw-enter-opacity:0}.data-open\:zoom-in-95:where([data-state=open]),.data-open\:zoom-in-95:where([data-open]:not([data-open=false])){--tw-enter-scale:.95}.data-closed\:animate-out:where([data-state=closed]),.data-closed\:animate-out:where([data-closed]:not([data-closed=false])){animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-closed\:overflow-hidden:where([data-state=closed]),.data-closed\:overflow-hidden:where([data-closed]:not([data-closed=false])){overflow:hidden}.data-closed\:fade-out-0:where([data-state=closed]),.data-closed\:fade-out-0:where([data-closed]:not([data-closed=false])){--tw-exit-opacity:0}.data-closed\:zoom-out-95:where([data-state=closed]),.data-closed\:zoom-out-95:where([data-closed]:not([data-closed=false])){--tw-exit-scale:.95}.data-disabled\:pointer-events-none:where([data-disabled=true]),.data-disabled\:pointer-events-none:where([data-disabled]:not([data-disabled=false])){pointer-events:none}.data-disabled\:opacity-50:where([data-disabled=true]),.data-disabled\:opacity-50:where([data-disabled]:not([data-disabled=false])){opacity:.5}.data-horizontal\:h-2\.5:where([data-orientation=horizontal]){height:calc(var(--spacing) * 2.5)}.data-horizontal\:flex-col:where([data-orientation=horizontal]){flex-direction:column}.data-horizontal\:border-t:where([data-orientation=horizontal]){border-top-style:var(--tw-border-style);border-top-width:1px}.data-horizontal\:border-t-transparent:where([data-orientation=horizontal]){border-top-color:#0000}.data-vertical\:h-full:where([data-orientation=vertical]){height:100%}.data-vertical\:w-2\.5:where([data-orientation=vertical]){width:calc(var(--spacing) * 2.5)}.data-vertical\:border-l:where([data-orientation=vertical]){border-left-style:var(--tw-border-style);border-left-width:1px}.data-vertical\:border-l-transparent:where([data-orientation=vertical]){border-left-color:#0000}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3 svg:not([class*=size-]){width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3\.5 svg:not([class*=size-]){width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}:is(.\*\:\[a\]\:underline>*):is(a){text-decoration-line:underline}:is(.\*\:\[a\]\:underline-offset-3>*):is(a){text-underline-offset:3px}@media (hover:hover){.\[a\]\:hover\:bg-destructive\/20:is(a):hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.\[a\]\:hover\:bg-destructive\/20:is(a):hover{background-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.\[a\]\:hover\:bg-muted:is(a):hover{background-color:var(--muted)}.\[a\]\:hover\:bg-primary\/80:is(a):hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.\[a\]\:hover\:bg-primary\/80:is(a):hover{background-color:color-mix(in oklab, var(--primary) 80%, transparent)}}.\[a\]\:hover\:bg-secondary\/80:is(a):hover{background-color:var(--secondary)}@supports (color:color-mix(in lab, red, red)){.\[a\]\:hover\:bg-secondary\/80:is(a):hover{background-color:color-mix(in oklab, var(--secondary) 80%, transparent)}}.\[a\]\:hover\:text-muted-foreground:is(a):hover{color:var(--muted-foreground)}:is(.\*\:\[a\]\:hover\:text-foreground>*):is(a):hover{color:var(--foreground)}}:is(.data-\[variant\=destructive\]\:\*\:\[svg\]\:text-destructive[data-variant=destructive]>*):is(svg){color:var(--destructive)}.\[\&\>svg\]\:pointer-events-none>svg{pointer-events:none}.\[\&\>svg\]\:size-3\!>svg{width:calc(var(--spacing) * 3)!important;height:calc(var(--spacing) * 3)!important}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./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(./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(./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(./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(./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(./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(./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(./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(./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(./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(./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(./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}:root{--background:oklch(100% 0 0);--foreground:oklch(14.5% 0 0);--card:oklch(100% 0 0);--card-foreground:oklch(14.5% 0 0);--popover:oklch(100% 0 0);--popover-foreground:oklch(14.5% 0 0);--primary:oklch(20.5% 0 0);--primary-foreground:oklch(98.5% 0 0);--secondary:oklch(97% 0 0);--secondary-foreground:oklch(20.5% 0 0);--muted:oklch(97% 0 0);--muted-foreground:oklch(55.6% 0 0);--accent:oklch(97% 0 0);--accent-foreground:oklch(20.5% 0 0);--destructive:oklch(57.7% .245 27.325);--warning:oklch(75% .183 55.934);--warning-foreground:oklch(16% .02 55);--border:oklch(92.2% 0 0);--input:oklch(92.2% 0 0);--ring:oklch(70.8% 0 0);--chart-1:oklch(80.9% .105 251.813);--chart-2:oklch(62.3% .214 259.815);--chart-3:oklch(54.6% .245 262.881);--chart-4:oklch(48.8% .243 264.376);--chart-5:oklch(42.4% .199 265.638);--radius:.625rem;--sidebar:oklch(98.5% 0 0);--sidebar-foreground:oklch(14.5% 0 0);--sidebar-primary:oklch(20.5% 0 0);--sidebar-primary-foreground:oklch(98.5% 0 0);--sidebar-accent:oklch(97% 0 0);--sidebar-accent-foreground:oklch(20.5% 0 0);--sidebar-border:oklch(92.2% 0 0);--sidebar-ring:oklch(70.8% 0 0)}.dark{--background:oklch(13.7% .036 258.5);--foreground:oklch(98.4% .003 247.9);--card:oklch(13.7% .036 258.5);--card-foreground:oklch(98.4% .003 247.9);--popover:oklch(13.7% .036 258.5);--popover-foreground:oklch(98.4% .003 247.9);--primary:oklch(98.4% .003 247.9);--primary-foreground:oklch(20.8% .04 265.7);--secondary:oklch(28% .037 260);--secondary-foreground:oklch(98.4% .003 247.9);--muted:oklch(28% .037 260);--muted-foreground:oklch(71.1% .035 256.8);--accent:oklch(28% .037 260);--accent-foreground:oklch(98.4% .003 247.9);--destructive:oklch(39.6% .133 25.7);--warning:oklch(72% .17 55.934);--warning-foreground:oklch(16% .02 55);--border:oklch(28% .037 260);--input:oklch(28% .037 260);--ring:oklch(86.9% .02 252.8);--chart-1:oklch(80.9% .105 251.813);--chart-2:oklch(62.3% .214 259.815);--chart-3:oklch(54.6% .245 262.881);--chart-4:oklch(48.8% .243 264.376);--chart-5:oklch(42.4% .199 265.638);--sidebar:oklch(20.8% .04 265.7);--sidebar-foreground:oklch(98.4% .003 247.9);--sidebar-primary:oklch(48.8% .243 264.376);--sidebar-primary-foreground:oklch(98.4% .003 247.9);--sidebar-accent:oklch(28% .037 260);--sidebar-accent-foreground:oklch(98.4% .003 247.9);--sidebar-border:oklch(28% .037 260);--sidebar-ring:oklch(86.9% .02 252.8);--status-streaming:oklch(62.3% .169 149.2);--status-connected:oklch(62.3% .169 149.2);--status-error:oklch(39.6% .133 25.7);--status-reconnecting:oklch(77% .165 70.6)}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-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}@keyframes spin{to{transform:rotate(360deg)}}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0));filter:blur(var(--tw-enter-blur,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0));filter:blur(var(--tw-exit-blur,0))}}[data-scroll-area-viewport]{scrollbar-width:none!important;-ms-overflow-style:none!important;-webkit-overflow-scrolling:touch!important}[data-scroll-area-viewport]::-webkit-scrollbar{display:none!important}:where([data-scroll-area-viewport]){flex-direction:column;align-items:stretch;display:flex}:where([data-scroll-area-content]){flex-grow:1}
@@ -0,0 +1 @@
1
+ .hljs{color:#adbac7;background:oklch(16% .03 258)}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#f47067}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#dcbdfb}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id,.hljs-variable{color:#6cb6ff}.hljs-meta .hljs-string,.hljs-regexp,.hljs-string{color:#96d0ff}.hljs-built_in,.hljs-symbol{color:#f69d50}.hljs-code,.hljs-comment,.hljs-formula{color:#768390}.hljs-name,.hljs-quote,.hljs-selector-pseudo,.hljs-selector-tag{color:#8ddb8c}.hljs-subst{color:#adbac7}.hljs-section{color:#316dca;font-weight:700}.hljs-bullet{color:#eac55f}.hljs-emphasis{color:#adbac7;font-style:italic}.hljs-strong{color:#adbac7;font-weight:700}.hljs-addition{color:#b4f1b4;background-color:#1b4721}.hljs-deletion{color:#ffd8d3;background-color:#78191b}.text-block.svelte-8p0cc8{word-wrap:break-word;overflow-wrap:break-word;line-height:1.6}.markdown-content.svelte-8p0cc8 p{margin:.5em 0}.markdown-content.svelte-8p0cc8 p:first-child{margin-top:0}.markdown-content.svelte-8p0cc8 p:last-child{margin-bottom:0}.markdown-content.svelte-8p0cc8 ul,.markdown-content.svelte-8p0cc8 ol{margin:.5em 0;padding-left:1.5em}.markdown-content.svelte-8p0cc8 li{margin:.25em 0}.markdown-content.svelte-8p0cc8 h1,.markdown-content.svelte-8p0cc8 h2,.markdown-content.svelte-8p0cc8 h3,.markdown-content.svelte-8p0cc8 h4{margin:1em 0 .5em;font-weight:600}.markdown-content.svelte-8p0cc8 h1{font-size:1.25em}.markdown-content.svelte-8p0cc8 h2{font-size:1.15em}.markdown-content.svelte-8p0cc8 h3{font-size:1.05em}.markdown-content.svelte-8p0cc8 blockquote{border-left:3px solid var(--border);color:var(--muted-foreground);margin:.5em 0;padding-left:1em}.markdown-content.svelte-8p0cc8 hr{border:none;border-top:1px solid var(--border);margin:1em 0}.markdown-content.svelte-8p0cc8 a{color:oklch(70% .15 250);text-underline-offset:2px;text-decoration:underline}.markdown-content.svelte-8p0cc8 a:hover{color:oklch(80% .15 250)}.markdown-content.svelte-8p0cc8 code{font-size:.9em;font-family:var(--font-mono);background:oklch(20% .02 258);border-radius:4px;padding:.15em .4em}.markdown-content.svelte-8p0cc8 pre{border:1px solid var(--border);-webkit-overflow-scrolling:touch;background:oklch(16% .03 258);border-radius:8px;margin:.75em 0;padding:12px;overflow:auto hidden}.markdown-content.svelte-8p0cc8 pre code{font-size:.875em;font-family:var(--font-mono);background:0 0;border-radius:0;padding:0;line-height:1.5}.markdown-content.svelte-8p0cc8 table{border-collapse:collapse;width:100%;margin:.75em 0;font-size:.9em}.markdown-content.svelte-8p0cc8 th,.markdown-content.svelte-8p0cc8 td{border:1px solid var(--border);text-align:left;padding:6px 12px}.markdown-content.svelte-8p0cc8 th{background:oklch(20% .02 258);font-weight:600}.markdown-content.svelte-8p0cc8 strong{font-weight:600}.markdown-content.svelte-8p0cc8 em{font-style:italic}.thinking-block.svelte-1mu9o59{border:1px solid var(--border);border-radius:6px;margin:.25em 0;overflow:hidden}.thinking-header.svelte-1mu9o59{width:100%;color:var(--muted-foreground);cursor:pointer;text-align:left;background:oklch(18% .025 258);border:none;align-items:center;gap:6px;padding:6px 10px;font-size:.8rem;transition:background-color .15s;display:flex}.thinking-header.svelte-1mu9o59:hover{background:oklch(22% .03 258)}.thinking-label.svelte-1mu9o59{flex-shrink:0;font-style:italic}.thinking-preview.svelte-1mu9o59{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--muted-foreground);opacity:.6;flex:1;font-size:.75rem;overflow:hidden}.thinking-word-count.svelte-1mu9o59{opacity:.7;flex-shrink:0;margin-left:auto;font-size:.75rem}.streaming-dot.svelte-1mu9o59{background:var(--status-streaming,oklch(62.3% .169 149.2));border-radius:50%;width:6px;height:6px;animation:1s ease-in-out infinite svelte-1mu9o59-blink}@keyframes svelte-1mu9o59-blink{0%,to{opacity:.3}50%{opacity:1}}.thinking-content.svelte-1mu9o59{border-top:1px solid var(--border);background:oklch(15% .02 258);max-height:300px;padding:8px 12px;overflow-y:auto}.thinking-text.svelte-1mu9o59{white-space:pre-wrap;word-wrap:break-word;color:var(--muted-foreground);font-size:.8rem;line-height:1.5;font-family:var(--font-mono);margin:0}.streaming-collapsible.svelte-tetllc{--_accent:var(--muted-foreground)}.streaming-collapsible.accent-purple.svelte-tetllc{--_accent:oklch(55% .1 280)}.collapsible-text.svelte-tetllc{white-space:pre-wrap;word-wrap:break-word;color:var(--foreground);font-size:.8rem;line-height:1.5;font-family:var(--font-mono);margin:0}.collapsible-text.scrollable.svelte-tetllc{max-height:400px;overflow-y:auto}.collapsible-toggle.svelte-tetllc{color:var(--_accent);cursor:pointer;text-underline-offset:2px;opacity:.8;background:0 0;border:none;margin-top:4px;padding:0;font-size:.75rem;text-decoration:underline;display:inline-block}.collapsible-toggle.svelte-tetllc:hover{opacity:1;color:var(--foreground)}.tool-block.svelte-1j1om46{border:1px solid var(--border);border-radius:6px;margin:.25em 0;overflow:hidden}.tool-header.svelte-1j1om46{width:100%;color:var(--muted-foreground);cursor:pointer;text-align:left;background:oklch(18% .025 258);border:none;align-items:center;gap:6px;padding:6px 10px;font-size:.8rem;transition:background-color .15s;display:flex}.tool-header.svelte-1j1om46:hover{background:oklch(22% .03 258)}.tool-name.svelte-1j1om46{font-family:var(--font-mono);color:var(--foreground);flex-shrink:0;font-weight:500}.tool-detail.svelte-1j1om46{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-family:var(--font-mono);color:var(--muted-foreground);flex:1;font-size:.75rem;overflow:hidden}.tool-status.svelte-1j1om46{opacity:.7;flex-shrink:0;margin-left:auto;font-size:.75rem;font-style:italic}.tool-content.svelte-1j1om46{border-top:1px solid var(--border);background:oklch(15% .02 258)}.tool-section.svelte-1j1om46{padding:6px 12px}.tool-section.svelte-1j1om46+.tool-section:where(.svelte-1j1om46){border-top:1px solid var(--border)}.tool-section-label.svelte-1j1om46{text-transform:uppercase;letter-spacing:.05em;color:var(--muted-foreground);margin-bottom:4px;font-size:.7rem;font-weight:500}.in-progress.svelte-1j1om46 .tool-header:where(.svelte-1j1om46){background:oklch(18% .035 258)}.tool-result.svelte-1j1om46:not(.tool-error) .tool-header:where(.svelte-1j1om46) svg,.tool-completed.svelte-1j1om46:not(.tool-error) .tool-header:where(.svelte-1j1om46) svg{color:var(--status-connected,oklch(62.3% .169 149.2))}.tool-result.tool-error.svelte-1j1om46 .tool-header:where(.svelte-1j1om46) svg,.tool-completed.tool-error.svelte-1j1om46 .tool-header:where(.svelte-1j1om46) svg{color:var(--destructive,oklch(57.7% .245 27.325))}.tool-btn.svelte-4obvr9{width:28px;height:28px;color:var(--foreground);cursor:pointer;background:oklch(28% .04 260);border:none;border-radius:50%;justify-content:center;align-items:center;transition:background-color .15s;display:flex}.tool-btn.svelte-4obvr9:active{background:oklch(35% .04 260)}.message.svelte-1uqoiy7{gap:10px;padding:12px 0;display:flex}.message-icon.svelte-1uqoiy7{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:flex}.user-icon.svelte-1uqoiy7{color:oklch(85% .05 250);background:oklch(35% .08 250);margin-top:2px}.assistant-icon.svelte-1uqoiy7{color:var(--foreground);background:oklch(28% .04 260)}button.assistant-icon.svelte-1uqoiy7{cursor:pointer;border:none;transition:background-color .15s}button.assistant-icon.svelte-1uqoiy7:active{background:oklch(35% .04 260)}.assistant-icon-col.svelte-1uqoiy7{flex-direction:column;flex-shrink:0;align-items:center;gap:6px;margin-top:2px;display:flex}.tool-menu.svelte-1uqoiy7{flex-direction:column;align-items:center;gap:6px;display:flex}.message-body.svelte-1uqoiy7{flex:1;min-width:0;font-size:.9rem}.user-body.svelte-1uqoiy7{background:oklch(22% .04 260);border-radius:4px 12px 12px;padding:10px 14px}.user-text.svelte-1uqoiy7{white-space:pre-wrap;word-wrap:break-word;line-height:1.5}.system-message.svelte-1uqoiy7{justify-content:center;padding:8px 0}.system-message.svelte-1uqoiy7 .message-body:where(.svelte-1uqoiy7){text-align:center}.system-text.svelte-1uqoiy7{color:var(--muted-foreground);font-size:.8rem;font-style:italic}.skill-body.svelte-1uqoiy7{background:oklch(20% .02 170/.5);border-left:3px solid oklch(55% .12 170);border-radius:4px;overflow:hidden}.skill-header.svelte-1uqoiy7{cursor:pointer;color:oklch(70% .12 170);text-align:left;background:0 0;border:none;align-items:center;gap:6px;width:100%;padding:6px 10px;font-size:.75rem;font-weight:600;display:flex}.skill-header.svelte-1uqoiy7:hover{background:oklch(25% .02 170/.5)}.skill-label.svelte-1uqoiy7{font-family:var(--font-mono,monospace)}.skill-line-count.svelte-1uqoiy7{color:var(--muted-foreground);font-weight:400}.skill-content.svelte-1uqoiy7{padding:0 10px 8px;font-size:.85rem}.skill-text-container.svelte-1uqoiy7{position:relative}.skill-text-collapsed.svelte-1uqoiy7{max-height:65px;overflow:hidden}.skill-text-collapsed.svelte-1uqoiy7:after{content:"";pointer-events:none;background:linear-gradient(oklch(20% .02 170/0),oklch(20% .02 170/.95));height:32px;position:absolute;bottom:0;left:0;right:0}.skill-text-expanded.svelte-1uqoiy7{max-height:500px;overflow-y:auto}.skill-toggle.svelte-1uqoiy7{color:oklch(65% .12 170);cursor:pointer;text-underline-offset:2px;background:0 0;border:none;margin-top:4px;padding:0;font-size:.75rem;text-decoration:underline;display:inline-block}.skill-toggle.svelte-1uqoiy7:hover{color:oklch(75% .12 170)}.skill-after.svelte-1uqoiy7{margin-top:6px}.custom-message.svelte-1uqoiy7{flex-direction:column;gap:0;padding:8px 0}.custom-body.svelte-1uqoiy7{background:oklch(20% .02 270/.5);border-left:3px solid oklch(55% .1 280);border-radius:4px;overflow:hidden}.custom-header.svelte-1uqoiy7{cursor:pointer;color:oklch(70% .1 280);text-align:left;background:0 0;border:none;align-items:center;gap:6px;width:100%;padding:6px 10px;font-size:.75rem;font-weight:600;display:flex}.custom-header.svelte-1uqoiy7:hover{background:oklch(25% .02 270/.5)}.custom-label.svelte-1uqoiy7{font-family:var(--font-mono,monospace)}.custom-line-count.svelte-1uqoiy7{color:var(--muted-foreground);font-weight:400}.custom-content.svelte-1uqoiy7{padding:0 10px 8px;font-size:.85rem}.custom-text-container.svelte-1uqoiy7{position:relative}.custom-text-collapsed.svelte-1uqoiy7{max-height:200px;overflow:hidden}.custom-text-collapsed.svelte-1uqoiy7:after{content:"";pointer-events:none;background:linear-gradient(oklch(20% .02 270/0),oklch(20% .02 270/.95));height:48px;position:absolute;bottom:0;left:0;right:0}.custom-text-expanded.svelte-1uqoiy7{max-height:500px;overflow-y:auto}.custom-toggle.svelte-1uqoiy7{color:oklch(65% .1 280);cursor:pointer;text-underline-offset:2px;background:0 0;border:none;margin-top:4px;padding:0;font-size:.75rem;text-decoration:underline;display:inline-block}.custom-toggle.svelte-1uqoiy7:hover{color:oklch(75% .1 280)}.streaming-indicator.svelte-132ojzb{align-items:center;gap:4px;padding:8px 4px;display:inline-flex}.dot.svelte-132ojzb{background-color:var(--status-streaming,oklch(62.3% .169 149.2));border-radius:50%;width:6px;height:6px;animation:1.4s ease-in-out infinite svelte-132ojzb-pulse}.dot.svelte-132ojzb:nth-child(2){animation-delay:.2s}.dot.svelte-132ojzb:nth-child(3){animation-delay:.4s}@keyframes svelte-132ojzb-pulse{0%,80%,to{opacity:.3;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}.message-list-wrapper.svelte-qha2j{flex-direction:column;flex:1;min-height:0;display:flex;position:relative}.message-list.svelte-qha2j{-webkit-overflow-scrolling:touch;scroll-behavior:auto;flex:1;overflow:hidden auto}.message-list-inner.svelte-qha2j{max-width:768px;margin:0 auto;padding:16px 16px 24px}.empty-state.svelte-qha2j{color:var(--muted-foreground);justify-content:center;align-items:center;padding:48px 16px;font-size:.9rem;display:flex}.streaming-indicator-row.svelte-qha2j{padding:4px 0 4px 38px}.scroll-to-bottom.svelte-qha2j{background:var(--secondary);width:40px;height:40px;color:var(--secondary-foreground);border:1px solid var(--border);cursor:pointer;z-index:10;border-radius:50%;justify-content:center;align-items:center;transition:background-color .15s,transform .15s;display:flex;position:absolute;bottom:16px;left:50%;transform:translate(-50%);box-shadow:0 2px 8px oklch(0% 0 0/.3)}.scroll-to-bottom.svelte-qha2j:hover{background:var(--accent);transform:translate(-50%)scale(1.05)}.scroll-to-bottom.svelte-qha2j:active{transform:translate(-50%)scale(.95)}.last-activity.svelte-qha2j{text-align:right;color:var(--muted-foreground);opacity:.6;padding:4px 4px 0;font-size:.7rem}.inline-select-panel.svelte-j9tcnn{border-top:1px solid var(--border);background:var(--background);outline:none;padding:12px 16px}.panel-header.svelte-j9tcnn{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.panel-title.svelte-j9tcnn{color:var(--foreground);font-size:.875rem;font-weight:600}.panel-cancel.svelte-j9tcnn{color:var(--muted-foreground);cursor:pointer;opacity:.7;background:0 0;border:none;border-radius:4px;padding:2px 6px;font-size:.7rem}.panel-cancel.svelte-j9tcnn:hover{opacity:1;background:var(--accent)}.panel-description.svelte-j9tcnn{color:var(--muted-foreground);margin-bottom:8px;font-size:.8rem;line-height:1.4}.panel-options.svelte-j9tcnn{flex-direction:column;gap:2px;max-width:768px;margin:0 auto;display:flex}.select-option.svelte-j9tcnn{text-align:left;cursor:pointer;width:100%;color:var(--foreground);background:0 0;border:1px solid #0000;border-radius:8px;align-items:flex-start;gap:10px;padding:8px 10px;font-size:.875rem;transition:background-color .1s,border-color .1s;display:flex}.select-option.svelte-j9tcnn:hover,.select-option.highlighted.svelte-j9tcnn{background:var(--accent);border-color:var(--border)}.option-number.svelte-j9tcnn{background:var(--secondary);width:22px;height:22px;color:var(--muted-foreground);font-variant-numeric:tabular-nums;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;font-size:.75rem;font-weight:600;line-height:1;display:flex}.select-option.svelte-j9tcnn:hover .option-number:where(.svelte-j9tcnn),.select-option.highlighted.svelte-j9tcnn .option-number:where(.svelte-j9tcnn){background:var(--chart-3);color:var(--primary-foreground)}.option-body.svelte-j9tcnn{flex-direction:column;gap:1px;min-width:0;padding-top:1px;display:flex}.option-label.svelte-j9tcnn{font-weight:500;line-height:1.35}.option-desc.svelte-j9tcnn{color:var(--muted-foreground);font-size:.8rem;line-height:1.4}.confirm-actions.svelte-j9tcnn{justify-content:flex-end;gap:8px;padding:4px 0;display:flex}.panel-hint.svelte-j9tcnn{color:var(--muted-foreground);opacity:.7;align-items:center;gap:6px;padding-top:8px;font-size:.7rem;display:flex}.panel-hint.svelte-j9tcnn kbd:where(.svelte-j9tcnn){background:var(--secondary);border-radius:3px;padding:1px 4px;font-family:inherit;font-size:.65rem}.hint-sep.svelte-j9tcnn{opacity:.5}@keyframes svelte-1s9sawt-session-pill-swipe-nudge{0%,to{transform:translateY(0)}35%{transform:translateY(-8px)}65%{transform:translateY(-3px)}}.session-pill-swipe-hint.svelte-1s9sawt{animation:.9s ease-in-out svelte-1s9sawt-session-pill-swipe-nudge}
@@ -0,0 +1 @@
1
+ var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),s=(e,n)=>{let r={};for(var i in e)t(r,i,{get:e[i],enumerable:!0});return n||t(r,Symbol.toStringTag,{value:`Module`}),r},c=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},l=(n,r,a)=>(a=n==null?{}:e(i(n)),c(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));export{s as n,l as r,o as t};