@declarion/react 0.1.34 → 0.1.45
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/dist-lib/JsonEditor-ByVfvrpB.js +71 -0
- package/dist-lib/JsonEditor-ByVfvrpB.js.map +1 -0
- package/dist-lib/api/data.d.ts +28 -0
- package/dist-lib/api/params.d.ts +1 -1
- package/dist-lib/components/list/PeekFieldCell.d.ts +16 -0
- package/dist-lib/components/list/QuickPeek.d.ts +11 -4
- package/dist-lib/components/list/peekDraftStore.d.ts +6 -0
- package/dist-lib/components/primitives/RecordIdBadge.d.ts +8 -0
- package/dist-lib/components/primitives/SectionCard.d.ts +8 -1
- package/dist-lib/components/primitives/index.d.ts +3 -1
- package/dist-lib/declarion-react.css +1 -1
- package/dist-lib/index.js +4662 -4402
- package/dist-lib/index.js.map +1 -1
- package/dist-lib/stores/appearance.d.ts +6 -2
- package/dist-lib/types/api.d.ts +4 -3
- package/dist-lib/types/schema.d.ts +11 -65
- package/package.json +1 -1
- package/dist-lib/JsonEditor-C5NOzsey.js +0 -71
- package/dist-lib/JsonEditor-C5NOzsey.js.map +0 -1
- package/dist-lib/lib/theme-utils.d.ts +0 -3
- package/dist-lib/stores/theme.d.ts +0 -10
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { jsx as b } from "react/jsx-runtime";
|
|
2
|
+
import { useRef as i, useEffect as a } from "react";
|
|
3
|
+
import { Mode as l, createJSONEditor as E } from "vanilla-jsoneditor";
|
|
4
|
+
import "vanilla-jsoneditor/themes/jse-theme-dark.css";
|
|
5
|
+
function p(t) {
|
|
6
|
+
if (t == null) return { text: "" };
|
|
7
|
+
if (typeof t == "string")
|
|
8
|
+
try {
|
|
9
|
+
return { json: JSON.parse(t) };
|
|
10
|
+
} catch {
|
|
11
|
+
return { text: t };
|
|
12
|
+
}
|
|
13
|
+
return { json: t };
|
|
14
|
+
}
|
|
15
|
+
function N({ value: t, onChange: u, readOnly: e }) {
|
|
16
|
+
const o = i(null), s = i(null), n = i(u);
|
|
17
|
+
return a(() => {
|
|
18
|
+
n.current = u;
|
|
19
|
+
}, [u]), a(() => {
|
|
20
|
+
if (!o.current) return;
|
|
21
|
+
const j = {
|
|
22
|
+
content: p(t),
|
|
23
|
+
readOnly: e ?? !1,
|
|
24
|
+
mode: e ? l.tree : l.text,
|
|
25
|
+
mainMenuBar: !e,
|
|
26
|
+
navigationBar: !1,
|
|
27
|
+
statusBar: !1,
|
|
28
|
+
onChange: (r, c, x) => {
|
|
29
|
+
if (!(e || !n.current) && !x.contentErrors) {
|
|
30
|
+
if ("json" in r)
|
|
31
|
+
n.current(r.json);
|
|
32
|
+
else if ("text" in r)
|
|
33
|
+
try {
|
|
34
|
+
n.current(JSON.parse(r.text));
|
|
35
|
+
} catch {
|
|
36
|
+
n.current(r.text);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}, f = () => {
|
|
41
|
+
var c;
|
|
42
|
+
const r = document.documentElement.dataset.theme === "dark";
|
|
43
|
+
(c = o.current) == null || c.classList.toggle("jse-theme-dark", r);
|
|
44
|
+
};
|
|
45
|
+
f();
|
|
46
|
+
const m = new MutationObserver(f);
|
|
47
|
+
m.observe(document.documentElement, {
|
|
48
|
+
attributes: !0,
|
|
49
|
+
attributeFilter: ["data-theme"]
|
|
50
|
+
});
|
|
51
|
+
const d = E({
|
|
52
|
+
target: o.current,
|
|
53
|
+
props: j
|
|
54
|
+
});
|
|
55
|
+
return s.current = d, () => {
|
|
56
|
+
m.disconnect(), d.destroy(), s.current = null;
|
|
57
|
+
};
|
|
58
|
+
}, [e]), a(() => {
|
|
59
|
+
!s.current || !e || s.current.updateProps({ content: p(t) });
|
|
60
|
+
}, [t, e]), /* @__PURE__ */ b(
|
|
61
|
+
"div",
|
|
62
|
+
{
|
|
63
|
+
ref: o,
|
|
64
|
+
className: e ? "json-editor-readonly" : "json-editor-editable"
|
|
65
|
+
}
|
|
66
|
+
);
|
|
67
|
+
}
|
|
68
|
+
export {
|
|
69
|
+
N as JsonEditor
|
|
70
|
+
};
|
|
71
|
+
//# sourceMappingURL=JsonEditor-ByVfvrpB.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"JsonEditor-ByVfvrpB.js","sources":["../src/components/fields/JsonEditor.tsx"],"sourcesContent":["import { useRef, useEffect } from \"react\";\nimport {\n createJSONEditor,\n Mode,\n type Content,\n type OnChangeStatus,\n type JSONEditorPropsOptional,\n} from \"vanilla-jsoneditor\";\n// Dark theme CSS vars for vanilla-jsoneditor (sets --jse-* custom properties)\nimport \"vanilla-jsoneditor/themes/jse-theme-dark.css\";\n\ninterface JsonEditorProps {\n value: unknown;\n onChange?: (value: unknown) => void;\n readOnly?: boolean;\n // Future: JSON Schema for in-editor validation (Ajv). Accept now, wire later.\n schema?: Record<string, unknown>;\n}\n\nfunction toContent(v: unknown): Content {\n if (v == null) return { text: \"\" };\n if (typeof v === \"string\") {\n try {\n return { json: JSON.parse(v) };\n } catch {\n return { text: v };\n }\n }\n return { json: v };\n}\n\nexport function JsonEditor({ value, onChange, readOnly }: JsonEditorProps) {\n const containerRef = useRef<HTMLDivElement>(null);\n const editorRef = useRef<ReturnType<typeof createJSONEditor> | null>(null);\n const onChangeRef = useRef(onChange);\n useEffect(() => { onChangeRef.current = onChange; }, [onChange]);\n\n // Create / recreate editor when readOnly changes\n useEffect(() => {\n if (!containerRef.current) return;\n\n const props: JSONEditorPropsOptional = {\n content: toContent(value),\n readOnly: readOnly ?? false,\n mode: readOnly ? Mode.tree : Mode.text,\n mainMenuBar: !readOnly,\n navigationBar: false,\n statusBar: false,\n onChange: (content: Content, _prev: Content, status: OnChangeStatus) => {\n if (readOnly || !onChangeRef.current) return;\n if (status.contentErrors) return;\n if (\"json\" in content) {\n onChangeRef.current(content.json);\n } else if (\"text\" in content) {\n try {\n onChangeRef.current(JSON.parse(content.text));\n } catch {\n onChangeRef.current(content.text);\n }\n }\n },\n };\n\n const syncDarkClass = () => {\n const isDark = document.documentElement.dataset.theme === \"dark\";\n containerRef.current?.classList.toggle(\"jse-theme-dark\", isDark);\n };\n syncDarkClass();\n\n // Watch for theme attribute changes on <html>.\n const observer = new MutationObserver(syncDarkClass);\n observer.observe(document.documentElement, {\n attributes: true,\n attributeFilter: [\"data-theme\"],\n });\n\n const editor = createJSONEditor({\n target: containerRef.current,\n props,\n });\n editorRef.current = editor;\n\n return () => {\n observer.disconnect();\n editor.destroy();\n editorRef.current = null;\n };\n }, [readOnly]); // eslint-disable-line react-hooks/exhaustive-deps\n\n // Update content when value changes externally (read-only mode only)\n useEffect(() => {\n if (!editorRef.current || !readOnly) return;\n editorRef.current.updateProps({ content: toContent(value) });\n }, [value, readOnly]);\n\n return (\n <div\n ref={containerRef}\n className={readOnly ? \"json-editor-readonly\" : \"json-editor-editable\"}\n />\n );\n}\n"],"names":["toContent","v","JsonEditor","value","onChange","readOnly","containerRef","useRef","editorRef","onChangeRef","useEffect","props","Mode","content","_prev","status","syncDarkClass","isDark","_a","observer","editor","createJSONEditor","jsx"],"mappings":";;;;AAmBA,SAASA,EAAUC,GAAqB;AACtC,MAAIA,KAAK,KAAM,QAAO,EAAE,MAAM,GAAA;AAC9B,MAAI,OAAOA,KAAM;AACf,QAAI;AACF,aAAO,EAAE,MAAM,KAAK,MAAMA,CAAC,EAAA;AAAA,IAC7B,QAAQ;AACN,aAAO,EAAE,MAAMA,EAAA;AAAA,IACjB;AAEF,SAAO,EAAE,MAAMA,EAAA;AACjB;AAEO,SAASC,EAAW,EAAE,OAAAC,GAAO,UAAAC,GAAU,UAAAC,KAA6B;AACzE,QAAMC,IAAeC,EAAuB,IAAI,GAC1CC,IAAYD,EAAmD,IAAI,GACnEE,IAAcF,EAAOH,CAAQ;AACnC,SAAAM,EAAU,MAAM;AAAE,IAAAD,EAAY,UAAUL;AAAA,EAAU,GAAG,CAACA,CAAQ,CAAC,GAG/DM,EAAU,MAAM;AACd,QAAI,CAACJ,EAAa,QAAS;AAE3B,UAAMK,IAAiC;AAAA,MACrC,SAASX,EAAUG,CAAK;AAAA,MACxB,UAAUE,KAAY;AAAA,MACtB,MAAMA,IAAWO,EAAK,OAAOA,EAAK;AAAA,MAClC,aAAa,CAACP;AAAA,MACd,eAAe;AAAA,MACf,WAAW;AAAA,MACX,UAAU,CAACQ,GAAkBC,GAAgBC,MAA2B;AACtE,YAAI,EAAAV,KAAY,CAACI,EAAY,YACzB,CAAAM,EAAO;AACX,cAAI,UAAUF;AACZ,YAAAJ,EAAY,QAAQI,EAAQ,IAAI;AAAA,mBACvB,UAAUA;AACnB,gBAAI;AACF,cAAAJ,EAAY,QAAQ,KAAK,MAAMI,EAAQ,IAAI,CAAC;AAAA,YAC9C,QAAQ;AACN,cAAAJ,EAAY,QAAQI,EAAQ,IAAI;AAAA,YAClC;AAAA;AAAA,MAEJ;AAAA,IAAA,GAGIG,IAAgB,MAAM;;AAC1B,YAAMC,IAAS,SAAS,gBAAgB,QAAQ,UAAU;AAC1D,OAAAC,IAAAZ,EAAa,YAAb,QAAAY,EAAsB,UAAU,OAAO,kBAAkBD;AAAA,IAC3D;AACA,IAAAD,EAAA;AAGA,UAAMG,IAAW,IAAI,iBAAiBH,CAAa;AACnD,IAAAG,EAAS,QAAQ,SAAS,iBAAiB;AAAA,MACzC,YAAY;AAAA,MACZ,iBAAiB,CAAC,YAAY;AAAA,IAAA,CAC/B;AAED,UAAMC,IAASC,EAAiB;AAAA,MAC9B,QAAQf,EAAa;AAAA,MACrB,OAAAK;AAAA,IAAA,CACD;AACD,WAAAH,EAAU,UAAUY,GAEb,MAAM;AACX,MAAAD,EAAS,WAAA,GACTC,EAAO,QAAA,GACPZ,EAAU,UAAU;AAAA,IACtB;AAAA,EACF,GAAG,CAACH,CAAQ,CAAC,GAGbK,EAAU,MAAM;AACd,IAAI,CAACF,EAAU,WAAW,CAACH,KAC3BG,EAAU,QAAQ,YAAY,EAAE,SAASR,EAAUG,CAAK,GAAG;AAAA,EAC7D,GAAG,CAACA,GAAOE,CAAQ,CAAC,GAGlB,gBAAAiB;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAKhB;AAAA,MACL,WAAWD,IAAW,yBAAyB;AAAA,IAAA;AAAA,EAAA;AAGrD;"}
|
package/dist-lib/api/data.d.ts
CHANGED
|
@@ -21,6 +21,34 @@ export interface ActionExecuteResponse {
|
|
|
21
21
|
object_count?: number;
|
|
22
22
|
/** IDs that succeeded (batch_mode: each responses). */
|
|
23
23
|
success?: string[];
|
|
24
|
+
/** Per-item errors (batch_mode: each responses with failures or partial). */
|
|
25
|
+
errors?: ActionItemError[];
|
|
26
|
+
/** Per-item skips (batch_mode: each responses where conditions filtered rows). */
|
|
27
|
+
skipped?: ActionItemSkip[];
|
|
28
|
+
}
|
|
29
|
+
export interface ActionItemError {
|
|
30
|
+
id: string;
|
|
31
|
+
error: string;
|
|
32
|
+
/** Sidecar DeclarionCode when available (e.g. VALIDATION_ERROR), else "". */
|
|
33
|
+
code?: string;
|
|
34
|
+
}
|
|
35
|
+
export interface ActionItemSkip {
|
|
36
|
+
id: string;
|
|
37
|
+
reason: string;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Thrown by executeAction when the platform returns 4xx with the invoke:each
|
|
41
|
+
* batch shape (all items failed). Carries the per-item details so the UI can
|
|
42
|
+
* render a meaningful toast instead of a generic "request failed".
|
|
43
|
+
*
|
|
44
|
+
* Pre-dispatch failures (auth, unknown action, invoke-shape mismatch) keep
|
|
45
|
+
* throwing the standard ApiError; use `instanceof ActionBatchError` to
|
|
46
|
+
* distinguish.
|
|
47
|
+
*/
|
|
48
|
+
export declare class ActionBatchError extends Error {
|
|
49
|
+
readonly status: number;
|
|
50
|
+
readonly response: ActionExecuteResponse;
|
|
51
|
+
constructor(status: number, response: ActionExecuteResponse);
|
|
24
52
|
}
|
|
25
53
|
/**
|
|
26
54
|
* Build a flat action body from handler params + optional object IDs.
|
package/dist-lib/api/params.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { PublicParamsResponse, ResolvedParam } from "../types/api";
|
|
2
2
|
/**
|
|
3
3
|
* Fetches the full pre-login envelope from /api/params/public:
|
|
4
|
-
* {parameters,
|
|
4
|
+
* {parameters, accents, branding}. Used by AuthShell to theme
|
|
5
5
|
* unauthenticated screens before any user context exists.
|
|
6
6
|
*/
|
|
7
7
|
export declare function fetchPublicParams(): Promise<PublicParamsResponse>;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type RefsMap } from "../../components/fields";
|
|
2
|
+
import type { EntityField } from "../../types/schema";
|
|
3
|
+
export interface PeekFieldCellProps {
|
|
4
|
+
field: EntityField;
|
|
5
|
+
fieldName: string;
|
|
6
|
+
/** User-facing localized label — drives the `aria-label` so screen
|
|
7
|
+
* readers speak the display name, not the raw schema key. */
|
|
8
|
+
label: string;
|
|
9
|
+
value: unknown;
|
|
10
|
+
record?: Record<string, unknown>;
|
|
11
|
+
refs?: RefsMap;
|
|
12
|
+
readOnly?: boolean;
|
|
13
|
+
/** Fired exactly once per explicit user commit. */
|
|
14
|
+
onCommit: (next: unknown) => void;
|
|
15
|
+
}
|
|
16
|
+
export declare function PeekFieldCell({ field, fieldName, label, value, record, refs, readOnly, onCommit, }: PeekFieldCellProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
import { type ReactNode } from "react";
|
|
2
|
-
import { type Action, type Screen } from "../../types/schema";
|
|
2
|
+
import { type Action, type Screen, type EntityField } from "../../types/schema";
|
|
3
|
+
import type { RefsMap } from "../../components/fields";
|
|
3
4
|
export interface QuickPeekFieldSpec {
|
|
4
5
|
key: string;
|
|
5
6
|
label: string;
|
|
6
|
-
|
|
7
|
+
/** Entity field metadata; drives type-specific display + edit renderers. */
|
|
8
|
+
field: EntityField;
|
|
9
|
+
/** Read-only when the schema forbids edits, RBAC denies write, or the
|
|
10
|
+
* field is primary/auto/computed/ref. */
|
|
11
|
+
readOnly?: boolean;
|
|
7
12
|
}
|
|
8
13
|
export interface QuickPeekProps<R extends Record<string, unknown> = Record<string, unknown>> {
|
|
9
14
|
record: R;
|
|
@@ -11,6 +16,8 @@ export interface QuickPeekProps<R extends Record<string, unknown> = Record<strin
|
|
|
11
16
|
recordId?: string;
|
|
12
17
|
avatarName?: string;
|
|
13
18
|
fields: QuickPeekFieldSpec[];
|
|
19
|
+
/** $refs payload from the list/detail API; used by RefField-style renderers. */
|
|
20
|
+
refs?: RefsMap;
|
|
14
21
|
/** Full screen YAML — honors `screen.quick_peek.width` and `quick_peek.primary_action`. */
|
|
15
22
|
screen?: Screen;
|
|
16
23
|
/** All actions available on this record. */
|
|
@@ -25,10 +32,10 @@ export interface QuickPeekProps<R extends Record<string, unknown> = Record<strin
|
|
|
25
32
|
* ShellDetailPage.initialDirty + initial values from this draft.
|
|
26
33
|
*/
|
|
27
34
|
onOpen: (draft: R | null) => void;
|
|
28
|
-
/**
|
|
35
|
+
/** Fires once per explicit user commit — never on keystroke. */
|
|
29
36
|
onSave?: (next: R) => void;
|
|
30
37
|
}
|
|
31
|
-
export declare function QuickPeek<R extends Record<string, unknown>>({ record, title, recordId, avatarName, fields, screen, actions, executeAction, onClose, onOpen, onSave, }: QuickPeekProps<R>): import("react/jsx-runtime").JSX.Element;
|
|
38
|
+
export declare function QuickPeek<R extends Record<string, unknown>>({ record, title, recordId, avatarName, fields, refs, screen, actions, executeAction, onClose, onOpen, onSave, }: QuickPeekProps<R>): import("react/jsx-runtime").JSX.Element;
|
|
32
39
|
export interface QEFieldProps {
|
|
33
40
|
label: string;
|
|
34
41
|
children: ReactNode;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare function setPeekDraft(id: string, draft: Record<string, unknown>): void;
|
|
2
|
+
export declare function takePeekDraft(id: string): Record<string, unknown> | null;
|
|
3
|
+
/** Drop any pending draft for a record — called when the peek closes
|
|
4
|
+
* without promoting to detail, so a stale draft cannot be picked up by a
|
|
5
|
+
* later URL-driven navigation to the same record. */
|
|
6
|
+
export declare function clearPeekDraft(id: string): void;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export type RecordIdBadgeProps = {
|
|
2
|
+
value: string;
|
|
3
|
+
};
|
|
4
|
+
/**
|
|
5
|
+
* Compact record-ID badge. Truncates UUIDs to their first segment for readability
|
|
6
|
+
* and copies the full value on click. Non-UUID ids render in full.
|
|
7
|
+
*/
|
|
8
|
+
export declare function RecordIdBadge({ value }: RecordIdBadgeProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,12 +1,19 @@
|
|
|
1
1
|
import type { ReactNode } from "react";
|
|
2
|
+
import { type PillTone } from "./Pill";
|
|
3
|
+
export type SectionBadge = {
|
|
4
|
+
text: string;
|
|
5
|
+
tone?: PillTone;
|
|
6
|
+
dot?: boolean;
|
|
7
|
+
};
|
|
2
8
|
export type SectionCardProps = {
|
|
3
9
|
title: ReactNode;
|
|
4
10
|
subtitle?: ReactNode;
|
|
5
11
|
right?: ReactNode;
|
|
12
|
+
badge?: SectionBadge;
|
|
6
13
|
children?: ReactNode;
|
|
7
14
|
collapsible?: boolean;
|
|
8
15
|
defaultOpen?: boolean;
|
|
9
16
|
icon?: ReactNode;
|
|
10
17
|
padding?: string;
|
|
11
18
|
};
|
|
12
|
-
export declare function SectionCard({ title, subtitle, right, children, collapsible, defaultOpen, icon, padding, }: SectionCardProps): import("react/jsx-runtime").JSX.Element;
|
|
19
|
+
export declare function SectionCard({ title, subtitle, right, badge, children, collapsible, defaultOpen, icon, padding, }: SectionCardProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -15,7 +15,9 @@ export type { DropdownProps } from "./Dropdown";
|
|
|
15
15
|
export { Chip } from "./Chip";
|
|
16
16
|
export type { ChipProps } from "./Chip";
|
|
17
17
|
export { SectionCard } from "./SectionCard";
|
|
18
|
-
export type { SectionCardProps } from "./SectionCard";
|
|
18
|
+
export type { SectionCardProps, SectionBadge } from "./SectionCard";
|
|
19
|
+
export { RecordIdBadge } from "./RecordIdBadge";
|
|
20
|
+
export type { RecordIdBadgeProps } from "./RecordIdBadge";
|
|
19
21
|
export { RowField } from "./RowField";
|
|
20
22
|
export type { RowFieldProps } from "./RowField";
|
|
21
23
|
export { BoolToggle } from "./BoolToggle";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap";/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-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-ease:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--radius-md:.375rem;--radius-lg:.5rem;--shadow-xs:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.order-1{order:1}.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}}.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-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}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.block{display:block}.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}.h-20{height:calc(var(--spacing) * 20)}.h-full{height:100%}.min-h-0{min-height:calc(var(--spacing) * 0)}.min-h-screen{min-height:100vh}.w-1{width:calc(var(--spacing) * 1)}.w-full{width:100%}.max-w-none{max-width:none}.min-w-0{min-width:calc(var(--spacing) * 0)}.flex-1{flex:1}.shrink-0{flex-shrink:0}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.cursor-col-resize{cursor:col-resize}.resize{resize:both}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.items-center{align-items:center}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-center{justify-content:center}.gap-1{gap:calc(var(--spacing) * 1)}: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)))}.gap-x-6{column-gap:calc(var(--spacing) * 6)}.gap-y-3{row-gap:calc(var(--spacing) * 3)}.overflow-hidden{overflow:hidden}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.rounded-md{border-radius:var(--radius-md)}.border{border-style:var(--tw-border-style);border-width:1px}.border-\[var\(--border\)\]{border-color:var(--border)}.bg-\[var\(--muted\)\]{background-color:var(--muted)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-2{padding-block:calc(var(--spacing) * 2)}.pt-6{padding-top:calc(var(--spacing) * 6)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.text-\[var\(--muted-foreground\)\]{color:var(--muted-foreground)}.capitalize{text-transform:capitalize}.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}.underline{text-decoration-line:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ring{--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)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.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,)}.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-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))}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.select-text{-webkit-user-select:text;user-select:text}@media(hover:hover){.hover\:bg-\[var\(--border\)\]:hover{background-color:var(--border)}}@media(min-width:48rem){.md\:w-40{width:calc(var(--spacing) * 40)}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:pt-0\.5{padding-top:calc(var(--spacing) * .5)}}.dark\:prose-invert:where([data-theme=dark],[data-theme=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)}}:root{--bg:#f7f8fa;--surface:#fff;--surface-2:#fbfbfd;--surface-3:#f3f4f7;--border:#e6e8ee;--border-strong:#d1d5de;--divider:#eef0f4;--text:#0e1116;--text-2:#2a2f3a;--text-3:#5b6270;--text-4:#8a8f9c;--text-placeholder:#a8adba;--primary:#1e2a4a;--primary-hover:#16213d;--primary-fg:#fff;--accent:#5b5bd6;--accent-2:#7b7be6;--accent-soft:#eeeefb;--accent-ring:#5b5bd647;--success:#118a5a;--success-soft:#e3f4ec;--warn:#b56b00;--warn-soft:#fbf1e0;--danger:#c2362c;--danger-soft:#fae8e6;--info:#0b6fb0;--info-soft:#e4f1fa;--pill-indigo:#4f46e5;--pill-indigo-bg:#eef2ff;--pill-emerald:#047857;--pill-emerald-bg:#ecfdf5;--pill-amber:#b45309;--pill-amber-bg:#fef3c7;--pill-rose:#be123c;--pill-rose-bg:#fff1f2;--pill-sky:#0369a1;--pill-sky-bg:#e0f2fe;--pill-violet:#6d28d9;--pill-violet-bg:#f3e8ff;--pill-slate:#475569;--pill-slate-bg:#f1f5f9;--pill-teal:#0f766e;--pill-teal-bg:#ccfbf1;--rail:#0e1116;--rail-fg:#d6d9e0;--rail-muted:#6b707e;--rail-active:#1f232d;--rail-hover:#161a22;--sidebar:#fff;--sidebar-fg:#1e2a4a;--sidebar-muted:#6b7180;--sidebar-active:#f1f1fb;--sidebar-hover:#f4f5f8;--shadow-xs:0 1px 0 #0c0e140a;--shadow-sm:0 1px 2px #0c0e140f, 0 1px 2px #0c0e140a;--shadow-md:0 4px 12px #0c0e140f, 0 1px 3px #0c0e140a;--shadow-lg:0 16px 48px #0c0e1424, 0 4px 12px #0c0e1414;--shadow-panel:0 1px 0 #0c0e140a, 0 0 0 1px var(--border);--radius-xs:3px;--radius-sm:5px;--radius-md:7px;--radius-lg:10px;--radius-xl:14px;--row-h:32px;--row-h-comf:40px;--row-h-cozy:48px;--topbar-h:44px;--tabbar-h:34px;--rail-w:52px;--sidebar-w:220px;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace}[data-theme=dark]{--bg:#0a0c10;--surface:#12141a;--surface-2:#0f1116;--surface-3:#1a1d25;--border:#22262f;--border-strong:#2e333e;--divider:#1b1e26;--text:#e8eaf0;--text-2:#c4c8d2;--text-3:#8a90a0;--text-4:#5f6578;--text-placeholder:#4d5263;--primary:#e8eaf0;--primary-hover:#fff;--primary-fg:#0a0c10;--accent:#8b8bf0;--accent-2:#a5a5f5;--accent-soft:#8b8bf024;--accent-ring:#8b8bf059;--success:#3fbf8f;--success-soft:#3fbf8f24;--warn:#e0a44a;--warn-soft:#e0a44a24;--danger:#ef6a60;--danger-soft:#ef6a6024;--info:#5ab3ea;--info-soft:#5ab3ea24;--pill-indigo:#a5b4fc;--pill-indigo-bg:#4f46e52e;--pill-emerald:#6ee7b7;--pill-emerald-bg:#04785733;--pill-amber:#fcd34d;--pill-amber-bg:#b4530938;--pill-rose:#fda4af;--pill-rose-bg:#be123c33;--pill-sky:#7dd3fc;--pill-sky-bg:#0369a138;--pill-violet:#c4b5fd;--pill-violet-bg:#6d28d938;--pill-slate:#cbd5e1;--pill-slate-bg:#47556947;--pill-teal:#5eead4;--pill-teal-bg:#0f766e38;--rail:#06080c;--rail-fg:#c4c8d2;--rail-muted:#5f6578;--rail-active:#1a1d25;--rail-hover:#14171e;--sidebar:#0f1116;--sidebar-fg:#e8eaf0;--sidebar-muted:#8a90a0;--sidebar-active:#8b8bf024;--sidebar-hover:#171923;--shadow-sm:0 1px 2px #0006;--shadow-md:0 4px 12px #00000080;--shadow-lg:0 16px 48px #0009}[data-accent=violet]{--accent:#5b5bd6;--accent-2:#7b7be6;--accent-soft:#eeeefb;--accent-ring:#5b5bd647}[data-accent=blue]{--accent:#2563eb;--accent-2:#4f83f0;--accent-soft:#e7effd;--accent-ring:#2563eb47}[data-accent=teal]{--accent:#0d9488;--accent-2:#14b8a6;--accent-soft:#d8f2ef;--accent-ring:#0d948847}[data-accent=amber]{--accent:#b45309;--accent-2:#d97706;--accent-soft:#fbf1e0;--accent-ring:#b4530947}[data-accent=rose]{--accent:#be123c;--accent-2:#e11d48;--accent-soft:#fce7ec;--accent-ring:#be123c47}[data-density=comfortable]{--row-h:var(--row-h-comf)}[data-density=cozy]{--row-h:var(--row-h-cozy)}*{box-sizing:border-box}html,body{height:100%;margin:0}body{font-family:var(--font-sans);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;font-feature-settings:"cv11","ss01","ss03";letter-spacing:-.005em;font-size:13px}::selection{background:var(--accent-soft);color:var(--text)}button{font-family:inherit;font-size:inherit;letter-spacing:inherit}input,textarea,select{font-family:inherit;font-size:inherit;color:inherit;letter-spacing:inherit}.mono{font-family:var(--font-mono);font-feature-settings:"zero","ss01"}.num{font-variant-numeric:tabular-nums}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-strong);background-clip:padding-box;border:2px solid #0000;border-radius:8px}::-webkit-scrollbar-thumb:hover{background:var(--text-4);background-clip:padding-box;border:2px solid #0000}#app{grid-template-rows:var(--topbar-h) 1fr;grid-template-columns:var(--rail-w) var(--sidebar-w) 1fr;grid-template-areas:"topbar topbar topbar""rail sidebar main";height:100vh;display:grid;overflow:hidden}#app[data-sidebar=collapsed],#app[data-sidebar=icon-only]{grid-template-columns:var(--rail-w) 56px 1fr}#app[data-sidebar=hidden]{grid-template-columns:var(--rail-w) 0 1fr}.prose pre{background-color:var(--surface-3)!important;color:var(--text)!important}.prose code{color:var(--text)!important}.json-editor-readonly .jse-main{border:1px solid var(--border);border-radius:var(--radius-md);min-height:80px;max-height:300px}.json-editor-editable{resize:vertical;min-height:150px;max-height:500px;overflow:hidden}.json-editor-editable .jse-main{border:1px solid var(--border);border-radius:var(--radius-md);height:100%}.sl-row-actions{opacity:0;transition:opacity .1s}tr:hover .sl-row-actions,.sl-row-actions[data-open=true]{opacity:1}.json-editor-readonly *,.json-editor-editable *{border-color:initial}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-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-ease{syntax:"*";inherits:false}@keyframes pulse{50%{opacity:.5}}
|
|
1
|
+
@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap";/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--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-ease:initial}}}@layer theme{:root,:host{--font-sans:var(--font-sans);--font-mono:var(--font-mono);--spacing:.25rem;--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--radius-xs:var(--radius-xs);--radius-sm:var(--radius-sm);--radius-md:var(--radius-md);--radius-lg:var(--radius-lg);--radius-xl:var(--radius-xl);--shadow-xs:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.order-1{order:1}.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}}.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-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}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.block{display:block}.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}.h-20{height:calc(var(--spacing) * 20)}.h-full{height:100%}.min-h-0{min-height:calc(var(--spacing) * 0)}.min-h-screen{min-height:100vh}.w-1{width:calc(var(--spacing) * 1)}.w-full{width:100%}.max-w-none{max-width:none}.min-w-0{min-width:calc(var(--spacing) * 0)}.flex-1{flex:1}.flex-shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.cursor-col-resize{cursor:col-resize}.resize{resize:both}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.items-center{align-items:center}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-center{justify-content:center}.gap-1{gap:calc(var(--spacing) * 1)}: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)))}.gap-x-6{column-gap:calc(var(--spacing) * 6)}.gap-y-3{row-gap:calc(var(--spacing) * 3)}.overflow-hidden{overflow:hidden}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-md{border-radius:var(--radius-md)}.border{border-style:var(--tw-border-style);border-width:1px}.border-border{border-color:var(--border)}.border-transparent{border-color:#0000}.bg-muted{background-color:var(--surface-2)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-2{padding-block:calc(var(--spacing) * 2)}.pt-6{padding-top:calc(var(--spacing) * 6)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-\[11px\]{font-size:11px}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.text-muted-foreground{color:var(--text-3)}.text-text-4{color:var(--text-4)}.capitalize{text-transform:capitalize}.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}.underline{text-decoration-line:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.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,)}.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-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))}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.select-text{-webkit-user-select:text;user-select:text}@media(hover:hover){.hover\:border-border:hover{border-color:var(--border)}.hover\:bg-border:hover{background-color:var(--border)}.hover\:bg-surface-2:hover{background-color:var(--surface-2)}.hover\:text-text-3:hover{color:var(--text-3)}}@media(min-width:48rem){.md\:w-40{width:calc(var(--spacing) * 40)}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:pt-0\.5{padding-top:calc(var(--spacing) * .5)}}.dark\:prose-invert:where([data-theme=dark],[data-theme=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)}}:root{--bg:#f7f8fa;--surface:#fff;--surface-2:#fbfbfd;--surface-3:#f3f4f7;--border:#e6e8ee;--border-strong:#d1d5de;--divider:#eef0f4;--text:#0e1116;--text-2:#2a2f3a;--text-3:#5b6270;--text-4:#8a8f9c;--text-placeholder:#a8adba;--muted:var(--surface-2);--muted-foreground:var(--text-3);--card:var(--surface);--card-foreground:var(--text);--popover:var(--surface);--popover-foreground:var(--text);--secondary:var(--surface-2);--secondary-foreground:var(--text-2);--input:var(--surface);--ring:var(--accent-ring);--primary:#1e2a4a;--primary-hover:#16213d;--primary-fg:#fff;--accent:#5b5bd6;--accent-2:#7b7be6;--accent-foreground:#fff;--accent-soft:#eeeefb;--accent-ring:#5b5bd647;--destructive:var(--danger);--destructive-foreground:#fff;--row-selected-bg:#eeeefb;--success:#118a5a;--success-soft:#e3f4ec;--warn:#b56b00;--warn-soft:#fbf1e0;--danger:#c2362c;--danger-soft:#fae8e6;--info:#0b6fb0;--info-soft:#e4f1fa;--pill-indigo:#4f46e5;--pill-indigo-bg:#eef2ff;--pill-emerald:#047857;--pill-emerald-bg:#ecfdf5;--pill-amber:#b45309;--pill-amber-bg:#fef3c7;--pill-rose:#be123c;--pill-rose-bg:#fff1f2;--pill-sky:#0369a1;--pill-sky-bg:#e0f2fe;--pill-violet:#6d28d9;--pill-violet-bg:#f3e8ff;--pill-slate:#475569;--pill-slate-bg:#f1f5f9;--pill-teal:#0f766e;--pill-teal-bg:#ccfbf1;--rail:#0e1116;--rail-fg:#d6d9e0;--rail-muted:#6b707e;--rail-active:#1f232d;--rail-hover:#161a22;--sidebar:#fff;--sidebar-fg:#1e2a4a;--sidebar-muted:#6b7180;--sidebar-active:#f1f1fb;--sidebar-hover:#f4f5f8;--shadow-xs:0 1px 0 #0c0e140a;--shadow-sm:0 1px 2px #0c0e140f, 0 1px 2px #0c0e140a;--shadow-md:0 4px 12px #0c0e140f, 0 1px 3px #0c0e140a;--shadow-lg:0 16px 48px #0c0e1424, 0 4px 12px #0c0e1414;--shadow-panel:0 1px 0 #0c0e140a, 0 0 0 1px var(--border);--scrim:#0c0e1459;--scrim-strong:#0c0e1473;--scrim-lite:#0c0e1433;--inverted-overlay:#ffffff1f;--radius-xs:3px;--radius-sm:5px;--radius-md:7px;--radius-lg:10px;--radius-xl:14px;--row-h:32px;--row-h-comf:40px;--row-h-cozy:48px;--topbar-h:44px;--tabbar-h:34px;--rail-w:52px;--sidebar-w:220px;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace}[data-theme=dark]{--bg:#0a0c10;--surface:#181c26;--surface-2:#111318;--surface-3:#20253a;--border:#262c3c;--border-strong:#353c52;--divider:#1a1e2c;--text:#e8eaf0;--text-2:#c4c8d2;--text-3:#8a90a0;--text-4:#5f6578;--text-placeholder:#4d5263;--primary:#e8eaf0;--primary-hover:#fff;--primary-fg:#0a0c10;--accent:#8b8bf0;--accent-2:#a5a5f5;--accent-foreground:#0a0c10;--accent-soft:#8b8bf024;--accent-ring:#8b8bf059;--destructive-foreground:#0a0c10;--success:#3fbf8f;--success-soft:#3fbf8f29;--warn:#e0a44a;--warn-soft:#e0a44a29;--danger:#ef6a60;--danger-soft:#ef6a6029;--info:#5ab3ea;--info-soft:#5ab3ea29;--pill-indigo:#a5b4fc;--pill-indigo-bg:#4f46e538;--pill-emerald:#6ee7b7;--pill-emerald-bg:#04785738;--pill-amber:#fcd34d;--pill-amber-bg:#b4530942;--pill-rose:#fda4af;--pill-rose-bg:#be123c3d;--pill-sky:#7dd3fc;--pill-sky-bg:#0369a142;--pill-violet:#c4b5fd;--pill-violet-bg:#6d28d942;--pill-slate:#cbd5e1;--pill-slate-bg:#47556952;--pill-teal:#5eead4;--pill-teal-bg:#0f766e42;--rail:#06080c;--rail-fg:#c4c8d2;--rail-muted:#5f6578;--rail-active:#1c2030;--rail-hover:#14171e;--sidebar:#0e1018;--sidebar-fg:#e8eaf0;--sidebar-muted:#8a90a0;--sidebar-active:#8b8bf02e;--sidebar-hover:#161a24;--shadow-xs:inset 0 1px 0 #ffffff0f;--shadow-sm:0 2px 8px #00000073, inset 0 1px 0 #ffffff0d;--shadow-md:0 4px 16px #00000080, inset 0 1px 0 #ffffff0d;--shadow-lg:0 16px 48px #000000a6, 0 2px 8px #0006;--shadow-panel:0 0 0 1px var(--border), inset 0 1px 0 #ffffff0a;--scrim:#0000008c;--scrim-strong:#000000a6;--scrim-lite:#0006;--inverted-overlay:#0000001a;--row-selected-bg:var(--accent)}@supports (color:color-mix(in lab,red,red)){[data-theme=dark]{--row-selected-bg:color-mix(in srgb, var(--accent) 22%, var(--surface))}}[data-accent=violet]{--accent:#5b5bd6;--accent-2:#7b7be6;--accent-soft:#eeeefb;--accent-ring:#5b5bd647}[data-accent=blue]{--accent:#2563eb;--accent-2:#4f83f0;--accent-soft:#e7effd;--accent-ring:#2563eb47}[data-accent=teal]{--accent:#0d9488;--accent-2:#14b8a6;--accent-soft:#d8f2ef;--accent-ring:#0d948847}[data-accent=amber]{--accent:#b45309;--accent-2:#d97706;--accent-soft:#fbf1e0;--accent-ring:#b4530947}[data-accent=rose]{--accent:#be123c;--accent-2:#e11d48;--accent-soft:#fce7ec;--accent-ring:#be123c47}[data-theme=dark][data-accent=violet]{--accent:#8b8bf0;--accent-2:#a5a5f5;--accent-soft:#8b8bf024;--accent-ring:#8b8bf059}[data-theme=dark][data-accent=blue]{--accent:#60a5fa;--accent-2:#93c5fd;--accent-soft:#2563eb29;--accent-ring:#3b82f659}[data-theme=dark][data-accent=teal]{--accent:#2dd4bf;--accent-2:#5eead4;--accent-soft:#0d948829;--accent-ring:#14b8a659}[data-theme=dark][data-accent=amber]{--accent:#fcd34d;--accent-2:#fde68a;--accent-soft:#b453092e;--accent-ring:#d9770659}[data-theme=dark][data-accent=rose]{--accent:#fda4af;--accent-2:#fecdd3;--accent-soft:#be123c2e;--accent-ring:#e11d4859}[data-density=comfortable]{--row-h:var(--row-h-comf)}[data-density=cozy]{--row-h:var(--row-h-cozy)}html[data-zebra=on] table tbody tr:nth-child(2n)>td{background:var(--surface-2)}*{box-sizing:border-box}html,body{height:100%;margin:0}body{font-family:var(--font-sans);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;font-feature-settings:"cv11","ss01","ss03";letter-spacing:-.005em;font-size:13px}::selection{background:var(--accent-soft);color:var(--text)}button{font-family:inherit;font-size:inherit;letter-spacing:inherit}input,textarea,select{font-family:inherit;font-size:inherit;color:inherit;letter-spacing:inherit}.mono{font-family:var(--font-mono);font-feature-settings:"zero","ss01"}.num{font-variant-numeric:tabular-nums}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-strong);background-clip:padding-box;border:2px solid #0000;border-radius:8px}::-webkit-scrollbar-thumb:hover{background:var(--text-4);background-clip:padding-box;border:2px solid #0000}#app{grid-template-rows:var(--topbar-h) 1fr;grid-template-columns:var(--rail-w) var(--sidebar-w) 1fr;grid-template-areas:"topbar topbar topbar""rail sidebar main";height:100vh;display:grid;overflow:hidden}#app[data-sidebar=collapsed],#app[data-sidebar=icon-only]{grid-template-columns:var(--rail-w) 56px 1fr}#app[data-sidebar=hidden]{grid-template-columns:var(--rail-w) 0 1fr}.prose pre{background-color:var(--surface-3)!important;color:var(--text)!important}.prose code{color:var(--text)!important}.json-editor-readonly .jse-main{border:1px solid var(--border);border-radius:var(--radius-md);min-height:80px;max-height:300px}.json-editor-editable{resize:vertical;min-height:150px;max-height:500px;overflow:hidden}.json-editor-editable .jse-main{border:1px solid var(--border);border-radius:var(--radius-md);height:100%}.sl-row-actions{opacity:0;transition:opacity .1s}tr:hover .sl-row-actions,.sl-row-actions[data-open=true]{opacity:1}.peek-pencil{opacity:0;pointer-events:none;transition:opacity .12s}.peek-field-cell:hover .peek-pencil,.peek-field-cell:focus-within .peek-pencil,.peek-field-cell[data-editing=true] .peek-pencil{opacity:1;pointer-events:auto}@media(hover:none){.peek-pencil{opacity:1;pointer-events:auto}}.json-editor-readonly *,.json-editor-editable *{border-color:initial}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-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-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-ease{syntax:"*";inherits:false}@keyframes pulse{50%{opacity:.5}}
|