@kitn.ai/ui 0.28.0 → 0.29.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/agent-tooling/construct/public.d.ts +15 -0
- package/dist/agent-tooling/construct/schema.d.ts +111 -0
- package/dist/construct-cli.es.js +3 -3
- package/dist/construct.d.ts +5 -0
- package/dist/construct.js +327 -0
- package/dist/core-C8fzo39E.js +1 -12
- package/dist/engine-javascript-C1x7zo1_.js +1 -141
- package/dist/mcp.es.js +1 -1
- package/package.json +16 -16
- package/bin/route.test.js +0 -58
- package/src/agent-tooling/README.md +0 -192
- package/src/agent-tooling/archetypes.ts +0 -205
- package/src/agent-tooling/catalog/README.md +0 -676
- package/src/agent-tooling/catalog/catalog-types.ts +0 -231
- package/src/agent-tooling/catalog/fabrications.ts +0 -96
- package/src/agent-tooling/catalog/invariants.ts +0 -284
- package/src/agent-tooling/catalog/labs-titles.ts +0 -114
- package/src/agent-tooling/catalog/scenarios.ts +0 -87
- package/src/agent-tooling/catalog/surfaces.ts +0 -347
- package/src/agent-tooling/construct/cli-entry.ts +0 -8
- package/src/agent-tooling/construct/cli.ts +0 -147
- package/src/agent-tooling/construct/codegen.ts +0 -1635
- package/src/agent-tooling/construct/construct.v1.schema.json +0 -319
- package/src/agent-tooling/construct/dev.ts +0 -148
- package/src/agent-tooling/construct/fixtures/demo-widget.construct.json +0 -7
- package/src/agent-tooling/construct/fixtures/ops-console.construct.json +0 -44
- package/src/agent-tooling/construct/fixtures/owner-widget.construct.json +0 -32
- package/src/agent-tooling/construct/schema.ts +0 -452
- package/src/agent-tooling/integrations/anthropic.ts +0 -442
- package/src/agent-tooling/integrations/cloudflare.ts +0 -218
- package/src/agent-tooling/integrations/langgraph.ts +0 -133
- package/src/agent-tooling/integrations/mastra.ts +0 -182
- package/src/agent-tooling/integrations/mock.ts +0 -148
- package/src/agent-tooling/integrations/ollama.ts +0 -97
- package/src/agent-tooling/integrations/openai.ts +0 -95
- package/src/agent-tooling/integrations/openrouter.ts +0 -82
- package/src/agent-tooling/integrations/pi.ts +0 -176
- package/src/agent-tooling/integrations/pydantic-ai.ts +0 -108
- package/src/agent-tooling/integrations/vercel-ai-sdk.ts +0 -398
- package/src/agent-tooling/mcp/css-raw.d.ts +0 -12
- package/src/agent-tooling/mcp/manifest.ts +0 -422
- package/src/agent-tooling/mcp/server.ts +0 -116
- package/src/agent-tooling/mcp/stdio.ts +0 -18
- package/src/agent-tooling/mcp/tools/construct.ts +0 -130
- package/src/agent-tooling/mcp/tools/debug.ts +0 -621
- package/src/agent-tooling/mcp/tools/reference.ts +0 -980
- package/src/agent-tooling/mcp/tools/scaffold.ts +0 -6708
- package/src/agent-tooling/mcp/tools/theme.ts +0 -456
- package/src/agent-tooling/mcp/tools/types.ts +0 -14
- package/src/agent-tooling/mcp/validate-args.ts +0 -141
- package/src/agent-tooling/recipes/composed-thread.ts +0 -714
- package/src/agent-tooling/recipes/index.ts +0 -22
- package/src/agent-tooling/recipes/types.ts +0 -32
- package/src/agent-tooling/registry.ts +0 -132
- package/src/agent-tooling/route-emit.ts +0 -305
- package/src/agent-tooling/types.ts +0 -390
- package/src/components/artifact-card.tsx +0 -120
- package/src/components/artifact.tsx +0 -914
- package/src/components/attachment-types.ts +0 -66
- package/src/components/attachments.tsx +0 -536
- package/src/components/audio-visualizer/audio-visualizer.voice-fixture.ts +0 -257
- package/src/components/audio-visualizer/aurora.glsl.ts +0 -330
- package/src/components/audio-visualizer/fit-scale.ts +0 -112
- package/src/components/audio-visualizer/index.tsx +0 -528
- package/src/components/audio-visualizer/labs/lab-choreography.ts +0 -187
- package/src/components/audio-visualizer/labs/lab-shaders.ts +0 -363
- package/src/components/audio-visualizer/labs/lab-visualizer.tsx +0 -102
- package/src/components/audio-visualizer/shader-canvas.tsx +0 -876
- package/src/components/audio-visualizer/sizes.ts +0 -54
- package/src/components/audio-visualizer/variant-aurora.tsx +0 -305
- package/src/components/audio-visualizer/variant-bar.tsx +0 -175
- package/src/components/audio-visualizer/variant-custom.tsx +0 -344
- package/src/components/audio-visualizer/variant-grid.tsx +0 -175
- package/src/components/audio-visualizer/variant-radial.tsx +0 -163
- package/src/components/audio-visualizer/variant-wave.tsx +0 -130
- package/src/components/audio-visualizer/wave.glsl.ts +0 -130
- package/src/components/card-fallback.tsx +0 -60
- package/src/components/card-renderer.tsx +0 -220
- package/src/components/card.tsx +0 -212
- package/src/components/chain-of-thought.tsx +0 -348
- package/src/components/chat-container.tsx +0 -89
- package/src/components/chat-scope-picker.tsx +0 -57
- package/src/components/chat-thread.tsx +0 -1014
- package/src/components/checkpoint.tsx +0 -88
- package/src/components/choice-card.tsx +0 -743
- package/src/components/coachmark.tsx +0 -249
- package/src/components/code-block.tsx +0 -181
- package/src/components/composer-dom.ts +0 -159
- package/src/components/composer-highlight.ts +0 -242
- package/src/components/composer-history.ts +0 -82
- package/src/components/composer.tsx +0 -1075
- package/src/components/confirm-card.tsx +0 -402
- package/src/components/context.tsx +0 -377
- package/src/components/conversation-item.tsx +0 -241
- package/src/components/conversation-list.tsx +0 -429
- package/src/components/conversation-panel.tsx +0 -118
- package/src/components/dismissed-stub.tsx +0 -80
- package/src/components/embed.tsx +0 -200
- package/src/components/empty.tsx +0 -177
- package/src/components/feedback-bar.tsx +0 -166
- package/src/components/file-tree.tsx +0 -530
- package/src/components/file-upload.tsx +0 -167
- package/src/components/form-widgets.tsx +0 -525
- package/src/components/form.tsx +0 -1296
- package/src/components/home-panel.tsx +0 -159
- package/src/components/image.tsx +0 -65
- package/src/components/link-preview.tsx +0 -195
- package/src/components/loader.tsx +0 -367
- package/src/components/markdown.tsx +0 -162
- package/src/components/message-skills.tsx +0 -40
- package/src/components/message.tsx +0 -765
- package/src/components/model-switcher.tsx +0 -132
- package/src/components/prompt-input.tsx +0 -188
- package/src/components/prompt-suggestion.tsx +0 -150
- package/src/components/reasoning.tsx +0 -293
- package/src/components/response-compare-types.ts +0 -152
- package/src/components/response-compare.tsx +0 -455
- package/src/components/response-stream.tsx +0 -109
- package/src/components/screen.tsx +0 -181
- package/src/components/scroll-button.tsx +0 -93
- package/src/components/source.tsx +0 -192
- package/src/components/tasks-card.tsx +0 -801
- package/src/components/text-shimmer.tsx +0 -37
- package/src/components/thinking-bar.tsx +0 -50
- package/src/components/thread.tsx +0 -228
- package/src/components/toast.tsx +0 -503
- package/src/components/tool-classify.ts +0 -26
- package/src/components/tool-types.ts +0 -49
- package/src/components/tool.tsx +0 -190
- package/src/components/use-card-resolution.ts +0 -44
- package/src/components/voice-input.tsx +0 -222
- package/src/components/voice-output.tsx +0 -242
- package/src/components/widget-tab-bar.tsx +0 -73
- package/src/components/workspace-shell.tsx +0 -285
- package/src/diagnostics/hook.ts +0 -352
- package/src/diagnostics/index.ts +0 -82
- package/src/diagnostics/report-request.ts +0 -296
- package/src/elements/agent-card.tsx +0 -67
- package/src/elements/artifact.tsx +0 -194
- package/src/elements/attachments.tsx +0 -140
- package/src/elements/audio-visualizer.tsx +0 -227
- package/src/elements/autoloader.ts +0 -89
- package/src/elements/avatar.tsx +0 -33
- package/src/elements/badge.tsx +0 -32
- package/src/elements/button.tsx +0 -149
- package/src/elements/card.tsx +0 -133
- package/src/elements/cards.tsx +0 -266
- package/src/elements/chain-of-thought.tsx +0 -141
- package/src/elements/chat-scope-picker.tsx +0 -65
- package/src/elements/chat-types.ts +0 -102
- package/src/elements/chat-workspace.tsx +0 -188
- package/src/elements/chat.tsx +0 -304
- package/src/elements/checkbox-group.tsx +0 -164
- package/src/elements/checkbox.tsx +0 -134
- package/src/elements/checkpoint.tsx +0 -47
- package/src/elements/choice.tsx +0 -100
- package/src/elements/coachmark.tsx +0 -90
- package/src/elements/code-block.tsx +0 -60
- package/src/elements/command.tsx +0 -197
- package/src/elements/compare.tsx +0 -111
- package/src/elements/compiled.css +0 -2
- package/src/elements/composer.tsx +0 -162
- package/src/elements/confirm-card.tsx +0 -76
- package/src/elements/context-meter.tsx +0 -107
- package/src/elements/conversation-item.tsx +0 -120
- package/src/elements/conversation-list.tsx +0 -203
- package/src/elements/css.ts +0 -5
- package/src/elements/default-input.tsx +0 -392
- package/src/elements/define-entry.ts +0 -12
- package/src/elements/define.tsx +0 -563
- package/src/elements/diagnostic-events.ts +0 -114
- package/src/elements/dialog.tsx +0 -145
- package/src/elements/disclosure.ts +0 -95
- package/src/elements/dock.tsx +0 -215
- package/src/elements/dropdown.tsx +0 -123
- package/src/elements/editable-label.tsx +0 -140
- package/src/elements/element-data-types.ts +0 -152
- package/src/elements/element-diagnostics.ts +0 -392
- package/src/elements/element-manifest.json +0 -354
- package/src/elements/element-nonscalar.json +0 -187
- package/src/elements/element-types.d.ts +0 -4353
- package/src/elements/embed.tsx +0 -35
- package/src/elements/empty.tsx +0 -29
- package/src/elements/feedback-bar.tsx +0 -66
- package/src/elements/file-tree.tsx +0 -62
- package/src/elements/file-upload.tsx +0 -44
- package/src/elements/form.tsx +0 -94
- package/src/elements/hover-card.tsx +0 -80
- package/src/elements/icon.tsx +0 -41
- package/src/elements/image.tsx +0 -32
- package/src/elements/input.tsx +0 -492
- package/src/elements/kbd.tsx +0 -45
- package/src/elements/link-preview.tsx +0 -34
- package/src/elements/loader.tsx +0 -25
- package/src/elements/markdown.tsx +0 -38
- package/src/elements/menu.tsx +0 -241
- package/src/elements/message-skills.tsx +0 -83
- package/src/elements/message.tsx +0 -361
- package/src/elements/model-switcher.tsx +0 -121
- package/src/elements/nav.tsx +0 -87
- package/src/elements/notice.tsx +0 -53
- package/src/elements/pane-grid.tsx +0 -111
- package/src/elements/pane-group.tsx +0 -119
- package/src/elements/pane.tsx +0 -129
- package/src/elements/popover.tsx +0 -81
- package/src/elements/progress-bar.tsx +0 -39
- package/src/elements/prompt-dock.tsx +0 -82
- package/src/elements/prompt-input.tsx +0 -240
- package/src/elements/prompt-suggestions.tsx +0 -113
- package/src/elements/radio-group.tsx +0 -129
- package/src/elements/reasoning.tsx +0 -71
- package/src/elements/register-impl.ts +0 -148
- package/src/elements/register.ts +0 -76
- package/src/elements/remote.tsx +0 -225
- package/src/elements/resizable.globals.d.ts +0 -36
- package/src/elements/resizable.tsx +0 -704
- package/src/elements/response-stream.tsx +0 -40
- package/src/elements/screen.tsx +0 -90
- package/src/elements/scroll-area.tsx +0 -33
- package/src/elements/scroll-button.tsx +0 -179
- package/src/elements/search.tsx +0 -185
- package/src/elements/segmented.tsx +0 -129
- package/src/elements/select.tsx +0 -165
- package/src/elements/separator.tsx +0 -36
- package/src/elements/setting-item.tsx +0 -50
- package/src/elements/settings-group.tsx +0 -37
- package/src/elements/skeleton.tsx +0 -45
- package/src/elements/slider.tsx +0 -171
- package/src/elements/slot-text.ts +0 -73
- package/src/elements/slots.ts +0 -787
- package/src/elements/source.tsx +0 -126
- package/src/elements/status.tsx +0 -42
- package/src/elements/styles.css +0 -328
- package/src/elements/switch.tsx +0 -118
- package/src/elements/tabs.tsx +0 -95
- package/src/elements/tasks.tsx +0 -103
- package/src/elements/text-shimmer.tsx +0 -28
- package/src/elements/thinking-bar.tsx +0 -43
- package/src/elements/thread.tsx +0 -139
- package/src/elements/toast.tsx +0 -106
- package/src/elements/tool.tsx +0 -78
- package/src/elements/tooltip.tsx +0 -85
- package/src/elements/validate-messages.ts +0 -76
- package/src/elements/voice-input.tsx +0 -100
- package/src/elements/voice-output.tsx +0 -82
- package/src/index.ts +0 -430
- package/src/primitives/audio-bands.ts +0 -174
- package/src/primitives/card-component-types.ts +0 -63
- package/src/primitives/card-contract.ts +0 -80
- package/src/primitives/card-data-types.ts +0 -361
- package/src/primitives/card-host.tsx +0 -37
- package/src/primitives/card-recovery.ts +0 -160
- package/src/primitives/card-registry.tsx +0 -78
- package/src/primitives/card-resolution.ts +0 -36
- package/src/primitives/card-routing.ts +0 -85
- package/src/primitives/card-schemas/artifact.schema.json +0 -92
- package/src/primitives/card-schemas/card-envelope.schema.json +0 -14
- package/src/primitives/card-schemas/card-event.schema.json +0 -12
- package/src/primitives/card-schemas/choice.schema.json +0 -75
- package/src/primitives/card-schemas/confirm.schema.json +0 -65
- package/src/primitives/card-schemas/embed.schema.json +0 -63
- package/src/primitives/card-schemas/form.result.schema.json +0 -7
- package/src/primitives/card-schemas/form.schema.json +0 -53
- package/src/primitives/card-schemas/link.schema.json +0 -54
- package/src/primitives/card-schemas/tasks.result.schema.json +0 -16
- package/src/primitives/card-schemas/tasks.schema.json +0 -83
- package/src/primitives/card-tags.ts +0 -61
- package/src/primitives/card-validate-cards.ts +0 -255
- package/src/primitives/card-validate-schemas.ts +0 -58
- package/src/primitives/card-validate.ts +0 -131
- package/src/primitives/chat-config.tsx +0 -103
- package/src/primitives/composer-model.ts +0 -49
- package/src/primitives/composer-triggers.ts +0 -35
- package/src/primitives/controllable.ts +0 -21
- package/src/primitives/conversation-store.ts +0 -248
- package/src/primitives/create-kai-chat.ts +0 -66
- package/src/primitives/create-tween.ts +0 -266
- package/src/primitives/embed-providers.ts +0 -254
- package/src/primitives/field-mask.ts +0 -256
- package/src/primitives/field-semantics.ts +0 -115
- package/src/primitives/highlighter.ts +0 -157
- package/src/primitives/input-mask.ts +0 -853
- package/src/primitives/link-preview.ts +0 -87
- package/src/primitives/message-feedback.ts +0 -124
- package/src/primitives/pdf-preview.ts +0 -121
- package/src/primitives/toast-store.ts +0 -338
- package/src/primitives/url-scheme-policy.ts +0 -70
- package/src/primitives/use-audio-analysis.ts +0 -340
- package/src/primitives/use-auto-resize.ts +0 -31
- package/src/primitives/use-resize-observer.ts +0 -45
- package/src/primitives/use-sequencer.ts +0 -72
- package/src/primitives/use-speech-recognition.ts +0 -146
- package/src/primitives/use-stick-to-bottom.ts +0 -75
- package/src/primitives/use-text-stream.ts +0 -143
- package/src/primitives/use-voice-recorder.ts +0 -62
- package/src/primitives/visualizer-sequences.ts +0 -350
- package/src/remote/host-embed.ts +0 -345
- package/src/remote/index.ts +0 -2
- package/src/remote/origin.ts +0 -30
- package/src/remote/provider-runtime.ts +0 -262
- package/src/remote/provider.ts +0 -2
- package/src/remote/validate.ts +0 -22
- package/src/remote/version.ts +0 -12
- package/src/remote/wire.ts +0 -48
- package/src/schemas/from-tool-call.ts +0 -151
- package/src/schemas/index.ts +0 -341
- package/src/schemas/provider-subsets.ts +0 -538
- package/src/schemas/registry.ts +0 -355
- package/src/schemas/tool-defs.ts +0 -793
- package/src/solid.ts +0 -173
- package/src/state/index.ts +0 -44
- package/src/state/messages.ts +0 -53
- package/src/state/mock.ts +0 -297
- package/src/state/parts.ts +0 -295
- package/src/state/persistence.ts +0 -180
- package/src/state/stream.ts +0 -246
- package/src/state/suggestions.ts +0 -9
- package/src/state/threads.ts +0 -142
- package/src/test-utils/fake-clock.ts +0 -88
- package/src/types.ts +0 -95
- package/src/ui/action-icons.ts +0 -53
- package/src/ui/agent-card.tsx +0 -218
- package/src/ui/avatar.tsx +0 -23
- package/src/ui/badge.tsx +0 -21
- package/src/ui/button.tsx +0 -49
- package/src/ui/card.tsx +0 -245
- package/src/ui/checkbox-group.tsx +0 -153
- package/src/ui/checkbox.tsx +0 -63
- package/src/ui/collapsible.tsx +0 -163
- package/src/ui/command.tsx +0 -103
- package/src/ui/dialog.tsx +0 -223
- package/src/ui/dock.tsx +0 -630
- package/src/ui/dropdown.tsx +0 -636
- package/src/ui/editable-label.tsx +0 -112
- package/src/ui/hover-card.tsx +0 -345
- package/src/ui/icon.tsx +0 -167
- package/src/ui/input.tsx +0 -391
- package/src/ui/kbd.tsx +0 -118
- package/src/ui/nav.tsx +0 -282
- package/src/ui/notice.tsx +0 -84
- package/src/ui/overlay.tsx +0 -277
- package/src/ui/pane-grid.tsx +0 -117
- package/src/ui/pane-group.tsx +0 -291
- package/src/ui/pane.tsx +0 -193
- package/src/ui/popover.tsx +0 -106
- package/src/ui/progress-bar.tsx +0 -83
- package/src/ui/prompt-dock.tsx +0 -145
- package/src/ui/radio.tsx +0 -150
- package/src/ui/resizable.tsx +0 -693
- package/src/ui/scroll-area.tsx +0 -26
- package/src/ui/segmented.tsx +0 -109
- package/src/ui/select.tsx +0 -168
- package/src/ui/separator.tsx +0 -10
- package/src/ui/settings-group.tsx +0 -67
- package/src/ui/skeleton.tsx +0 -73
- package/src/ui/slider.tsx +0 -178
- package/src/ui/status.tsx +0 -48
- package/src/ui/switch.tsx +0 -119
- package/src/ui/tabs.tsx +0 -168
- package/src/ui/textarea.tsx +0 -21
- package/src/ui/tooltip.tsx +0 -118
- package/src/utils/cn.ts +0 -30
- package/src/wire/chunk.ts +0 -248
- package/src/wire/consume.ts +0 -599
- package/src/wire/diagnostics.ts +0 -727
- package/src/wire/encode-probe.ts +0 -214
- package/src/wire/encode.ts +0 -947
- package/src/wire/files.ts +0 -342
- package/src/wire/formats/anthropic.ts +0 -274
- package/src/wire/formats/openai.ts +0 -228
- package/src/wire/index.ts +0 -95
- package/src/wire/media-types.ts +0 -344
- package/src/wire/read.ts +0 -396
- package/src/wire/sink-helpers.ts +0 -50
- package/src/wire/sse.ts +0 -153
package/src/elements/command.tsx
DELETED
|
@@ -1,197 +0,0 @@
|
|
|
1
|
-
import { createEffect, createMemo, createSignal, createUniqueId, on } from 'solid-js';
|
|
2
|
-
import { CommandList, type CommandGroup } from '../ui/command';
|
|
3
|
-
import { defineWebComponent } from './define';
|
|
4
|
-
import type { KaiCommandItem } from './element-data-types';
|
|
5
|
-
|
|
6
|
-
// The item shape lives in ./element-data-types so the ROOT entry can re-export it
|
|
7
|
-
// (a per-element module's shipped .d.ts is `export {};`). Re-exported here so
|
|
8
|
-
// `import type { KaiCommandItem } from './command'` keeps working.
|
|
9
|
-
export type { KaiCommandItem } from './element-data-types';
|
|
10
|
-
|
|
11
|
-
interface Props extends Record<string, unknown> {
|
|
12
|
-
/** Flat list of items. Set as a JS property, not an HTML attribute. */
|
|
13
|
-
items?: KaiCommandItem[];
|
|
14
|
-
/** Placeholder text for the search input. */
|
|
15
|
-
placeholder?: string;
|
|
16
|
-
/** Label shown when no items match the current query. */
|
|
17
|
-
emptyLabel?: string;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
interface Events {
|
|
21
|
-
/** Fired when the user selects an item (click or Enter). */
|
|
22
|
-
'kai-select': { id: string };
|
|
23
|
-
/** Fired on every keystroke in the search input. */
|
|
24
|
-
'kai-query-change': { value: string };
|
|
25
|
-
/** Fired when the highlighted/active item changes, via Arrow keys or when
|
|
26
|
-
* filtering re-clamps the active row. `id` is the newly active item's id, or
|
|
27
|
-
* `undefined` when no item is active (e.g. the filtered list is empty). Lets a
|
|
28
|
-
* host preview the active item without committing a selection. */
|
|
29
|
-
'kai-active-change': { id: string | undefined };
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* `<kai-command>` — a grouped, filterable command/mention palette.
|
|
34
|
-
*
|
|
35
|
-
* Set the `items` property in JavaScript (array, not attribute), listen for
|
|
36
|
-
* `kai-select` to know which item was picked, and `kai-query-change` to mirror
|
|
37
|
-
* the search query to your own logic (e.g. async server-side filtering).
|
|
38
|
-
*
|
|
39
|
-
* ```html
|
|
40
|
-
* <kai-command placeholder="Search…"></kai-command>
|
|
41
|
-
* <script type="module">
|
|
42
|
-
* import '@kitn.ai/ui/elements';
|
|
43
|
-
* const el = document.querySelector('kai-command');
|
|
44
|
-
* el.items = [
|
|
45
|
-
* { id: 'foo', label: 'Foo', icon: 'search', shortcut: 'Mod+K', group: 'Recent' },
|
|
46
|
-
* ];
|
|
47
|
-
* el.addEventListener('kai-select', (e) => console.log(e.detail.id));
|
|
48
|
-
* </script>
|
|
49
|
-
* ```
|
|
50
|
-
*/
|
|
51
|
-
defineWebComponent<Props, Events>('kai-command', {
|
|
52
|
-
items: undefined,
|
|
53
|
-
placeholder: undefined,
|
|
54
|
-
emptyLabel: undefined,
|
|
55
|
-
}, (props, { dispatch, element, expose }) => {
|
|
56
|
-
const listboxId = createUniqueId();
|
|
57
|
-
const [query, setQuery] = createSignal('');
|
|
58
|
-
const [activeId, setActiveId] = createSignal<string | undefined>(undefined);
|
|
59
|
-
|
|
60
|
-
/** Items cast to the correct type; defaults to empty array. */
|
|
61
|
-
const allItems = () => (props.items as KaiCommandItem[] | undefined) ?? [];
|
|
62
|
-
|
|
63
|
-
/** Items filtered by the current query (label or description, case-insensitive). */
|
|
64
|
-
const filteredItems = createMemo<KaiCommandItem[]>(() => {
|
|
65
|
-
const q = query().toLowerCase();
|
|
66
|
-
if (!q) return allItems();
|
|
67
|
-
return allItems().filter(
|
|
68
|
-
(item) =>
|
|
69
|
-
item.label.toLowerCase().includes(q) ||
|
|
70
|
-
(item.description?.toLowerCase().includes(q) ?? false),
|
|
71
|
-
);
|
|
72
|
-
});
|
|
73
|
-
|
|
74
|
-
/** Filtered items grouped by `group`, preserving first-appearance order. */
|
|
75
|
-
const groupedItems = createMemo<CommandGroup[]>(() => {
|
|
76
|
-
const groups: CommandGroup[] = [];
|
|
77
|
-
for (const item of filteredItems()) {
|
|
78
|
-
let g = groups.find((x) => x.group === item.group);
|
|
79
|
-
if (!g) {
|
|
80
|
-
g = { group: item.group, items: [] };
|
|
81
|
-
groups.push(g);
|
|
82
|
-
}
|
|
83
|
-
g.items.push({ id: item.id, label: item.label, icon: item.icon, description: item.description, shortcut: item.shortcut });
|
|
84
|
-
}
|
|
85
|
-
return groups;
|
|
86
|
-
});
|
|
87
|
-
|
|
88
|
-
/** Flat ordered array of filtered item ids — used for keyboard navigation. */
|
|
89
|
-
const flatIds = createMemo<string[]>(() => filteredItems().map((item) => item.id));
|
|
90
|
-
|
|
91
|
-
/** Clamp/reset activeId when the filtered list changes. */
|
|
92
|
-
createEffect(() => {
|
|
93
|
-
const ids = flatIds();
|
|
94
|
-
const current = activeId();
|
|
95
|
-
if (!current || !ids.includes(current)) {
|
|
96
|
-
setActiveId(ids[0]);
|
|
97
|
-
}
|
|
98
|
-
});
|
|
99
|
-
|
|
100
|
-
/** Mirror the active/highlighted item out as `kai-active-change` whenever it
|
|
101
|
-
* changes (Arrow keys or a filter-driven re-clamp). Skips the initial settle
|
|
102
|
-
* by only firing when the value actually differs from the previous one. */
|
|
103
|
-
createEffect(on(activeId, (id, prev) => {
|
|
104
|
-
if (id !== prev) dispatch('kai-active-change', { id });
|
|
105
|
-
}));
|
|
106
|
-
|
|
107
|
-
function select(id: string) {
|
|
108
|
-
dispatch('kai-select', { id });
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
function handleInput(e: Event) {
|
|
112
|
-
const value = (e.currentTarget as HTMLInputElement).value;
|
|
113
|
-
setQuery(value);
|
|
114
|
-
dispatch('kai-query-change', { value });
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
function handleKeyDown(e: KeyboardEvent) {
|
|
118
|
-
const ids = flatIds();
|
|
119
|
-
if (!ids.length) return;
|
|
120
|
-
|
|
121
|
-
const current = activeId();
|
|
122
|
-
const idx = current !== undefined ? ids.indexOf(current) : -1;
|
|
123
|
-
|
|
124
|
-
if (e.key === 'ArrowDown') {
|
|
125
|
-
e.preventDefault();
|
|
126
|
-
setActiveId(ids[(idx + 1) % ids.length]);
|
|
127
|
-
} else if (e.key === 'ArrowUp') {
|
|
128
|
-
e.preventDefault();
|
|
129
|
-
setActiveId(ids[(idx - 1 + ids.length) % ids.length]);
|
|
130
|
-
} else if (e.key === 'Enter') {
|
|
131
|
-
e.preventDefault();
|
|
132
|
-
const id = activeId();
|
|
133
|
-
if (id !== undefined) select(id);
|
|
134
|
-
} else if (e.key === 'Escape') {
|
|
135
|
-
e.preventDefault();
|
|
136
|
-
setQuery('');
|
|
137
|
-
dispatch('kai-query-change', { value: '' });
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
// ── Imperative API (instance methods on the host) ──────────────────────────
|
|
142
|
-
// Counterpart to the kai-* events: lets a host make the palette type-ready and
|
|
143
|
-
// reset its query without reaching into the shadow root.
|
|
144
|
-
expose({
|
|
145
|
-
/** Focus the search combobox input inside the shadow root so the palette is
|
|
146
|
-
* type-ready on demand (Shadow-DOM autofocus is unreliable, so hosts call
|
|
147
|
-
* this after opening the palette). */
|
|
148
|
-
focus: (options?: FocusOptions) =>
|
|
149
|
-
element.shadowRoot
|
|
150
|
-
?.querySelector<HTMLInputElement>('input[role="combobox"], input')
|
|
151
|
-
?.focus(options),
|
|
152
|
-
/** Blur the focused search input. */
|
|
153
|
-
blur: () =>
|
|
154
|
-
element.shadowRoot
|
|
155
|
-
?.querySelector<HTMLInputElement>('input[role="combobox"], input')
|
|
156
|
-
?.blur(),
|
|
157
|
-
/** Reset the search query to empty, re-showing all items, and fire
|
|
158
|
-
* `kai-query-change` with `''`. Mirrors the Escape-key behavior. */
|
|
159
|
-
clear: () => {
|
|
160
|
-
setQuery('');
|
|
161
|
-
dispatch('kai-query-change', { value: '' });
|
|
162
|
-
},
|
|
163
|
-
});
|
|
164
|
-
|
|
165
|
-
return (
|
|
166
|
-
<div class="flex flex-col overflow-hidden">
|
|
167
|
-
<div class="border-b border-border px-3 py-2">
|
|
168
|
-
<input
|
|
169
|
-
type="text"
|
|
170
|
-
role="combobox"
|
|
171
|
-
aria-expanded="true"
|
|
172
|
-
aria-haspopup="listbox"
|
|
173
|
-
aria-autocomplete="list"
|
|
174
|
-
aria-controls={listboxId}
|
|
175
|
-
value={query()}
|
|
176
|
-
placeholder={(props.placeholder as string | undefined) ?? 'Search…'}
|
|
177
|
-
// No `focus-visible:outline-none` here. It used to suppress the base
|
|
178
|
-
// focus ring and put nothing in its place, so keyboard users had no
|
|
179
|
-
// indication of where they were in the palette.
|
|
180
|
-
class="w-full bg-transparent text-sm text-foreground placeholder:text-muted-foreground"
|
|
181
|
-
onInput={handleInput}
|
|
182
|
-
onKeyDown={handleKeyDown}
|
|
183
|
-
/>
|
|
184
|
-
</div>
|
|
185
|
-
<div class="overflow-y-auto max-h-[320px]">
|
|
186
|
-
<CommandList
|
|
187
|
-
id={listboxId}
|
|
188
|
-
ariaLabel="Results"
|
|
189
|
-
groups={groupedItems()}
|
|
190
|
-
activeId={activeId()}
|
|
191
|
-
onSelect={select}
|
|
192
|
-
emptyLabel={(props.emptyLabel as string | undefined) ?? 'No results'}
|
|
193
|
-
/>
|
|
194
|
-
</div>
|
|
195
|
-
</div>
|
|
196
|
-
);
|
|
197
|
-
});
|
package/src/elements/compare.tsx
DELETED
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
import { defineWebComponent } from './define';
|
|
2
|
-
import { ChatConfig, useChatConfig, type ProseSize } from '../primitives/chat-config';
|
|
3
|
-
import { ResponseCompare, type CompareLayout } from '../components/response-compare';
|
|
4
|
-
import type {
|
|
5
|
-
ResponseCompareData,
|
|
6
|
-
CompareSelection,
|
|
7
|
-
ResponseCompareController,
|
|
8
|
-
} from '../components/response-compare';
|
|
9
|
-
|
|
10
|
-
interface Props extends Record<string, unknown> {
|
|
11
|
-
/** The compare definition (prompt + the two candidates). Set as a JS PROPERTY:
|
|
12
|
-
* `el.data = { prompt, candidates: [A, B], collapse? }`. Import
|
|
13
|
-
* `ResponseCompareData` from `@kitn.ai/ui` for the full shape. */
|
|
14
|
-
data?: Record<string, unknown>;
|
|
15
|
-
/** Stable id correlating every emitted event. Attribute: `compare-id`. */
|
|
16
|
-
compareId?: string;
|
|
17
|
-
/** Re-hydrate / control the user's pick. Set as a JS PROPERTY:
|
|
18
|
-
* `el.selection = { chosenId, rejectedIds }`. Renders the collapsed winner. */
|
|
19
|
-
selection?: Record<string, unknown>;
|
|
20
|
-
/** Layout: `'auto'` (default, columns when wide, tabs when narrow, by CONTAINER width) |
|
|
21
|
-
* `'columns'` (side-by-side) | `'tabs'` (pills to switch). Attribute: `layout`. */
|
|
22
|
-
layout?: CompareLayout;
|
|
23
|
-
/** Prose/text size for the rendered candidates. Attribute: `prose-size`. */
|
|
24
|
-
proseSize?: ProseSize;
|
|
25
|
-
/** Shiki theme for code blocks in the candidates. Attribute: `code-theme`. */
|
|
26
|
-
codeTheme?: string;
|
|
27
|
-
/** Whether code blocks are syntax-highlighted. Attribute: `code-highlight`. */
|
|
28
|
-
codeHighlight?: boolean;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
interface Events extends Record<string, unknown> {
|
|
32
|
-
/** The user committed a pick. `detail` = `{ chosenId, rejectedIds, at }`. */
|
|
33
|
-
'kai-compare-select': CompareSelection;
|
|
34
|
-
/** Both candidates have settled and the pick is live. */
|
|
35
|
-
'kai-ready': { compareId: string };
|
|
36
|
-
/** The definition was unusable. */
|
|
37
|
-
'kai-error': { compareId: string; message: string };
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
* `<kai-compare>` — a **dual-response comparison** (set via the `data` property):
|
|
42
|
-
* two assistant candidates for the same prompt, rendered side-by-side (or as tabs),
|
|
43
|
-
* each exactly like an assistant message (reasoning + tools + attachments +
|
|
44
|
-
* markdown). The user **picks** the better one — a COMMIT, not a Submit — which
|
|
45
|
-
* fires a non-bubbling **`kai-compare-select`** CustomEvent off the host
|
|
46
|
-
* (`{ chosenId, rejectedIds:[other], at }`) for the consumer to send a
|
|
47
|
-
* `(prompt, chosen, rejected)` preference pair. The card optimistically collapses
|
|
48
|
-
* to the chosen candidate. Single-shot.
|
|
49
|
-
*
|
|
50
|
-
* Both candidates can stream (push a fresh `data` reference per chunk); the pick is
|
|
51
|
-
* disabled with a per-column shimmer until BOTH settle, then `kai-ready` fires. The
|
|
52
|
-
* columns are a WAI-ARIA radiogroup with roving tabindex (Arrow keys move A↔B,
|
|
53
|
-
* Enter/Space picks). `kai-error` fires for a malformed definition. Isolated in
|
|
54
|
-
* Shadow DOM; theme-aware via the shared tokens.
|
|
55
|
-
*/
|
|
56
|
-
defineWebComponent<Props, Events>(
|
|
57
|
-
'kai-compare',
|
|
58
|
-
{
|
|
59
|
-
data: undefined,
|
|
60
|
-
compareId: undefined,
|
|
61
|
-
selection: undefined,
|
|
62
|
-
layout: 'auto',
|
|
63
|
-
proseSize: undefined,
|
|
64
|
-
codeTheme: undefined,
|
|
65
|
-
codeHighlight: undefined,
|
|
66
|
-
},
|
|
67
|
-
(props, { element, dispatch, expose }) => {
|
|
68
|
-
const compareId = (): string => props.compareId ?? (element.id || 'kai-compare');
|
|
69
|
-
// Inherit the shadow-root portal mount from the outer ChatConfig that
|
|
70
|
-
// defineWebComponent installs, so candidate-body overlays (hover cards,
|
|
71
|
-
// tooltips) stay inside the shadow root.
|
|
72
|
-
const outer = useChatConfig();
|
|
73
|
-
|
|
74
|
-
// ── Imperative API (instance methods on the host) ──────────────────────────
|
|
75
|
-
// Pattern C: ResponseCompare owns the pick + roving-focus state and hands up a
|
|
76
|
-
// controller; the facade captures it and exposes delegating methods. The
|
|
77
|
-
// component's own callbacks still fire (select → onSelect → kai-compare-select).
|
|
78
|
-
let controller: ResponseCompareController | undefined;
|
|
79
|
-
expose({
|
|
80
|
-
/** Programmatically commit a pick by candidate id, on the same path as the
|
|
81
|
-
* "Pick this" button: fires kai-compare-select and optimistically
|
|
82
|
-
* collapses (single-shot; inert while streaming or already resolved).
|
|
83
|
-
* `select` does NOT collide with the `selection` prop (distinct
|
|
84
|
-
* identifier). */
|
|
85
|
-
select: (candidateId: string) => controller?.select(candidateId),
|
|
86
|
-
/** Focus the current roving tab stop (the focused candidate's "Pick this"
|
|
87
|
-
* radio) so a consumer can move keyboard focus into the radiogroup. */
|
|
88
|
-
focus: (options?: FocusOptions) => controller?.focus(options),
|
|
89
|
-
});
|
|
90
|
-
|
|
91
|
-
return (
|
|
92
|
-
<ChatConfig
|
|
93
|
-
proseSize={props.proseSize}
|
|
94
|
-
codeTheme={props.codeTheme}
|
|
95
|
-
codeHighlight={props.codeHighlight}
|
|
96
|
-
portalMount={outer.portalMount()}
|
|
97
|
-
>
|
|
98
|
-
<ResponseCompare
|
|
99
|
-
data={props.data as ResponseCompareData | undefined}
|
|
100
|
-
compareId={compareId()}
|
|
101
|
-
selection={props.selection as CompareSelection | undefined}
|
|
102
|
-
layout={(props.layout as CompareLayout | undefined) ?? 'auto'}
|
|
103
|
-
controllerRef={(c) => (controller = c)}
|
|
104
|
-
onSelect={(sel) => dispatch('kai-compare-select', sel)}
|
|
105
|
-
onReady={() => dispatch('kai-ready', { compareId: compareId() })}
|
|
106
|
-
onError={(message) => dispatch('kai-error', { compareId: compareId(), message })}
|
|
107
|
-
/>
|
|
108
|
-
</ChatConfig>
|
|
109
|
-
);
|
|
110
|
-
},
|
|
111
|
-
);
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
/*! tailwindcss v4.3.2 | MIT License | https://tailwindcss.com */
|
|
2
|
-
@layer properties{@supports (--kai-shadow-dom-tw-fallback:1){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-content:"";--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-serif:ui-serif, Georgia, Cambria, "Times New Roman", Times, serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-orange-500:oklch(70.5% .213 47.604);--color-yellow-400:oklch(85.2% .199 91.936);--color-green-500:oklch(72.3% .219 149.579);--color-emerald-400:oklch(76.5% .177 163.223);--color-emerald-500:oklch(69.6% .17 162.48);--color-emerald-600:oklch(59.6% .145 163.225);--color-sky-400:oklch(74.6% .16 232.661);--color-blue-500:oklch(62.3% .214 259.815);--color-violet-400:oklch(70.2% .183 293.541);--color-violet-600:oklch(54.1% .281 293.009);--color-fuchsia-500:oklch(66.7% .295 322.15);--color-zinc-800:oklch(27.4% .006 286.033);--color-zinc-950:oklch(14.1% .005 285.823);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--container-xl:36rem;--container-2xl:42rem;--container-3xl:48rem;--container-4xl:56rem;--container-5xl:64rem;--container-6xl:72rem;--text-xs:var(--kai-text-meta,.75rem);--text-xs--line-height:calc(1 / .75);--text-sm:var(--kai-text-body,.875rem);--text-sm--line-height:calc(1.25 / .875);--text-base:var(--kai-text-title,1rem);--text-base--line-height:calc(1.5 / 1);--text-lg:var(--kai-text-lg,1.125rem);--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25 / 1.875);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5 / 2.25);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-wide:.025em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-tight:1.25;--leading-snug:1.375;--leading-relaxed:1.625;--radius-sm:calc(var(--radius) - 4px);--radius-md:calc(var(--radius) - 2px);--radius-lg:var(--radius);--radius-xl:calc(var(--radius) + 4px);--radius-2xl:1rem;--radius-3xl:1.5rem;--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-ping:ping 1s cubic-bezier(0, 0, .2, 1) infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--blur-sm:8px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--radius:var(--kai-radius,.6rem);--color-background:var(--kai-color-background,#fff);--color-foreground:var(--kai-color-foreground,#09090b);--color-card:var(--kai-color-card,#fff);--color-card-foreground:var(--kai-color-card-foreground,#09090b);--color-popover:var(--kai-color-popover,#fff);--color-popover-foreground:var(--kai-color-popover-foreground,#09090b);--color-primary:var(--kai-color-primary,#18181b);--color-primary-foreground:var(--kai-color-primary-foreground,#fafafa);--color-secondary:var(--kai-color-secondary,#f4f4f5);--color-secondary-foreground:var(--kai-color-secondary-foreground,#18181b);--color-muted:var(--kai-color-muted,#f4f4f5);--color-muted-foreground:var(--kai-color-muted-foreground,#696972);--color-surface:var(--kai-color-surface,var(--color-muted))}@supports (color:color-mix(in lab, red, red)){:root,:host{--color-surface:var(--kai-color-surface,color-mix(in srgb, var(--color-muted) 40%, var(--color-background)))}}:root,:host{--color-surface-strong:var(--kai-color-surface-strong,var(--color-muted))}@supports (color:color-mix(in lab, red, red)){:root,:host{--color-surface-strong:var(--kai-color-surface-strong,color-mix(in srgb, var(--color-muted) 60%, var(--color-background)))}}:root,:host{--color-surface-sunken:var(--kai-color-surface-sunken,var(--color-muted))}@supports (color:color-mix(in lab, red, red)){:root,:host{--color-surface-sunken:var(--kai-color-surface-sunken,color-mix(in srgb, var(--color-muted) 85%, var(--color-background)))}}:root,:host{--color-accent:var(--kai-color-accent,#f4f4f5);--color-accent-foreground:var(--kai-color-accent-foreground,#18181b);--color-destructive:var(--kai-color-destructive,#c52020);--color-destructive-foreground:var(--kai-color-destructive-foreground,#fafafa);--color-success:var(--kai-color-success,#16833e);--color-warning:var(--kai-color-warning,#935f06);--color-info:var(--kai-color-info,#0a54cd);--color-success-soft:var(--kai-color-success-soft,var(--color-success))}@supports (color:color-mix(in lab, red, red)){:root,:host{--color-success-soft:var(--kai-color-success-soft,color-mix(in oklab, var(--color-success) 14%, var(--color-background)))}}:root,:host{--color-warning-soft:var(--kai-color-warning-soft,var(--color-warning))}@supports (color:color-mix(in lab, red, red)){:root,:host{--color-warning-soft:var(--kai-color-warning-soft,color-mix(in oklab, var(--color-warning) 14%, var(--color-background)))}}:root,:host{--color-info-soft:var(--kai-color-info-soft,var(--color-info))}@supports (color:color-mix(in lab, red, red)){:root,:host{--color-info-soft:var(--kai-color-info-soft,color-mix(in oklab, var(--color-info) 14%, var(--color-background)))}}:root,:host{--color-destructive-soft:var(--kai-color-destructive-soft,var(--color-destructive))}@supports (color:color-mix(in lab, red, red)){:root,:host{--color-destructive-soft:var(--kai-color-destructive-soft,color-mix(in oklab, var(--color-destructive) 14%, var(--color-background)))}}:root,:host{--color-hover:var(--kai-color-hover,var(--color-muted))}@supports (color:color-mix(in lab, red, red)){:root,:host{--color-hover:var(--kai-color-hover,color-mix(in oklab, var(--color-muted) 60%, var(--color-background)))}}:root,:host{--color-selected:var(--kai-color-selected,var(--color-primary))}@supports (color:color-mix(in lab, red, red)){:root,:host{--color-selected:var(--kai-color-selected,color-mix(in oklab, var(--color-primary) 8%, var(--color-background)))}}:root,:host{--color-unread:var(--kai-color-unread,#ef4343);--color-highlight:var(--kai-color-highlight,#fde291);--color-selection:var(--kai-color-selection,#bfdbfd);--color-selection-foreground:var(--kai-color-selection-foreground,#09090b);--color-border:var(--kai-color-border,#e4e4e7);--color-input:var(--kai-color-input,#81818d);--color-ring:var(--kai-color-ring,#1a6ef4);--color-scrollbar-thumb:var(--kai-color-scrollbar-thumb,#c9c9cf);--color-scrollbar-thumb-hover:var(--kai-color-scrollbar-thumb-hover,#a0a0a7);--color-sidebar:var(--kai-color-sidebar,#fff);--color-code-foreground:var(--kai-color-code-foreground,#1d4ed8);--color-tool-blue:var(--kai-color-tool-blue,#094cb9);--color-tool-amber:var(--kai-color-tool-amber,#895906);--color-tool-green:var(--kai-color-tool-green,#137136);--color-tool-red:var(--kai-color-tool-red,#b81e1e);--text-micro:var(--kai-text-micro,.625rem);--text-micro--line-height:calc(.875 / .625);--text-caption:var(--kai-text-caption,.6875rem);--text-caption--line-height:calc(1 / .6875);--text-meta:var(--kai-text-meta,.75rem);--text-meta--line-height:calc(1 / .75);--text-compact:var(--kai-text-compact,.8125rem);--text-compact--line-height:calc(1.21875 / .8125);--text-body:var(--kai-text-body,.875rem);--text-body--line-height:calc(1.25 / .875);--text-title:var(--kai-text-title,1rem);--text-title--line-height:calc(1.5 / 1)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}:host{font-family:var(--kai-font-base,ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--text-body,var(--kai-text-body,.875rem));letter-spacing:var(--kai-tracking,normal);display:block}code,kbd,samp,pre{font-family:var(--kai-font-code,ui-monospace, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace)}*{border-color:var(--color-border)}:host{color-scheme:light}.dark{color-scheme:dark}:focus-visible{outline:2px solid var(--color-ring);outline-offset:2px}*{scrollbar-width:thin;scrollbar-color:var(--color-scrollbar-thumb) transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background-color:var(--color-scrollbar-thumb);background-clip:padding-box;border:2px solid #0000;border-radius:9999px}::-webkit-scrollbar-thumb:hover{background-color:var(--color-scrollbar-thumb-hover)}::-webkit-scrollbar-corner{background:0 0}::selection{background-color:var(--color-selection);color:var(--color-selection-foreground)}@media (prefers-reduced-motion:reduce){.animate-in,.animate-out,[class*=animate-\[]{animation:none!important}}}@layer components{.kai-focus-inset:focus-visible{outline:2px solid var(--color-ring);outline-offset:-2px}.kai-radio,.kai-checkbox{appearance:none;cursor:pointer;border:1.5px solid var(--color-input);background-color:var(--color-background);flex-shrink:0;place-content:center;block-size:1.125rem;inline-size:1.125rem;margin:0;transition:border-color .18s,background-color .18s,box-shadow .18s,transform .1s;display:inline-grid;box-shadow:0 1px 2px #0000000a}.kai-radio{border-radius:9999px}.kai-checkbox{border-radius:.3rem}.kai-radio:after{content:"";background-color:var(--color-primary);border-radius:9999px;block-size:.5rem;inline-size:.5rem;transition:transform .2s cubic-bezier(.34,1.56,.64,1);transform:scale(0)}.kai-radio:checked{border-color:var(--color-primary)}.kai-radio:checked:after{transform:scale(1)}.kai-checkbox:checked{background-color:var(--color-primary);border-color:var(--color-primary)}.kai-checkbox:after{content:"";background-color:var(--color-primary-foreground);block-size:.8rem;inline-size:.8rem;transition:transform .2s cubic-bezier(.34,1.56,.64,1);transform:scale(0);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") 50%/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") 50%/contain no-repeat}.kai-checkbox:checked:after{transform:scale(1)}.kai-radio:hover:not(:disabled),.kai-checkbox:hover:not(:disabled){border-color:var(--color-primary);box-shadow:0 0 0 4px var(--color-primary)}@supports (color:color-mix(in lab, red, red)){.kai-radio:hover:not(:disabled),.kai-checkbox:hover:not(:disabled){box-shadow:0 0 0 4px color-mix(in srgb, var(--color-primary) 9%, transparent)}}.kai-radio:active:not(:disabled),.kai-checkbox:active:not(:disabled){transform:scale(.92)}.kai-checkbox:checked{box-shadow:0 1px 4px var(--color-primary)}@supports (color:color-mix(in lab, red, red)){.kai-checkbox:checked{box-shadow:0 1px 4px color-mix(in srgb, var(--color-primary) 26%, transparent)}}.kai-checkbox:indeterminate{background-color:var(--color-primary);border-color:var(--color-primary);box-shadow:0 1px 4px var(--color-primary)}@supports (color:color-mix(in lab, red, red)){.kai-checkbox:indeterminate{box-shadow:0 1px 4px color-mix(in srgb, var(--color-primary) 26%, transparent)}}.kai-checkbox:indeterminate:after{transform:scale(1);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3C/svg%3E") 50%/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3C/svg%3E") 50%/contain no-repeat}.kai-radio:disabled,.kai-checkbox:disabled{opacity:.5;cursor:not-allowed}.kai-range{appearance:none;cursor:pointer;background:0 0;block-size:1.25rem;inline-size:100%;margin:0}.kai-range::-webkit-slider-runnable-track{block-size:.375rem;box-shadow:none;background:linear-gradient(to right, var(--color-primary) var(--kai-range-fill,0%), var(--color-muted) var(--kai-range-fill,0%));border:none;border-radius:9999px}.kai-range::-moz-range-track{block-size:.375rem;box-shadow:none;background:var(--color-muted);border:none;border-radius:9999px}.kai-range::-moz-range-progress{background:var(--color-primary);border-radius:9999px;block-size:.375rem}.kai-range::-webkit-slider-thumb{appearance:none;background:var(--color-background);border:2px solid var(--color-primary);border-radius:9999px;block-size:1.125rem;inline-size:1.125rem;margin-block-start:-.375rem;transition:transform .12s,box-shadow .12s;box-shadow:0 1px 3px #0000002e}.kai-range::-moz-range-thumb{background:var(--color-background);border:2px solid var(--color-primary);border-radius:9999px;block-size:1.125rem;inline-size:1.125rem;transition:transform .12s,box-shadow .12s;box-shadow:0 1px 3px #0000002e}.kai-range:hover::-webkit-slider-thumb{transform:scale(1.12)}.kai-range:hover::-moz-range-thumb{transform:scale(1.12)}.kai-range:focus-visible{outline:none}.kai-range:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 6px var(--color-primary)}@supports (color:color-mix(in lab, red, red)){.kai-range:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 6px color-mix(in srgb, var(--color-primary) 14%, transparent)}}.kai-range:active::-webkit-slider-thumb{box-shadow:0 0 0 6px var(--color-primary)}@supports (color:color-mix(in lab, red, red)){.kai-range:active::-webkit-slider-thumb{box-shadow:0 0 0 6px color-mix(in srgb, var(--color-primary) 14%, transparent)}}.kai-range:focus-visible::-moz-range-thumb{box-shadow:0 0 0 6px var(--color-primary)}@supports (color:color-mix(in lab, red, red)){.kai-range:focus-visible::-moz-range-thumb{box-shadow:0 0 0 6px color-mix(in srgb, var(--color-primary) 14%, transparent)}}.kai-range:active::-moz-range-thumb{box-shadow:0 0 0 6px var(--color-primary)}@supports (color:color-mix(in lab, red, red)){.kai-range:active::-moz-range-thumb{box-shadow:0 0 0 6px color-mix(in srgb, var(--color-primary) 14%, transparent)}}.kai-range:disabled{opacity:.5;cursor:not-allowed}}@layer utilities{.\@container\/compare{container:compare/inline-size}.\@container{container-type:inline-size}.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:0}.inset-x-0{inset-inline:0}.inset-x-2{inset-inline:calc(var(--spacing) * 2)}.inset-x-3{inset-inline:calc(var(--spacing) * 3)}.inset-y-0{inset-block:0}.inset-y-2{inset-block:calc(var(--spacing) * 2)}.inset-y-3{inset-block:calc(var(--spacing) * 3)}.start-0{inset-inline-start:calc(var(--spacing) * 0)}.end-0{inset-inline-end:calc(var(--spacing) * 0)}.-top-0\.5{top:calc(var(--spacing) * -.5)}.-top-3{top:calc(var(--spacing) * -3)}.top-0{top:0}.top-0\.5{top:calc(var(--spacing) * .5)}.top-1\/2{top:50%}.top-2{top:calc(var(--spacing) * 2)}.top-2\.5{top:calc(var(--spacing) * 2.5)}.top-3{top:calc(var(--spacing) * 3)}.top-4{top:calc(var(--spacing) * 4)}.-right-0\.5{right:calc(var(--spacing) * -.5)}.right-0{right:0}.right-0\.5{right:calc(var(--spacing) * .5)}.right-2{right:calc(var(--spacing) * 2)}.right-2\.5{right:calc(var(--spacing) * 2.5)}.right-3{right:calc(var(--spacing) * 3)}.right-4{right:calc(var(--spacing) * 4)}.right-5{right:calc(var(--spacing) * 5)}.bottom-0{bottom:0}.bottom-3{bottom:calc(var(--spacing) * 3)}.bottom-4{bottom:calc(var(--spacing) * 4)}.bottom-5{bottom:calc(var(--spacing) * 5)}.bottom-14{bottom:calc(var(--spacing) * 14)}.left-0{left:0}.left-1\/2{left:50%}.left-2{left:calc(var(--spacing) * 2)}.left-4{left:calc(var(--spacing) * 4)}.isolate{isolation:isolate}.z-10{z-index:10}.z-20{z-index:20}.z-40{z-index:40}.z-50{z-index:50}.z-\[60\]{z-index:60}.z-\[100\]{z-index:100}.col-span-2{grid-column:span 2/span 2}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.-m-1\.5{margin:calc(var(--spacing) * -1.5)}.m-0{margin:0}.m-auto{margin:auto}.-mx-1{margin-inline:calc(var(--spacing) * -1)}.-mx-1\.5{margin-inline:calc(var(--spacing) * -1.5)}.-mx-2\.5{margin-inline:calc(var(--spacing) * -2.5)}.mx-0\.5{margin-inline:calc(var(--spacing) * .5)}.mx-1{margin-inline:var(--spacing)}.mx-3{margin-inline:calc(var(--spacing) * 3)}.mx-auto{margin-inline:auto}.-my-1{margin-block:calc(var(--spacing) * -1)}.my-0\.5{margin-block:calc(var(--spacing) * .5)}.my-1{margin-block:var(--spacing)}.my-4{margin-block:calc(var(--spacing) * 4)}.my-6{margin-block:calc(var(--spacing) * 6)}.prose{color:var(--tw-prose-body);max-width:65ch}.prose :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);margin-top:1.2em;margin-bottom:1.2em;font-size:1.25em;line-height:1.6}.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);font-weight:500;text-decoration:underline}.prose :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em;list-style-type:decimal}.prose :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em;list-style-type:disc}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-counters);font-weight:400}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.prose :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.25em;font-weight:600}.prose :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.prose :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-quotes);border-inline-start-width:.25rem;border-inline-start-color:var(--tw-prose-quote-borders);quotes:"“""”""‘""’";margin-top:1.6em;margin-bottom:1.6em;padding-inline-start:1em;font-style:italic;font-weight:500}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}.prose :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:0;margin-bottom:.888889em;font-size:2.25em;font-weight:800;line-height:1.11111}.prose :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:900}.prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:2em;margin-bottom:1em;font-size:1.5em;font-weight:700;line-height:1.33333}.prose :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:800}.prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.6em;margin-bottom:.6em;font-size:1.25em;font-weight:600;line-height:1.6}.prose :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:700}.prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.5em;margin-bottom:.5em;font-weight:600;line-height:1.5}.prose :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:700}.prose :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em;display:block}.prose :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-kbd);box-shadow:0 0 0 1px var(--tw-prose-kbd-shadows), 0 3px 0 var(--tw-prose-kbd-shadows);padding-top:.1875em;padding-inline-end:.375em;padding-bottom:.1875em;border-radius:.3125rem;padding-inline-start:.375em;font-family:inherit;font-size:.875em;font-weight:500}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-size:.875em;font-weight:600}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before,.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:"`"}.prose :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.prose :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.prose :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);padding-top:.857143em;padding-inline-end:1.14286em;padding-bottom:.857143em;border-radius:.375rem;margin-top:1.71429em;margin-bottom:1.71429em;padding-inline-start:1.14286em;font-size:.875em;font-weight:400;line-height:1.71429;overflow-x:auto}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit;background-color:#0000;border-width:0;border-radius:0;padding:0}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before,.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.prose :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){table-layout:auto;width:100%;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.71429}.prose :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.prose :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);vertical-align:bottom;padding-inline-end:.571429em;padding-bottom:.571429em;padding-inline-start:.571429em;font-weight:600}.prose :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.prose :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}.prose :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.prose :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.prose :where(th,td):not(:where([class~=not-prose],[class~=not-prose] *)){text-align:start}.prose :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);margin-top:.857143em;font-size:.875em;line-height:1.42857}.prose{--tw-prose-body:oklch(37.3% .034 259.733);--tw-prose-headings:oklch(21% .034 264.665);--tw-prose-lead:oklch(44.6% .03 256.802);--tw-prose-links:oklch(21% .034 264.665);--tw-prose-bold:oklch(21% .034 264.665);--tw-prose-counters:oklch(55.1% .027 264.364);--tw-prose-bullets:oklch(87.2% .01 258.338);--tw-prose-hr:oklch(92.8% .006 264.531);--tw-prose-quotes:oklch(21% .034 264.665);--tw-prose-quote-borders:oklch(92.8% .006 264.531);--tw-prose-captions:oklch(55.1% .027 264.364);--tw-prose-kbd:oklch(21% .034 264.665);--tw-prose-kbd-shadows:oklab(21% -.00316127 -.0338527/.1);--tw-prose-code:oklch(21% .034 264.665);--tw-prose-pre-code:oklch(92.8% .006 264.531);--tw-prose-pre-bg:oklch(27.8% .033 256.848);--tw-prose-th-borders:oklch(87.2% .01 258.338);--tw-prose-td-borders:oklch(92.8% .006 264.531);--tw-prose-invert-body:oklch(87.2% .01 258.338);--tw-prose-invert-headings:#fff;--tw-prose-invert-lead:oklch(70.7% .022 261.325);--tw-prose-invert-links:#fff;--tw-prose-invert-bold:#fff;--tw-prose-invert-counters:oklch(70.7% .022 261.325);--tw-prose-invert-bullets:oklch(44.6% .03 256.802);--tw-prose-invert-hr:oklch(37.3% .034 259.733);--tw-prose-invert-quotes:oklch(96.7% .003 264.542);--tw-prose-invert-quote-borders:oklch(37.3% .034 259.733);--tw-prose-invert-captions:oklch(70.7% .022 261.325);--tw-prose-invert-kbd:#fff;--tw-prose-invert-kbd-shadows:#ffffff1a;--tw-prose-invert-code:#fff;--tw-prose-invert-pre-code:oklch(87.2% .01 258.338);--tw-prose-invert-pre-bg:#00000080;--tw-prose-invert-th-borders:oklch(44.6% .03 256.802);--tw-prose-invert-td-borders:oklch(37.3% .034 259.733);font-size:1rem;line-height:1.75}.prose :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(.prose>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(.prose>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-inline-start:1.625em}.prose :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.571429em;padding-inline-end:.571429em;padding-bottom:.571429em;padding-inline-start:.571429em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.prose-lg{font-size:1.125rem;line-height:1.77778}.prose-lg :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.33333em;margin-bottom:1.33333em}.prose-lg :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.09091em;margin-bottom:1.09091em;font-size:1.22222em;line-height:1.45455}.prose-lg :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.66667em;margin-bottom:1.66667em;padding-inline-start:1em}.prose-lg :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:.833333em;font-size:2.66667em;line-height:1}.prose-lg :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.86667em;margin-bottom:1.06667em;font-size:1.66667em;line-height:1.33333}.prose-lg :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.66667em;margin-bottom:.666667em;font-size:1.33333em;line-height:1.5}.prose-lg :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.77778em;margin-bottom:.444444em;line-height:1.55556}.prose-lg :where(img):not(:where([class~=not-prose],[class~=not-prose] *)),.prose-lg :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.77778em;margin-bottom:1.77778em}.prose-lg :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose-lg :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.77778em;margin-bottom:1.77778em}.prose-lg :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.222222em;padding-inline-end:.444444em;padding-bottom:.222222em;border-radius:.3125rem;padding-inline-start:.444444em;font-size:.888889em}.prose-lg :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.888889em}.prose-lg :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.866667em}.prose-lg :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.875em}.prose-lg :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:1em;padding-inline-end:1.5em;padding-bottom:1em;border-radius:.375rem;margin-top:2em;margin-bottom:2em;padding-inline-start:1.5em;font-size:.888889em;line-height:1.75}.prose-lg :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)),.prose-lg :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.33333em;margin-bottom:1.33333em;padding-inline-start:1.55556em}.prose-lg :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.666667em;margin-bottom:.666667em}.prose-lg :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)),.prose-lg :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.444444em}.prose-lg :where(.prose-lg>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.888889em;margin-bottom:.888889em}.prose-lg :where(.prose-lg>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.33333em}.prose-lg :where(.prose-lg>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.33333em}.prose-lg :where(.prose-lg>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.33333em}.prose-lg :where(.prose-lg>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.33333em}.prose-lg :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.888889em;margin-bottom:.888889em}.prose-lg :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.33333em;margin-bottom:1.33333em}.prose-lg :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.33333em}.prose-lg :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.666667em;padding-inline-start:1.55556em}.prose-lg :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:3.11111em;margin-bottom:3.11111em}.prose-lg :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose-lg :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose-lg :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose-lg :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-lg :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.888889em;line-height:1.5}.prose-lg :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:.75em;padding-bottom:.75em;padding-inline-start:.75em}.prose-lg :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose-lg :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose-lg :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.75em;padding-inline-end:.75em;padding-bottom:.75em;padding-inline-start:.75em}.prose-lg :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose-lg :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose-lg :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.77778em;margin-bottom:1.77778em}.prose-lg :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose-lg :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1em;font-size:.888889em;line-height:1.5}.prose-lg :where(.prose-lg>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-lg :where(.prose-lg>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.prose-sm{font-size:.875rem;line-height:1.71429}.prose-sm :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.14286em;margin-bottom:1.14286em}.prose-sm :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.888889em;margin-bottom:.888889em;font-size:1.28571em;line-height:1.55556}.prose-sm :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.33333em;margin-bottom:1.33333em;padding-inline-start:1.11111em}.prose-sm :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:.8em;font-size:2.14286em;line-height:1.2}.prose-sm :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.6em;margin-bottom:.8em;font-size:1.42857em;line-height:1.4}.prose-sm :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.55556em;margin-bottom:.444444em;font-size:1.28571em;line-height:1.55556}.prose-sm :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.42857em;margin-bottom:.571429em;line-height:1.42857}.prose-sm :where(img):not(:where([class~=not-prose],[class~=not-prose] *)),.prose-sm :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.71429em;margin-bottom:1.71429em}.prose-sm :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose-sm :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.71429em;margin-bottom:1.71429em}.prose-sm :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.142857em;padding-inline-end:.357143em;padding-bottom:.142857em;border-radius:.3125rem;padding-inline-start:.357143em;font-size:.857143em}.prose-sm :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.857143em}.prose-sm :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.9em}.prose-sm :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.888889em}.prose-sm :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.666667em;padding-inline-end:1em;padding-bottom:.666667em;border-radius:.25rem;margin-top:1.66667em;margin-bottom:1.66667em;padding-inline-start:1em;font-size:.857143em;line-height:1.66667}.prose-sm :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)),.prose-sm :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.14286em;margin-bottom:1.14286em;padding-inline-start:1.57143em}.prose-sm :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.285714em;margin-bottom:.285714em}.prose-sm :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)),.prose-sm :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.428571em}.prose-sm :where(.prose-sm>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.571429em;margin-bottom:.571429em}.prose-sm :where(.prose-sm>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.14286em}.prose-sm :where(.prose-sm>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.14286em}.prose-sm :where(.prose-sm>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.14286em}.prose-sm :where(.prose-sm>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.14286em}.prose-sm :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.571429em;margin-bottom:.571429em}.prose-sm :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.14286em;margin-bottom:1.14286em}.prose-sm :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.14286em}.prose-sm :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.285714em;padding-inline-start:1.57143em}.prose-sm :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2.85714em;margin-bottom:2.85714em}.prose-sm :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose-sm :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose-sm :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose-sm :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-sm :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.857143em;line-height:1.5}.prose-sm :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:1em;padding-bottom:.666667em;padding-inline-start:1em}.prose-sm :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose-sm :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose-sm :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.666667em;padding-inline-end:1em;padding-bottom:.666667em;padding-inline-start:1em}.prose-sm :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose-sm :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose-sm :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.71429em;margin-bottom:1.71429em}.prose-sm :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose-sm :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.666667em;font-size:.857143em;line-height:1.33333}.prose-sm :where(.prose-sm>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-sm :where(.prose-sm>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.-mt-1{margin-top:calc(var(--spacing) * -1)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mt-12{margin-top:calc(var(--spacing) * 12)}.mt-14{margin-top:calc(var(--spacing) * 14)}.mt-auto{margin-top:auto}.-mr-1{margin-right:calc(var(--spacing) * -1)}.-mr-1\.5{margin-right:calc(var(--spacing) * -1.5)}.mr-1{margin-right:var(--spacing)}.mr-2{margin-right:calc(var(--spacing) * 2)}.-mb-px{margin-bottom:-1px}.mb-1{margin-bottom:var(--spacing)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-5{margin-bottom:calc(var(--spacing) * 5)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.mb-7{margin-bottom:calc(var(--spacing) * 7)}.mb-8{margin-bottom:calc(var(--spacing) * 8)}.-ml-2\.5{margin-left:calc(var(--spacing) * -2.5)}.ml-0\.5{margin-left:calc(var(--spacing) * .5)}.ml-1\.5{margin-left:calc(var(--spacing) * 1.5)}.ml-1\.75{margin-left:calc(var(--spacing) * 1.75)}.ml-auto{margin-left:auto}.line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-3{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.\!block{display:block!important}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.aspect-\[16\/9\]{aspect-ratio:16/9}.size-1{width:var(--spacing);height:var(--spacing)}.size-1\.5{width:calc(var(--spacing) * 1.5);height:calc(var(--spacing) * 1.5)}.size-2{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.size-2\.5{width:calc(var(--spacing) * 2.5);height:calc(var(--spacing) * 2.5)}.size-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.size-11{width:calc(var(--spacing) * 11);height:calc(var(--spacing) * 11)}.size-12{width:calc(var(--spacing) * 12);height:calc(var(--spacing) * 12)}.size-14{width:calc(var(--spacing) * 14);height:calc(var(--spacing) * 14)}.size-24{width:calc(var(--spacing) * 24);height:calc(var(--spacing) * 24)}.size-\[18px\]{width:18px;height:18px}.size-full{width:100%;height:100%}.h-0\.5{height:calc(var(--spacing) * .5)}.h-1{height:var(--spacing)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-1\/2{height:50%}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-12{height:calc(var(--spacing) * 12)}.h-14{height:calc(var(--spacing) * 14)}.h-16{height:calc(var(--spacing) * 16)}.h-20{height:calc(var(--spacing) * 20)}.h-24{height:calc(var(--spacing) * 24)}.h-32{height:calc(var(--spacing) * 32)}.h-40{height:calc(var(--spacing) * 40)}.h-44{height:calc(var(--spacing) * 44)}.h-48{height:calc(var(--spacing) * 48)}.h-52{height:calc(var(--spacing) * 52)}.h-56{height:calc(var(--spacing) * 56)}.h-64{height:calc(var(--spacing) * 64)}.h-72{height:calc(var(--spacing) * 72)}.h-80{height:calc(var(--spacing) * 80)}.h-96{height:calc(var(--spacing) * 96)}.h-\[400px\]{height:400px}.h-\[420px\]{height:420px}.h-\[440px\]{height:440px}.h-\[500px\]{height:500px}.h-\[520px\]{height:520px}.h-\[600px\]{height:600px}.h-\[640px\]{height:640px}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-60{max-height:calc(var(--spacing) * 60)}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-80{max-height:calc(var(--spacing) * 80)}.max-h-\[42vh\]{max-height:42vh}.max-h-\[45\%\]{max-height:45%}.max-h-\[85vh\]{max-height:85vh}.max-h-\[90\%\]{max-height:90%}.max-h-\[320px\]{max-height:320px}.max-h-full{max-height:100%}.min-h-0{min-height:0}.min-h-5{min-height:calc(var(--spacing) * 5)}.min-h-24{min-height:calc(var(--spacing) * 24)}.min-h-\[2\.6rem\]{min-height:2.6rem}.min-h-\[3\.75rem\]{min-height:3.75rem}.min-h-\[3rem\]{min-height:3rem}.min-h-\[6rem\]{min-height:6rem}.min-h-\[10rem\]{min-height:10rem}.min-h-\[32rem\]{min-height:32rem}.min-h-\[44px\]{min-height:44px}.min-h-\[260px\]{min-height:260px}.min-h-\[360px\]{min-height:360px}.min-h-full{min-height:100%}.min-h-screen{min-height:100vh}.w-0\.5{width:calc(var(--spacing) * .5)}.w-1{width:var(--spacing)}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-1\/2{width:50%}.w-1\/3{width:33.3333%}.w-1\/4{width:25%}.w-2{width:calc(var(--spacing) * 2)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-2\/3{width:66.6667%}.w-3{width:calc(var(--spacing) * 3)}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-3\/4{width:75%}.w-3\/5{width:60%}.w-4{width:calc(var(--spacing) * 4)}.w-4\/5{width:80%}.w-5{width:calc(var(--spacing) * 5)}.w-5\/6{width:83.3333%}.w-6{width:calc(var(--spacing) * 6)}.w-7{width:calc(var(--spacing) * 7)}.w-8{width:calc(var(--spacing) * 8)}.w-9{width:calc(var(--spacing) * 9)}.w-10{width:calc(var(--spacing) * 10)}.w-11{width:calc(var(--spacing) * 11)}.w-12{width:calc(var(--spacing) * 12)}.w-14{width:calc(var(--spacing) * 14)}.w-16{width:calc(var(--spacing) * 16)}.w-20{width:calc(var(--spacing) * 20)}.w-24{width:calc(var(--spacing) * 24)}.w-28{width:calc(var(--spacing) * 28)}.w-32{width:calc(var(--spacing) * 32)}.w-36{width:calc(var(--spacing) * 36)}.w-44{width:calc(var(--spacing) * 44)}.w-48{width:calc(var(--spacing) * 48)}.w-52{width:calc(var(--spacing) * 52)}.w-56{width:calc(var(--spacing) * 56)}.w-60{width:calc(var(--spacing) * 60)}.w-64{width:calc(var(--spacing) * 64)}.w-72{width:calc(var(--spacing) * 72)}.w-80{width:calc(var(--spacing) * 80)}.w-96{width:calc(var(--spacing) * 96)}.w-\[4px\]{width:4px}.w-\[32rem\]{width:32rem}.w-\[264px\]{width:264px}.w-\[280px\]{width:280px}.w-\[300px\]{width:300px}.w-\[360px\]{width:360px}.w-\[380px\]{width:380px}.w-\[400px\]{width:400px}.w-\[420px\]{width:420px}.w-\[460px\]{width:460px}.w-\[560px\]{width:560px}.w-\[min\(22rem\,80vw\)\]{width:min(22rem,80vw)}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.w-px{width:1px}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-5xl{max-width:var(--container-5xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-32{max-width:calc(var(--spacing) * 32)}.max-w-80{max-width:calc(var(--spacing) * 80)}.max-w-\[8rem\]{max-width:8rem}.max-w-\[10rem\]{max-width:10rem}.max-w-\[12rem\]{max-width:12rem}.max-w-\[85\%\]{max-width:85%}.max-w-\[420px\]{max-width:420px}.max-w-\[660px\]{max-width:660px}.max-w-\[720px\]{max-width:720px}.max-w-\[768px\]{max-width:768px}.max-w-\[880px\]{max-width:880px}.max-w-\[900px\]{max-width:900px}.max-w-\[min\(30rem\,calc\(100vw-2rem\)\)\]{max-width:min(30rem,100vw - 2rem)}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-none{max-width:none}.max-w-prose{max-width:65ch}.max-w-sm{max-width:var(--container-sm)}.max-w-xl{max-width:var(--container-xl)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:0}.min-w-5{min-width:calc(var(--spacing) * 5)}.min-w-6{min-width:calc(var(--spacing) * 6)}.min-w-9{min-width:calc(var(--spacing) * 9)}.min-w-60{min-width:calc(var(--spacing) * 60)}.min-w-\[1\.25rem\]{min-width:1.25rem}.min-w-\[8rem\]{min-width:8rem}.min-w-\[10rem\]{min-width:10rem}.min-w-\[12rem\]{min-width:12rem}.min-w-\[15rem\]{min-width:15rem}.min-w-\[24rem\]{min-width:24rem}.min-w-\[180px\]{min-width:180px}.min-w-\[240px\]{min-width:240px}.min-w-\[260px\]{min-width:260px}.flex-1{flex:1}.flex-shrink{flex-shrink:1}.flex-shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.flex-grow,.grow{flex-grow:1}.border-collapse{border-collapse:collapse}.origin-bottom{transform-origin:bottom}.origin-top{transform-origin:top}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-0\.5{--tw-translate-x:calc(var(--spacing) * .5);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-4{--tw-translate-x:calc(var(--spacing) * 4);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-0{--tw-translate-y:0;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-0\.5{--tw-translate-y:calc(var(--spacing) * .5);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-4{--tw-translate-y:calc(var(--spacing) * 4);translate:var(--tw-translate-x) var(--tw-translate-y)}.scale-95{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x) var(--tw-scale-y)}.scale-100{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x) var(--tw-scale-y)}.-rotate-90{rotate:-90deg}.rotate-45{rotate:45deg}.rotate-90{rotate:90deg}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-\[blink_1s_step-end_infinite\]{animation:1s step-end infinite blink}.animate-\[bounce-dots_1\.4s_ease-in-out_infinite\]{animation:1.4s ease-in-out infinite bounce-dots}.animate-\[loading-dots_1\.4s_infinite_0\.2s\]{animation:1.4s .2s infinite loading-dots}.animate-\[loading-dots_1\.4s_infinite_0\.4s\]{animation:1.4s .4s infinite loading-dots}.animate-\[loading-dots_1\.4s_infinite_0\.6s\]{animation:1.4s .6s infinite loading-dots}.animate-\[pulse-dot_1\.2s_ease-in-out_infinite\]{animation:1.2s ease-in-out infinite pulse-dot}.animate-\[shimmer_4s_infinite_linear\]{animation:4s linear infinite shimmer}.animate-\[spinner-fade_1\.2s_linear_infinite\]{animation:1.2s linear infinite spinner-fade}.animate-\[text-blink_2s_ease-in-out_infinite\]{animation:2s ease-in-out infinite text-blink}.animate-\[thin-pulse_1\.5s_ease-in-out_infinite\]{animation:1.5s ease-in-out infinite thin-pulse}.animate-\[typing_1s_infinite\]{animation:1s infinite typing}.animate-\[wave-bars_1\.2s_ease-in-out_infinite\]{animation:1.2s ease-in-out infinite wave-bars}.animate-\[wave_1s_ease-in-out_infinite\]{animation:1s ease-in-out infinite wave}.animate-in{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.animate-ping{animation:var(--animate-ping)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-col-resize{cursor:col-resize}.cursor-default{cursor:default}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.cursor-row-resize{cursor:row-resize}.cursor-text{cursor:text}.resize{resize:both}.resize-none{resize:none}.scroll-mt-4{scroll-margin-top:calc(var(--spacing) * 4)}.scrollbar-thin{scrollbar-width:thin}.list-disc{list-style-type:disc}.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-\[0fr\]{grid-template-columns:0fr}.grid-cols-\[1fr\]{grid-template-columns:1fr}.grid-cols-\[max-content_1fr\]{grid-template-columns:max-content 1fr}.grid-cols-\[min-content_minmax\(0\,1fr\)\]{grid-template-columns:min-content minmax(0,1fr)}.grid-rows-\[0fr\]{grid-template-rows:0fr}.grid-rows-\[1fr\]{grid-template-rows:1fr}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.\!gap-0{gap:0!important}.gap-0{gap:0}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-7{gap:calc(var(--spacing) * 7)}.gap-8{gap:calc(var(--spacing) * 8)}.gap-10{gap:calc(var(--spacing) * 10)}.gap-16{gap:calc(var(--spacing) * 16)}:where(.space-y-0>:not(:last-child)){--tw-space-y-reverse:0;margin-block:0}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-2{column-gap:calc(var(--spacing) * 2)}.gap-x-4{column-gap:calc(var(--spacing) * 4)}:where(.space-x-1>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(var(--spacing) * var(--tw-space-x-reverse));margin-inline-end:calc(var(--spacing) * calc(1 - var(--tw-space-x-reverse)))}.gap-y-1{row-gap:var(--spacing)}.gap-y-1\.5{row-gap:calc(var(--spacing) * 1.5)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-border>:not(:last-child)){border-color:var(--color-border)}.place-self-center{place-self:center}.self-center{align-self:center}.self-end{align-self:flex-end}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-clip{overflow:clip}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.overflow-y-hidden{overflow-y:hidden}.rounded{border-radius:var(--radius)}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-3xl{border-radius:var(--radius-3xl)}.rounded-\[5px\]{border-radius:5px}.rounded-\[12px\]{border-radius:12px}.rounded-\[var\(--kai-code-radius\,0\.75rem\)\]{border-radius:var(--kai-code-radius,.75rem)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-none{border-radius:0}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-t-sm{border-top-left-radius:var(--radius-sm);border-top-right-radius:var(--radius-sm)}.rounded-b-none{border-bottom-right-radius:0;border-bottom-left-radius:0}.rounded-br-sm{border-bottom-right-radius:var(--radius-sm)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-s{border-inline-start-style:var(--tw-border-style);border-inline-start-width:1px}.border-e{border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-dotted{--tw-border-style:dotted;border-style:dotted}.border-background\/30{border-color:var(--color-background)}@supports (color:color-mix(in lab, red, red)){.border-background\/30{border-color:color-mix(in oklab, var(--color-background) 30%, transparent)}}.border-border,.border-border\/60{border-color:var(--color-border)}@supports (color:color-mix(in lab, red, red)){.border-border\/60{border-color:color-mix(in oklab, var(--color-border) 60%, transparent)}}.border-destructive,.border-destructive\/30{border-color:var(--color-destructive)}@supports (color:color-mix(in lab, red, red)){.border-destructive\/30{border-color:color-mix(in oklab, var(--color-destructive) 30%, transparent)}}.border-destructive\/40{border-color:var(--color-destructive)}@supports (color:color-mix(in lab, red, red)){.border-destructive\/40{border-color:color-mix(in oklab, var(--color-destructive) 40%, transparent)}}.border-input{border-color:var(--color-input)}.border-muted-foreground\/50{border-color:var(--color-muted-foreground)}@supports (color:color-mix(in lab, red, red)){.border-muted-foreground\/50{border-color:color-mix(in oklab, var(--color-muted-foreground) 50%, transparent)}}.border-primary{border-color:var(--color-primary)}.border-red-400\/30{border-color:#ff65684d}@supports (color:color-mix(in lab, red, red)){.border-red-400\/30{border-color:color-mix(in oklab, var(--color-red-400) 30%, transparent)}}.border-ring,.border-ring\/50{border-color:var(--color-ring)}@supports (color:color-mix(in lab, red, red)){.border-ring\/50{border-color:color-mix(in oklab, var(--color-ring) 50%, transparent)}}.border-tool-amber,.border-tool-amber\/50{border-color:var(--color-tool-amber)}@supports (color:color-mix(in lab, red, red)){.border-tool-amber\/50{border-color:color-mix(in oklab, var(--color-tool-amber) 50%, transparent)}}.border-transparent{border-color:#0000}.border-t-transparent{border-top-color:#0000}.bg-\[\#161618\]{background-color:#161618}.bg-\[var\(--color-primary\)\]{background-color:var(--color-primary)}.bg-accent,.bg-accent\/40{background-color:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.bg-accent\/40{background-color:color-mix(in oklab, var(--color-accent) 40%, transparent)}}.bg-background,.bg-background\/40{background-color:var(--color-background)}@supports (color:color-mix(in lab, red, red)){.bg-background\/40{background-color:color-mix(in oklab, var(--color-background) 40%, transparent)}}.bg-background\/80{background-color:var(--color-background)}@supports (color:color-mix(in lab, red, red)){.bg-background\/80{background-color:color-mix(in oklab, var(--color-background) 80%, transparent)}}.bg-background\/85{background-color:var(--color-background)}@supports (color:color-mix(in lab, red, red)){.bg-background\/85{background-color:color-mix(in oklab, var(--color-background) 85%, transparent)}}.bg-black{background-color:var(--color-black)}.bg-black\/40{background-color:#0006}@supports (color:color-mix(in lab, red, red)){.bg-black\/40{background-color:color-mix(in oklab, var(--color-black) 40%, transparent)}}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab, red, red)){.bg-black\/50{background-color:color-mix(in oklab, var(--color-black) 50%, transparent)}}.bg-black\/60{background-color:#0009}@supports (color:color-mix(in lab, red, red)){.bg-black\/60{background-color:color-mix(in oklab, var(--color-black) 60%, transparent)}}.bg-border{background-color:var(--color-border)}.bg-card,.bg-card\/40{background-color:var(--color-card)}@supports (color:color-mix(in lab, red, red)){.bg-card\/40{background-color:color-mix(in oklab, var(--color-card) 40%, transparent)}}.bg-card\/80{background-color:var(--color-card)}@supports (color:color-mix(in lab, red, red)){.bg-card\/80{background-color:color-mix(in oklab, var(--color-card) 80%, transparent)}}.bg-current,.bg-current\/10{background-color:currentColor}@supports (color:color-mix(in lab, red, red)){.bg-current\/10{background-color:color-mix(in oklab, currentcolor 10%, transparent)}}.bg-current\/20{background-color:currentColor}@supports (color:color-mix(in lab, red, red)){.bg-current\/20{background-color:color-mix(in oklab, currentcolor 20%, transparent)}}.bg-destructive,.bg-destructive\/10{background-color:var(--color-destructive)}@supports (color:color-mix(in lab, red, red)){.bg-destructive\/10{background-color:color-mix(in oklab, var(--color-destructive) 10%, transparent)}}.bg-emerald-500{background-color:var(--color-emerald-500)}.bg-foreground,.bg-foreground\/10{background-color:var(--color-foreground)}@supports (color:color-mix(in lab, red, red)){.bg-foreground\/10{background-color:color-mix(in oklab, var(--color-foreground) 10%, transparent)}}.bg-muted{background-color:var(--color-muted)}.bg-muted-foreground,.bg-muted-foreground\/40{background-color:var(--color-muted-foreground)}@supports (color:color-mix(in lab, red, red)){.bg-muted-foreground\/40{background-color:color-mix(in oklab, var(--color-muted-foreground) 40%, transparent)}}.bg-muted\/30{background-color:var(--color-muted)}@supports (color:color-mix(in lab, red, red)){.bg-muted\/30{background-color:color-mix(in oklab, var(--color-muted) 30%, transparent)}}.bg-muted\/40{background-color:var(--color-muted)}@supports (color:color-mix(in lab, red, red)){.bg-muted\/40{background-color:color-mix(in oklab, var(--color-muted) 40%, transparent)}}.bg-muted\/50{background-color:var(--color-muted)}@supports (color:color-mix(in lab, red, red)){.bg-muted\/50{background-color:color-mix(in oklab, var(--color-muted) 50%, transparent)}}.bg-popover{background-color:var(--color-popover)}.bg-primary{background-color:var(--color-primary)}.bg-primary-foreground{background-color:var(--color-primary-foreground)}.bg-primary\/10{background-color:var(--color-primary)}@supports (color:color-mix(in lab, red, red)){.bg-primary\/10{background-color:color-mix(in oklab, var(--color-primary) 10%, transparent)}}.bg-primary\/15{background-color:var(--color-primary)}@supports (color:color-mix(in lab, red, red)){.bg-primary\/15{background-color:color-mix(in oklab, var(--color-primary) 15%, transparent)}}.bg-primary\/20{background-color:var(--color-primary)}@supports (color:color-mix(in lab, red, red)){.bg-primary\/20{background-color:color-mix(in oklab, var(--color-primary) 20%, transparent)}}.bg-primary\/\[0\.05\]{background-color:var(--color-primary)}@supports (color:color-mix(in lab, red, red)){.bg-primary\/\[0\.05\]{background-color:color-mix(in oklab, var(--color-primary) 5%, transparent)}}.bg-red-400{background-color:var(--color-red-400)}.bg-red-500\/10{background-color:#fb2c361a}@supports (color:color-mix(in lab, red, red)){.bg-red-500\/10{background-color:color-mix(in oklab, var(--color-red-500) 10%, transparent)}}.bg-ring{background-color:var(--color-ring)}.bg-secondary{background-color:var(--color-secondary)}.bg-sidebar{background-color:var(--color-sidebar)}.bg-sky-400\/10{background-color:#00bcfe1a}@supports (color:color-mix(in lab, red, red)){.bg-sky-400\/10{background-color:color-mix(in oklab, var(--color-sky-400) 10%, transparent)}}.bg-surface{background-color:var(--color-surface);background-color:var(--color-surface)}.bg-surface-strong{background-color:var(--color-surface-strong);background-color:var(--color-surface-strong)}.bg-surface-sunken{background-color:var(--color-surface-sunken);background-color:var(--color-surface-sunken)}.bg-surface-sunken\/50{background-color:var(--color-surface-sunken)}@supports (color:color-mix(in lab, red, red)){.bg-surface-sunken\/50{background-color:color-mix(in oklab, var(--color-surface-sunken) 50%, transparent)}}.bg-tool-amber,.bg-tool-amber\/10{background-color:var(--color-tool-amber)}@supports (color:color-mix(in lab, red, red)){.bg-tool-amber\/10{background-color:color-mix(in oklab, var(--color-tool-amber) 10%, transparent)}}.bg-tool-amber\/15{background-color:var(--color-tool-amber)}@supports (color:color-mix(in lab, red, red)){.bg-tool-amber\/15{background-color:color-mix(in oklab, var(--color-tool-amber) 15%, transparent)}}.bg-tool-blue,.bg-tool-blue\/12{background-color:var(--color-tool-blue)}@supports (color:color-mix(in lab, red, red)){.bg-tool-blue\/12{background-color:color-mix(in oklab, var(--color-tool-blue) 12%, transparent)}}.bg-tool-blue\/15{background-color:var(--color-tool-blue)}@supports (color:color-mix(in lab, red, red)){.bg-tool-blue\/15{background-color:color-mix(in oklab, var(--color-tool-blue) 15%, transparent)}}.bg-tool-green,.bg-tool-green\/12{background-color:var(--color-tool-green)}@supports (color:color-mix(in lab, red, red)){.bg-tool-green\/12{background-color:color-mix(in oklab, var(--color-tool-green) 12%, transparent)}}.bg-tool-green\/15{background-color:var(--color-tool-green)}@supports (color:color-mix(in lab, red, red)){.bg-tool-green\/15{background-color:color-mix(in oklab, var(--color-tool-green) 15%, transparent)}}.bg-tool-green\/60{background-color:var(--color-tool-green)}@supports (color:color-mix(in lab, red, red)){.bg-tool-green\/60{background-color:color-mix(in oklab, var(--color-tool-green) 60%, transparent)}}.bg-tool-red,.bg-tool-red\/15{background-color:var(--color-tool-red)}@supports (color:color-mix(in lab, red, red)){.bg-tool-red\/15{background-color:color-mix(in oklab, var(--color-tool-red) 15%, transparent)}}.bg-tool-red\/60{background-color:var(--color-tool-red)}@supports (color:color-mix(in lab, red, red)){.bg-tool-red\/60{background-color:color-mix(in oklab, var(--color-tool-red) 60%, transparent)}}.bg-transparent{background-color:#0000}.bg-unread{background-color:var(--color-unread)}.bg-violet-400\/10{background-color:#a685ff1a}@supports (color:color-mix(in lab, red, red)){.bg-violet-400\/10{background-color:color-mix(in oklab, var(--color-violet-400) 10%, transparent)}}.bg-white{background-color:var(--color-white)}.bg-yellow-400{background-color:var(--color-yellow-400)}.bg-gradient-to-br{--tw-gradient-position:to bottom right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-\[linear-gradient\(to_right\,var\(--color-muted-foreground\)_40\%\,var\(--color-foreground\)_60\%\,var\(--color-muted-foreground\)_80\%\)\]{background-image:linear-gradient(to right,var(--color-muted-foreground) 40%,var(--color-foreground) 60%,var(--color-muted-foreground) 80%)}.from-fuchsia-500{--tw-gradient-from:var(--color-fuchsia-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-zinc-800{--tw-gradient-from:var(--color-zinc-800);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-violet-600{--tw-gradient-to:var(--color-violet-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-zinc-950{--tw-gradient-to:var(--color-zinc-950);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.bg-size-\[200\%_auto\]{background-size:200%}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.fill-current{fill:currentColor}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.p-0{padding:0}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:var(--spacing)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-3\.5{padding:calc(var(--spacing) * 3.5)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-7{padding:calc(var(--spacing) * 7)}.p-8{padding:calc(var(--spacing) * 8)}.p-10{padding:calc(var(--spacing) * 10)}.p-16{padding:calc(var(--spacing) * 16)}.px-0{padding-inline:0}.px-0\.5{padding-inline:calc(var(--spacing) * .5)}.px-1{padding-inline:var(--spacing)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-3\.5{padding-inline:calc(var(--spacing) * 3.5)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0{padding-block:0}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-3\.5{padding-block:calc(var(--spacing) * 3.5)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-5{padding-block:calc(var(--spacing) * 5)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-7{padding-block:calc(var(--spacing) * 7)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-10{padding-block:calc(var(--spacing) * 10)}.py-12{padding-block:calc(var(--spacing) * 12)}.py-14{padding-block:calc(var(--spacing) * 14)}.py-16{padding-block:calc(var(--spacing) * 16)}.pt-1{padding-top:var(--spacing)}.pt-1\.5{padding-top:calc(var(--spacing) * 1.5)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-2\.5{padding-top:calc(var(--spacing) * 2.5)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-\[14vh\]{padding-top:14vh}.pr-1{padding-right:var(--spacing)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pr-9{padding-right:calc(var(--spacing) * 9)}.pb-0{padding-bottom:0}.pb-0\.5{padding-bottom:calc(var(--spacing) * .5)}.pb-1{padding-bottom:var(--spacing)}.pb-1\.5{padding-bottom:calc(var(--spacing) * 1.5)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-2\.5{padding-bottom:calc(var(--spacing) * 2.5)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-12{padding-bottom:calc(var(--spacing) * 12)}.pb-16{padding-bottom:calc(var(--spacing) * 16)}.pb-24{padding-bottom:calc(var(--spacing) * 24)}.pl-1{padding-left:var(--spacing)}.pl-1\.5{padding-left:calc(var(--spacing) * 1.5)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-2\.5{padding-left:calc(var(--spacing) * 2.5)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-5{padding-left:calc(var(--spacing) * 5)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.text-start{text-align:start}.align-middle{vertical-align:middle}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.font-serif{font-family:var(--font-serif)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-body{font-size:var(--text-body);line-height:var(--tw-leading,var(--text-body--line-height))}.text-caption{font-size:var(--text-caption);line-height:var(--tw-leading,var(--text-caption--line-height))}.text-compact{font-size:var(--text-compact);line-height:var(--tw-leading,var(--text-compact--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-meta{font-size:var(--text-meta);line-height:var(--tw-leading,var(--text-meta--line-height))}.text-micro{font-size:var(--text-micro);line-height:var(--tw-leading,var(--text-micro--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-title{font-size:var(--text-title);line-height:var(--tw-leading,var(--text-title--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[0\.625rem\]{font-size:.625rem}.text-\[0\.6875rem\]{font-size:.6875rem}.text-\[0\.8125rem\]{font-size:.8125rem}.text-\[0\.9375rem\]{font-size:.9375rem}.text-\[11px\]{font-size:11px}.text-\[13px\]{font-size:13px}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.text-balance{text-wrap:balance}.text-pretty{text-wrap:pretty}.break-words{overflow-wrap:break-word}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-\[\#d97757\]{color:#d97757}.text-\[var\(--color-primary\)\]{color:var(--color-primary)}.text-\[var\(--color-primary-foreground\,white\)\]{color:var(--color-primary-foreground,white)}.text-accent-foreground{color:var(--color-accent-foreground)}.text-background,.text-background\/70{color:var(--color-background)}@supports (color:color-mix(in lab, red, red)){.text-background\/70{color:color-mix(in oklab, var(--color-background) 70%, transparent)}}.text-blue-500{color:var(--color-blue-500)}.text-card-foreground{color:var(--color-card-foreground)}.text-current\/70{color:currentColor}@supports (color:color-mix(in lab, red, red)){.text-current\/70{color:color-mix(in oklab, currentcolor 70%, transparent)}}.text-current\/85{color:currentColor}@supports (color:color-mix(in lab, red, red)){.text-current\/85{color:color-mix(in oklab, currentcolor 85%, transparent)}}.text-destructive{color:var(--color-destructive)}.text-destructive-foreground{color:var(--color-destructive-foreground)}.text-emerald-400{color:var(--color-emerald-400)}.text-emerald-500{color:var(--color-emerald-500)}.text-emerald-600{color:var(--color-emerald-600)}.text-foreground,.text-foreground\/70{color:var(--color-foreground)}@supports (color:color-mix(in lab, red, red)){.text-foreground\/70{color:color-mix(in oklab, var(--color-foreground) 70%, transparent)}}.text-foreground\/75{color:var(--color-foreground)}@supports (color:color-mix(in lab, red, red)){.text-foreground\/75{color:color-mix(in oklab, var(--color-foreground) 75%, transparent)}}.text-foreground\/80{color:var(--color-foreground)}@supports (color:color-mix(in lab, red, red)){.text-foreground\/80{color:color-mix(in oklab, var(--color-foreground) 80%, transparent)}}.text-foreground\/90{color:var(--color-foreground)}@supports (color:color-mix(in lab, red, red)){.text-foreground\/90{color:color-mix(in oklab, var(--color-foreground) 90%, transparent)}}.text-green-500{color:var(--color-green-500)}.text-info{color:var(--color-info)}.text-inherit{color:inherit}.text-input{color:var(--color-input)}.text-muted-foreground,.text-muted-foreground\/40{color:var(--color-muted-foreground)}@supports (color:color-mix(in lab, red, red)){.text-muted-foreground\/40{color:color-mix(in oklab, var(--color-muted-foreground) 40%, transparent)}}.text-orange-500{color:var(--color-orange-500)}.text-popover-foreground{color:var(--color-popover-foreground)}.text-primary{color:var(--color-primary)}.text-primary-foreground{color:var(--color-primary-foreground)}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.text-sky-400{color:var(--color-sky-400)}.text-tool-amber{color:var(--color-tool-amber)}.text-tool-blue{color:var(--color-tool-blue)}.text-tool-green{color:var(--color-tool-green)}.text-tool-red{color:var(--color-tool-red)}.text-transparent{color:#0000}.text-violet-600{color:var(--color-violet-600)}.text-warning{color:var(--color-warning)}.text-white{color:var(--color-white)}.text-white\/70{color:#ffffffb3}@supports (color:color-mix(in lab, red, red)){.text-white\/70{color:color-mix(in oklab, var(--color-white) 70%, transparent)}}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.line-through{text-decoration-line:line-through}.no-underline{text-decoration-line:none}.underline{text-decoration-line:underline}.underline-offset-2{text-underline-offset:2px}.underline-offset-4{text-underline-offset:4px}.accent-foreground{accent-color:var(--color-foreground)}.opacity-0{opacity:0}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.opacity-80{opacity:.8}.opacity-90{opacity:.9}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-none{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring,.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.inset-ring-2{--tw-inset-ring-shadow:inset 0 0 0 2px var(--tw-inset-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-black\/5{--tw-ring-color:#0000000d}@supports (color:color-mix(in lab, red, red)){.ring-black\/5{--tw-ring-color:color-mix(in oklab, var(--color-black) 5%, transparent)}}.ring-border{--tw-ring-color:var(--color-border)}.ring-primary{--tw-ring-color:var(--color-primary)}.ring-ring,.ring-ring\/35{--tw-ring-color:var(--color-ring)}@supports (color:color-mix(in lab, red, red)){.ring-ring\/35{--tw-ring-color:color-mix(in oklab, var(--color-ring) 35%, transparent)}}.ring-tool-amber\/50{--tw-ring-color:var(--color-tool-amber)}@supports (color:color-mix(in lab, red, red)){.ring-tool-amber\/50{--tw-ring-color:color-mix(in oklab, var(--color-tool-amber) 50%, transparent)}}.ring-tool-amber\/60{--tw-ring-color:var(--color-tool-amber)}@supports (color:color-mix(in lab, red, red)){.ring-tool-amber\/60{--tw-ring-color:color-mix(in oklab, var(--color-tool-amber) 60%, transparent)}}.ring-offset-1{--tw-ring-offset-width:1px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.outline-2{outline-style:var(--tw-outline-style);outline-width:2px}.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,)}.grayscale{--tw-grayscale:grayscale(100%);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,)}.invert{--tw-invert:invert(100%);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{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[background-color\,border-color\,box-shadow\]{transition-property:background-color,border-color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[grid-template-columns\,opacity\]{transition-property:grid-template-columns,opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[grid-template-rows\]{transition-property:grid-template-rows;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[height\]{transition-property:height;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[max-height\]{transition-property:max-height;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[transform\,opacity\]{transition-property:transform,opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-linear{--tw-ease:linear;transition-timing-function:linear}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.fade-in-0{--tw-enter-opacity:0}.outline-none{--tw-outline-style:none;outline-style:none}.select-all{-webkit-user-select:all;user-select:all}.select-none{-webkit-user-select:none;user-select:none}.slide-in-from-bottom-10{--tw-enter-translate-y:calc(.1*100%)}.zoom-in-90{--tw-enter-scale:.9}.zoom-in-95{--tw-enter-scale:.95}.\[outline-style\:solid\]{outline-style:solid}.\[verify\:solid-coverage\]{verify:solid-coverage}.fade-in{--tw-enter-opacity:0}.paused{animation-play-state:paused}.ring-inset{--tw-ring-inset:inset}.running{animation-play-state:running}.slide-in-from-bottom-2{--tw-enter-translate-y:calc(2*var(--spacing))}.slide-in-from-top-4{--tw-enter-translate-y:calc(4*var(--spacing)*-1)}.zoom-in{--tw-enter-scale:0}.group-focus-within\:grid-rows-\[1fr\]:is(:where(.group):focus-within *){grid-template-rows:1fr}.group-focus-within\:opacity-100:is(:where(.group):focus-within *){opacity:1}@media (hover:hover){.group-hover\:grid-rows-\[1fr\]:is(:where(.group):hover *){grid-template-rows:1fr}.group-hover\:text-foreground:is(:where(.group):hover *){color:var(--color-foreground)}.group-hover\:opacity-0:is(:where(.group):hover *){opacity:0}.group-hover\:opacity-60:is(:where(.group):hover *){opacity:.6}.group-hover\:opacity-100:is(:where(.group):hover *),.group-hover\/btab\:opacity-100:is(:where(.group\/btab):hover *){opacity:1}.group-hover\/div\:bg-ring:is(:where(.group\/div):hover *){background-color:var(--color-ring)}.group-hover\/pane\:opacity-100:is(:where(.group\/pane):hover *){opacity:1}.group-hover\/rdiv\:bg-ring:is(:where(.group\/rdiv):hover *){background-color:var(--color-ring)}.group-hover\/tab\:inline:is(:where(.group\/tab):hover *){display:inline}.group-hover\/tab\:opacity-100:is(:where(.group\/tab):hover *),.group-hover\/ws\:opacity-100:is(:where(.group\/ws):hover *){opacity:1}}.group-data-\[expanded\]\:rotate-180:is(:where(.group)[data-expanded] *){rotate:180deg}.group-data-\[last\=false\]\:hidden:is(:where(.group)[data-last=false] *),.group-data-\[last\=true\]\:hidden:is(:where(.group)[data-last=true] *){display:none}.group-data-\[state\=open\]\:rotate-180:is(:where(.group)[data-state=open] *){rotate:180deg}.peer-disabled\:opacity-50:is(:where(.peer):disabled~*){opacity:.5}.placeholder\:text-muted-foreground::placeholder{color:var(--color-muted-foreground)}.before\:absolute:before{content:var(--tw-content);position:absolute}.before\:inset-0:before{content:var(--tw-content);inset:0}.before\:rounded-lg:before{content:var(--tw-content);border-radius:var(--radius-lg)}.before\:content-\[\'\'\]:before{--tw-content:"";content:var(--tw-content)}.last\:border-0:last-child{border-style:var(--tw-border-style);border-width:0}.last\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.focus-within\:border-ring:focus-within{border-color:var(--color-ring)}.focus-within\:ring-2:focus-within{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-within\:ring-ring:focus-within{--tw-ring-color:var(--color-ring)}.focus-within\:ring-offset-0:focus-within{--tw-ring-offset-width:0px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus-within\:outline-none:focus-within{--tw-outline-style:none;outline-style:none}@media (hover:hover){.hover\:border-foreground:hover{border-color:var(--color-foreground)}.hover\:border-muted-foreground\/70:hover{border-color:var(--color-muted-foreground)}@supports (color:color-mix(in lab, red, red)){.hover\:border-muted-foreground\/70:hover{border-color:color-mix(in oklab, var(--color-muted-foreground) 70%, transparent)}}.hover\:border-ring:hover{border-color:var(--color-ring)}.hover\:bg-accent:hover,.hover\:bg-accent\/40:hover{background-color:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-accent\/40:hover{background-color:color-mix(in oklab, var(--color-accent) 40%, transparent)}}.hover\:bg-background:hover,.hover\:bg-background\/10:hover{background-color:var(--color-background)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-background\/10:hover{background-color:color-mix(in oklab, var(--color-background) 10%, transparent)}}.hover\:bg-background\/70:hover{background-color:var(--color-background)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-background\/70:hover{background-color:color-mix(in oklab, var(--color-background) 70%, transparent)}}.hover\:bg-current\/15:hover{background-color:currentColor}@supports (color:color-mix(in lab, red, red)){.hover\:bg-current\/15:hover{background-color:color-mix(in oklab, currentcolor 15%, transparent)}}.hover\:bg-destructive\/15:hover{background-color:var(--color-destructive)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-destructive\/15:hover{background-color:color-mix(in oklab, var(--color-destructive) 15%, transparent)}}.hover\:bg-destructive\/80:hover{background-color:var(--color-destructive)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-destructive\/80:hover{background-color:color-mix(in oklab, var(--color-destructive) 80%, transparent)}}.hover\:bg-destructive\/90:hover{background-color:var(--color-destructive)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab, var(--color-destructive) 90%, transparent)}}.hover\:bg-hover:hover{background-color:var(--color-hover);background-color:var(--color-hover)}.hover\:bg-muted:hover{background-color:var(--color-muted)}.hover\:bg-muted-foreground\/30:hover{background-color:var(--color-muted-foreground)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-muted-foreground\/30:hover{background-color:color-mix(in oklab, var(--color-muted-foreground) 30%, transparent)}}.hover\:bg-muted\/30:hover{background-color:var(--color-muted)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-muted\/30:hover{background-color:color-mix(in oklab, var(--color-muted) 30%, transparent)}}.hover\:bg-muted\/50:hover{background-color:var(--color-muted)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-muted\/50:hover{background-color:color-mix(in oklab, var(--color-muted) 50%, transparent)}}.hover\:bg-muted\/60:hover{background-color:var(--color-muted)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-muted\/60:hover{background-color:color-mix(in oklab, var(--color-muted) 60%, transparent)}}.hover\:bg-muted\/80:hover{background-color:var(--color-muted)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-muted\/80:hover{background-color:color-mix(in oklab, var(--color-muted) 80%, transparent)}}.hover\:bg-primary\/90:hover{background-color:var(--color-primary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab, var(--color-primary) 90%, transparent)}}.hover\:bg-surface:hover{background-color:var(--color-surface);background-color:var(--color-surface)}.hover\:bg-surface-strong:hover{background-color:var(--color-surface-strong);background-color:var(--color-surface-strong)}.hover\:bg-surface-sunken:hover{background-color:var(--color-surface-sunken);background-color:var(--color-surface-sunken)}.hover\:bg-surface\/40:hover{background-color:var(--color-surface)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-surface\/40:hover{background-color:color-mix(in oklab, var(--color-surface) 40%, transparent)}}.hover\:bg-transparent:hover{background-color:#0000}.hover\:text-accent-foreground:hover{color:var(--color-accent-foreground)}.hover\:text-background:hover,.hover\:text-background\/80:hover{color:var(--color-background)}@supports (color:color-mix(in lab, red, red)){.hover\:text-background\/80:hover{color:color-mix(in oklab, var(--color-background) 80%, transparent)}}.hover\:text-current:hover{color:currentColor}.hover\:text-foreground:hover{color:var(--color-foreground)}.hover\:text-primary:hover,.hover\:text-primary\/80:hover{color:var(--color-primary)}@supports (color:color-mix(in lab, red, red)){.hover\:text-primary\/80:hover{color:color-mix(in oklab, var(--color-primary) 80%, transparent)}}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-80:hover{opacity:.8}.hover\:opacity-90:hover{opacity:.9}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-md:hover{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}}.focus\:bg-muted:focus{background-color:var(--color-muted)}.focus-visible\:opacity-100:focus-visible{opacity:1}.focus-visible\:ring-0:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-1:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color:var(--color-ring)}.focus-visible\:ring-offset-0:focus-visible{--tw-ring-offset-width:0px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus-visible\:ring-offset-1:focus-visible{--tw-ring-offset-width:1px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus-visible\:ring-offset-background:focus-visible{--tw-ring-offset-color:var(--color-background)}.focus-visible\:ring-offset-card:focus-visible{--tw-ring-offset-color:var(--color-card)}.focus-visible\:outline-2:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px}.focus-visible\:-outline-offset-2:focus-visible{outline-offset:calc(2px * -1)}.focus-visible\:outline-ring:focus-visible{outline-color:var(--color-ring)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.focus-visible\:\[outline-style\:solid\]:focus-visible{outline-style:solid}.focus-visible\:ring-inset:focus-visible{--tw-ring-inset:inset}.focus-visible\:before\:ring-2:focus-visible:before{content:var(--tw-content);--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:before\:ring-ring:focus-visible:before{content:var(--tw-content);--tw-ring-color:var(--color-ring)}.focus-visible\:before\:ring-inset:focus-visible:before{content:var(--tw-content);--tw-ring-inset:inset}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}.has-\[\:focus-visible\]\:ring-2:has(:focus-visible){--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.has-\[\:focus-visible\]\:ring-ring:has(:focus-visible){--tw-ring-color:var(--color-ring)}.has-\[\:focus-visible\]\:outline-none:has(:focus-visible){--tw-outline-style:none;outline-style:none}.has-\[\:focus-visible\]\:ring-inset:has(:focus-visible){--tw-ring-inset:inset}.data-\[closed\]\:animate-out[data-closed]{animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[closed\]\:fade-out-0[data-closed]{--tw-exit-opacity:0}.data-\[closed\]\:zoom-out-95[data-closed]{--tw-exit-scale:.95}.data-\[closed\]\:slide-out-to-bottom-2[data-closed]{--tw-exit-translate-y:calc(2*var(--spacing))}.data-\[closed\]\:slide-out-to-top-2[data-closed]{--tw-exit-translate-y:calc(2*var(--spacing)*-1)}.data-\[expanded\]\:bg-muted[data-expanded]{background-color:var(--color-muted)}.data-\[kai-highlighted\=true\]\:bg-current[data-kai-highlighted=true]{background-color:currentColor}.data-\[state\=closed\]\:animate-collapsible-up[data-state=closed]{animation:collapsible-up var(--tw-animation-duration,var(--tw-duration,.2s))var(--tw-ease,ease-out)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=open\]\:animate-collapsible-down[data-state=open]{animation:collapsible-down var(--tw-animation-duration,var(--tw-duration,.2s))var(--tw-ease,ease-out)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}@media (prefers-reduced-motion:no-preference){.motion-safe\:transition-\[grid-template-rows\]{transition-property:grid-template-rows;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.motion-safe\:transition-\[width\]{transition-property:width;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.motion-safe\:transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.motion-safe\:transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.motion-safe\:duration-200{--tw-duration:.2s;transition-duration:.2s}.motion-safe\:duration-500{--tw-duration:.5s;transition-duration:.5s}.motion-safe\:ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}@media (hover:hover){.motion-safe\:group-hover\:scale-110:is(:where(.group):hover *){--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x) var(--tw-scale-y)}.motion-safe\:group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}}@media (prefers-reduced-motion:reduce){.motion-reduce\:hidden{display:none}.motion-reduce\:animate-none{animation:none}}@media (min-width:40rem){.sm\:block{display:block}.sm\:flex{display:flex}.sm\:table-cell{display:table-cell}.sm\:w-2\.5{width:calc(var(--spacing) * 2.5)}.sm\:min-w-\[13rem\]{min-width:13rem}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.sm\:p-8{padding:calc(var(--spacing) * 8)}.sm\:px-8{padding-inline:calc(var(--spacing) * 8)}}@media (min-width:48rem){.md\:hidden{display:none}.md\:table-cell{display:table-cell}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:px-5{padding-inline:calc(var(--spacing) * 5)}.md\:pb-5{padding-bottom:calc(var(--spacing) * 5)}}@media (min-width:64rem){.lg\:col-span-2{grid-column:span 2/span 2}.lg\:table-cell{display:table-cell}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@container compare (min-width:640px){.\@\[640px\]\/compare\:block{display:block}.\@\[640px\]\/compare\:hidden{display:none}.\@\[640px\]\/compare\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@container (min-width:28rem){.\@min-\[28rem\]\:h-full{height:100%}.\@min-\[28rem\]\:w-48{width:calc(var(--spacing) * 48)}}.dark\:border-red-400\/50:is(.dark *){border-color:#ff656880}@supports (color:color-mix(in lab, red, red)){.dark\:border-red-400\/50:is(.dark *){border-color:color-mix(in oklab, var(--color-red-400) 50%, transparent)}}.dark\:border-red-400\/70:is(.dark *){border-color:#ff6568b3}@supports (color:color-mix(in lab, red, red)){.dark\:border-red-400\/70:is(.dark *){border-color:color-mix(in oklab, var(--color-red-400) 70%, transparent)}}.dark\:bg-destructive\/15:is(.dark *){background-color:var(--color-destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:bg-destructive\/15:is(.dark *){background-color:color-mix(in oklab, var(--color-destructive) 15%, transparent)}}.dark\:bg-destructive\/20:is(.dark *){background-color:var(--color-destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:bg-destructive\/20:is(.dark *){background-color:color-mix(in oklab, var(--color-destructive) 20%, transparent)}}.dark\:text-red-400:is(.dark *){color:var(--color-red-400)}.dark\:text-violet-400:is(.dark *){color:var(--color-violet-400)}.dark\:invert:is(.dark *){--tw-invert:invert(100%);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,)}.dark\:prose-invert:is(.dark *){--tw-prose-body:var(--tw-prose-invert-body);--tw-prose-headings:var(--tw-prose-invert-headings);--tw-prose-lead:var(--tw-prose-invert-lead);--tw-prose-links:var(--tw-prose-invert-links);--tw-prose-bold:var(--tw-prose-invert-bold);--tw-prose-counters:var(--tw-prose-invert-counters);--tw-prose-bullets:var(--tw-prose-invert-bullets);--tw-prose-hr:var(--tw-prose-invert-hr);--tw-prose-quotes:var(--tw-prose-invert-quotes);--tw-prose-quote-borders:var(--tw-prose-invert-quote-borders);--tw-prose-captions:var(--tw-prose-invert-captions);--tw-prose-kbd:var(--tw-prose-invert-kbd);--tw-prose-kbd-shadows:var(--tw-prose-invert-kbd-shadows);--tw-prose-code:var(--tw-prose-invert-code);--tw-prose-pre-code:var(--tw-prose-invert-pre-code);--tw-prose-pre-bg:var(--tw-prose-invert-pre-bg);--tw-prose-th-borders:var(--tw-prose-invert-th-borders);--tw-prose-td-borders:var(--tw-prose-invert-td-borders)}.\[\&_svg\]\:size-6 svg{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.\[\&\:\:-webkit-search-cancel-button\]\:hidden::-webkit-search-cancel-button{display:none}.\[\&\:\:-webkit-search-cancel-button\]\:appearance-none::-webkit-search-cancel-button{appearance:none}.\[\&\:\:-webkit-search-decoration\]\:appearance-none::-webkit-search-decoration{appearance:none}.\[\&\>a\]\:underline>a{text-decoration-line:underline}.\[\&\>a\]\:underline-offset-4>a{text-underline-offset:4px}.\[\&\>a\:hover\]\:text-primary>a:hover{color:var(--color-primary)}.\[\&\>button\]\:rounded>button{border-radius:var(--radius)}.\[\&\>button\]\:p-1>button{padding:var(--spacing)}.\[\&\>button\]\:text-foreground\/60>button{color:var(--color-foreground)}@supports (color:color-mix(in lab, red, red)){.\[\&\>button\]\:text-foreground\/60>button{color:color-mix(in oklab, var(--color-foreground) 60%, transparent)}}.\[\&\>button\]\:transition-colors>button{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}@media (hover:hover){.\[\&\>button\]\:hover\:text-foreground>button:hover{color:var(--color-foreground)}}.\[\&\>div\:first-child\>p\:first-child\]\:mt-0>div:first-child>p:first-child{margin-top:0}.\[\&\>div\:last-child\>p\:last-child\]\:mb-0>div:last-child>p:last-child{margin-bottom:0}.\[\&\>pre\]\:px-4>pre{padding-inline:calc(var(--spacing) * 4)}.\[\&\>pre\]\:py-4>pre{padding-block:calc(var(--spacing) * 4)}.\[\&\>svg\]\:size-2\.5>svg{width:calc(var(--spacing) * 2.5);height:calc(var(--spacing) * 2.5)}.\[\&\>svg\]\:size-3>svg{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.\[\&\>svg\]\:size-4>svg{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}.dark{--color-background:var(--kai-color-background,#171716);--color-foreground:var(--kai-color-foreground,#fafafa);--color-card:var(--kai-color-card,#201f1d);--color-card-foreground:var(--kai-color-card-foreground,#fafafa);--color-popover:var(--kai-color-popover,#201f1d);--color-popover-foreground:var(--kai-color-popover-foreground,#fafafa);--color-primary:var(--kai-color-primary,#fafafa);--color-primary-foreground:var(--kai-color-primary-foreground,#1d1d1b);--color-secondary:var(--kai-color-secondary,#2d2c2a);--color-secondary-foreground:var(--kai-color-secondary-foreground,#fafafa);--color-muted:var(--kai-color-muted,#2d2c2a);--color-muted-foreground:var(--kai-color-muted-foreground,#a7a5a0);--color-surface:var(--kai-color-surface,var(--color-muted))}@supports (color:color-mix(in lab, red, red)){.dark{--color-surface:var(--kai-color-surface,color-mix(in srgb, var(--color-muted) 40%, var(--color-background)))}}.dark{--color-surface-strong:var(--kai-color-surface-strong,var(--color-muted))}@supports (color:color-mix(in lab, red, red)){.dark{--color-surface-strong:var(--kai-color-surface-strong,color-mix(in srgb, var(--color-muted) 60%, var(--color-background)))}}.dark{--color-surface-sunken:var(--kai-color-surface-sunken,var(--color-muted))}@supports (color:color-mix(in lab, red, red)){.dark{--color-surface-sunken:var(--kai-color-surface-sunken,color-mix(in srgb, var(--color-muted) 18%, var(--color-background)))}}.dark{--color-accent:var(--kai-color-accent,#2d2c2a);--color-accent-foreground:var(--kai-color-accent-foreground,#fafafa);--color-destructive:var(--kai-color-destructive,#7f1d1d);--color-destructive-foreground:var(--kai-color-destructive-foreground,#fafafa);--color-success:var(--kai-color-success,#21c45d);--color-success-foreground:var(--kai-color-success-foreground,#1d1d1b);--color-warning:var(--kai-color-warning,#f59f0a);--color-warning-foreground:var(--kai-color-warning-foreground,#1d1d1b);--color-info:var(--kai-color-info,#6da2f8);--color-info-foreground:var(--kai-color-info-foreground,#1d1d1b);--color-success-soft:var(--kai-color-success-soft,var(--color-success))}@supports (color:color-mix(in lab, red, red)){.dark{--color-success-soft:var(--kai-color-success-soft,color-mix(in oklab, var(--color-success) 14%, var(--color-background)))}}.dark{--color-warning-soft:var(--kai-color-warning-soft,var(--color-warning))}@supports (color:color-mix(in lab, red, red)){.dark{--color-warning-soft:var(--kai-color-warning-soft,color-mix(in oklab, var(--color-warning) 14%, var(--color-background)))}}.dark{--color-info-soft:var(--kai-color-info-soft,var(--color-info))}@supports (color:color-mix(in lab, red, red)){.dark{--color-info-soft:var(--kai-color-info-soft,color-mix(in oklab, var(--color-info) 14%, var(--color-background)))}}.dark{--color-destructive-soft:var(--kai-color-destructive-soft,var(--color-destructive))}@supports (color:color-mix(in lab, red, red)){.dark{--color-destructive-soft:var(--kai-color-destructive-soft,color-mix(in oklab, var(--color-destructive) 14%, var(--color-background)))}}.dark{--color-hover:var(--kai-color-hover,var(--color-muted))}@supports (color:color-mix(in lab, red, red)){.dark{--color-hover:var(--kai-color-hover,color-mix(in oklab, var(--color-muted) 60%, var(--color-background)))}}.dark{--color-selected:var(--kai-color-selected,var(--color-primary))}@supports (color:color-mix(in lab, red, red)){.dark{--color-selected:var(--kai-color-selected,color-mix(in oklab, var(--color-primary) 8%, var(--color-background)))}}.dark{--color-unread:var(--kai-color-unread,#ef4343);--color-highlight:var(--kai-color-highlight,#745311);--color-selection:var(--kai-color-selection,#214683);--color-selection-foreground:var(--kai-color-selection-foreground,#fafafa);--color-border:var(--kai-color-border,#2d2c2a);--color-input:var(--kai-color-input,#7f7d76);--color-ring:var(--kai-color-ring,#639cf8);--color-scrollbar-thumb:var(--kai-color-scrollbar-thumb,#4f4e4a);--color-scrollbar-thumb-hover:var(--kai-color-scrollbar-thumb-hover,#6e6d68);--color-sidebar:var(--kai-color-sidebar,#121211);--color-code-foreground:var(--kai-color-code-foreground,#92c2fc);--color-tool-blue:var(--kai-color-tool-blue,#6da2f8);--color-tool-amber:var(--kai-color-tool-amber,#f59f0a);--color-tool-green:var(--kai-color-tool-green,#21c45d);--color-tool-red:var(--kai-color-tool-red,#f37272)}.chat-markdown{color:var(--color-foreground);line-height:1.6}.chat-markdown>div:first-child>:first-child{margin-top:0}.chat-markdown>div:last-child>:last-child{margin-bottom:0}.chat-markdown p{margin:0 0 .75em}.chat-markdown p:last-child{margin-bottom:0}.chat-markdown h1,.chat-markdown h2,.chat-markdown h3,.chat-markdown h4{color:var(--color-foreground);margin:1.2em 0 .5em;font-weight:600;line-height:1.3}.chat-markdown h1{font-size:1.4em}.chat-markdown h2{font-size:1.25em}.chat-markdown h3{font-size:1.1em}.chat-markdown h4{font-size:1em}.chat-markdown ul,.chat-markdown ol{margin:0 0 .75em;padding-left:1.4em}.chat-markdown li{margin:.2em 0}.chat-markdown ul{list-style:outside}.chat-markdown ol{list-style:decimal}.chat-markdown a{color:var(--color-primary);text-underline-offset:2px;text-decoration:underline}.chat-markdown strong{color:var(--color-foreground);font-weight:600}.chat-markdown em{font-style:italic}.chat-markdown blockquote{border-left:2px solid var(--color-border);color:var(--color-muted-foreground);margin:0 0 .75em;padding-left:.9em}.chat-markdown hr{border:0;border-top:1px solid var(--color-border);margin:1em 0}.chat-markdown code:not(pre code){background:var(--color-code-foreground)}@supports (color:color-mix(in lab, red, red)){.chat-markdown code:not(pre code){background:color-mix(in oklab, var(--color-code-foreground) 15%, transparent)}}.chat-markdown code:not(pre code){color:var(--color-code-foreground);font-size:.875em;font-family:var(--kai-font-code,ui-monospace, "SF Mono", Menlo, monospace);border-radius:4px;padding:.1em .35em}.chat-markdown table{border-collapse:collapse;width:100%;margin:0 0 .75em;font-size:.9em}.chat-markdown th,.chat-markdown td{border:1px solid var(--color-border);text-align:left;padding:.4em .6em}.chat-markdown th{background:var(--color-muted-foreground);font-weight:600}@supports (color:color-mix(in lab, red, red)){.chat-markdown th{background:color-mix(in oklab, var(--color-muted-foreground) 8%, transparent)}}.kai-elevation{box-shadow:0 4px 12px -2px var(--kai-shadow-color,oklch(0% 0 0)), 0 2px 6px -2px var(--kai-shadow-color,oklch(0% 0 0))}@supports (color:color-mix(in lab, red, red)){.kai-elevation{box-shadow:0 4px 12px -2px color-mix(in oklab, var(--kai-shadow-color,oklch(0% 0 0)) 14%, transparent), 0 2px 6px -2px color-mix(in oklab, var(--kai-shadow-color,oklch(0% 0 0)) 10%, transparent)}}.kai-elevation-sm{box-shadow:0 1px 2px 0 var(--kai-shadow-color,oklch(0% 0 0))}@supports (color:color-mix(in lab, red, red)){.kai-elevation-sm{box-shadow:0 1px 2px 0 color-mix(in oklab, var(--kai-shadow-color,oklch(0% 0 0)) 8%, transparent)}}.scrollbar-thin{scrollbar-width:thin;scrollbar-color:var(--color-scrollbar-thumb) transparent}.scrollbar-thin::-webkit-scrollbar{width:8px;height:8px}.scrollbar-thin::-webkit-scrollbar-track{background:0 0}.scrollbar-thin::-webkit-scrollbar-thumb{background-color:var(--color-scrollbar-thumb);background-clip:padding-box;border:2px solid #0000;border-radius:9999px}.scrollbar-thin::-webkit-scrollbar-thumb:hover{background-color:var(--color-scrollbar-thumb-hover)}.scrollbar-thin::-webkit-scrollbar-corner{background:0 0}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@keyframes spin{to{transform:rotate(360deg)}}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}@keyframes pulse{50%{opacity:.5}}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0));filter:blur(var(--tw-enter-blur,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0));filter:blur(var(--tw-exit-blur,0))}}@keyframes collapsible-down{0%{opacity:0;height:0}to{height:var(--kb-collapsible-content-height);opacity:1}}@keyframes collapsible-up{0%{height:var(--kb-collapsible-content-height);opacity:1}to{opacity:0;height:0}}@keyframes typing{0%,to{opacity:.5;transform:translateY(0)}50%{opacity:1;transform:translateY(-2px)}}@keyframes loading-dots{0%,to{opacity:0}50%{opacity:1}}@keyframes wave{0%,to{transform:scaleY(1)}50%{transform:scaleY(.6)}}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}@keyframes text-blink{0%,to{color:var(--color-primary)}50%{color:var(--color-muted-foreground)}}@keyframes bounce-dots{0%,to{opacity:.5;transform:scale(.8)}50%{opacity:1;transform:scale(1.2)}}@keyframes thin-pulse{0%,to{opacity:.8;transform:scale(.95)}50%{opacity:.4;transform:scale(1.05)}}@keyframes pulse-dot{0%,to{opacity:.8;transform:scale(1)}50%{opacity:1;transform:scale(1.5)}}@keyframes wave-bars{0%,to{opacity:.5;transform:scaleY(1)}50%{opacity:1;transform:scaleY(.6)}}@keyframes shimmer{0%{background-position:200%}to{background-position:-200%}}@keyframes spinner-fade{0%{opacity:0}to{opacity:1}}
|