@codemonster-ru/vueforge-core 1.3.2 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -8,7 +8,7 @@ Stable foundation layer for the VueForge design system.
8
8
 
9
9
  ## Current scope
10
10
 
11
- Version `1.3.0` focuses on:
11
+ Version `1.3.x` focuses on:
12
12
 
13
13
  - Vue 3 library build with Vite
14
14
  - TypeScript declarations
@@ -21,22 +21,75 @@ Version `1.3.0` focuses on:
21
21
 
22
22
  ```ts
23
23
  import { createApp } from "vue";
24
- import VueForge from "@codemonster-ru/vueforge-core";
24
+ import VueForgeCore from "@codemonster-ru/vueforge-core";
25
25
 
26
26
  const app = createApp(App);
27
27
 
28
- app.use(VueForge);
28
+ app.use(VueForgeCore);
29
+ ```
30
+
31
+ ## Recommended Theme Setup
32
+
33
+ VueForge theme setup has two layers that work together:
34
+
35
+ - token preset configuration through `app.use(VueForgeCore, { theme })`
36
+ - theme mode selection through `VfThemeProvider` and `useTheme()`
37
+
38
+ ```ts
39
+ import { createApp } from "vue";
40
+ import App from "./App.vue";
41
+ import VueForgeCore, {
42
+ defaultThemePreset,
43
+ } from "@codemonster-ru/vueforge-core";
44
+
45
+ const app = createApp(App);
46
+
47
+ app.use(VueForgeCore, {
48
+ theme: {
49
+ preset: defaultThemePreset,
50
+ extend: {
51
+ colorPrimary: "#ff5a36",
52
+ },
53
+ },
54
+ defaultTheme: "system",
55
+ themeStorageKey: "vf-theme",
56
+ });
57
+ ```
58
+
59
+ ```vue
60
+ <script setup lang="ts">
61
+ import { VfThemeProvider } from "@codemonster-ru/vueforge-core";
62
+ </script>
63
+
64
+ <template>
65
+ <VfThemeProvider>
66
+ <App />
67
+ </VfThemeProvider>
68
+ </template>
69
+ ```
70
+
71
+ ```ts
72
+ import { useTheme } from "@codemonster-ru/vueforge-core";
73
+
74
+ const { theme, resolvedTheme, setTheme, toggleTheme } = useTheme();
75
+
76
+ setTheme("dark");
77
+ setTheme("light");
78
+ setTheme("system");
79
+ toggleTheme();
29
80
  ```
30
81
 
31
82
  ## Theme Overrides
32
83
 
33
84
  ```ts
34
85
  import { createApp } from "vue";
35
- import VueForge, { defaultThemePreset } from "@codemonster-ru/vueforge-core";
86
+ import VueForgeCore, {
87
+ defaultThemePreset,
88
+ } from "@codemonster-ru/vueforge-core";
36
89
 
37
90
  const app = createApp(App);
38
91
 
39
- app.use(VueForge, {
92
+ app.use(VueForgeCore, {
40
93
  theme: {
41
94
  preset: defaultThemePreset,
42
95
  extend: {
@@ -46,6 +99,9 @@ app.use(VueForge, {
46
99
  });
47
100
  ```
48
101
 
102
+ `VfThemeProvider` reads theme-mode defaults from the plugin config when its own
103
+ props are not set. Provider props still win when you need local overrides.
104
+
49
105
  For the full theme runtime and preset API, see [Theme API](./docs/theme-api.md).
50
106
 
51
107
  ## Theme Architecture
@@ -69,7 +125,7 @@ This means `vueforge-core` is still the easiest way to consume the default VueFo
69
125
  Use the full package when you need VueForge components, styles, and theme runtime together.
70
126
 
71
127
  ```ts
72
- import VueForge from "@codemonster-ru/vueforge-core";
128
+ import VueForgeCore from "@codemonster-ru/vueforge-core";
73
129
  ```
74
130
 
75
131
  Use foundation-only entry points when another package, such as `vueforge-layouts`, needs shared responsive or platform helpers without depending on the full UI surface.
@@ -96,7 +152,7 @@ Available subpaths:
96
152
  ### Stability
97
153
 
98
154
  - Stable UI API: components exported from the root package
99
- - Stable theme API: `VueForge`, `createVueForge`, `defaultThemePreset`, `createThemePreset`
155
+ - Stable theme API: `VueForgeCore`, `createVueForgeCore`, `VfThemeProvider`, `useTheme`, `defaultThemePreset`, `createThemePreset`
100
156
  - Stable foundation API: breakpoint constants and foundation composables from `./foundation`
101
157
 
102
158
  For the full foundation contract, see [Foundation API](./docs/foundation-api.md).
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export { default, VueForge, createVueForge } from './plugin';
1
+ export { default, VueForgeCore, createVueForgeCore } from './plugin';
2
2
  export { default as VfThemeProvider } from './providers/VfThemeProvider.vue';
3
3
  export { VfAccordion, VfAlert, VfBadge, VfButton, VfCard, VfCheckbox, VfDrawer, VfDialog, VfDivider, VfDropdown, VfIconButton, VfInput, VfLink, VfNavMenu, VfPanel, VfPopover, VfRadio, VfSwitch, VfTag, VfTabs, VfTextarea, VfTooltip, } from './components';
4
4
  export { useClickOutside, useDisclosure, useEscapeKey, useFloating, useFocusTrap, useId, useTheme, } from './composables';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,gCAAgC,CAAC;AACxC,OAAO,+BAA+B,CAAC;AACvC,OAAO,yBAAyB,CAAC;AAEjC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EACL,WAAW,EACX,OAAO,EACP,OAAO,EACP,QAAQ,EACR,MAAM,EACN,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,UAAU,EACV,YAAY,EACZ,OAAO,EACP,MAAM,EACN,SAAS,EACT,OAAO,EACP,SAAS,EACT,OAAO,EACP,QAAQ,EACR,KAAK,EACL,MAAM,EACN,UAAU,EACV,SAAS,GACV,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,eAAe,EACf,aAAa,EACb,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,KAAK,EACL,QAAQ,GACT,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,aAAa,EACb,eAAe,EACf,eAAe,EACf,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,aAAa,GACd,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACvE,YAAY,EACV,WAAW,EACX,eAAe,EACf,aAAa,EACb,YAAY,EACZ,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,EACnB,cAAc,EACd,aAAa,EACb,SAAS,EACT,kBAAkB,EAClB,UAAU,GACX,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,eAAe,EACf,aAAa,EACb,cAAc,EACd,WAAW,EACX,aAAa,EACb,oBAAoB,EACpB,oBAAoB,EACpB,aAAa,EACb,iBAAiB,GAClB,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,oBAAoB,EACpB,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,gCAAgC,CAAC;AACxC,OAAO,+BAA+B,CAAC;AACvC,OAAO,yBAAyB,CAAC;AAEjC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EACL,WAAW,EACX,OAAO,EACP,OAAO,EACP,QAAQ,EACR,MAAM,EACN,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,UAAU,EACV,YAAY,EACZ,OAAO,EACP,MAAM,EACN,SAAS,EACT,OAAO,EACP,SAAS,EACT,OAAO,EACP,QAAQ,EACR,KAAK,EACL,MAAM,EACN,UAAU,EACV,SAAS,GACV,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,eAAe,EACf,aAAa,EACb,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,KAAK,EACL,QAAQ,GACT,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,aAAa,EACb,eAAe,EACf,eAAe,EACf,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,aAAa,GACd,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACvE,YAAY,EACV,WAAW,EACX,eAAe,EACf,aAAa,EACb,YAAY,EACZ,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,EACnB,cAAc,EACd,aAAa,EACb,SAAS,EACT,kBAAkB,EAClB,UAAU,GACX,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,eAAe,EACf,aAAa,EACb,cAAc,EACd,WAAW,EACX,aAAa,EACb,oBAAoB,EACpB,oBAAoB,EACpB,aAAa,EACb,iBAAiB,GAClB,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,oBAAoB,EACpB,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,cAAc,CAAC"}
package/dist/plugin.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export declare function createVueForge(): import('vue').ObjectPlugin<any[]>;
2
- export declare const VueForge: import('vue').ObjectPlugin<any[]>;
3
- export default VueForge;
1
+ export declare function createVueForgeCore(): import('vue').ObjectPlugin<any[]>;
2
+ export declare const VueForgeCore: import('vue').ObjectPlugin<any[]>;
3
+ export default VueForgeCore;
4
4
  //# sourceMappingURL=plugin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAKA,wBAAgB,cAAc,sCAc7B;AAED,eAAO,MAAM,QAAQ,mCAAmB,CAAC;AAEzC,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAKA,wBAAgB,kBAAkB,sCAqBjC;AAED,eAAO,MAAM,YAAY,mCAAuB,CAAC;AAEjD,eAAe,YAAY,CAAC"}
@@ -1,4 +1,4 @@
1
- import { VfThemeMode, VfThemeProviderProps } from '../types/theme';
1
+ import { VfThemeProviderProps } from '../types/theme';
2
2
  declare function __VLS_template(): {
3
3
  attrs: Partial<{}>;
4
4
  slots: {
@@ -8,9 +8,7 @@ declare function __VLS_template(): {
8
8
  rootEl: any;
9
9
  };
10
10
  type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
11
- declare const __VLS_component: import('vue').DefineComponent<VfThemeProviderProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<VfThemeProviderProps> & Readonly<{}>, {
12
- defaultTheme: VfThemeMode;
13
- }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
11
+ declare const __VLS_component: import('vue').DefineComponent<VfThemeProviderProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<VfThemeProviderProps> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
14
12
  declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
15
13
  export default _default;
16
14
  type __VLS_WithTemplateSlots<T, S> = T & {
@@ -1 +1 @@
1
- {"version":3,"file":"VfThemeProvider.vue.d.ts","sourceRoot":"","sources":["../../src/providers/VfThemeProvider.vue"],"names":[],"mappings":"AAkKA,OAAO,KAAK,EAEV,WAAW,EACX,oBAAoB,EACrB,MAAM,eAAe,CAAC;AAuIvB,iBAAS,cAAc;WAoBT,OAAO,IAA6B;;yBAVrB,GAAG;;;;EAe/B;AASD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe;;6EAOnB,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAAnG,wBAAoG;AAapG,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
1
+ {"version":3,"file":"VfThemeProvider.vue.d.ts","sourceRoot":"","sources":["../../src/providers/VfThemeProvider.vue"],"names":[],"mappings":"AA4KA,OAAO,KAAK,EAGV,oBAAoB,EACrB,MAAM,eAAe,CAAC;AA8IvB,iBAAS,cAAc;WAoBT,OAAO,IAA6B;;yBAVrB,GAAG;;;;EAe/B;AAQD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe,oTAMnB,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAAnG,wBAAoG;AAQpG,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
@@ -1,7 +1,13 @@
1
1
  import { InjectionKey } from 'vue';
2
- import { VfResolvedThemeConfig } from '../types/theme';
2
+ import { VfResolvedThemeConfig, VfThemeMode } from '../types/theme';
3
+ export interface VfVueForgeThemeModeDefaults {
4
+ defaultTheme?: VfThemeMode;
5
+ storageKey?: string;
6
+ attribute?: string;
7
+ }
3
8
  export interface VfVueForgeRuntimeConfig {
4
9
  theme: VfResolvedThemeConfig;
10
+ themeMode: VfVueForgeThemeModeDefaults;
5
11
  }
6
12
  export declare const vueForgeConfigKey: InjectionKey<VfVueForgeRuntimeConfig>;
7
13
  //# sourceMappingURL=vueForgeConfig.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"vueForgeConfig.d.ts","sourceRoot":"","sources":["../../src/providers/vueForgeConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,KAAK,CAAC;AACxC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAE3D,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,qBAAqB,CAAC;CAC9B;AAED,eAAO,MAAM,iBAAiB,EAAE,YAAY,CAAC,uBAAuB,CAC1C,CAAC"}
1
+ {"version":3,"file":"vueForgeConfig.d.ts","sourceRoot":"","sources":["../../src/providers/vueForgeConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,KAAK,CAAC;AACxC,OAAO,KAAK,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAExE,MAAM,WAAW,2BAA2B;IAC1C,YAAY,CAAC,EAAE,WAAW,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,qBAAqB,CAAC;IAC7B,SAAS,EAAE,2BAA2B,CAAC;CACxC;AAED,eAAO,MAAM,iBAAiB,EAAE,YAAY,CAAC,uBAAuB,CAC1C,CAAC"}
package/dist/styles.css CHANGED
@@ -1 +1 @@
1
- :root{--vf-breakpoint-xs: 480px;--vf-breakpoint-sm: 640px;--vf-breakpoint-md: 768px;--vf-breakpoint-lg: 1024px;--vf-breakpoint-xl: 1280px;--vf-breakpoint-2xl: 1536px}:root{--vf-color-bg: #fcfcfd;--vf-color-surface: #ffffff;--vf-color-surface-muted: #f5f7fb;--vf-color-text: #172033;--vf-color-muted: #69738a;--vf-color-border: #d8e0ef;--vf-color-primary: #0b63f6;--vf-color-primary-contrast: #ffffff;--vf-color-primary-soft: color-mix(in srgb, var(--vf-color-primary) 12%, var(--vf-color-surface));--vf-color-primary-border-soft: color-mix(in srgb, var(--vf-color-primary) 22%, var(--vf-color-border));--vf-color-focus-ring: color-mix(in srgb, var(--vf-color-primary) 32%, var(--vf-color-surface));--vf-color-success: #16a34a;--vf-color-success-contrast: #ffffff;--vf-color-info: #0ea5e9;--vf-color-info-contrast: #ffffff;--vf-color-warn: #f59e0b;--vf-color-warn-contrast: #1f1300;--vf-color-help: #8b5cf6;--vf-color-help-contrast: #ffffff;--vf-color-danger: #dc2626;--vf-color-danger-contrast: #ffffff;--vf-color-contrast: #111827;--vf-color-contrast-contrast: #ffffff;--vf-color-success-soft: color-mix(in srgb, var(--vf-color-success) 12%, var(--vf-color-surface));--vf-color-info-soft: color-mix(in srgb, var(--vf-color-info) 12%, var(--vf-color-surface));--vf-color-warn-soft: color-mix(in srgb, var(--vf-color-warn) 12%, var(--vf-color-surface));--vf-color-help-soft: color-mix(in srgb, var(--vf-color-help) 12%, var(--vf-color-surface));--vf-color-danger-soft: color-mix(in srgb, var(--vf-color-danger) 12%, var(--vf-color-surface));--vf-color-contrast-soft: color-mix(in srgb, var(--vf-color-contrast) 10%, var(--vf-color-surface));--vf-color-success-border-soft: color-mix(in srgb, var(--vf-color-success) 24%, var(--vf-color-border));--vf-color-info-border-soft: color-mix(in srgb, var(--vf-color-info) 24%, var(--vf-color-border));--vf-color-warn-border-soft: color-mix(in srgb, var(--vf-color-warn) 24%, var(--vf-color-border));--vf-color-help-border-soft: color-mix(in srgb, var(--vf-color-help) 24%, var(--vf-color-border));--vf-color-danger-border-soft: color-mix(in srgb, var(--vf-color-danger) 24%, var(--vf-color-border));--vf-color-contrast-border-soft: color-mix(in srgb, var(--vf-color-contrast) 24%, var(--vf-color-border));--vf-focus-ring-width: 3px;--vf-radius: .75rem;--vf-radius-control: calc(var(--vf-radius) - .125rem);--vf-radius-control-tight: calc(var(--vf-radius) - .25rem);--vf-radius-surface: var(--vf-radius);--vf-radius-overlay: calc(var(--vf-radius) + .125rem);--vf-control-height-sm: 1.75rem;--vf-control-height-md: 2.25rem;--vf-control-height-lg: 2.5rem;--vf-control-font-size-sm: .875rem;--vf-control-font-size-md: .9375rem;--vf-control-font-size-lg: 1rem;--vf-button-padding-sm: .25rem .55rem;--vf-button-padding-md: .375rem .75rem;--vf-button-padding-lg: .5rem .875rem;--vf-button-gap: .5rem;--vf-field-padding-sm: .25rem .55rem;--vf-field-padding-md: .375rem .65rem;--vf-field-padding-lg: .5rem .75rem;--vf-checkbox-size-sm: 1rem;--vf-checkbox-size-md: 1.125rem;--vf-checkbox-size-lg: 1.25rem;--vf-selection-gap: .65rem;--vf-checkbox-mark-width: .3rem;--vf-checkbox-mark-height: .55rem;--vf-checkbox-mark-stroke-width: 2px;--vf-checkbox-mark-offset-y: -.05rem;--vf-radio-dot-size: .5rem;--vf-switch-width-sm: 2rem;--vf-switch-width-md: 2.25rem;--vf-switch-width-lg: 2.5rem;--vf-switch-height-sm: 1.125rem;--vf-switch-height-md: 1.25rem;--vf-switch-height-lg: 1.375rem;--vf-switch-thumb-size-sm: .75rem;--vf-switch-thumb-size-md: .875rem;--vf-switch-thumb-size-lg: 1rem;--vf-switch-thumb-inset: .1875rem;--vf-textarea-min-height-sm: 4.5rem;--vf-textarea-min-height-md: 6rem;--vf-textarea-min-height-lg: 7rem;--vf-overlay-padding: .875rem;--vf-overlay-gap: .75rem;--vf-overlay-viewport-padding: 1rem;--vf-menu-padding: .4rem;--vf-menu-gap: .2rem;--vf-menu-min-width: 12rem;--vf-surface-padding: .95rem;--vf-surface-gap: .625rem;--vf-surface-padding-compact: .7rem;--vf-surface-gap-compact: .5rem;--vf-section-padding: .75rem .9rem;--vf-section-gap: .75rem;--vf-tabs-gap: .875rem;--vf-tabs-list-gap: .375rem;--vf-tabs-list-padding: .25rem;--vf-tabs-tab-padding-inline: .8rem;--vf-tabs-panel-padding-top: .75rem;--vf-nav-menu-list-gap: .2rem;--vf-nav-menu-nested-gap: .15rem;--vf-nav-menu-collapse-offset-top: .1rem;--vf-nav-menu-collapse-inset-level-0-margin: 1.275rem;--vf-nav-menu-collapse-inset-level-0-padding: .7rem;--vf-nav-menu-collapse-inset-simple-level-0-margin: .75rem;--vf-nav-menu-collapse-inset-simple-level-0-padding: .45rem;--vf-nav-menu-collapse-inset-deep-margin: .35rem;--vf-nav-menu-collapse-inset-deep-padding: .35rem;--vf-nav-menu-collapse-inset-simple-deep-margin: .2rem;--vf-nav-menu-collapse-inset-simple-deep-padding: .2rem;--vf-nav-menu-node-group-spacing: .1rem;--vf-nav-menu-group-padding: .35rem .65rem;--vf-nav-menu-group-font-size: .875rem;--vf-nav-menu-item-padding: .35rem .65rem;--vf-nav-menu-item-gap: .55rem;--vf-nav-menu-leading-icon-size: 1rem;--vf-nav-menu-leading-icon-column-size: 1.25rem;--vf-badge-height: 1.625rem;--vf-badge-padding: .2rem .55rem;--vf-badge-gap: .375rem;--vf-badge-radius: 999px;--vf-badge-font-size: .8125rem;--vf-badge-line-height: 1.2;--vf-tag-height: 1.75rem;--vf-tag-padding: .25rem .6rem;--vf-tag-font-size: .8125rem;--vf-tag-line-height: 1.2;--vf-tooltip-padding: .45rem .65rem;--vf-tooltip-max-width: 16rem;--vf-tooltip-font-size: .8125rem;--vf-tooltip-line-height: 1.4;--vf-dialog-width-sm: 28rem;--vf-dialog-width-md: 36rem;--vf-dialog-width-lg: 48rem;--vf-dialog-max-height: min(85vh, 48rem);--vf-drawer-size-sm: 20rem;--vf-drawer-size-md: 26rem;--vf-drawer-size-lg: 32rem;--vf-drawer-offset-top: 0px;--vf-drawer-body-padding: var(--vf-overlay-padding);--vf-dialog-title-font-size: 1.125rem;--vf-dialog-header-gap: .75rem;--vf-dialog-actions-gap: .5rem;--vf-popover-width: min(100vw - 2rem, 22rem);--vf-floating-arrow-size: .625rem;--vf-overlay-backdrop: rgba(15, 23, 42, .56);--vf-alert-primary-soft: color-mix(in srgb, var(--vf-color-primary) 8%, var(--vf-color-surface));--vf-alert-primary-border-soft: color-mix(in srgb, var(--vf-color-primary) 22%, var(--vf-color-border));--vf-alert-content-gap: .25rem;--vf-alert-title-font-size: .9375rem;--vf-card-title-font-size: 1rem;--vf-panel-title-font-size: .9375rem;--vf-text-line-height: 1.5;--vf-heading-line-height: 1.3;--vf-tabs-line-height: 1.2;--vf-motion-duration-fast: .22s;--vf-motion-duration-normal: .32s;--vf-motion-ease-standard: cubic-bezier(.16, 1, .3, 1);--vf-z-overlay: 1000;--vf-z-drawer: 1000;--vf-z-dropdown: 900;--vf-z-popover: 925;--vf-z-tooltip: 950;--vf-spacing: 1rem;--vf-shadow: none}:root{color-scheme:light;background-color:var(--vf-color-bg);color:var(--vf-color-text)}:root[data-vf-theme=dark]{color-scheme:dark;--vf-color-bg: #0f172a;--vf-color-surface: #162033;--vf-color-surface-muted: #1b2840;--vf-color-text: #eff4ff;--vf-color-muted: #9fb0cf;--vf-color-border: #2d405f;--vf-color-primary: #6ea8fe;--vf-color-primary-contrast: #081120;--vf-color-primary-soft: color-mix(in srgb, var(--vf-color-primary) 12%, var(--vf-color-surface));--vf-color-primary-border-soft: color-mix(in srgb, var(--vf-color-primary) 22%, var(--vf-color-border));--vf-color-focus-ring: color-mix(in srgb, var(--vf-color-primary) 32%, var(--vf-color-surface));--vf-color-success: #4ade80;--vf-color-success-contrast: #081120;--vf-color-info: #38bdf8;--vf-color-info-contrast: #081120;--vf-color-warn: #fbbf24;--vf-color-warn-contrast: #1f1300;--vf-color-help: #a78bfa;--vf-color-help-contrast: #081120;--vf-color-danger: #f87171;--vf-color-danger-contrast: #081120;--vf-color-contrast: #f3f4f6;--vf-color-contrast-contrast: #111827;--vf-color-success-soft: color-mix(in srgb, var(--vf-color-success) 12%, var(--vf-color-surface));--vf-color-info-soft: color-mix(in srgb, var(--vf-color-info) 12%, var(--vf-color-surface));--vf-color-warn-soft: color-mix(in srgb, var(--vf-color-warn) 12%, var(--vf-color-surface));--vf-color-help-soft: color-mix(in srgb, var(--vf-color-help) 12%, var(--vf-color-surface));--vf-color-danger-soft: color-mix(in srgb, var(--vf-color-danger) 12%, var(--vf-color-surface));--vf-color-contrast-soft: color-mix(in srgb, var(--vf-color-contrast) 10%, var(--vf-color-surface));--vf-color-success-border-soft: color-mix(in srgb, var(--vf-color-success) 24%, var(--vf-color-border));--vf-color-info-border-soft: color-mix(in srgb, var(--vf-color-info) 24%, var(--vf-color-border));--vf-color-warn-border-soft: color-mix(in srgb, var(--vf-color-warn) 24%, var(--vf-color-border));--vf-color-help-border-soft: color-mix(in srgb, var(--vf-color-help) 24%, var(--vf-color-border));--vf-color-danger-border-soft: color-mix(in srgb, var(--vf-color-danger) 24%, var(--vf-color-border));--vf-color-contrast-border-soft: color-mix(in srgb, var(--vf-color-contrast) 24%, var(--vf-color-border));--vf-focus-ring-width: 3px;--vf-z-overlay: 1000;--vf-z-drawer: 1000;--vf-z-dropdown: 900;--vf-z-popover: 925;--vf-z-tooltip: 950;--vf-shadow: none}:root.vf-theme-transitioning,:root.vf-theme-transitioning body,:root.vf-theme-transitioning #app,:root.vf-theme-transitioning [class^=vf-],:root.vf-theme-transitioning [class*=" vf-"],:root.vf-theme-transitioning .demo-page,:root.vf-theme-transitioning .demo-container,:root.vf-theme-transitioning .demo-header,:root.vf-theme-transitioning .demo-block,:root.vf-theme-transitioning .demo-example,:root.vf-theme-transitioning .demo-item{transition:background-color var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),border-color var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),color var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),box-shadow var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),fill var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),stroke var(--vf-motion-duration-normal) var(--vf-motion-ease-standard)}.vf-button,.vf-link,.vf-input,.vf-card,.vf-textarea,.vf-panel,.vf-badge,.vf-divider,.vf-dialog,.vf-dialog__overlay,.vf-dialog__content,.vf-drawer,.vf-drawer__overlay,.vf-drawer__content,.vf-dropdown,.vf-dropdown__trigger,.vf-dropdown__menu,.vf-accordion,.vf-accordion__trigger,.vf-nav-menu,.vf-nav-menu__item,.vf-tooltip,.vf-tooltip__trigger,.vf-tooltip__content,.vf-tabs,.vf-tabs__list,.vf-tabs__tab,.vf-tabs__panel{box-sizing:border-box;font:inherit}.vf-button{display:inline-flex;align-items:center;justify-content:center;gap:var(--vf-button-gap);min-height:var(--vf-control-height-md);padding:var(--vf-button-padding-md);border:1px solid transparent;border-radius:var(--vf-radius-control);background:var(--vf-color-primary);color:var(--vf-color-primary-contrast);cursor:pointer;text-decoration:none;transition:background-color .18s ease,border-color .18s ease,color .18s ease}.vf-icon-button{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--vf-control-height-md);height:var(--vf-control-height-md);padding:0;border:1px solid transparent;border-radius:var(--vf-radius-control);background:transparent;color:var(--vf-color-text);cursor:pointer;transition:background-color .18s ease,border-color .18s ease,color .18s ease}.vf-button:focus-visible,.vf-icon-button:focus-visible{outline:none;border-color:var(--vf-color-primary);border-radius:var(--vf-radius-control);box-shadow:0 0 0 var(--vf-focus-ring-width) var(--vf-color-focus-ring)}.vf-button:disabled,.vf-icon-button:disabled{opacity:.65;cursor:not-allowed}.vf-button--secondary{background:var(--vf-color-surface-muted);border-color:var(--vf-color-border);color:var(--vf-color-text)}.vf-button--primary,.vf-icon-button--primary{background:var(--vf-color-primary);color:var(--vf-color-primary-contrast)}.vf-button--success,.vf-icon-button--success{background:var(--vf-color-success);color:var(--vf-color-success-contrast)}.vf-button--info,.vf-icon-button--info{background:var(--vf-color-info);color:var(--vf-color-info-contrast)}.vf-button--warn,.vf-icon-button--warn{background:var(--vf-color-warn);color:var(--vf-color-warn-contrast)}.vf-button--help,.vf-icon-button--help{background:var(--vf-color-help);color:var(--vf-color-help-contrast)}.vf-button--danger,.vf-icon-button--danger{background:var(--vf-color-danger);color:var(--vf-color-danger-contrast)}.vf-button--contrast,.vf-icon-button--contrast{background:var(--vf-color-contrast);color:var(--vf-color-contrast-contrast)}.vf-icon-button--secondary{background:var(--vf-color-surface-muted);border-color:var(--vf-color-border);color:var(--vf-color-text)}.vf-button--ghost,.vf-icon-button--ghost{background:transparent;color:var(--vf-color-text)}.vf-button--secondary:hover:not(:disabled),.vf-icon-button--secondary:hover:not(:disabled){background:var(--vf-color-surface-muted);border-color:var(--vf-color-border);filter:brightness(.98)}.vf-button--ghost:hover:not(:disabled),.vf-icon-button--ghost:hover:not(:disabled){background:var(--vf-color-surface-muted);border-color:transparent}.vf-button--primary:hover:not(:disabled),.vf-button--success:hover:not(:disabled),.vf-button--info:hover:not(:disabled),.vf-button--warn:hover:not(:disabled),.vf-button--help:hover:not(:disabled),.vf-button--danger:hover:not(:disabled),.vf-button--contrast:hover:not(:disabled),.vf-icon-button--primary:hover:not(:disabled){filter:brightness(.96)}.vf-icon-button--success:hover:not(:disabled),.vf-icon-button--info:hover:not(:disabled),.vf-icon-button--warn:hover:not(:disabled),.vf-icon-button--help:hover:not(:disabled),.vf-icon-button--danger:hover:not(:disabled),.vf-icon-button--contrast:hover:not(:disabled){filter:brightness(.96)}.vf-button--sm{min-height:var(--vf-control-height-sm);padding:var(--vf-button-padding-sm);font-size:var(--vf-control-font-size-sm)}.vf-icon-button--sm{width:var(--vf-control-height-sm);height:var(--vf-control-height-sm)}.vf-button--lg{min-height:var(--vf-control-height-lg);padding:var(--vf-button-padding-lg);font-size:var(--vf-control-font-size-lg)}.vf-icon-button--lg{width:var(--vf-control-height-lg);height:var(--vf-control-height-lg)}.vf-button--block{width:100%}.vf-link{display:inline-flex;width:fit-content;max-width:100%;align-self:flex-start;border:1px solid transparent;color:var(--vf-color-primary);text-decoration:none;text-underline-offset:.2em;transition:color .18s ease}.vf-link:hover{color:var(--vf-color-primary)}.vf-link:focus-visible{outline:none;border-color:var(--vf-color-primary);border-radius:var(--vf-radius-control);box-shadow:0 0 0 var(--vf-focus-ring-width) var(--vf-color-focus-ring)}.vf-link--muted{color:var(--vf-color-muted)}.vf-link--underline{text-decoration:underline}.vf-link--underline:focus-visible{text-decoration:none}.vf-input,.vf-textarea{width:100%}.vf-checkbox,.vf-switch,.vf-radio{position:relative;display:inline-flex;align-items:center;gap:var(--vf-selection-gap);width:fit-content;min-width:0;color:var(--vf-color-text);cursor:pointer}.vf-input{min-height:var(--vf-control-height-md);padding:var(--vf-field-padding-md);border:1px solid var(--vf-color-border);border-radius:var(--vf-radius-control);background:var(--vf-color-surface);color:var(--vf-color-text);transition:border-color .18s ease}.vf-input::placeholder{color:var(--vf-color-muted)}.vf-input:hover:not(:disabled):not(.vf-input--invalid):not(:focus):not(:focus-visible){border-color:var(--vf-color-primary-border-soft)}.vf-input:focus,.vf-input:focus-visible{border-color:var(--vf-color-primary)}.vf-input:focus-visible,.vf-textarea:focus-visible{outline:none;border-radius:var(--vf-radius-control);box-shadow:0 0 0 var(--vf-focus-ring-width) var(--vf-color-focus-ring)}.vf-input--sm{min-height:var(--vf-control-height-sm);padding:var(--vf-field-padding-sm);font-size:var(--vf-control-font-size-sm)}.vf-input--lg{min-height:var(--vf-control-height-lg);padding:var(--vf-field-padding-lg)}.vf-input--invalid{border-color:var(--vf-color-danger)}.vf-input--invalid:hover:not(:disabled):not(:focus):not(:focus-visible){border-color:var(--vf-color-primary-border-soft)}.vf-textarea{min-height:var(--vf-textarea-min-height-md);padding:var(--vf-field-padding-md);border:1px solid var(--vf-color-border);border-radius:var(--vf-radius-control);background:var(--vf-color-surface);color:var(--vf-color-text);resize:vertical;transition:border-color .18s ease}.vf-textarea::placeholder{color:var(--vf-color-muted)}.vf-textarea:hover:not(:disabled):not(.vf-textarea--invalid):not(:focus):not(:focus-visible){border-color:var(--vf-color-primary-border-soft)}.vf-textarea:focus,.vf-textarea:focus-visible{border-color:var(--vf-color-primary)}.vf-textarea--sm{min-height:var(--vf-textarea-min-height-sm);padding:var(--vf-field-padding-sm);font-size:var(--vf-control-font-size-sm)}.vf-textarea--lg{min-height:var(--vf-textarea-min-height-lg);padding:var(--vf-field-padding-lg)}.vf-textarea--invalid{border-color:var(--vf-color-danger)}.vf-textarea--invalid:hover:not(:disabled):not(:focus):not(:focus-visible){border-color:var(--vf-color-primary-border-soft)}.vf-input:disabled,.vf-textarea:disabled{opacity:.65;cursor:not-allowed}.vf-checkbox--disabled,.vf-switch--disabled,.vf-radio--disabled{opacity:.65;cursor:not-allowed}.vf-checkbox__input,.vf-switch__input,.vf-radio__input{position:absolute;width:1px;height:1px;margin:0;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;opacity:0}.vf-checkbox__control,.vf-switch__control,.vf-radio__control{position:relative;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;border:1px solid var(--vf-color-border);background:var(--vf-color-surface);transition:background-color var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),border-color var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),box-shadow var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),color var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),transform var(--vf-motion-duration-normal) var(--vf-motion-ease-standard)}.vf-checkbox__content,.vf-switch__content,.vf-radio__content{min-width:0;color:currentColor;line-height:var(--vf-text-line-height)}.vf-checkbox__control{width:var(--vf-checkbox-size-md);height:var(--vf-checkbox-size-md);border-radius:calc(var(--vf-radius-control-tight) - .0625rem)}.vf-checkbox__mark{width:var(--vf-checkbox-mark-width);height:var(--vf-checkbox-mark-height);border-right:var(--vf-checkbox-mark-stroke-width) solid transparent;border-bottom:var(--vf-checkbox-mark-stroke-width) solid transparent;transform:translateY(var(--vf-checkbox-mark-offset-y)) rotate(45deg) scale(.8);opacity:0;transition:opacity var(--vf-motion-duration-fast) var(--vf-motion-ease-standard),transform var(--vf-motion-duration-fast) var(--vf-motion-ease-standard),border-color var(--vf-motion-duration-fast) var(--vf-motion-ease-standard)}.vf-checkbox__input:checked+.vf-checkbox__control{border-color:var(--vf-color-primary);background:var(--vf-color-primary)}.vf-checkbox__input:checked+.vf-checkbox__control .vf-checkbox__mark{border-right-color:var(--vf-color-primary-contrast);border-bottom-color:var(--vf-color-primary-contrast);transform:translateY(var(--vf-checkbox-mark-offset-y)) rotate(45deg) scale(1);opacity:1}.vf-checkbox:hover:not(.vf-checkbox--disabled) .vf-checkbox__input:not(:checked)+.vf-checkbox__control{border-color:var(--vf-color-primary-border-soft)}.vf-checkbox__input:focus-visible+.vf-checkbox__control{outline:none;border-color:var(--vf-color-primary);box-shadow:0 0 0 var(--vf-focus-ring-width) var(--vf-color-focus-ring)}.vf-checkbox--invalid .vf-checkbox__control{border-color:var(--vf-color-danger)}.vf-checkbox--invalid:hover:not(.vf-checkbox--disabled) .vf-checkbox__input:not(:checked)+.vf-checkbox__control{border-color:var(--vf-color-primary-border-soft)}.vf-checkbox--sm .vf-checkbox__control{width:var(--vf-checkbox-size-sm);height:var(--vf-checkbox-size-sm)}.vf-checkbox--sm .vf-checkbox__content{font-size:var(--vf-control-font-size-sm)}.vf-checkbox--lg .vf-checkbox__control{width:var(--vf-checkbox-size-lg);height:var(--vf-checkbox-size-lg)}.vf-radio__control{width:var(--vf-checkbox-size-md);height:var(--vf-checkbox-size-md);border-radius:999px;background:color-mix(in srgb,var(--vf-color-border) 12%,var(--vf-color-surface))}.vf-radio__dot{width:var(--vf-radio-dot-size);height:var(--vf-radio-dot-size);border-radius:999px;background:var(--vf-color-primary);transform:scale(.35);opacity:0;transition:opacity var(--vf-motion-duration-fast) var(--vf-motion-ease-standard),transform var(--vf-motion-duration-fast) var(--vf-motion-ease-standard)}.vf-radio__input:checked+.vf-radio__control{border-color:var(--vf-color-primary)}.vf-radio__input:checked+.vf-radio__control .vf-radio__dot{transform:scale(1);opacity:1}.vf-radio:hover:not(.vf-radio--disabled) .vf-radio__input:not(:checked)+.vf-radio__control{border-color:var(--vf-color-primary-border-soft)}.vf-radio__input:focus-visible+.vf-radio__control{outline:none;border-color:var(--vf-color-primary);box-shadow:0 0 0 var(--vf-focus-ring-width) var(--vf-color-focus-ring)}.vf-radio--invalid .vf-radio__control{border-color:var(--vf-color-danger)}.vf-radio--invalid:hover:not(.vf-radio--disabled) .vf-radio__input:not(:checked)+.vf-radio__control{border-color:var(--vf-color-primary-border-soft)}.vf-radio--sm .vf-radio__control{width:var(--vf-checkbox-size-sm);height:var(--vf-checkbox-size-sm)}.vf-radio--sm .vf-radio__content{font-size:var(--vf-control-font-size-sm)}.vf-radio--lg .vf-radio__control{width:var(--vf-checkbox-size-lg);height:var(--vf-checkbox-size-lg)}.vf-switch__control{width:var(--vf-switch-width-md);height:var(--vf-switch-height-md);border-radius:999px;background:color-mix(in srgb,var(--vf-color-text) 10%,var(--vf-color-surface))}.vf-switch__thumb{position:absolute;left:var(--vf-switch-thumb-inset);width:var(--vf-switch-thumb-size-md);height:var(--vf-switch-thumb-size-md);border-radius:999px;border:1px solid color-mix(in srgb,var(--vf-color-surface) 80%,var(--vf-color-border));background:color-mix(in srgb,var(--vf-color-surface) 88%,var(--vf-color-surface-muted));box-shadow:0 1px 2px color-mix(in srgb,var(--vf-color-text) 18%,transparent);transform:translate(0);transition:transform var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),background-color var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),border-color var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),box-shadow var(--vf-motion-duration-normal) var(--vf-motion-ease-standard)}.vf-switch__input:checked+.vf-switch__control{border-color:var(--vf-color-primary);background:var(--vf-color-primary)}.vf-switch__input:checked+.vf-switch__control .vf-switch__thumb{transform:translate(calc(var(--vf-switch-width-md) - var(--vf-switch-thumb-size-md) - (var(--vf-switch-thumb-inset) * 2)));border-color:color-mix(in srgb,var(--vf-color-primary) 12%,var(--vf-color-surface));background:var(--vf-color-surface);box-shadow:0 1px 1.5px color-mix(in srgb,var(--vf-color-text) 12%,transparent)}.vf-switch:hover:not(.vf-switch--disabled) .vf-switch__control{background:color-mix(in srgb,var(--vf-color-text) 12%,var(--vf-color-surface))}.vf-switch:hover:not(.vf-switch--disabled) .vf-switch__input:checked+.vf-switch__control{background:color-mix(in srgb,var(--vf-color-primary) 92%,var(--vf-color-surface))}.vf-switch__input:focus-visible+.vf-switch__control{outline:none;border-color:var(--vf-color-primary);box-shadow:0 0 0 var(--vf-focus-ring-width) var(--vf-color-focus-ring)}.vf-switch--sm .vf-switch__control{width:var(--vf-switch-width-sm);height:var(--vf-switch-height-sm)}.vf-switch--sm .vf-switch__thumb{left:var(--vf-switch-thumb-inset);width:var(--vf-switch-thumb-size-sm);height:var(--vf-switch-thumb-size-sm)}.vf-switch--sm .vf-switch__input:checked+.vf-switch__control .vf-switch__thumb{transform:translate(calc(var(--vf-switch-width-sm) - var(--vf-switch-thumb-size-sm) - (var(--vf-switch-thumb-inset) * 2)))}.vf-switch--sm .vf-switch__content{font-size:var(--vf-control-font-size-sm)}.vf-switch--lg .vf-switch__control{width:var(--vf-switch-width-lg);height:var(--vf-switch-height-lg)}.vf-switch--lg .vf-switch__thumb{left:var(--vf-switch-thumb-inset);width:var(--vf-switch-thumb-size-lg);height:var(--vf-switch-thumb-size-lg)}.vf-switch--lg .vf-switch__input:checked+.vf-switch__control .vf-switch__thumb{transform:translate(calc(var(--vf-switch-width-lg) - var(--vf-switch-thumb-size-lg) - (var(--vf-switch-thumb-inset) * 2)))}.vf-card{display:flex;flex-direction:column;gap:var(--vf-surface-gap);padding:var(--vf-surface-padding);border:1px solid var(--vf-color-border);border-radius:var(--vf-radius-surface);background:var(--vf-color-surface);color:var(--vf-color-text);line-height:var(--vf-text-line-height)}.vf-card--compact{padding:var(--vf-surface-padding-compact);gap:var(--vf-surface-gap-compact)}.vf-card__title{margin:0;font-size:var(--vf-card-title-font-size);font-weight:600;line-height:var(--vf-heading-line-height)}.vf-card__body{color:var(--vf-color-muted)}.vf-panel{display:flex;flex-direction:column;gap:var(--vf-surface-gap);padding:var(--vf-surface-padding);border:1px solid var(--vf-color-border);border-radius:var(--vf-radius-surface);background:var(--vf-color-surface);color:var(--vf-color-text);line-height:var(--vf-text-line-height)}.vf-panel--subtle{background:transparent;box-shadow:none}.vf-panel__title{margin:0;font-size:var(--vf-panel-title-font-size);font-weight:600;line-height:var(--vf-heading-line-height)}.vf-badge{display:inline-flex;align-items:center;gap:var(--vf-badge-gap);min-height:var(--vf-badge-height);padding:var(--vf-badge-padding);border-radius:var(--vf-badge-radius);font-size:var(--vf-badge-font-size);font-weight:600;line-height:var(--vf-badge-line-height);white-space:nowrap;background:var(--vf-color-surface-muted);border:1px solid var(--vf-color-border);color:var(--vf-color-text)}.vf-badge--primary{background:var(--vf-color-primary-soft);border-color:var(--vf-color-primary);color:var(--vf-color-primary)}.vf-badge--success{background:var(--vf-color-success-soft);border-color:var(--vf-color-success);color:var(--vf-color-success)}.vf-badge--info{background:var(--vf-color-info-soft);border-color:var(--vf-color-info);color:var(--vf-color-info)}.vf-badge--warn{background:var(--vf-color-warn-soft);border-color:var(--vf-color-warn);color:var(--vf-color-warn)}.vf-badge--help{background:var(--vf-color-help-soft);border-color:var(--vf-color-help);color:var(--vf-color-help)}.vf-badge--danger{background:var(--vf-color-danger-soft);border-color:var(--vf-color-danger);color:var(--vf-color-danger)}.vf-badge--contrast{background:var(--vf-color-contrast-soft);border-color:var(--vf-color-contrast);color:var(--vf-color-contrast)}.vf-tag{display:inline-flex;align-items:center;min-height:var(--vf-tag-height);padding:var(--vf-tag-padding);border:1px solid var(--vf-color-border);border-radius:var(--vf-radius-control-tight);background:var(--vf-color-surface);color:var(--vf-color-text);font-size:var(--vf-tag-font-size);line-height:var(--vf-tag-line-height);white-space:nowrap}.vf-tag--primary{border-color:var(--vf-color-primary);color:var(--vf-color-primary)}.vf-tag--success{border-color:var(--vf-color-success);color:var(--vf-color-success)}.vf-tag--info{border-color:var(--vf-color-info);color:var(--vf-color-info)}.vf-tag--warn{border-color:var(--vf-color-warn);color:var(--vf-color-warn)}.vf-tag--help{border-color:var(--vf-color-help);color:var(--vf-color-help)}.vf-tag--danger{border-color:var(--vf-color-danger);color:var(--vf-color-danger)}.vf-tag--contrast{border-color:var(--vf-color-contrast);color:var(--vf-color-contrast)}.vf-alert{display:grid;grid-template-columns:auto 1fr;gap:var(--vf-section-gap);padding:var(--vf-section-padding);border:1px solid var(--vf-alert-primary-border-soft);border-radius:var(--vf-radius-surface);background:var(--vf-alert-primary-soft);color:var(--vf-color-text);line-height:var(--vf-text-line-height)}.vf-alert--success{border-color:var(--vf-color-success-border-soft);background:var(--vf-color-success-soft)}.vf-alert--info{border-color:var(--vf-color-info-border-soft);background:var(--vf-color-info-soft)}.vf-alert--warn{border-color:var(--vf-color-warn-border-soft);background:var(--vf-color-warn-soft)}.vf-alert--help{border-color:var(--vf-color-help-border-soft);background:var(--vf-color-help-soft)}.vf-alert--danger{border-color:var(--vf-color-danger-border-soft);background:var(--vf-color-danger-soft)}.vf-alert--contrast{border-color:var(--vf-color-contrast-border-soft);background:var(--vf-color-contrast-soft)}.vf-alert__icon{display:inline-flex;align-items:center;justify-content:center;align-self:start;color:var(--vf-color-primary)}.vf-alert--success .vf-alert__icon{color:var(--vf-color-success)}.vf-alert--info .vf-alert__icon{color:var(--vf-color-info)}.vf-alert--warn .vf-alert__icon{color:var(--vf-color-warn)}.vf-alert--help .vf-alert__icon{color:var(--vf-color-help)}.vf-alert--danger .vf-alert__icon{color:var(--vf-color-danger)}.vf-alert--contrast .vf-alert__icon{color:var(--vf-color-contrast)}.vf-alert__content{display:grid;gap:var(--vf-alert-content-gap)}.vf-alert__title{margin:0;font-size:var(--vf-alert-title-font-size);font-weight:600;line-height:var(--vf-heading-line-height)}.vf-alert__body{color:var(--vf-color-muted);line-height:var(--vf-text-line-height)}.vf-divider{margin:0;border:0;background:var(--vf-color-border);flex-shrink:0}.vf-divider--horizontal{width:100%;height:1px}.vf-divider--vertical{width:1px;align-self:stretch}.vf-dialog{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--vf-z-overlay);display:flex;align-items:center;justify-content:center;padding:var(--vf-overlay-viewport-padding)}.vf-drawer{position:fixed;inset-inline:0;inset-block-end:0;inset-block-start:var(--vf-drawer-offset-top);z-index:var(--vf-z-drawer);display:flex;--vf-drawer-offset-x: 0;--vf-drawer-offset-y: 0}.vf-drawer--left{justify-content:flex-start;--vf-drawer-offset-x: -100%}.vf-drawer--right{justify-content:flex-end;--vf-drawer-offset-x: 100%}.vf-drawer--top{align-items:flex-start;--vf-drawer-offset-y: -100%}.vf-drawer--bottom{align-items:flex-end;--vf-drawer-offset-y: 100%}.vf-dialog__overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--vf-overlay-backdrop);opacity:1;transition:opacity var(--vf-motion-duration-fast) var(--vf-motion-ease-standard)}.vf-drawer__overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--vf-overlay-backdrop);opacity:1;transition:opacity var(--vf-motion-duration-normal) var(--vf-motion-ease-standard)}.vf-dialog__content{position:relative;z-index:1;display:flex;flex-direction:column;gap:var(--vf-overlay-gap);width:min(100%,var(--vf-dialog-width-md));max-height:var(--vf-dialog-max-height);overflow:auto;padding:var(--vf-overlay-padding);border:1px solid var(--vf-color-border);border-radius:var(--vf-radius-overlay);background:var(--vf-color-surface);color:var(--vf-color-text);line-height:var(--vf-text-line-height);opacity:1;transform:translateZ(0);transition:transform var(--vf-motion-duration-fast) var(--vf-motion-ease-standard),opacity var(--vf-motion-duration-fast) var(--vf-motion-ease-standard)}.vf-drawer__content{position:relative;z-index:1;display:flex;flex-direction:column;gap:var(--vf-overlay-gap);overflow:hidden;padding:0;border:1px solid var(--vf-color-border);border-radius:var(--vf-radius-overlay);background:var(--vf-color-surface);color:var(--vf-color-text);line-height:var(--vf-text-line-height);transform:translateZ(0);transition:transform var(--vf-motion-duration-normal) var(--vf-motion-ease-standard)}.vf-dialog-transition-enter-active,.vf-dialog-transition-leave-active{transition:none}.vf-dialog-transition-enter-from .vf-dialog__overlay,.vf-dialog-transition-leave-to .vf-dialog__overlay{opacity:0}.vf-dialog-transition-enter-from .vf-dialog__content,.vf-dialog-transition-leave-to .vf-dialog__content{opacity:0;transform:translate3d(0,.75rem,0)}.vf-drawer-transition-enter-active,.vf-drawer-transition-leave-active{transition:none}.vf-drawer-transition-enter-from .vf-drawer__overlay,.vf-drawer-transition-leave-to .vf-drawer__overlay{opacity:0}.vf-drawer-transition-enter-from .vf-drawer__content,.vf-drawer-transition-leave-to .vf-drawer__content{transform:translate3d(var(--vf-drawer-offset-x),var(--vf-drawer-offset-y),0)}.vf-dialog__content:focus-visible{outline:none;border-color:var(--vf-color-primary);box-shadow:0 0 0 var(--vf-focus-ring-width) var(--vf-color-focus-ring)}.vf-drawer__content:focus-visible{outline:none;border-color:var(--vf-color-primary);box-shadow:0 0 0 var(--vf-focus-ring-width) var(--vf-color-focus-ring)}.vf-dialog__content--sm{width:min(100%,var(--vf-dialog-width-sm))}.vf-dialog__content--lg{width:min(100%,var(--vf-dialog-width-lg))}.vf-drawer__content--left,.vf-drawer__content--right{width:min(100dvw,var(--vf-drawer-size-md));height:100%}.vf-drawer__content--left{border-left:none;border-top:none;border-bottom:none;border-top-right-radius:var( --vf-drawer-radius-top-right, var(--vf-radius-overlay) );border-bottom-right-radius:var( --vf-drawer-radius-bottom-right, var(--vf-radius-overlay) );border-top-left-radius:var(--vf-drawer-radius-top-left, 0);border-bottom-left-radius:var(--vf-drawer-radius-bottom-left, 0)}.vf-drawer__content--right{border-right:none;border-top:none;border-bottom:none;border-top-left-radius:var( --vf-drawer-radius-top-left, var(--vf-radius-overlay) );border-bottom-left-radius:var( --vf-drawer-radius-bottom-left, var(--vf-radius-overlay) );border-top-right-radius:var(--vf-drawer-radius-top-right, 0);border-bottom-right-radius:var(--vf-drawer-radius-bottom-right, 0)}.vf-drawer__content--top,.vf-drawer__content--bottom{width:100dvw;min-height:min(100%,var(--vf-drawer-size-md));max-height:100%}.vf-drawer__content--top{border-top:none;border-left:none;border-right:none;border-bottom-left-radius:var( --vf-drawer-radius-bottom-left, var(--vf-radius-overlay) );border-bottom-right-radius:var( --vf-drawer-radius-bottom-right, var(--vf-radius-overlay) );border-top-left-radius:var(--vf-drawer-radius-top-left, 0);border-top-right-radius:var(--vf-drawer-radius-top-right, 0)}.vf-drawer__content--bottom{border-bottom:none;border-left:none;border-right:none;border-top-left-radius:var( --vf-drawer-radius-top-left, var(--vf-radius-overlay) );border-top-right-radius:var( --vf-drawer-radius-top-right, var(--vf-radius-overlay) );border-bottom-left-radius:var(--vf-drawer-radius-bottom-left, 0);border-bottom-right-radius:var(--vf-drawer-radius-bottom-right, 0)}.vf-drawer--offset-top.vf-drawer--left .vf-drawer__content--left,.vf-drawer--offset-top.vf-drawer--right .vf-drawer__content--right,.vf-drawer--offset-top.vf-drawer--top .vf-drawer__content--top{border-top:1px solid var(--vf-color-border)}.vf-drawer__content--sm.vf-drawer__content--left,.vf-drawer__content--sm.vf-drawer__content--right{width:min(100dvw,var(--vf-drawer-size-sm))}.vf-drawer__content--lg.vf-drawer__content--left,.vf-drawer__content--lg.vf-drawer__content--right{width:min(100dvw,var(--vf-drawer-size-lg))}.vf-drawer__content--sm.vf-drawer__content--top,.vf-drawer__content--sm.vf-drawer__content--bottom{min-height:min(100dvh,var(--vf-drawer-size-sm))}.vf-drawer__content--lg.vf-drawer__content--top,.vf-drawer__content--lg.vf-drawer__content--bottom{min-height:min(100dvh,var(--vf-drawer-size-lg))}.vf-dialog__header,.vf-dialog__footer,.vf-drawer__header,.vf-drawer__footer{display:flex;align-items:center;justify-content:space-between;gap:var(--vf-dialog-header-gap)}.vf-dialog__actions,.vf-drawer__actions{display:inline-flex;align-items:center;gap:var(--vf-dialog-actions-gap)}.vf-dialog__actions .vf-icon-button,.vf-drawer__actions .vf-icon-button{color:var(--vf-color-muted)}.vf-dialog__actions .vf-icon-button .vif-icon,.vf-drawer__actions .vf-icon-button .vif-icon{width:1rem;height:1rem}.vf-dialog__actions .vf-icon-button:hover:not(:disabled),.vf-drawer__actions .vf-icon-button:hover:not(:disabled){background:var(--vf-color-surface-muted);border-color:var(--vf-color-border);color:var(--vf-color-text)}.vf-dialog__actions .vf-icon-button:active:not(:disabled),.vf-drawer__actions .vf-icon-button:active:not(:disabled){background:var(--vf-color-surface-muted);border-color:var(--vf-color-primary);color:var(--vf-color-primary)}.vf-dialog__title,.vf-drawer__title{margin:0;font-size:var(--vf-dialog-title-font-size);font-weight:700;line-height:var(--vf-heading-line-height)}.vf-dialog__description{margin:0;color:var(--vf-color-muted);line-height:var(--vf-text-line-height)}.vf-dialog__body,.vf-drawer__body{flex:1 1 auto;min-height:0;overflow:auto;color:var(--vf-color-text);line-height:var(--vf-text-line-height)}.vf-drawer__header,.vf-drawer__footer{padding:var(--vf-overlay-padding)}.vf-drawer__body{padding:var(--vf-drawer-body-padding)}.vf-dropdown,.vf-popover{position:relative;display:inline-flex;flex-direction:column}.vf-dropdown__trigger,.vf-popover__trigger{width:fit-content;border:1px solid transparent;border-radius:var(--vf-radius-control)}.vf-dropdown__trigger:focus-visible,.vf-popover__trigger:focus-visible{outline:none;border-color:var(--vf-color-primary);box-shadow:0 0 0 var(--vf-focus-ring-width) var(--vf-color-focus-ring)}.vf-dropdown__menu{position:fixed;top:0;left:0;z-index:var(--vf-z-dropdown);display:flex;flex-direction:column;gap:var(--vf-menu-gap);min-width:var(--vf-menu-min-width);padding:var(--vf-menu-padding);border:1px solid var(--vf-color-border);border-radius:var(--vf-radius-control);background:var(--vf-color-surface);opacity:1;transform:translateZ(0) scale(1);transition:transform var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),opacity var(--vf-motion-duration-normal) var(--vf-motion-ease-standard);will-change:left,top}.vf-dropdown__arrow{position:absolute;z-index:0;width:var(--vf-floating-arrow-size);height:var(--vf-floating-arrow-size);background:var(--vf-color-surface);border-left:1px solid var(--vf-color-border);border-top:1px solid var(--vf-color-border);transform:rotate(45deg);pointer-events:none}.vf-dropdown__arrow--bottom{margin-top:-1px}.vf-dropdown__arrow--top{margin-top:1px}.vf-popover__content{position:fixed;left:0;top:0;z-index:var(--vf-z-popover);width:var(--vf-popover-width);padding:var(--vf-section-padding);border:1px solid var(--vf-color-border);border-radius:var(--vf-radius-surface);background:var(--vf-color-surface);color:var(--vf-color-text);line-height:var(--vf-text-line-height);opacity:1;transform:translateZ(0) scale(1);transition:transform var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),opacity var(--vf-motion-duration-normal) var(--vf-motion-ease-standard);will-change:left,top}.vf-popover__arrow{position:absolute;width:var(--vf-floating-arrow-size);height:var(--vf-floating-arrow-size);background:var(--vf-color-surface);border-left:1px solid var(--vf-color-border);border-top:1px solid var(--vf-color-border);transform:rotate(45deg);pointer-events:none}.vf-popover__arrow--bottom{margin-top:-1px}.vf-popover__arrow--top{margin-top:1px}.vf-dropdown__item{position:relative;z-index:1;display:flex;align-items:center;width:100%;min-height:var(--vf-control-height-sm);padding:var(--vf-field-padding-sm);border:1px solid transparent;border-radius:var(--vf-radius-control-tight);background:transparent;color:var(--vf-color-text);text-align:left;cursor:pointer}.vf-dropdown__item:hover{background:transparent;color:var(--vf-color-primary)}.vf-dropdown__item:focus-visible{outline:none;border-color:var(--vf-color-primary);box-shadow:0 0 0 var(--vf-focus-ring-width) var(--vf-color-focus-ring);background:transparent;color:var(--vf-color-primary)}.vf-tooltip{position:relative;display:inline-flex;width:fit-content;max-width:100%;align-self:flex-start}.vf-tooltip__trigger{display:inline-flex;width:fit-content;max-width:100%}.vf-tooltip__content{position:fixed;left:0;top:0;z-index:var(--vf-z-tooltip);max-width:var(--vf-tooltip-max-width);padding:var(--vf-tooltip-padding);border-radius:var(--vf-radius-control-tight);background:var(--vf-color-text);color:var(--vf-color-bg);font-size:var(--vf-tooltip-font-size);line-height:var(--vf-tooltip-line-height);opacity:1;transform:translateZ(0) scale(1);transition:transform var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),opacity var(--vf-motion-duration-normal) var(--vf-motion-ease-standard);will-change:left,top}.vf-floating-transition-enter-from.vf-dropdown__menu,.vf-floating-transition-leave-to.vf-dropdown__menu,.vf-floating-transition-enter-from.vf-popover__content,.vf-floating-transition-leave-to.vf-popover__content,.vf-floating-transition-enter-from.vf-tooltip__content,.vf-floating-transition-leave-to.vf-tooltip__content{opacity:0;transform:translate3d(0,.25rem,0) scale(.97)}.vf-tooltip__arrow{position:absolute;width:var(--vf-floating-arrow-size);height:var(--vf-floating-arrow-size);background:var(--vf-color-text);transform:rotate(45deg);pointer-events:none}.vf-accordion{border:1px solid var(--vf-color-border);border-radius:var(--vf-radius-surface);background:var(--vf-color-surface);color:var(--vf-color-text)}.vf-accordion__trigger{display:flex;align-items:center;justify-content:space-between;gap:var(--vf-spacing);position:relative;z-index:1;width:100%;padding:var(--vf-section-padding);border:1px solid transparent;border-radius:inherit;background:transparent;color:inherit;cursor:pointer;text-align:left}.vf-accordion__trigger[aria-expanded=true]{border-bottom-left-radius:0;border-bottom-right-radius:0}.vf-accordion__trigger:hover:not(:disabled){background:transparent;color:var(--vf-color-primary)}.vf-accordion__trigger:focus-visible{z-index:2;outline:none;border-color:var(--vf-color-primary);box-shadow:0 0 0 var(--vf-focus-ring-width) var(--vf-color-focus-ring)}.vf-accordion__icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:1rem;height:1rem;line-height:1;color:var(--vf-color-muted);transition:transform var(--vf-motion-duration-normal) var(--vf-motion-ease-standard)}.vf-accordion__icon .vif-icon{width:1rem;height:1rem}.vf-accordion__icon--open{transform:rotate(180deg)}.vf-accordion__content{overflow:hidden;border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;background:var(--vf-color-surface)}.vf-accordion__content-inner{position:relative;z-index:1;border-top:1px solid var(--vf-color-border);padding:var(--vf-section-padding);color:var(--vf-color-muted);line-height:var(--vf-text-line-height)}.vf-tabs{display:flex;flex-direction:column;gap:var(--vf-tabs-gap)}.vf-tabs__list{display:inline-flex;align-items:center;gap:var(--vf-tabs-list-gap);width:fit-content;padding:var(--vf-tabs-list-padding);border:1px solid var(--vf-color-border);border-radius:var(--vf-radius-overlay);background:var(--vf-color-surface-muted)}.vf-tabs__tab{display:inline-flex;align-items:center;justify-content:center;min-height:var(--vf-control-height-md);padding:0 var(--vf-tabs-tab-padding-inline);border:1px solid transparent;border-radius:var(--vf-radius-control-tight);background:transparent;color:var(--vf-color-muted);cursor:pointer;white-space:nowrap;line-height:var(--vf-tabs-line-height);transition:background-color var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),color var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),border-color var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),box-shadow var(--vf-motion-duration-normal) var(--vf-motion-ease-standard)}.vf-tabs__tab:hover:not(:disabled){color:var(--vf-color-primary);background:transparent}.vf-tabs__tab[aria-selected=true]{background:var(--vf-color-surface);color:var(--vf-color-primary);border:1px solid var(--vf-color-primary)}.vf-tabs__tab:focus-visible{outline:none;border-color:var(--vf-color-primary);box-shadow:0 0 0 var(--vf-focus-ring-width) var(--vf-color-focus-ring)}.vf-tabs__tab:disabled{cursor:not-allowed;opacity:.5}.vf-tabs__panel{border:1px solid transparent;border-radius:var(--vf-radius-control);padding:var(--vf-tabs-panel-padding-top) 0 0;color:var(--vf-color-text);line-height:var(--vf-text-line-height)}.vf-tabs__panel:focus-visible{outline:none;border-color:var(--vf-color-primary);box-shadow:0 0 0 var(--vf-focus-ring-width) var(--vf-color-focus-ring)}.vf-nav-menu{display:flex;flex-direction:column;width:100%;min-width:0}.vf-nav-menu__list{display:grid;gap:var(--vf-nav-menu-list-gap);margin:0;padding:0;list-style:none}.vf-nav-menu__list--nested{margin-top:0;gap:var(--vf-nav-menu-nested-gap);padding-top:0}.vf-nav-menu__collapse{overflow:hidden;margin-top:var(--vf-nav-menu-collapse-offset-top)}.vf-nav-menu__collapse--level-0{margin-left:var(--vf-nav-menu-collapse-inset-level-0-margin);padding-left:var(--vf-nav-menu-collapse-inset-level-0-padding)}.vf-nav-menu--simple .vf-nav-menu__collapse--level-0{margin-left:var(--vf-nav-menu-collapse-inset-simple-level-0-margin);padding-left:var(--vf-nav-menu-collapse-inset-simple-level-0-padding)}.vf-nav-menu__collapse:not(.vf-nav-menu__collapse--level-0){margin-left:var(--vf-nav-menu-collapse-inset-deep-margin);padding-left:var(--vf-nav-menu-collapse-inset-deep-padding)}.vf-nav-menu--simple .vf-nav-menu__collapse:not(.vf-nav-menu__collapse--level-0){margin-left:var(--vf-nav-menu-collapse-inset-simple-deep-margin);padding-left:var(--vf-nav-menu-collapse-inset-simple-deep-padding)}.vf-nav-menu__node{display:block}.vf-nav-menu__node:has(.vf-nav-menu__group)+.vf-nav-menu__node:has(.vf-nav-menu__group){margin-top:var(--vf-nav-menu-node-group-spacing)}.vf-nav-menu__collapse>.vf-nav-menu__list--nested>.vf-nav-menu__node:first-child>.vf-nav-menu__group{padding-top:0}.vf-nav-menu__group{display:flex;align-items:center;min-height:var(--vf-control-height-sm);padding:var(--vf-nav-menu-group-padding);cursor:default}.vf-nav-menu__group-label{font-size:var(--vf-nav-menu-group-font-size);font-weight:400;letter-spacing:0;color:color-mix(in srgb,var(--vf-color-muted) 88%,var(--vf-color-text))}.vf-nav-menu__item-content{display:inline-flex;align-items:center;gap:var(--vf-nav-menu-item-gap);min-width:0}.vf-nav-menu__leading-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--vf-nav-menu-leading-icon-column-size);min-width:var(--vf-nav-menu-leading-icon-column-size);color:currentColor}.vf-nav-menu__leading-icon .vif-icon{width:var(--vf-nav-menu-leading-icon-size);height:var(--vf-nav-menu-leading-icon-size)}.vf-nav-menu__item{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:var(--vf-control-height-sm);padding:var(--vf-nav-menu-item-padding);border:1px solid transparent;border-radius:var(--vf-radius-control);background:transparent;font-size:1rem;color:var(--vf-color-muted);text-align:left;text-decoration:none;cursor:pointer;transition:background-color var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),color var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),border-color var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),box-shadow var(--vf-motion-duration-normal) var(--vf-motion-ease-standard)}.vf-nav-menu__item:hover:not(:disabled):not(.vf-nav-menu__item--active){color:var(--vf-color-primary);background:color-mix(in srgb,var(--vf-color-primary) 12%,var(--vf-color-surface))}.vf-nav-menu__item:focus-visible{outline:none;border-color:var(--vf-color-primary);box-shadow:0 0 0 var(--vf-focus-ring-width) var(--vf-color-focus-ring)}.vf-nav-menu__item--active{color:var(--vf-color-primary);background:color-mix(in srgb,var(--vf-color-primary) 16%,var(--vf-color-surface))}.vf-nav-menu__item--disabled{cursor:not-allowed;opacity:.5}.vf-nav-menu__item--branch{font-weight:400;color:color-mix(in srgb,var(--vf-color-text) 82%,var(--vf-color-muted))}.vf-nav-menu__label{min-width:0;overflow-wrap:anywhere}.vf-nav-menu__icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:1rem;height:1rem;line-height:1;color:var(--vf-color-muted);transition:transform var(--vf-motion-duration-normal) var(--vf-motion-ease-standard)}.vf-nav-menu__icon .vif-icon{width:1rem;height:1rem}.vf-nav-menu__icon--open{transform:rotate(180deg)}
1
+ :root{--vf-breakpoint-xs: 480px;--vf-breakpoint-sm: 640px;--vf-breakpoint-md: 768px;--vf-breakpoint-lg: 1024px;--vf-breakpoint-xl: 1280px;--vf-breakpoint-2xl: 1536px}:root{--vf-color-bg: #fcfcfd;--vf-color-surface: #ffffff;--vf-color-surface-muted: #f5f7fb;--vf-color-text: #172033;--vf-color-muted: #69738a;--vf-color-border: #d8e0ef;--vf-color-primary: #0b63f6;--vf-color-primary-contrast: #ffffff;--vf-color-primary-soft: color-mix(in srgb, var(--vf-color-primary) 12%, var(--vf-color-surface));--vf-color-primary-border-soft: color-mix(in srgb, var(--vf-color-primary) 22%, var(--vf-color-border));--vf-color-focus-ring: color-mix(in srgb, var(--vf-color-primary) 32%, var(--vf-color-surface));--vf-color-success: #16a34a;--vf-color-success-contrast: #ffffff;--vf-color-info: #0ea5e9;--vf-color-info-contrast: #ffffff;--vf-color-warn: #f59e0b;--vf-color-warn-contrast: #1f1300;--vf-color-help: #8b5cf6;--vf-color-help-contrast: #ffffff;--vf-color-danger: #dc2626;--vf-color-danger-contrast: #ffffff;--vf-color-contrast: #111827;--vf-color-contrast-contrast: #ffffff;--vf-color-success-soft: color-mix(in srgb, var(--vf-color-success) 12%, var(--vf-color-surface));--vf-color-info-soft: color-mix(in srgb, var(--vf-color-info) 12%, var(--vf-color-surface));--vf-color-warn-soft: color-mix(in srgb, var(--vf-color-warn) 12%, var(--vf-color-surface));--vf-color-help-soft: color-mix(in srgb, var(--vf-color-help) 12%, var(--vf-color-surface));--vf-color-danger-soft: color-mix(in srgb, var(--vf-color-danger) 12%, var(--vf-color-surface));--vf-color-contrast-soft: color-mix(in srgb, var(--vf-color-contrast) 10%, var(--vf-color-surface));--vf-color-success-border-soft: color-mix(in srgb, var(--vf-color-success) 24%, var(--vf-color-border));--vf-color-info-border-soft: color-mix(in srgb, var(--vf-color-info) 24%, var(--vf-color-border));--vf-color-warn-border-soft: color-mix(in srgb, var(--vf-color-warn) 24%, var(--vf-color-border));--vf-color-help-border-soft: color-mix(in srgb, var(--vf-color-help) 24%, var(--vf-color-border));--vf-color-danger-border-soft: color-mix(in srgb, var(--vf-color-danger) 24%, var(--vf-color-border));--vf-color-contrast-border-soft: color-mix(in srgb, var(--vf-color-contrast) 24%, var(--vf-color-border));--vf-focus-ring-width: 3px;--vf-radius: .75rem;--vf-radius-control: calc(var(--vf-radius) - .125rem);--vf-radius-control-tight: calc(var(--vf-radius) - .25rem);--vf-radius-surface: var(--vf-radius);--vf-radius-overlay: calc(var(--vf-radius) + .125rem);--vf-control-height-sm: 1.75rem;--vf-control-height-md: 2.25rem;--vf-control-height-lg: 2.5rem;--vf-control-font-size-sm: .875rem;--vf-control-font-size-md: .9375rem;--vf-control-font-size-lg: 1rem;--vf-button-padding-sm: .25rem .5rem;--vf-button-padding-md: .375rem .75rem;--vf-button-padding-lg: .5rem 1rem;--vf-button-gap: .5rem;--vf-field-padding-sm: .25rem .5rem;--vf-field-padding-md: .375rem .75rem;--vf-field-padding-lg: .5rem 1rem;--vf-checkbox-size-sm: 1rem;--vf-checkbox-size-md: 1.125rem;--vf-checkbox-size-lg: 1.25rem;--vf-selection-gap: .75rem;--vf-checkbox-mark-width: .25rem;--vf-checkbox-mark-height: .5rem;--vf-checkbox-mark-stroke-width: 2px;--vf-checkbox-mark-offset-y: -.0625rem;--vf-radio-dot-size: .5rem;--vf-switch-width-sm: 2rem;--vf-switch-width-md: 2.25rem;--vf-switch-width-lg: 2.5rem;--vf-switch-height-sm: 1.125rem;--vf-switch-height-md: 1.25rem;--vf-switch-height-lg: 1.375rem;--vf-switch-thumb-size-sm: .75rem;--vf-switch-thumb-size-md: .875rem;--vf-switch-thumb-size-lg: 1rem;--vf-switch-thumb-inset: .125rem;--vf-textarea-min-height-sm: 4.5rem;--vf-textarea-min-height-md: 6rem;--vf-textarea-min-height-lg: 7rem;--vf-overlay-padding: 1rem;--vf-overlay-gap: .75rem;--vf-overlay-viewport-padding: 1rem;--vf-menu-padding: .5rem;--vf-menu-gap: .25rem;--vf-menu-min-width: 12rem;--vf-surface-padding: 1rem;--vf-surface-gap: .75rem;--vf-surface-padding-compact: .75rem;--vf-surface-gap-compact: .5rem;--vf-section-padding: .75rem 1rem;--vf-section-gap: .75rem;--vf-tabs-gap: .75rem;--vf-tabs-list-gap: .25rem;--vf-tabs-list-padding: .25rem;--vf-tabs-tab-padding-inline: .75rem;--vf-tabs-panel-padding-top: .75rem;--vf-nav-menu-list-gap: .25rem;--vf-nav-menu-nested-gap: .25rem;--vf-nav-menu-collapse-offset-top: .125rem;--vf-nav-menu-collapse-inset-level-0-margin: 1.25rem;--vf-nav-menu-collapse-inset-level-0-padding: .75rem;--vf-nav-menu-collapse-inset-simple-level-0-margin: .75rem;--vf-nav-menu-collapse-inset-simple-level-0-padding: .5rem;--vf-nav-menu-collapse-inset-deep-margin: .25rem;--vf-nav-menu-collapse-inset-deep-padding: .25rem;--vf-nav-menu-collapse-inset-simple-deep-margin: .25rem;--vf-nav-menu-collapse-inset-simple-deep-padding: .25rem;--vf-nav-menu-node-group-spacing: .25rem;--vf-nav-menu-group-padding: .375rem .75rem;--vf-nav-menu-group-font-size: .875rem;--vf-nav-menu-item-padding: .375rem .75rem;--vf-nav-menu-item-gap: .5rem;--vf-nav-menu-leading-icon-size: 1rem;--vf-nav-menu-leading-icon-column-size: 1.25rem;--vf-badge-height: 1.5rem;--vf-badge-padding: .25rem .5rem;--vf-badge-gap: .25rem;--vf-badge-radius: 999px;--vf-badge-font-size: .8125rem;--vf-badge-line-height: 1.2;--vf-tag-height: 1.75rem;--vf-tag-padding: .25rem .5rem;--vf-tag-font-size: .8125rem;--vf-tag-line-height: 1.2;--vf-tooltip-padding: .5rem .75rem;--vf-tooltip-max-width: 16rem;--vf-tooltip-font-size: .8125rem;--vf-tooltip-line-height: 1.4;--vf-dialog-width-sm: 28rem;--vf-dialog-width-md: 36rem;--vf-dialog-width-lg: 48rem;--vf-dialog-max-height: min(85vh, 48rem);--vf-drawer-size-sm: 20rem;--vf-drawer-size-md: 26rem;--vf-drawer-size-lg: 32rem;--vf-drawer-offset-top: 0px;--vf-drawer-body-padding: var(--vf-overlay-padding);--vf-dialog-title-font-size: 1.125rem;--vf-dialog-header-gap: .75rem;--vf-dialog-actions-gap: .5rem;--vf-popover-width: min(100vw - 2rem, 22rem);--vf-floating-arrow-size: .625rem;--vf-overlay-backdrop: rgba(15, 23, 42, .56);--vf-alert-primary-soft: color-mix(in srgb, var(--vf-color-primary) 8%, var(--vf-color-surface));--vf-alert-primary-border-soft: color-mix(in srgb, var(--vf-color-primary) 22%, var(--vf-color-border));--vf-alert-content-gap: .25rem;--vf-alert-title-font-size: .9375rem;--vf-card-title-font-size: 1rem;--vf-panel-title-font-size: .9375rem;--vf-text-line-height: 1.5;--vf-heading-line-height: 1.3;--vf-tabs-line-height: 1.2;--vf-motion-duration-fast: .22s;--vf-motion-duration-normal: .32s;--vf-motion-ease-standard: cubic-bezier(.16, 1, .3, 1);--vf-z-overlay: 1000;--vf-z-drawer: 1000;--vf-z-dropdown: 900;--vf-z-popover: 925;--vf-z-tooltip: 950;--vf-spacing: 1rem;--vf-shadow: none}:root{color-scheme:light;background-color:var(--vf-color-bg);color:var(--vf-color-text)}:root[data-vf-theme=dark]{color-scheme:dark;--vf-color-bg: #0f172a;--vf-color-surface: #162033;--vf-color-surface-muted: #1b2840;--vf-color-text: #eff4ff;--vf-color-muted: #9fb0cf;--vf-color-border: #2d405f;--vf-color-primary: #6ea8fe;--vf-color-primary-contrast: #081120;--vf-color-primary-soft: color-mix(in srgb, var(--vf-color-primary) 12%, var(--vf-color-surface));--vf-color-primary-border-soft: color-mix(in srgb, var(--vf-color-primary) 22%, var(--vf-color-border));--vf-color-focus-ring: color-mix(in srgb, var(--vf-color-primary) 32%, var(--vf-color-surface));--vf-color-success: #4ade80;--vf-color-success-contrast: #081120;--vf-color-info: #38bdf8;--vf-color-info-contrast: #081120;--vf-color-warn: #fbbf24;--vf-color-warn-contrast: #1f1300;--vf-color-help: #a78bfa;--vf-color-help-contrast: #081120;--vf-color-danger: #f87171;--vf-color-danger-contrast: #081120;--vf-color-contrast: #f3f4f6;--vf-color-contrast-contrast: #111827;--vf-color-success-soft: color-mix(in srgb, var(--vf-color-success) 12%, var(--vf-color-surface));--vf-color-info-soft: color-mix(in srgb, var(--vf-color-info) 12%, var(--vf-color-surface));--vf-color-warn-soft: color-mix(in srgb, var(--vf-color-warn) 12%, var(--vf-color-surface));--vf-color-help-soft: color-mix(in srgb, var(--vf-color-help) 12%, var(--vf-color-surface));--vf-color-danger-soft: color-mix(in srgb, var(--vf-color-danger) 12%, var(--vf-color-surface));--vf-color-contrast-soft: color-mix(in srgb, var(--vf-color-contrast) 10%, var(--vf-color-surface));--vf-color-success-border-soft: color-mix(in srgb, var(--vf-color-success) 24%, var(--vf-color-border));--vf-color-info-border-soft: color-mix(in srgb, var(--vf-color-info) 24%, var(--vf-color-border));--vf-color-warn-border-soft: color-mix(in srgb, var(--vf-color-warn) 24%, var(--vf-color-border));--vf-color-help-border-soft: color-mix(in srgb, var(--vf-color-help) 24%, var(--vf-color-border));--vf-color-danger-border-soft: color-mix(in srgb, var(--vf-color-danger) 24%, var(--vf-color-border));--vf-color-contrast-border-soft: color-mix(in srgb, var(--vf-color-contrast) 24%, var(--vf-color-border));--vf-focus-ring-width: 3px;--vf-z-overlay: 1000;--vf-z-drawer: 1000;--vf-z-dropdown: 900;--vf-z-popover: 925;--vf-z-tooltip: 950;--vf-shadow: none}:root.vf-theme-transitioning,:root.vf-theme-transitioning body,:root.vf-theme-transitioning #app,:root.vf-theme-transitioning [class^=vf-],:root.vf-theme-transitioning [class*=" vf-"],:root.vf-theme-transitioning .demo-page,:root.vf-theme-transitioning .demo-container,:root.vf-theme-transitioning .demo-header,:root.vf-theme-transitioning .demo-block,:root.vf-theme-transitioning .demo-example,:root.vf-theme-transitioning .demo-item{transition:background-color var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),border-color var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),color var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),box-shadow var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),fill var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),stroke var(--vf-motion-duration-normal) var(--vf-motion-ease-standard)}.vf-button,.vf-link,.vf-input,.vf-card,.vf-textarea,.vf-panel,.vf-badge,.vf-divider,.vf-dialog,.vf-dialog__overlay,.vf-dialog__content,.vf-drawer,.vf-drawer__overlay,.vf-drawer__content,.vf-dropdown,.vf-dropdown__trigger,.vf-dropdown__menu,.vf-accordion,.vf-accordion__trigger,.vf-nav-menu,.vf-nav-menu__item,.vf-tooltip,.vf-tooltip__trigger,.vf-tooltip__content,.vf-tabs,.vf-tabs__list,.vf-tabs__tab,.vf-tabs__panel{box-sizing:border-box;font:inherit}.vf-button{display:inline-flex;align-items:center;justify-content:center;gap:var(--vf-button-gap);min-height:var(--vf-control-height-md);padding:var(--vf-button-padding-md);border:1px solid transparent;border-radius:var(--vf-radius-control);background:var(--vf-color-primary);color:var(--vf-color-primary-contrast);cursor:pointer;text-decoration:none;transition:background-color .18s ease,border-color .18s ease,color .18s ease}.vf-icon-button{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--vf-control-height-md);height:var(--vf-control-height-md);padding:0;border:1px solid transparent;border-radius:var(--vf-radius-control);background:transparent;color:var(--vf-color-text);cursor:pointer;transition:background-color .18s ease,border-color .18s ease,color .18s ease}.vf-button:focus-visible,.vf-icon-button:focus-visible{outline:none;border-color:var(--vf-color-primary);border-radius:var(--vf-radius-control);box-shadow:0 0 0 var(--vf-focus-ring-width) var(--vf-color-focus-ring)}.vf-button:disabled,.vf-icon-button:disabled{opacity:.65;cursor:not-allowed}.vf-button--secondary{background:var(--vf-color-surface-muted);border-color:var(--vf-color-border);color:var(--vf-color-text)}.vf-button--primary,.vf-icon-button--primary{background:var(--vf-color-primary);color:var(--vf-color-primary-contrast)}.vf-button--success,.vf-icon-button--success{background:var(--vf-color-success);color:var(--vf-color-success-contrast)}.vf-button--info,.vf-icon-button--info{background:var(--vf-color-info);color:var(--vf-color-info-contrast)}.vf-button--warn,.vf-icon-button--warn{background:var(--vf-color-warn);color:var(--vf-color-warn-contrast)}.vf-button--help,.vf-icon-button--help{background:var(--vf-color-help);color:var(--vf-color-help-contrast)}.vf-button--danger,.vf-icon-button--danger{background:var(--vf-color-danger);color:var(--vf-color-danger-contrast)}.vf-button--contrast,.vf-icon-button--contrast{background:var(--vf-color-contrast);color:var(--vf-color-contrast-contrast)}.vf-icon-button--secondary{background:var(--vf-color-surface-muted);border-color:var(--vf-color-border);color:var(--vf-color-text)}.vf-button--ghost,.vf-icon-button--ghost{background:transparent;color:var(--vf-color-text)}.vf-button--secondary:hover:not(:disabled),.vf-icon-button--secondary:hover:not(:disabled){background:var(--vf-color-surface-muted);border-color:var(--vf-color-border);filter:brightness(.98)}.vf-button--ghost:hover:not(:disabled),.vf-icon-button--ghost:hover:not(:disabled){background:var(--vf-color-surface-muted);border-color:transparent}.vf-button--primary:hover:not(:disabled),.vf-button--success:hover:not(:disabled),.vf-button--info:hover:not(:disabled),.vf-button--warn:hover:not(:disabled),.vf-button--help:hover:not(:disabled),.vf-button--danger:hover:not(:disabled),.vf-button--contrast:hover:not(:disabled),.vf-icon-button--primary:hover:not(:disabled){filter:brightness(.96)}.vf-icon-button--success:hover:not(:disabled),.vf-icon-button--info:hover:not(:disabled),.vf-icon-button--warn:hover:not(:disabled),.vf-icon-button--help:hover:not(:disabled),.vf-icon-button--danger:hover:not(:disabled),.vf-icon-button--contrast:hover:not(:disabled){filter:brightness(.96)}.vf-button--sm{min-height:var(--vf-control-height-sm);padding:var(--vf-button-padding-sm);font-size:var(--vf-control-font-size-sm)}.vf-icon-button--sm{width:var(--vf-control-height-sm);height:var(--vf-control-height-sm)}.vf-button--lg{min-height:var(--vf-control-height-lg);padding:var(--vf-button-padding-lg);font-size:var(--vf-control-font-size-lg)}.vf-icon-button--lg{width:var(--vf-control-height-lg);height:var(--vf-control-height-lg)}.vf-button--block{width:100%}.vf-link{display:inline-flex;width:fit-content;max-width:100%;align-self:flex-start;border:1px solid transparent;color:var(--vf-color-primary);text-decoration:none;text-underline-offset:.2em;transition:color .18s ease}.vf-link:hover{color:var(--vf-color-primary)}.vf-link:focus-visible{outline:none;border-color:var(--vf-color-primary);border-radius:var(--vf-radius-control);box-shadow:0 0 0 var(--vf-focus-ring-width) var(--vf-color-focus-ring)}.vf-link--muted{color:var(--vf-color-muted)}.vf-link--underline{text-decoration:underline}.vf-link--underline:focus-visible{text-decoration:none}.vf-input,.vf-textarea{width:100%}.vf-checkbox,.vf-switch,.vf-radio{position:relative;display:inline-flex;align-items:center;gap:var(--vf-selection-gap);width:fit-content;min-width:0;color:var(--vf-color-text);cursor:pointer}.vf-input{min-height:var(--vf-control-height-md);padding:var(--vf-field-padding-md);border:1px solid var(--vf-color-border);border-radius:var(--vf-radius-control);background:var(--vf-color-surface);color:var(--vf-color-text);transition:border-color .18s ease}.vf-input::placeholder{color:var(--vf-color-muted)}.vf-input:hover:not(:disabled):not(.vf-input--invalid):not(:focus):not(:focus-visible){border-color:var(--vf-color-primary-border-soft)}.vf-input:focus,.vf-input:focus-visible{border-color:var(--vf-color-primary)}.vf-input:focus-visible,.vf-textarea:focus-visible{outline:none;border-radius:var(--vf-radius-control);box-shadow:0 0 0 var(--vf-focus-ring-width) var(--vf-color-focus-ring)}.vf-input--sm{min-height:var(--vf-control-height-sm);padding:var(--vf-field-padding-sm);font-size:var(--vf-control-font-size-sm)}.vf-input--lg{min-height:var(--vf-control-height-lg);padding:var(--vf-field-padding-lg)}.vf-input--invalid{border-color:var(--vf-color-danger)}.vf-input--invalid:hover:not(:disabled):not(:focus):not(:focus-visible){border-color:var(--vf-color-primary-border-soft)}.vf-textarea{min-height:var(--vf-textarea-min-height-md);padding:var(--vf-field-padding-md);border:1px solid var(--vf-color-border);border-radius:var(--vf-radius-control);background:var(--vf-color-surface);color:var(--vf-color-text);resize:vertical;transition:border-color .18s ease}.vf-textarea::placeholder{color:var(--vf-color-muted)}.vf-textarea:hover:not(:disabled):not(.vf-textarea--invalid):not(:focus):not(:focus-visible){border-color:var(--vf-color-primary-border-soft)}.vf-textarea:focus,.vf-textarea:focus-visible{border-color:var(--vf-color-primary)}.vf-textarea--sm{min-height:var(--vf-textarea-min-height-sm);padding:var(--vf-field-padding-sm);font-size:var(--vf-control-font-size-sm)}.vf-textarea--lg{min-height:var(--vf-textarea-min-height-lg);padding:var(--vf-field-padding-lg)}.vf-textarea--invalid{border-color:var(--vf-color-danger)}.vf-textarea--invalid:hover:not(:disabled):not(:focus):not(:focus-visible){border-color:var(--vf-color-primary-border-soft)}.vf-input:disabled,.vf-textarea:disabled{opacity:.65;cursor:not-allowed}.vf-checkbox--disabled,.vf-switch--disabled,.vf-radio--disabled{opacity:.65;cursor:not-allowed}.vf-checkbox__input,.vf-switch__input,.vf-radio__input{position:absolute;width:1px;height:1px;margin:0;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;opacity:0}.vf-checkbox__control,.vf-switch__control,.vf-radio__control{position:relative;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;border:1px solid var(--vf-color-border);background:var(--vf-color-surface);transition:background-color var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),border-color var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),box-shadow var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),color var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),transform var(--vf-motion-duration-normal) var(--vf-motion-ease-standard)}.vf-checkbox__content,.vf-switch__content,.vf-radio__content{min-width:0;color:currentColor;line-height:var(--vf-text-line-height)}.vf-checkbox__control{width:var(--vf-checkbox-size-md);height:var(--vf-checkbox-size-md);border-radius:calc(var(--vf-radius-control-tight) - .0625rem)}.vf-checkbox__mark{width:var(--vf-checkbox-mark-width);height:var(--vf-checkbox-mark-height);border-right:var(--vf-checkbox-mark-stroke-width) solid transparent;border-bottom:var(--vf-checkbox-mark-stroke-width) solid transparent;transform:translateY(var(--vf-checkbox-mark-offset-y)) rotate(45deg) scale(.8);opacity:0;transition:opacity var(--vf-motion-duration-fast) var(--vf-motion-ease-standard),transform var(--vf-motion-duration-fast) var(--vf-motion-ease-standard),border-color var(--vf-motion-duration-fast) var(--vf-motion-ease-standard)}.vf-checkbox__input:checked+.vf-checkbox__control{border-color:var(--vf-color-primary);background:var(--vf-color-primary)}.vf-checkbox__input:checked+.vf-checkbox__control .vf-checkbox__mark{border-right-color:var(--vf-color-primary-contrast);border-bottom-color:var(--vf-color-primary-contrast);transform:translateY(var(--vf-checkbox-mark-offset-y)) rotate(45deg) scale(1);opacity:1}.vf-checkbox:hover:not(.vf-checkbox--disabled) .vf-checkbox__input:not(:checked)+.vf-checkbox__control{border-color:var(--vf-color-primary-border-soft)}.vf-checkbox__input:focus-visible+.vf-checkbox__control{outline:none;border-color:var(--vf-color-primary);box-shadow:0 0 0 var(--vf-focus-ring-width) var(--vf-color-focus-ring)}.vf-checkbox--invalid .vf-checkbox__control{border-color:var(--vf-color-danger)}.vf-checkbox--invalid:hover:not(.vf-checkbox--disabled) .vf-checkbox__input:not(:checked)+.vf-checkbox__control{border-color:var(--vf-color-primary-border-soft)}.vf-checkbox--sm .vf-checkbox__control{width:var(--vf-checkbox-size-sm);height:var(--vf-checkbox-size-sm)}.vf-checkbox--sm .vf-checkbox__content{font-size:var(--vf-control-font-size-sm)}.vf-checkbox--lg .vf-checkbox__control{width:var(--vf-checkbox-size-lg);height:var(--vf-checkbox-size-lg)}.vf-radio__control{width:var(--vf-checkbox-size-md);height:var(--vf-checkbox-size-md);border-radius:999px;background:color-mix(in srgb,var(--vf-color-border) 12%,var(--vf-color-surface))}.vf-radio__dot{width:var(--vf-radio-dot-size);height:var(--vf-radio-dot-size);border-radius:999px;background:var(--vf-color-primary);transform:scale(.35);opacity:0;transition:opacity var(--vf-motion-duration-fast) var(--vf-motion-ease-standard),transform var(--vf-motion-duration-fast) var(--vf-motion-ease-standard)}.vf-radio__input:checked+.vf-radio__control{border-color:var(--vf-color-primary)}.vf-radio__input:checked+.vf-radio__control .vf-radio__dot{transform:scale(1);opacity:1}.vf-radio:hover:not(.vf-radio--disabled) .vf-radio__input:not(:checked)+.vf-radio__control{border-color:var(--vf-color-primary-border-soft)}.vf-radio__input:focus-visible+.vf-radio__control{outline:none;border-color:var(--vf-color-primary);box-shadow:0 0 0 var(--vf-focus-ring-width) var(--vf-color-focus-ring)}.vf-radio--invalid .vf-radio__control{border-color:var(--vf-color-danger)}.vf-radio--invalid:hover:not(.vf-radio--disabled) .vf-radio__input:not(:checked)+.vf-radio__control{border-color:var(--vf-color-primary-border-soft)}.vf-radio--sm .vf-radio__control{width:var(--vf-checkbox-size-sm);height:var(--vf-checkbox-size-sm)}.vf-radio--sm .vf-radio__content{font-size:var(--vf-control-font-size-sm)}.vf-radio--lg .vf-radio__control{width:var(--vf-checkbox-size-lg);height:var(--vf-checkbox-size-lg)}.vf-switch__control{width:var(--vf-switch-width-md);height:var(--vf-switch-height-md);border-radius:999px;background:color-mix(in srgb,var(--vf-color-text) 10%,var(--vf-color-surface))}.vf-switch__thumb{position:absolute;left:var(--vf-switch-thumb-inset);width:var(--vf-switch-thumb-size-md);height:var(--vf-switch-thumb-size-md);border-radius:999px;border:1px solid color-mix(in srgb,var(--vf-color-surface) 80%,var(--vf-color-border));background:color-mix(in srgb,var(--vf-color-surface) 88%,var(--vf-color-surface-muted));box-shadow:0 1px 2px color-mix(in srgb,var(--vf-color-text) 18%,transparent);transform:translate(0);transition:transform var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),background-color var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),border-color var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),box-shadow var(--vf-motion-duration-normal) var(--vf-motion-ease-standard)}.vf-switch__input:checked+.vf-switch__control{border-color:var(--vf-color-primary);background:var(--vf-color-primary)}.vf-switch__input:checked+.vf-switch__control .vf-switch__thumb{transform:translate(calc(var(--vf-switch-width-md) - var(--vf-switch-thumb-size-md) - (var(--vf-switch-thumb-inset) * 2)));border-color:color-mix(in srgb,var(--vf-color-primary) 12%,var(--vf-color-surface));background:var(--vf-color-surface);box-shadow:0 1px 1.5px color-mix(in srgb,var(--vf-color-text) 12%,transparent)}.vf-switch:hover:not(.vf-switch--disabled) .vf-switch__control{background:color-mix(in srgb,var(--vf-color-text) 12%,var(--vf-color-surface))}.vf-switch:hover:not(.vf-switch--disabled) .vf-switch__input:checked+.vf-switch__control{background:color-mix(in srgb,var(--vf-color-primary) 92%,var(--vf-color-surface))}.vf-switch__input:focus-visible+.vf-switch__control{outline:none;border-color:var(--vf-color-primary);box-shadow:0 0 0 var(--vf-focus-ring-width) var(--vf-color-focus-ring)}.vf-switch--sm .vf-switch__control{width:var(--vf-switch-width-sm);height:var(--vf-switch-height-sm)}.vf-switch--sm .vf-switch__thumb{left:var(--vf-switch-thumb-inset);width:var(--vf-switch-thumb-size-sm);height:var(--vf-switch-thumb-size-sm)}.vf-switch--sm .vf-switch__input:checked+.vf-switch__control .vf-switch__thumb{transform:translate(calc(var(--vf-switch-width-sm) - var(--vf-switch-thumb-size-sm) - (var(--vf-switch-thumb-inset) * 2)))}.vf-switch--sm .vf-switch__content{font-size:var(--vf-control-font-size-sm)}.vf-switch--lg .vf-switch__control{width:var(--vf-switch-width-lg);height:var(--vf-switch-height-lg)}.vf-switch--lg .vf-switch__thumb{left:var(--vf-switch-thumb-inset);width:var(--vf-switch-thumb-size-lg);height:var(--vf-switch-thumb-size-lg)}.vf-switch--lg .vf-switch__input:checked+.vf-switch__control .vf-switch__thumb{transform:translate(calc(var(--vf-switch-width-lg) - var(--vf-switch-thumb-size-lg) - (var(--vf-switch-thumb-inset) * 2)))}.vf-card{display:flex;flex-direction:column;gap:var(--vf-surface-gap);padding:var(--vf-surface-padding);border:1px solid var(--vf-color-border);border-radius:var(--vf-radius-surface);background:var(--vf-color-surface);color:var(--vf-color-text);line-height:var(--vf-text-line-height)}.vf-card--compact{padding:var(--vf-surface-padding-compact);gap:var(--vf-surface-gap-compact)}.vf-card__title{margin:0;font-size:var(--vf-card-title-font-size);font-weight:600;line-height:var(--vf-heading-line-height)}.vf-card__body{color:var(--vf-color-muted)}.vf-panel{display:flex;flex-direction:column;gap:var(--vf-surface-gap);padding:var(--vf-surface-padding);border:1px solid var(--vf-color-border);border-radius:var(--vf-radius-surface);background:var(--vf-color-surface);color:var(--vf-color-text);line-height:var(--vf-text-line-height)}.vf-panel--subtle{background:transparent;box-shadow:none}.vf-panel__title{margin:0;font-size:var(--vf-panel-title-font-size);font-weight:600;line-height:var(--vf-heading-line-height)}.vf-badge{display:inline-flex;align-items:center;gap:var(--vf-badge-gap);min-height:var(--vf-badge-height);padding:var(--vf-badge-padding);border-radius:var(--vf-badge-radius);font-size:var(--vf-badge-font-size);font-weight:600;line-height:var(--vf-badge-line-height);white-space:nowrap;background:var(--vf-color-surface-muted);border:1px solid var(--vf-color-border);color:var(--vf-color-text)}.vf-badge--primary{background:var(--vf-color-primary-soft);border-color:var(--vf-color-primary);color:var(--vf-color-primary)}.vf-badge--success{background:var(--vf-color-success-soft);border-color:var(--vf-color-success);color:var(--vf-color-success)}.vf-badge--info{background:var(--vf-color-info-soft);border-color:var(--vf-color-info);color:var(--vf-color-info)}.vf-badge--warn{background:var(--vf-color-warn-soft);border-color:var(--vf-color-warn);color:var(--vf-color-warn)}.vf-badge--help{background:var(--vf-color-help-soft);border-color:var(--vf-color-help);color:var(--vf-color-help)}.vf-badge--danger{background:var(--vf-color-danger-soft);border-color:var(--vf-color-danger);color:var(--vf-color-danger)}.vf-badge--contrast{background:var(--vf-color-contrast-soft);border-color:var(--vf-color-contrast);color:var(--vf-color-contrast)}.vf-tag{display:inline-flex;align-items:center;min-height:var(--vf-tag-height);padding:var(--vf-tag-padding);border:1px solid var(--vf-color-border);border-radius:var(--vf-radius-control-tight);background:var(--vf-color-surface);color:var(--vf-color-text);font-size:var(--vf-tag-font-size);line-height:var(--vf-tag-line-height);white-space:nowrap}.vf-tag--primary{border-color:var(--vf-color-primary);color:var(--vf-color-primary)}.vf-tag--success{border-color:var(--vf-color-success);color:var(--vf-color-success)}.vf-tag--info{border-color:var(--vf-color-info);color:var(--vf-color-info)}.vf-tag--warn{border-color:var(--vf-color-warn);color:var(--vf-color-warn)}.vf-tag--help{border-color:var(--vf-color-help);color:var(--vf-color-help)}.vf-tag--danger{border-color:var(--vf-color-danger);color:var(--vf-color-danger)}.vf-tag--contrast{border-color:var(--vf-color-contrast);color:var(--vf-color-contrast)}.vf-alert{display:grid;grid-template-columns:auto 1fr;gap:var(--vf-section-gap);padding:var(--vf-section-padding);border:1px solid var(--vf-alert-primary-border-soft);border-radius:var(--vf-radius-surface);background:var(--vf-alert-primary-soft);color:var(--vf-color-text);line-height:var(--vf-text-line-height)}.vf-alert--success{border-color:var(--vf-color-success-border-soft);background:var(--vf-color-success-soft)}.vf-alert--info{border-color:var(--vf-color-info-border-soft);background:var(--vf-color-info-soft)}.vf-alert--warn{border-color:var(--vf-color-warn-border-soft);background:var(--vf-color-warn-soft)}.vf-alert--help{border-color:var(--vf-color-help-border-soft);background:var(--vf-color-help-soft)}.vf-alert--danger{border-color:var(--vf-color-danger-border-soft);background:var(--vf-color-danger-soft)}.vf-alert--contrast{border-color:var(--vf-color-contrast-border-soft);background:var(--vf-color-contrast-soft)}.vf-alert__icon{display:inline-flex;align-items:center;justify-content:center;align-self:start;color:var(--vf-color-primary)}.vf-alert--success .vf-alert__icon{color:var(--vf-color-success)}.vf-alert--info .vf-alert__icon{color:var(--vf-color-info)}.vf-alert--warn .vf-alert__icon{color:var(--vf-color-warn)}.vf-alert--help .vf-alert__icon{color:var(--vf-color-help)}.vf-alert--danger .vf-alert__icon{color:var(--vf-color-danger)}.vf-alert--contrast .vf-alert__icon{color:var(--vf-color-contrast)}.vf-alert__content{display:grid;gap:var(--vf-alert-content-gap)}.vf-alert__title{margin:0;font-size:var(--vf-alert-title-font-size);font-weight:600;line-height:var(--vf-heading-line-height)}.vf-alert__body{color:var(--vf-color-muted);line-height:var(--vf-text-line-height)}.vf-divider{margin:0;border:0;background:var(--vf-color-border);flex-shrink:0}.vf-divider--horizontal{width:100%;height:1px}.vf-divider--vertical{width:1px;align-self:stretch}.vf-dialog{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--vf-z-overlay);display:flex;align-items:center;justify-content:center;padding:var(--vf-overlay-viewport-padding)}.vf-drawer{position:fixed;inset-inline:0;inset-block-end:0;inset-block-start:var(--vf-drawer-offset-top);z-index:var(--vf-z-drawer);display:flex;--vf-drawer-offset-x: 0;--vf-drawer-offset-y: 0}.vf-drawer--left{justify-content:flex-start;--vf-drawer-offset-x: -100%}.vf-drawer--right{justify-content:flex-end;--vf-drawer-offset-x: 100%}.vf-drawer--top{align-items:flex-start;--vf-drawer-offset-y: -100%}.vf-drawer--bottom{align-items:flex-end;--vf-drawer-offset-y: 100%}.vf-dialog__overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--vf-overlay-backdrop);opacity:1;transition:opacity var(--vf-motion-duration-fast) var(--vf-motion-ease-standard)}.vf-drawer__overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--vf-overlay-backdrop);opacity:1;transition:opacity var(--vf-motion-duration-normal) var(--vf-motion-ease-standard)}.vf-dialog__content{position:relative;z-index:1;display:flex;flex-direction:column;gap:var(--vf-overlay-gap);width:min(100%,var(--vf-dialog-width-md));max-height:var(--vf-dialog-max-height);overflow:auto;padding:var(--vf-overlay-padding);border:1px solid var(--vf-color-border);border-radius:var(--vf-radius-overlay);background:var(--vf-color-surface);color:var(--vf-color-text);line-height:var(--vf-text-line-height);opacity:1;transform:translateZ(0);transition:transform var(--vf-motion-duration-fast) var(--vf-motion-ease-standard),opacity var(--vf-motion-duration-fast) var(--vf-motion-ease-standard)}.vf-drawer__content{position:relative;z-index:1;display:flex;flex-direction:column;gap:var(--vf-overlay-gap);overflow:hidden;padding:0;border:1px solid var(--vf-color-border);border-radius:var(--vf-radius-overlay);background:var(--vf-color-surface);color:var(--vf-color-text);line-height:var(--vf-text-line-height);transform:translateZ(0);transition:transform var(--vf-motion-duration-normal) var(--vf-motion-ease-standard)}.vf-dialog-transition-enter-active,.vf-dialog-transition-leave-active{transition:none}.vf-dialog-transition-enter-from .vf-dialog__overlay,.vf-dialog-transition-leave-to .vf-dialog__overlay{opacity:0}.vf-dialog-transition-enter-from .vf-dialog__content,.vf-dialog-transition-leave-to .vf-dialog__content{opacity:0;transform:translate3d(0,.75rem,0)}.vf-drawer-transition-enter-active,.vf-drawer-transition-leave-active{transition:none}.vf-drawer-transition-enter-from .vf-drawer__overlay,.vf-drawer-transition-leave-to .vf-drawer__overlay{opacity:0}.vf-drawer-transition-enter-from .vf-drawer__content,.vf-drawer-transition-leave-to .vf-drawer__content{transform:translate3d(var(--vf-drawer-offset-x),var(--vf-drawer-offset-y),0)}.vf-dialog__content:focus-visible{outline:none;border-color:var(--vf-color-primary);box-shadow:0 0 0 var(--vf-focus-ring-width) var(--vf-color-focus-ring)}.vf-drawer__content:focus-visible{outline:none;border-color:var(--vf-color-primary);box-shadow:0 0 0 var(--vf-focus-ring-width) var(--vf-color-focus-ring)}.vf-dialog__content--sm{width:min(100%,var(--vf-dialog-width-sm))}.vf-dialog__content--lg{width:min(100%,var(--vf-dialog-width-lg))}.vf-drawer__content--left,.vf-drawer__content--right{width:min(100dvw,var(--vf-drawer-size-md));height:100%}.vf-drawer__content--left{border-left:none;border-top:none;border-bottom:none;border-top-right-radius:var( --vf-drawer-radius-top-right, var(--vf-radius-overlay) );border-bottom-right-radius:var( --vf-drawer-radius-bottom-right, var(--vf-radius-overlay) );border-top-left-radius:var(--vf-drawer-radius-top-left, 0);border-bottom-left-radius:var(--vf-drawer-radius-bottom-left, 0)}.vf-drawer__content--right{border-right:none;border-top:none;border-bottom:none;border-top-left-radius:var( --vf-drawer-radius-top-left, var(--vf-radius-overlay) );border-bottom-left-radius:var( --vf-drawer-radius-bottom-left, var(--vf-radius-overlay) );border-top-right-radius:var(--vf-drawer-radius-top-right, 0);border-bottom-right-radius:var(--vf-drawer-radius-bottom-right, 0)}.vf-drawer__content--top,.vf-drawer__content--bottom{width:100dvw;min-height:min(100%,var(--vf-drawer-size-md));max-height:100%}.vf-drawer__content--top{border-top:none;border-left:none;border-right:none;border-bottom-left-radius:var( --vf-drawer-radius-bottom-left, var(--vf-radius-overlay) );border-bottom-right-radius:var( --vf-drawer-radius-bottom-right, var(--vf-radius-overlay) );border-top-left-radius:var(--vf-drawer-radius-top-left, 0);border-top-right-radius:var(--vf-drawer-radius-top-right, 0)}.vf-drawer__content--bottom{border-bottom:none;border-left:none;border-right:none;border-top-left-radius:var( --vf-drawer-radius-top-left, var(--vf-radius-overlay) );border-top-right-radius:var( --vf-drawer-radius-top-right, var(--vf-radius-overlay) );border-bottom-left-radius:var(--vf-drawer-radius-bottom-left, 0);border-bottom-right-radius:var(--vf-drawer-radius-bottom-right, 0)}.vf-drawer--offset-top.vf-drawer--left .vf-drawer__content--left,.vf-drawer--offset-top.vf-drawer--right .vf-drawer__content--right,.vf-drawer--offset-top.vf-drawer--top .vf-drawer__content--top{border-top:1px solid var(--vf-color-border)}.vf-drawer__content--sm.vf-drawer__content--left,.vf-drawer__content--sm.vf-drawer__content--right{width:min(100dvw,var(--vf-drawer-size-sm))}.vf-drawer__content--lg.vf-drawer__content--left,.vf-drawer__content--lg.vf-drawer__content--right{width:min(100dvw,var(--vf-drawer-size-lg))}.vf-drawer__content--sm.vf-drawer__content--top,.vf-drawer__content--sm.vf-drawer__content--bottom{min-height:min(100dvh,var(--vf-drawer-size-sm))}.vf-drawer__content--lg.vf-drawer__content--top,.vf-drawer__content--lg.vf-drawer__content--bottom{min-height:min(100dvh,var(--vf-drawer-size-lg))}.vf-dialog__header,.vf-dialog__footer,.vf-drawer__header,.vf-drawer__footer{display:flex;align-items:center;justify-content:space-between;gap:var(--vf-dialog-header-gap)}.vf-dialog__actions,.vf-drawer__actions{display:inline-flex;align-items:center;gap:var(--vf-dialog-actions-gap)}.vf-dialog__actions .vf-icon-button,.vf-drawer__actions .vf-icon-button{color:var(--vf-color-muted)}.vf-dialog__actions .vf-icon-button .vif-icon,.vf-drawer__actions .vf-icon-button .vif-icon{width:1rem;height:1rem}.vf-dialog__actions .vf-icon-button:hover:not(:disabled),.vf-drawer__actions .vf-icon-button:hover:not(:disabled){background:var(--vf-color-surface-muted);border-color:var(--vf-color-border);color:var(--vf-color-text)}.vf-dialog__actions .vf-icon-button:active:not(:disabled),.vf-drawer__actions .vf-icon-button:active:not(:disabled){background:var(--vf-color-surface-muted);border-color:var(--vf-color-primary);color:var(--vf-color-primary)}.vf-dialog__title,.vf-drawer__title{margin:0;font-size:var(--vf-dialog-title-font-size);font-weight:700;line-height:var(--vf-heading-line-height)}.vf-dialog__description{margin:0;color:var(--vf-color-muted);line-height:var(--vf-text-line-height)}.vf-dialog__body,.vf-drawer__body{flex:1 1 auto;min-height:0;overflow:auto;color:var(--vf-color-text);line-height:var(--vf-text-line-height)}.vf-drawer__header,.vf-drawer__footer{padding:var(--vf-overlay-padding)}.vf-drawer__body{padding:var(--vf-drawer-body-padding)}.vf-dropdown,.vf-popover{position:relative;display:inline-flex;flex-direction:column}.vf-dropdown__trigger,.vf-popover__trigger{width:fit-content;border:1px solid transparent;border-radius:var(--vf-radius-control)}.vf-dropdown__trigger:focus-visible,.vf-popover__trigger:focus-visible{outline:none;border-color:var(--vf-color-primary);box-shadow:0 0 0 var(--vf-focus-ring-width) var(--vf-color-focus-ring)}.vf-dropdown__menu{position:fixed;top:0;left:0;z-index:var(--vf-z-dropdown);display:flex;flex-direction:column;gap:var(--vf-menu-gap);min-width:var(--vf-menu-min-width);padding:var(--vf-menu-padding);border:1px solid var(--vf-color-border);border-radius:var(--vf-radius-control);background:var(--vf-color-surface);opacity:1;transform:translateZ(0) scale(1);transition:transform var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),opacity var(--vf-motion-duration-normal) var(--vf-motion-ease-standard);will-change:left,top}.vf-dropdown__arrow{position:absolute;z-index:0;width:var(--vf-floating-arrow-size);height:var(--vf-floating-arrow-size);background:var(--vf-color-surface);border-left:1px solid var(--vf-color-border);border-top:1px solid var(--vf-color-border);transform:rotate(45deg);pointer-events:none}.vf-dropdown__arrow--bottom{margin-top:-1px}.vf-dropdown__arrow--top{margin-top:1px}.vf-popover__content{position:fixed;left:0;top:0;z-index:var(--vf-z-popover);width:var(--vf-popover-width);padding:var(--vf-section-padding);border:1px solid var(--vf-color-border);border-radius:var(--vf-radius-surface);background:var(--vf-color-surface);color:var(--vf-color-text);line-height:var(--vf-text-line-height);opacity:1;transform:translateZ(0) scale(1);transition:transform var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),opacity var(--vf-motion-duration-normal) var(--vf-motion-ease-standard);will-change:left,top}.vf-popover__arrow{position:absolute;width:var(--vf-floating-arrow-size);height:var(--vf-floating-arrow-size);background:var(--vf-color-surface);border-left:1px solid var(--vf-color-border);border-top:1px solid var(--vf-color-border);transform:rotate(45deg);pointer-events:none}.vf-popover__arrow--bottom{margin-top:-1px}.vf-popover__arrow--top{margin-top:1px}.vf-dropdown__item{position:relative;z-index:1;display:flex;align-items:center;width:100%;min-height:var(--vf-control-height-sm);padding:var(--vf-field-padding-sm);border:1px solid transparent;border-radius:var(--vf-radius-control-tight);background:transparent;color:var(--vf-color-text);text-align:left;cursor:pointer}.vf-dropdown__item:hover{background:transparent;color:var(--vf-color-primary)}.vf-dropdown__item:focus-visible{outline:none;border-color:var(--vf-color-primary);box-shadow:0 0 0 var(--vf-focus-ring-width) var(--vf-color-focus-ring);background:transparent;color:var(--vf-color-primary)}.vf-tooltip{position:relative;display:inline-flex;width:fit-content;max-width:100%;align-self:flex-start}.vf-tooltip__trigger{display:inline-flex;width:fit-content;max-width:100%}.vf-tooltip__content{position:fixed;left:0;top:0;z-index:var(--vf-z-tooltip);max-width:var(--vf-tooltip-max-width);padding:var(--vf-tooltip-padding);border-radius:var(--vf-radius-control-tight);background:var(--vf-color-text);color:var(--vf-color-bg);font-size:var(--vf-tooltip-font-size);line-height:var(--vf-tooltip-line-height);opacity:1;transform:translateZ(0) scale(1);transition:transform var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),opacity var(--vf-motion-duration-normal) var(--vf-motion-ease-standard);will-change:left,top}.vf-floating-transition-enter-from.vf-dropdown__menu,.vf-floating-transition-leave-to.vf-dropdown__menu,.vf-floating-transition-enter-from.vf-popover__content,.vf-floating-transition-leave-to.vf-popover__content,.vf-floating-transition-enter-from.vf-tooltip__content,.vf-floating-transition-leave-to.vf-tooltip__content{opacity:0;transform:translate3d(0,.25rem,0) scale(.97)}.vf-tooltip__arrow{position:absolute;width:var(--vf-floating-arrow-size);height:var(--vf-floating-arrow-size);background:var(--vf-color-text);transform:rotate(45deg);pointer-events:none}.vf-accordion{border:1px solid var(--vf-color-border);border-radius:var(--vf-radius-surface);background:var(--vf-color-surface);color:var(--vf-color-text)}.vf-accordion__trigger{display:flex;align-items:center;justify-content:space-between;gap:var(--vf-spacing);position:relative;z-index:1;width:100%;padding:var(--vf-section-padding);border:1px solid transparent;border-radius:inherit;background:transparent;color:inherit;cursor:pointer;text-align:left}.vf-accordion__trigger[aria-expanded=true]{border-bottom-left-radius:0;border-bottom-right-radius:0}.vf-accordion__trigger:hover:not(:disabled){background:transparent;color:var(--vf-color-primary)}.vf-accordion__trigger:focus-visible{z-index:2;outline:none;border-color:var(--vf-color-primary);box-shadow:0 0 0 var(--vf-focus-ring-width) var(--vf-color-focus-ring)}.vf-accordion__icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:1rem;height:1rem;line-height:1;color:var(--vf-color-muted);transition:transform var(--vf-motion-duration-normal) var(--vf-motion-ease-standard)}.vf-accordion__icon .vif-icon{width:1rem;height:1rem}.vf-accordion__icon--open{transform:rotate(180deg)}.vf-accordion__content{overflow:hidden;border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;background:var(--vf-color-surface)}.vf-accordion__content-inner{position:relative;z-index:1;border-top:1px solid var(--vf-color-border);padding:var(--vf-section-padding);color:var(--vf-color-muted);line-height:var(--vf-text-line-height)}.vf-tabs{display:flex;flex-direction:column;gap:var(--vf-tabs-gap)}.vf-tabs__list{display:inline-flex;align-items:center;gap:var(--vf-tabs-list-gap);width:fit-content;padding:var(--vf-tabs-list-padding);border:1px solid var(--vf-color-border);border-radius:var(--vf-radius-overlay);background:var(--vf-color-surface-muted)}.vf-tabs__tab{display:inline-flex;align-items:center;justify-content:center;min-height:var(--vf-control-height-md);padding:0 var(--vf-tabs-tab-padding-inline);border:1px solid transparent;border-radius:var(--vf-radius-control-tight);background:transparent;color:var(--vf-color-muted);cursor:pointer;white-space:nowrap;line-height:var(--vf-tabs-line-height);transition:background-color var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),color var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),border-color var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),box-shadow var(--vf-motion-duration-normal) var(--vf-motion-ease-standard)}.vf-tabs__tab:hover:not(:disabled){color:var(--vf-color-primary);background:transparent}.vf-tabs__tab[aria-selected=true]{background:var(--vf-color-surface);color:var(--vf-color-primary);border:1px solid var(--vf-color-primary)}.vf-tabs__tab:focus-visible{outline:none;border-color:var(--vf-color-primary);box-shadow:0 0 0 var(--vf-focus-ring-width) var(--vf-color-focus-ring)}.vf-tabs__tab:disabled{cursor:not-allowed;opacity:.5}.vf-tabs__panel{border:1px solid transparent;border-radius:var(--vf-radius-control);padding:var(--vf-tabs-panel-padding-top) 0 0;color:var(--vf-color-text);line-height:var(--vf-text-line-height)}.vf-tabs__panel:focus-visible{outline:none;border-color:var(--vf-color-primary);box-shadow:0 0 0 var(--vf-focus-ring-width) var(--vf-color-focus-ring)}.vf-nav-menu{display:flex;flex-direction:column;width:100%;min-width:0}.vf-nav-menu__list{display:grid;gap:var(--vf-nav-menu-list-gap);margin:0;padding:0;list-style:none}.vf-nav-menu__list--nested{margin-top:0;gap:var(--vf-nav-menu-nested-gap);padding-top:0}.vf-nav-menu__collapse{overflow:hidden;margin-top:var(--vf-nav-menu-collapse-offset-top)}.vf-nav-menu__collapse--level-0{margin-left:var(--vf-nav-menu-collapse-inset-level-0-margin);padding-left:var(--vf-nav-menu-collapse-inset-level-0-padding)}.vf-nav-menu--simple .vf-nav-menu__collapse--level-0{margin-left:var(--vf-nav-menu-collapse-inset-simple-level-0-margin);padding-left:var(--vf-nav-menu-collapse-inset-simple-level-0-padding)}.vf-nav-menu__collapse:not(.vf-nav-menu__collapse--level-0){margin-left:var(--vf-nav-menu-collapse-inset-deep-margin);padding-left:var(--vf-nav-menu-collapse-inset-deep-padding)}.vf-nav-menu--simple .vf-nav-menu__collapse:not(.vf-nav-menu__collapse--level-0){margin-left:var(--vf-nav-menu-collapse-inset-simple-deep-margin);padding-left:var(--vf-nav-menu-collapse-inset-simple-deep-padding)}.vf-nav-menu__node{display:block}.vf-nav-menu__node:has(.vf-nav-menu__group)+.vf-nav-menu__node:has(.vf-nav-menu__group){margin-top:var(--vf-nav-menu-node-group-spacing)}.vf-nav-menu__collapse>.vf-nav-menu__list--nested>.vf-nav-menu__node:first-child>.vf-nav-menu__group{padding-top:0}.vf-nav-menu__group{display:flex;align-items:center;min-height:var(--vf-control-height-sm);padding:var(--vf-nav-menu-group-padding);cursor:default}.vf-nav-menu__group-label{font-size:var(--vf-nav-menu-group-font-size);font-weight:400;letter-spacing:0;color:color-mix(in srgb,var(--vf-color-muted) 88%,var(--vf-color-text))}.vf-nav-menu__item-content{display:inline-flex;align-items:center;gap:var(--vf-nav-menu-item-gap);min-width:0}.vf-nav-menu__leading-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--vf-nav-menu-leading-icon-column-size);min-width:var(--vf-nav-menu-leading-icon-column-size);color:currentColor}.vf-nav-menu__leading-icon .vif-icon{width:var(--vf-nav-menu-leading-icon-size);height:var(--vf-nav-menu-leading-icon-size)}.vf-nav-menu__item{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:var(--vf-control-height-sm);padding:var(--vf-nav-menu-item-padding);border:1px solid transparent;border-radius:var(--vf-radius-control);background:transparent;font-size:1rem;color:var(--vf-color-muted);text-align:left;text-decoration:none;cursor:pointer;transition:background-color var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),color var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),border-color var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),box-shadow var(--vf-motion-duration-normal) var(--vf-motion-ease-standard)}.vf-nav-menu__item:hover:not(:disabled):not(.vf-nav-menu__item--active){color:var(--vf-color-primary);background:color-mix(in srgb,var(--vf-color-primary) 12%,var(--vf-color-surface))}.vf-nav-menu__item:focus-visible{outline:none;border-color:var(--vf-color-primary);box-shadow:0 0 0 var(--vf-focus-ring-width) var(--vf-color-focus-ring)}.vf-nav-menu__item--active{color:var(--vf-color-primary);background:color-mix(in srgb,var(--vf-color-primary) 16%,var(--vf-color-surface))}.vf-nav-menu__item--disabled{cursor:not-allowed;opacity:.5}.vf-nav-menu__item--branch{font-weight:400;color:color-mix(in srgb,var(--vf-color-text) 82%,var(--vf-color-muted))}.vf-nav-menu__label{min-width:0;overflow-wrap:anywhere}.vf-nav-menu__icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:1rem;height:1rem;line-height:1;color:var(--vf-color-muted);transition:transform var(--vf-motion-duration-normal) var(--vf-motion-ease-standard)}.vf-nav-menu__icon .vif-icon{width:1rem;height:1rem}.vf-nav-menu__icon--open{transform:rotate(180deg)}
package/dist/theme-api.js CHANGED
@@ -59,21 +59,21 @@ const e = {
59
59
  controlFontSizeSm: "0.875rem",
60
60
  controlFontSizeMd: "0.9375rem",
61
61
  controlFontSizeLg: "1rem",
62
- buttonPaddingSm: "0.25rem 0.55rem",
62
+ buttonPaddingSm: "0.25rem 0.5rem",
63
63
  buttonPaddingMd: "0.375rem 0.75rem",
64
- buttonPaddingLg: "0.5rem 0.875rem",
64
+ buttonPaddingLg: "0.5rem 1rem",
65
65
  buttonGap: "0.5rem",
66
- fieldPaddingSm: "0.25rem 0.55rem",
67
- fieldPaddingMd: "0.375rem 0.65rem",
68
- fieldPaddingLg: "0.5rem 0.75rem",
66
+ fieldPaddingSm: "0.25rem 0.5rem",
67
+ fieldPaddingMd: "0.375rem 0.75rem",
68
+ fieldPaddingLg: "0.5rem 1rem",
69
69
  checkboxSizeSm: "1rem",
70
70
  checkboxSizeMd: "1.125rem",
71
71
  checkboxSizeLg: "1.25rem",
72
- selectionGap: "0.65rem",
73
- checkboxMarkWidth: "0.3rem",
74
- checkboxMarkHeight: "0.55rem",
72
+ selectionGap: "0.75rem",
73
+ checkboxMarkWidth: "0.25rem",
74
+ checkboxMarkHeight: "0.5rem",
75
75
  checkboxMarkStrokeWidth: "2px",
76
- checkboxMarkOffsetY: "-0.05rem",
76
+ checkboxMarkOffsetY: "-0.0625rem",
77
77
  radioDotSize: "0.5rem",
78
78
  switchWidthSm: "2rem",
79
79
  switchWidthMd: "2.25rem",
@@ -84,56 +84,56 @@ const e = {
84
84
  switchThumbSizeSm: "0.75rem",
85
85
  switchThumbSizeMd: "0.875rem",
86
86
  switchThumbSizeLg: "1rem",
87
- switchThumbInset: "0.1875rem",
87
+ switchThumbInset: "0.125rem",
88
88
  textareaMinHeightSm: "4.5rem",
89
89
  textareaMinHeightMd: "6rem",
90
90
  textareaMinHeightLg: "7rem",
91
- overlayPadding: "0.875rem",
91
+ overlayPadding: "1rem",
92
92
  overlayGap: "0.75rem",
93
93
  overlayViewportPadding: "1rem",
94
- menuPadding: "0.4rem",
95
- menuGap: "0.2rem",
94
+ menuPadding: "0.5rem",
95
+ menuGap: "0.25rem",
96
96
  menuMinWidth: "12rem",
97
- surfacePadding: "0.95rem",
98
- surfaceGap: "0.625rem",
99
- surfacePaddingCompact: "0.7rem",
97
+ surfacePadding: "1rem",
98
+ surfaceGap: "0.75rem",
99
+ surfacePaddingCompact: "0.75rem",
100
100
  surfaceGapCompact: "0.5rem",
101
- sectionPadding: "0.75rem 0.9rem",
101
+ sectionPadding: "0.75rem 1rem",
102
102
  sectionGap: "0.75rem",
103
- tabsGap: "0.875rem",
104
- tabsListGap: "0.375rem",
103
+ tabsGap: "0.75rem",
104
+ tabsListGap: "0.25rem",
105
105
  tabsListPadding: "0.25rem",
106
- tabsTabPaddingInline: "0.8rem",
106
+ tabsTabPaddingInline: "0.75rem",
107
107
  tabsPanelPaddingTop: "0.75rem",
108
- navMenuListGap: "0.2rem",
109
- navMenuNestedGap: "0.15rem",
110
- navMenuCollapseOffsetTop: "0.1rem",
111
- navMenuCollapseInsetLevel0Margin: "1.275rem",
112
- navMenuCollapseInsetLevel0Padding: "0.7rem",
108
+ navMenuListGap: "0.25rem",
109
+ navMenuNestedGap: "0.25rem",
110
+ navMenuCollapseOffsetTop: "0.125rem",
111
+ navMenuCollapseInsetLevel0Margin: "1.25rem",
112
+ navMenuCollapseInsetLevel0Padding: "0.75rem",
113
113
  navMenuCollapseInsetSimpleLevel0Margin: "0.75rem",
114
- navMenuCollapseInsetSimpleLevel0Padding: "0.45rem",
115
- navMenuCollapseInsetDeepMargin: "0.35rem",
116
- navMenuCollapseInsetDeepPadding: "0.35rem",
117
- navMenuCollapseInsetSimpleDeepMargin: "0.2rem",
118
- navMenuCollapseInsetSimpleDeepPadding: "0.2rem",
119
- navMenuNodeGroupSpacing: "0.1rem",
120
- navMenuGroupPadding: "0.35rem 0.65rem",
114
+ navMenuCollapseInsetSimpleLevel0Padding: "0.5rem",
115
+ navMenuCollapseInsetDeepMargin: "0.25rem",
116
+ navMenuCollapseInsetDeepPadding: "0.25rem",
117
+ navMenuCollapseInsetSimpleDeepMargin: "0.25rem",
118
+ navMenuCollapseInsetSimpleDeepPadding: "0.25rem",
119
+ navMenuNodeGroupSpacing: "0.25rem",
120
+ navMenuGroupPadding: "0.375rem 0.75rem",
121
121
  navMenuGroupFontSize: "0.875rem",
122
- navMenuItemPadding: "0.35rem 0.65rem",
123
- navMenuItemGap: "0.55rem",
122
+ navMenuItemPadding: "0.375rem 0.75rem",
123
+ navMenuItemGap: "0.5rem",
124
124
  navMenuLeadingIconSize: "1rem",
125
125
  navMenuLeadingIconColumnSize: "1.25rem",
126
- badgeHeight: "1.625rem",
127
- badgePadding: "0.2rem 0.55rem",
128
- badgeGap: "0.375rem",
126
+ badgeHeight: "1.5rem",
127
+ badgePadding: "0.25rem 0.5rem",
128
+ badgeGap: "0.25rem",
129
129
  badgeRadius: "999px",
130
130
  badgeFontSize: "0.8125rem",
131
131
  badgeLineHeight: "1.2",
132
132
  tagHeight: "1.75rem",
133
- tagPadding: "0.25rem 0.6rem",
133
+ tagPadding: "0.25rem 0.5rem",
134
134
  tagFontSize: "0.8125rem",
135
135
  tagLineHeight: "1.2",
136
- tooltipPadding: "0.45rem 0.65rem",
136
+ tooltipPadding: "0.5rem 0.75rem",
137
137
  tooltipMaxWidth: "16rem",
138
138
  tooltipFontSize: "0.8125rem",
139
139
  tooltipLineHeight: "1.4",