nuxt-i18n-micro 1.95.0 → 1.97.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.
@@ -1,12 +1,12 @@
1
1
  <!DOCTYPE html><html><head><meta charset="utf-8">
2
2
  <meta name="viewport" content="width=device-width, initial-scale=1">
3
- <link rel="stylesheet" href="/__NUXT_DEVTOOLS_I18N_BASE__/_nuxt/entry.BVfqTszp.css" crossorigin>
4
- <link rel="modulepreload" as="script" crossorigin href="/__NUXT_DEVTOOLS_I18N_BASE__/_nuxt/ub4zB43c.js">
3
+ <link rel="stylesheet" href="/__NUXT_DEVTOOLS_I18N_BASE__/_nuxt/entry.wlACWN2Y.css" crossorigin>
4
+ <link rel="modulepreload" as="script" crossorigin href="/__NUXT_DEVTOOLS_I18N_BASE__/_nuxt/ivw-WKkv.js">
5
5
  <link rel="prefetch" as="script" crossorigin href="/__NUXT_DEVTOOLS_I18N_BASE__/_nuxt/l5rcX3cq.js">
6
6
  <link rel="prefetch" as="style" crossorigin href="/__NUXT_DEVTOOLS_I18N_BASE__/_nuxt/error-404.B2VbLYbY.css">
7
- <link rel="prefetch" as="script" crossorigin href="/__NUXT_DEVTOOLS_I18N_BASE__/_nuxt/vPnhRBON.js">
8
- <link rel="prefetch" as="script" crossorigin href="/__NUXT_DEVTOOLS_I18N_BASE__/_nuxt/ln-kJldz.js">
7
+ <link rel="prefetch" as="script" crossorigin href="/__NUXT_DEVTOOLS_I18N_BASE__/_nuxt/DefIAjUZ.js">
8
+ <link rel="prefetch" as="script" crossorigin href="/__NUXT_DEVTOOLS_I18N_BASE__/_nuxt/BrUpQP6I.js">
9
9
  <link rel="prefetch" as="style" crossorigin href="/__NUXT_DEVTOOLS_I18N_BASE__/_nuxt/error-500.DGwSTbEi.css">
10
- <link rel="prefetch" as="script" crossorigin href="/__NUXT_DEVTOOLS_I18N_BASE__/_nuxt/vj59o92Y.js">
11
- <script type="module" src="/__NUXT_DEVTOOLS_I18N_BASE__/_nuxt/ub4zB43c.js" crossorigin></script></head><body><div id="__nuxt"></div><div id="teleports"></div><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1757064792248,false]</script>
12
- <script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/__NUXT_DEVTOOLS_I18N_BASE__/",buildId:"8fbea335-44f1-4fd8-b7cd-6d710a51cf44",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script></body></html>
10
+ <link rel="prefetch" as="script" crossorigin href="/__NUXT_DEVTOOLS_I18N_BASE__/_nuxt/C0zq22yw.js">
11
+ <script type="module" src="/__NUXT_DEVTOOLS_I18N_BASE__/_nuxt/ivw-WKkv.js" crossorigin></script></head><body><div id="__nuxt"></div><div id="teleports"></div><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1758813952165,false]</script>
12
+ <script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/__NUXT_DEVTOOLS_I18N_BASE__/",buildId:"6376a03b-f005-4f0f-b051-3b017577666c",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script></body></html>
package/dist/module.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "nuxt-i18n-micro",
3
3
  "configKey": "i18n",
4
- "version": "1.95.0",
4
+ "version": "1.97.0",
5
5
  "builder": {
6
6
  "@nuxt/module-builder": "1.0.2",
7
7
  "unbuild": "3.6.1"
package/dist/module.mjs CHANGED
@@ -108,7 +108,46 @@ function setupDevToolsUI(options, resolve2) {
108
108
  });
109
109
  }
110
110
 
111
- const isInternalPath = (p) => /(?:^|\/)__[^/]+/.test(p);
111
+ const DEFAULT_STATIC_PATTERNS = [
112
+ /^\/sitemap.*\.xml$/,
113
+ /^\/sitemap\.xml$/,
114
+ /^\/robots\.txt$/,
115
+ /^\/favicon\.ico$/,
116
+ /^\/apple-touch-icon.*\.png$/,
117
+ /^\/manifest\.json$/,
118
+ /^\/sw\.js$/,
119
+ /^\/workbox-.*\.js$/,
120
+ /\.(xml|txt|ico|json|js|css|png|jpg|jpeg|gif|svg|woff|woff2|ttf|eot)$/
121
+ ];
122
+ const isInternalPath = (path2, excludePatterns) => {
123
+ if (/(?:^|\/)__[^/]+/.test(path2)) {
124
+ return true;
125
+ }
126
+ for (const pattern of DEFAULT_STATIC_PATTERNS) {
127
+ if (pattern.test(path2)) {
128
+ return true;
129
+ }
130
+ }
131
+ if (excludePatterns) {
132
+ for (const pattern of excludePatterns) {
133
+ if (typeof pattern === "string") {
134
+ if (pattern.includes("*") || pattern.includes("?")) {
135
+ const regex = new RegExp(pattern.replace(/\*/g, ".*").replace(/\?/g, "."));
136
+ if (regex.test(path2)) {
137
+ return true;
138
+ }
139
+ } else if (path2 === pattern || path2.startsWith(pattern)) {
140
+ return true;
141
+ }
142
+ } else if (pattern instanceof RegExp) {
143
+ if (pattern.test(path2)) {
144
+ return true;
145
+ }
146
+ }
147
+ }
148
+ }
149
+ return false;
150
+ };
112
151
  function extractLocaleRoutes(content, filePath) {
113
152
  const defineMatch = content.match(/\$?\bdefineI18nRoute\s*\(\s*\{[\s\S]*?\}\s*\)/);
114
153
  if (defineMatch) {
@@ -177,11 +216,13 @@ class PageManager {
177
216
  activeLocaleCodes;
178
217
  globalLocaleRoutes;
179
218
  noPrefixRedirect;
180
- constructor(locales, defaultLocaleCode, strategy, globalLocaleRoutes, noPrefixRedirect) {
219
+ excludePatterns;
220
+ constructor(locales, defaultLocaleCode, strategy, globalLocaleRoutes, noPrefixRedirect, excludePatterns) {
181
221
  this.locales = locales;
182
222
  this.defaultLocale = this.findLocaleByCode(defaultLocaleCode) || { code: defaultLocaleCode };
183
223
  this.strategy = strategy;
184
224
  this.noPrefixRedirect = noPrefixRedirect;
225
+ this.excludePatterns = excludePatterns;
185
226
  this.activeLocaleCodes = this.computeActiveLocaleCodes();
186
227
  this.globalLocaleRoutes = globalLocaleRoutes || {};
187
228
  }
@@ -200,7 +241,7 @@ class PageManager {
200
241
  this.localizedPaths = this.extractLocalizedPaths(pages);
201
242
  const additionalRoutes = [];
202
243
  for (const page of [...pages]) {
203
- if (page.path && isInternalPath(page.path)) {
244
+ if (page.path && isInternalPath(page.path, this.excludePatterns)) {
204
245
  continue;
205
246
  }
206
247
  if (!page.name && page.file?.endsWith(".vue")) {
@@ -222,7 +263,7 @@ class PageManager {
222
263
  if (!page) continue;
223
264
  const pagePath = page.path ?? "";
224
265
  const pageName = page.name ?? "";
225
- if (isInternalPath(pagePath)) continue;
266
+ if (isInternalPath(pagePath, this.excludePatterns)) continue;
226
267
  if (this.globalLocaleRoutes[pageName] === false) continue;
227
268
  if (!/^\/:locale/.test(pagePath) && pagePath !== "/") {
228
269
  pages.splice(i, 1);
@@ -578,7 +619,8 @@ const module = defineNuxtModule({
578
619
  if (!selectedForm) return null;
579
620
  return selectedForm.trim().replace("{count}", count.toString());
580
621
  },
581
- customRegexMatcher: void 0
622
+ customRegexMatcher: void 0,
623
+ excludePatterns: void 0
582
624
  },
583
625
  async setup(options, nuxt) {
584
626
  const defaultLocale = process.env.DEFAULT_LOCALE ?? options.defaultLocale ?? "en";
@@ -596,7 +638,7 @@ const module = defineNuxtModule({
596
638
  const resolver = createResolver(import.meta.url);
597
639
  const rootDirs = nuxt.options._layers.map((layer) => layer.config.rootDir).reverse();
598
640
  const localeManager = new LocaleManager(options, rootDirs);
599
- const pageManager = new PageManager(localeManager.locales, defaultLocale, options.strategy, options.globalLocaleRoutes, options.noPrefixRedirect);
641
+ const pageManager = new PageManager(localeManager.locales, defaultLocale, options.strategy, options.globalLocaleRoutes, options.noPrefixRedirect, options.excludePatterns);
600
642
  addTemplate({
601
643
  filename: "i18n.plural.mjs",
602
644
  write: true,
@@ -620,7 +662,8 @@ const module = defineNuxtModule({
620
662
  apiBaseUrl,
621
663
  isSSG,
622
664
  disablePageLocales: options.disablePageLocales ?? false,
623
- canonicalQueryWhitelist: options.canonicalQueryWhitelist ?? []
665
+ canonicalQueryWhitelist: options.canonicalQueryWhitelist ?? [],
666
+ excludePatterns: options.excludePatterns ?? []
624
667
  };
625
668
  if (typeof options.customRegexMatcher !== "undefined") {
626
669
  const localeCodes = localeManager.locales.map((l) => l.code);
@@ -734,7 +777,7 @@ const module = defineNuxtModule({
734
777
  const processPageWithChildren = (page, parentPath = "") => {
735
778
  if (!page.path) return;
736
779
  const fullPath = path.posix.normalize(`${parentPath}/${page.path}`);
737
- if (isInternalPath(fullPath)) {
780
+ if (isInternalPath(fullPath, options.excludePatterns)) {
738
781
  return;
739
782
  }
740
783
  const routeRule = routeRules[fullPath];
@@ -753,13 +796,13 @@ const module = defineNuxtModule({
753
796
  if (localizedRouteRule && localizedRouteRule.prerender === false) {
754
797
  return;
755
798
  }
756
- if (!isInternalPath(localizedPath)) {
799
+ if (!isInternalPath(localizedPath, options.excludePatterns)) {
757
800
  prerenderRoutes.push(localizedPath);
758
801
  }
759
802
  }
760
803
  });
761
804
  } else {
762
- if (!isInternalPath(fullPath)) {
805
+ if (!isInternalPath(fullPath, options.excludePatterns)) {
763
806
  prerenderRoutes.push(fullPath);
764
807
  }
765
808
  }
@@ -883,7 +926,7 @@ const module = defineNuxtModule({
883
926
  const routesSet = prerenderRoutes.routes;
884
927
  const routesToRemove = [];
885
928
  routesSet.forEach((route) => {
886
- if (isInternalPath(route)) {
929
+ if (isInternalPath(route, options.excludePatterns)) {
887
930
  routesToRemove.push(route);
888
931
  }
889
932
  });
@@ -891,7 +934,7 @@ const module = defineNuxtModule({
891
934
  const additionalRoutes = /* @__PURE__ */ new Set();
892
935
  const routeRules = nuxt.options.routeRules || {};
893
936
  routesSet.forEach((route) => {
894
- if (!/\.[a-z0-9]+$/i.test(route) && !isInternalPath(route)) {
937
+ if (!/\.[a-z0-9]+$/i.test(route) && !isInternalPath(route, options.excludePatterns)) {
895
938
  localeManager.locales.forEach((locale) => {
896
939
  const shouldGenerate = locale.code !== defaultLocale || withPrefixStrategy(options.strategy);
897
940
  if (shouldGenerate) {
@@ -3,13 +3,22 @@
3
3
  </template>
4
4
 
5
5
  <script setup>
6
- import { useRoute, useI18n, createError, navigateTo } from "#imports";
6
+ import { useRoute, useI18n, createError, navigateTo, useRuntimeConfig } from "#imports";
7
+ import { isInternalPath } from "../../utils";
7
8
  const route = useRoute();
8
9
  const { $getLocales, $defaultLocale } = useI18n();
10
+ const config = useRuntimeConfig();
9
11
  const locales = $getLocales().map((locale) => locale.code);
10
12
  const defaultLocale = $defaultLocale() || "en";
11
13
  const pathSegments = route.fullPath.split("/");
12
14
  const firstSegment = pathSegments[1];
15
+ const excludePatterns = config.public.i18nConfig?.excludePatterns;
16
+ if (isInternalPath(route.fullPath, excludePatterns)) {
17
+ throw createError({
18
+ statusCode: 404,
19
+ statusMessage: "Static file - should not be processed by i18n"
20
+ });
21
+ }
13
22
  const generateRouteName = (segments) => {
14
23
  return segments.slice(1).map((segment) => segment.replace(/:/g, "")).join("-");
15
24
  };
@@ -22,7 +22,8 @@ export function useI18n() {
22
22
  $switchLocale: nuxtApp.$switchLocale,
23
23
  $switchRoute: nuxtApp.$switchRoute,
24
24
  $localeRoute: nuxtApp.$localeRoute,
25
- $localePath: nuxtApp.$localePath
25
+ $localePath: nuxtApp.$localePath,
26
+ $loadPageTranslations: nuxtApp.$loadPageTranslations
26
27
  };
27
28
  const noDollarInjections = Object.fromEntries(
28
29
  Object.entries(injections).map(([key, value]) => [key.slice(1), value])
@@ -27,6 +27,7 @@ declare const _default: import("nuxt/app").Plugin<{
27
27
  localeRoute: (to: RouteLocationNamedRaw | RouteLocationResolvedGeneric | string, locale?: string) => RouteLocationResolved;
28
28
  localePath: (to: RouteLocationNamedRaw | RouteLocationResolvedGeneric | string, locale?: string) => string;
29
29
  setI18nRouteParams: (value: I18nRouteParams) => I18nRouteParams;
30
+ loadPageTranslations: (locale: string, routeName: string, translations: Translations) => Promise<void>;
30
31
  }> & import("nuxt/app").ObjectPlugin<{
31
32
  i18n: undefined;
32
33
  __micro: boolean;
@@ -54,6 +55,7 @@ declare const _default: import("nuxt/app").Plugin<{
54
55
  localeRoute: (to: RouteLocationNamedRaw | RouteLocationResolvedGeneric | string, locale?: string) => RouteLocationResolved;
55
56
  localePath: (to: RouteLocationNamedRaw | RouteLocationResolvedGeneric | string, locale?: string) => string;
56
57
  setI18nRouteParams: (value: I18nRouteParams) => I18nRouteParams;
58
+ loadPageTranslations: (locale: string, routeName: string, translations: Translations) => Promise<void>;
57
59
  }>;
58
60
  export default _default;
59
61
  export interface PluginsInjections {
@@ -80,4 +82,5 @@ export interface PluginsInjections {
80
82
  $localeRoute: (to: RouteLocationNamedRaw | RouteLocationResolvedGeneric | string, locale?: string) => RouteLocationResolved;
81
83
  $localePath: (to: RouteLocationNamedRaw | RouteLocationResolvedGeneric | string, locale?: string) => string;
82
84
  $setI18nRouteParams: (value: I18nRouteParams) => I18nRouteParams;
85
+ $loadPageTranslations: (locale: string, routeName: string, translations: Translations) => Promise<void>;
83
86
  }
@@ -218,6 +218,9 @@ export default defineNuxtPlugin(async (nuxtApp) => {
218
218
  setI18nRouteParams: (value) => {
219
219
  i18nRouteParams.value = value;
220
220
  return i18nRouteParams.value;
221
+ },
222
+ loadPageTranslations: async (locale, routeName, translations) => {
223
+ await i18nHelper.loadPageTranslations(locale, routeName, translations);
221
224
  }
222
225
  };
223
226
  const $provideData = Object.fromEntries(
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nuxt-i18n-micro",
3
- "version": "1.95.0",
3
+ "version": "1.97.0",
4
4
  "description": "Nuxt I18n Micro is a lightweight, high-performance internationalization module for Nuxt, designed to handle multi-language support with minimal overhead, fast build times, and efficient runtime performance.",
5
5
  "repository": "s00d/nuxt-i18n-micro",
6
6
  "license": "MIT",
@@ -61,9 +61,9 @@
61
61
  "globby": "^14.1.0",
62
62
  "sirv": "^2.0.4",
63
63
  "ufo": "^1.5.4",
64
- "nuxt-i18n-micro-types": "1.0.6",
64
+ "nuxt-i18n-micro-core": "1.0.18",
65
65
  "nuxt-i18n-micro-test-utils": "1.0.6",
66
- "nuxt-i18n-micro-core": "1.0.18"
66
+ "nuxt-i18n-micro-types": "1.0.7"
67
67
  },
68
68
  "devDependencies": {
69
69
  "@nuxt/devtools": "^2.6.3",
@@ -1 +0,0 @@
1
- {"id":"8fbea335-44f1-4fd8-b7cd-6d710a51cf44","timestamp":1757064786147,"matcher":{"static":{},"wildcard":{},"dynamic":{}},"prerendered":[]}
@@ -1 +0,0 @@
1
- :root{--nui-c-context:125,125,125}html{background-color:#fff}html.dark{background-color:#151515;color:#fff;color-scheme:dark}::-moz-selection{background:#8884}::selection{background:#8884}.shiki .line{display:inline-block;position:relative;width:100%}.shiki.diff .line>span{filter:saturate(.75);opacity:.75}.shiki.diff .line-added,.shiki.diff .line-removed{scroll-margin:5em}.shiki.diff .line-added>span,.shiki.diff .line-removed>span{opacity:1!important;position:inherit;scroll-margin:20px;z-index:100}.shiki.diff .line-added>span{color:#218c3b!important}.shiki.diff .line-removed>span{color:#d15547!important}.shiki .line-added:after{background-color:#43885420}.shiki .line-added:after,.shiki .line-removed:after{content:"";display:block;inset:0;position:absolute}.shiki .line-removed:after{background-color:#8f4c3926}::view-transition-new(root),::view-transition-old(root){animation:none;mix-blend-mode:normal}::view-transition-old(root){z-index:1}::view-transition-new(root){z-index:2147483646}.dark::view-transition-old(root){z-index:2147483646}.dark::view-transition-new(root){z-index:1}*,:after,:before{border-color:var(--un-default-border-color, #e5e7eb);border-style:solid;border-width:0;box-sizing:border-box}:after,:before{--un-content: ""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{color:inherit;font-family:inherit;font-feature-settings:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#9ca3af;opacity:1}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}@font-face{font-display:swap;font-family:DM Mono;font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/dmmono/v15/aFTU7PB1QTsUX8KYthSQBK6PYK3EXw.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:DM Mono;font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/dmmono/v15/aFTU7PB1QTsUX8KYthqQBK6PYK0.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:DM Sans;font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/dmsans/v16/rP2tp2ywxg089UriI5-g4vlH9VoD8CmcqZG40F9JadbnoEwAopxRR232RmYJp8I5zzw.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:DM Sans;font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/dmsans/v16/rP2tp2ywxg089UriI5-g4vlH9VoD8CmcqZG40F9JadbnoEwAopxRSW32RmYJp8I5.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}*,:after,:before{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 transparent;--un-ring-shadow:0 0 transparent;--un-shadow-inset: ;--un-shadow:0 0 transparent;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }::backdrop{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 transparent;--un-ring-shadow:0 0 transparent;--un-shadow-inset: ;--un-shadow:0 0 transparent;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }.i-carbon\:arrow-up-right,[i-carbon\:arrow-up-right=""]{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M10 6v2h12.59L6 24.59L7.41 26L24 9.41V22h2V6z'/%3E%3C/svg%3E");background-color:currentColor;color:inherit;display:inline-block;height:1.2em;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;vertical-align:middle;width:1.2em}.n-button-icon{font-size:1.1em;margin-left:-.2em;margin-right:.2em}.n-icon-button{align-items:center;aspect-ratio:1/1;border-radius:.25rem;display:flex;height:1.6em;justify-content:center;opacity:.5;width:1.6em}.n-button-base{align-items:center;border-color:#9ca3af33;border-radius:.25rem;border-width:1px;display:inline-flex;gap:.25rem;opacity:.8;padding:.25em 1em;touch-action:manipulation;--un-shadow:var(--un-shadow-inset) 0 1px 2px 0 var(--un-shadow-color, rgba(0,0,0,.05));box-shadow:var(--un-ring-offset-shadow),var(--un-ring-shadow),var(--un-shadow);outline:2px solid transparent!important;outline-offset:2px!important}.n-icon{flex:none}.n-card-base{border-color:#9ca3af33;border-radius:.25rem;border-width:1px;--un-bg-opacity:1;background-color:rgb(255 255 255 / var(--un-bg-opacity));--un-shadow:var(--un-shadow-inset) 0 1px 2px 0 var(--un-shadow-color, rgba(0,0,0,.05));box-shadow:var(--un-ring-offset-shadow),var(--un-ring-shadow),var(--un-shadow)}.hover\:n-button-hover:hover{--un-border-opacity:1 !important;border-color:rgba(var(--nui-c-context),var(--un-border-opacity))!important;--un-text-opacity:1;color:rgba(var(--nui-c-context),var(--un-text-opacity));opacity:1}.dark .n-card-base{--un-bg-opacity:1;background-color:rgb(21 21 21 / var(--un-bg-opacity))}.n-icon-button:hover{background-color:#9ca3af0d;opacity:1}.active\:n-button-active:active{background-color:rgba(var(--nui-c-context),.05);--un-ring-width:3px;--un-ring-offset-shadow:var(--un-ring-inset) 0 0 0 var(--un-ring-offset-width) var(--un-ring-offset-color);--un-ring-shadow:var(--un-ring-inset) 0 0 0 calc(var(--un-ring-width) + var(--un-ring-offset-width)) var(--un-ring-color);box-shadow:var(--un-ring-offset-shadow),var(--un-ring-shadow),var(--un-shadow);--un-ring-color:rgba(var(--nui-c-context),.1) }.hover\:n-link-hover:hover{--un-text-opacity:1;color:rgba(var(--nui-c-context),var(--un-text-opacity));-webkit-text-decoration-color:rgba(var(--nui-c-context),var(--un-line-opacity))!important;--un-line-opacity:1 !important;opacity:1!important;text-decoration-color:rgba(var(--nui-c-context),var(--un-line-opacity))!important;text-decoration-style:dotted}.n-link-base{text-decoration-color:#0003;text-decoration-line:underline;text-underline-offset:2px}.dark .n-link-base{text-decoration-color:#fff6}.focus-visible\:n-focus-base:focus-visible{--un-ring-width:2px;--un-ring-offset-shadow:var(--un-ring-inset) 0 0 0 var(--un-ring-offset-width) var(--un-ring-offset-color);--un-ring-shadow:var(--un-ring-inset) 0 0 0 calc(var(--un-ring-width) + var(--un-ring-offset-width)) var(--un-ring-color);box-shadow:var(--un-ring-offset-shadow),var(--un-ring-shadow),var(--un-shadow);--un-ring-color:rgba(var(--nui-c-context),.5) }.n-transition{transition-duration:.15s;transition-duration:.2s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.sr-only{height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;clip:rect(0,0,0,0);border-width:0;white-space:nowrap}.pointer-events-none{pointer-events:none}.absolute{position:absolute}.fixed{position:fixed}.relative,[relative=""]{position:relative}.inset-0{inset:0}.-bottom-1\/2{bottom:-50%}.left-0{left:0}.right-0{right:0}.right-3{right:.75rem}.top-1\/2{top:50%}.z-\[1000\]{z-index:1000}.z-10{z-index:10}.z-20{z-index:20}.grid{display:grid}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}[rows~="1"]{grid-template-rows:repeat(1,minmax(0,1fr))}.mx-4{margin-left:1rem;margin-right:1rem}.-mr-2{margin-right:-.5rem}.mb-1{margin-bottom:.25rem}.mb-16{margin-bottom:4rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-2{margin-left:.5rem}.ml-4{margin-left:1rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mt-1{margin-top:.25rem}.mt-4{margin-top:1rem}.block{display:block}.inline-block{display:inline-block}.hidden,[hidden=""]{display:none}[size~=lg]{height:32rem;width:32rem}[size~=md]{height:28rem;width:28rem}.h-1\/2{height:50%}.h-2{height:.5rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-auto{height:auto}.h-full,[h-full=""]{height:100%}.h-screen{height:100vh}.h1{height:.25rem}.h3{height:.75rem}.max-w-520px{max-width:520px}.min-h-\[20px\]{min-height:20px}.min-h-screen{min-height:100vh}.min-w-\[60px\]{min-width:60px}.min-w-0{min-width:0}.w-2{width:.5rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-full{width:100%}.flex,[flex~="~"]{display:flex}.inline-flex{display:inline-flex}.flex-1{flex:1 1 0%}.flex-shrink{flex-shrink:1}.flex-col,[flex~=col]{flex-direction:column}.flex-wrap{flex-wrap:wrap}.table{display:table}.border-collapse{border-collapse:collapse}.-translate-y-1\/2{--un-translate-y:-50%;transform:translate(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotate(var(--un-rotate-z)) skew(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z))}.translate-y--1,[translate-y--1=""]{--un-translate-y:-.25rem;transform:translate(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotate(var(--un-rotate-z)) skew(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z))}.transform,[transform=""]{transform:translate(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotate(var(--un-rotate-z)) skew(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z))}.cursor-pointer{cursor:pointer}.resize-y{resize:vertical}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.place-content-center{place-content:center}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0{gap:0}.gap-2{gap:.5rem}.gap-4{gap:1rem}.space-x-3>:not([hidden])~:not([hidden]){--un-space-x-reverse:0;margin-left:calc(.75rem*(1 - var(--un-space-x-reverse)));margin-right:calc(.75rem*var(--un-space-x-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--un-space-y-reverse:0;margin-bottom:calc(.5rem*var(--un-space-y-reverse));margin-top:calc(.5rem*(1 - var(--un-space-y-reverse)))}.space-y-4>:not([hidden])~:not([hidden]){--un-space-y-reverse:0;margin-bottom:calc(1rem*var(--un-space-y-reverse));margin-top:calc(1rem*(1 - var(--un-space-y-reverse)))}.space-y-6>:not([hidden])~:not([hidden]){--un-space-y-reverse:0;margin-bottom:calc(1.5rem*var(--un-space-y-reverse));margin-top:calc(1.5rem*(1 - var(--un-space-y-reverse)))}.space-y-8>:not([hidden])~:not([hidden]){--un-space-y-reverse:0;margin-bottom:calc(2rem*var(--un-space-y-reverse));margin-top:calc(2rem*(1 - var(--un-space-y-reverse)))}.of-auto\!{overflow:auto!important}.of-hidden,.overflow-hidden,[of-hidden=""]{overflow:hidden}.overflow-auto{overflow:auto}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.\!border-0{border-width:0!important}.b,.border,[b=""]{border-width:1px}.border-b{border-bottom-width:1px}.border-l-4{border-left-width:4px}.border-t{border-top-width:1px}.border-blue-100{--un-border-opacity:1;border-color:rgb(219 234 254 / var(--un-border-opacity))}.border-gray-100{--un-border-opacity:1;border-color:rgb(243 244 246 / var(--un-border-opacity))}.border-gray-200{--un-border-opacity:1;border-color:rgb(229 231 235 / var(--un-border-opacity))}.border-green-200{--un-border-opacity:1;border-color:rgb(187 247 208 / var(--un-border-opacity))}.border-red-200{--un-border-opacity:1;border-color:rgb(254 202 202 / var(--un-border-opacity))}.border-transparent{border-color:transparent}.border-yellow-500{--un-border-opacity:1;border-color:rgb(234 179 8 / var(--un-border-opacity))}.hover\:border-blue-400:hover{--un-border-opacity:1;border-color:rgb(96 165 250 / var(--un-border-opacity))}.focus\:border-blue-400:focus{--un-border-opacity:1;border-color:rgb(96 165 250 / var(--un-border-opacity))}.\!rounded-xl{border-radius:.75rem!important}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.rounded-t-md{border-top-left-radius:.375rem;border-top-right-radius:.375rem}.bg-black,.dark .dark\:bg-black{--un-bg-opacity:1;background-color:rgb(0 0 0 / var(--un-bg-opacity))}.bg-black\/5{background-color:#0000000d}.bg-blue-50{--un-bg-opacity:1;background-color:rgb(239 246 255 / var(--un-bg-opacity))}.bg-blue-500{--un-bg-opacity:1;background-color:rgb(59 130 246 / var(--un-bg-opacity))}.bg-gray-100{--un-bg-opacity:1;background-color:rgb(243 244 246 / var(--un-bg-opacity))}.bg-gray-300{--un-bg-opacity:1;background-color:rgb(209 213 219 / var(--un-bg-opacity))}.bg-gray-50{--un-bg-opacity:1;background-color:rgb(249 250 251 / var(--un-bg-opacity))}.bg-green-100{--un-bg-opacity:1;background-color:rgb(220 252 231 / var(--un-bg-opacity))}.bg-green-50{--un-bg-opacity:1;background-color:rgb(240 253 244 / var(--un-bg-opacity))}.bg-green-500{--un-bg-opacity:1;background-color:rgb(34 197 94 / var(--un-bg-opacity))}.bg-indigo-500{--un-bg-opacity:1;background-color:rgb(99 102 241 / var(--un-bg-opacity))}.bg-orange-100{--un-bg-opacity:1;background-color:rgb(255 237 213 / var(--un-bg-opacity))}.bg-purple-100{--un-bg-opacity:1;background-color:rgb(243 232 255 / var(--un-bg-opacity))}.bg-red-100{--un-bg-opacity:1;background-color:rgb(254 226 226 / var(--un-bg-opacity))}.bg-red-50{--un-bg-opacity:1;background-color:rgb(254 242 242 / var(--un-bg-opacity))}.bg-red-500{--un-bg-opacity:1;background-color:rgb(239 68 68 / var(--un-bg-opacity))}.bg-transparent{background-color:transparent}.bg-white{--un-bg-opacity:1;background-color:rgb(255 255 255 / var(--un-bg-opacity))}.bg-yellow-100{--un-bg-opacity:1;background-color:rgb(254 249 195 / var(--un-bg-opacity))}.bg-yellow-50{--un-bg-opacity:1;background-color:rgb(254 252 232 / var(--un-bg-opacity))}.dark .dark\:bg-white\/10{background-color:#ffffff1a}.hover\:bg-blue-600:hover{--un-bg-opacity:1;background-color:rgb(37 99 235 / var(--un-bg-opacity))}.hover\:bg-gray-100:hover{--un-bg-opacity:1;background-color:rgb(243 244 246 / var(--un-bg-opacity))}.hover\:bg-gray-400:hover{--un-bg-opacity:1;background-color:rgb(156 163 175 / var(--un-bg-opacity))}.hover\:bg-indigo-600:hover{--un-bg-opacity:1;background-color:rgb(79 70 229 / var(--un-bg-opacity))}.hover\:bg-red-600:hover{--un-bg-opacity:1;background-color:rgb(220 38 38 / var(--un-bg-opacity))}.bg-opacity-50{--un-bg-opacity:.5}.fill-current{fill:currentColor}[stroke-width~="1"]{stroke-width:1px}[stroke-width~="1.5"]{stroke-width:1.5px}[stroke-width~="2"]{stroke-width:2px}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.p\[i\]{padding:i}.px,.px-4{padding-left:1rem;padding-right:1rem}.px-10{padding-left:2.5rem;padding-right:2.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0\.5{padding-bottom:.125rem;padding-top:.125rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.py-4{padding-bottom:1rem;padding-top:1rem}.pb-4{padding-bottom:1rem}.pl-4{padding-left:1rem}.pr-8{padding-right:2rem}.pt-14{padding-top:3.5rem}.pt-4{padding-top:1rem}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.text-2xl{font-size:1.5rem;line-height:2rem}.text-6xl{font-size:3.75rem;line-height:1}.text-8xl{font-size:6rem;line-height:1}.text-lg,[text-lg=""]{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs,[text-xs=""]{font-size:.75rem;line-height:1rem}.dark .dark\:text-white,.text-white{--un-text-opacity:1;color:rgb(255 255 255 / var(--un-text-opacity))}.text-black{--un-text-opacity:1;color:rgb(0 0 0 / var(--un-text-opacity))}.text-blue-600{--un-text-opacity:1;color:rgb(37 99 235 / var(--un-text-opacity))}.text-blue-700{--un-text-opacity:1;color:rgb(29 78 216 / var(--un-text-opacity))}.text-cyan-600{--un-text-opacity:1;color:rgb(8 145 178 / var(--un-text-opacity))}.text-gray-400{--un-text-opacity:1;color:rgb(156 163 175 / var(--un-text-opacity))}.text-gray-500{--un-text-opacity:1;color:rgb(107 114 128 / var(--un-text-opacity))}.text-gray-600{--un-text-opacity:1;color:rgb(75 85 99 / var(--un-text-opacity))}.text-gray-700{--un-text-opacity:1;color:rgb(55 65 81 / var(--un-text-opacity))}.text-gray-800,[text-gray-800=""]{--un-text-opacity:1;color:rgb(31 41 55 / var(--un-text-opacity))}.text-gray-900{--un-text-opacity:1;color:rgb(17 24 39 / var(--un-text-opacity))}.text-green-500{--un-text-opacity:1;color:rgb(34 197 94 / var(--un-text-opacity))}.text-green-600{--un-text-opacity:1;color:rgb(22 163 74 / var(--un-text-opacity))}.text-green-700{--un-text-opacity:1;color:rgb(21 128 61 / var(--un-text-opacity))}.text-green-800{--un-text-opacity:1;color:rgb(22 101 52 / var(--un-text-opacity))}.text-indigo-600{--un-text-opacity:1;color:rgb(79 70 229 / var(--un-text-opacity))}.text-orange-600,[text-orange-600=""]{--un-text-opacity:1;color:rgb(234 88 12 / var(--un-text-opacity))}.text-orange-800{--un-text-opacity:1;color:rgb(154 52 18 / var(--un-text-opacity))}.text-pink-600{--un-text-opacity:1;color:rgb(219 39 119 / var(--un-text-opacity))}.text-purple-600,[text-purple-600=""]{--un-text-opacity:1;color:rgb(147 51 234 / var(--un-text-opacity))}.text-purple-800{--un-text-opacity:1;color:rgb(107 33 168 / var(--un-text-opacity))}.text-red-500{--un-text-opacity:1;color:rgb(239 68 68 / var(--un-text-opacity))}.text-red-600{--un-text-opacity:1;color:rgb(220 38 38 / var(--un-text-opacity))}.text-red-700{--un-text-opacity:1;color:rgb(185 28 28 / var(--un-text-opacity))}.text-red-800{--un-text-opacity:1;color:rgb(153 27 27 / var(--un-text-opacity))}.text-teal-600{--un-text-opacity:1;color:rgb(13 148 136 / var(--un-text-opacity))}.text-yellow-600{--un-text-opacity:1;color:rgb(202 138 4 / var(--un-text-opacity))}.text-yellow-800{--un-text-opacity:1;color:rgb(133 77 14 / var(--un-text-opacity))}.hover\:text-blue-600:hover{--un-text-opacity:1;color:rgb(37 99 235 / var(--un-text-opacity))}.hover\:text-gray-600:hover{--un-text-opacity:1;color:rgb(75 85 99 / var(--un-text-opacity))}[color~=orange]{--un-text-opacity:1;color:rgb(251 146 60 / var(--un-text-opacity))}.font-bold{font-weight:700}.font-light{font-weight:300}.font-medium{font-weight:500}.font-semibold,[font-semibold=""]{font-weight:600}.leading-tight{line-height:1.25}.font-mono{font-family:DM Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.font-sans{font-family:DM Sans,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.capitalize{text-transform:capitalize}.italic{font-style:italic}.line-through{text-decoration-line:line-through}.underline{text-decoration-line:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.tab{-moz-tab-size:4;-o-tab-size:4;tab-size:4}.op50,[op50=""]{opacity:.5}.shadow{--un-shadow:var(--un-shadow-inset) 0 1px 3px 0 var(--un-shadow-color, rgba(0,0,0,.1)),var(--un-shadow-inset) 0 1px 2px -1px var(--un-shadow-color, rgba(0,0,0,.1));box-shadow:var(--un-ring-offset-shadow),var(--un-ring-shadow),var(--un-shadow)}.shadow-2xl{--un-shadow:var(--un-shadow-inset) 0 25px 50px -12px var(--un-shadow-color, rgba(0,0,0,.25));box-shadow:var(--un-ring-offset-shadow),var(--un-ring-shadow),var(--un-shadow)}.shadow-lg{--un-shadow:var(--un-shadow-inset) 0 10px 15px -3px var(--un-shadow-color, rgba(0,0,0,.1)),var(--un-shadow-inset) 0 4px 6px -4px var(--un-shadow-color, rgba(0,0,0,.1));box-shadow:var(--un-ring-offset-shadow),var(--un-ring-shadow),var(--un-shadow)}.shadow-sm{--un-shadow:var(--un-shadow-inset) 0 1px 2px 0 var(--un-shadow-color, rgba(0,0,0,.05));box-shadow:var(--un-ring-offset-shadow),var(--un-ring-shadow),var(--un-shadow)}.hover\:shadow-md:hover{--un-shadow:var(--un-shadow-inset) 0 4px 6px -1px var(--un-shadow-color, rgba(0,0,0,.1)),var(--un-shadow-inset) 0 2px 4px -2px var(--un-shadow-color, rgba(0,0,0,.1));box-shadow:var(--un-ring-offset-shadow),var(--un-ring-shadow),var(--un-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.ring-2{--un-ring-width:2px;--un-ring-offset-shadow:var(--un-ring-inset) 0 0 0 var(--un-ring-offset-width) var(--un-ring-offset-color);--un-ring-shadow:var(--un-ring-inset) 0 0 0 calc(var(--un-ring-width) + var(--un-ring-offset-width)) var(--un-ring-color);box-shadow:var(--un-ring-offset-shadow),var(--un-ring-shadow),var(--un-shadow)}.focus\:ring-2:focus{--un-ring-width:2px;--un-ring-offset-shadow:var(--un-ring-inset) 0 0 0 var(--un-ring-offset-width) var(--un-ring-offset-color);--un-ring-shadow:var(--un-ring-inset) 0 0 0 calc(var(--un-ring-width) + var(--un-ring-offset-width)) var(--un-ring-color);box-shadow:var(--un-ring-offset-shadow),var(--un-ring-shadow),var(--un-shadow)}.focus\:ring-blue-200:focus{--un-ring-opacity:1;--un-ring-color:rgb(191 219 254 / var(--un-ring-opacity)) }.focus\:ring-blue-500:focus{--un-ring-opacity:1;--un-ring-color:rgb(59 130 246 / var(--un-ring-opacity)) }.ring-opacity-50{--un-ring-opacity:.5}.ring-inset{--un-ring-inset:inset}.filter{filter:var(--un-blur) var(--un-brightness) var(--un-contrast) var(--un-drop-shadow) var(--un-grayscale) var(--un-hue-rotate) var(--un-invert) var(--un-saturate) var(--un-sepia)}.backdrop-filter{-webkit-backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia);backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia)}.transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.ease,.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.placeholder-gray-400::-moz-placeholder{--un-placeholder-opacity:1;color:rgb(156 163 175 / var(--un-placeholder-opacity))}.placeholder-gray-400::placeholder{--un-placeholder-opacity:1;color:rgb(156 163 175 / var(--un-placeholder-opacity))}.n-disabled\:n-disabled[disabled],[disabled] .n-disabled\:n-disabled{filter:saturate(0);opacity:.6;pointer-events:none}@media (min-width:640px){.sm\:px-0{padding-left:0;padding-right:0}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:py-3{padding-bottom:.75rem;padding-top:.75rem}.sm\:text-2xl{font-size:1.5rem;line-height:2rem}.sm\:text-4xl{font-size:2.25rem;line-height:2.5rem}.sm\:text-8xl{font-size:6rem;line-height:1}.sm\:text-xl{font-size:1.25rem;line-height:1.75rem}}.tabs[data-v-8c92b27c]{background:#fff;border-bottom:1px solid #e2e8f0;display:flex;left:0;position:absolute;right:0;top:0;z-index:2}.tab[data-v-8c92b27c]{background:none;border:none;color:#4a5568;cursor:pointer;font-size:14px;padding:10px 20px;transition:all .2s ease}.tab[data-v-8c92b27c]:hover{background-color:#f7fafc}.tab.active[data-v-8c92b27c]{border-bottom:2px solid #3b82f6;color:#3b82f6;font-weight:500}.splitpanes{display:flex;height:100%;width:100%}.splitpanes--vertical{flex-direction:row}.splitpanes--horizontal{flex-direction:column}.splitpanes--dragging *{-webkit-user-select:none;-moz-user-select:none;user-select:none}.splitpanes__pane{height:100%;overflow:hidden;width:100%}.splitpanes--vertical .splitpanes__pane{transition:width .2s ease-out}.splitpanes--horizontal .splitpanes__pane{transition:height .2s ease-out}.splitpanes--dragging .splitpanes__pane{transition:none}.splitpanes__splitter{touch-action:none}.splitpanes--vertical>.splitpanes__splitter{cursor:col-resize;min-width:1px}.splitpanes--horizontal>.splitpanes__splitter{cursor:row-resize;min-height:1px}.splitpanes.default-theme .splitpanes__pane{background-color:#f2f2f2}.splitpanes.default-theme .splitpanes__splitter{background-color:#fff;box-sizing:border-box;flex-shrink:0;position:relative}.splitpanes.default-theme .splitpanes__splitter:after,.splitpanes.default-theme .splitpanes__splitter:before{background-color:#00000026;content:"";left:50%;position:absolute;top:50%;transition:background-color .3s}.splitpanes.default-theme .splitpanes__splitter:hover:after,.splitpanes.default-theme .splitpanes__splitter:hover:before{background-color:#00000040}.splitpanes.default-theme .splitpanes__splitter:first-child{cursor:auto}.default-theme .splitpanes--dragging{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.default-theme.splitpanes .splitpanes .splitpanes__splitter{z-index:1}.default-theme .splitpanes--vertical>.splitpanes__splitter,.default-theme.splitpanes--vertical>.splitpanes__splitter{border-left:1px solid #eee;margin-left:-1px;width:7px}.default-theme .splitpanes--vertical>.splitpanes__splitter:after,.default-theme .splitpanes--vertical>.splitpanes__splitter:before,.default-theme.splitpanes--vertical>.splitpanes__splitter:after,.default-theme.splitpanes--vertical>.splitpanes__splitter:before{height:30px;transform:translateY(-50%);width:1px}.default-theme .splitpanes--vertical>.splitpanes__splitter:before,.default-theme.splitpanes--vertical>.splitpanes__splitter:before{margin-left:-2px}.default-theme .splitpanes--vertical>.splitpanes__splitter:after,.default-theme.splitpanes--vertical>.splitpanes__splitter:after{margin-left:1px}.default-theme .splitpanes--horizontal>.splitpanes__splitter,.default-theme.splitpanes--horizontal>.splitpanes__splitter{border-top:1px solid #eee;height:7px;margin-top:-1px}.default-theme .splitpanes--horizontal>.splitpanes__splitter:after,.default-theme .splitpanes--horizontal>.splitpanes__splitter:before,.default-theme.splitpanes--horizontal>.splitpanes__splitter:after,.default-theme.splitpanes--horizontal>.splitpanes__splitter:before{height:1px;transform:translate(-50%);width:30px}.default-theme .splitpanes--horizontal>.splitpanes__splitter:before,.default-theme.splitpanes--horizontal>.splitpanes__splitter:before{margin-top:-2px}.default-theme .splitpanes--horizontal>.splitpanes__splitter:after,.default-theme.splitpanes--horizontal>.splitpanes__splitter:after{margin-top:1px}.splitpanes__splitter{position:relative}.splitpanes__splitter:before{content:"";left:0;position:absolute;top:0;transition:.2s ease;transition:opacity .4s;z-index:1}.splitpanes__splitter:hover:before{background:#8881;opacity:1}.splitpanes--vertical>.splitpanes__splitter{min-width:0!important;width:0!important;border-right-width:1px}.splitpanes--horizontal>.splitpanes__splitter{height:0!important;min-height:0!important;border-top-width:1px}.splitpanes--vertical>.splitpanes__splitter:before{height:100%;left:-5px;right:-4px}.splitpanes--horizontal>.splitpanes__splitter:before{bottom:-4px;top:-5px;width:100%}.loader-container[data-v-be1b70e5]{align-items:center;display:flex;justify-content:center;min-height:100px;padding:20px}.loader[data-v-be1b70e5]{text-align:center}.loader-circle[data-v-be1b70e5]{animation:spin-be1b70e5 1s linear infinite;border:4px solid #f3f3f3;border-radius:50%;border-top-color:#3498db;display:inline-block;height:40px;margin-bottom:8px;width:40px}.loader-text[data-v-be1b70e5]{color:#666;font-size:14px}@keyframes spin-be1b70e5{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.pagination[data-v-14609e66]{align-items:center;display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin-top:16px}.pagination-button[data-v-14609e66]{background-color:#f8f9fa;border:1px solid #ccc;border-radius:4px;color:#333;cursor:pointer;font-size:13px;padding:6px 12px;transition:background-color .2s,border-color .2s}.pagination-button[data-v-14609e66]:hover:not(:disabled){background-color:#e9ecef;border-color:#bbb}.pagination-button[data-v-14609e66]:disabled{background-color:#e9ecef;color:#999;cursor:not-allowed}.pagination-button.active[data-v-14609e66]{background-color:#007bff;border-color:#007bff;color:#fff}.pagination-ellipsis[data-v-14609e66]{color:#666;font-size:13px;padding:6px 12px}.translation-editor[data-v-cc58316c]{height:100%;display:flex;flex-direction:column;gap:0;padding:.25rem}.search-box[data-v-cc58316c]{--un-bg-opacity:1;background-color:rgb(255 255 255 / var(--un-bg-opacity));padding-bottom:1rem}.search-input[data-v-cc58316c]{width:100%;border-width:1px;border-radius:.5rem;padding:.5rem}.search-input[data-v-cc58316c]:focus{outline:2px solid transparent;outline-offset:2px;--un-ring-width:2px;--un-ring-offset-shadow:var(--un-ring-inset) 0 0 0 var(--un-ring-offset-width) var(--un-ring-offset-color);--un-ring-shadow:var(--un-ring-inset) 0 0 0 calc(var(--un-ring-width) + var(--un-ring-offset-width)) var(--un-ring-color);box-shadow:var(--un-ring-offset-shadow),var(--un-ring-shadow),var(--un-shadow);--un-ring-opacity:1;--un-ring-color:rgb(59 130 246 / var(--un-ring-opacity)) }.translation-list[data-v-cc58316c]{flex:1 1 0%;overflow-y:auto}.translation-list[data-v-cc58316c]>:not([hidden])~:not([hidden]){--un-space-y-reverse:0;margin-top:calc(1rem * calc(1 - var(--un-space-y-reverse)));margin-bottom:calc(1rem * var(--un-space-y-reverse))}.translation-item[data-v-cc58316c]{border-width:1px;--un-border-opacity:1;border-color:rgb(243 244 246 / var(--un-border-opacity));border-radius:.5rem;--un-bg-opacity:1;background-color:rgb(255 255 255 / var(--un-bg-opacity));padding:.25rem 1rem;--un-shadow:var(--un-shadow-inset) 0 1px 2px 0 var(--un-shadow-color, rgb(0 0 0 / .05));box-shadow:var(--un-ring-offset-shadow),var(--un-ring-shadow),var(--un-shadow)}.translation-item.missing[data-v-cc58316c]{--un-border-opacity:1;border-color:rgb(234 179 8 / var(--un-border-opacity));--un-bg-opacity:1;background-color:rgb(254 252 232 / var(--un-bg-opacity))}.key-header[data-v-cc58316c]{margin-bottom:.25rem;display:flex;align-items:center;justify-content:space-between}.key-label[data-v-cc58316c]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.875rem;line-height:1.25rem;--un-text-opacity:1;color:rgb(55 65 81 / var(--un-text-opacity));font-family:DM Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.default-value[data-v-cc58316c]{margin-bottom:.25rem;font-size:.75rem;line-height:1rem;--un-text-opacity:1;color:rgb(107 114 128 / var(--un-text-opacity));font-style:italic}.translation-input[data-v-cc58316c]{width:100%;min-height:20px;resize:vertical;border-width:1px;border-radius:.375rem;padding:.5rem}.translation-input[data-v-cc58316c]:focus{outline:2px solid transparent;outline-offset:2px;--un-ring-width:2px;--un-ring-offset-shadow:var(--un-ring-inset) 0 0 0 var(--un-ring-offset-width) var(--un-ring-offset-color);--un-ring-shadow:var(--un-ring-inset) 0 0 0 calc(var(--un-ring-width) + var(--un-ring-offset-width)) var(--un-ring-color);box-shadow:var(--un-ring-offset-shadow),var(--un-ring-shadow),var(--un-shadow);--un-ring-opacity:1;--un-ring-color:rgb(59 130 246 / var(--un-ring-opacity)) }.translate-btn[data-v-cc58316c]{padding:.25rem;--un-text-opacity:1;color:rgb(107 114 128 / var(--un-text-opacity));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.translate-btn[data-v-cc58316c]:hover{--un-text-opacity:1;color:rgb(37 99 235 / var(--un-text-opacity))}.translate-icon[data-v-cc58316c]{width:1.25rem;height:1.25rem;fill:currentColor}.json-editor[data-v-4d484ced]{height:100%;overflow:hidden}.editor[data-v-4d484ced]{border:1px solid #e2e8f0;border-radius:4px;height:100%}.file-item[data-v-0eeffb30]{align-items:center;background:#fff;border:1px solid transparent;border-radius:6px;color:#334155;cursor:pointer;display:flex;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;font-size:14px;margin:2px 0;padding:1px 12px;transition:all .2s}.file-item[data-v-0eeffb30]:hover{background:#f1f5f9;transform:translate(2px)}.file-item.selected[data-v-0eeffb30]{background:#eff6ff;border-color:#3b82f6;color:#1d4ed8;font-weight:500}.folder-header[data-v-0eeffb30]{align-items:center;background:#fff;border:1px solid transparent;border-radius:6px;color:#334155;cursor:pointer;display:flex;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;font-size:14px;margin:2px 0;padding:1px 12px;transition:all .2s}.folder-header[data-v-0eeffb30]:hover{background:#f1f5f9;transform:translate(2px)}.folder-header.expanded[data-v-0eeffb30]{color:#1e40af;font-weight:500}.folder-header.selected[data-v-0eeffb30]{background:#eff6ff;border-color:#3b82f6;color:#1d4ed8;font-weight:500}.icon[data-v-0eeffb30]{flex-shrink:0;height:18px;margin-right:8px;width:18px}.chevron .icon[data-v-0eeffb30]{height:14px;margin-right:10px;width:14px}.folder-children[data-v-0eeffb30]{border-left:2px solid #e2e8f0;margin-left:12px;padding-left:12px}.file-tree[data-v-e83f39de]{background:#f8fafc;border-radius:8px;display:flex;flex-direction:column;height:100%;overflow:hidden}.tree-container[data-v-e83f39de]{flex:1;overflow-y:auto;padding:8px}.modal-overlay[data-v-c9a46d64]{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;--un-bg-opacity:1;background-color:rgb(0 0 0 / var(--un-bg-opacity));--un-bg-opacity:.5;padding:1rem;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal-content[data-v-c9a46d64]{display:flex;flex-direction:column;border-radius:.75rem;--un-bg-opacity:1;background-color:rgb(255 255 255 / var(--un-bg-opacity));--un-shadow:var(--un-shadow-inset) 0 25px 50px -12px var(--un-shadow-color, rgb(0 0 0 / .25));box-shadow:var(--un-ring-offset-shadow),var(--un-ring-shadow),var(--un-shadow);max-height:calc(100vh - 2rem)}.modal-header[data-v-c9a46d64]{display:flex;align-items:center;justify-content:space-between;border-bottom-width:1px;--un-border-opacity:1;border-color:rgb(243 244 246 / var(--un-border-opacity));padding:1rem 1.5rem;flex-shrink:0}.header-content[data-v-c9a46d64]{min-width:0;flex:1 1 0%}.modal-title[data-v-c9a46d64]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:1.25rem;line-height:1.75rem;--un-text-opacity:1;color:rgb(17 24 39 / var(--un-text-opacity));font-weight:600}.modal-close-button[data-v-c9a46d64]{margin-left:1rem;margin-right:-.5rem;padding:.5rem;--un-text-opacity:1;color:rgb(156 163 175 / var(--un-text-opacity));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.modal-close-button[data-v-c9a46d64]:hover{--un-text-opacity:1;color:rgb(75 85 99 / var(--un-text-opacity))}.close-icon[data-v-c9a46d64]{width:1.5rem;height:1.5rem;fill:currentColor}.modal-body[data-v-c9a46d64]{flex:1 1 0%;overflow-y:auto;padding:1.5rem;scrollbar-color:#d1d5db #fff;scrollbar-width:thin}.modal-body[data-v-c9a46d64]::-webkit-scrollbar{width:.5rem}.modal-body[data-v-c9a46d64]::-webkit-scrollbar-track{border-radius:.25rem;--un-bg-opacity:1;background-color:rgb(243 244 246 / var(--un-bg-opacity))}.modal-body[data-v-c9a46d64]::-webkit-scrollbar-thumb{border-radius:.25rem;--un-bg-opacity:1;background-color:rgb(209 213 219 / var(--un-bg-opacity))}.modal-body[data-v-c9a46d64]::-webkit-scrollbar-thumb:hover{--un-bg-opacity:1;background-color:rgb(156 163 175 / var(--un-bg-opacity))}.modal-footer[data-v-c9a46d64]{display:flex;align-items:center;justify-content:flex-end;border-top-width:1px;--un-border-opacity:1;border-color:rgb(243 244 246 / var(--un-border-opacity));padding:1rem 1.5rem;flex-shrink:0}.modal-footer[data-v-c9a46d64]>:not([hidden])~:not([hidden]){--un-space-x-reverse:0;margin-left:calc(.75rem * calc(1 - var(--un-space-x-reverse)));margin-right:calc(.75rem * var(--un-space-x-reverse))}.diff-viewer[data-v-8fe7b946]{display:flex;flex-direction:column;gap:1rem}.filters[data-v-8fe7b946]{display:flex;gap:.5rem}.filter-item[data-v-8fe7b946]{cursor:pointer}.filter-badge[data-v-8fe7b946]{display:inline-flex;align-items:center;gap:.5rem;border-radius:9999px;padding:.25rem .75rem;font-size:.875rem;line-height:1.25rem;font-weight:500;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.filter-item input:checked+.filter-badge[data-v-8fe7b946]{--un-ring-width:2px;--un-ring-offset-shadow:var(--un-ring-inset) 0 0 0 var(--un-ring-offset-width) var(--un-ring-offset-color);--un-ring-shadow:var(--un-ring-inset) 0 0 0 calc(var(--un-ring-width) + var(--un-ring-offset-width)) var(--un-ring-color);box-shadow:var(--un-ring-offset-shadow),var(--un-ring-shadow),var(--un-shadow);--un-ring-opacity:.5;--un-ring-inset:inset}.diff-list[data-v-8fe7b946]>:not([hidden])~:not([hidden]){--un-space-y-reverse:0;margin-top:calc(1rem * calc(1 - var(--un-space-y-reverse)));margin-bottom:calc(1rem * var(--un-space-y-reverse))}.diff-item[data-v-8fe7b946]{border-width:1px;--un-border-opacity:1;border-color:rgb(243 244 246 / var(--un-border-opacity));border-radius:.5rem;--un-bg-opacity:1;background-color:rgb(255 255 255 / var(--un-bg-opacity));padding:1rem;--un-shadow:var(--un-shadow-inset) 0 1px 2px 0 var(--un-shadow-color, rgb(0 0 0 / .05));box-shadow:var(--un-ring-offset-shadow),var(--un-ring-shadow),var(--un-shadow)}.key-row[data-v-8fe7b946]{margin-bottom:.5rem;display:flex;align-items:center;justify-content:space-between}.key-label[data-v-8fe7b946]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.875rem;line-height:1.25rem;--un-text-opacity:1;color:rgb(55 65 81 / var(--un-text-opacity));font-family:DM Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.change-type[data-v-8fe7b946]{border-radius:9999px;padding:.25rem .5rem;font-size:.75rem;line-height:1rem;font-weight:600}.value-compare[data-v-8fe7b946]>:not([hidden])~:not([hidden]){--un-space-y-reverse:0;margin-top:calc(.5rem * calc(1 - var(--un-space-y-reverse)));margin-bottom:calc(.5rem * var(--un-space-y-reverse))}.value[data-v-8fe7b946]{border-width:1px;border-color:transparent;border-radius:.375rem;padding:.5rem;font-size:.875rem;line-height:1.25rem}.value-label[data-v-8fe7b946]{margin-right:.5rem;font-size:.75rem;line-height:1rem;--un-text-opacity:1;color:rgb(107 114 128 / var(--un-text-opacity));font-weight:500}.value-content[data-v-8fe7b946]{overflow-wrap:break-word}.old[data-v-8fe7b946]{--un-border-opacity:1;border-color:rgb(254 202 202 / var(--un-border-opacity));--un-bg-opacity:1;background-color:rgb(254 242 242 / var(--un-bg-opacity));--un-text-opacity:1;color:rgb(185 28 28 / var(--un-text-opacity))}.new[data-v-8fe7b946]{--un-border-opacity:1;border-color:rgb(187 247 208 / var(--un-border-opacity));--un-bg-opacity:1;background-color:rgb(240 253 244 / var(--un-bg-opacity));--un-text-opacity:1;color:rgb(21 128 61 / var(--un-text-opacity))}.added .value-content[data-v-8fe7b946]{--un-text-opacity:1;color:rgb(22 163 74 / var(--un-text-opacity))}.removed .value-content[data-v-8fe7b946]{--un-text-opacity:1;color:rgb(220 38 38 / var(--un-text-opacity));text-decoration-line:line-through}.border-t[data-v-0c9ed4d7]{border-top-color:#e5e7eb;border-top-width:1px}.pt-4[data-v-0c9ed4d7]{padding-top:1rem}.mt-4[data-v-0c9ed4d7]{margin-top:1rem}.text-lg[data-v-0c9ed4d7]{font-size:1.125rem;line-height:1.75rem}.font-semibold[data-v-0c9ed4d7]{font-weight:600}.bg-white[data-v-0c9ed4d7]{background-color:#fff}.rounded-lg[data-v-0c9ed4d7]{border-radius:.5rem}.shadow[data-v-0c9ed4d7]{box-shadow:0 1px 3px #0000001a,0 1px 2px -1px #0000001a}.grid[data-v-0c9ed4d7]{display:grid}.gap-4[data-v-0c9ed4d7]{gap:1rem}.editor-container[data-v-ef2fcb48]{display:flex;flex-direction:column;height:100%}.actions[data-v-ef2fcb48]{align-items:center;display:flex;justify-content:space-between;margin:5px}.left-buttons[data-v-ef2fcb48]{display:flex;gap:10px}.editor-wrapper[data-v-ef2fcb48]{display:flex;flex:1;flex-direction:column;gap:10px;overflow:hidden}.settings-group[data-v-afc761f9]{border-radius:.75rem;--un-bg-opacity:1;background-color:rgb(255 255 255 / var(--un-bg-opacity));padding:1.5rem;--un-shadow:var(--un-shadow-inset) 0 1px 2px 0 var(--un-shadow-color, rgb(0 0 0 / .05));box-shadow:var(--un-ring-offset-shadow),var(--un-ring-shadow),var(--un-shadow);transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;transition-duration:.3s}.settings-group[data-v-afc761f9]:hover{--un-shadow:var(--un-shadow-inset) 0 4px 6px -1px var(--un-shadow-color, rgb(0 0 0 / .1)),var(--un-shadow-inset) 0 2px 4px -2px var(--un-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--un-ring-offset-shadow),var(--un-ring-shadow),var(--un-shadow)}.group-header[data-v-afc761f9]{margin-bottom:1.5rem;display:flex;align-items:center;border-bottom-width:1px;--un-border-opacity:1;border-color:rgb(243 244 246 / var(--un-border-opacity));padding-bottom:1rem}.icon[data-v-afc761f9]{margin-right:.75rem;font-size:1.5rem;line-height:2rem}.group-title[data-v-afc761f9]{font-size:1.25rem;line-height:1.75rem;--un-text-opacity:1;color:rgb(31 41 55 / var(--un-text-opacity));font-weight:600}.input-group[data-v-afc761f9]>:not([hidden])~:not([hidden]){--un-space-y-reverse:0;margin-top:calc(.5rem * calc(1 - var(--un-space-y-reverse)));margin-bottom:calc(.5rem * var(--un-space-y-reverse))}.input-label[data-v-afc761f9]{display:flex;align-items:center;font-size:.875rem;line-height:1.25rem;--un-text-opacity:1;color:rgb(75 85 99 / var(--un-text-opacity));font-weight:500}.custom-select[data-v-afc761f9]{position:relative;border-width:1px;--un-border-opacity:1;border-color:rgb(229 231 235 / var(--un-border-opacity));border-radius:.5rem;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;transition-duration:.2s}.custom-select[data-v-afc761f9]:hover{--un-border-opacity:1;border-color:rgb(96 165 250 / var(--un-border-opacity))}.styled-select[data-v-afc761f9]{width:100%;-webkit-appearance:none;appearance:none;border-radius:.5rem;background-color:transparent;padding:.75rem 2rem .75rem 1rem;--un-text-opacity:1;color:rgb(55 65 81 / var(--un-text-opacity));outline:2px solid transparent;outline-offset:2px}.select-arrow[data-v-afc761f9]{pointer-events:none;position:absolute;right:.75rem;top:50%;--un-translate-y:-50%;transform:translate(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotate(var(--un-rotate-z)) skew(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z));--un-text-opacity:1;color:rgb(156 163 175 / var(--un-text-opacity))}.styled-input[data-v-afc761f9]{width:100%;border-width:1px;--un-border-opacity:1;border-color:rgb(229 231 235 / var(--un-border-opacity));border-radius:.5rem;padding:.75rem 1rem;outline:2px solid transparent;outline-offset:2px;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;transition-duration:.2s}.styled-input[data-v-afc761f9]:focus{--un-border-opacity:1;border-color:rgb(96 165 250 / var(--un-border-opacity));--un-ring-width:2px;--un-ring-offset-shadow:var(--un-ring-inset) 0 0 0 var(--un-ring-offset-width) var(--un-ring-offset-color);--un-ring-shadow:var(--un-ring-inset) 0 0 0 calc(var(--un-ring-width) + var(--un-ring-offset-width)) var(--un-ring-color);box-shadow:var(--un-ring-offset-shadow),var(--un-ring-shadow),var(--un-shadow);--un-ring-opacity:1;--un-ring-color:rgb(191 219 254 / var(--un-ring-opacity)) }.styled-input[data-v-afc761f9]::placeholder{--un-placeholder-opacity:1;color:rgb(156 163 175 / var(--un-placeholder-opacity))}.driver-options[data-v-afc761f9]{margin-left:.5rem;border-left-width:4px;--un-border-opacity:1;border-color:rgb(219 234 254 / var(--un-border-opacity));padding-left:1rem}.fade-slide-enter-active[data-v-afc761f9],.fade-slide-leave-active[data-v-afc761f9]{transition:all .3s ease}.fade-slide-enter-from[data-v-afc761f9],.fade-slide-leave-to[data-v-afc761f9]{opacity:0;transform:translate(10px)}.settings-group[data-v-4f4eb450]>:not([hidden])~:not([hidden]){--un-space-y-reverse:0;margin-top:calc(1rem * calc(1 - var(--un-space-y-reverse)));margin-bottom:calc(1rem * var(--un-space-y-reverse))}.group-header[data-v-4f4eb450]{margin-bottom:1rem;display:flex;align-items:center;border-bottom-width:1px;--un-border-opacity:1;border-color:rgb(243 244 246 / var(--un-border-opacity));padding-bottom:1rem}.icon[data-v-4f4eb450]{margin-right:.75rem;font-size:1.5rem;line-height:2rem}.group-title[data-v-4f4eb450]{font-size:1.25rem;line-height:1.75rem;--un-text-opacity:1;color:rgb(31 41 55 / var(--un-text-opacity));font-weight:600}.settings-grid[data-v-4f4eb450]{display:grid;gap:1rem}.config-row[data-v-4f4eb450]{display:flex;align-items:center;justify-content:space-between;border-radius:.5rem;--un-bg-opacity:1;background-color:rgb(249 250 251 / var(--un-bg-opacity));padding:.75rem 1rem;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.config-row[data-v-4f4eb450]:hover{--un-bg-opacity:1;background-color:rgb(243 244 246 / var(--un-bg-opacity))}.config-label[data-v-4f4eb450]{font-size:.875rem;line-height:1.25rem;--un-text-opacity:1;color:rgb(75 85 99 / var(--un-text-opacity));font-weight:500}.config-value[data-v-4f4eb450]{font-size:.875rem;line-height:1.25rem;--un-text-opacity:1;color:rgb(31 41 55 / var(--un-text-opacity))}.modern-table[data-v-4f4eb450]{width:100%;border-collapse:collapse}.modern-table th[data-v-4f4eb450]{--un-bg-opacity:1;background-color:rgb(249 250 251 / var(--un-bg-opacity));padding:.75rem 1rem;text-align:left;font-size:.875rem;line-height:1.25rem;--un-text-opacity:1;color:rgb(55 65 81 / var(--un-text-opacity));font-weight:600}.modern-table td[data-v-4f4eb450]{border-top-width:1px;--un-border-opacity:1;border-color:rgb(243 244 246 / var(--un-border-opacity));padding:.75rem 1rem;font-size:.875rem;line-height:1.25rem;--un-text-opacity:1;color:rgb(75 85 99 / var(--un-text-opacity))}.hover-highlight[data-v-4f4eb450]:hover{--un-bg-opacity:1;background-color:rgb(249 250 251 / var(--un-bg-opacity))}.locale-code[data-v-4f4eb450]{border-radius:.25rem;--un-bg-opacity:1;background-color:rgb(239 246 255 / var(--un-bg-opacity));padding:.25rem .5rem;font-size:.875rem;line-height:1.25rem;--un-text-opacity:1;color:rgb(29 78 216 / var(--un-text-opacity));font-family:DM Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.dir-indicator[data-v-4f4eb450]{display:inline-block;border-radius:9999px;padding:.25rem .5rem;font-size:.75rem;line-height:1rem;font-weight:500}.dir-indicator[data-dir=ltr][data-v-4f4eb450]{--un-bg-opacity:1;background-color:rgb(243 232 255 / var(--un-bg-opacity));--un-text-opacity:1;color:rgb(107 33 168 / var(--un-text-opacity))}.dir-indicator[data-dir=rtl][data-v-4f4eb450]{--un-bg-opacity:1;background-color:rgb(255 237 213 / var(--un-bg-opacity));--un-text-opacity:1;color:rgb(154 52 18 / var(--un-text-opacity))}.status-pill[data-v-4f4eb450]{border-radius:9999px;padding:.125rem .625rem;font-size:.75rem;line-height:1rem;font-weight:500}.status-dot[data-v-4f4eb450]{margin-right:.5rem;display:inline-block;width:.5rem;height:.5rem;border-radius:9999px}.locale-table-container[data-v-4f4eb450]{overflow:hidden;border-width:1px;border-radius:.5rem;--un-shadow:var(--un-shadow-inset) 0 1px 2px 0 var(--un-shadow-color, rgb(0 0 0 / .05));box-shadow:var(--un-ring-offset-shadow),var(--un-ring-shadow),var(--un-shadow)}