tempest-react-sdk 0.1.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -33,6 +33,7 @@ The goal is to start every new React frontend with the same opinionated foundati
33
33
  - [JWT helpers & refresh queue](#jwt-helpers--refresh-queue-recipe)
34
34
  - [Code-splitting with retry](#code-splitting-with-retry-recipe)
35
35
  - [React Query](#react-query-recipe)
36
+ - [Form layout (`Form`, `FormSection`, `FormRow`, `FormActions`)](#form-layout-recipe)
36
37
  - [Forms (zod)](#forms-zod-recipe)
37
38
  - [BR validators & masked inputs](#br-validators--masked-inputs-recipe)
38
39
  - [ViaCEP lookup](#viacep-lookup-recipe)
@@ -149,28 +150,28 @@ The styles ship hashed under the `tempest_` namespace — they do **not** collid
149
150
 
150
151
  Every module is re-exported from the package root — `import { Button, useDebounce, createApiClient } from "tempest-react-sdk"` always works.
151
152
 
152
- | Module | Exports |
153
- | ------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
154
- | `components` | `Avatar`, `Badge`, `Breadcrumbs`, `Button`, `Card`, `Checkbox`, `ChipInput`, `ConfirmDialog`, `Container`, `DatePicker`, `Drawer`, `EmptyState`, `ErrorState`, `FileUpload`, `Grid`, `Input`, `Modal`, `Pagination`, `Progress`, `Radio`, `RadioGroup`, `SearchBar`, `Select`, `Skeleton`, `Spinner`, `Stack`, `Stepper`, `Switch`, `Table`, `Tabs`, `Textarea`, `Toast` (`ToastProvider`, `useToast`), `Tooltip`, `VirtualList` |
155
- | `hooks` | `useDebounce`, `usePagination`, `useClientFilter`, `useMediaQuery`, `useOnline`, `useDocumentVisibility`, `useIntersectionObserver`, `useResizeObserver`, `useClipboard`, `useKeyboardShortcut`, `useBeforeInstallPrompt`, `useIdle`, `useGeolocation`, `useScrollLock`, `useFocusTrap`, `useStableCallback`, `useDeepMemo` |
156
- | `http` | `createApiClient`, `parseResponse`, `uploadWithProgress`, `retry`, `generateIdempotencyKey`, `usePoll`, types: `ApiClient`, `ApiClientConfig`, `ApiError`, `RequestOptions`, `RetryOptions`, `UploadProgressEvent`, `UploadWithProgressOptions`, `UsePollOptions`, `UsePollResult` |
157
- | `auth` _(peer: `zustand`)_ | `createAuthStore`, `AuthGuard`, `decodeJWT`, `isJWTExpired`, `lazyWithRetry`, `createRefreshQueue`, types: `AuthState`, `CreateAuthStoreOptions`, `AuthGuardProps`, `DecodedJWT`, `LazyWithRetryOptions` |
158
- | `query` _(peer: `@tanstack/react-query`)_ | `QueryProvider`, `createQueryKeys`, `STALE_TIME`, `CACHE_TIME`, `REFETCH_TIME` |
159
- | `forms` _(peer: `zod`, `react-hook-form`)_ | `validateForm`, `zodResolver`, `useZodForm`, `validateCPF`, `validateCNPJ`, `formatCEP`, `formatCNPJ`, `unmask`, `CPFInput`, `CNPJInput`, `PhoneInput`, `CEPInput`, `MoneyInput`, `useViaCEP` |
160
- | `sse` | `createEventStream`, `useEventStream` |
161
- | `ws` | `createWebSocket`, `useWebSocket` |
162
- | `push` | `WebPushClient`, `WebPushUnsupportedError`, `WebPushPermissionDeniedError`, `usePushSubscription`, `urlBase64ToUint8Array`, `isPushSupported` |
163
- | `sw` | `registerServiceWorker`, `skipWaiting`, `unregisterAllServiceWorkers`, `installPushHandler`, `installNotificationClickHandler`, `installSkipWaitingListener` |
164
- | `audio` | `createAudioPlayer`, `playAudio`, `stopAudio`, `useAudio` |
165
- | `offline` _(peer: `dexie`)_ | `createOfflineStore`, types: `OfflineStore`, `OfflineStoreConfig`, `ListOptions` |
166
- | `error-boundary` | `ErrorBoundary`, `useErrorHandler`, types: `ErrorBoundaryProps`, `ErrorBoundaryRenderProps` |
167
- | `theme` | `ThemeProvider`, `useTheme`, `getInitialTheme`, `themeInitScript`, types: `ThemeMode`, `ResolvedTheme` |
168
- | `i18n` | `createI18n`, `I18nProvider`, `useI18n`, `useTranslate`, types: `Catalog`, `Messages`, `I18n`, `InterpolationValues` |
169
- | `logger` | `createLogger`, `consoleSink`, types: `Logger`, `LogEntry`, `LogLevel`, `LoggerSink` |
170
- | `telemetry` | `TelemetryProvider`, `useTelemetry`, `consoleTelemetryAdapter`, types: `TelemetryAdapter`, `TelemetryEvent`, `TelemetryUser` |
171
- | `feature-flags` | `FeatureFlagsProvider`, `useFeatureFlag`, `useFlagValue`, `createInMemoryFlags`, types: `FeatureFlagsAdapter`, `FlagValue` |
172
- | `share` | `share`, `isShareSupported`, types: `SharePayload`, `ShareResult` |
173
- | `utils` | `cn`, `formatCurrency`, `formatDate`, `formatDateTime`, `formatPhone`, `formatCPF`, `formatPercent`, `storage` |
153
+ | Module | Exports |
154
+ | ------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
155
+ | `components` | `Avatar`, `Badge`, `Breadcrumbs`, `Button`, `Card`, `Checkbox`, `ChipInput`, `ConfirmDialog`, `Container`, `DatePicker`, `Drawer`, `EmptyState`, `ErrorState`, `FileUpload`, `Form` (`FormSection`, `FormRow`, `FormActions`), `Grid`, `Input`, `Modal`, `Pagination`, `Progress`, `Radio`, `RadioGroup`, `SearchBar`, `Select`, `Skeleton`, `Spinner`, `Stack`, `Stepper`, `Switch`, `Table`, `Tabs`, `Textarea`, `Toast` (`ToastProvider`, `useToast`), `Tooltip`, `VirtualList` |
156
+ | `hooks` | `useDebounce`, `usePagination`, `useClientFilter`, `useMediaQuery`, `useOnline`, `useDocumentVisibility`, `useIntersectionObserver`, `useResizeObserver`, `useClipboard`, `useKeyboardShortcut`, `useBeforeInstallPrompt`, `useIdle`, `useGeolocation`, `useScrollLock`, `useFocusTrap`, `useStableCallback`, `useDeepMemo` |
157
+ | `http` | `createApiClient`, `parseResponse`, `uploadWithProgress`, `retry`, `generateIdempotencyKey`, `usePoll`, types: `ApiClient`, `ApiClientConfig`, `ApiError`, `RequestOptions`, `RetryOptions`, `UploadProgressEvent`, `UploadWithProgressOptions`, `UsePollOptions`, `UsePollResult` |
158
+ | `auth` _(peer: `zustand`)_ | `createAuthStore`, `AuthGuard`, `decodeJWT`, `isJWTExpired`, `lazyWithRetry`, `createRefreshQueue`, types: `AuthState`, `CreateAuthStoreOptions`, `AuthGuardProps`, `DecodedJWT`, `LazyWithRetryOptions` |
159
+ | `query` _(peer: `@tanstack/react-query`)_ | `QueryProvider`, `createQueryKeys`, `STALE_TIME`, `CACHE_TIME`, `REFETCH_TIME` |
160
+ | `forms` _(peer: `zod`, `react-hook-form`)_ | `validateForm`, `zodResolver`, `useZodForm`, `validateCPF`, `validateCNPJ`, `formatCEP`, `formatCNPJ`, `unmask`, `CPFInput`, `CNPJInput`, `PhoneInput`, `CEPInput`, `MoneyInput`, `useViaCEP` |
161
+ | `sse` | `createEventStream`, `useEventStream` |
162
+ | `ws` | `createWebSocket`, `useWebSocket` |
163
+ | `push` | `WebPushClient`, `WebPushUnsupportedError`, `WebPushPermissionDeniedError`, `usePushSubscription`, `urlBase64ToUint8Array`, `isPushSupported` |
164
+ | `sw` | `registerServiceWorker`, `skipWaiting`, `unregisterAllServiceWorkers`, `installPushHandler`, `installNotificationClickHandler`, `installSkipWaitingListener` |
165
+ | `audio` | `createAudioPlayer`, `playAudio`, `stopAudio`, `useAudio` |
166
+ | `offline` _(peer: `dexie`)_ | `createOfflineStore`, types: `OfflineStore`, `OfflineStoreConfig`, `ListOptions` |
167
+ | `error-boundary` | `ErrorBoundary`, `useErrorHandler`, types: `ErrorBoundaryProps`, `ErrorBoundaryRenderProps` |
168
+ | `theme` | `ThemeProvider`, `useTheme`, `getInitialTheme`, `themeInitScript`, types: `ThemeMode`, `ResolvedTheme` |
169
+ | `i18n` | `createI18n`, `I18nProvider`, `useI18n`, `useTranslate`, types: `Catalog`, `Messages`, `I18n`, `InterpolationValues` |
170
+ | `logger` | `createLogger`, `consoleSink`, types: `Logger`, `LogEntry`, `LogLevel`, `LoggerSink` |
171
+ | `telemetry` | `TelemetryProvider`, `useTelemetry`, `consoleTelemetryAdapter`, types: `TelemetryAdapter`, `TelemetryEvent`, `TelemetryUser` |
172
+ | `feature-flags` | `FeatureFlagsProvider`, `useFeatureFlag`, `useFlagValue`, `createInMemoryFlags`, types: `FeatureFlagsAdapter`, `FlagValue` |
173
+ | `share` | `share`, `isShareSupported`, types: `SharePayload`, `ShareResult` |
174
+ | `utils` | `cn`, `formatCurrency`, `formatDate`, `formatDateTime`, `formatPhone`, `formatCPF`, `formatPercent`, `storage` |
174
175
 
175
176
  Full per-module docs in [`docs/`](./docs) (one markdown per module + draw.io diagrams in [`docs/diagrams/`](./docs/diagrams)).
176
177
 
@@ -531,6 +532,97 @@ export const eventKeys = createQueryKeys("event", {
531
532
  // eventKeys.byId("42") === ["event", "42"]
532
533
  ```
533
534
 
535
+ ### Form layout recipe
536
+
537
+ `Form` is a `<form>` wrapper with a built-in layout variant — pick `stack` for stacked fields (one per row), `inline` for a wrapping horizontal row, or `grid` for an `N`-column layout. Pair with `FormSection` (titled subgroup), `FormRow` (forces side-by-side inside a stacked form), and `FormActions` (footer button row).
538
+
539
+ **Stacked (default) — one field per row:**
540
+
541
+ ```tsx
542
+ import { Form, FormActions, Input, Button } from "tempest-react-sdk";
543
+
544
+ <Form layout="stack" gap={4} onSubmit={onSubmit}>
545
+ <Input label="Nome" {...form.register("name")} />
546
+ <Input label="Email" type="email" {...form.register("email")} />
547
+ <Input label="Senha" type="password" {...form.register("password")} />
548
+ <FormActions align="end">
549
+ <Button type="submit">Criar conta</Button>
550
+ </FormActions>
551
+ </Form>;
552
+ ```
553
+
554
+ **Grid — side-by-side columns:**
555
+
556
+ ```tsx
557
+ import { Form, FormActions, Input, Button } from "tempest-react-sdk";
558
+
559
+ <Form layout="grid" columns={2} gap={4} onSubmit={onSubmit}>
560
+ <Input label="Nome" {...register("name")} />
561
+ <Input label="Sobrenome" {...register("last_name")} />
562
+ <Input label="Email" type="email" {...register("email")} />
563
+ <Input label="Telefone" {...register("phone")} />
564
+ <FormActions align="end" style={{ gridColumn: "1 / -1" }}>
565
+ <Button type="submit">Salvar</Button>
566
+ </FormActions>
567
+ </Form>;
568
+ ```
569
+
570
+ `columns` accepts a number (`repeat(N, minmax(0, 1fr))`) or a raw `grid-template-columns` string (e.g. `"2fr 1fr"`).
571
+
572
+ **Inline — search-style filter row:**
573
+
574
+ ```tsx
575
+ import { Form, Input, Select, Button } from "tempest-react-sdk";
576
+
577
+ <Form layout="inline" gap={2} onSubmit={onSubmit}>
578
+ <Input label="Buscar" placeholder="nome…" />
579
+ <Select label="Status" options={statusOptions} />
580
+ <Button type="submit">Filtrar</Button>
581
+ </Form>;
582
+ ```
583
+
584
+ `inline` aligns children at `flex-end` and wraps — perfect for filter bars or short login forms.
585
+
586
+ **Sections + grouped rows:**
587
+
588
+ `FormSection` lets you nest layouts (e.g. a stacked form with a 3-column "Address" group inside):
589
+
590
+ ```tsx
591
+ import { Form, FormSection, FormRow, FormActions, Input, Button } from "tempest-react-sdk";
592
+
593
+ <Form layout="stack" gap={5}>
594
+ <Input label="Email" {...register("email")} />
595
+
596
+ <FormSection title="Endereço" description="Usado para entrega" layout="grid" columns={3} gap={3}>
597
+ <Input label="CEP" {...register("cep")} />
598
+ <Input label="Cidade" {...register("city")} />
599
+ <Input label="UF" {...register("state")} />
600
+ <Input label="Rua" style={{ gridColumn: "1 / -1" }} {...register("street")} />
601
+ </FormSection>
602
+
603
+ <FormRow>
604
+ <Input label="Validade" placeholder="MM/AA" {...register("expiry")} />
605
+ <Input label="CVV" {...register("cvv")} />
606
+ </FormRow>
607
+
608
+ <FormActions align="between">
609
+ <Button variant="ghost" type="button" onClick={onCancel}>
610
+ Cancelar
611
+ </Button>
612
+ <Button type="submit">Salvar</Button>
613
+ </FormActions>
614
+ </Form>;
615
+ ```
616
+
617
+ | Component | Default layout | What it does |
618
+ | ------------- | ------------------------- | --------------------------------------------------------------------------------------------- |
619
+ | `Form` | `stack` | `<form>` element + flex/grid container. `onSubmit` works as expected. |
620
+ | `FormSection` | `stack` body | Titled subgroup with its own independent layout / columns / gap. |
621
+ | `FormRow` | always horizontal | Forces a wrapping side-by-side row regardless of parent layout. Children share width equally. |
622
+ | `FormActions` | horizontal, `align="end"` | Footer button row. `align` accepts `start` / `center` / `end` / `between`. |
623
+
624
+ Both `Form` and `FormSection` accept `gap` (number → multiple of 4px, or any CSS length string) and `columns` (number → `repeat(N, minmax(0, 1fr))`, or any `grid-template-columns` string).
625
+
534
626
  ### Forms (zod) recipe
535
627
 
536
628
  Three levels of integration — pick the one that fits the form complexity.
package/dist/index.d.ts CHANGED
@@ -6,6 +6,7 @@ import { default as default_2 } from 'dexie';
6
6
  import { DefaultOptions } from '@tanstack/react-query';
7
7
  import { ErrorInfo } from 'react';
8
8
  import { FieldValues } from 'react-hook-form';
9
+ import { FormHTMLAttributes } from 'react';
9
10
  import { ForwardRefExoticComponent } from 'react';
10
11
  import { HTMLAttributes } from 'react';
11
12
  import { InputHTMLAttributes } from 'react';
@@ -735,6 +736,42 @@ export declare type FilterPredicate<T> = (item: T, search: string) => boolean;
735
736
 
736
737
  export declare type FlagValue = boolean | string | number | null;
737
738
 
739
+ /**
740
+ * Form wrapper with a built-in layout variant. Replaces ad-hoc `<form>` +
741
+ * `<Stack>` / `<Grid>` boilerplate; pair with [[FormRow]], [[FormSection]],
742
+ * and [[FormActions]] for richer layouts.
743
+ *
744
+ * @example
745
+ * <Form layout="grid" columns={2} gap={4} onSubmit={form.handleSubmit(save)}>
746
+ * <Input label="Nome" {...form.register("name")} />
747
+ * <Input label="Email" {...form.register("email")} />
748
+ * <FormActions align="end">
749
+ * <Button type="submit">Salvar</Button>
750
+ * </FormActions>
751
+ * </Form>
752
+ */
753
+ export declare const Form: ForwardRefExoticComponent<FormProps & RefAttributes<HTMLFormElement>>;
754
+
755
+ /**
756
+ * Footer button row for a form. Use inside (or after) [[Form]] / [[FormSection]].
757
+ *
758
+ * @example
759
+ * <FormActions align="end">
760
+ * <Button variant="ghost" onClick={onCancel}>Cancelar</Button>
761
+ * <Button type="submit" loading={form.formState.isSubmitting}>Salvar</Button>
762
+ * </FormActions>
763
+ */
764
+ export declare function FormActions({ align, gap, className, style, children, ...props }: FormActionsProps): JSX.Element;
765
+
766
+ export declare type FormActionsAlign = "start" | "center" | "end" | "between";
767
+
768
+ export declare interface FormActionsProps extends HTMLAttributes<HTMLDivElement> {
769
+ /** Horizontal alignment of buttons. Default `end`. */
770
+ align?: FormActionsAlign;
771
+ /** Gap between buttons. Numbers map to a multiple of the 4px scale (default `2` → 8px). */
772
+ gap?: number | string;
773
+ }
774
+
738
775
  /** Format an 11-digit Brazilian CEP-like value as `00000-000`. */
739
776
  export declare function formatCEP(value: string): string;
740
777
 
@@ -789,6 +826,51 @@ export declare function formatPercent(value: number): string;
789
826
  */
790
827
  export declare function formatPhone(value: string): string;
791
828
 
829
+ export declare type FormLayout = "stack" | "inline" | "grid";
830
+
831
+ export declare interface FormProps extends FormHTMLAttributes<HTMLFormElement>, LayoutProps {
832
+ }
833
+
834
+ /**
835
+ * Forces a horizontal row regardless of parent layout — useful for grouping
836
+ * two short fields side-by-side inside an otherwise stacked form (e.g. CEP +
837
+ * city, expiry month + year).
838
+ *
839
+ * @example
840
+ * <Form layout="stack">
841
+ * <FormRow>
842
+ * <Input label="CEP" />
843
+ * <Input label="Cidade" />
844
+ * </FormRow>
845
+ * <Input label="Endereço completo" />
846
+ * </Form>
847
+ */
848
+ export declare function FormRow({ gap, className, style, children, ...props }: FormRowProps): JSX.Element;
849
+
850
+ export declare interface FormRowProps extends HTMLAttributes<HTMLDivElement> {
851
+ /** Gap between row items. Numbers map to a multiple of the 4px scale (default `3` → 12px). */
852
+ gap?: number | string;
853
+ }
854
+
855
+ /**
856
+ * Visually grouped subset of fields with an optional title and description.
857
+ * Has its own `layout`/`columns`/`gap` so subsets can stack while the parent
858
+ * grids (or vice versa).
859
+ *
860
+ * @example
861
+ * <FormSection title="Endereço" description="Usado para entrega" layout="grid" columns={3}>
862
+ * <Input label="CEP" />
863
+ * <Input label="Rua" />
864
+ * <Input label="Número" />
865
+ * </FormSection>
866
+ */
867
+ export declare function FormSection({ title, description, layout, columns, gap, className, style, children, ...props }: FormSectionProps): JSX.Element;
868
+
869
+ export declare interface FormSectionProps extends Omit<HTMLAttributes<HTMLElement>, "title">, LayoutProps {
870
+ title?: ReactNode;
871
+ description?: ReactNode;
872
+ }
873
+
792
874
  /**
793
875
  * Generate an RFC4122 v4 idempotency key (UUID). Use as the value for an
794
876
  * `Idempotency-Key` header on POST/PATCH requests that must not run twice.
@@ -963,6 +1045,15 @@ export declare interface KeyboardShortcut {
963
1045
 
964
1046
  declare type KeyBuilder = (...args: any[]) => readonly unknown[];
965
1047
 
1048
+ declare interface LayoutProps {
1049
+ /** Field arrangement. `stack` stacks fields vertically, `inline` lines them up in a wrapping row, `grid` arranges them in `columns` equal-width tracks. Default `stack`. */
1050
+ layout?: FormLayout;
1051
+ /** Number of columns when `layout="grid"`, or a custom `grid-template-columns` value. Default `2`. */
1052
+ columns?: number | string;
1053
+ /** Gap between fields. Numbers map to a multiple of the 4px scale (default `4` → 16px). */
1054
+ gap?: number | string;
1055
+ }
1056
+
966
1057
  /**
967
1058
  * Wrap `React.lazy` with automatic retry. Common cause of failure:
968
1059
  * deployed-then-cached `index.html` references chunk filenames that no
package/dist/styles.css CHANGED
@@ -1 +1 @@
1
- .tempest_avatar_3xMuZ{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background-color:var(--tempest-surface-2);color:var(--tempest-text);overflow:hidden;font-weight:600;text-transform:uppercase;flex-shrink:0;-webkit-user-select:none;user-select:none}.tempest_image_ieqGp{width:100%;height:100%;object-fit:cover}.tempest_xs_oSaLL{width:24px;height:24px;font-size:10px}.tempest_sm_sZ2bk{width:32px;height:32px;font-size:12px}.tempest_md_Fdkbz{width:40px;height:40px;font-size:14px}.tempest_lg_pTTUA{width:56px;height:56px;font-size:18px}.tempest_xl_mW58F{width:80px;height:80px;font-size:24px}.tempest_status_ISBnL{position:relative}.tempest_dot_Wgfo-{position:absolute;bottom:0;right:0;width:28%;height:28%;border-radius:50%;border:2px solid var(--tempest-bg)}.tempest_dot_Wgfo-.tempest_online_-aWoW{background-color:var(--tempest-success)}.tempest_dot_Wgfo-.tempest_offline_-StX3{background-color:var(--tempest-text-subtle)}.tempest_dot_Wgfo-.tempest_busy_TbwuF{background-color:var(--tempest-danger)}.tempest_badge_RsuMz{display:inline-flex;align-items:center;gap:var(--tempest-space-1);padding:2px 8px;border-radius:var(--tempest-radius-full);font-size:12px;font-weight:600;line-height:1.4}.tempest_neutral_lulSm{background-color:var(--tempest-surface-2);color:var(--tempest-text)}.tempest_success_u9JiS{background-color:var(--tempest-success-bg);color:var(--tempest-success)}.tempest_warning_nsGp-{background-color:var(--tempest-warning-bg);color:var(--tempest-warning)}.tempest_danger_PD2hz{background-color:var(--tempest-danger-bg);color:var(--tempest-danger)}.tempest_info_na6DQ{background-color:var(--tempest-info-bg);color:var(--tempest-info)}.tempest_nav_H4g6P{display:flex;align-items:center;gap:var(--tempest-space-1);font-size:13px;color:var(--tempest-text-muted);flex-wrap:wrap}.tempest_item_O4g3P{display:inline-flex;align-items:center;gap:var(--tempest-space-1)}.tempest_link_7WM67{color:var(--tempest-text-muted);text-decoration:none;padding:2px 4px;border-radius:var(--tempest-radius-sm)}.tempest_link_7WM67:hover{color:var(--tempest-text);background-color:var(--tempest-surface)}.tempest_current_JdlcS{color:var(--tempest-text);font-weight:600}.tempest_separator_zGWyJ{color:var(--tempest-text-subtle);margin:0 2px}.tempest_button_2ZuB7{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:var(--tempest-space-2);border:1px solid transparent;border-radius:var(--tempest-radius-md);font-weight:600;line-height:1;transition:background-color .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease,transform .05s ease;-webkit-user-select:none;user-select:none}.tempest_button_2ZuB7:focus-visible{outline:2px solid var(--tempest-primary);outline-offset:2px}.tempest_button_2ZuB7:active:not(:disabled){transform:translateY(1px)}.tempest_button_2ZuB7:disabled{opacity:.55}.tempest_primary_s1sM6{background-color:var(--tempest-primary);color:var(--tempest-primary-foreground)}.tempest_primary_s1sM6:hover:not(:disabled){background-color:var(--tempest-primary-hover)}.tempest_secondary_R0waJ{background-color:var(--tempest-surface);color:var(--tempest-text);border-color:var(--tempest-border)}.tempest_secondary_R0waJ:hover:not(:disabled){background-color:var(--tempest-surface-2)}.tempest_danger_V4fX8{background-color:var(--tempest-danger);color:#fff}.tempest_danger_V4fX8:hover:not(:disabled){background-color:#991b1b}.tempest_ghost_1KINV{background-color:transparent;color:var(--tempest-text)}.tempest_ghost_1KINV:hover:not(:disabled){background-color:var(--tempest-surface)}.tempest_sm_NhG0g{height:32px;padding:0 var(--tempest-space-3);font-size:13px}.tempest_md_hH4h3{height:40px;padding:0 var(--tempest-space-4);font-size:14px}.tempest_lg_2plQf{height:48px;padding:0 var(--tempest-space-5);font-size:16px}.tempest_fullWidth_36oJT{width:100%}.tempest_loading_EQAt2 .tempest_hiddenText_hIiJ2{visibility:hidden}.tempest_spinner_ZExvW{position:absolute;animation:tempest_tempest-spin_UOSVC .8s linear infinite}@keyframes tempest_tempest-spin_UOSVC{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.tempest_card_Cb1o4{background-color:var(--tempest-bg);border:1px solid var(--tempest-border);border-radius:var(--tempest-radius-lg);padding:var(--tempest-space-5);box-shadow:var(--tempest-shadow-sm)}.tempest_padded_oOxwN{padding:var(--tempest-space-5)}.tempest_flush_aiDZi{padding:0}.tempest_header_PTXf2{display:flex;align-items:center;justify-content:space-between;padding:var(--tempest-space-4) var(--tempest-space-5);border-bottom:1px solid var(--tempest-border)}.tempest_title_mSgoo{margin:0;font-size:15px;font-weight:600;color:var(--tempest-text)}.tempest_body_W441Z{padding:var(--tempest-space-5)}.tempest_wrapper_rpthW{display:inline-flex;align-items:flex-start;gap:var(--tempest-space-2);cursor:pointer;-webkit-user-select:none;user-select:none}.tempest_wrapper_rpthW.tempest_disabled_x7-eg{cursor:not-allowed;opacity:.6}.tempest_input_2kt-h{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}.tempest_box_OCPee{flex-shrink:0;width:18px;height:18px;border:1.5px solid var(--tempest-border-strong);border-radius:var(--tempest-radius-sm);background-color:var(--tempest-bg);display:inline-flex;align-items:center;justify-content:center;color:transparent;transition:background-color .15s ease,border-color .15s ease,color .15s ease}.tempest_input_2kt-h:focus-visible+.tempest_box_OCPee{outline:2px solid var(--tempest-primary);outline-offset:2px}.tempest_input_2kt-h:checked+.tempest_box_OCPee{background-color:var(--tempest-primary);border-color:var(--tempest-primary);color:var(--tempest-primary-foreground)}.tempest_input_2kt-h:indeterminate+.tempest_box_OCPee{background-color:var(--tempest-primary);border-color:var(--tempest-primary);color:var(--tempest-primary-foreground)}.tempest_labelWrap_Ktbp0{display:flex;flex-direction:column;gap:2px;line-height:1.3}.tempest_label_cwRtI{font-size:14px;color:var(--tempest-text)}.tempest_description_rMhG1{font-size:12px;color:var(--tempest-text-muted)}.tempest_wrapper_KR4-F{display:flex;flex-direction:column;gap:var(--tempest-space-1);width:100%}.tempest_label_Mz-wX{font-size:13px;font-weight:600;color:var(--tempest-text)}.tempest_field_iIBJw{display:flex;align-items:center;flex-wrap:wrap;gap:var(--tempest-space-1);padding:4px var(--tempest-space-2);min-height:40px;border:1px solid var(--tempest-border);border-radius:var(--tempest-radius-md);background-color:var(--tempest-bg);cursor:text}.tempest_field_iIBJw:focus-within{border-color:var(--tempest-primary);box-shadow:0 0 0 3px #0066ff2e}.tempest_wrapper_KR4-F.tempest_error_O9n-9 .tempest_field_iIBJw{border-color:var(--tempest-danger)}.tempest_chip_GEwrc{display:inline-flex;align-items:center;gap:4px;background-color:var(--tempest-surface-2);color:var(--tempest-text);padding:2px 4px 2px 8px;border-radius:var(--tempest-radius-full);font-size:12px;font-weight:600}.tempest_remove_JYDIq{background:none;border:none;color:inherit;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%}.tempest_remove_JYDIq:hover{background-color:#0000001a}.tempest_input_frJmk{border:none;outline:none;background:transparent;flex:1;min-width:80px;font-size:14px;color:var(--tempest-text)}.tempest_helper_Yts53{font-size:12px;color:var(--tempest-text-muted)}.tempest_errorText_llJGq{font-size:12px;color:var(--tempest-danger)}.tempest_overlay_dd9h1{position:fixed;inset:0;background-color:#0f172a80;display:flex;align-items:center;justify-content:center;padding:var(--tempest-space-4);z-index:var(--tempest-z-modal);animation:tempest_tempest-fade-in_DvgSp .15s ease-out}.tempest_dialog_ptM-K{background-color:var(--tempest-bg);color:var(--tempest-text);border-radius:var(--tempest-radius-lg);box-shadow:var(--tempest-shadow-lg);width:100%;max-height:90vh;display:flex;flex-direction:column;animation:tempest_tempest-modal-in_UoxQC .15s ease-out}.tempest_sm_K5k3W{max-width:400px}.tempest_md_gvyR7{max-width:560px}.tempest_lg_BgB1a{max-width:800px}.tempest_xl_MR-68{max-width:1024px}.tempest_header_ILG9i{display:flex;align-items:center;justify-content:space-between;padding:var(--tempest-space-4) var(--tempest-space-5);border-bottom:1px solid var(--tempest-border)}.tempest_title_A5OeE{margin:0;font-size:16px;font-weight:600}.tempest_close_-ER1C{background:none;border:none;color:var(--tempest-text-muted);padding:var(--tempest-space-1);border-radius:var(--tempest-radius-sm);display:flex;align-items:center;justify-content:center}.tempest_close_-ER1C:hover{background-color:var(--tempest-surface);color:var(--tempest-text)}.tempest_body_lVhql{padding:var(--tempest-space-5);overflow-y:auto}.tempest_footer_rro2w{display:flex;justify-content:flex-end;gap:var(--tempest-space-2);padding:var(--tempest-space-4) var(--tempest-space-5);border-top:1px solid var(--tempest-border)}@keyframes tempest_tempest-fade-in_DvgSp{0%{opacity:0}to{opacity:1}}@keyframes tempest_tempest-modal-in_UoxQC{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.tempest_wrapper_iHNUs{display:flex;flex-direction:column;gap:var(--tempest-space-1);width:100%}.tempest_label_-OEBL{font-size:13px;font-weight:600;color:var(--tempest-text)}.tempest_required_CTss-{color:var(--tempest-danger);margin-left:2px}.tempest_field_65yGJ{position:relative;display:flex;align-items:center}.tempest_input_WjT81{width:100%;height:40px;padding:0 var(--tempest-space-3);border:1px solid var(--tempest-border);border-radius:var(--tempest-radius-md);background-color:var(--tempest-bg);color:var(--tempest-text);font-size:14px;transition:border-color .15s ease,box-shadow .15s ease}.tempest_input_WjT81::placeholder{color:var(--tempest-text-subtle)}.tempest_input_WjT81:focus{outline:none;border-color:var(--tempest-primary);box-shadow:0 0 0 3px #0066ff2e}.tempest_input_WjT81:disabled{background-color:var(--tempest-surface);cursor:not-allowed;color:var(--tempest-text-muted)}.tempest_hasLeftIcon_xYO-v{padding-left:36px}.tempest_hasRightIcon_C7uyr{padding-right:36px}.tempest_iconLeft_KrUhI,.tempest_iconRight_Ssr47{position:absolute;display:flex;align-items:center;color:var(--tempest-text-muted);pointer-events:none}.tempest_iconLeft_KrUhI{left:12px}.tempest_iconRight_Ssr47{right:12px}.tempest_error_VLISa .tempest_input_WjT81{border-color:var(--tempest-danger)}.tempest_error_VLISa .tempest_input_WjT81:focus{box-shadow:0 0 0 3px #b91c1c2e}.tempest_helper_7Vc-s{font-size:12px;color:var(--tempest-text-muted)}.tempest_errorText_xz4xS{font-size:12px;color:var(--tempest-danger)}.tempest_overlay_hcG1G{position:fixed;inset:0;background-color:#0f172a73;z-index:var(--tempest-z-modal);animation:tempest_tempest-drawer-overlay_XFbxY .15s ease-out}.tempest_panel_wUX0N{position:fixed;top:0;bottom:0;background-color:var(--tempest-bg);color:var(--tempest-text);box-shadow:var(--tempest-shadow-lg);display:flex;flex-direction:column;z-index:calc(var(--tempest-z-modal) + 1);animation-duration:.22s;animation-timing-function:ease-out;animation-fill-mode:both}.tempest_right_-oX-6{right:0;width:min(420px,92vw);animation-name:tempest_tempest-drawer-in-right_pWYHv}.tempest_left_xi3nD{left:0;width:min(420px,92vw);animation-name:tempest_tempest-drawer-in-left_o7JSb}.tempest_top_7rGCn{inset:0 0 auto;height:min(70vh,480px);animation-name:tempest_tempest-drawer-in-top_kn6AF}.tempest_bottom_zd-25{inset:auto 0 0;height:min(70vh,480px);animation-name:tempest_tempest-drawer-in-bottom_0x3u7}.tempest_header_sYoP1{display:flex;align-items:center;justify-content:space-between;padding:var(--tempest-space-4) var(--tempest-space-5);border-bottom:1px solid var(--tempest-border)}.tempest_title_LqUOu{margin:0;font-size:16px;font-weight:600}.tempest_close_tYPhU{background:none;border:none;color:var(--tempest-text-muted);padding:var(--tempest-space-1);border-radius:var(--tempest-radius-sm);display:flex;align-items:center}.tempest_close_tYPhU:hover{background-color:var(--tempest-surface);color:var(--tempest-text)}.tempest_body_aV9FG{padding:var(--tempest-space-5);overflow-y:auto;flex:1}.tempest_footer_AuvUP{display:flex;justify-content:flex-end;gap:var(--tempest-space-2);padding:var(--tempest-space-4) var(--tempest-space-5);border-top:1px solid var(--tempest-border)}@keyframes tempest_tempest-drawer-overlay_XFbxY{0%{opacity:0}to{opacity:1}}@keyframes tempest_tempest-drawer-in-right_pWYHv{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes tempest_tempest-drawer-in-left_o7JSb{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes tempest_tempest-drawer-in-top_kn6AF{0%{transform:translateY(-100%)}to{transform:translateY(0)}}@keyframes tempest_tempest-drawer-in-bottom_0x3u7{0%{transform:translateY(100%)}to{transform:translateY(0)}}.tempest_wrapper_gzyTd{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--tempest-space-3);padding:var(--tempest-space-8) var(--tempest-space-4);text-align:center;color:var(--tempest-text-muted)}.tempest_icon_qVCyh{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:var(--tempest-radius-full);background-color:var(--tempest-surface);color:var(--tempest-text-muted)}.tempest_title_xPfUf{margin:0;font-size:16px;font-weight:600;color:var(--tempest-text)}.tempest_description_oWwH1{margin:0;font-size:14px;color:var(--tempest-text-muted);max-width:480px}.tempest_action_dqxw1{margin-top:var(--tempest-space-2)}.tempest_wrapper_luRyF{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--tempest-space-3);padding:var(--tempest-space-8) var(--tempest-space-4);text-align:center}.tempest_icon_dEdBl{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:var(--tempest-radius-full);background-color:var(--tempest-danger-bg);color:var(--tempest-danger)}.tempest_title_StutD{margin:0;font-size:16px;font-weight:600;color:var(--tempest-text)}.tempest_description_A2XCb{margin:0;font-size:14px;color:var(--tempest-text-muted);max-width:480px}.tempest_action_vm1LC{margin-top:var(--tempest-space-2)}.tempest_wrapper_E0qHs{display:flex;flex-direction:column;gap:var(--tempest-space-1);width:100%}.tempest_label_lbMkx{font-size:13px;font-weight:600;color:var(--tempest-text)}.tempest_dropzone_jqua0{border:2px dashed var(--tempest-border-strong);border-radius:var(--tempest-radius-lg);background-color:var(--tempest-surface);padding:var(--tempest-space-6) var(--tempest-space-5);text-align:center;cursor:pointer;transition:border-color .15s ease,background-color .15s ease}.tempest_dropzone_jqua0:hover{border-color:var(--tempest-primary)}.tempest_dropzone_jqua0.tempest_active_CG9Uk{border-color:var(--tempest-primary);background-color:#0066ff0f}.tempest_dropzone_jqua0.tempest_disabled_WNUUl{opacity:.6;cursor:not-allowed}.tempest_icon_i9fGH{color:var(--tempest-text-muted);margin-bottom:var(--tempest-space-2)}.tempest_title_bTVFl{font-weight:600;color:var(--tempest-text);font-size:14px;margin:0}.tempest_subtitle_S54OV{color:var(--tempest-text-muted);font-size:12px;margin:var(--tempest-space-1) 0 0}.tempest_files_WljYm{margin-top:var(--tempest-space-3);display:flex;flex-direction:column;gap:var(--tempest-space-2)}.tempest_file_Lp-dR{display:flex;align-items:center;justify-content:space-between;gap:var(--tempest-space-3);padding:var(--tempest-space-2) var(--tempest-space-3);background-color:var(--tempest-bg);border:1px solid var(--tempest-border);border-radius:var(--tempest-radius-md);font-size:13px}.tempest_fileMeta_LTnN2{color:var(--tempest-text-muted);font-size:11px}.tempest_remove_jskra{background:none;border:none;color:var(--tempest-text-muted);cursor:pointer;padding:4px;border-radius:var(--tempest-radius-sm)}.tempest_remove_jskra:hover{background-color:var(--tempest-surface);color:var(--tempest-danger)}.tempest_hidden_ReEq6{display:none}.tempest_container_fJfOt{margin-left:auto;margin-right:auto;padding-left:var(--tempest-space-4);padding-right:var(--tempest-space-4);width:100%}.tempest_container_fJfOt.tempest_sm_k8D4-{max-width:640px}.tempest_container_fJfOt.tempest_md_EnpYy{max-width:768px}.tempest_container_fJfOt.tempest_lg_UU-Ig{max-width:1024px}.tempest_container_fJfOt.tempest_xl_2TEWj{max-width:1280px}.tempest_container_fJfOt.tempest_full_l8bvG{max-width:100%}.tempest_stack_sxR8u{display:flex}.tempest_stack_sxR8u.tempest_vertical_2TMf5{flex-direction:column}.tempest_stack_sxR8u.tempest_horizontal_r7-c-{flex-direction:row}.tempest_stack_sxR8u.tempest_center_EDSAh{align-items:center}.tempest_stack_sxR8u.tempest_start_ucQ-K{align-items:flex-start}.tempest_stack_sxR8u.tempest_end_pnKlF{align-items:flex-end}.tempest_stack_sxR8u.tempest_stretch_pX6l7{align-items:stretch}.tempest_stack_sxR8u.tempest_justifyStart_lHYsS{justify-content:flex-start}.tempest_stack_sxR8u.tempest_justifyCenter_JH2m6{justify-content:center}.tempest_stack_sxR8u.tempest_justifyEnd_EBisT{justify-content:flex-end}.tempest_stack_sxR8u.tempest_justifyBetween_mAJwT{justify-content:space-between}.tempest_stack_sxR8u.tempest_wrap_-xxOh{flex-wrap:wrap}.tempest_grid_o-JIX{display:grid;width:100%}.tempest_wrapper_cRGQm{display:flex;align-items:center;justify-content:space-between;gap:var(--tempest-space-3);padding:var(--tempest-space-3) 0;font-size:13px;color:var(--tempest-text-muted);flex-wrap:wrap}.tempest_controls_fdL-y{display:flex;align-items:center;gap:var(--tempest-space-1)}.tempest_page_WjG0l{min-width:32px;height:32px;padding:0 var(--tempest-space-2);border:1px solid var(--tempest-border);background-color:var(--tempest-bg);color:var(--tempest-text);border-radius:var(--tempest-radius-md);font-size:13px;font-weight:500}.tempest_page_WjG0l:hover:not(:disabled){background-color:var(--tempest-surface)}.tempest_page_WjG0l:disabled{opacity:.5}.tempest_active_1kqsJ{background-color:var(--tempest-primary);border-color:var(--tempest-primary);color:var(--tempest-primary-foreground)}.tempest_active_1kqsJ:hover{background-color:var(--tempest-primary-hover)}.tempest_ellipsis_V294k{padding:0 var(--tempest-space-2);color:var(--tempest-text-subtle)}.tempest_sizeSelect_ZayTo{height:32px;padding:0 var(--tempest-space-2);border:1px solid var(--tempest-border);border-radius:var(--tempest-radius-md);background-color:var(--tempest-bg);color:var(--tempest-text);font-size:13px}.tempest_wrapper_BQek1{display:flex;flex-direction:column;gap:var(--tempest-space-1);width:100%}.tempest_bar_uC-0x{width:100%;height:8px;background-color:var(--tempest-surface-2);border-radius:var(--tempest-radius-full);overflow:hidden}.tempest_fill_vmg7x{height:100%;background-color:var(--tempest-primary);border-radius:inherit;transition:width .18s ease}.tempest_fill_vmg7x.tempest_success_gWJ8U{background-color:var(--tempest-success)}.tempest_fill_vmg7x.tempest_warning_DGkPO{background-color:var(--tempest-warning)}.tempest_fill_vmg7x.tempest_danger_gfwHh{background-color:var(--tempest-danger)}.tempest_indeterminate_HojUj .tempest_fill_vmg7x{width:30%!important;animation:tempest_tempest-progress-loop_0nEdF 1.4s ease-in-out infinite}.tempest_label_qqHJM{font-size:12px;color:var(--tempest-text-muted);display:flex;justify-content:space-between}@keyframes tempest_tempest-progress-loop_0nEdF{0%{transform:translate(-100%)}to{transform:translate(360%)}}.tempest_wrapper_P-gFm{display:inline-flex;align-items:flex-start;gap:var(--tempest-space-2);cursor:pointer;-webkit-user-select:none;user-select:none}.tempest_wrapper_P-gFm.tempest_disabled_0-cna{cursor:not-allowed;opacity:.6}.tempest_input_7R8ZN{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}.tempest_dot_P7ejP{flex-shrink:0;width:18px;height:18px;border:1.5px solid var(--tempest-border-strong);border-radius:50%;background-color:var(--tempest-bg);display:inline-flex;align-items:center;justify-content:center;transition:border-color .15s ease}.tempest_dot_P7ejP:after{content:"";width:10px;height:10px;border-radius:50%;background-color:var(--tempest-primary);transform:scale(0);transition:transform .15s ease}.tempest_input_7R8ZN:checked+.tempest_dot_P7ejP{border-color:var(--tempest-primary)}.tempest_input_7R8ZN:checked+.tempest_dot_P7ejP:after{transform:scale(1)}.tempest_input_7R8ZN:focus-visible+.tempest_dot_P7ejP{outline:2px solid var(--tempest-primary);outline-offset:2px}.tempest_labelWrap_iQ1HR{display:flex;flex-direction:column;gap:2px;line-height:1.3}.tempest_label_vAFIP{font-size:14px;color:var(--tempest-text)}.tempest_description_bEB8u{font-size:12px;color:var(--tempest-text-muted)}.tempest_group_oi329{display:flex;flex-direction:column;gap:var(--tempest-space-2)}.tempest_group_oi329.tempest_horizontal_1Ovgu{flex-direction:row;gap:var(--tempest-space-4);flex-wrap:wrap}.tempest_wrapper_dKXJJ{position:relative;width:100%;max-width:360px}.tempest_input_m0lPc{width:100%;height:40px;padding:0 36px;border:1px solid var(--tempest-border);border-radius:var(--tempest-radius-md);background-color:var(--tempest-bg);color:var(--tempest-text);font-size:14px;transition:border-color .15s ease,box-shadow .15s ease}.tempest_input_m0lPc:focus{outline:none;border-color:var(--tempest-primary);box-shadow:0 0 0 3px #0066ff2e}.tempest_iconLeft_030-U,.tempest_clear_nb6lG{position:absolute;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;color:var(--tempest-text-muted)}.tempest_iconLeft_030-U{left:12px;pointer-events:none}.tempest_clear_nb6lG{right:8px;width:24px;height:24px;border:none;background:transparent;border-radius:var(--tempest-radius-full)}.tempest_clear_nb6lG:hover{background-color:var(--tempest-surface);color:var(--tempest-text)}.tempest_wrapper_KS2K3{display:flex;flex-direction:column;gap:var(--tempest-space-1);width:100%}.tempest_label_Lmgos{font-size:13px;font-weight:600;color:var(--tempest-text)}.tempest_required_PvDVJ{color:var(--tempest-danger);margin-left:2px}.tempest_field_h-wBy{position:relative;display:flex;align-items:center}.tempest_select_cjdcr{width:100%;height:40px;padding:0 36px 0 var(--tempest-space-3);border:1px solid var(--tempest-border);border-radius:var(--tempest-radius-md);background-color:var(--tempest-bg);color:var(--tempest-text);font-size:14px;appearance:none;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease}.tempest_select_cjdcr:focus{outline:none;border-color:var(--tempest-primary);box-shadow:0 0 0 3px #0066ff2e}.tempest_select_cjdcr:disabled{background-color:var(--tempest-surface);cursor:not-allowed;color:var(--tempest-text-muted)}.tempest_caret_MdCao{position:absolute;right:12px;pointer-events:none;color:var(--tempest-text-muted)}.tempest_error_sw9MU .tempest_select_cjdcr{border-color:var(--tempest-danger)}.tempest_helper_frosK{font-size:12px;color:var(--tempest-text-muted)}.tempest_errorText_-zd6i{font-size:12px;color:var(--tempest-danger)}.tempest_skeleton_CB4uF{display:block;background:linear-gradient(90deg,var(--tempest-surface) 0%,var(--tempest-surface-2) 50%,var(--tempest-surface) 100%);background-size:200% 100%;border-radius:var(--tempest-radius-md);animation:tempest_tempest-skeleton_H5Y8e 1.4s ease-in-out infinite}.tempest_text_-A8IF{height:14px;border-radius:var(--tempest-radius-sm)}.tempest_circle_DYcl8{border-radius:50%}@keyframes tempest_tempest-skeleton_H5Y8e{0%{background-position:200% 0}to{background-position:-200% 0}}.tempest_spinner_GpFZS{display:inline-block;border:2px solid var(--tempest-surface-2);border-top-color:var(--tempest-primary);border-radius:50%;animation:tempest_tempest-spinner_wKVCY .7s linear infinite}.tempest_sm_3sIoD{width:14px;height:14px}.tempest_md_M2sPj{width:20px;height:20px}.tempest_lg_IxTw2{width:32px;height:32px}@keyframes tempest_tempest-spinner_wKVCY{to{transform:rotate(360deg)}}.tempest_stepper_w3qjQ{display:flex;align-items:flex-start;gap:var(--tempest-space-2);width:100%}.tempest_stepper_w3qjQ.tempest_vertical_d4mOs{flex-direction:column;align-items:stretch}.tempest_step_s2nqL{display:flex;align-items:center;gap:var(--tempest-space-2);flex:1}.tempest_dot_d1bSL{width:28px;height:28px;border-radius:50%;border:2px solid var(--tempest-border-strong);background-color:var(--tempest-bg);color:var(--tempest-text-muted);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex-shrink:0}.tempest_step_s2nqL.tempest_completed_gcFHM .tempest_dot_d1bSL{background-color:var(--tempest-primary);border-color:var(--tempest-primary);color:var(--tempest-primary-foreground)}.tempest_step_s2nqL.tempest_active_kL-CH .tempest_dot_d1bSL{border-color:var(--tempest-primary);color:var(--tempest-primary)}.tempest_label_8irAI{font-size:13px;color:var(--tempest-text-muted);font-weight:600}.tempest_step_s2nqL.tempest_active_kL-CH .tempest_label_8irAI,.tempest_step_s2nqL.tempest_completed_gcFHM .tempest_label_8irAI{color:var(--tempest-text)}.tempest_connector_lyeWp{flex:1;height:2px;background-color:var(--tempest-border);margin:0 var(--tempest-space-1)}.tempest_connector_lyeWp.tempest_completed_gcFHM{background-color:var(--tempest-primary)}.tempest_stepper_w3qjQ.tempest_vertical_d4mOs .tempest_connector_lyeWp{width:2px;height:24px;margin:0 0 0 13px}.tempest_wrapper_kudO9{display:inline-flex;align-items:center;gap:var(--tempest-space-2);cursor:pointer;-webkit-user-select:none;user-select:none}.tempest_wrapper_kudO9.tempest_disabled_2aZ0V{cursor:not-allowed;opacity:.6}.tempest_input_5BPNu{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}.tempest_track_7ObdZ{width:36px;height:20px;background-color:var(--tempest-border-strong);border-radius:var(--tempest-radius-full);position:relative;transition:background-color .18s ease;flex-shrink:0}.tempest_thumb_-FTeK{position:absolute;top:2px;left:2px;width:16px;height:16px;background-color:#fff;border-radius:50%;box-shadow:var(--tempest-shadow-sm);transition:transform .18s ease}.tempest_input_5BPNu:checked+.tempest_track_7ObdZ{background-color:var(--tempest-primary)}.tempest_input_5BPNu:checked+.tempest_track_7ObdZ .tempest_thumb_-FTeK{transform:translate(16px)}.tempest_input_5BPNu:focus-visible+.tempest_track_7ObdZ{outline:2px solid var(--tempest-primary);outline-offset:2px}.tempest_label_LrH7V{font-size:14px;color:var(--tempest-text)}.tempest_scroll_unrJp{width:100%;overflow-x:auto;border:1px solid var(--tempest-border);border-radius:var(--tempest-radius-lg);background-color:var(--tempest-bg)}.tempest_table_Dkosn{width:100%;border-collapse:collapse;font-size:14px}.tempest_th_PNuEx,.tempest_td_jv9tA{padding:var(--tempest-space-3) var(--tempest-space-4);text-align:left;border-bottom:1px solid var(--tempest-border)}.tempest_th_PNuEx{background-color:var(--tempest-surface);color:var(--tempest-text-muted);font-weight:600;font-size:12px;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}.tempest_tr_7UG8J:last-child .tempest_td_jv9tA{border-bottom:none}.tempest_tr_7UG8J.tempest_clickable_B6Si-{cursor:pointer}.tempest_tr_7UG8J.tempest_clickable_B6Si-:hover{background-color:var(--tempest-surface)}.tempest_alignRight_9hY0G{text-align:right}.tempest_alignCenter_YiUQy{text-align:center}.tempest_emptyRow_kdMiv{padding:var(--tempest-space-6);text-align:center;color:var(--tempest-text-muted)}.tempest_tablist_WR6ag{display:flex;gap:var(--tempest-space-1);border-bottom:1px solid var(--tempest-border);overflow-x:auto}.tempest_tab_IdDYc{background:transparent;border:none;padding:var(--tempest-space-3) var(--tempest-space-4);font-size:14px;font-weight:600;color:var(--tempest-text-muted);cursor:pointer;position:relative;white-space:nowrap;transition:color .15s ease}.tempest_tab_IdDYc:hover:not(:disabled){color:var(--tempest-text)}.tempest_tab_IdDYc.tempest_active_PTNtG{color:var(--tempest-primary)}.tempest_tab_IdDYc.tempest_active_PTNtG:after{content:"";position:absolute;left:var(--tempest-space-3);right:var(--tempest-space-3);bottom:-1px;height:2px;background-color:var(--tempest-primary);border-radius:var(--tempest-radius-sm) var(--tempest-radius-sm) 0 0}.tempest_tab_IdDYc:disabled{opacity:.5;cursor:not-allowed}.tempest_panel_08i9c{padding:var(--tempest-space-4) 0}.tempest_pill_lGuqn .tempest_tab_IdDYc{border-radius:var(--tempest-radius-full);padding:6px var(--tempest-space-3);font-size:13px}.tempest_pill_lGuqn .tempest_tab_IdDYc.tempest_active_PTNtG:after{display:none}.tempest_pill_lGuqn .tempest_tab_IdDYc.tempest_active_PTNtG{background-color:var(--tempest-primary);color:var(--tempest-primary-foreground)}.tempest_pill_lGuqn.tempest_tablist_WR6ag{border-bottom:none}.tempest_wrapper_C0gfg{display:flex;flex-direction:column;gap:var(--tempest-space-1);width:100%}.tempest_label_cWLXP{font-size:13px;font-weight:600;color:var(--tempest-text)}.tempest_required_rDZXE{color:var(--tempest-danger);margin-left:2px}.tempest_textarea_Z-y6g{width:100%;min-height:96px;padding:var(--tempest-space-3);border:1px solid var(--tempest-border);border-radius:var(--tempest-radius-md);background-color:var(--tempest-bg);color:var(--tempest-text);font-size:14px;font-family:inherit;resize:vertical;transition:border-color .15s ease,box-shadow .15s ease}.tempest_textarea_Z-y6g::placeholder{color:var(--tempest-text-subtle)}.tempest_textarea_Z-y6g:focus{outline:none;border-color:var(--tempest-primary);box-shadow:0 0 0 3px #0066ff2e}.tempest_textarea_Z-y6g:disabled{background-color:var(--tempest-surface);cursor:not-allowed;color:var(--tempest-text-muted)}.tempest_error_NWC9f .tempest_textarea_Z-y6g{border-color:var(--tempest-danger)}.tempest_helper_gedut{font-size:12px;color:var(--tempest-text-muted)}.tempest_errorText_ey07q{font-size:12px;color:var(--tempest-danger)}.tempest_trigger_Dmc5E{display:inline-flex;position:relative}.tempest_bubble_TPGHB{position:absolute;z-index:var(--tempest-z-dropdown);background-color:#11151c;color:#fff;padding:4px 8px;border-radius:var(--tempest-radius-sm);font-size:12px;white-space:nowrap;pointer-events:none;box-shadow:var(--tempest-shadow-md);animation:tempest_tempest-tooltip-in_csYeZ .12s ease-out}.tempest_top_m2tnn{bottom:calc(100% + 8px);left:50%;transform:translate(-50%)}.tempest_bottom_9Twz4{top:calc(100% + 8px);left:50%;transform:translate(-50%)}.tempest_left_UPdrG{right:calc(100% + 8px);top:50%;transform:translateY(-50%)}.tempest_right_CV--T{left:calc(100% + 8px);top:50%;transform:translateY(-50%)}@keyframes tempest_tempest-tooltip-in_csYeZ{0%{opacity:0;transform:scale(.95) translate(var(--tempest-tx, 0),var(--tempest-ty, 0))}to{opacity:1}}.tempest_container_x4-Qm{position:fixed;top:var(--tempest-space-4);right:var(--tempest-space-4);display:flex;flex-direction:column;gap:var(--tempest-space-2);z-index:var(--tempest-z-toast);pointer-events:none}.tempest_toast_FLdHz{pointer-events:auto;display:flex;align-items:flex-start;gap:var(--tempest-space-3);padding:var(--tempest-space-3) var(--tempest-space-4);border-radius:var(--tempest-radius-md);background-color:var(--tempest-bg);border:1px solid var(--tempest-border);box-shadow:var(--tempest-shadow-md);min-width:280px;max-width:420px;animation:tempest_tempest-toast-in_E2d-A .18s ease-out}.tempest_success_Oy694{border-left:4px solid var(--tempest-success)}.tempest_warning_84GC8{border-left:4px solid var(--tempest-warning)}.tempest_error_hrQAA{border-left:4px solid var(--tempest-danger)}.tempest_info_eq5bQ{border-left:4px solid var(--tempest-info)}.tempest_title_-H6R2{font-weight:600;font-size:14px;color:var(--tempest-text);margin:0}.tempest_description_-QwfC{font-size:13px;color:var(--tempest-text-muted);margin:2px 0 0}.tempest_close_i10-s{margin-left:auto;background:none;border:none;color:var(--tempest-text-muted);padding:4px;border-radius:var(--tempest-radius-sm);display:flex;align-items:center}.tempest_close_i10-s:hover{background-color:var(--tempest-surface);color:var(--tempest-text)}@keyframes tempest_tempest-toast-in_E2d-A{0%{transform:translate(20px);opacity:0}to{transform:translate(0);opacity:1}}.tempest_scroll_8Giwl{position:relative;overflow:auto;width:100%}.tempest_spacer_P3Pvl{position:relative;width:100%}.tempest_row_Ff0VU{position:absolute;left:0;right:0}
1
+ .tempest_avatar_3xMuZ{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background-color:var(--tempest-surface-2);color:var(--tempest-text);overflow:hidden;font-weight:600;text-transform:uppercase;flex-shrink:0;-webkit-user-select:none;user-select:none}.tempest_image_ieqGp{width:100%;height:100%;object-fit:cover}.tempest_xs_oSaLL{width:24px;height:24px;font-size:10px}.tempest_sm_sZ2bk{width:32px;height:32px;font-size:12px}.tempest_md_Fdkbz{width:40px;height:40px;font-size:14px}.tempest_lg_pTTUA{width:56px;height:56px;font-size:18px}.tempest_xl_mW58F{width:80px;height:80px;font-size:24px}.tempest_status_ISBnL{position:relative}.tempest_dot_Wgfo-{position:absolute;bottom:0;right:0;width:28%;height:28%;border-radius:50%;border:2px solid var(--tempest-bg)}.tempest_dot_Wgfo-.tempest_online_-aWoW{background-color:var(--tempest-success)}.tempest_dot_Wgfo-.tempest_offline_-StX3{background-color:var(--tempest-text-subtle)}.tempest_dot_Wgfo-.tempest_busy_TbwuF{background-color:var(--tempest-danger)}.tempest_badge_RsuMz{display:inline-flex;align-items:center;gap:var(--tempest-space-1);padding:2px 8px;border-radius:var(--tempest-radius-full);font-size:12px;font-weight:600;line-height:1.4}.tempest_neutral_lulSm{background-color:var(--tempest-surface-2);color:var(--tempest-text)}.tempest_success_u9JiS{background-color:var(--tempest-success-bg);color:var(--tempest-success)}.tempest_warning_nsGp-{background-color:var(--tempest-warning-bg);color:var(--tempest-warning)}.tempest_danger_PD2hz{background-color:var(--tempest-danger-bg);color:var(--tempest-danger)}.tempest_info_na6DQ{background-color:var(--tempest-info-bg);color:var(--tempest-info)}.tempest_nav_H4g6P{display:flex;align-items:center;gap:var(--tempest-space-1);font-size:13px;color:var(--tempest-text-muted);flex-wrap:wrap}.tempest_item_O4g3P{display:inline-flex;align-items:center;gap:var(--tempest-space-1)}.tempest_link_7WM67{color:var(--tempest-text-muted);text-decoration:none;padding:2px 4px;border-radius:var(--tempest-radius-sm)}.tempest_link_7WM67:hover{color:var(--tempest-text);background-color:var(--tempest-surface)}.tempest_current_JdlcS{color:var(--tempest-text);font-weight:600}.tempest_separator_zGWyJ{color:var(--tempest-text-subtle);margin:0 2px}.tempest_button_2ZuB7{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:var(--tempest-space-2);border:1px solid transparent;border-radius:var(--tempest-radius-md);font-weight:600;line-height:1;transition:background-color .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease,transform .05s ease;-webkit-user-select:none;user-select:none}.tempest_button_2ZuB7:focus-visible{outline:2px solid var(--tempest-primary);outline-offset:2px}.tempest_button_2ZuB7:active:not(:disabled){transform:translateY(1px)}.tempest_button_2ZuB7:disabled{opacity:.55}.tempest_primary_s1sM6{background-color:var(--tempest-primary);color:var(--tempest-primary-foreground)}.tempest_primary_s1sM6:hover:not(:disabled){background-color:var(--tempest-primary-hover)}.tempest_secondary_R0waJ{background-color:var(--tempest-surface);color:var(--tempest-text);border-color:var(--tempest-border)}.tempest_secondary_R0waJ:hover:not(:disabled){background-color:var(--tempest-surface-2)}.tempest_danger_V4fX8{background-color:var(--tempest-danger);color:#fff}.tempest_danger_V4fX8:hover:not(:disabled){background-color:#991b1b}.tempest_ghost_1KINV{background-color:transparent;color:var(--tempest-text)}.tempest_ghost_1KINV:hover:not(:disabled){background-color:var(--tempest-surface)}.tempest_sm_NhG0g{height:32px;padding:0 var(--tempest-space-3);font-size:13px}.tempest_md_hH4h3{height:40px;padding:0 var(--tempest-space-4);font-size:14px}.tempest_lg_2plQf{height:48px;padding:0 var(--tempest-space-5);font-size:16px}.tempest_fullWidth_36oJT{width:100%}.tempest_loading_EQAt2 .tempest_hiddenText_hIiJ2{visibility:hidden}.tempest_spinner_ZExvW{position:absolute;animation:tempest_tempest-spin_UOSVC .8s linear infinite}@keyframes tempest_tempest-spin_UOSVC{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.tempest_card_Cb1o4{background-color:var(--tempest-bg);border:1px solid var(--tempest-border);border-radius:var(--tempest-radius-lg);padding:var(--tempest-space-5);box-shadow:var(--tempest-shadow-sm)}.tempest_padded_oOxwN{padding:var(--tempest-space-5)}.tempest_flush_aiDZi{padding:0}.tempest_header_PTXf2{display:flex;align-items:center;justify-content:space-between;padding:var(--tempest-space-4) var(--tempest-space-5);border-bottom:1px solid var(--tempest-border)}.tempest_title_mSgoo{margin:0;font-size:15px;font-weight:600;color:var(--tempest-text)}.tempest_body_W441Z{padding:var(--tempest-space-5)}.tempest_wrapper_rpthW{display:inline-flex;align-items:flex-start;gap:var(--tempest-space-2);cursor:pointer;-webkit-user-select:none;user-select:none}.tempest_wrapper_rpthW.tempest_disabled_x7-eg{cursor:not-allowed;opacity:.6}.tempest_input_2kt-h{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}.tempest_box_OCPee{flex-shrink:0;width:18px;height:18px;border:1.5px solid var(--tempest-border-strong);border-radius:var(--tempest-radius-sm);background-color:var(--tempest-bg);display:inline-flex;align-items:center;justify-content:center;color:transparent;transition:background-color .15s ease,border-color .15s ease,color .15s ease}.tempest_input_2kt-h:focus-visible+.tempest_box_OCPee{outline:2px solid var(--tempest-primary);outline-offset:2px}.tempest_input_2kt-h:checked+.tempest_box_OCPee{background-color:var(--tempest-primary);border-color:var(--tempest-primary);color:var(--tempest-primary-foreground)}.tempest_input_2kt-h:indeterminate+.tempest_box_OCPee{background-color:var(--tempest-primary);border-color:var(--tempest-primary);color:var(--tempest-primary-foreground)}.tempest_labelWrap_Ktbp0{display:flex;flex-direction:column;gap:2px;line-height:1.3}.tempest_label_cwRtI{font-size:14px;color:var(--tempest-text)}.tempest_description_rMhG1{font-size:12px;color:var(--tempest-text-muted)}.tempest_wrapper_KR4-F{display:flex;flex-direction:column;gap:var(--tempest-space-1);width:100%}.tempest_label_Mz-wX{font-size:13px;font-weight:600;color:var(--tempest-text)}.tempest_field_iIBJw{display:flex;align-items:center;flex-wrap:wrap;gap:var(--tempest-space-1);padding:4px var(--tempest-space-2);min-height:40px;border:1px solid var(--tempest-border);border-radius:var(--tempest-radius-md);background-color:var(--tempest-bg);cursor:text}.tempest_field_iIBJw:focus-within{border-color:var(--tempest-primary);box-shadow:0 0 0 3px #0066ff2e}.tempest_wrapper_KR4-F.tempest_error_O9n-9 .tempest_field_iIBJw{border-color:var(--tempest-danger)}.tempest_chip_GEwrc{display:inline-flex;align-items:center;gap:4px;background-color:var(--tempest-surface-2);color:var(--tempest-text);padding:2px 4px 2px 8px;border-radius:var(--tempest-radius-full);font-size:12px;font-weight:600}.tempest_remove_JYDIq{background:none;border:none;color:inherit;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%}.tempest_remove_JYDIq:hover{background-color:#0000001a}.tempest_input_frJmk{border:none;outline:none;background:transparent;flex:1;min-width:80px;font-size:14px;color:var(--tempest-text)}.tempest_helper_Yts53{font-size:12px;color:var(--tempest-text-muted)}.tempest_errorText_llJGq{font-size:12px;color:var(--tempest-danger)}.tempest_overlay_dd9h1{position:fixed;inset:0;background-color:#0f172a80;display:flex;align-items:center;justify-content:center;padding:var(--tempest-space-4);z-index:var(--tempest-z-modal);animation:tempest_tempest-fade-in_DvgSp .15s ease-out}.tempest_dialog_ptM-K{background-color:var(--tempest-bg);color:var(--tempest-text);border-radius:var(--tempest-radius-lg);box-shadow:var(--tempest-shadow-lg);width:100%;max-height:90vh;display:flex;flex-direction:column;animation:tempest_tempest-modal-in_UoxQC .15s ease-out}.tempest_sm_K5k3W{max-width:400px}.tempest_md_gvyR7{max-width:560px}.tempest_lg_BgB1a{max-width:800px}.tempest_xl_MR-68{max-width:1024px}.tempest_header_ILG9i{display:flex;align-items:center;justify-content:space-between;padding:var(--tempest-space-4) var(--tempest-space-5);border-bottom:1px solid var(--tempest-border)}.tempest_title_A5OeE{margin:0;font-size:16px;font-weight:600}.tempest_close_-ER1C{background:none;border:none;color:var(--tempest-text-muted);padding:var(--tempest-space-1);border-radius:var(--tempest-radius-sm);display:flex;align-items:center;justify-content:center}.tempest_close_-ER1C:hover{background-color:var(--tempest-surface);color:var(--tempest-text)}.tempest_body_lVhql{padding:var(--tempest-space-5);overflow-y:auto}.tempest_footer_rro2w{display:flex;justify-content:flex-end;gap:var(--tempest-space-2);padding:var(--tempest-space-4) var(--tempest-space-5);border-top:1px solid var(--tempest-border)}@keyframes tempest_tempest-fade-in_DvgSp{0%{opacity:0}to{opacity:1}}@keyframes tempest_tempest-modal-in_UoxQC{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.tempest_wrapper_iHNUs{display:flex;flex-direction:column;gap:var(--tempest-space-1);width:100%}.tempest_label_-OEBL{font-size:13px;font-weight:600;color:var(--tempest-text)}.tempest_required_CTss-{color:var(--tempest-danger);margin-left:2px}.tempest_field_65yGJ{position:relative;display:flex;align-items:center}.tempest_input_WjT81{width:100%;height:40px;padding:0 var(--tempest-space-3);border:1px solid var(--tempest-border);border-radius:var(--tempest-radius-md);background-color:var(--tempest-bg);color:var(--tempest-text);font-size:14px;transition:border-color .15s ease,box-shadow .15s ease}.tempest_input_WjT81::placeholder{color:var(--tempest-text-subtle)}.tempest_input_WjT81:focus{outline:none;border-color:var(--tempest-primary);box-shadow:0 0 0 3px #0066ff2e}.tempest_input_WjT81:disabled{background-color:var(--tempest-surface);cursor:not-allowed;color:var(--tempest-text-muted)}.tempest_hasLeftIcon_xYO-v{padding-left:36px}.tempest_hasRightIcon_C7uyr{padding-right:36px}.tempest_iconLeft_KrUhI,.tempest_iconRight_Ssr47{position:absolute;display:flex;align-items:center;color:var(--tempest-text-muted);pointer-events:none}.tempest_iconLeft_KrUhI{left:12px}.tempest_iconRight_Ssr47{right:12px}.tempest_error_VLISa .tempest_input_WjT81{border-color:var(--tempest-danger)}.tempest_error_VLISa .tempest_input_WjT81:focus{box-shadow:0 0 0 3px #b91c1c2e}.tempest_helper_7Vc-s{font-size:12px;color:var(--tempest-text-muted)}.tempest_errorText_xz4xS{font-size:12px;color:var(--tempest-danger)}.tempest_overlay_hcG1G{position:fixed;inset:0;background-color:#0f172a73;z-index:var(--tempest-z-modal);animation:tempest_tempest-drawer-overlay_XFbxY .15s ease-out}.tempest_panel_wUX0N{position:fixed;top:0;bottom:0;background-color:var(--tempest-bg);color:var(--tempest-text);box-shadow:var(--tempest-shadow-lg);display:flex;flex-direction:column;z-index:calc(var(--tempest-z-modal) + 1);animation-duration:.22s;animation-timing-function:ease-out;animation-fill-mode:both}.tempest_right_-oX-6{right:0;width:min(420px,92vw);animation-name:tempest_tempest-drawer-in-right_pWYHv}.tempest_left_xi3nD{left:0;width:min(420px,92vw);animation-name:tempest_tempest-drawer-in-left_o7JSb}.tempest_top_7rGCn{inset:0 0 auto;height:min(70vh,480px);animation-name:tempest_tempest-drawer-in-top_kn6AF}.tempest_bottom_zd-25{inset:auto 0 0;height:min(70vh,480px);animation-name:tempest_tempest-drawer-in-bottom_0x3u7}.tempest_header_sYoP1{display:flex;align-items:center;justify-content:space-between;padding:var(--tempest-space-4) var(--tempest-space-5);border-bottom:1px solid var(--tempest-border)}.tempest_title_LqUOu{margin:0;font-size:16px;font-weight:600}.tempest_close_tYPhU{background:none;border:none;color:var(--tempest-text-muted);padding:var(--tempest-space-1);border-radius:var(--tempest-radius-sm);display:flex;align-items:center}.tempest_close_tYPhU:hover{background-color:var(--tempest-surface);color:var(--tempest-text)}.tempest_body_aV9FG{padding:var(--tempest-space-5);overflow-y:auto;flex:1}.tempest_footer_AuvUP{display:flex;justify-content:flex-end;gap:var(--tempest-space-2);padding:var(--tempest-space-4) var(--tempest-space-5);border-top:1px solid var(--tempest-border)}@keyframes tempest_tempest-drawer-overlay_XFbxY{0%{opacity:0}to{opacity:1}}@keyframes tempest_tempest-drawer-in-right_pWYHv{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes tempest_tempest-drawer-in-left_o7JSb{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes tempest_tempest-drawer-in-top_kn6AF{0%{transform:translateY(-100%)}to{transform:translateY(0)}}@keyframes tempest_tempest-drawer-in-bottom_0x3u7{0%{transform:translateY(100%)}to{transform:translateY(0)}}.tempest_wrapper_gzyTd{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--tempest-space-3);padding:var(--tempest-space-8) var(--tempest-space-4);text-align:center;color:var(--tempest-text-muted)}.tempest_icon_qVCyh{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:var(--tempest-radius-full);background-color:var(--tempest-surface);color:var(--tempest-text-muted)}.tempest_title_xPfUf{margin:0;font-size:16px;font-weight:600;color:var(--tempest-text)}.tempest_description_oWwH1{margin:0;font-size:14px;color:var(--tempest-text-muted);max-width:480px}.tempest_action_dqxw1{margin-top:var(--tempest-space-2)}.tempest_wrapper_luRyF{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--tempest-space-3);padding:var(--tempest-space-8) var(--tempest-space-4);text-align:center}.tempest_icon_dEdBl{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:var(--tempest-radius-full);background-color:var(--tempest-danger-bg);color:var(--tempest-danger)}.tempest_title_StutD{margin:0;font-size:16px;font-weight:600;color:var(--tempest-text)}.tempest_description_A2XCb{margin:0;font-size:14px;color:var(--tempest-text-muted);max-width:480px}.tempest_action_vm1LC{margin-top:var(--tempest-space-2)}.tempest_wrapper_E0qHs{display:flex;flex-direction:column;gap:var(--tempest-space-1);width:100%}.tempest_label_lbMkx{font-size:13px;font-weight:600;color:var(--tempest-text)}.tempest_dropzone_jqua0{border:2px dashed var(--tempest-border-strong);border-radius:var(--tempest-radius-lg);background-color:var(--tempest-surface);padding:var(--tempest-space-6) var(--tempest-space-5);text-align:center;cursor:pointer;transition:border-color .15s ease,background-color .15s ease}.tempest_dropzone_jqua0:hover{border-color:var(--tempest-primary)}.tempest_dropzone_jqua0.tempest_active_CG9Uk{border-color:var(--tempest-primary);background-color:#0066ff0f}.tempest_dropzone_jqua0.tempest_disabled_WNUUl{opacity:.6;cursor:not-allowed}.tempest_icon_i9fGH{color:var(--tempest-text-muted);margin-bottom:var(--tempest-space-2)}.tempest_title_bTVFl{font-weight:600;color:var(--tempest-text);font-size:14px;margin:0}.tempest_subtitle_S54OV{color:var(--tempest-text-muted);font-size:12px;margin:var(--tempest-space-1) 0 0}.tempest_files_WljYm{margin-top:var(--tempest-space-3);display:flex;flex-direction:column;gap:var(--tempest-space-2)}.tempest_file_Lp-dR{display:flex;align-items:center;justify-content:space-between;gap:var(--tempest-space-3);padding:var(--tempest-space-2) var(--tempest-space-3);background-color:var(--tempest-bg);border:1px solid var(--tempest-border);border-radius:var(--tempest-radius-md);font-size:13px}.tempest_fileMeta_LTnN2{color:var(--tempest-text-muted);font-size:11px}.tempest_remove_jskra{background:none;border:none;color:var(--tempest-text-muted);cursor:pointer;padding:4px;border-radius:var(--tempest-radius-sm)}.tempest_remove_jskra:hover{background-color:var(--tempest-surface);color:var(--tempest-danger)}.tempest_hidden_ReEq6{display:none}.tempest_form_jNBDR{display:flex;width:100%}.tempest_form_jNBDR.tempest_stack_O1Hl-{flex-direction:column}.tempest_form_jNBDR.tempest_inline_LBQAv{flex-direction:row;align-items:flex-end;flex-wrap:wrap}.tempest_form_jNBDR.tempest_grid_-B86T{display:grid;width:100%}.tempest_section_HGqw3{display:flex;flex-direction:column;width:100%}.tempest_sectionHeader_ji9hQ{display:flex;flex-direction:column;margin-bottom:var(--tempest-space-3)}.tempest_sectionTitle_GTPwe{font-size:var(--tempest-font-size-lg);font-weight:600;color:var(--tempest-text-primary);margin:0}.tempest_sectionDescription_KjW7k{font-size:var(--tempest-font-size-sm);color:var(--tempest-text-secondary);margin:var(--tempest-space-1) 0 0}.tempest_sectionBody_Vp2wz{display:flex;width:100%}.tempest_sectionBody_Vp2wz.tempest_stack_O1Hl-{flex-direction:column}.tempest_sectionBody_Vp2wz.tempest_inline_LBQAv{flex-direction:row;align-items:flex-end;flex-wrap:wrap}.tempest_sectionBody_Vp2wz.tempest_grid_-B86T{display:grid}.tempest_row_1EkVR{display:flex;flex-direction:row;align-items:flex-end;flex-wrap:wrap;width:100%}.tempest_row_1EkVR>*{flex:1 1 0;min-width:0}.tempest_actions_hK95I{display:flex;flex-direction:row;width:100%;margin-top:var(--tempest-space-2)}.tempest_actions_hK95I.tempest_start_gXnm3{justify-content:flex-start}.tempest_actions_hK95I.tempest_center_mKkz4{justify-content:center}.tempest_actions_hK95I.tempest_end_O3yDQ{justify-content:flex-end}.tempest_actions_hK95I.tempest_between_tte2z{justify-content:space-between}.tempest_container_fJfOt{margin-left:auto;margin-right:auto;padding-left:var(--tempest-space-4);padding-right:var(--tempest-space-4);width:100%}.tempest_container_fJfOt.tempest_sm_k8D4-{max-width:640px}.tempest_container_fJfOt.tempest_md_EnpYy{max-width:768px}.tempest_container_fJfOt.tempest_lg_UU-Ig{max-width:1024px}.tempest_container_fJfOt.tempest_xl_2TEWj{max-width:1280px}.tempest_container_fJfOt.tempest_full_l8bvG{max-width:100%}.tempest_stack_sxR8u{display:flex}.tempest_stack_sxR8u.tempest_vertical_2TMf5{flex-direction:column}.tempest_stack_sxR8u.tempest_horizontal_r7-c-{flex-direction:row}.tempest_stack_sxR8u.tempest_center_EDSAh{align-items:center}.tempest_stack_sxR8u.tempest_start_ucQ-K{align-items:flex-start}.tempest_stack_sxR8u.tempest_end_pnKlF{align-items:flex-end}.tempest_stack_sxR8u.tempest_stretch_pX6l7{align-items:stretch}.tempest_stack_sxR8u.tempest_justifyStart_lHYsS{justify-content:flex-start}.tempest_stack_sxR8u.tempest_justifyCenter_JH2m6{justify-content:center}.tempest_stack_sxR8u.tempest_justifyEnd_EBisT{justify-content:flex-end}.tempest_stack_sxR8u.tempest_justifyBetween_mAJwT{justify-content:space-between}.tempest_stack_sxR8u.tempest_wrap_-xxOh{flex-wrap:wrap}.tempest_grid_o-JIX{display:grid;width:100%}.tempest_wrapper_cRGQm{display:flex;align-items:center;justify-content:space-between;gap:var(--tempest-space-3);padding:var(--tempest-space-3) 0;font-size:13px;color:var(--tempest-text-muted);flex-wrap:wrap}.tempest_controls_fdL-y{display:flex;align-items:center;gap:var(--tempest-space-1)}.tempest_page_WjG0l{min-width:32px;height:32px;padding:0 var(--tempest-space-2);border:1px solid var(--tempest-border);background-color:var(--tempest-bg);color:var(--tempest-text);border-radius:var(--tempest-radius-md);font-size:13px;font-weight:500}.tempest_page_WjG0l:hover:not(:disabled){background-color:var(--tempest-surface)}.tempest_page_WjG0l:disabled{opacity:.5}.tempest_active_1kqsJ{background-color:var(--tempest-primary);border-color:var(--tempest-primary);color:var(--tempest-primary-foreground)}.tempest_active_1kqsJ:hover{background-color:var(--tempest-primary-hover)}.tempest_ellipsis_V294k{padding:0 var(--tempest-space-2);color:var(--tempest-text-subtle)}.tempest_sizeSelect_ZayTo{height:32px;padding:0 var(--tempest-space-2);border:1px solid var(--tempest-border);border-radius:var(--tempest-radius-md);background-color:var(--tempest-bg);color:var(--tempest-text);font-size:13px}.tempest_wrapper_BQek1{display:flex;flex-direction:column;gap:var(--tempest-space-1);width:100%}.tempest_bar_uC-0x{width:100%;height:8px;background-color:var(--tempest-surface-2);border-radius:var(--tempest-radius-full);overflow:hidden}.tempest_fill_vmg7x{height:100%;background-color:var(--tempest-primary);border-radius:inherit;transition:width .18s ease}.tempest_fill_vmg7x.tempest_success_gWJ8U{background-color:var(--tempest-success)}.tempest_fill_vmg7x.tempest_warning_DGkPO{background-color:var(--tempest-warning)}.tempest_fill_vmg7x.tempest_danger_gfwHh{background-color:var(--tempest-danger)}.tempest_indeterminate_HojUj .tempest_fill_vmg7x{width:30%!important;animation:tempest_tempest-progress-loop_0nEdF 1.4s ease-in-out infinite}.tempest_label_qqHJM{font-size:12px;color:var(--tempest-text-muted);display:flex;justify-content:space-between}@keyframes tempest_tempest-progress-loop_0nEdF{0%{transform:translate(-100%)}to{transform:translate(360%)}}.tempest_wrapper_P-gFm{display:inline-flex;align-items:flex-start;gap:var(--tempest-space-2);cursor:pointer;-webkit-user-select:none;user-select:none}.tempest_wrapper_P-gFm.tempest_disabled_0-cna{cursor:not-allowed;opacity:.6}.tempest_input_7R8ZN{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}.tempest_dot_P7ejP{flex-shrink:0;width:18px;height:18px;border:1.5px solid var(--tempest-border-strong);border-radius:50%;background-color:var(--tempest-bg);display:inline-flex;align-items:center;justify-content:center;transition:border-color .15s ease}.tempest_dot_P7ejP:after{content:"";width:10px;height:10px;border-radius:50%;background-color:var(--tempest-primary);transform:scale(0);transition:transform .15s ease}.tempest_input_7R8ZN:checked+.tempest_dot_P7ejP{border-color:var(--tempest-primary)}.tempest_input_7R8ZN:checked+.tempest_dot_P7ejP:after{transform:scale(1)}.tempest_input_7R8ZN:focus-visible+.tempest_dot_P7ejP{outline:2px solid var(--tempest-primary);outline-offset:2px}.tempest_labelWrap_iQ1HR{display:flex;flex-direction:column;gap:2px;line-height:1.3}.tempest_label_vAFIP{font-size:14px;color:var(--tempest-text)}.tempest_description_bEB8u{font-size:12px;color:var(--tempest-text-muted)}.tempest_group_oi329{display:flex;flex-direction:column;gap:var(--tempest-space-2)}.tempest_group_oi329.tempest_horizontal_1Ovgu{flex-direction:row;gap:var(--tempest-space-4);flex-wrap:wrap}.tempest_wrapper_dKXJJ{position:relative;width:100%;max-width:360px}.tempest_input_m0lPc{width:100%;height:40px;padding:0 36px;border:1px solid var(--tempest-border);border-radius:var(--tempest-radius-md);background-color:var(--tempest-bg);color:var(--tempest-text);font-size:14px;transition:border-color .15s ease,box-shadow .15s ease}.tempest_input_m0lPc:focus{outline:none;border-color:var(--tempest-primary);box-shadow:0 0 0 3px #0066ff2e}.tempest_iconLeft_030-U,.tempest_clear_nb6lG{position:absolute;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;color:var(--tempest-text-muted)}.tempest_iconLeft_030-U{left:12px;pointer-events:none}.tempest_clear_nb6lG{right:8px;width:24px;height:24px;border:none;background:transparent;border-radius:var(--tempest-radius-full)}.tempest_clear_nb6lG:hover{background-color:var(--tempest-surface);color:var(--tempest-text)}.tempest_wrapper_KS2K3{display:flex;flex-direction:column;gap:var(--tempest-space-1);width:100%}.tempest_label_Lmgos{font-size:13px;font-weight:600;color:var(--tempest-text)}.tempest_required_PvDVJ{color:var(--tempest-danger);margin-left:2px}.tempest_field_h-wBy{position:relative;display:flex;align-items:center}.tempest_select_cjdcr{width:100%;height:40px;padding:0 36px 0 var(--tempest-space-3);border:1px solid var(--tempest-border);border-radius:var(--tempest-radius-md);background-color:var(--tempest-bg);color:var(--tempest-text);font-size:14px;appearance:none;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease}.tempest_select_cjdcr:focus{outline:none;border-color:var(--tempest-primary);box-shadow:0 0 0 3px #0066ff2e}.tempest_select_cjdcr:disabled{background-color:var(--tempest-surface);cursor:not-allowed;color:var(--tempest-text-muted)}.tempest_caret_MdCao{position:absolute;right:12px;pointer-events:none;color:var(--tempest-text-muted)}.tempest_error_sw9MU .tempest_select_cjdcr{border-color:var(--tempest-danger)}.tempest_helper_frosK{font-size:12px;color:var(--tempest-text-muted)}.tempest_errorText_-zd6i{font-size:12px;color:var(--tempest-danger)}.tempest_skeleton_CB4uF{display:block;background:linear-gradient(90deg,var(--tempest-surface) 0%,var(--tempest-surface-2) 50%,var(--tempest-surface) 100%);background-size:200% 100%;border-radius:var(--tempest-radius-md);animation:tempest_tempest-skeleton_H5Y8e 1.4s ease-in-out infinite}.tempest_text_-A8IF{height:14px;border-radius:var(--tempest-radius-sm)}.tempest_circle_DYcl8{border-radius:50%}@keyframes tempest_tempest-skeleton_H5Y8e{0%{background-position:200% 0}to{background-position:-200% 0}}.tempest_spinner_GpFZS{display:inline-block;border:2px solid var(--tempest-surface-2);border-top-color:var(--tempest-primary);border-radius:50%;animation:tempest_tempest-spinner_wKVCY .7s linear infinite}.tempest_sm_3sIoD{width:14px;height:14px}.tempest_md_M2sPj{width:20px;height:20px}.tempest_lg_IxTw2{width:32px;height:32px}@keyframes tempest_tempest-spinner_wKVCY{to{transform:rotate(360deg)}}.tempest_stepper_w3qjQ{display:flex;align-items:flex-start;gap:var(--tempest-space-2);width:100%}.tempest_stepper_w3qjQ.tempest_vertical_d4mOs{flex-direction:column;align-items:stretch}.tempest_step_s2nqL{display:flex;align-items:center;gap:var(--tempest-space-2);flex:1}.tempest_dot_d1bSL{width:28px;height:28px;border-radius:50%;border:2px solid var(--tempest-border-strong);background-color:var(--tempest-bg);color:var(--tempest-text-muted);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex-shrink:0}.tempest_step_s2nqL.tempest_completed_gcFHM .tempest_dot_d1bSL{background-color:var(--tempest-primary);border-color:var(--tempest-primary);color:var(--tempest-primary-foreground)}.tempest_step_s2nqL.tempest_active_kL-CH .tempest_dot_d1bSL{border-color:var(--tempest-primary);color:var(--tempest-primary)}.tempest_label_8irAI{font-size:13px;color:var(--tempest-text-muted);font-weight:600}.tempest_step_s2nqL.tempest_active_kL-CH .tempest_label_8irAI,.tempest_step_s2nqL.tempest_completed_gcFHM .tempest_label_8irAI{color:var(--tempest-text)}.tempest_connector_lyeWp{flex:1;height:2px;background-color:var(--tempest-border);margin:0 var(--tempest-space-1)}.tempest_connector_lyeWp.tempest_completed_gcFHM{background-color:var(--tempest-primary)}.tempest_stepper_w3qjQ.tempest_vertical_d4mOs .tempest_connector_lyeWp{width:2px;height:24px;margin:0 0 0 13px}.tempest_wrapper_kudO9{display:inline-flex;align-items:center;gap:var(--tempest-space-2);cursor:pointer;-webkit-user-select:none;user-select:none}.tempest_wrapper_kudO9.tempest_disabled_2aZ0V{cursor:not-allowed;opacity:.6}.tempest_input_5BPNu{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}.tempest_track_7ObdZ{width:36px;height:20px;background-color:var(--tempest-border-strong);border-radius:var(--tempest-radius-full);position:relative;transition:background-color .18s ease;flex-shrink:0}.tempest_thumb_-FTeK{position:absolute;top:2px;left:2px;width:16px;height:16px;background-color:#fff;border-radius:50%;box-shadow:var(--tempest-shadow-sm);transition:transform .18s ease}.tempest_input_5BPNu:checked+.tempest_track_7ObdZ{background-color:var(--tempest-primary)}.tempest_input_5BPNu:checked+.tempest_track_7ObdZ .tempest_thumb_-FTeK{transform:translate(16px)}.tempest_input_5BPNu:focus-visible+.tempest_track_7ObdZ{outline:2px solid var(--tempest-primary);outline-offset:2px}.tempest_label_LrH7V{font-size:14px;color:var(--tempest-text)}.tempest_scroll_unrJp{width:100%;overflow-x:auto;border:1px solid var(--tempest-border);border-radius:var(--tempest-radius-lg);background-color:var(--tempest-bg)}.tempest_table_Dkosn{width:100%;border-collapse:collapse;font-size:14px}.tempest_th_PNuEx,.tempest_td_jv9tA{padding:var(--tempest-space-3) var(--tempest-space-4);text-align:left;border-bottom:1px solid var(--tempest-border)}.tempest_th_PNuEx{background-color:var(--tempest-surface);color:var(--tempest-text-muted);font-weight:600;font-size:12px;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}.tempest_tr_7UG8J:last-child .tempest_td_jv9tA{border-bottom:none}.tempest_tr_7UG8J.tempest_clickable_B6Si-{cursor:pointer}.tempest_tr_7UG8J.tempest_clickable_B6Si-:hover{background-color:var(--tempest-surface)}.tempest_alignRight_9hY0G{text-align:right}.tempest_alignCenter_YiUQy{text-align:center}.tempest_emptyRow_kdMiv{padding:var(--tempest-space-6);text-align:center;color:var(--tempest-text-muted)}.tempest_tablist_WR6ag{display:flex;gap:var(--tempest-space-1);border-bottom:1px solid var(--tempest-border);overflow-x:auto}.tempest_tab_IdDYc{background:transparent;border:none;padding:var(--tempest-space-3) var(--tempest-space-4);font-size:14px;font-weight:600;color:var(--tempest-text-muted);cursor:pointer;position:relative;white-space:nowrap;transition:color .15s ease}.tempest_tab_IdDYc:hover:not(:disabled){color:var(--tempest-text)}.tempest_tab_IdDYc.tempest_active_PTNtG{color:var(--tempest-primary)}.tempest_tab_IdDYc.tempest_active_PTNtG:after{content:"";position:absolute;left:var(--tempest-space-3);right:var(--tempest-space-3);bottom:-1px;height:2px;background-color:var(--tempest-primary);border-radius:var(--tempest-radius-sm) var(--tempest-radius-sm) 0 0}.tempest_tab_IdDYc:disabled{opacity:.5;cursor:not-allowed}.tempest_panel_08i9c{padding:var(--tempest-space-4) 0}.tempest_pill_lGuqn .tempest_tab_IdDYc{border-radius:var(--tempest-radius-full);padding:6px var(--tempest-space-3);font-size:13px}.tempest_pill_lGuqn .tempest_tab_IdDYc.tempest_active_PTNtG:after{display:none}.tempest_pill_lGuqn .tempest_tab_IdDYc.tempest_active_PTNtG{background-color:var(--tempest-primary);color:var(--tempest-primary-foreground)}.tempest_pill_lGuqn.tempest_tablist_WR6ag{border-bottom:none}.tempest_wrapper_C0gfg{display:flex;flex-direction:column;gap:var(--tempest-space-1);width:100%}.tempest_label_cWLXP{font-size:13px;font-weight:600;color:var(--tempest-text)}.tempest_required_rDZXE{color:var(--tempest-danger);margin-left:2px}.tempest_textarea_Z-y6g{width:100%;min-height:96px;padding:var(--tempest-space-3);border:1px solid var(--tempest-border);border-radius:var(--tempest-radius-md);background-color:var(--tempest-bg);color:var(--tempest-text);font-size:14px;font-family:inherit;resize:vertical;transition:border-color .15s ease,box-shadow .15s ease}.tempest_textarea_Z-y6g::placeholder{color:var(--tempest-text-subtle)}.tempest_textarea_Z-y6g:focus{outline:none;border-color:var(--tempest-primary);box-shadow:0 0 0 3px #0066ff2e}.tempest_textarea_Z-y6g:disabled{background-color:var(--tempest-surface);cursor:not-allowed;color:var(--tempest-text-muted)}.tempest_error_NWC9f .tempest_textarea_Z-y6g{border-color:var(--tempest-danger)}.tempest_helper_gedut{font-size:12px;color:var(--tempest-text-muted)}.tempest_errorText_ey07q{font-size:12px;color:var(--tempest-danger)}.tempest_trigger_Dmc5E{display:inline-flex;position:relative}.tempest_bubble_TPGHB{position:absolute;z-index:var(--tempest-z-dropdown);background-color:#11151c;color:#fff;padding:4px 8px;border-radius:var(--tempest-radius-sm);font-size:12px;white-space:nowrap;pointer-events:none;box-shadow:var(--tempest-shadow-md);animation:tempest_tempest-tooltip-in_csYeZ .12s ease-out}.tempest_top_m2tnn{bottom:calc(100% + 8px);left:50%;transform:translate(-50%)}.tempest_bottom_9Twz4{top:calc(100% + 8px);left:50%;transform:translate(-50%)}.tempest_left_UPdrG{right:calc(100% + 8px);top:50%;transform:translateY(-50%)}.tempest_right_CV--T{left:calc(100% + 8px);top:50%;transform:translateY(-50%)}@keyframes tempest_tempest-tooltip-in_csYeZ{0%{opacity:0;transform:scale(.95) translate(var(--tempest-tx, 0),var(--tempest-ty, 0))}to{opacity:1}}.tempest_container_x4-Qm{position:fixed;top:var(--tempest-space-4);right:var(--tempest-space-4);display:flex;flex-direction:column;gap:var(--tempest-space-2);z-index:var(--tempest-z-toast);pointer-events:none}.tempest_toast_FLdHz{pointer-events:auto;display:flex;align-items:flex-start;gap:var(--tempest-space-3);padding:var(--tempest-space-3) var(--tempest-space-4);border-radius:var(--tempest-radius-md);background-color:var(--tempest-bg);border:1px solid var(--tempest-border);box-shadow:var(--tempest-shadow-md);min-width:280px;max-width:420px;animation:tempest_tempest-toast-in_E2d-A .18s ease-out}.tempest_success_Oy694{border-left:4px solid var(--tempest-success)}.tempest_warning_84GC8{border-left:4px solid var(--tempest-warning)}.tempest_error_hrQAA{border-left:4px solid var(--tempest-danger)}.tempest_info_eq5bQ{border-left:4px solid var(--tempest-info)}.tempest_title_-H6R2{font-weight:600;font-size:14px;color:var(--tempest-text);margin:0}.tempest_description_-QwfC{font-size:13px;color:var(--tempest-text-muted);margin:2px 0 0}.tempest_close_i10-s{margin-left:auto;background:none;border:none;color:var(--tempest-text-muted);padding:4px;border-radius:var(--tempest-radius-sm);display:flex;align-items:center}.tempest_close_i10-s:hover{background-color:var(--tempest-surface);color:var(--tempest-text)}@keyframes tempest_tempest-toast-in_E2d-A{0%{transform:translate(20px);opacity:0}to{transform:translate(0);opacity:1}}.tempest_scroll_8Giwl{position:relative;overflow:auto;width:100%}.tempest_spacer_P3Pvl{position:relative;width:100%}.tempest_row_Ff0VU{position:absolute;left:0;right:0}