assuremind 1.0.2 → 1.1.1

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.
@@ -35,7 +35,7 @@ npx assuremind init [options]
35
35
  - `.gitignore` — ignores `.env`, `node_modules`, `results/`
36
36
  - `autotest.config.ts` — framework configuration
37
37
  - `variables/global.json` — empty variable store
38
- - `TESTAUTOMIND.md` — quick-reference card
38
+ - `ASSUREMIND.md` — quick-reference card
39
39
  - Installs Playwright browsers unless `--skip-playwright` is given
40
40
  - Runs `npx playwright install` for chromium, firefox, webkit
41
41
 
@@ -310,3 +310,20 @@ All variables are read from `.env` in the project root. See `.env.example` for t
310
310
  | `AI_TIERED_FAST_MODEL` | If tiered | Model for simple steps |
311
311
  | `AI_TIMEOUT` | No | AI request timeout in seconds (default: 30) |
312
312
  | `AI_MAX_RETRIES` | No | Retry attempts on AI failure (default: 2) |
313
+
314
+ ---
315
+
316
+ ## MCP Configuration
317
+
318
+ MCP (Model Context Protocol) settings are configured in `autotest.config.json` (or via the Settings page in Studio), not via environment variables.
319
+
320
+ | Setting | Default | Description |
321
+ |---------|---------|-------------|
322
+ | `mcp.enabled` | `true` | Enable MCP-enhanced code generation (AI sees live page elements) |
323
+ | `mcp.headless` | `true` | Run MCP browser without visible window |
324
+ | `mcp.actThenScript` | `false` | Two-phase generation: execute via MCP, then convert to code |
325
+ | `mcp.proactiveHealing` | `false` | Validate selectors against live page before test runs |
326
+ | `mcp.actionTimeout` | `15000` | Timeout per MCP action in ms |
327
+ | `mcp.idleTimeout` | `30000` | Auto-disconnect MCP browser after idle period in ms |
328
+
329
+ > **Note:** MCP is used only during code generation. Test execution (`npx assuremind run`) is never affected by MCP settings.
@@ -44,7 +44,7 @@ This command:
44
44
  - Copies **`.env.example`** — full reference of all supported environment variables
45
45
  - Creates **`.env`** — minimal template for you to fill in
46
46
  - Creates **`autotest.config.ts`** — framework configuration
47
- - Creates **`TESTAUTOMIND.md`** — quick-reference card for daily use
47
+ - Creates **`ASSUREMIND.md`** — quick-reference card for daily use
48
48
  - Installs Playwright browsers (`chromium`, `firefox`, `webkit`)
49
49
 
50
50
  If you want to skip the Playwright browser download (e.g., in CI where you install them separately):
@@ -122,6 +122,12 @@ export default defineConfig({
122
122
  maxLevel: 5,
123
123
  dailyBudget: 5.0,
124
124
  },
125
+ mcp: {
126
+ enabled: true, // AI sees real page elements during code generation
127
+ headless: true, // MCP browser runs without visible window
128
+ actThenScript: false, // Two-phase generation (higher accuracy, slower)
129
+ proactiveHealing: false, // Pre-run selector validation
130
+ },
125
131
  });
126
132
  ```
127
133
 
@@ -374,5 +380,6 @@ Or manage variables in the Studio → **Variables** page.
374
380
  | Studio UI walkthrough | [Studio Guide](./STUDIO.md) |
375
381
  | Build the package from source | [CONTRIBUTING.md](../CONTRIBUTING.md) |
376
382
  | Config options | `autotest.config.ts` comments |
383
+ | MCP integration | Settings page → MCP Integration |
377
384
  | All supported AI providers | `.env.example` |
378
- | Quick daily reference | `TESTAUTOMIND.md` in your project root |
385
+ | Quick daily reference | `ASSUREMIND.md` in your project root |
package/docs/STUDIO.md CHANGED
@@ -48,7 +48,7 @@ The sidebar on the left has these pages:
48
48
  | 📋 | Reports | Browse historical run results |
49
49
  | 🔧 | Variables | Manage test variables and secrets |
50
50
  | 🩺 | Self-Healing | Review and apply AI-generated selector fixes |
51
- | ⚙️ | Settings | Environment, browsers, healing, capture settings |
51
+ | ⚙️ | Settings | Environment, browsers, healing, capture settings, MCP integration |
52
52
  | 🌿 | Git Control Center | Branch management, AI commits, push/pull, conflict resolution |
53
53
 
54
54
  ---
@@ -312,7 +312,7 @@ Each event shows:
312
312
  - **Suite / Case / Step** — where the failure occurred
313
313
  - **Original code** — the code that failed
314
314
  - **Healed code** — the AI's suggested fix
315
- - **Healing level** — 1–6 (higher = more aggressive strategy)
315
+ - **Healing level** — 1–5 (higher = more aggressive strategy)
316
316
  - **Status** — `pending`, `accepted`, or `rejected`
317
317
 
318
318
  ### Reviewing suggestions
@@ -348,14 +348,48 @@ Edit `autotest.config.ts` from the browser:
348
348
  | Video | `on`, `off`, or `on-failure` |
349
349
  | Trace | `on`, `off`, or `on-failure` |
350
350
  | Healing enabled | Master switch for self-healing |
351
- | Healing max level | Maximum healing cascade level (1–6) |
351
+ | Healing max level | Maximum healing cascade level (1–5) |
352
352
  | Daily budget | Maximum AI spend on healing per day (USD) |
353
353
  | Studio port | Port for the Studio server |
354
+ | MCP enabled | Master switch for MCP-enhanced code generation (ON by default) |
355
+ | MCP headless | Run MCP browser without visible window |
356
+ | MCP act-then-script | Two-phase generation: execute via MCP first, convert to code |
357
+ | MCP proactive healing | Validate selectors against live page before test runs |
354
358
 
355
359
  Changes are saved immediately to both `autotest.config.json` and `autotest.config.ts`.
356
360
 
357
361
  ---
358
362
 
363
+ ## MCP Integration (AI-Sighted Generation)
364
+
365
+ The **MCP Integration** card in Settings controls how the AI code generator interacts with a real Playwright browser during code generation via the official `@playwright/mcp` server.
366
+
367
+ **Key concept:** MCP is used **only during code generation** — it takes accessibility snapshots so the AI sees actual page elements instead of guessing. Test execution is never affected.
368
+
369
+ ### Settings
370
+
371
+ | Toggle | Default | Description |
372
+ |--------|---------|-------------|
373
+ | Enable MCP | ON | Master switch. When off, AI generates code blindly (original behavior). |
374
+ | Headless mode | ON | Run the MCP browser without a visible window. |
375
+ | Act-then-script | OFF | Two-phase generation: AI plans actions → executes on real browser → converts to Playwright code. Higher accuracy but slower. |
376
+ | Proactive healing | OFF | Before a test run, take a fresh snapshot and validate all selectors in generated code. Missing elements are flagged with suggestions via WebSocket. |
377
+
378
+ ### How Snapshot-Driven Generation Works
379
+
380
+ 1. You click **Generate Code** on a step (or **Generate All**).
381
+ 2. The SmartRouter checks template cache first (free, instant).
382
+ 3. If no cache hit, MCP launches a headless browser and navigates to your app URL.
383
+ 4. An accessibility snapshot captures all interactive elements (buttons, inputs, links with their roles and names).
384
+ 5. The AI receives the snapshot + your step instruction and generates Playwright code using real selectors.
385
+ 6. The MCP browser stays open for subsequent steps (idle timeout: 30s), so only the first step pays the startup cost.
386
+
387
+ ### Fallback
388
+
389
+ If MCP fails at any point (browser crash, timeout, network issue), generation silently falls back to blind mode. No error is shown to the user — the AI simply generates code without the snapshot, exactly as before MCP was enabled.
390
+
391
+ ---
392
+
359
393
  ## WebSocket Live Updates
360
394
 
361
395
  The Studio uses a WebSocket connection (`ws://localhost:<port>/ws`) to receive live updates:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "assuremind",
3
- "version": "1.0.2",
3
+ "version": "1.1.1",
4
4
  "description": "AI-powered codeless UI & API automation framework",
5
5
  "author": "Deepak Hiremath",
6
6
  "license": "MIT",
@@ -71,6 +71,8 @@
71
71
  "@fastify/static": "^9.0.0",
72
72
  "@fastify/websocket": "^11.2.0",
73
73
  "@google/generative-ai": "^0.21.0",
74
+ "@modelcontextprotocol/sdk": "^1.29.0",
75
+ "@playwright/mcp": "^0.0.70",
74
76
  "@playwright/test": "^1.47.0",
75
77
  "allure-commandline": "^2.38.1",
76
78
  "allure-js-commons": "^3.0.0",
@@ -67,7 +67,7 @@ npx assuremind doctor
67
67
  ├── .env ← AI provider credentials (never commit)
68
68
  ├── .env.example ← Provider reference (safe to commit)
69
69
  ├── autotest.config.ts ← Framework configuration
70
- ├── TESTAUTOMIND.md ← This file
70
+ ├── ASSUREMIND.md ← This file
71
71
 
72
72
  ├── tests/
73
73
  │ ├── <suite-slug>/ ← UI and API suites
@@ -184,7 +184,7 @@ export default defineConfig({
184
184
  device: 'iPhone 15 Pro', // optional — Playwright device descriptor
185
185
  healing: {
186
186
  enabled: true,
187
- maxLevel: 5, // 1–6
187
+ maxLevel: 5, // 1–5
188
188
  dailyBudget: 5.0, // Max USD/day on healing
189
189
  },
190
190
  studioPort: 4400,
@@ -202,7 +202,6 @@ export default defineConfig({
202
202
  | 3 | Multi-Selector — try alternate selectors (ID, text, role, aria) |
203
203
  | 4 | Visual/SoM — screenshot + AI visual analysis |
204
204
  | 5 | Decompose — break step into smaller sub-actions |
205
- | 6 | Manual — flag for human review |
206
205
 
207
206
  Healed steps are saved as pending suggestions. Review with:
208
207
 
@@ -214,6 +213,35 @@ Or in the Studio → **Self-Healing** page.
214
213
 
215
214
  ---
216
215
 
216
+ ## MCP Integration (AI-Sighted Generation)
217
+
218
+ MCP connects the AI to a real Playwright browser during code generation. The AI sees actual page elements instead of guessing selectors.
219
+
220
+ **Enabled by default** — configure in Settings → MCP Integration:
221
+
222
+ | Setting | Default | What it does |
223
+ |---------|---------|-------------|
224
+ | Enable MCP | ON | AI sees live accessibility snapshots during generation |
225
+ | Headless | ON | MCP browser runs without visible window |
226
+ | Act-then-script | OFF | Execute action via MCP first, then convert to code |
227
+ | Proactive healing | OFF | Validate selectors before test runs |
228
+
229
+ ```json
230
+ // autotest.config.json
231
+ {
232
+ "mcp": {
233
+ "enabled": true,
234
+ "headless": true,
235
+ "actThenScript": false,
236
+ "proactiveHealing": false
237
+ }
238
+ }
239
+ ```
240
+
241
+ > MCP is only used during code generation — test execution is never affected.
242
+
243
+ ---
244
+
217
245
  ## Device Emulation
218
246
 
219
247
  Emulate real devices using Playwright's built-in device descriptors. Select in Studio UI or use `--device` CLI flag.
@@ -32,7 +32,7 @@ npx assuremind init [options]
32
32
 
33
33
  **What it does:**
34
34
  - Creates the directory structure (`tests/`, `variables/`, `results/`, `fixtures/`, `docs/`)
35
- - Copies starter files (`.env`, `autotest.config.ts`, `TESTAUTOMIND.md`, docs)
35
+ - Copies starter files (`.env`, `autotest.config.ts`, `ASSUREMIND.md`, docs)
36
36
  - Writes `autotest.config.json` with defaults
37
37
  - Installs Playwright browsers (Chromium, Firefox, WebKit)
38
38
 
@@ -356,6 +356,23 @@ These environment variables can override CLI flags or config file values:
356
356
 
357
357
  ---
358
358
 
359
+ ## MCP Configuration
360
+
361
+ MCP (Model Context Protocol) settings are configured in `autotest.config.json` (or via the Settings page in Studio), not via environment variables.
362
+
363
+ | Setting | Default | Description |
364
+ |---------|---------|-------------|
365
+ | `mcp.enabled` | `true` | Enable MCP-enhanced code generation (AI sees live page elements) |
366
+ | `mcp.headless` | `true` | Run MCP browser without visible window |
367
+ | `mcp.actThenScript` | `false` | Two-phase generation: execute via MCP, then convert to code |
368
+ | `mcp.proactiveHealing` | `false` | Validate selectors against live page before test runs |
369
+ | `mcp.actionTimeout` | `15000` | Timeout per MCP action in ms |
370
+ | `mcp.idleTimeout` | `30000` | Auto-disconnect MCP browser after idle period in ms |
371
+
372
+ > **Note:** MCP is used only during code generation. Test execution (`npx assuremind run`) is never affected by MCP settings.
373
+
374
+ ---
375
+
359
376
  ## Configuration File
360
377
 
361
378
  `autotest.config.json` (auto-generated, also editable via Settings UI):
@@ -404,7 +421,7 @@ These environment variables can override CLI flags or config file values:
404
421
  | `video` | string | `off` `on` `on-first-retry` `retain-on-failure` | Video recording |
405
422
  | `trace` | string | `off` `on` `on-first-retry` `retain-on-failure` | Playwright trace |
406
423
  | `healing.enabled` | boolean | | Enable self-healing |
407
- | `healing.maxLevel` | number | 1–6 | Max healing strategy level |
424
+ | `healing.maxLevel` | number | 1–5 | Max healing strategy level |
408
425
  | `healing.dailyBudget` | number | USD | Max daily AI spend on healing |
409
426
  | `healing.autoPR` | boolean | | Auto-create PRs for accepted heals |
410
427
  | `reporting.allure` | boolean | | Generate Allure report |
@@ -75,7 +75,7 @@ my-project/
75
75
  ├── .env.example ← Provider reference
76
76
  ├── autotest.config.ts ← Framework configuration
77
77
  ├── autotest.config.json ← Runtime config (auto-synced)
78
- ├── TESTAUTOMIND.md ← Quick-reference cheat sheet
78
+ ├── ASSUREMIND.md ← Quick-reference cheat sheet
79
79
  ├── docs/
80
80
  │ ├── GETTING-STARTED.md ← This file
81
81
  │ ├── STUDIO.md ← Full UI walkthrough
@@ -151,6 +151,12 @@ export default defineConfig({
151
151
  dailyBudget: 5.0,
152
152
  autoPR: false,
153
153
  },
154
+ mcp: {
155
+ enabled: true, // AI sees real page elements during code generation
156
+ headless: true, // MCP browser runs without visible window
157
+ actThenScript: false, // Two-phase generation (higher accuracy, slower)
158
+ proactiveHealing: false, // Pre-run selector validation
159
+ },
154
160
  studioPort: 4400,
155
161
  });
156
162
  ```
@@ -335,7 +341,6 @@ When a test step fails because the UI changed (e.g. a selector is stale), Assure
335
341
  | 3 | Multi-Selector — try alternative selectors |
336
342
  | 4 | Visual/SoM — screenshot + AI visual analysis |
337
343
  | 5 | Decompose — break step into sub-actions |
338
- | 6 | Manual — flag for human review |
339
344
 
340
345
  Healed steps are saved as **pending suggestions** for you to review:
341
346
 
@@ -411,7 +416,8 @@ HEALING_ENABLED=false
411
416
  |-------|----------|
412
417
  | Full Studio UI walkthrough | `docs/STUDIO.md` |
413
418
  | All CLI commands | `docs/CLI-REFERENCE.md` |
414
- | Quick-reference cheat sheet | `TESTAUTOMIND.md` |
419
+ | Quick-reference cheat sheet | `ASSUREMIND.md` |
415
420
  | All AI provider options | `.env.example` |
421
+ | MCP integration | Settings page → MCP Integration |
416
422
 
417
423
  Run `npx assuremind doctor` at any time to check your setup health.
@@ -443,7 +443,7 @@ Each healing card shows:
443
443
  | Field | Description |
444
444
  |-------|-------------|
445
445
  | Instruction | The step instruction that was healed |
446
- | Level | Which healing strategy succeeded (1–6) |
446
+ | Level | Which healing strategy succeeded (1–5) |
447
447
  | Before | The code that failed |
448
448
  | After | The AI-generated replacement code |
449
449
 
@@ -571,7 +571,7 @@ Navigate to **Settings** in the sidebar. Changes are saved immediately to `autot
571
571
  | Setting | Description |
572
572
  |---------|-------------|
573
573
  | **Enable Healing** | Toggle self-healing on/off |
574
- | **Max Level** | Highest healing level to attempt (1–6) |
574
+ | **Max Level** | Highest healing level to attempt (1–5) |
575
575
  | **Daily Budget** | Max USD per day to spend on AI healing calls |
576
576
  | **Auto PR** | Auto-create pull requests for accepted heals (if Git remote configured) |
577
577
 
@@ -587,6 +587,47 @@ Navigate to **Settings** in the sidebar. Changes are saved immediately to `autot
587
587
 
588
588
  Port the Studio server runs on (default: 4400). Restart Studio after changing.
589
589
 
590
+ ### MCP Integration
591
+
592
+ | Setting | Description |
593
+ |---------|-------------|
594
+ | **MCP enabled** | Master switch for MCP-enhanced code generation (ON by default) |
595
+ | **MCP headless** | Run MCP browser without visible window |
596
+ | **MCP act-then-script** | Two-phase generation: execute via MCP first, convert to code |
597
+ | **MCP proactive healing** | Validate selectors against live page before test runs |
598
+
599
+ Changes are saved immediately to both `autotest.config.json` and `autotest.config.ts`.
600
+
601
+ ---
602
+
603
+ ## MCP Integration (AI-Sighted Generation)
604
+
605
+ The **MCP Integration** card in Settings controls how the AI code generator interacts with a real Playwright browser during code generation via the official `@playwright/mcp` server.
606
+
607
+ **Key concept:** MCP is used **only during code generation** — it takes accessibility snapshots so the AI sees actual page elements instead of guessing. Test execution is never affected.
608
+
609
+ ### Settings
610
+
611
+ | Toggle | Default | Description |
612
+ |--------|---------|-------------|
613
+ | Enable MCP | ON | Master switch. When off, AI generates code blindly (original behavior). |
614
+ | Headless mode | ON | Run the MCP browser without a visible window. |
615
+ | Act-then-script | OFF | Two-phase generation: AI plans actions → executes on real browser → converts to Playwright code. Higher accuracy but slower. |
616
+ | Proactive healing | OFF | Before a test run, take a fresh snapshot and validate all selectors in generated code. Missing elements are flagged with suggestions via WebSocket. |
617
+
618
+ ### How Snapshot-Driven Generation Works
619
+
620
+ 1. You click **Generate Code** on a step (or **Generate All**).
621
+ 2. The SmartRouter checks template cache first (free, instant).
622
+ 3. If no cache hit, MCP launches a headless browser and navigates to your app URL.
623
+ 4. An accessibility snapshot captures all interactive elements (buttons, inputs, links with their roles and names).
624
+ 5. The AI receives the snapshot + your step instruction and generates Playwright code using real selectors.
625
+ 6. The MCP browser stays open for subsequent steps (idle timeout: 30s), so only the first step pays the startup cost.
626
+
627
+ ### Fallback
628
+
629
+ If MCP fails at any point (browser crash, timeout, network issue), generation silently falls back to blind mode. No error is shown to the user — the AI simply generates code without the snapshot, exactly as before MCP was enabled.
630
+
590
631
  ---
591
632
 
592
633
  ## 13. Keyboard Shortcuts & Tips
@@ -0,0 +1 @@
1
+ @import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=JetBrains+Mono:wght@400;500&display=swap";*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Inter,system-ui,-apple-system,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}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;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:JetBrains Mono,Fira Code,Consolas,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;padding:0}body{font-family:Inter,system-ui,-apple-system,sans-serif;background-color:var(--color-background);color:var(--color-text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"cv02","cv03","cv04","cv11"}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:999px}::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}:focus:not(:focus-visible){outline:none}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:4px}.container{width:100%}@media (min-width: 640px){.container{max-width:640px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1280px){.container{max-width:1280px}}@media (min-width: 1536px){.container{max-width:1536px}}.sidebar-item{position:relative;display:flex;cursor:pointer;align-items:center;gap:.75rem;border-radius:.5rem;padding:.375rem .75rem;font-size:13px;font-weight:500;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;color:#ffffff8c}.sidebar-item:hover{color:#ffffffe6;background-color:var(--color-sidebar-hover)}.sidebar-item.active{color:#fff;background:linear-gradient(135deg,var(--color-accent),var(--color-accent-dark));font-weight:600;box-shadow:0 2px 8px -2px #6366f166}.sidebar-item.active:before{content:none}.input-base{width:100%;border-radius:.5rem;border-width:1px;padding:.5rem .75rem;font-size:.875rem;line-height:1.25rem;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;background:var(--color-surface);border-color:var(--color-border);color:var(--color-text-primary)}.input-base::-moz-placeholder{color:var(--color-text-tertiary)}.input-base::placeholder{color:var(--color-text-tertiary)}.input-base:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-muted)}.skeleton-shimmer{background:linear-gradient(90deg,var(--color-border-muted) 25%,var(--color-surface) 50%,var(--color-border-muted) 75%);background-size:200% 100%;animation:shimmer 2s linear infinite}.pointer-events-none{pointer-events:none}.\!visible{visibility:visible!important}.visible{visibility:visible}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.inset-\[6px\]{top:6px;right:6px;bottom:6px;left:6px}.inset-x-0{left:0;right:0}.inset-y-0{top:0;bottom:0}.-bottom-1\.5{bottom:-.375rem}.-left-1\.5{left:-.375rem}.-right-1{right:-.25rem}.-right-1\.5{right:-.375rem}.-top-1{top:-.25rem}.-top-1\.5{top:-.375rem}.bottom-0{bottom:0}.bottom-1{bottom:.25rem}.bottom-2{bottom:.5rem}.bottom-4{bottom:1rem}.left-0{left:0}.left-0\.5{left:.125rem}.left-1\/2{left:50%}.left-2{left:.5rem}.left-2\.5{left:.625rem}.left-3{left:.75rem}.left-\[22px\]{left:22px}.left-\[248px\]{left:248px}.left-\[5px\]{left:5px}.right-0{right:0}.right-1{right:.25rem}.right-1\.5{right:.375rem}.right-2\.5{right:.625rem}.right-3{right:.75rem}.right-4{right:1rem}.top-0{top:0}.top-0\.5{top:.125rem}.top-1\.5{top:.375rem}.top-1\/2{top:50%}.top-2{top:.5rem}.top-2\.5{top:.625rem}.top-4{top:1rem}.top-full{top:100%}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-\[1\]{z-index:1}.z-\[9999\]{z-index:9999}.col-span-2{grid-column:span 2 / span 2}.col-span-3{grid-column:span 3 / span 3}.-mx-0\.5{margin-left:-.125rem;margin-right:-.125rem}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-3{margin-left:.75rem;margin-right:.75rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-6{margin-left:1.5rem;margin-right:1.5rem}.mx-auto{margin-left:auto;margin-right:auto}.-mb-px{margin-bottom:-1px}.-mr-0\.5{margin-right:-.125rem}.mb-0\.5{margin-bottom:.125rem}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-10{margin-bottom:2.5rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-0\.5{margin-left:.125rem}.ml-1{margin-left:.25rem}.ml-1\.5{margin-left:.375rem}.ml-2{margin-left:.5rem}.ml-auto{margin-left:auto}.mr-0\.5{margin-right:.125rem}.mr-2{margin-right:.5rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-2{margin-top:.5rem}.mt-2\.5{margin-top:.625rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-auto{margin-top:auto}.mt-px{margin-top:1px}.line-clamp-1{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.line-clamp-3{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-0\.5{height:.125rem}.h-1{height:.25rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-28{height:7rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-32{height:8rem}.h-4{height:1rem}.h-40{height:10rem}.h-48{height:12rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-64{height:16rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[220px\]{height:220px}.h-\[22px\]{height:22px}.h-\[3px\]{height:3px}.h-\[9px\]{height:9px}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.max-h-32{max-height:8rem}.max-h-40{max-height:10rem}.max-h-44{max-height:11rem}.max-h-48{max-height:12rem}.max-h-56{max-height:14rem}.max-h-64{max-height:16rem}.max-h-80{max-height:20rem}.max-h-\[114px\]{max-height:114px}.max-h-\[140px\]{max-height:140px}.max-h-\[150px\]{max-height:150px}.max-h-\[200px\]{max-height:200px}.max-h-\[220px\]{max-height:220px}.max-h-\[400px\]{max-height:400px}.max-h-\[500px\]{max-height:500px}.max-h-\[50vh\]{max-height:50vh}.max-h-\[680px\]{max-height:680px}.max-h-\[72px\]{max-height:72px}.max-h-\[85vh\]{max-height:85vh}.max-h-\[90vh\]{max-height:90vh}.max-h-full{max-height:100%}.min-h-0{min-height:0px}.min-h-\[220px\]{min-height:220px}.min-h-\[80px\]{min-height:80px}.w-1{width:.25rem}.w-1\.5{width:.375rem}.w-1\/2{width:50%}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-2\/5{width:40%}.w-20{width:5rem}.w-24{width:6rem}.w-28{width:7rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-3\/4{width:75%}.w-32{width:8rem}.w-36{width:9rem}.w-4{width:1rem}.w-40{width:10rem}.w-44{width:11rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-5\/6{width:83.333333%}.w-52{width:13rem}.w-56{width:14rem}.w-6{width:1.5rem}.w-7{width:1.75rem}.w-72{width:18rem}.w-8{width:2rem}.w-80{width:20rem}.w-9{width:2.25rem}.w-\[248px\]{width:248px}.w-\[340px\]{width:340px}.w-\[400px\]{width:400px}.w-\[560px\]{width:560px}.w-\[6px\]{width:6px}.w-\[84px\]{width:84px}.w-\[9px\]{width:9px}.w-full{width:100%}.w-px{width:1px}.min-w-0{min-width:0px}.min-w-\[120px\]{min-width:120px}.min-w-\[22px\]{min-width:22px}.min-w-\[70px\]{min-width:70px}.min-w-\[90px\]{min-width:90px}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-5xl{max-width:64rem}.max-w-\[100px\]{max-width:100px}.max-w-\[120px\]{max-width:120px}.max-w-\[140px\]{max-width:140px}.max-w-\[160px\]{max-width:160px}.max-w-\[180px\]{max-width:180px}.max-w-\[200px\]{max-width:200px}.max-w-\[240px\]{max-width:240px}.max-w-\[80px\]{max-width:80px}.max-w-\[90px\]{max-width:90px}.max-w-\[90vw\]{max-width:90vw}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-sm{max-width:24rem}.max-w-xl{max-width:36rem}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.flex-\[2\]{flex:2}.flex-shrink-0{flex-shrink:0}.border-collapse{border-collapse:collapse}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-full{--tw-translate-x: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-px{--tw-translate-y: -1px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-0\.5{--tw-translate-x: .125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-\[21px\]{--tw-translate-x: 21px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-\[3px\]{--tw-translate-x: 3px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-full{--tw-translate-x: 100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-px{--tw-translate-x: 1px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-rotate-90{--tw-rotate: -90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes bounce{0%,to{transform:translateY(-25%);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:none;animation-timing-function:cubic-bezier(0,0,.2,1)}}.animate-bounce{animation:bounce 1s infinite}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.animate-fade-in{animation:fade-in .2s ease-out}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes scale-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.animate-scale-in{animation:scale-in .15s ease-out}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-col-resize{cursor:col-resize}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-move{cursor:move}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.cursor-row-resize{cursor:row-resize}.cursor-wait{cursor:wait}.cursor-zoom-in{cursor:zoom-in}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize-none{resize:none}.resize-y{resize:vertical}.resize{resize:both}.scroll-mt-6{scroll-margin-top:1.5rem}.list-inside{list-style-position:inside}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid-cols-\[1fr_100px_140px_80px_60px\]{grid-template-columns:1fr 100px 140px 80px 60px}.grid-cols-\[1fr_2fr_80px_80px\]{grid-template-columns:1fr 2fr 80px 80px}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0{gap:0px}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-3\.5{gap:.875rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-\[3px\]{gap:3px}.gap-px{gap:1px}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-x-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.gap-y-0\.5{row-gap:.125rem}.gap-y-3{row-gap:.75rem}.space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px * var(--tw-space-y-reverse))}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-2\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.625rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.625rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-px>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1px * var(--tw-space-y-reverse))}.divide-x>:not([hidden])~:not([hidden]){--tw-divide-x-reverse: 0;border-right-width:calc(1px * var(--tw-divide-x-reverse));border-left-width:calc(1px * calc(1 - var(--tw-divide-x-reverse)))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}.divide-border>:not([hidden])~:not([hidden]){border-color:var(--color-border)}.divide-border-muted>:not([hidden])~:not([hidden]){border-color:var(--color-border-muted)}.divide-slate-100>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(241 245 249 / var(--tw-divide-opacity, 1))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-none{border-radius:0}.rounded-sm{border-radius:.125rem}.rounded-xl{border-radius:.75rem}.rounded-b-xl{border-bottom-right-radius:.75rem;border-bottom-left-radius:.75rem}.rounded-t-lg{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.border{border-width:1px}.border-2{border-width:2px}.border-\[1\.5px\]{border-width:1.5px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-l{border-left-width:1px}.border-l-2{border-left-width:2px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.border-accent{border-color:var(--color-accent)}.border-amber-100{--tw-border-opacity: 1;border-color:rgb(254 243 199 / var(--tw-border-opacity, 1))}.border-amber-200{--tw-border-opacity: 1;border-color:rgb(253 230 138 / var(--tw-border-opacity, 1))}.border-amber-200\/50{border-color:#fde68a80}.border-amber-200\/60{border-color:#fde68a99}.border-blue-200{--tw-border-opacity: 1;border-color:rgb(191 219 254 / var(--tw-border-opacity, 1))}.border-blue-200\/50{border-color:#bfdbfe80}.border-blue-200\/60{border-color:#bfdbfe99}.border-border{border-color:var(--color-border)}.border-border-muted{border-color:var(--color-border-muted)}.border-current{border-color:currentColor}.border-emerald-100{--tw-border-opacity: 1;border-color:rgb(209 250 229 / var(--tw-border-opacity, 1))}.border-emerald-200{--tw-border-opacity: 1;border-color:rgb(167 243 208 / var(--tw-border-opacity, 1))}.border-emerald-200\/50{border-color:#a7f3d080}.border-emerald-200\/60{border-color:#a7f3d099}.border-emerald-500\/30{border-color:#10b9814d}.border-green-200{--tw-border-opacity: 1;border-color:rgb(187 247 208 / var(--tw-border-opacity, 1))}.border-green-200\/60{border-color:#bbf7d099}.border-indigo-100{--tw-border-opacity: 1;border-color:rgb(224 231 255 / var(--tw-border-opacity, 1))}.border-indigo-200\/50{border-color:#c7d2fe80}.border-indigo-200\/60{border-color:#c7d2fe99}.border-indigo-300{--tw-border-opacity: 1;border-color:rgb(165 180 252 / var(--tw-border-opacity, 1))}.border-indigo-600{--tw-border-opacity: 1;border-color:rgb(79 70 229 / var(--tw-border-opacity, 1))}.border-orange-200{--tw-border-opacity: 1;border-color:rgb(254 215 170 / var(--tw-border-opacity, 1))}.border-orange-200\/60{border-color:#fed7aa99}.border-purple-200{--tw-border-opacity: 1;border-color:rgb(233 213 255 / var(--tw-border-opacity, 1))}.border-purple-200\/60{border-color:#e9d5ff99}.border-red-100{--tw-border-opacity: 1;border-color:rgb(254 226 226 / var(--tw-border-opacity, 1))}.border-red-200{--tw-border-opacity: 1;border-color:rgb(254 202 202 / var(--tw-border-opacity, 1))}.border-red-200\/40{border-color:#fecaca66}.border-red-200\/50{border-color:#fecaca80}.border-red-200\/60{border-color:#fecaca99}.border-red-300{--tw-border-opacity: 1;border-color:rgb(252 165 165 / var(--tw-border-opacity, 1))}.border-red-400{--tw-border-opacity: 1;border-color:rgb(248 113 113 / var(--tw-border-opacity, 1))}.border-red-500\/30{border-color:#ef44444d}.border-rose-200\/60{border-color:#fecdd399}.border-slate-100{--tw-border-opacity: 1;border-color:rgb(241 245 249 / var(--tw-border-opacity, 1))}.border-slate-200{--tw-border-opacity: 1;border-color:rgb(226 232 240 / var(--tw-border-opacity, 1))}.border-slate-200\/60{border-color:#e2e8f099}.border-slate-700{--tw-border-opacity: 1;border-color:rgb(51 65 85 / var(--tw-border-opacity, 1))}.border-teal-100{--tw-border-opacity: 1;border-color:rgb(204 251 241 / var(--tw-border-opacity, 1))}.border-teal-200\/60{border-color:#99f6e499}.border-teal-400{--tw-border-opacity: 1;border-color:rgb(45 212 191 / var(--tw-border-opacity, 1))}.border-teal-600{--tw-border-opacity: 1;border-color:rgb(13 148 136 / var(--tw-border-opacity, 1))}.border-transparent{border-color:transparent}.border-violet-100{--tw-border-opacity: 1;border-color:rgb(237 233 254 / var(--tw-border-opacity, 1))}.border-violet-200{--tw-border-opacity: 1;border-color:rgb(221 214 254 / var(--tw-border-opacity, 1))}.border-violet-300{--tw-border-opacity: 1;border-color:rgb(196 181 253 / var(--tw-border-opacity, 1))}.border-violet-700{--tw-border-opacity: 1;border-color:rgb(109 40 217 / var(--tw-border-opacity, 1))}.border-white\/\[0\.06\]{border-color:#ffffff0f}.border-t-accent{border-top-color:var(--color-accent)}.bg-\[\#0d1117\]{--tw-bg-opacity: 1;background-color:rgb(13 17 23 / var(--tw-bg-opacity, 1))}.bg-\[\#16172a\]{--tw-bg-opacity: 1;background-color:rgb(22 23 42 / var(--tw-bg-opacity, 1))}.bg-\[\#1a1b26\]{--tw-bg-opacity: 1;background-color:rgb(26 27 38 / var(--tw-bg-opacity, 1))}.bg-\[\#1e1e2e\]{--tw-bg-opacity: 1;background-color:rgb(30 30 46 / var(--tw-bg-opacity, 1))}.bg-\[\#1e1f2e\]{--tw-bg-opacity: 1;background-color:rgb(30 31 46 / var(--tw-bg-opacity, 1))}.bg-accent{background-color:var(--color-accent)}.bg-accent-muted{background-color:var(--color-accent-muted)}.bg-amber-100{--tw-bg-opacity: 1;background-color:rgb(254 243 199 / var(--tw-bg-opacity, 1))}.bg-amber-400{--tw-bg-opacity: 1;background-color:rgb(251 191 36 / var(--tw-bg-opacity, 1))}.bg-amber-50{--tw-bg-opacity: 1;background-color:rgb(255 251 235 / var(--tw-bg-opacity, 1))}.bg-amber-500{--tw-bg-opacity: 1;background-color:rgb(245 158 11 / var(--tw-bg-opacity, 1))}.bg-amber-500\/10{background-color:#f59e0b1a}.bg-amber-500\/50{background-color:#f59e0b80}.bg-amber-500\/80{background-color:#f59e0bcc}.bg-background{background-color:var(--color-background)}.bg-black{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity, 1))}.bg-black\/20{background-color:#0003}.bg-black\/30{background-color:#0000004d}.bg-black\/50{background-color:#00000080}.bg-black\/60{background-color:#0009}.bg-black\/80{background-color:#000c}.bg-blue-100{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1))}.bg-blue-50{--tw-bg-opacity: 1;background-color:rgb(239 246 255 / var(--tw-bg-opacity, 1))}.bg-blue-50\/50{background-color:#eff6ff80}.bg-blue-500{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.bg-blue-500\/10{background-color:#3b82f61a}.bg-border{background-color:var(--color-border)}.bg-content-tertiary{background-color:var(--color-text-tertiary)}.bg-emerald-100{--tw-bg-opacity: 1;background-color:rgb(209 250 229 / var(--tw-bg-opacity, 1))}.bg-emerald-300{--tw-bg-opacity: 1;background-color:rgb(110 231 183 / var(--tw-bg-opacity, 1))}.bg-emerald-400{--tw-bg-opacity: 1;background-color:rgb(52 211 153 / var(--tw-bg-opacity, 1))}.bg-emerald-50{--tw-bg-opacity: 1;background-color:rgb(236 253 245 / var(--tw-bg-opacity, 1))}.bg-emerald-50\/50{background-color:#ecfdf580}.bg-emerald-50\/60{background-color:#ecfdf599}.bg-emerald-500{--tw-bg-opacity: 1;background-color:rgb(16 185 129 / var(--tw-bg-opacity, 1))}.bg-emerald-500\/10{background-color:#10b9811a}.bg-emerald-500\/20{background-color:#10b98133}.bg-emerald-500\/50{background-color:#10b98180}.bg-emerald-500\/80{background-color:#10b981cc}.bg-emerald-600{--tw-bg-opacity: 1;background-color:rgb(5 150 105 / var(--tw-bg-opacity, 1))}.bg-emerald-950\/80{background-color:#022c22cc}.bg-green-100{--tw-bg-opacity: 1;background-color:rgb(220 252 231 / var(--tw-bg-opacity, 1))}.bg-green-400{--tw-bg-opacity: 1;background-color:rgb(74 222 128 / var(--tw-bg-opacity, 1))}.bg-green-50{--tw-bg-opacity: 1;background-color:rgb(240 253 244 / var(--tw-bg-opacity, 1))}.bg-green-50\/50{background-color:#f0fdf480}.bg-green-600{--tw-bg-opacity: 1;background-color:rgb(22 163 74 / var(--tw-bg-opacity, 1))}.bg-indigo-100{--tw-bg-opacity: 1;background-color:rgb(224 231 255 / var(--tw-bg-opacity, 1))}.bg-indigo-100\/80{background-color:#e0e7ffcc}.bg-indigo-50{--tw-bg-opacity: 1;background-color:rgb(238 242 255 / var(--tw-bg-opacity, 1))}.bg-indigo-50\/20{background-color:#eef2ff33}.bg-indigo-600{--tw-bg-opacity: 1;background-color:rgb(79 70 229 / var(--tw-bg-opacity, 1))}.bg-orange-100{--tw-bg-opacity: 1;background-color:rgb(255 237 213 / var(--tw-bg-opacity, 1))}.bg-orange-50{--tw-bg-opacity: 1;background-color:rgb(255 247 237 / var(--tw-bg-opacity, 1))}.bg-orange-50\/50{background-color:#fff7ed80}.bg-purple-100{--tw-bg-opacity: 1;background-color:rgb(243 232 255 / var(--tw-bg-opacity, 1))}.bg-purple-50{--tw-bg-opacity: 1;background-color:rgb(250 245 255 / var(--tw-bg-opacity, 1))}.bg-purple-600{--tw-bg-opacity: 1;background-color:rgb(147 51 234 / var(--tw-bg-opacity, 1))}.bg-red-100{--tw-bg-opacity: 1;background-color:rgb(254 226 226 / var(--tw-bg-opacity, 1))}.bg-red-400{--tw-bg-opacity: 1;background-color:rgb(248 113 113 / var(--tw-bg-opacity, 1))}.bg-red-50{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.bg-red-50\/20{background-color:#fef2f233}.bg-red-50\/30{background-color:#fef2f24d}.bg-red-50\/50{background-color:#fef2f280}.bg-red-50\/60{background-color:#fef2f299}.bg-red-50\/80{background-color:#fef2f2cc}.bg-red-500{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity, 1))}.bg-red-500\/10{background-color:#ef44441a}.bg-red-500\/50{background-color:#ef444480}.bg-red-500\/80{background-color:#ef4444cc}.bg-red-950\/80{background-color:#450a0acc}.bg-rose-50{--tw-bg-opacity: 1;background-color:rgb(255 241 242 / var(--tw-bg-opacity, 1))}.bg-sidebar{background-color:var(--color-sidebar)}.bg-slate-100{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity, 1))}.bg-slate-200{--tw-bg-opacity: 1;background-color:rgb(226 232 240 / var(--tw-bg-opacity, 1))}.bg-slate-400{--tw-bg-opacity: 1;background-color:rgb(148 163 184 / var(--tw-bg-opacity, 1))}.bg-slate-50{--tw-bg-opacity: 1;background-color:rgb(248 250 252 / var(--tw-bg-opacity, 1))}.bg-slate-500{--tw-bg-opacity: 1;background-color:rgb(100 116 139 / var(--tw-bg-opacity, 1))}.bg-slate-500\/10{background-color:#64748b1a}.bg-slate-700{--tw-bg-opacity: 1;background-color:rgb(51 65 85 / var(--tw-bg-opacity, 1))}.bg-slate-800{--tw-bg-opacity: 1;background-color:rgb(30 41 59 / var(--tw-bg-opacity, 1))}.bg-slate-800\/50{background-color:#1e293b80}.bg-slate-800\/60{background-color:#1e293b99}.bg-slate-900{--tw-bg-opacity: 1;background-color:rgb(15 23 42 / var(--tw-bg-opacity, 1))}.bg-slate-950{--tw-bg-opacity: 1;background-color:rgb(2 6 23 / var(--tw-bg-opacity, 1))}.bg-surface{background-color:var(--color-surface)}.bg-surface-inset{background-color:var(--color-surface-inset)}.bg-teal-50{--tw-bg-opacity: 1;background-color:rgb(240 253 250 / var(--tw-bg-opacity, 1))}.bg-teal-600{--tw-bg-opacity: 1;background-color:rgb(13 148 136 / var(--tw-bg-opacity, 1))}.bg-transparent{background-color:transparent}.bg-violet-100{--tw-bg-opacity: 1;background-color:rgb(237 233 254 / var(--tw-bg-opacity, 1))}.bg-violet-50{--tw-bg-opacity: 1;background-color:rgb(245 243 255 / var(--tw-bg-opacity, 1))}.bg-violet-50\/20{background-color:#f5f3ff33}.bg-violet-50\/30{background-color:#f5f3ff4d}.bg-violet-50\/50{background-color:#f5f3ff80}.bg-violet-500{--tw-bg-opacity: 1;background-color:rgb(139 92 246 / var(--tw-bg-opacity, 1))}.bg-violet-500\/10{background-color:#8b5cf61a}.bg-violet-600{--tw-bg-opacity: 1;background-color:rgb(124 58 237 / var(--tw-bg-opacity, 1))}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-white\/20{background-color:#fff3}.bg-yellow-100{--tw-bg-opacity: 1;background-color:rgb(254 249 195 / var(--tw-bg-opacity, 1))}.bg-gradient-to-b{background-image:linear-gradient(to bottom,var(--tw-gradient-stops))}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.bg-gradient-to-t{background-image:linear-gradient(to top,var(--tw-gradient-stops))}.from-accent{--tw-gradient-from: var(--color-accent) var(--tw-gradient-from-position);--tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-amber-100{--tw-gradient-from: #fef3c7 var(--tw-gradient-from-position);--tw-gradient-to: rgb(254 243 199 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-amber-50\/80{--tw-gradient-from: rgb(255 251 235 / .8) var(--tw-gradient-from-position);--tw-gradient-to: rgb(255 251 235 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-amber-500{--tw-gradient-from: #f59e0b var(--tw-gradient-from-position);--tw-gradient-to: rgb(245 158 11 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-black\/80{--tw-gradient-from: rgb(0 0 0 / .8) var(--tw-gradient-from-position);--tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-black\/90{--tw-gradient-from: rgb(0 0 0 / .9) var(--tw-gradient-from-position);--tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-blue-100{--tw-gradient-from: #dbeafe var(--tw-gradient-from-position);--tw-gradient-to: rgb(219 234 254 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-blue-500{--tw-gradient-from: #3b82f6 var(--tw-gradient-from-position);--tw-gradient-to: rgb(59 130 246 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-emerald-50\/40{--tw-gradient-from: rgb(236 253 245 / .4) var(--tw-gradient-from-position);--tw-gradient-to: rgb(236 253 245 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-emerald-50\/80{--tw-gradient-from: rgb(236 253 245 / .8) var(--tw-gradient-from-position);--tw-gradient-to: rgb(236 253 245 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-emerald-500{--tw-gradient-from: #10b981 var(--tw-gradient-from-position);--tw-gradient-to: rgb(16 185 129 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-indigo-50\/40{--tw-gradient-from: rgb(238 242 255 / .4) var(--tw-gradient-from-position);--tw-gradient-to: rgb(238 242 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-indigo-500{--tw-gradient-from: #6366f1 var(--tw-gradient-from-position);--tw-gradient-to: rgb(99 102 241 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-orange-500{--tw-gradient-from: #f97316 var(--tw-gradient-from-position);--tw-gradient-to: rgb(249 115 22 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-pink-500{--tw-gradient-from: #ec4899 var(--tw-gradient-from-position);--tw-gradient-to: rgb(236 72 153 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-purple-500{--tw-gradient-from: #a855f7 var(--tw-gradient-from-position);--tw-gradient-to: rgb(168 85 247 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-red-50\/80{--tw-gradient-from: rgb(254 242 242 / .8) var(--tw-gradient-from-position);--tw-gradient-to: rgb(254 242 242 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-red-500{--tw-gradient-from: #ef4444 var(--tw-gradient-from-position);--tw-gradient-to: rgb(239 68 68 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-rose-500{--tw-gradient-from: #f43f5e var(--tw-gradient-from-position);--tw-gradient-to: rgb(244 63 94 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-slate-50{--tw-gradient-from: #f8fafc var(--tw-gradient-from-position);--tw-gradient-to: rgb(248 250 252 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-slate-500{--tw-gradient-from: #64748b var(--tw-gradient-from-position);--tw-gradient-to: rgb(100 116 139 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-teal-500{--tw-gradient-from: #14b8a6 var(--tw-gradient-from-position);--tw-gradient-to: rgb(20 184 166 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-transparent{--tw-gradient-from: transparent var(--tw-gradient-from-position);--tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-100{--tw-gradient-from: #ede9fe var(--tw-gradient-from-position);--tw-gradient-to: rgb(237 233 254 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-50{--tw-gradient-from: #f5f3ff var(--tw-gradient-from-position);--tw-gradient-to: rgb(245 243 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-500{--tw-gradient-from: #8b5cf6 var(--tw-gradient-from-position);--tw-gradient-to: rgb(139 92 246 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.via-accent{--tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--color-accent) var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-indigo-500{--tw-gradient-to: rgb(99 102 241 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #6366f1 var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-surface{--tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--color-surface) var(--tw-gradient-via-position), var(--tw-gradient-to)}.to-accent-dark{--tw-gradient-to: var(--color-accent-dark) var(--tw-gradient-to-position)}.to-accent-light{--tw-gradient-to: var(--color-accent-light) var(--tw-gradient-to-position)}.to-amber-600{--tw-gradient-to: #d97706 var(--tw-gradient-to-position)}.to-blue-600{--tw-gradient-to: #2563eb var(--tw-gradient-to-position)}.to-cyan-600{--tw-gradient-to: #0891b2 var(--tw-gradient-to-position)}.to-emerald-600{--tw-gradient-to: #059669 var(--tw-gradient-to-position)}.to-fuchsia-600{--tw-gradient-to: #c026d3 var(--tw-gradient-to-position)}.to-green-600{--tw-gradient-to: #16a34a var(--tw-gradient-to-position)}.to-indigo-100{--tw-gradient-to: #e0e7ff var(--tw-gradient-to-position)}.to-indigo-50{--tw-gradient-to: #eef2ff var(--tw-gradient-to-position)}.to-indigo-600{--tw-gradient-to: #4f46e5 var(--tw-gradient-to-position)}.to-orange-100{--tw-gradient-to: #ffedd5 var(--tw-gradient-to-position)}.to-orange-600{--tw-gradient-to: #ea580c var(--tw-gradient-to-position)}.to-pink-600{--tw-gradient-to: #db2777 var(--tw-gradient-to-position)}.to-purple-100{--tw-gradient-to: #f3e8ff var(--tw-gradient-to-position)}.to-purple-600{--tw-gradient-to: #9333ea var(--tw-gradient-to-position)}.to-red-600{--tw-gradient-to: #dc2626 var(--tw-gradient-to-position)}.to-rose-600{--tw-gradient-to: #e11d48 var(--tw-gradient-to-position)}.to-slate-700{--tw-gradient-to: #334155 var(--tw-gradient-to-position)}.to-surface{--tw-gradient-to: var(--color-surface) var(--tw-gradient-to-position)}.to-teal-50\/20{--tw-gradient-to: rgb(240 253 250 / .2) var(--tw-gradient-to-position)}.to-teal-600{--tw-gradient-to: #0d9488 var(--tw-gradient-to-position)}.to-transparent{--tw-gradient-to: transparent var(--tw-gradient-to-position)}.to-violet-50\/20{--tw-gradient-to: rgb(245 243 255 / .2) var(--tw-gradient-to-position)}.to-violet-600{--tw-gradient-to: #7c3aed var(--tw-gradient-to-position)}.to-white{--tw-gradient-to: #fff var(--tw-gradient-to-position)}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.p-0{padding:0}.p-0\.5{padding:.125rem}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-3{padding:.75rem}.p-3\.5{padding:.875rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.\!px-0{padding-left:0!important;padding-right:0!important}.px-0\.5{padding-left:.125rem;padding-right:.125rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-3\.5{padding-left:.875rem;padding-right:.875rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-14{padding-top:3.5rem;padding-bottom:3.5rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-3\.5{padding-top:.875rem;padding-bottom:.875rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.py-px{padding-top:1px;padding-bottom:1px}.pb-0{padding-bottom:0}.pb-1{padding-bottom:.25rem}.pb-1\.5{padding-bottom:.375rem}.pb-2{padding-bottom:.5rem}.pb-2\.5{padding-bottom:.625rem}.pb-3{padding-bottom:.75rem}.pb-4{padding-bottom:1rem}.pb-5{padding-bottom:1.25rem}.pb-6{padding-bottom:1.5rem}.pb-8{padding-bottom:2rem}.pb-px{padding-bottom:1px}.pl-6{padding-left:1.5rem}.pl-7{padding-left:1.75rem}.pl-8{padding-left:2rem}.pr-0\.5{padding-right:.125rem}.pr-1{padding-right:.25rem}.pr-2{padding-right:.5rem}.pr-3{padding-right:.75rem}.pr-4{padding-right:1rem}.pr-8{padding-right:2rem}.pt-0\.5{padding-top:.125rem}.pt-1{padding-top:.25rem}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-6{padding-top:1.5rem}.pt-8{padding-top:2rem}.pt-\[15vh\]{padding-top:15vh}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-mono{font-family:JetBrains Mono,Fira Code,Consolas,monospace}.font-sans{font-family:Inter,system-ui,-apple-system,sans-serif}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[20px\]{font-size:20px}.text-\[7px\]{font-size:7px}.text-\[8px\]{font-size:8px}.text-\[9\.5px\]{font-size:9.5px}.text-\[9px\]{font-size:9px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-black{font-weight:900}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.capitalize{text-transform:capitalize}.normal-case{text-transform:none}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing: tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.leading-snug{line-height:1.375}.leading-tight{line-height:1.25}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.tracking-widest{letter-spacing:.1em}.text-\[\#cdd6f4\]{--tw-text-opacity: 1;color:rgb(205 214 244 / var(--tw-text-opacity, 1))}.text-accent{color:var(--color-accent)}.text-amber-400{--tw-text-opacity: 1;color:rgb(251 191 36 / var(--tw-text-opacity, 1))}.text-amber-500{--tw-text-opacity: 1;color:rgb(245 158 11 / var(--tw-text-opacity, 1))}.text-amber-600{--tw-text-opacity: 1;color:rgb(217 119 6 / var(--tw-text-opacity, 1))}.text-amber-700{--tw-text-opacity: 1;color:rgb(180 83 9 / var(--tw-text-opacity, 1))}.text-amber-800{--tw-text-opacity: 1;color:rgb(146 64 14 / var(--tw-text-opacity, 1))}.text-amber-900{--tw-text-opacity: 1;color:rgb(120 53 15 / var(--tw-text-opacity, 1))}.text-blue-400{--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.text-blue-500{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity, 1))}.text-blue-600{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.text-blue-700{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.text-content{color:var(--color-text-primary)}.text-content-secondary{color:var(--color-text-secondary)}.text-content-tertiary{color:var(--color-text-tertiary)}.text-emerald-300{--tw-text-opacity: 1;color:rgb(110 231 183 / var(--tw-text-opacity, 1))}.text-emerald-400{--tw-text-opacity: 1;color:rgb(52 211 153 / var(--tw-text-opacity, 1))}.text-emerald-400\/70{color:#34d399b3}.text-emerald-500{--tw-text-opacity: 1;color:rgb(16 185 129 / var(--tw-text-opacity, 1))}.text-emerald-600{--tw-text-opacity: 1;color:rgb(5 150 105 / var(--tw-text-opacity, 1))}.text-emerald-700{--tw-text-opacity: 1;color:rgb(4 120 87 / var(--tw-text-opacity, 1))}.text-emerald-800{--tw-text-opacity: 1;color:rgb(6 95 70 / var(--tw-text-opacity, 1))}.text-green-500{--tw-text-opacity: 1;color:rgb(34 197 94 / var(--tw-text-opacity, 1))}.text-green-600{--tw-text-opacity: 1;color:rgb(22 163 74 / var(--tw-text-opacity, 1))}.text-green-700{--tw-text-opacity: 1;color:rgb(21 128 61 / var(--tw-text-opacity, 1))}.text-indigo-300{--tw-text-opacity: 1;color:rgb(165 180 252 / var(--tw-text-opacity, 1))}.text-indigo-400{--tw-text-opacity: 1;color:rgb(129 140 248 / var(--tw-text-opacity, 1))}.text-indigo-500{--tw-text-opacity: 1;color:rgb(99 102 241 / var(--tw-text-opacity, 1))}.text-indigo-600{--tw-text-opacity: 1;color:rgb(79 70 229 / var(--tw-text-opacity, 1))}.text-indigo-700{--tw-text-opacity: 1;color:rgb(67 56 202 / var(--tw-text-opacity, 1))}.text-indigo-900{--tw-text-opacity: 1;color:rgb(49 46 129 / var(--tw-text-opacity, 1))}.text-orange-500{--tw-text-opacity: 1;color:rgb(249 115 22 / var(--tw-text-opacity, 1))}.text-orange-600{--tw-text-opacity: 1;color:rgb(234 88 12 / var(--tw-text-opacity, 1))}.text-orange-700{--tw-text-opacity: 1;color:rgb(194 65 12 / var(--tw-text-opacity, 1))}.text-pink-400{--tw-text-opacity: 1;color:rgb(244 114 182 / var(--tw-text-opacity, 1))}.text-purple-400{--tw-text-opacity: 1;color:rgb(192 132 252 / var(--tw-text-opacity, 1))}.text-purple-500{--tw-text-opacity: 1;color:rgb(168 85 247 / var(--tw-text-opacity, 1))}.text-purple-600{--tw-text-opacity: 1;color:rgb(147 51 234 / var(--tw-text-opacity, 1))}.text-purple-700{--tw-text-opacity: 1;color:rgb(126 34 206 / var(--tw-text-opacity, 1))}.text-purple-800{--tw-text-opacity: 1;color:rgb(107 33 168 / var(--tw-text-opacity, 1))}.text-red-300{--tw-text-opacity: 1;color:rgb(252 165 165 / var(--tw-text-opacity, 1))}.text-red-400{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.text-red-400\/70{color:#f87171b3}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.text-red-600{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.text-red-700{--tw-text-opacity: 1;color:rgb(185 28 28 / var(--tw-text-opacity, 1))}.text-red-800{--tw-text-opacity: 1;color:rgb(153 27 27 / var(--tw-text-opacity, 1))}.text-rose-400{--tw-text-opacity: 1;color:rgb(251 113 133 / var(--tw-text-opacity, 1))}.text-rose-500{--tw-text-opacity: 1;color:rgb(244 63 94 / var(--tw-text-opacity, 1))}.text-slate-100{--tw-text-opacity: 1;color:rgb(241 245 249 / var(--tw-text-opacity, 1))}.text-slate-200{--tw-text-opacity: 1;color:rgb(226 232 240 / var(--tw-text-opacity, 1))}.text-slate-300{--tw-text-opacity: 1;color:rgb(203 213 225 / var(--tw-text-opacity, 1))}.text-slate-400{--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity, 1))}.text-slate-500{--tw-text-opacity: 1;color:rgb(100 116 139 / var(--tw-text-opacity, 1))}.text-slate-600{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity, 1))}.text-surface-inset{color:var(--color-surface-inset)}.text-teal-500{--tw-text-opacity: 1;color:rgb(20 184 166 / var(--tw-text-opacity, 1))}.text-teal-600{--tw-text-opacity: 1;color:rgb(13 148 136 / var(--tw-text-opacity, 1))}.text-teal-700{--tw-text-opacity: 1;color:rgb(15 118 110 / var(--tw-text-opacity, 1))}.text-violet-400{--tw-text-opacity: 1;color:rgb(167 139 250 / var(--tw-text-opacity, 1))}.text-violet-500{--tw-text-opacity: 1;color:rgb(139 92 246 / var(--tw-text-opacity, 1))}.text-violet-600{--tw-text-opacity: 1;color:rgb(124 58 237 / var(--tw-text-opacity, 1))}.text-violet-700{--tw-text-opacity: 1;color:rgb(109 40 217 / var(--tw-text-opacity, 1))}.text-violet-800{--tw-text-opacity: 1;color:rgb(91 33 182 / var(--tw-text-opacity, 1))}.text-violet-900{--tw-text-opacity: 1;color:rgb(76 29 149 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-white\/30{color:#ffffff4d}.text-white\/40{color:#fff6}.text-white\/70{color:#ffffffb3}.text-white\/80{color:#fffc}.text-yellow-700{--tw-text-opacity: 1;color:rgb(161 98 7 / var(--tw-text-opacity, 1))}.placeholder-content-tertiary::-moz-placeholder{color:var(--color-text-tertiary)}.placeholder-content-tertiary::placeholder{color:var(--color-text-tertiary)}.accent-amber-600{accent-color:#d97706}.opacity-0{opacity:0}.opacity-10{opacity:.1}.opacity-100{opacity:1}.opacity-20{opacity:.2}.opacity-30{opacity:.3}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-80{opacity:.8}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-card{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .06), 0 2px 8px -2px rgb(0 0 0 / .04);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 2px 8px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-elevated{--tw-shadow: 0 4px 16px -2px rgb(0 0 0 / .08), 0 2px 6px -2px rgb(0 0 0 / .04);--tw-shadow-colored: 0 4px 16px -2px var(--tw-shadow-color), 0 2px 6px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-modal{--tw-shadow: 0 16px 48px -8px rgb(0 0 0 / .12), 0 4px 16px -4px rgb(0 0 0 / .06);--tw-shadow-colored: 0 16px 48px -8px var(--tw-shadow-color), 0 4px 16px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xs{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .03);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-amber-500\/20{--tw-shadow-color: rgb(245 158 11 / .2);--tw-shadow: var(--tw-shadow-colored)}.shadow-blue-100\/50{--tw-shadow-color: rgb(219 234 254 / .5);--tw-shadow: var(--tw-shadow-colored)}.shadow-blue-500\/20{--tw-shadow-color: rgb(59 130 246 / .2);--tw-shadow: var(--tw-shadow-colored)}.shadow-emerald-500\/20{--tw-shadow-color: rgb(16 185 129 / .2);--tw-shadow: var(--tw-shadow-colored)}.shadow-green-100\/50{--tw-shadow-color: rgb(220 252 231 / .5);--tw-shadow: var(--tw-shadow-colored)}.shadow-indigo-500\/20{--tw-shadow-color: rgb(99 102 241 / .2);--tw-shadow: var(--tw-shadow-colored)}.shadow-orange-100\/50{--tw-shadow-color: rgb(255 237 213 / .5);--tw-shadow: var(--tw-shadow-colored)}.shadow-orange-500\/20{--tw-shadow-color: rgb(249 115 22 / .2);--tw-shadow: var(--tw-shadow-colored)}.shadow-pink-500\/20{--tw-shadow-color: rgb(236 72 153 / .2);--tw-shadow: var(--tw-shadow-colored)}.shadow-purple-100\/50{--tw-shadow-color: rgb(243 232 255 / .5);--tw-shadow: var(--tw-shadow-colored)}.shadow-purple-500\/20{--tw-shadow-color: rgb(168 85 247 / .2);--tw-shadow: var(--tw-shadow-colored)}.shadow-red-100\/50{--tw-shadow-color: rgb(254 226 226 / .5);--tw-shadow: var(--tw-shadow-colored)}.shadow-rose-100\/50{--tw-shadow-color: rgb(255 228 230 / .5);--tw-shadow: var(--tw-shadow-colored)}.shadow-slate-500\/20{--tw-shadow-color: rgb(100 116 139 / .2);--tw-shadow: var(--tw-shadow-colored)}.shadow-teal-100\/50{--tw-shadow-color: rgb(204 251 241 / .5);--tw-shadow: var(--tw-shadow-colored)}.shadow-teal-500\/20{--tw-shadow-color: rgb(20 184 166 / .2);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-500\/20{--tw-shadow-color: rgb(139 92 246 / .2);--tw-shadow: var(--tw-shadow-colored)}.outline-none{outline:2px solid transparent;outline-offset:2px}.ring{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-1{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-2{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-inset{--tw-ring-inset: inset}.ring-accent{--tw-ring-color: var(--color-accent)}.ring-amber-200{--tw-ring-opacity: 1;--tw-ring-color: rgb(253 230 138 / var(--tw-ring-opacity, 1))}.ring-amber-300{--tw-ring-opacity: 1;--tw-ring-color: rgb(252 211 77 / var(--tw-ring-opacity, 1))}.ring-amber-500\/20{--tw-ring-color: rgb(245 158 11 / .2)}.ring-blue-200{--tw-ring-opacity: 1;--tw-ring-color: rgb(191 219 254 / var(--tw-ring-opacity, 1))}.ring-blue-500\/20{--tw-ring-color: rgb(59 130 246 / .2)}.ring-border{--tw-ring-color: var(--color-border)}.ring-emerald-200{--tw-ring-opacity: 1;--tw-ring-color: rgb(167 243 208 / var(--tw-ring-opacity, 1))}.ring-emerald-300{--tw-ring-opacity: 1;--tw-ring-color: rgb(110 231 183 / var(--tw-ring-opacity, 1))}.ring-emerald-500\/20{--tw-ring-color: rgb(16 185 129 / .2)}.ring-indigo-200{--tw-ring-opacity: 1;--tw-ring-color: rgb(199 210 254 / var(--tw-ring-opacity, 1))}.ring-orange-500\/20{--tw-ring-color: rgb(249 115 22 / .2)}.ring-purple-200{--tw-ring-opacity: 1;--tw-ring-color: rgb(233 213 255 / var(--tw-ring-opacity, 1))}.ring-red-200{--tw-ring-opacity: 1;--tw-ring-color: rgb(254 202 202 / var(--tw-ring-opacity, 1))}.ring-red-300{--tw-ring-opacity: 1;--tw-ring-color: rgb(252 165 165 / var(--tw-ring-opacity, 1))}.ring-red-500\/20{--tw-ring-color: rgb(239 68 68 / .2)}.ring-slate-500\/20{--tw-ring-color: rgb(100 116 139 / .2)}.ring-slate-600{--tw-ring-opacity: 1;--tw-ring-color: rgb(71 85 105 / var(--tw-ring-opacity, 1))}.ring-surface{--tw-ring-color: var(--color-surface)}.ring-teal-200{--tw-ring-opacity: 1;--tw-ring-color: rgb(153 246 228 / var(--tw-ring-opacity, 1))}.ring-teal-300{--tw-ring-opacity: 1;--tw-ring-color: rgb(94 234 212 / var(--tw-ring-opacity, 1))}.ring-transparent{--tw-ring-color: transparent}.ring-violet-200{--tw-ring-opacity: 1;--tw-ring-color: rgb(221 214 254 / var(--tw-ring-opacity, 1))}.ring-violet-300{--tw-ring-opacity: 1;--tw-ring-color: rgb(196 181 253 / var(--tw-ring-opacity, 1))}.ring-violet-400{--tw-ring-opacity: 1;--tw-ring-color: rgb(167 139 250 / var(--tw-ring-opacity, 1))}.ring-violet-500\/20{--tw-ring-color: rgb(139 92 246 / .2)}.ring-white\/5{--tw-ring-color: rgb(255 255 255 / .05)}.ring-white\/50{--tw-ring-color: rgb(255 255 255 / .5)}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-\[1px\]{--tw-backdrop-blur: blur(1px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-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-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-shadow{transition-property:box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-100{transition-duration:.1s}.duration-1000{transition-duration:1s}.duration-150{transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.duration-700{transition-duration:.7s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}:root{--color-accent: #6366f1;--color-accent-dark: #4f46e5;--color-accent-light: #818cf8;--color-accent-muted: rgba(99, 102, 241, .15);--color-surface: #ffffff;--color-surface-raised: #ffffff;--color-surface-overlay: #ffffff;--color-surface-inset: #f8fafc;--color-background: #f1f5f9;--color-sidebar: #0f0e1a;--color-sidebar-hover: rgba(99, 102, 241, .12);--color-sidebar-active: rgba(99, 102, 241, .2);--color-border: #e2e8f0;--color-border-strong: #cbd5e1;--color-border-muted: #f1f5f9;--color-text-primary: #0f172a;--color-text-secondary: #475569;--color-text-tertiary: #94a3b8;--color-text-inverse: #ffffff;--tw-slate-50: #f8fafc;--tw-slate-100: #f1f5f9;--tw-slate-200: #e2e8f0;--tw-slate-300: #cbd5e1;--tw-slate-400: #94a3b8;--tw-slate-500: #64748b;--tw-slate-600: #475569;--tw-slate-700: #334155;--tw-slate-800: #1e293b;--tw-slate-900: #0f172a;--scrollbar-thumb: #cbd5e1;--scrollbar-thumb-hover: #94a3b8;color-scheme:light}.dark{--color-accent: #818cf8;--color-accent-dark: #6366f1;--color-accent-light: #a5b4fc;--color-accent-muted: rgba(129, 140, 248, .12);--color-surface: #1a1a2e;--color-surface-raised: #1e1e36;--color-surface-overlay: #222240;--color-surface-inset: #141425;--color-background: #0f0f1e;--color-sidebar: #0a0a18;--color-sidebar-hover: rgba(129, 140, 248, .1);--color-sidebar-active: rgba(129, 140, 248, .18);--color-border: #2a2a4a;--color-border-strong: #3a3a5c;--color-border-muted: #1e1e36;--color-text-primary: #f1f5f9;--color-text-secondary: #94a3b8;--color-text-tertiary: #64748b;--color-text-inverse: #0f172a;--tw-slate-50: #0f172a;--tw-slate-100: #1e293b;--tw-slate-200: #334155;--tw-slate-300: #475569;--tw-slate-400: #64748b;--tw-slate-500: #94a3b8;--tw-slate-600: #cbd5e1;--tw-slate-700: #e2e8f0;--tw-slate-800: #f1f5f9;--tw-slate-900: #f8fafc;--scrollbar-thumb: #3a3a5c;--scrollbar-thumb-hover: #4a4a6c;color-scheme:dark}.dark .bg-white{background-color:var(--color-surface)!important}.dark .bg-slate-50{background-color:var(--color-surface-inset)!important}.dark .bg-slate-100{background-color:var(--tw-slate-100)!important}.dark .border-white{border-color:var(--color-border)!important}.dark .border-slate-100{border-color:var(--color-border-muted)!important}.dark .border-slate-200{border-color:var(--color-border)!important}.dark .border-slate-300{border-color:var(--color-border-strong)!important}.dark .divide-slate-100>:not([hidden])~:not([hidden]){border-color:var(--color-border-muted)!important}.dark .divide-slate-200>:not([hidden])~:not([hidden]){border-color:var(--color-border)!important}.dark .text-slate-300{color:var(--tw-slate-300)!important}.dark .text-slate-400{color:var(--tw-slate-400)!important}.dark .text-slate-500{color:var(--tw-slate-500)!important}.dark .text-slate-600{color:var(--tw-slate-600)!important}.dark .text-slate-700{color:var(--tw-slate-700)!important}.dark .text-slate-800{color:var(--tw-slate-800)!important}.dark .text-slate-900{color:var(--tw-slate-900)!important}.dark .placeholder-slate-300::-moz-placeholder{color:var(--tw-slate-300)!important}.dark .placeholder-slate-300::placeholder{color:var(--tw-slate-300)!important}.dark .placeholder-slate-400::-moz-placeholder{color:var(--tw-slate-400)!important}.dark .placeholder-slate-400::placeholder{color:var(--tw-slate-400)!important}.dark .hover\:bg-slate-50:hover{background-color:var(--color-surface-inset)!important}.dark .hover\:bg-slate-100:hover{background-color:var(--tw-slate-100)!important}.dark .hover\:bg-slate-200:hover{background-color:var(--tw-slate-200)!important}.dark .focus\:ring-slate-200:focus{--tw-ring-color: var(--color-border) !important}.dark input,.dark textarea,.dark select{background-color:var(--color-surface-inset)!important;border-color:var(--color-border)!important;color:var(--color-text-primary)!important}.dark input::-moz-placeholder,.dark textarea::-moz-placeholder{color:var(--color-text-tertiary)!important}.dark input::placeholder,.dark textarea::placeholder{color:var(--color-text-tertiary)!important}.dark pre,.dark code{background-color:var(--color-surface-inset)!important;color:var(--tw-slate-700)!important}.dark .bg-green-50{background-color:#22c55e14!important}.dark .bg-green-100{background-color:#22c55e24!important}.dark .border-green-200{border-color:#22c55e33!important}.dark .text-green-600{color:#4ade80!important}.dark .text-green-700{color:#86efac!important}.dark .text-green-800{color:#bbf7d0!important}.dark .bg-red-50{background-color:#ef444414!important}.dark .bg-red-100{background-color:#ef444424!important}.dark .border-red-200{border-color:#ef444433!important}.dark .border-red-300{border-color:#ef44444d!important}.dark .text-red-500{color:#f87171!important}.dark .text-red-600{color:#fca5a5!important}.dark .text-red-700{color:#fecaca!important}.dark .text-red-800{color:#fee2e2!important}.dark .bg-blue-50{background-color:#3b82f614!important}.dark .bg-blue-100{background-color:#3b82f624!important}.dark .border-blue-200{border-color:#3b82f633!important}.dark .text-blue-500{color:#60a5fa!important}.dark .text-blue-600{color:#93bbfd!important}.dark .text-blue-700{color:#bfdbfe!important}.dark .bg-amber-50{background-color:#d9770614!important}.dark .bg-amber-100{background-color:#d9770624!important}.dark .border-amber-200{border-color:#d9770633!important}.dark .text-amber-500{color:#fbbf24!important}.dark .text-amber-700{color:#fde68a!important}.dark .bg-yellow-100{background-color:#ca8a0424!important}.dark .text-yellow-700{color:#fde68a!important}.dark .bg-orange-50{background-color:#ea580c14!important}.dark .bg-orange-100{background-color:#ea580c24!important}.dark .border-orange-200{border-color:#ea580c33!important}.dark .border-orange-300{border-color:#ea580c4d!important}.dark .text-orange-600{color:#fdba74!important}.dark .text-orange-700{color:#fed7aa!important}.dark .bg-purple-50{background-color:#9333ea14!important}.dark .bg-purple-100{background-color:#9333ea24!important}.dark .border-purple-200{border-color:#9333ea33!important}.dark .text-purple-500{color:#c084fc!important}.dark .text-purple-600{color:#d8b4fe!important}.dark .text-purple-700{color:#e9d5ff!important}.dark .hover\:bg-purple-50:hover{background-color:#9333ea1a!important}.dark .hover\:bg-purple-200:hover{background-color:#9333ea33!important}.dark .bg-teal-50{background-color:#0d948814!important}.dark .border-teal-200{border-color:#0d948833!important}.dark .text-teal-400{color:#2dd4bf!important}.dark .text-teal-600{color:#5eead4!important}.dark .bg-rose-50{background-color:#f43f5e14!important}.dark .border-rose-200{border-color:#f43f5e33!important}.dark .text-rose-400{color:#fb7185!important}.dark .text-rose-500{color:#fda4af!important}.dark .bg-cyan-50{background-color:#06b6d414!important}.dark .bg-indigo-50{background-color:#6366f114!important}.dark .bg-indigo-100{background-color:#6366f124!important}.dark .border-indigo-200{border-color:#6366f133!important}.dark .text-indigo-500{color:#a5b4fc!important}.dark .text-indigo-600{color:#c7d2fe!important}.dark .bg-emerald-50{background-color:#10b98114!important}.dark .bg-emerald-100{background-color:#10b98124!important}.dark .from-accent\/5{--tw-gradient-from: rgba(129, 140, 248, .06) !important}.dark .to-blue-50{--tw-gradient-to: rgba(59, 130, 246, .04) !important}.dark .from-green-50{--tw-gradient-from: rgba(34, 197, 94, .04) !important}.dark .from-slate-50{--tw-gradient-from: var(--color-surface-inset) !important}.dark .to-white{--tw-gradient-to: var(--color-surface) !important}.dark .from-white{--tw-gradient-from: var(--color-surface) !important}.dark .bg-white\/70{background-color:#1a1a2eb3!important}.dark .bg-white\/80{background-color:#1a1a2ecc!important}.dark .bg-white\/60{background-color:#1a1a2e99!important}.dark .border-white\/80{border-color:#2a2a4acc!important}.dark .border-white\/10{border-color:#ffffff14!important}.dark .shadow-sm{--tw-shadow-color: rgba(0, 0, 0, .25) !important}.dark .shadow-lg{--tw-shadow-color: rgba(0, 0, 0, .35) !important}.dark .shadow-2xl{--tw-shadow-color: rgba(0, 0, 0, .45) !important}.placeholder\:text-content-tertiary::-moz-placeholder{color:var(--color-text-tertiary)}.placeholder\:text-content-tertiary::placeholder{color:var(--color-text-tertiary)}.first\:border-0:first-child{border-width:0px}.last\:border-0:last-child{border-width:0px}.hover\:border-border:hover{border-color:var(--color-border)}.hover\:border-border-strong:hover{border-color:var(--color-border-strong)}.hover\:border-slate-300:hover{--tw-border-opacity: 1;border-color:rgb(203 213 225 / var(--tw-border-opacity, 1))}.hover\:border-violet-200:hover{--tw-border-opacity: 1;border-color:rgb(221 214 254 / var(--tw-border-opacity, 1))}.hover\:bg-accent:hover{background-color:var(--color-accent)}.hover\:bg-accent-dark:hover{background-color:var(--color-accent-dark)}.hover\:bg-amber-200:hover{--tw-bg-opacity: 1;background-color:rgb(253 230 138 / var(--tw-bg-opacity, 1))}.hover\:bg-amber-50:hover{--tw-bg-opacity: 1;background-color:rgb(255 251 235 / var(--tw-bg-opacity, 1))}.hover\:bg-amber-600:hover{--tw-bg-opacity: 1;background-color:rgb(217 119 6 / var(--tw-bg-opacity, 1))}.hover\:bg-blue-100:hover{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1))}.hover\:bg-blue-50:hover{--tw-bg-opacity: 1;background-color:rgb(239 246 255 / var(--tw-bg-opacity, 1))}.hover\:bg-emerald-100:hover{--tw-bg-opacity: 1;background-color:rgb(209 250 229 / var(--tw-bg-opacity, 1))}.hover\:bg-emerald-50:hover{--tw-bg-opacity: 1;background-color:rgb(236 253 245 / var(--tw-bg-opacity, 1))}.hover\:bg-emerald-700:hover{--tw-bg-opacity: 1;background-color:rgb(4 120 87 / var(--tw-bg-opacity, 1))}.hover\:bg-green-700:hover{--tw-bg-opacity: 1;background-color:rgb(21 128 61 / var(--tw-bg-opacity, 1))}.hover\:bg-indigo-50:hover{--tw-bg-opacity: 1;background-color:rgb(238 242 255 / var(--tw-bg-opacity, 1))}.hover\:bg-indigo-700:hover{--tw-bg-opacity: 1;background-color:rgb(67 56 202 / var(--tw-bg-opacity, 1))}.hover\:bg-purple-200:hover{--tw-bg-opacity: 1;background-color:rgb(233 213 255 / var(--tw-bg-opacity, 1))}.hover\:bg-purple-50:hover{--tw-bg-opacity: 1;background-color:rgb(250 245 255 / var(--tw-bg-opacity, 1))}.hover\:bg-purple-700:hover{--tw-bg-opacity: 1;background-color:rgb(126 34 206 / var(--tw-bg-opacity, 1))}.hover\:bg-red-100:hover{--tw-bg-opacity: 1;background-color:rgb(254 226 226 / var(--tw-bg-opacity, 1))}.hover\:bg-red-50:hover{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.hover\:bg-red-50\/50:hover{background-color:#fef2f280}.hover\:bg-slate-200:hover{--tw-bg-opacity: 1;background-color:rgb(226 232 240 / var(--tw-bg-opacity, 1))}.hover\:bg-slate-600:hover{--tw-bg-opacity: 1;background-color:rgb(71 85 105 / var(--tw-bg-opacity, 1))}.hover\:bg-slate-700:hover{--tw-bg-opacity: 1;background-color:rgb(51 65 85 / var(--tw-bg-opacity, 1))}.hover\:bg-slate-800:hover{--tw-bg-opacity: 1;background-color:rgb(30 41 59 / var(--tw-bg-opacity, 1))}.hover\:bg-surface-inset:hover{background-color:var(--color-surface-inset)}.hover\:bg-surface-overlay:hover{background-color:var(--color-surface-overlay)}.hover\:bg-teal-50:hover{--tw-bg-opacity: 1;background-color:rgb(240 253 250 / var(--tw-bg-opacity, 1))}.hover\:bg-teal-700:hover{--tw-bg-opacity: 1;background-color:rgb(15 118 110 / var(--tw-bg-opacity, 1))}.hover\:bg-violet-100:hover{--tw-bg-opacity: 1;background-color:rgb(237 233 254 / var(--tw-bg-opacity, 1))}.hover\:bg-violet-50:hover{--tw-bg-opacity: 1;background-color:rgb(245 243 255 / var(--tw-bg-opacity, 1))}.hover\:bg-violet-700:hover{--tw-bg-opacity: 1;background-color:rgb(109 40 217 / var(--tw-bg-opacity, 1))}.hover\:bg-white\/10:hover{background-color:#ffffff1a}.hover\:bg-white\/\[0\.02\]:hover{background-color:#ffffff05}.hover\:text-accent:hover{color:var(--color-accent)}.hover\:text-accent-dark:hover{color:var(--color-accent-dark)}.hover\:text-accent-light:hover{color:var(--color-accent-light)}.hover\:text-amber-600:hover{--tw-text-opacity: 1;color:rgb(217 119 6 / var(--tw-text-opacity, 1))}.hover\:text-blue-500:hover{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity, 1))}.hover\:text-content:hover{color:var(--color-text-primary)}.hover\:text-content-secondary:hover{color:var(--color-text-secondary)}.hover\:text-indigo-700:hover{--tw-text-opacity: 1;color:rgb(67 56 202 / var(--tw-text-opacity, 1))}.hover\:text-red-400:hover{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.hover\:text-red-500:hover{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.hover\:text-slate-300:hover{--tw-text-opacity: 1;color:rgb(203 213 225 / var(--tw-text-opacity, 1))}.hover\:text-violet-800:hover{--tw-text-opacity: 1;color:rgb(91 33 182 / var(--tw-text-opacity, 1))}.hover\:text-white:hover{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.hover\:text-white\/70:hover{color:#ffffffb3}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-80:hover{opacity:.8}.hover\:opacity-95:hover{opacity:.95}.hover\:shadow-card:hover{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .06), 0 2px 8px -2px rgb(0 0 0 / .04);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 2px 8px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:shadow-md:hover{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:shadow-sm:hover{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:ring-amber-200:hover{--tw-ring-opacity: 1;--tw-ring-color: rgb(253 230 138 / var(--tw-ring-opacity, 1))}.hover\:ring-border:hover{--tw-ring-color: var(--color-border)}.hover\:brightness-110:hover{--tw-brightness: brightness(1.1);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)}.focus\:border-accent:focus{border-color:var(--color-accent)}.focus\:border-red-500:focus{--tw-border-opacity: 1;border-color:rgb(239 68 68 / var(--tw-border-opacity, 1))}.focus\:border-violet-400:focus{--tw-border-opacity: 1;border-color:rgb(167 139 250 / var(--tw-border-opacity, 1))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-1:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-accent:focus{--tw-ring-color: var(--color-accent)}.focus\:ring-emerald-300:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(110 231 183 / var(--tw-ring-opacity, 1))}.focus\:ring-green-300:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(134 239 172 / var(--tw-ring-opacity, 1))}.focus\:ring-indigo-300:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(165 180 252 / var(--tw-ring-opacity, 1))}.focus\:ring-red-200:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(254 202 202 / var(--tw-ring-opacity, 1))}.focus\:ring-red-300:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(252 165 165 / var(--tw-ring-opacity, 1))}.focus\:ring-violet-300:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(196 181 253 / var(--tw-ring-opacity, 1))}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-accent:focus-visible{--tw-ring-color: var(--color-accent)}.focus-visible\:ring-emerald-500:focus-visible{--tw-ring-opacity: 1;--tw-ring-color: rgb(16 185 129 / var(--tw-ring-opacity, 1))}.focus-visible\:ring-red-500:focus-visible{--tw-ring-opacity: 1;--tw-ring-color: rgb(239 68 68 / var(--tw-ring-opacity, 1))}.focus-visible\:ring-offset-1:focus-visible{--tw-ring-offset-width: 1px}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width: 2px}.active\:cursor-grabbing:active{cursor:grabbing}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.group:hover .group-hover\:text-accent{color:var(--color-accent)}.group:hover .group-hover\:text-content-tertiary{color:var(--color-text-tertiary)}.group:hover .group-hover\:text-violet-700{--tw-text-opacity: 1;color:rgb(109 40 217 / var(--tw-text-opacity, 1))}.group:hover .group-hover\:text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.group:hover .group-hover\:opacity-100{opacity:1}.dark\:border-blue-700\/50:is(.dark *){border-color:#1d4ed880}.dark\:border-emerald-700\/50:is(.dark *){border-color:#04785780}.dark\:border-indigo-700\/50:is(.dark *){border-color:#4338ca80}.dark\:border-violet-700:is(.dark *){--tw-border-opacity: 1;border-color:rgb(109 40 217 / var(--tw-border-opacity, 1))}.dark\:bg-amber-900\/20:is(.dark *){background-color:#78350f33}.dark\:bg-amber-900\/30:is(.dark *){background-color:#78350f4d}.dark\:bg-blue-900\/20:is(.dark *){background-color:#1e3a8a33}.dark\:bg-blue-900\/30:is(.dark *){background-color:#1e3a8a4d}.dark\:bg-emerald-900\/20:is(.dark *){background-color:#064e3b33}.dark\:bg-emerald-900\/30:is(.dark *){background-color:#064e3b4d}.dark\:bg-indigo-900\/20:is(.dark *){background-color:#312e8133}.dark\:bg-indigo-900\/30:is(.dark *){background-color:#312e814d}.dark\:bg-orange-900\/20:is(.dark *){background-color:#7c2d1233}.dark\:bg-purple-900\/20:is(.dark *){background-color:#581c8733}.dark\:bg-red-900\/20:is(.dark *){background-color:#7f1d1d33}.dark\:bg-teal-900\/20:is(.dark *){background-color:#134e4a33}.dark\:bg-violet-900\/10:is(.dark *){background-color:#4c1d951a}.dark\:bg-violet-900\/20:is(.dark *){background-color:#4c1d9533}.dark\:from-amber-900\/40:is(.dark *){--tw-gradient-from: rgb(120 53 15 / .4) var(--tw-gradient-from-position);--tw-gradient-to: rgb(120 53 15 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.dark\:from-blue-900\/40:is(.dark *){--tw-gradient-from: rgb(30 58 138 / .4) var(--tw-gradient-from-position);--tw-gradient-to: rgb(30 58 138 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.dark\:from-violet-900\/20:is(.dark *){--tw-gradient-from: rgb(76 29 149 / .2) var(--tw-gradient-from-position);--tw-gradient-to: rgb(76 29 149 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.dark\:from-violet-900\/40:is(.dark *){--tw-gradient-from: rgb(76 29 149 / .4) var(--tw-gradient-from-position);--tw-gradient-to: rgb(76 29 149 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.dark\:to-indigo-900\/20:is(.dark *){--tw-gradient-to: rgb(49 46 129 / .2) var(--tw-gradient-to-position)}.dark\:to-indigo-900\/40:is(.dark *){--tw-gradient-to: rgb(49 46 129 / .4) var(--tw-gradient-to-position)}.dark\:to-orange-900\/40:is(.dark *){--tw-gradient-to: rgb(124 45 18 / .4) var(--tw-gradient-to-position)}.dark\:to-purple-900\/40:is(.dark *){--tw-gradient-to: rgb(88 28 135 / .4) var(--tw-gradient-to-position)}.dark\:text-amber-400:is(.dark *){--tw-text-opacity: 1;color:rgb(251 191 36 / var(--tw-text-opacity, 1))}.dark\:text-blue-300:is(.dark *){--tw-text-opacity: 1;color:rgb(147 197 253 / var(--tw-text-opacity, 1))}.dark\:text-blue-400:is(.dark *){--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.dark\:text-emerald-300:is(.dark *){--tw-text-opacity: 1;color:rgb(110 231 183 / var(--tw-text-opacity, 1))}.dark\:text-emerald-400:is(.dark *){--tw-text-opacity: 1;color:rgb(52 211 153 / var(--tw-text-opacity, 1))}.dark\:text-indigo-400:is(.dark *){--tw-text-opacity: 1;color:rgb(129 140 248 / var(--tw-text-opacity, 1))}.dark\:text-indigo-500:is(.dark *){--tw-text-opacity: 1;color:rgb(99 102 241 / var(--tw-text-opacity, 1))}.dark\:text-orange-400:is(.dark *){--tw-text-opacity: 1;color:rgb(251 146 60 / var(--tw-text-opacity, 1))}.dark\:text-purple-400:is(.dark *){--tw-text-opacity: 1;color:rgb(192 132 252 / var(--tw-text-opacity, 1))}.dark\:text-red-400:is(.dark *){--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.dark\:text-teal-400:is(.dark *){--tw-text-opacity: 1;color:rgb(45 212 191 / var(--tw-text-opacity, 1))}.dark\:text-violet-300:is(.dark *){--tw-text-opacity: 1;color:rgb(196 181 253 / var(--tw-text-opacity, 1))}.dark\:text-violet-400:is(.dark *){--tw-text-opacity: 1;color:rgb(167 139 250 / var(--tw-text-opacity, 1))}.dark\:ring-amber-700:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(180 83 9 / var(--tw-ring-opacity, 1))}.dark\:ring-amber-800:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(146 64 14 / var(--tw-ring-opacity, 1))}.dark\:ring-blue-500\/30:is(.dark *){--tw-ring-color: rgb(59 130 246 / .3)}.dark\:ring-blue-700:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(29 78 216 / var(--tw-ring-opacity, 1))}.dark\:ring-blue-800:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(30 64 175 / var(--tw-ring-opacity, 1))}.dark\:ring-emerald-700:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(4 120 87 / var(--tw-ring-opacity, 1))}.dark\:ring-emerald-800:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(6 95 70 / var(--tw-ring-opacity, 1))}.dark\:ring-indigo-800:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(55 48 163 / var(--tw-ring-opacity, 1))}.dark\:ring-orange-500\/30:is(.dark *){--tw-ring-color: rgb(249 115 22 / .3)}.dark\:ring-purple-800:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(107 33 168 / var(--tw-ring-opacity, 1))}.dark\:ring-red-500\/30:is(.dark *){--tw-ring-color: rgb(239 68 68 / .3)}.dark\:ring-red-700:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(185 28 28 / var(--tw-ring-opacity, 1))}.dark\:ring-red-800:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(153 27 27 / var(--tw-ring-opacity, 1))}.dark\:ring-teal-800:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(17 94 89 / var(--tw-ring-opacity, 1))}.dark\:ring-violet-700:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(109 40 217 / var(--tw-ring-opacity, 1))}.dark\:ring-violet-800:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(91 33 182 / var(--tw-ring-opacity, 1))}.dark\:hover\:bg-amber-900\/20:hover:is(.dark *){background-color:#78350f33}.dark\:hover\:bg-amber-900\/40:hover:is(.dark *){background-color:#78350f66}.dark\:hover\:bg-blue-900\/20:hover:is(.dark *){background-color:#1e3a8a33}.dark\:hover\:bg-blue-900\/30:hover:is(.dark *){background-color:#1e3a8a4d}.dark\:hover\:bg-emerald-900\/20:hover:is(.dark *){background-color:#064e3b33}.dark\:hover\:bg-red-900\/20:hover:is(.dark *){background-color:#7f1d1d33}.dark\:hover\:bg-teal-900\/20:hover:is(.dark *){background-color:#134e4a33}.dark\:hover\:bg-violet-900\/20:hover:is(.dark *){background-color:#4c1d9533}.dark\:hover\:bg-violet-900\/30:hover:is(.dark *){background-color:#4c1d954d}.dark\:hover\:text-amber-400:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(251 191 36 / var(--tw-text-opacity, 1))}.dark\:hover\:text-violet-300:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(196 181 253 / var(--tw-text-opacity, 1))}.dark\:hover\:ring-amber-800:hover:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(146 64 14 / var(--tw-ring-opacity, 1))}.dark\:focus\:ring-violet-700:focus:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(109 40 217 / var(--tw-ring-opacity, 1))}@media (min-width: 640px){.sm\:inline{display:inline}.sm\:flex{display:flex}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width: 768px){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width: 1024px){.lg\:relative{position:relative}.lg\:col-span-2{grid-column:span 2 / span 2}.lg\:col-span-3{grid-column:span 3 / span 3}.lg\:block{display:block}.lg\:flex{display:flex}.lg\:hidden{display:none}.lg\:translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}}