From 8e26d3046052d0d8f9998d0c40cbef6205f1c185 Mon Sep 17 00:00:00 2001 From: Bryan Helmkamp Date: Wed, 8 Apr 2026 12:10:34 -0400 Subject: [PATCH] fix(fabro-web): default unsaved theme selection to dark Remove the system color-scheme fallback from the web UI theme boot path. Fabro now uses a saved light/dark preference when present and otherwise starts in dark mode by default. Add a regression test for the shared theme selection helper and refresh the built web assets. --- .../fabro-web/app/lib/theme-selection.test.ts | 24 +++ apps/fabro-web/app/lib/theme-selection.ts | 16 ++ apps/fabro-web/app/lib/theme.tsx | 12 +- apps/fabro-web/app/root.tsx | 3 +- apps/fabro-web/dist/assets/app.css | 2 +- .../{entry-tfe07zw7.js => entry-9ys2gakq.js} | 178 +++++++++--------- ...-tfe07zw7.js.map => entry-9ys2gakq.js.map} | 13 +- apps/fabro-web/dist/index.html | 6 +- apps/fabro-web/index.template.html | 4 +- 9 files changed, 147 insertions(+), 111 deletions(-) create mode 100644 apps/fabro-web/app/lib/theme-selection.test.ts create mode 100644 apps/fabro-web/app/lib/theme-selection.ts rename apps/fabro-web/dist/assets/{entry-tfe07zw7.js => entry-9ys2gakq.js} (79%) rename apps/fabro-web/dist/assets/{entry-tfe07zw7.js.map => entry-9ys2gakq.js.map} (86%) diff --git a/apps/fabro-web/app/lib/theme-selection.test.ts b/apps/fabro-web/app/lib/theme-selection.test.ts new file mode 100644 index 000000000..fad7568cf --- /dev/null +++ b/apps/fabro-web/app/lib/theme-selection.test.ts @@ -0,0 +1,24 @@ +import { describe, expect, test } from "bun:test"; +import { buildThemeBootScript, resolveTheme } from "./theme-selection"; + +describe("resolveTheme", () => { + test("defaults to dark when no saved theme exists", () => { + expect(resolveTheme(null)).toBe("dark"); + expect(resolveTheme("system")).toBe("dark"); + }); + + test("uses the saved theme when it is valid", () => { + expect(resolveTheme("light")).toBe("light"); + expect(resolveTheme("dark")).toBe("dark"); + }); +}); + +describe("buildThemeBootScript", () => { + test("defaults the boot script to dark without using system preference", () => { + const script = buildThemeBootScript(); + + expect(script).toContain('localStorage.getItem("fabro-theme")'); + expect(script).toContain('t="dark"'); + expect(script).not.toContain("matchMedia"); + }); +}); diff --git a/apps/fabro-web/app/lib/theme-selection.ts b/apps/fabro-web/app/lib/theme-selection.ts new file mode 100644 index 000000000..aa4a06013 --- /dev/null +++ b/apps/fabro-web/app/lib/theme-selection.ts @@ -0,0 +1,16 @@ +type Theme = "light" | "dark"; + +const STORAGE_KEY = "fabro-theme"; + +function resolveTheme(storedTheme: string | null): Theme { + return storedTheme === "light" || storedTheme === "dark" + ? storedTheme + : "dark"; +} + +function buildThemeBootScript(storageKey = STORAGE_KEY) { + return `(function(){try{var t=localStorage.getItem("${storageKey}");if(t!=="light"&&t!=="dark")t="dark";document.documentElement.classList.add(t)}catch(e){document.documentElement.classList.add("dark")}})()`; +} + +export { STORAGE_KEY, buildThemeBootScript, resolveTheme }; +export type { Theme }; diff --git a/apps/fabro-web/app/lib/theme.tsx b/apps/fabro-web/app/lib/theme.tsx index 534cdb6dd..948340fe9 100644 --- a/apps/fabro-web/app/lib/theme.tsx +++ b/apps/fabro-web/app/lib/theme.tsx @@ -1,16 +1,10 @@ import { createContext, useCallback, useContext, useEffect, useState } from "react"; - -type Theme = "light" | "dark"; - -const STORAGE_KEY = "fabro-theme"; +import { STORAGE_KEY, resolveTheme } from "./theme-selection"; +import type { Theme } from "./theme-selection"; function getInitialTheme(): Theme { if (typeof window === "undefined") return "dark"; - const stored = localStorage.getItem(STORAGE_KEY); - if (stored === "light" || stored === "dark") return stored; - return window.matchMedia("(prefers-color-scheme: dark)").matches - ? "dark" - : "light"; + return resolveTheme(localStorage.getItem(STORAGE_KEY)); } function applyThemeClass(theme: Theme) { diff --git a/apps/fabro-web/app/root.tsx b/apps/fabro-web/app/root.tsx index 9864ba8ff..6b938eac9 100644 --- a/apps/fabro-web/app/root.tsx +++ b/apps/fabro-web/app/root.tsx @@ -1,8 +1,9 @@ import { isRouteErrorResponse, Outlet } from "react-router"; import { ThemeProvider } from "./lib/theme"; +import { buildThemeBootScript } from "./lib/theme-selection"; import "./app.css"; -const themeScript = `(function(){try{var t=localStorage.getItem("fabro-theme");if(t!=="light"&&t!=="dark")t=window.matchMedia("(prefers-color-scheme:dark)").matches?"dark":"light";document.documentElement.classList.add(t)}catch(e){document.documentElement.classList.add("dark")}})()`; +const themeScript = buildThemeBootScript(); export default function Root() { return ( diff --git a/apps/fabro-web/dist/assets/app.css b/apps/fabro-web/dist/assets/app.css index d8cb07fb2..cdd5d0219 100644 --- a/apps/fabro-web/dist/assets/app.css +++ b/apps/fabro-web/dist/assets/app.css @@ -1,2 +1,2 @@ /*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */ -@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-content:"";--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@layer theme{:root,:host{--font-sans:"Geist", ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:"JetBrains Mono", ui-monospace, monospace;--color-teal-100:oklch(95.3% .051 180.801);--color-teal-300:#b5ddef;--color-teal-500:#67b2d7;--color-teal-600:oklch(60% .118 184.704);--color-teal-700:#357f9e;--color-teal-950:oklch(27.7% .046 192.524);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--container-2xl:42rem;--container-3xl:48rem;--container-4xl:56rem;--container-5xl:64rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tighter:-.05em;--tracking-tight:-.025em;--tracking-wide:.025em;--tracking-wider:.05em;--leading-snug:1.375;--leading-relaxed:1.625;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--ease-in:cubic-bezier(.4, 0, 1, 1);--ease-out:cubic-bezier(0, 0, .2, 1);--animate-spin:spin 1s linear infinite;--blur-sm:8px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-navy-950:#0f1729;--color-mint:#5ac8a8;--color-amber:#f0a45b;--color-coral:#e86b6b;--color-page:#0f1729;--color-panel:#252c3d;--color-panel-alt:#1a2133;--color-overlay:#ffffff0a;--color-overlay-strong:#ffffff1a;--color-fg:#fff;--color-fg-2:#e8edf3;--color-fg-3:#a8b5c5;--color-fg-muted:#4b5768;--color-line:#ffffff0f;--color-line-strong:#ffffff1f;--color-focus:#67b2d766}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}a[href],button,select,summary,[role=button],[role=link],[role=option],[role=menuitem],[role=tab]{cursor:pointer}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.-inset-0\.5{inset:calc(var(--spacing) * -.5)}.-inset-1\.5{inset:calc(var(--spacing) * -1.5)}.-inset-px{inset:-1px}.inset-0{inset:calc(var(--spacing) * 0)}.inset-x-0{inset-inline:calc(var(--spacing) * 0)}.inset-x-3{inset-inline:calc(var(--spacing) * 3)}.start{inset-inline-start:var(--spacing)}.\!end{inset-inline-end:var(--spacing)!important}.end{inset-inline-end:var(--spacing)}.top-0{top:calc(var(--spacing) * 0)}.top-1\/2{top:50%}.top-3{top:calc(var(--spacing) * 3)}.top-6{top:calc(var(--spacing) * 6)}.top-full{top:100%}.right-0{right:calc(var(--spacing) * 0)}.right-2{right:calc(var(--spacing) * 2)}.right-3{right:calc(var(--spacing) * 3)}.bottom-3{bottom:calc(var(--spacing) * 3)}.left-3{left:calc(var(--spacing) * 3)}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.\!container{width:100%!important}@media (min-width:40rem){.\!container{max-width:40rem!important}}@media (min-width:48rem){.\!container{max-width:48rem!important}}@media (min-width:64rem){.\!container{max-width:64rem!important}}@media (min-width:80rem){.\!container{max-width:80rem!important}}@media (min-width:96rem){.\!container{max-width:96rem!important}}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.-mx-4{margin-inline:calc(var(--spacing) * -4)}.mx-auto{margin-inline:auto}.-my-6{margin-block:calc(var(--spacing) * -6)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mt-10{margin-top:calc(var(--spacing) * 10)}.mt-12{margin-top:calc(var(--spacing) * 12)}.-mr-2{margin-right:calc(var(--spacing) * -2)}.-mb-px{margin-bottom:-1px}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.mb-8{margin-bottom:calc(var(--spacing) * 8)}.-ml-px{margin-left:-1px}.ml-1{margin-left:calc(var(--spacing) * 1)}.ml-1\.5{margin-left:calc(var(--spacing) * 1.5)}.ml-3{margin-left:calc(var(--spacing) * 3)}.ml-4{margin-left:calc(var(--spacing) * 4)}.ml-10{margin-left:calc(var(--spacing) * 10)}.ml-auto{margin-left:auto}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.table{display:table}.size-1\.5{width:calc(var(--spacing) * 1.5);height:calc(var(--spacing) * 1.5)}.size-2{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.size-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-8{height:calc(var(--spacing) * 8)}.h-12{height:calc(var(--spacing) * 12)}.h-16{height:calc(var(--spacing) * 16)}.h-48{height:calc(var(--spacing) * 48)}.h-64{height:calc(var(--spacing) * 64)}.h-full{height:100%}.max-h-64{max-height:calc(var(--spacing) * 64)}.min-h-\[7lh\]{min-height:7lh}.min-h-full{min-height:100%}.min-h-screen{min-height:100vh}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-12{width:calc(var(--spacing) * 12)}.w-48{width:calc(var(--spacing) * 48)}.w-56{width:calc(var(--spacing) * 56)}.w-auto{width:auto}.w-full{width:100%}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-5xl{max-width:var(--container-5xl)}.max-w-\[120px\]{max-width:120px}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-prose{max-width:65ch}.max-w-sm{max-width:var(--container-sm)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-\[280px\]{min-width:280px}.flex-1{flex:1}.flex-shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.flex-grow{flex-grow:1}.origin-top-right{transform-origin:100% 0}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.rotate-90{rotate:90deg}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-spin{animation:var(--animate-spin)}.cursor-pointer{cursor:pointer}.resize{resize:both}.resize-none{resize:none}.resize-y{resize:vertical}.appearance-none{appearance:none}.grid-rows-\[0fr\]{grid-template-rows:0fr}.grid-rows-\[1fr\]{grid-template-rows:1fr}.flex-col{flex-direction:column}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-3\.5{gap:calc(var(--spacing) * 3.5)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-px>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(1px * var(--tw-space-y-reverse));margin-block-end:calc(1px * calc(1 - var(--tw-space-y-reverse)))}:where(.space-x-4>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 4) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-x-reverse)))}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-l-md{border-top-left-radius:var(--radius-md);border-bottom-left-radius:var(--radius-md)}.rounded-r-md{border-top-right-radius:var(--radius-md);border-bottom-right-radius:var(--radius-md)}.border{border-style:var(--tw-border-style);border-width:1px}.border-y{border-block-style:var(--tw-border-style);border-block-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-r-0{border-right-style:var(--tw-border-style);border-right-width:0}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-amber\/10{border-color:#f0a45b1a}@supports (color:color-mix(in lab, red, red)){.border-amber\/10{border-color:color-mix(in oklab, var(--color-amber) 10%, transparent)}}.border-amber\/20{border-color:#f0a45b33}@supports (color:color-mix(in lab, red, red)){.border-amber\/20{border-color:color-mix(in oklab, var(--color-amber) 20%, transparent)}}.border-fg-muted{border-color:var(--color-fg-muted)}.border-focus{border-color:var(--color-focus)}.border-line{border-color:var(--color-line)}.border-line-strong{border-color:var(--color-line-strong)}.border-mint\/20{border-color:#5ac8a833}@supports (color:color-mix(in lab, red, red)){.border-mint\/20{border-color:color-mix(in oklab, var(--color-mint) 20%, transparent)}}.border-teal-500{border-color:var(--color-teal-500)}.border-teal-500\/10{border-color:#67b2d71a}@supports (color:color-mix(in lab, red, red)){.border-teal-500\/10{border-color:color-mix(in oklab, var(--color-teal-500) 10%, transparent)}}.border-teal-500\/20{border-color:#67b2d733}@supports (color:color-mix(in lab, red, red)){.border-teal-500\/20{border-color:color-mix(in oklab, var(--color-teal-500) 20%, transparent)}}.border-teal-500\/30{border-color:#67b2d74d}@supports (color:color-mix(in lab, red, red)){.border-teal-500\/30{border-color:color-mix(in oklab, var(--color-teal-500) 30%, transparent)}}.border-transparent{border-color:#0000}.bg-amber{background-color:var(--color-amber)}.bg-amber\/5{background-color:#f0a45b0d}@supports (color:color-mix(in lab, red, red)){.bg-amber\/5{background-color:color-mix(in oklab, var(--color-amber) 5%, transparent)}}.bg-black\/60{background-color:#0009}@supports (color:color-mix(in lab, red, red)){.bg-black\/60{background-color:color-mix(in oklab, var(--color-black) 60%, transparent)}}.bg-coral{background-color:var(--color-coral)}.bg-mint{background-color:var(--color-mint)}.bg-mint\/5{background-color:#5ac8a80d}@supports (color:color-mix(in lab, red, red)){.bg-mint\/5{background-color:color-mix(in oklab, var(--color-mint) 5%, transparent)}}.bg-overlay{background-color:var(--color-overlay)}.bg-overlay-strong{background-color:var(--color-overlay-strong)}.bg-page{background-color:var(--color-page)}.bg-page\/50{background-color:#0f172980}@supports (color:color-mix(in lab, red, red)){.bg-page\/50{background-color:color-mix(in oklab, var(--color-page) 50%, transparent)}}.bg-page\/60{background-color:#0f172999}@supports (color:color-mix(in lab, red, red)){.bg-page\/60{background-color:color-mix(in oklab, var(--color-page) 60%, transparent)}}.bg-page\/80{background-color:#0f1729cc}@supports (color:color-mix(in lab, red, red)){.bg-page\/80{background-color:color-mix(in oklab, var(--color-page) 80%, transparent)}}.bg-panel{background-color:var(--color-panel)}.bg-panel-alt\/40{background-color:#1a213366}@supports (color:color-mix(in lab, red, red)){.bg-panel-alt\/40{background-color:color-mix(in oklab, var(--color-panel-alt) 40%, transparent)}}.bg-panel-alt\/60{background-color:#1a213399}@supports (color:color-mix(in lab, red, red)){.bg-panel-alt\/60{background-color:color-mix(in oklab, var(--color-panel-alt) 60%, transparent)}}.bg-panel-alt\/90{background-color:#1a2133e6}@supports (color:color-mix(in lab, red, red)){.bg-panel-alt\/90{background-color:color-mix(in oklab, var(--color-panel-alt) 90%, transparent)}}.bg-panel\/40{background-color:#252c3d66}@supports (color:color-mix(in lab, red, red)){.bg-panel\/40{background-color:color-mix(in oklab, var(--color-panel) 40%, transparent)}}.bg-panel\/50{background-color:#252c3d80}@supports (color:color-mix(in lab, red, red)){.bg-panel\/50{background-color:color-mix(in oklab, var(--color-panel) 50%, transparent)}}.bg-panel\/60{background-color:#252c3d99}@supports (color:color-mix(in lab, red, red)){.bg-panel\/60{background-color:color-mix(in oklab, var(--color-panel) 60%, transparent)}}.bg-panel\/80{background-color:#252c3dcc}@supports (color:color-mix(in lab, red, red)){.bg-panel\/80{background-color:color-mix(in oklab, var(--color-panel) 80%, transparent)}}.bg-panel\/90{background-color:#252c3de6}@supports (color:color-mix(in lab, red, red)){.bg-panel\/90{background-color:color-mix(in oklab, var(--color-panel) 90%, transparent)}}.bg-teal-300{background-color:var(--color-teal-300)}.bg-teal-500{background-color:var(--color-teal-500)}.bg-teal-500\/5{background-color:#67b2d70d}@supports (color:color-mix(in lab, red, red)){.bg-teal-500\/5{background-color:color-mix(in oklab, var(--color-teal-500) 5%, transparent)}}.bg-teal-500\/10{background-color:#67b2d71a}@supports (color:color-mix(in lab, red, red)){.bg-teal-500\/10{background-color:color-mix(in oklab, var(--color-teal-500) 10%, transparent)}}.bg-teal-500\/50{background-color:#67b2d780}@supports (color:color-mix(in lab, red, red)){.bg-teal-500\/50{background-color:color-mix(in oklab, var(--color-teal-500) 50%, transparent)}}.bg-teal-600{background-color:var(--color-teal-600)}.bg-teal-950\/30{background-color:#022f2e4d}@supports (color:color-mix(in lab, red, red)){.bg-teal-950\/30{background-color:color-mix(in oklab, var(--color-teal-950) 30%, transparent)}}.bg-transparent{background-color:#0000}.bg-gradient-to-b{--tw-gradient-position:to bottom in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-teal-500\/30{--tw-gradient-from:#67b2d74d}@supports (color:color-mix(in lab, red, red)){.from-teal-500\/30{--tw-gradient-from:color-mix(in oklab, var(--color-teal-500) 30%, transparent)}}.from-teal-500\/30{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-mint\/20{--tw-gradient-to:#5ac8a833}@supports (color:color-mix(in lab, red, red)){.to-mint\/20{--tw-gradient-to:color-mix(in oklab, var(--color-mint) 20%, transparent)}}.to-mint\/20{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:calc(var(--spacing) * 1)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-3\.5{padding-inline:calc(var(--spacing) * 3.5)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-3\.5{padding-block:calc(var(--spacing) * 3.5)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-12{padding-block:calc(var(--spacing) * 12)}.py-24{padding-block:calc(var(--spacing) * 24)}.py-px{padding-block:1px}.pt-1{padding-top:calc(var(--spacing) * 1)}.pt-1\.5{padding-top:calc(var(--spacing) * 1.5)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-\[12vh\]{padding-top:12vh}.pt-\[15vh\]{padding-top:15vh}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-14{padding-bottom:calc(var(--spacing) * 14)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-9{padding-left:calc(var(--spacing) * 9)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-lg\/6{font-size:var(--text-lg);line-height:calc(var(--spacing) * 6)}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[2rem\]{font-size:2rem}.text-\[8rem\]{font-size:8rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[15px\]{font-size:15px}.leading-\[1\.625rem\]{--tw-leading:1.625rem;line-height:1.625rem}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-tighter{--tw-tracking:var(--tracking-tighter);letter-spacing:var(--tracking-tighter)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-amber{color:var(--color-amber)}.text-amber\/70{color:#f0a45bb3}@supports (color:color-mix(in lab, red, red)){.text-amber\/70{color:color-mix(in oklab, var(--color-amber) 70%, transparent)}}.text-coral{color:var(--color-coral)}.text-fg{color:var(--color-fg)}.text-fg-2{color:var(--color-fg-2)}.text-fg-3{color:var(--color-fg-3)}.text-fg-muted{color:var(--color-fg-muted)}.text-fg-muted\/60{color:#4b576899}@supports (color:color-mix(in lab, red, red)){.text-fg-muted\/60{color:color-mix(in oklab, var(--color-fg-muted) 60%, transparent)}}.text-mint{color:var(--color-mint)}.text-navy-950{color:var(--color-navy-950)}.text-teal-100{color:var(--color-teal-100)}.text-teal-300{color:var(--color-teal-300)}.text-teal-500{color:var(--color-teal-500)}.text-white{color:var(--color-white)}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.line-through{text-decoration-line:line-through}.overline{text-decoration-line:overline}.underline{text-decoration-line:underline}.placeholder-fg-muted::placeholder{color:var(--color-fg-muted)}.opacity-0{opacity:0}.opacity-60{opacity:.6}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-black\/30{--tw-shadow-color:#0000004d}@supports (color:color-mix(in lab, red, red)){.shadow-black\/30{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-black) 30%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-black\/40{--tw-shadow-color:#0006}@supports (color:color-mix(in lab, red, red)){.shadow-black\/40{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-black) 40%, transparent) var(--tw-shadow-alpha), transparent)}}.outline,.outline-1{outline-style:var(--tw-outline-style);outline-width:1px}.-outline-offset-1{outline-offset:calc(1px * -1)}.outline-line-strong{outline-color:var(--color-line-strong)}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.blur-sm{--tw-blur:blur(var(--blur-sm));filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter\!{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)!important}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[grid-template-rows\]{transition-property:grid-template-rows;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.\[--anchor-gap\:4px\]{--anchor-gap:4px}.group-focus-within\:border-focus:is(:where(.group):focus-within *){border-color:var(--color-focus)}.group-focus-within\:opacity-100:is(:where(.group):focus-within *){opacity:1}@media (hover:hover){.group-hover\:text-fg:is(:where(.group):hover *){color:var(--color-fg)}}.group-data-open\:block:is(:where(.group)[data-open] *){display:block}.group-data-open\:hidden:is(:where(.group)[data-open] *){display:none}.placeholder\:text-fg-muted::placeholder{color:var(--color-fg-muted)}.after\:pointer-events-none:after{content:var(--tw-content);pointer-events:none}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:inset-x-0:after{content:var(--tw-content);inset-inline:calc(var(--spacing) * 0)}.after\:inset-y-0:after{content:var(--tw-content);inset-block:calc(var(--spacing) * 0)}.after\:bottom-0:after{content:var(--tw-content);bottom:calc(var(--spacing) * 0)}.after\:border-y:after{content:var(--tw-content);border-block-style:var(--tw-border-style);border-block-width:1px}.after\:border-line-strong:after{content:var(--tw-content);border-color:var(--color-line-strong)}.last\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}@media (hover:hover){.hover\:border-amber\/50:hover{border-color:#f0a45b80}@supports (color:color-mix(in lab, red, red)){.hover\:border-amber\/50:hover{border-color:color-mix(in oklab, var(--color-amber) 50%, transparent)}}.hover\:border-line-strong:hover{border-color:var(--color-line-strong)}.hover\:border-mint\/50:hover{border-color:#5ac8a880}@supports (color:color-mix(in lab, red, red)){.hover\:border-mint\/50:hover{border-color:color-mix(in oklab, var(--color-mint) 50%, transparent)}}.hover\:border-teal-500\/30:hover{border-color:#67b2d74d}@supports (color:color-mix(in lab, red, red)){.hover\:border-teal-500\/30:hover{border-color:color-mix(in oklab, var(--color-teal-500) 30%, transparent)}}.hover\:border-teal-500\/40:hover{border-color:#67b2d766}@supports (color:color-mix(in lab, red, red)){.hover\:border-teal-500\/40:hover{border-color:color-mix(in oklab, var(--color-teal-500) 40%, transparent)}}.hover\:border-teal-500\/50:hover{border-color:#67b2d780}@supports (color:color-mix(in lab, red, red)){.hover\:border-teal-500\/50:hover{border-color:color-mix(in oklab, var(--color-teal-500) 50%, transparent)}}.hover\:bg-amber\/10:hover{background-color:#f0a45b1a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-amber\/10:hover{background-color:color-mix(in oklab, var(--color-amber) 10%, transparent)}}.hover\:bg-mint\/10:hover{background-color:#5ac8a81a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-mint\/10:hover{background-color:color-mix(in oklab, var(--color-mint) 10%, transparent)}}.hover\:bg-overlay:hover{background-color:var(--color-overlay)}.hover\:bg-overlay-strong:hover{background-color:var(--color-overlay-strong)}.hover\:bg-page\/80:hover{background-color:#0f1729cc}@supports (color:color-mix(in lab, red, red)){.hover\:bg-page\/80:hover{background-color:color-mix(in oklab, var(--color-page) 80%, transparent)}}.hover\:bg-panel:hover{background-color:var(--color-panel)}.hover\:bg-panel\/80:hover{background-color:#252c3dcc}@supports (color:color-mix(in lab, red, red)){.hover\:bg-panel\/80:hover{background-color:color-mix(in oklab, var(--color-panel) 80%, transparent)}}.hover\:bg-teal-300:hover{background-color:var(--color-teal-300)}.hover\:bg-teal-500:hover{background-color:var(--color-teal-500)}.hover\:bg-teal-500\/10:hover{background-color:#67b2d71a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-teal-500\/10:hover{background-color:color-mix(in oklab, var(--color-teal-500) 10%, transparent)}}.hover\:bg-teal-500\/15:hover{background-color:#67b2d726}@supports (color:color-mix(in lab, red, red)){.hover\:bg-teal-500\/15:hover{background-color:color-mix(in oklab, var(--color-teal-500) 15%, transparent)}}.hover\:bg-teal-500\/20:hover{background-color:#67b2d733}@supports (color:color-mix(in lab, red, red)){.hover\:bg-teal-500\/20:hover{background-color:color-mix(in oklab, var(--color-teal-500) 20%, transparent)}}.hover\:text-fg:hover{color:var(--color-fg)}.hover\:text-fg-2:hover{color:var(--color-fg-2)}.hover\:text-fg-3:hover{color:var(--color-fg-3)}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-lg:hover{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.hover\:shadow-black\/20:hover{--tw-shadow-color:#0003}@supports (color:color-mix(in lab, red, red)){.hover\:shadow-black\/20:hover{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-black) 20%, transparent) var(--tw-shadow-alpha), transparent)}}}.focus\:border-focus:focus{border-color:var(--color-focus)}.focus\:ring-0:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:outline-2:focus{outline-style:var(--tw-outline-style);outline-width:2px}.focus\:outline-offset-2:focus{outline-offset:2px}.focus\:outline-teal-500:focus{outline-color:var(--color-teal-500)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:outline-2:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px}.focus-visible\:outline-offset-2:focus-visible{outline-offset:2px}.focus-visible\:outline-teal-500:focus-visible{outline-color:var(--color-teal-500)}.disabled\:cursor-default:disabled{cursor:default}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:border-line:disabled{border-color:var(--color-line)}.disabled\:text-fg-muted:disabled{color:var(--color-fg-muted)}.disabled\:opacity-30:disabled{opacity:.3}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}@media (hover:hover){.disabled\:hover\:border-mint\/20:disabled:hover{border-color:#5ac8a833}@supports (color:color-mix(in lab, red, red)){.disabled\:hover\:border-mint\/20:disabled:hover{border-color:color-mix(in oklab, var(--color-mint) 20%, transparent)}}.disabled\:hover\:bg-mint\/5:disabled:hover{background-color:#5ac8a80d}@supports (color:color-mix(in lab, red, red)){.disabled\:hover\:bg-mint\/5:disabled:hover{background-color:color-mix(in oklab, var(--color-mint) 5%, transparent)}}.disabled\:hover\:bg-teal-500:disabled:hover{background-color:var(--color-teal-500)}.disabled\:hover\:bg-teal-600:disabled:hover{background-color:var(--color-teal-600)}.disabled\:hover\:bg-transparent:disabled:hover{background-color:#0000}.disabled\:hover\:text-fg-muted:disabled:hover{color:var(--color-fg-muted)}.disabled\:hover\:text-mint:disabled:hover{color:var(--color-mint)}}.data-closed\:scale-95[data-closed]{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x) var(--tw-scale-y)}.data-closed\:transform[data-closed]{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.data-closed\:opacity-0[data-closed]{opacity:0}.data-enter\:duration-100[data-enter]{--tw-duration:.1s;transition-duration:.1s}.data-enter\:ease-out[data-enter]{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.data-focus\:bg-overlay[data-focus]{background-color:var(--color-overlay)}.data-focus\:text-fg[data-focus]{color:var(--color-fg)}.data-focus\:outline-hidden[data-focus]{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.data-focus\:outline-hidden[data-focus]{outline-offset:2px;outline:2px solid #0000}}.data-leave\:duration-75[data-leave]{--tw-duration:75ms;transition-duration:75ms}.data-leave\:ease-in[data-leave]{--tw-ease:var(--ease-in);transition-timing-function:var(--ease-in)}.data-selected\:text-teal-300[data-selected]{color:var(--color-teal-300)}@media (min-width:40rem){.sm\:-mx-6{margin-inline:calc(var(--spacing) * -6)}.sm\:inline{display:inline}.sm\:px-3{padding-inline:calc(var(--spacing) * 3)}.sm\:px-6{padding-inline:calc(var(--spacing) * 6)}}@media (min-width:48rem){.md\:ml-6{margin-left:calc(var(--spacing) * 6)}.md\:block{display:block}.md\:hidden{display:none}}@media (min-width:64rem){.lg\:-mx-8{margin-inline:calc(var(--spacing) * -8)}.lg\:px-8{padding-inline:calc(var(--spacing) * 8)}}}.light{--color-page:#fff;--color-panel:#f8fafc;--color-panel-alt:#f1f5f9;--color-overlay:#0000000a;--color-overlay-strong:#0000001a;--color-fg:#0f172a;--color-fg-2:#1e293b;--color-fg-3:#475569;--color-fg-muted:#94a3b8;--color-line:#00000014;--color-line-strong:#00000026;--color-focus:#0e749080;--color-mint:#0d9488;--color-amber:#d97706;--color-coral:#dc2626;--color-teal-300:#0891b2;--color-teal-500:#0e7490}:root{--chart-gridline:#ffffff0a;--chart-axis-label:#4b5768}.light{--chart-gridline:#0000000f;--chart-axis-label:#475569}.bg-atmosphere{background-color:var(--color-page);background-image:radial-gradient(120% 60% at 15% 5%,#357f9e1f 0%,#0000 50%),radial-gradient(80% 50% at 85% 90%,#5ac8a812 0%,#0000 45%);background-attachment:fixed}.light .bg-atmosphere,.light.bg-atmosphere{background-image:radial-gradient(120% 60% at 15% 5%,#0e74900f 0%,#0000 50%),radial-gradient(80% 50% at 85% 90%,#0d94880a 0%,#0000 45%)}.bg-atmosphere:before{content:"";z-index:1;pointer-events:none;opacity:.07;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-repeat:repeat;background-size:200px 200px;position:fixed;inset:0}.light .bg-atmosphere:before,.light.bg-atmosphere:before{opacity:.03}:root{--diffs-font-family:"JetBrains Mono", ui-monospace, monospace;--diffs-header-font-family:"Geist", ui-sans-serif, system-ui, sans-serif;--diffs-font-size:13px;--diffs-line-height:20px;--diffs-bg-buffer-override:#0f1729;--diffs-bg-context-override:#161d2e;--diffs-bg-hover-override:#1c2438;--diffs-bg-separator-override:#252c3d;--diffs-fg-number-override:#4b5768;--diffs-addition-color-override:#5ac8a8;--diffs-fg-number-addition-override:#5ac8a880;--diffs-deletion-color-override:#e86b6b;--diffs-fg-number-deletion-override:#e86b6b80}.light{--diffs-bg-buffer-override:#fff;--diffs-bg-context-override:#f8fafc;--diffs-bg-hover-override:#f1f5f9;--diffs-bg-separator-override:#e2e8f0;--diffs-fg-number-override:#94a3b8;--diffs-addition-color-override:#0d9488;--diffs-fg-number-addition-override:#0d948880;--diffs-deletion-color-override:#dc2626;--diffs-fg-number-deletion-override:#dc262680}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@keyframes spin{to{transform:rotate(360deg)}} \ No newline at end of file +@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-content:"";--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@layer theme{:root,:host{--font-sans:"Geist", ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:"JetBrains Mono", ui-monospace, monospace;--color-teal-100:oklch(95.3% .051 180.801);--color-teal-300:#b5ddef;--color-teal-500:#67b2d7;--color-teal-600:oklch(60% .118 184.704);--color-teal-700:#357f9e;--color-teal-950:oklch(27.7% .046 192.524);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--container-2xl:42rem;--container-3xl:48rem;--container-4xl:56rem;--container-5xl:64rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tighter:-.05em;--tracking-tight:-.025em;--tracking-wide:.025em;--tracking-wider:.05em;--leading-snug:1.375;--leading-relaxed:1.625;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--ease-in:cubic-bezier(.4, 0, 1, 1);--ease-out:cubic-bezier(0, 0, .2, 1);--animate-spin:spin 1s linear infinite;--blur-sm:8px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-navy-950:#0f1729;--color-mint:#5ac8a8;--color-amber:#f0a45b;--color-coral:#e86b6b;--color-page:#0f1729;--color-panel:#252c3d;--color-panel-alt:#1a2133;--color-overlay:#ffffff0a;--color-overlay-strong:#ffffff1a;--color-fg:#fff;--color-fg-2:#e8edf3;--color-fg-3:#a8b5c5;--color-fg-muted:#4b5768;--color-line:#ffffff0f;--color-line-strong:#ffffff1f;--color-focus:#67b2d766}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}a[href],button,select,summary,[role=button],[role=link],[role=option],[role=menuitem],[role=tab]{cursor:pointer}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.-inset-0\.5{inset:calc(var(--spacing) * -.5)}.-inset-1\.5{inset:calc(var(--spacing) * -1.5)}.-inset-px{inset:-1px}.inset-0{inset:calc(var(--spacing) * 0)}.inset-x-0{inset-inline:calc(var(--spacing) * 0)}.inset-x-3{inset-inline:calc(var(--spacing) * 3)}.start{inset-inline-start:var(--spacing)}.\!end{inset-inline-end:var(--spacing)!important}.end{inset-inline-end:var(--spacing)}.top-0{top:calc(var(--spacing) * 0)}.top-1\/2{top:50%}.top-3{top:calc(var(--spacing) * 3)}.top-6{top:calc(var(--spacing) * 6)}.top-full{top:100%}.right-0{right:calc(var(--spacing) * 0)}.right-2{right:calc(var(--spacing) * 2)}.right-3{right:calc(var(--spacing) * 3)}.bottom-3{bottom:calc(var(--spacing) * 3)}.left-3{left:calc(var(--spacing) * 3)}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.\!container{width:100%!important}@media (min-width:40rem){.\!container{max-width:40rem!important}}@media (min-width:48rem){.\!container{max-width:48rem!important}}@media (min-width:64rem){.\!container{max-width:64rem!important}}@media (min-width:80rem){.\!container{max-width:80rem!important}}@media (min-width:96rem){.\!container{max-width:96rem!important}}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.-mx-4{margin-inline:calc(var(--spacing) * -4)}.mx-auto{margin-inline:auto}.-my-6{margin-block:calc(var(--spacing) * -6)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mt-10{margin-top:calc(var(--spacing) * 10)}.mt-12{margin-top:calc(var(--spacing) * 12)}.-mr-2{margin-right:calc(var(--spacing) * -2)}.-mb-px{margin-bottom:-1px}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.mb-8{margin-bottom:calc(var(--spacing) * 8)}.-ml-px{margin-left:-1px}.ml-1{margin-left:calc(var(--spacing) * 1)}.ml-1\.5{margin-left:calc(var(--spacing) * 1.5)}.ml-3{margin-left:calc(var(--spacing) * 3)}.ml-4{margin-left:calc(var(--spacing) * 4)}.ml-10{margin-left:calc(var(--spacing) * 10)}.ml-auto{margin-left:auto}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.table{display:table}.size-1\.5{width:calc(var(--spacing) * 1.5);height:calc(var(--spacing) * 1.5)}.size-2{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.size-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-8{height:calc(var(--spacing) * 8)}.h-12{height:calc(var(--spacing) * 12)}.h-16{height:calc(var(--spacing) * 16)}.h-48{height:calc(var(--spacing) * 48)}.h-64{height:calc(var(--spacing) * 64)}.h-full{height:100%}.max-h-64{max-height:calc(var(--spacing) * 64)}.min-h-\[7lh\]{min-height:7lh}.min-h-full{min-height:100%}.min-h-screen{min-height:100vh}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-12{width:calc(var(--spacing) * 12)}.w-48{width:calc(var(--spacing) * 48)}.w-56{width:calc(var(--spacing) * 56)}.w-auto{width:auto}.w-full{width:100%}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-5xl{max-width:var(--container-5xl)}.max-w-\[120px\]{max-width:120px}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-prose{max-width:65ch}.max-w-sm{max-width:var(--container-sm)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-\[280px\]{min-width:280px}.flex-1{flex:1}.flex-shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.flex-grow{flex-grow:1}.origin-top-right{transform-origin:100% 0}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.rotate-90{rotate:90deg}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-spin{animation:var(--animate-spin)}.cursor-pointer{cursor:pointer}.resize{resize:both}.resize-none{resize:none}.resize-y{resize:vertical}.appearance-none{appearance:none}.grid-rows-\[0fr\]{grid-template-rows:0fr}.grid-rows-\[1fr\]{grid-template-rows:1fr}.flex-col{flex-direction:column}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-3\.5{gap:calc(var(--spacing) * 3.5)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-px>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(1px * var(--tw-space-y-reverse));margin-block-end:calc(1px * calc(1 - var(--tw-space-y-reverse)))}:where(.space-x-4>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 4) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-x-reverse)))}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-l-md{border-top-left-radius:var(--radius-md);border-bottom-left-radius:var(--radius-md)}.rounded-r-md{border-top-right-radius:var(--radius-md);border-bottom-right-radius:var(--radius-md)}.border{border-style:var(--tw-border-style);border-width:1px}.border-y{border-block-style:var(--tw-border-style);border-block-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-r-0{border-right-style:var(--tw-border-style);border-right-width:0}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-amber\/10{border-color:#f0a45b1a}@supports (color:color-mix(in lab, red, red)){.border-amber\/10{border-color:color-mix(in oklab, var(--color-amber) 10%, transparent)}}.border-amber\/20{border-color:#f0a45b33}@supports (color:color-mix(in lab, red, red)){.border-amber\/20{border-color:color-mix(in oklab, var(--color-amber) 20%, transparent)}}.border-fg-muted{border-color:var(--color-fg-muted)}.border-focus{border-color:var(--color-focus)}.border-line{border-color:var(--color-line)}.border-line-strong{border-color:var(--color-line-strong)}.border-mint\/20{border-color:#5ac8a833}@supports (color:color-mix(in lab, red, red)){.border-mint\/20{border-color:color-mix(in oklab, var(--color-mint) 20%, transparent)}}.border-teal-500{border-color:var(--color-teal-500)}.border-teal-500\/10{border-color:#67b2d71a}@supports (color:color-mix(in lab, red, red)){.border-teal-500\/10{border-color:color-mix(in oklab, var(--color-teal-500) 10%, transparent)}}.border-teal-500\/20{border-color:#67b2d733}@supports (color:color-mix(in lab, red, red)){.border-teal-500\/20{border-color:color-mix(in oklab, var(--color-teal-500) 20%, transparent)}}.border-teal-500\/30{border-color:#67b2d74d}@supports (color:color-mix(in lab, red, red)){.border-teal-500\/30{border-color:color-mix(in oklab, var(--color-teal-500) 30%, transparent)}}.border-transparent{border-color:#0000}.bg-amber{background-color:var(--color-amber)}.bg-amber\/5{background-color:#f0a45b0d}@supports (color:color-mix(in lab, red, red)){.bg-amber\/5{background-color:color-mix(in oklab, var(--color-amber) 5%, transparent)}}.bg-black\/60{background-color:#0009}@supports (color:color-mix(in lab, red, red)){.bg-black\/60{background-color:color-mix(in oklab, var(--color-black) 60%, transparent)}}.bg-coral{background-color:var(--color-coral)}.bg-mint{background-color:var(--color-mint)}.bg-mint\/5{background-color:#5ac8a80d}@supports (color:color-mix(in lab, red, red)){.bg-mint\/5{background-color:color-mix(in oklab, var(--color-mint) 5%, transparent)}}.bg-overlay{background-color:var(--color-overlay)}.bg-overlay-strong{background-color:var(--color-overlay-strong)}.bg-page{background-color:var(--color-page)}.bg-page\/50{background-color:#0f172980}@supports (color:color-mix(in lab, red, red)){.bg-page\/50{background-color:color-mix(in oklab, var(--color-page) 50%, transparent)}}.bg-page\/60{background-color:#0f172999}@supports (color:color-mix(in lab, red, red)){.bg-page\/60{background-color:color-mix(in oklab, var(--color-page) 60%, transparent)}}.bg-page\/80{background-color:#0f1729cc}@supports (color:color-mix(in lab, red, red)){.bg-page\/80{background-color:color-mix(in oklab, var(--color-page) 80%, transparent)}}.bg-panel{background-color:var(--color-panel)}.bg-panel-alt\/40{background-color:#1a213366}@supports (color:color-mix(in lab, red, red)){.bg-panel-alt\/40{background-color:color-mix(in oklab, var(--color-panel-alt) 40%, transparent)}}.bg-panel-alt\/60{background-color:#1a213399}@supports (color:color-mix(in lab, red, red)){.bg-panel-alt\/60{background-color:color-mix(in oklab, var(--color-panel-alt) 60%, transparent)}}.bg-panel-alt\/90{background-color:#1a2133e6}@supports (color:color-mix(in lab, red, red)){.bg-panel-alt\/90{background-color:color-mix(in oklab, var(--color-panel-alt) 90%, transparent)}}.bg-panel\/40{background-color:#252c3d66}@supports (color:color-mix(in lab, red, red)){.bg-panel\/40{background-color:color-mix(in oklab, var(--color-panel) 40%, transparent)}}.bg-panel\/50{background-color:#252c3d80}@supports (color:color-mix(in lab, red, red)){.bg-panel\/50{background-color:color-mix(in oklab, var(--color-panel) 50%, transparent)}}.bg-panel\/60{background-color:#252c3d99}@supports (color:color-mix(in lab, red, red)){.bg-panel\/60{background-color:color-mix(in oklab, var(--color-panel) 60%, transparent)}}.bg-panel\/80{background-color:#252c3dcc}@supports (color:color-mix(in lab, red, red)){.bg-panel\/80{background-color:color-mix(in oklab, var(--color-panel) 80%, transparent)}}.bg-panel\/90{background-color:#252c3de6}@supports (color:color-mix(in lab, red, red)){.bg-panel\/90{background-color:color-mix(in oklab, var(--color-panel) 90%, transparent)}}.bg-teal-300{background-color:var(--color-teal-300)}.bg-teal-500{background-color:var(--color-teal-500)}.bg-teal-500\/5{background-color:#67b2d70d}@supports (color:color-mix(in lab, red, red)){.bg-teal-500\/5{background-color:color-mix(in oklab, var(--color-teal-500) 5%, transparent)}}.bg-teal-500\/10{background-color:#67b2d71a}@supports (color:color-mix(in lab, red, red)){.bg-teal-500\/10{background-color:color-mix(in oklab, var(--color-teal-500) 10%, transparent)}}.bg-teal-500\/50{background-color:#67b2d780}@supports (color:color-mix(in lab, red, red)){.bg-teal-500\/50{background-color:color-mix(in oklab, var(--color-teal-500) 50%, transparent)}}.bg-teal-600{background-color:var(--color-teal-600)}.bg-teal-950\/30{background-color:#022f2e4d}@supports (color:color-mix(in lab, red, red)){.bg-teal-950\/30{background-color:color-mix(in oklab, var(--color-teal-950) 30%, transparent)}}.bg-transparent{background-color:#0000}.bg-gradient-to-b{--tw-gradient-position:to bottom in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-teal-500\/30{--tw-gradient-from:#67b2d74d}@supports (color:color-mix(in lab, red, red)){.from-teal-500\/30{--tw-gradient-from:color-mix(in oklab, var(--color-teal-500) 30%, transparent)}}.from-teal-500\/30{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-mint\/20{--tw-gradient-to:#5ac8a833}@supports (color:color-mix(in lab, red, red)){.to-mint\/20{--tw-gradient-to:color-mix(in oklab, var(--color-mint) 20%, transparent)}}.to-mint\/20{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:calc(var(--spacing) * 1)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-3\.5{padding-inline:calc(var(--spacing) * 3.5)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-3\.5{padding-block:calc(var(--spacing) * 3.5)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-12{padding-block:calc(var(--spacing) * 12)}.py-24{padding-block:calc(var(--spacing) * 24)}.py-px{padding-block:1px}.pt-1{padding-top:calc(var(--spacing) * 1)}.pt-1\.5{padding-top:calc(var(--spacing) * 1.5)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-\[12vh\]{padding-top:12vh}.pt-\[15vh\]{padding-top:15vh}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-14{padding-bottom:calc(var(--spacing) * 14)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-9{padding-left:calc(var(--spacing) * 9)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-lg\/6{font-size:var(--text-lg);line-height:calc(var(--spacing) * 6)}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[2rem\]{font-size:2rem}.text-\[8rem\]{font-size:8rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[15px\]{font-size:15px}.leading-\[1\.625rem\]{--tw-leading:1.625rem;line-height:1.625rem}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-tighter{--tw-tracking:var(--tracking-tighter);letter-spacing:var(--tracking-tighter)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-amber{color:var(--color-amber)}.text-amber\/70{color:#f0a45bb3}@supports (color:color-mix(in lab, red, red)){.text-amber\/70{color:color-mix(in oklab, var(--color-amber) 70%, transparent)}}.text-coral{color:var(--color-coral)}.text-fg{color:var(--color-fg)}.text-fg-2{color:var(--color-fg-2)}.text-fg-3{color:var(--color-fg-3)}.text-fg-muted{color:var(--color-fg-muted)}.text-fg-muted\/60{color:#4b576899}@supports (color:color-mix(in lab, red, red)){.text-fg-muted\/60{color:color-mix(in oklab, var(--color-fg-muted) 60%, transparent)}}.text-mint{color:var(--color-mint)}.text-navy-950{color:var(--color-navy-950)}.text-teal-100{color:var(--color-teal-100)}.text-teal-300{color:var(--color-teal-300)}.text-teal-500{color:var(--color-teal-500)}.text-white{color:var(--color-white)}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.line-through{text-decoration-line:line-through}.overline{text-decoration-line:overline}.underline{text-decoration-line:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.placeholder-fg-muted::placeholder{color:var(--color-fg-muted)}.opacity-0{opacity:0}.opacity-60{opacity:.6}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-black\/30{--tw-shadow-color:#0000004d}@supports (color:color-mix(in lab, red, red)){.shadow-black\/30{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-black) 30%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-black\/40{--tw-shadow-color:#0006}@supports (color:color-mix(in lab, red, red)){.shadow-black\/40{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-black) 40%, transparent) var(--tw-shadow-alpha), transparent)}}.outline,.outline-1{outline-style:var(--tw-outline-style);outline-width:1px}.-outline-offset-1{outline-offset:calc(1px * -1)}.outline-line-strong{outline-color:var(--color-line-strong)}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.blur-sm{--tw-blur:blur(var(--blur-sm));filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter\!{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)!important}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[grid-template-rows\]{transition-property:grid-template-rows;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.\[--anchor-gap\:4px\]{--anchor-gap:4px}.group-focus-within\:border-focus:is(:where(.group):focus-within *){border-color:var(--color-focus)}.group-focus-within\:opacity-100:is(:where(.group):focus-within *){opacity:1}@media (hover:hover){.group-hover\:text-fg:is(:where(.group):hover *){color:var(--color-fg)}}.group-data-open\:block:is(:where(.group)[data-open] *){display:block}.group-data-open\:hidden:is(:where(.group)[data-open] *){display:none}.placeholder\:text-fg-muted::placeholder{color:var(--color-fg-muted)}.after\:pointer-events-none:after{content:var(--tw-content);pointer-events:none}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:inset-x-0:after{content:var(--tw-content);inset-inline:calc(var(--spacing) * 0)}.after\:inset-y-0:after{content:var(--tw-content);inset-block:calc(var(--spacing) * 0)}.after\:bottom-0:after{content:var(--tw-content);bottom:calc(var(--spacing) * 0)}.after\:border-y:after{content:var(--tw-content);border-block-style:var(--tw-border-style);border-block-width:1px}.after\:border-line-strong:after{content:var(--tw-content);border-color:var(--color-line-strong)}.last\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}@media (hover:hover){.hover\:border-amber\/50:hover{border-color:#f0a45b80}@supports (color:color-mix(in lab, red, red)){.hover\:border-amber\/50:hover{border-color:color-mix(in oklab, var(--color-amber) 50%, transparent)}}.hover\:border-line-strong:hover{border-color:var(--color-line-strong)}.hover\:border-mint\/50:hover{border-color:#5ac8a880}@supports (color:color-mix(in lab, red, red)){.hover\:border-mint\/50:hover{border-color:color-mix(in oklab, var(--color-mint) 50%, transparent)}}.hover\:border-teal-500\/30:hover{border-color:#67b2d74d}@supports (color:color-mix(in lab, red, red)){.hover\:border-teal-500\/30:hover{border-color:color-mix(in oklab, var(--color-teal-500) 30%, transparent)}}.hover\:border-teal-500\/40:hover{border-color:#67b2d766}@supports (color:color-mix(in lab, red, red)){.hover\:border-teal-500\/40:hover{border-color:color-mix(in oklab, var(--color-teal-500) 40%, transparent)}}.hover\:border-teal-500\/50:hover{border-color:#67b2d780}@supports (color:color-mix(in lab, red, red)){.hover\:border-teal-500\/50:hover{border-color:color-mix(in oklab, var(--color-teal-500) 50%, transparent)}}.hover\:bg-amber\/10:hover{background-color:#f0a45b1a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-amber\/10:hover{background-color:color-mix(in oklab, var(--color-amber) 10%, transparent)}}.hover\:bg-mint\/10:hover{background-color:#5ac8a81a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-mint\/10:hover{background-color:color-mix(in oklab, var(--color-mint) 10%, transparent)}}.hover\:bg-overlay:hover{background-color:var(--color-overlay)}.hover\:bg-overlay-strong:hover{background-color:var(--color-overlay-strong)}.hover\:bg-page\/80:hover{background-color:#0f1729cc}@supports (color:color-mix(in lab, red, red)){.hover\:bg-page\/80:hover{background-color:color-mix(in oklab, var(--color-page) 80%, transparent)}}.hover\:bg-panel:hover{background-color:var(--color-panel)}.hover\:bg-panel\/80:hover{background-color:#252c3dcc}@supports (color:color-mix(in lab, red, red)){.hover\:bg-panel\/80:hover{background-color:color-mix(in oklab, var(--color-panel) 80%, transparent)}}.hover\:bg-teal-300:hover{background-color:var(--color-teal-300)}.hover\:bg-teal-500:hover{background-color:var(--color-teal-500)}.hover\:bg-teal-500\/10:hover{background-color:#67b2d71a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-teal-500\/10:hover{background-color:color-mix(in oklab, var(--color-teal-500) 10%, transparent)}}.hover\:bg-teal-500\/15:hover{background-color:#67b2d726}@supports (color:color-mix(in lab, red, red)){.hover\:bg-teal-500\/15:hover{background-color:color-mix(in oklab, var(--color-teal-500) 15%, transparent)}}.hover\:bg-teal-500\/20:hover{background-color:#67b2d733}@supports (color:color-mix(in lab, red, red)){.hover\:bg-teal-500\/20:hover{background-color:color-mix(in oklab, var(--color-teal-500) 20%, transparent)}}.hover\:text-fg:hover{color:var(--color-fg)}.hover\:text-fg-2:hover{color:var(--color-fg-2)}.hover\:text-fg-3:hover{color:var(--color-fg-3)}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-lg:hover{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.hover\:shadow-black\/20:hover{--tw-shadow-color:#0003}@supports (color:color-mix(in lab, red, red)){.hover\:shadow-black\/20:hover{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-black) 20%, transparent) var(--tw-shadow-alpha), transparent)}}}.focus\:border-focus:focus{border-color:var(--color-focus)}.focus\:ring-0:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:outline-2:focus{outline-style:var(--tw-outline-style);outline-width:2px}.focus\:outline-offset-2:focus{outline-offset:2px}.focus\:outline-teal-500:focus{outline-color:var(--color-teal-500)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:outline-2:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px}.focus-visible\:outline-offset-2:focus-visible{outline-offset:2px}.focus-visible\:outline-teal-500:focus-visible{outline-color:var(--color-teal-500)}.disabled\:cursor-default:disabled{cursor:default}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:border-line:disabled{border-color:var(--color-line)}.disabled\:text-fg-muted:disabled{color:var(--color-fg-muted)}.disabled\:opacity-30:disabled{opacity:.3}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}@media (hover:hover){.disabled\:hover\:border-mint\/20:disabled:hover{border-color:#5ac8a833}@supports (color:color-mix(in lab, red, red)){.disabled\:hover\:border-mint\/20:disabled:hover{border-color:color-mix(in oklab, var(--color-mint) 20%, transparent)}}.disabled\:hover\:bg-mint\/5:disabled:hover{background-color:#5ac8a80d}@supports (color:color-mix(in lab, red, red)){.disabled\:hover\:bg-mint\/5:disabled:hover{background-color:color-mix(in oklab, var(--color-mint) 5%, transparent)}}.disabled\:hover\:bg-teal-500:disabled:hover{background-color:var(--color-teal-500)}.disabled\:hover\:bg-teal-600:disabled:hover{background-color:var(--color-teal-600)}.disabled\:hover\:bg-transparent:disabled:hover{background-color:#0000}.disabled\:hover\:text-fg-muted:disabled:hover{color:var(--color-fg-muted)}.disabled\:hover\:text-mint:disabled:hover{color:var(--color-mint)}}.data-closed\:scale-95[data-closed]{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x) var(--tw-scale-y)}.data-closed\:transform[data-closed]{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.data-closed\:opacity-0[data-closed]{opacity:0}.data-enter\:duration-100[data-enter]{--tw-duration:.1s;transition-duration:.1s}.data-enter\:ease-out[data-enter]{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.data-focus\:bg-overlay[data-focus]{background-color:var(--color-overlay)}.data-focus\:text-fg[data-focus]{color:var(--color-fg)}.data-focus\:outline-hidden[data-focus]{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.data-focus\:outline-hidden[data-focus]{outline-offset:2px;outline:2px solid #0000}}.data-leave\:duration-75[data-leave]{--tw-duration:75ms;transition-duration:75ms}.data-leave\:ease-in[data-leave]{--tw-ease:var(--ease-in);transition-timing-function:var(--ease-in)}.data-selected\:text-teal-300[data-selected]{color:var(--color-teal-300)}@media (min-width:40rem){.sm\:-mx-6{margin-inline:calc(var(--spacing) * -6)}.sm\:inline{display:inline}.sm\:px-3{padding-inline:calc(var(--spacing) * 3)}.sm\:px-6{padding-inline:calc(var(--spacing) * 6)}}@media (min-width:48rem){.md\:ml-6{margin-left:calc(var(--spacing) * 6)}.md\:block{display:block}.md\:hidden{display:none}}@media (min-width:64rem){.lg\:-mx-8{margin-inline:calc(var(--spacing) * -8)}.lg\:px-8{padding-inline:calc(var(--spacing) * 8)}}}.light{--color-page:#fff;--color-panel:#f8fafc;--color-panel-alt:#f1f5f9;--color-overlay:#0000000a;--color-overlay-strong:#0000001a;--color-fg:#0f172a;--color-fg-2:#1e293b;--color-fg-3:#475569;--color-fg-muted:#94a3b8;--color-line:#00000014;--color-line-strong:#00000026;--color-focus:#0e749080;--color-mint:#0d9488;--color-amber:#d97706;--color-coral:#dc2626;--color-teal-300:#0891b2;--color-teal-500:#0e7490}:root{--chart-gridline:#ffffff0a;--chart-axis-label:#4b5768}.light{--chart-gridline:#0000000f;--chart-axis-label:#475569}.bg-atmosphere{background-color:var(--color-page);background-image:radial-gradient(120% 60% at 15% 5%,#357f9e1f 0%,#0000 50%),radial-gradient(80% 50% at 85% 90%,#5ac8a812 0%,#0000 45%);background-attachment:fixed}.light .bg-atmosphere,.light.bg-atmosphere{background-image:radial-gradient(120% 60% at 15% 5%,#0e74900f 0%,#0000 50%),radial-gradient(80% 50% at 85% 90%,#0d94880a 0%,#0000 45%)}.bg-atmosphere:before{content:"";z-index:1;pointer-events:none;opacity:.07;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-repeat:repeat;background-size:200px 200px;position:fixed;inset:0}.light .bg-atmosphere:before,.light.bg-atmosphere:before{opacity:.03}:root{--diffs-font-family:"JetBrains Mono", ui-monospace, monospace;--diffs-header-font-family:"Geist", ui-sans-serif, system-ui, sans-serif;--diffs-font-size:13px;--diffs-line-height:20px;--diffs-bg-buffer-override:#0f1729;--diffs-bg-context-override:#161d2e;--diffs-bg-hover-override:#1c2438;--diffs-bg-separator-override:#252c3d;--diffs-fg-number-override:#4b5768;--diffs-addition-color-override:#5ac8a8;--diffs-fg-number-addition-override:#5ac8a880;--diffs-deletion-color-override:#e86b6b;--diffs-fg-number-deletion-override:#e86b6b80}.light{--diffs-bg-buffer-override:#fff;--diffs-bg-context-override:#f8fafc;--diffs-bg-hover-override:#f1f5f9;--diffs-bg-separator-override:#e2e8f0;--diffs-fg-number-override:#94a3b8;--diffs-addition-color-override:#0d9488;--diffs-fg-number-addition-override:#0d948880;--diffs-deletion-color-override:#dc2626;--diffs-fg-number-deletion-override:#dc262680}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@keyframes spin{to{transform:rotate(360deg)}} \ No newline at end of file diff --git a/apps/fabro-web/dist/assets/entry-tfe07zw7.js b/apps/fabro-web/dist/assets/entry-9ys2gakq.js similarity index 79% rename from apps/fabro-web/dist/assets/entry-tfe07zw7.js rename to apps/fabro-web/dist/assets/entry-9ys2gakq.js index 11b25b4a9..6109b407f 100644 --- a/apps/fabro-web/dist/assets/entry-tfe07zw7.js +++ b/apps/fabro-web/dist/assets/entry-9ys2gakq.js @@ -1,4 +1,4 @@ -import{X as g,Y as e8,Z as g5,_ as x}from"./chunk-q07bg6gn.js";var t=e8((Th,AW)=>{(function(){function Z(E,i){Object.defineProperty(z.prototype,E,{get:function(){console.warn("%s(...) is deprecated in plain JavaScript React classes. %s",i[0],i[1])}})}function J(E){if(E===null||typeof E!=="object")return null;return E=h1&&E[h1]||E["@@iterator"],typeof E==="function"?E:null}function X(E,i){E=(E=E.constructor)&&(E.displayName||E.name)||"ReactClass";var F0=E+"."+i;T0[F0]||(console.error("Can't call %s on a component that is not yet mounted. This is a no-op, but it might indicate a bug in your application. Instead, assign to `this.state` directly or define a `state = {};` class property with the desired state in the %s component.",i,E),T0[F0]=!0)}function z(E,i,F0){this.props=E,this.context=i,this.refs=s5,this.updater=F0||r1}function B(){}function U(E,i,F0){this.props=E,this.context=i,this.refs=s5,this.updater=F0||r1}function W(){}function $(E){return""+E}function M(E){try{$(E);var i=!1}catch(S0){i=!0}if(i){i=console;var F0=i.error,P0=typeof Symbol==="function"&&Symbol.toStringTag&&E[Symbol.toStringTag]||E.constructor.name||"Object";return F0.call(i,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",P0),$(E)}}function w(E){if(E==null)return null;if(typeof E==="function")return E.$$typeof===T6?null:E.displayName||E.name||null;if(typeof E==="string")return E;switch(E){case O0:return"Fragment";case B0:return"Profiler";case f:return"StrictMode";case O1:return"Suspense";case H0:return"SuspenseList";case s1:return"Activity"}if(typeof E==="object")switch(typeof E.tag==="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),E.$$typeof){case e:return"Portal";case W0:return E.displayName||"Context";case M0:return(E._context.displayName||"Context")+".Consumer";case u0:var i=E.render;return E=E.displayName,E||(E=i.displayName||i.name||"",E=E!==""?"ForwardRef("+E+")":"ForwardRef"),E;case G1:return i=E.displayName||null,i!==null?i:w(E.type)||"Memo";case C1:i=E._payload,E=E._init;try{return w(E(i))}catch(F0){}}return null}function N(E){if(E===O0)return"<>";if(typeof E==="object"&&E!==null&&E.$$typeof===C1)return"<...>";try{var i=w(E);return i?"<"+i+">":"<...>"}catch(F0){return"<...>"}}function O(){var E=Y1.A;return E===null?null:E.getOwner()}function A(){return Error("react-stack-top-frame")}function V(E){if(t7.call(E,"key")){var i=Object.getOwnPropertyDescriptor(E,"key").get;if(i&&i.isReactWarning)return!1}return E.key!==void 0}function P(E,i){function F0(){Y6||(Y6=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",i))}F0.isReactWarning=!0,Object.defineProperty(E,"key",{get:F0,configurable:!0})}function L(){var E=w(this.type);return R4[E]||(R4[E]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),E=this.props.ref,E!==void 0?E:null}function D(E,i,F0,P0,S0,a0){var x0=F0.ref;return E={$$typeof:G0,type:E,key:i,props:F0,_owner:P0},(x0!==void 0?x0:null)!==null?Object.defineProperty(E,"ref",{enumerable:!1,get:L}):Object.defineProperty(E,"ref",{enumerable:!1,value:null}),E._store={},Object.defineProperty(E._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(E,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(E,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:S0}),Object.defineProperty(E,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:a0}),Object.freeze&&(Object.freeze(E.props),Object.freeze(E)),E}function C(E,i){return i=D(E.type,i,E.props,E._owner,E._debugStack,E._debugTask),E._store&&(i._store.validated=E._store.validated),i}function R(E){T(E)?E._store&&(E._store.validated=1):typeof E==="object"&&E!==null&&E.$$typeof===C1&&(E._payload.status==="fulfilled"?T(E._payload.value)&&E._payload.value._store&&(E._payload.value._store.validated=1):E._store&&(E._store.validated=1))}function T(E){return typeof E==="object"&&E!==null&&E.$$typeof===G0}function y(E){var i={"=":"=0",":":"=2"};return"$"+E.replace(/[=:]/g,function(F0){return i[F0]})}function I(E,i){return typeof E==="object"&&E!==null&&E.key!=null?(M(E.key),y(""+E.key)):i.toString(36)}function c(E){switch(E.status){case"fulfilled":return E.value;case"rejected":throw E.reason;default:switch(typeof E.status==="string"?E.then(W,W):(E.status="pending",E.then(function(i){E.status==="pending"&&(E.status="fulfilled",E.value=i)},function(i){E.status==="pending"&&(E.status="rejected",E.reason=i)})),E.status){case"fulfilled":return E.value;case"rejected":throw E.reason}}throw E}function S(E,i,F0,P0,S0){var a0=typeof E;if(a0==="undefined"||a0==="boolean")E=null;var x0=!1;if(E===null)x0=!0;else switch(a0){case"bigint":case"string":case"number":x0=!0;break;case"object":switch(E.$$typeof){case G0:case e:x0=!0;break;case C1:return x0=E._init,S(x0(E._payload),i,F0,P0,S0)}}if(x0){x0=E,S0=S0(x0);var o0=P0===""?"."+I(x0,0):P0;return B1(S0)?(F0="",o0!=null&&(F0=o0.replace(r2,"$&/")+"/"),S(S0,i,F0,"",function(M5){return M5})):S0!=null&&(T(S0)&&(S0.key!=null&&(x0&&x0.key===S0.key||M(S0.key)),F0=C(S0,F0+(S0.key==null||x0&&x0.key===S0.key?"":(""+S0.key).replace(r2,"$&/")+"/")+o0),P0!==""&&x0!=null&&T(x0)&&x0.key==null&&x0._store&&!x0._store.validated&&(F0._store.validated=2),S0=F0),i.push(S0)),1}if(x0=0,o0=P0===""?".":P0+":",B1(E))for(var b0=0;b0{(function(){function Z(E,i){Object.defineProperty(z.prototype,E,{get:function(){console.warn("%s(...) is deprecated in plain JavaScript React classes. %s",i[0],i[1])}})}function J(E){if(E===null||typeof E!=="object")return null;return E=h1&&E[h1]||E["@@iterator"],typeof E==="function"?E:null}function X(E,i){E=(E=E.constructor)&&(E.displayName||E.name)||"ReactClass";var F0=E+"."+i;T0[F0]||(console.error("Can't call %s on a component that is not yet mounted. This is a no-op, but it might indicate a bug in your application. Instead, assign to `this.state` directly or define a `state = {};` class property with the desired state in the %s component.",i,E),T0[F0]=!0)}function z(E,i,F0){this.props=E,this.context=i,this.refs=s5,this.updater=F0||r1}function B(){}function U(E,i,F0){this.props=E,this.context=i,this.refs=s5,this.updater=F0||r1}function W(){}function $(E){return""+E}function M(E){try{$(E);var i=!1}catch(S0){i=!0}if(i){i=console;var F0=i.error,P0=typeof Symbol==="function"&&Symbol.toStringTag&&E[Symbol.toStringTag]||E.constructor.name||"Object";return F0.call(i,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",P0),$(E)}}function w(E){if(E==null)return null;if(typeof E==="function")return E.$$typeof===T6?null:E.displayName||E.name||null;if(typeof E==="string")return E;switch(E){case O0:return"Fragment";case B0:return"Profiler";case f:return"StrictMode";case O1:return"Suspense";case H0:return"SuspenseList";case s1:return"Activity"}if(typeof E==="object")switch(typeof E.tag==="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),E.$$typeof){case e:return"Portal";case W0:return E.displayName||"Context";case M0:return(E._context.displayName||"Context")+".Consumer";case u0:var i=E.render;return E=E.displayName,E||(E=i.displayName||i.name||"",E=E!==""?"ForwardRef("+E+")":"ForwardRef"),E;case G1:return i=E.displayName||null,i!==null?i:w(E.type)||"Memo";case C1:i=E._payload,E=E._init;try{return w(E(i))}catch(F0){}}return null}function N(E){if(E===O0)return"<>";if(typeof E==="object"&&E!==null&&E.$$typeof===C1)return"<...>";try{var i=w(E);return i?"<"+i+">":"<...>"}catch(F0){return"<...>"}}function O(){var E=Y1.A;return E===null?null:E.getOwner()}function A(){return Error("react-stack-top-frame")}function V(E){if(t7.call(E,"key")){var i=Object.getOwnPropertyDescriptor(E,"key").get;if(i&&i.isReactWarning)return!1}return E.key!==void 0}function P(E,i){function F0(){Y6||(Y6=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",i))}F0.isReactWarning=!0,Object.defineProperty(E,"key",{get:F0,configurable:!0})}function L(){var E=w(this.type);return R4[E]||(R4[E]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),E=this.props.ref,E!==void 0?E:null}function D(E,i,F0,P0,S0,a0){var x0=F0.ref;return E={$$typeof:G0,type:E,key:i,props:F0,_owner:P0},(x0!==void 0?x0:null)!==null?Object.defineProperty(E,"ref",{enumerable:!1,get:L}):Object.defineProperty(E,"ref",{enumerable:!1,value:null}),E._store={},Object.defineProperty(E._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(E,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(E,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:S0}),Object.defineProperty(E,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:a0}),Object.freeze&&(Object.freeze(E.props),Object.freeze(E)),E}function C(E,i){return i=D(E.type,i,E.props,E._owner,E._debugStack,E._debugTask),E._store&&(i._store.validated=E._store.validated),i}function R(E){T(E)?E._store&&(E._store.validated=1):typeof E==="object"&&E!==null&&E.$$typeof===C1&&(E._payload.status==="fulfilled"?T(E._payload.value)&&E._payload.value._store&&(E._payload.value._store.validated=1):E._store&&(E._store.validated=1))}function T(E){return typeof E==="object"&&E!==null&&E.$$typeof===G0}function y(E){var i={"=":"=0",":":"=2"};return"$"+E.replace(/[=:]/g,function(F0){return i[F0]})}function I(E,i){return typeof E==="object"&&E!==null&&E.key!=null?(M(E.key),y(""+E.key)):i.toString(36)}function c(E){switch(E.status){case"fulfilled":return E.value;case"rejected":throw E.reason;default:switch(typeof E.status==="string"?E.then(W,W):(E.status="pending",E.then(function(i){E.status==="pending"&&(E.status="fulfilled",E.value=i)},function(i){E.status==="pending"&&(E.status="rejected",E.reason=i)})),E.status){case"fulfilled":return E.value;case"rejected":throw E.reason}}throw E}function S(E,i,F0,P0,S0){var a0=typeof E;if(a0==="undefined"||a0==="boolean")E=null;var x0=!1;if(E===null)x0=!0;else switch(a0){case"bigint":case"string":case"number":x0=!0;break;case"object":switch(E.$$typeof){case G0:case e:x0=!0;break;case C1:return x0=E._init,S(x0(E._payload),i,F0,P0,S0)}}if(x0){x0=E,S0=S0(x0);var o0=P0===""?"."+I(x0,0):P0;return B1(S0)?(F0="",o0!=null&&(F0=o0.replace(r2,"$&/")+"/"),S(S0,i,F0,"",function(M5){return M5})):S0!=null&&(T(S0)&&(S0.key!=null&&(x0&&x0.key===S0.key||M(S0.key)),F0=C(S0,F0+(S0.key==null||x0&&x0.key===S0.key?"":(""+S0.key).replace(r2,"$&/")+"/")+o0),P0!==""&&x0!=null&&T(x0)&&x0.key==null&&x0._store&&!x0._store.validated&&(F0._store.validated=2),S0=F0),i.push(S0)),1}if(x0=0,o0=P0===""?".":P0+":",B1(E))for(var b0=0;b0 import('./MyComponent')) @@ -10,16 +10,16 @@ Your code should look like: 1. You might have mismatching versions of React and the renderer (such as React DOM) 2. You might be breaking the Rules of Hooks 3. You might have more than one copy of React in the same app -See https://react.dev/link/invalid-hook-call for tips about how to debug and fix this problem.`),E}function o(){Y1.asyncTransitions--}function U0(E){if(n7===null)try{var i=("require"+Math.random()).slice(0,7);n7=(AW&&AW[i]).call(AW,"timers").setImmediate}catch(F0){n7=function(P0){z2===!1&&(z2=!0,typeof MessageChannel>"u"&&console.error("This browser does not have a MessageChannel implementation, so enqueuing tasks via await act(async () => ...) will fail. Please file an issue at https://github.com/facebook/react/issues if you encounter this warning."));var S0=new MessageChannel;S0.port1.onmessage=P0,S0.port2.postMessage(void 0)}}return n7(E)}function K0(E){return 1 ...) without await. This could lead to unexpected testing behaviour, interleaving multiple act calls and mixing their scopes. You should - await act(async () => ...);"))}),{then:function(b0,M5){S0=!0,x0.then(function(Q5){if(w0(i,F0),F0===0){try{z0(P0),U0(function(){return s(Q5,b0,M5)})}catch(o5){Y1.thrownErrors.push(o5)}if(0 ...)"))}),Y1.actQueue=null),0Y1.recentlyCreatedOwnerStacks++;return D(E,S0,P0,O(),b0?Error("react-stack-top-frame"):b2,b0?x1(N(E)):J6)},Th.createRef=function(){var E={current:null};return Object.seal(E),E},Th.forwardRef=function(E){E!=null&&E.$$typeof===G1?console.error("forwardRef requires a render function but received a `memo` component. Instead of forwardRef(memo(...)), use memo(forwardRef(...))."):typeof E!=="function"?console.error("forwardRef requires a render function but was given %s.",E===null?"null":typeof E):E.length!==0&&E.length!==2&&console.error("forwardRef render functions accept exactly two parameters: props and ref. %s",E.length===1?"Did you forget to use the ref parameter?":"Any additional parameter will be undefined."),E!=null&&E.defaultProps!=null&&console.error("forwardRef render functions do not support defaultProps. Did you accidentally pass a React component?");var i={$$typeof:u0,render:E},F0;return Object.defineProperty(i,"displayName",{enumerable:!1,configurable:!0,get:function(){return F0},set:function(P0){F0=P0,E.name||E.displayName||(Object.defineProperty(E,"name",{value:P0}),E.displayName=P0)}}),i},Th.isValidElement=T,Th.lazy=function(E){E={_status:-1,_result:E};var i={$$typeof:C1,_payload:E,_init:Y0},F0={name:"lazy",start:-1,end:-1,value:null,owner:null,debugStack:Error("react-stack-top-frame"),debugTask:console.createTask?console.createTask("lazy()"):null};return E._ioInfo=F0,i._debugInfo=[{awaited:F0}],i},Th.memo=function(E,i){E==null&&console.error("memo: The first argument must be a component. Instead received: %s",E===null?"null":typeof E),i={$$typeof:G1,type:E,compare:i===void 0?null:i};var F0;return Object.defineProperty(i,"displayName",{enumerable:!1,configurable:!0,get:function(){return F0},set:function(P0){F0=P0,E.name||E.displayName||(Object.defineProperty(E,"name",{value:P0}),E.displayName=P0)}}),i},Th.startTransition=function(E){var i=Y1.T,F0={};F0._updatedFibers=new Set,Y1.T=F0;try{var P0=E(),S0=Y1.S;S0!==null&&S0(F0,P0),typeof P0==="object"&&P0!==null&&typeof P0.then==="function"&&(Y1.asyncTransitions++,P0.then(o,o),P0.then(W,R5))}catch(a0){R5(a0)}finally{i===null&&F0._updatedFibers&&(E=F0._updatedFibers.size,F0._updatedFibers.clear(),10{(function(){function Z(){if(y=!1,d){var s=Dh.unstable_now();o=s;var z0=!0;try{Z:{R=!1,T&&(T=!1,c(Y0),Y0=-1),C=!0;var G0=D;try{Y:{U(s);for(L=X(A);L!==null&&!(L.expirationTime>s&&$());){var e=L.callback;if(typeof e==="function"){L.callback=null,D=L.priorityLevel;var O0=e(L.expirationTime<=s);if(s=Dh.unstable_now(),typeof O0==="function"){L.callback=O0,U(s),z0=!0;break Y}L===X(A)&&z(A),U(s)}else z(A);L=X(A)}if(L!==null)z0=!0;else{var f=X(V);f!==null&&M(W,f.startTime-s),z0=!1}}break Z}finally{L=null,D=G0,C=!1}z0=void 0}}finally{z0?U0():d=!1}}}function J(s,z0){var G0=s.length;s.push(z0);Z:for(;0>>1,O0=s[e];if(0>>1;eB(M0,G0))W0B(u0,M0)?(s[e]=u0,s[W0]=G0,e=W0):(s[e]=M0,s[B0]=G0,e=B0);else if(W0B(u0,G0))s[e]=u0,s[W0]=G0,e=W0;else break Z}}return z0}function B(s,z0){var G0=s.sortIndex-z0.sortIndex;return G0!==0?G0:s.id-z0.id}function U(s){for(var z0=X(V);z0!==null;){if(z0.callback===null)z(V);else if(z0.startTime<=s)z(V),z0.sortIndex=z0.expirationTime,J(A,z0);else break;z0=X(V)}}function W(s){if(T=!1,U(s),!R)if(X(A)!==null)R=!0,d||(d=!0,U0());else{var z0=X(V);z0!==null&&M(W,z0.startTime-s)}}function $(){return y?!0:Dh.unstable_now()-os||125e?(s.sortIndex=G0,J(V,s),X(A)===null&&s===X(V)&&(T?(c(Y0),Y0=-1):T=!0,M(W,G0-e))):(s.sortIndex=O0,J(A,s),R||C||(R=!0,d||(d=!0,U0()))),s},Dh.unstable_shouldYield=$,Dh.unstable_wrapCallback=function(s){var z0=D;return function(){var G0=D;D=z0;try{return s.apply(this,arguments)}finally{D=G0}}},typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop==="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error())})()});var WD=e8((bh)=>{var UO=g(t());(function(){function Z(){}function J(N){return""+N}function X(N,O,A){var V=3"u"&&console.error("This browser does not have a MessageChannel implementation, so enqueuing tasks via await act(async () => ...) will fail. Please file an issue at https://github.com/facebook/react/issues if you encounter this warning."));var S0=new MessageChannel;S0.port1.onmessage=P0,S0.port2.postMessage(void 0)}}return n7(E)}function K0(E){return 1 ...) without await. This could lead to unexpected testing behaviour, interleaving multiple act calls and mixing their scopes. You should - await act(async () => ...);"))}),{then:function(b0,M5){S0=!0,x0.then(function(Q5){if(w0(i,F0),F0===0){try{z0(P0),U0(function(){return s(Q5,b0,M5)})}catch(o5){Y1.thrownErrors.push(o5)}if(0 ...)"))}),Y1.actQueue=null),0Y1.recentlyCreatedOwnerStacks++;return D(E,S0,P0,O(),b0?Error("react-stack-top-frame"):b2,b0?x1(N(E)):J6)},bh.createRef=function(){var E={current:null};return Object.seal(E),E},bh.forwardRef=function(E){E!=null&&E.$$typeof===G1?console.error("forwardRef requires a render function but received a `memo` component. Instead of forwardRef(memo(...)), use memo(forwardRef(...))."):typeof E!=="function"?console.error("forwardRef requires a render function but was given %s.",E===null?"null":typeof E):E.length!==0&&E.length!==2&&console.error("forwardRef render functions accept exactly two parameters: props and ref. %s",E.length===1?"Did you forget to use the ref parameter?":"Any additional parameter will be undefined."),E!=null&&E.defaultProps!=null&&console.error("forwardRef render functions do not support defaultProps. Did you accidentally pass a React component?");var i={$$typeof:u0,render:E},F0;return Object.defineProperty(i,"displayName",{enumerable:!1,configurable:!0,get:function(){return F0},set:function(P0){F0=P0,E.name||E.displayName||(Object.defineProperty(E,"name",{value:P0}),E.displayName=P0)}}),i},bh.isValidElement=T,bh.lazy=function(E){E={_status:-1,_result:E};var i={$$typeof:C1,_payload:E,_init:Y0},F0={name:"lazy",start:-1,end:-1,value:null,owner:null,debugStack:Error("react-stack-top-frame"),debugTask:console.createTask?console.createTask("lazy()"):null};return E._ioInfo=F0,i._debugInfo=[{awaited:F0}],i},bh.memo=function(E,i){E==null&&console.error("memo: The first argument must be a component. Instead received: %s",E===null?"null":typeof E),i={$$typeof:G1,type:E,compare:i===void 0?null:i};var F0;return Object.defineProperty(i,"displayName",{enumerable:!1,configurable:!0,get:function(){return F0},set:function(P0){F0=P0,E.name||E.displayName||(Object.defineProperty(E,"name",{value:P0}),E.displayName=P0)}}),i},bh.startTransition=function(E){var i=Y1.T,F0={};F0._updatedFibers=new Set,Y1.T=F0;try{var P0=E(),S0=Y1.S;S0!==null&&S0(F0,P0),typeof P0==="object"&&P0!==null&&typeof P0.then==="function"&&(Y1.asyncTransitions++,P0.then(o,o),P0.then(W,R5))}catch(a0){R5(a0)}finally{i===null&&F0._updatedFibers&&(E=F0._updatedFibers.size,F0._updatedFibers.clear(),10{(function(){function Z(){if(y=!1,d){var s=Eh.unstable_now();o=s;var z0=!0;try{Z:{R=!1,T&&(T=!1,c(Y0),Y0=-1),C=!0;var G0=D;try{Y:{U(s);for(L=X(A);L!==null&&!(L.expirationTime>s&&$());){var e=L.callback;if(typeof e==="function"){L.callback=null,D=L.priorityLevel;var O0=e(L.expirationTime<=s);if(s=Eh.unstable_now(),typeof O0==="function"){L.callback=O0,U(s),z0=!0;break Y}L===X(A)&&z(A),U(s)}else z(A);L=X(A)}if(L!==null)z0=!0;else{var f=X(V);f!==null&&M(W,f.startTime-s),z0=!1}}break Z}finally{L=null,D=G0,C=!1}z0=void 0}}finally{z0?U0():d=!1}}}function J(s,z0){var G0=s.length;s.push(z0);Z:for(;0>>1,O0=s[e];if(0>>1;eB(M0,G0))W0B(u0,M0)?(s[e]=u0,s[W0]=G0,e=W0):(s[e]=M0,s[B0]=G0,e=B0);else if(W0B(u0,G0))s[e]=u0,s[W0]=G0,e=W0;else break Z}}return z0}function B(s,z0){var G0=s.sortIndex-z0.sortIndex;return G0!==0?G0:s.id-z0.id}function U(s){for(var z0=X(V);z0!==null;){if(z0.callback===null)z(V);else if(z0.startTime<=s)z(V),z0.sortIndex=z0.expirationTime,J(A,z0);else break;z0=X(V)}}function W(s){if(T=!1,U(s),!R)if(X(A)!==null)R=!0,d||(d=!0,U0());else{var z0=X(V);z0!==null&&M(W,z0.startTime-s)}}function $(){return y?!0:Eh.unstable_now()-os||125e?(s.sortIndex=G0,J(V,s),X(A)===null&&s===X(V)&&(T?(c(Y0),Y0=-1):T=!0,M(W,G0-e))):(s.sortIndex=O0,J(A,s),R||C||(R=!0,d||(d=!0,U0()))),s},Eh.unstable_shouldYield=$,Eh.unstable_wrapCallback=function(s){var z0=D;return function(){var G0=D;D=z0;try{return s.apply(this,arguments)}finally{D=G0}}},typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop==="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error())})()});var $D=e8((yh)=>{var UO=g(t());(function(){function Z(){}function J(N){return""+N}function X(N,O,A){var V=3` tag.%s',A),typeof N==="string"&&typeof O==="object"&&O!==null&&typeof O.as==="string"){A=O.as;var V=z(A,O.crossOrigin);$.d.L(N,A,{crossOrigin:V,integrity:typeof O.integrity==="string"?O.integrity:void 0,nonce:typeof O.nonce==="string"?O.nonce:void 0,type:typeof O.type==="string"?O.type:void 0,fetchPriority:typeof O.fetchPriority==="string"?O.fetchPriority:void 0,referrerPolicy:typeof O.referrerPolicy==="string"?O.referrerPolicy:void 0,imageSrcSet:typeof O.imageSrcSet==="string"?O.imageSrcSet:void 0,imageSizes:typeof O.imageSizes==="string"?O.imageSizes:void 0,media:typeof O.media==="string"?O.media:void 0})}},bh.preloadModule=function(N,O){var A="";typeof N==="string"&&N||(A+=" The `href` argument encountered was "+B(N)+"."),O!==void 0&&typeof O!=="object"?A+=" The `options` argument encountered was "+B(O)+".":O&&("as"in O)&&typeof O.as!=="string"&&(A+=" The `as` option encountered was "+B(O.as)+"."),A&&console.error('ReactDOM.preloadModule(): Expected two arguments, a non-empty `href` string and, optionally, an `options` object with an `as` property valid for a `` tag.%s',A),typeof N==="string"&&(O?(A=z(O.as,O.crossOrigin),$.d.m(N,{as:typeof O.as==="string"&&O.as!=="script"?O.as:void 0,crossOrigin:A,integrity:typeof O.integrity==="string"?O.integrity:void 0})):$.d.m(N))},bh.requestFormReset=function(N){$.d.r(N)},bh.unstable_batchedUpdates=function(N,O){return N(O)},bh.useFormState=function(N,O,A){return W().useFormState(N,O,A)},bh.useFormStatus=function(){return W().useHostTransitionStatus()},bh.version="19.2.4",typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop==="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error())})()});var X8=e8((E70,$D)=>{var Eh=g(WD());$D.exports=Eh});var GD=e8((yh)=>{var a1=g(KD()),gJ=g(t()),KO=g(X8());(function(){function Z(Y,Q){for(Y=Y.memoizedState;Y!==null&&0=Q.length)return K;var G=Q[q],H=V2(Y)?Y.slice():D1({},Y);return H[G]=J(Y[G],Q,q+1,K),H}function X(Y,Q,q){if(Q.length!==q.length)console.warn("copyWithRename() expects paths of the same length");else{for(var K=0;Kj8?console.error("Unexpected pop."):(Q!==mw[j8]&&console.error("Unexpected Fiber popped."),Y.current=gw[j8],gw[j8]=null,mw[j8]=null,j8--)}function K0(Y,Q,q){j8++,gw[j8]=Y.current,mw[j8]=q,Y.current=Q}function w0(Y){return Y===null&&console.error("Expected host context to exist. This error is likely caused by a bug in React. Please file an issue."),Y}function s(Y,Q){K0(n3,Q,Y),K0(Pz,Y,Y),K0(t3,null,Y);var q=Q.nodeType;switch(q){case 9:case 11:q=q===9?"#document":"#fragment",Q=(Q=Q.documentElement)?(Q=Q.namespaceURI)?rL(Q):o8:o8;break;default:if(q=Q.tagName,Q=Q.namespaceURI)Q=rL(Q),Q=aL(Q,q);else switch(q){case"svg":Q=kJ;break;case"math":Q=GW;break;default:Q=o8}}q=q.toLowerCase(),q=m_(null,q),q={context:Q,ancestorInfo:q},U0(t3,Y),K0(t3,q,Y)}function z0(Y){U0(t3,Y),U0(Pz,Y),U0(n3,Y)}function G0(){return w0(t3.current)}function e(Y){Y.memoizedState!==null&&K0(wK,Y,Y);var Q=w0(t3.current),q=Y.type,K=aL(Q.context,q);q=m_(Q.ancestorInfo,q),K={context:K,ancestorInfo:q},Q!==K&&(K0(Pz,Y,Y),K0(t3,K,Y))}function O0(Y){Pz.current===Y&&(U0(t3,Y),U0(Pz,Y)),wK.current===Y&&(U0(wK,Y),Mq._currentValue=dZ)}function f(){}function B0(){if(Rz===0){RC=console.log,LC=console.info,CC=console.warn,vC=console.error,TC=console.group,DC=console.groupCollapsed,bC=console.groupEnd;var Y={configurable:!0,enumerable:!0,value:f,writable:!0};Object.defineProperties(console,{info:Y,log:Y,warn:Y,error:Y,group:Y,groupCollapsed:Y,groupEnd:Y})}Rz++}function M0(){if(Rz--,Rz===0){var Y={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:D1({},Y,{value:RC}),info:D1({},Y,{value:LC}),warn:D1({},Y,{value:CC}),error:D1({},Y,{value:vC}),group:D1({},Y,{value:TC}),groupCollapsed:D1({},Y,{value:DC}),groupEnd:D1({},Y,{value:bC})})}0>Rz&&console.error("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}function W0(Y){var Q=Error.prepareStackTrace;if(Error.prepareStackTrace=void 0,Y=Y.stack,Error.prepareStackTrace=Q,Y.startsWith(`Error: react-stack-top-frame +See https://react.dev/link/invalid-hook-call for tips about how to debug and fix this problem.`),N}typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart==="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());var $={d:{f:Z,r:function(){throw Error("Invalid form element. requestFormReset must be passed a form that was rendered by React.")},D:Z,C:Z,L:Z,m:Z,X:Z,S:Z,M:Z},p:0,findDOMNode:null},M=Symbol.for("react.portal"),w=UO.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;typeof Map==="function"&&Map.prototype!=null&&typeof Map.prototype.forEach==="function"&&typeof Set==="function"&&Set.prototype!=null&&typeof Set.prototype.clear==="function"&&typeof Set.prototype.forEach==="function"||console.error("React depends on Map and Set built-in types. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"),yh.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=$,yh.createPortal=function(N,O){var A=2` tag.%s',A),typeof N==="string"&&typeof O==="object"&&O!==null&&typeof O.as==="string"){A=O.as;var V=z(A,O.crossOrigin);$.d.L(N,A,{crossOrigin:V,integrity:typeof O.integrity==="string"?O.integrity:void 0,nonce:typeof O.nonce==="string"?O.nonce:void 0,type:typeof O.type==="string"?O.type:void 0,fetchPriority:typeof O.fetchPriority==="string"?O.fetchPriority:void 0,referrerPolicy:typeof O.referrerPolicy==="string"?O.referrerPolicy:void 0,imageSrcSet:typeof O.imageSrcSet==="string"?O.imageSrcSet:void 0,imageSizes:typeof O.imageSizes==="string"?O.imageSizes:void 0,media:typeof O.media==="string"?O.media:void 0})}},yh.preloadModule=function(N,O){var A="";typeof N==="string"&&N||(A+=" The `href` argument encountered was "+B(N)+"."),O!==void 0&&typeof O!=="object"?A+=" The `options` argument encountered was "+B(O)+".":O&&("as"in O)&&typeof O.as!=="string"&&(A+=" The `as` option encountered was "+B(O.as)+"."),A&&console.error('ReactDOM.preloadModule(): Expected two arguments, a non-empty `href` string and, optionally, an `options` object with an `as` property valid for a `` tag.%s',A),typeof N==="string"&&(O?(A=z(O.as,O.crossOrigin),$.d.m(N,{as:typeof O.as==="string"&&O.as!=="script"?O.as:void 0,crossOrigin:A,integrity:typeof O.integrity==="string"?O.integrity:void 0})):$.d.m(N))},yh.requestFormReset=function(N){$.d.r(N)},yh.unstable_batchedUpdates=function(N,O){return N(O)},yh.useFormState=function(N,O,A){return W().useFormState(N,O,A)},yh.useFormStatus=function(){return W().useHostTransitionStatus()},yh.version="19.2.4",typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop==="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error())})()});var X8=e8((S70,GD)=>{var Sh=g($D());GD.exports=Sh});var MD=e8((xh)=>{var a1=g(WD()),gJ=g(t()),KO=g(X8());(function(){function Z(Y,Q){for(Y=Y.memoizedState;Y!==null&&0=Q.length)return K;var G=Q[q],H=V2(Y)?Y.slice():D1({},Y);return H[G]=J(Y[G],Q,q+1,K),H}function X(Y,Q,q){if(Q.length!==q.length)console.warn("copyWithRename() expects paths of the same length");else{for(var K=0;Kj8?console.error("Unexpected pop."):(Q!==mw[j8]&&console.error("Unexpected Fiber popped."),Y.current=gw[j8],gw[j8]=null,mw[j8]=null,j8--)}function K0(Y,Q,q){j8++,gw[j8]=Y.current,mw[j8]=q,Y.current=Q}function w0(Y){return Y===null&&console.error("Expected host context to exist. This error is likely caused by a bug in React. Please file an issue."),Y}function s(Y,Q){K0(n3,Q,Y),K0(Pz,Y,Y),K0(t3,null,Y);var q=Q.nodeType;switch(q){case 9:case 11:q=q===9?"#document":"#fragment",Q=(Q=Q.documentElement)?(Q=Q.namespaceURI)?aL(Q):o8:o8;break;default:if(q=Q.tagName,Q=Q.namespaceURI)Q=aL(Q),Q=iL(Q,q);else switch(q){case"svg":Q=kJ;break;case"math":Q=GW;break;default:Q=o8}}q=q.toLowerCase(),q=h_(null,q),q={context:Q,ancestorInfo:q},U0(t3,Y),K0(t3,q,Y)}function z0(Y){U0(t3,Y),U0(Pz,Y),U0(n3,Y)}function G0(){return w0(t3.current)}function e(Y){Y.memoizedState!==null&&K0(wK,Y,Y);var Q=w0(t3.current),q=Y.type,K=iL(Q.context,q);q=h_(Q.ancestorInfo,q),K={context:K,ancestorInfo:q},Q!==K&&(K0(Pz,Y,Y),K0(t3,K,Y))}function O0(Y){Pz.current===Y&&(U0(t3,Y),U0(Pz,Y)),wK.current===Y&&(U0(wK,Y),Mq._currentValue=dZ)}function f(){}function B0(){if(Rz===0){LC=console.log,CC=console.info,vC=console.warn,TC=console.error,DC=console.group,bC=console.groupCollapsed,EC=console.groupEnd;var Y={configurable:!0,enumerable:!0,value:f,writable:!0};Object.defineProperties(console,{info:Y,log:Y,warn:Y,error:Y,group:Y,groupCollapsed:Y,groupEnd:Y})}Rz++}function M0(){if(Rz--,Rz===0){var Y={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:D1({},Y,{value:LC}),info:D1({},Y,{value:CC}),warn:D1({},Y,{value:vC}),error:D1({},Y,{value:TC}),group:D1({},Y,{value:DC}),groupCollapsed:D1({},Y,{value:bC}),groupEnd:D1({},Y,{value:EC})})}0>Rz&&console.error("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}function W0(Y){var Q=Error.prepareStackTrace;if(Error.prepareStackTrace=void 0,Y=Y.stack,Error.prepareStackTrace=Q,Y.startsWith(`Error: react-stack-top-frame `)&&(Y=Y.slice(29)),Q=Y.indexOf(` `),Q!==-1&&(Y=Y.slice(Q+1)),Q=Y.indexOf("react_stack_bottom_frame"),Q!==-1&&(Q=Y.lastIndexOf(` -`,Q)),Q!==-1)Y=Y.slice(0,Q);else return"";return Y}function u0(Y){if(hw===void 0)try{throw Error()}catch(q){var Q=q.stack.trim().match(/\n( *(at )?)/);hw=Q&&Q[1]||"",EC=-1)":-1F||b[H]!==l[F]){var r=` `+b[H].replace(" at new "," at ");return Y.displayName&&r.includes("")&&(r=r.replace("",Y.displayName)),typeof Y==="function"&&cw.set(Y,r),r}while(1<=H&&0<=F);break}}}finally{dw=!1,Q0.H=K,M0(),Error.prepareStackTrace=q}return b=(b=Y?Y.displayName||Y.name:"")?u0(b):"",typeof Y==="function"&&cw.set(Y,b),b}function H0(Y,Q){switch(Y.tag){case 26:case 27:case 5:return u0(Y.type);case 16:return u0("Lazy");case 13:return Y.child!==Q&&Q!==null?u0("Suspense Fallback"):u0("Suspense");case 19:return u0("SuspenseList");case 0:case 15:return O1(Y.type,!1);case 11:return O1(Y.type.render,!1);case 1:return O1(Y.type,!0);case 31:return u0("Activity");default:return""}}function G1(Y){try{var Q="",q=null;do{Q+=H0(Y,q);var K=Y._debugInfo;if(K)for(var G=K.length-1;0<=G;G--){var H=K[G];if(typeof H.name==="string"){var F=Q;Z:{var{name:_,env:v,debugLocation:b}=H;if(b!=null){var l=W0(b),r=l.lastIndexOf(` @@ -30,13 +30,13 @@ Error generating stack: `+R0.message+` `+G)}}else if(Y.debugStack!=null){var H=Y.debugStack;(Y=Y.owner)&&H&&(Q+=` `+W0(H))}else break;var F=Q}catch(_){F=` Error generating stack: `+_.message+` -`+_.stack}return F}function T0(Y,Q,q,K,G,H,F){var _=B4;r1(Y);try{return Y!==null&&Y._debugTask?Y._debugTask.run(Q.bind(null,q,K,G,H,F)):Q(q,K,G,H,F)}finally{r1(_)}throw Error("runWithFiberInDEV should never be called in production. This is a bug in React.")}function r1(Y){Q0.getCurrentStack=Y===null?null:h1,i6=!1,B4=Y}function i5(Y){return typeof Symbol==="function"&&Symbol.toStringTag&&Y[Symbol.toStringTag]||Y.constructor.name||"Object"}function s5(Y){try{return G5(Y),!1}catch(Q){return!0}}function G5(Y){return""+Y}function B1(Y,Q){if(s5(Y))return console.error("The provided `%s` attribute is an unsupported type %s. This value must be coerced to a string before using it here.",Q,i5(Y)),G5(Y)}function T6(Y,Q){if(s5(Y))return console.error("The provided `%s` CSS property is an unsupported type %s. This value must be coerced to a string before using it here.",Q,i5(Y)),G5(Y)}function Y1(Y){if(s5(Y))return console.error("Form field values (value, checked, defaultValue, or defaultChecked props) must be strings, not %s. This value must be coerced to a string before using it here.",i5(Y)),G5(Y)}function t7(Y){if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u")return!1;var Q=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(Q.isDisabled)return!0;if(!Q.supportsFiber)return console.error("The installed version of React DevTools is too old and will not work with the current version of React. Please update React DevTools. https://react.dev/link/react-devtools"),!0;try{zJ=Q.inject(Y),G7=Q}catch(q){console.error("React instrumentation encountered an error: %o.",q)}return Q.checkDCE?!0:!1}function x1(Y){if(typeof pg==="function"&&lg(Y),G7&&typeof G7.setStrictMode==="function")try{G7.setStrictMode(zJ,Y)}catch(Q){s6||(s6=!0,console.error("React instrumentation encountered an error: %o",Q))}}function Y6(Y){return Y>>>=0,Y===0?32:31-(rg(Y)/ag|0)|0}function l2(Y){var Q=Y&42;if(Q!==0)return Q;switch(Y&-Y){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return Y&261888;case 262144:case 524288:case 1048576:case 2097152:return Y&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return Y&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return console.error("Should have found matching lanes. This is a bug in React."),Y}}function R4(Y,Q,q){var K=Y.pendingLanes;if(K===0)return 0;var G=0,H=Y.suspendedLanes,F=Y.pingedLanes;Y=Y.warmLanes;var _=K&134217727;return _!==0?(K=_&~H,K!==0?G=l2(K):(F&=_,F!==0?G=l2(F):q||(q=_&~Y,q!==0&&(G=l2(q))))):(_=K&~H,_!==0?G=l2(_):F!==0?G=l2(F):q||(q=K&~Y,q!==0&&(G=l2(q)))),G===0?0:Q!==0&&Q!==G&&(Q&H)===0&&(H=G&-G,q=Q&-Q,H>=q||H===32&&(q&4194048)!==0)?Q:G}function b2(Y,Q){return(Y.pendingLanes&~(Y.suspendedLanes&~Y.pingedLanes)&Q)===0}function J6(Y,Q){switch(Y){case 1:case 2:case 4:case 8:case 64:return Q+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return Q+5000;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return console.error("Should have found matching lanes. This is a bug in React."),-1}}function Q6(){var Y=FK;return FK<<=1,(FK&62914560)===0&&(FK=4194304),Y}function r2(Y){for(var Q=[],q=0;31>q;q++)Q.push(Y);return Q}function R5(Y,Q){Y.pendingLanes|=Q,Q!==268435456&&(Y.suspendedLanes=0,Y.pingedLanes=0,Y.warmLanes=0)}function z2(Y,Q,q,K,G,H){var F=Y.pendingLanes;Y.pendingLanes=q,Y.suspendedLanes=0,Y.pingedLanes=0,Y.warmLanes=0,Y.expiredLanes&=q,Y.entangledLanes&=q,Y.errorRecoveryDisabledLanes&=q,Y.shellSuspendCounter=0;var{entanglements:_,expirationTimes:v,hiddenUpdates:b}=Y;for(q=F&~q;0"u")return null;try{return Y.activeElement||Y.body}catch(Q){return Y.body}}function y0(Y){return Y.replace(ng,function(Q){return"\\"+Q.charCodeAt(0).toString(16)+" "})}function m0(Y,Q){Q.checked===void 0||Q.defaultChecked===void 0||jC||(console.error("%s contains an input of type %s with both checked and defaultChecked props. Input elements must be either controlled or uncontrolled (specify either the checked prop, or the defaultChecked prop, but not both). Decide between using a controlled or uncontrolled input element and remove one of these props. More info: https://react.dev/link/controlled-components",s1()||"A component",Q.type),jC=!0),Q.value===void 0||Q.defaultValue===void 0||fC||(console.error("%s contains an input of type %s with both value and defaultValue props. Input elements must be either controlled or uncontrolled (specify either the value prop, or the defaultValue prop, but not both). Decide between using a controlled or uncontrolled input element and remove one of these props. More info: https://react.dev/link/controlled-components",s1()||"A component",Q.type),fC=!0)}function c0(Y,Q,q,K,G,H,F,_){if(Y.name="",F!=null&&typeof F!=="function"&&typeof F!=="symbol"&&typeof F!=="boolean"?(B1(F,"type"),Y.type=F):Y.removeAttribute("type"),Q!=null)if(F==="number"){if(Q===0&&Y.value===""||Y.value!=Q)Y.value=""+a(Q)}else Y.value!==""+a(Q)&&(Y.value=""+a(Q));else F!=="submit"&&F!=="reset"||Y.removeAttribute("value");Q!=null?h0(Y,F,a(Q)):q!=null?h0(Y,F,a(q)):K!=null&&Y.removeAttribute("value"),G==null&&H!=null&&(Y.defaultChecked=!!H),G!=null&&(Y.checked=G&&typeof G!=="function"&&typeof G!=="symbol"),_!=null&&typeof _!=="function"&&typeof _!=="symbol"&&typeof _!=="boolean"?(B1(_,"name"),Y.name=""+a(_)):Y.removeAttribute("name")}function i0(Y,Q,q,K,G,H,F,_){if(H!=null&&typeof H!=="function"&&typeof H!=="symbol"&&typeof H!=="boolean"&&(B1(H,"type"),Y.type=H),Q!=null||q!=null){if(!(H!=="submit"&&H!=="reset"||Q!==void 0&&Q!==null)){V0(Y);return}q=q!=null?""+a(q):"",Q=Q!=null?""+a(Q):q,_||Q===Y.value||(Y.value=Q),Y.defaultValue=Q}K=K!=null?K:G,K=typeof K!=="function"&&typeof K!=="symbol"&&!!K,Y.checked=_?Y.checked:!!K,Y.defaultChecked=!!K,F!=null&&typeof F!=="function"&&typeof F!=="symbol"&&typeof F!=="boolean"&&(B1(F,"name"),Y.name=F),V0(Y)}function h0(Y,Q,q){Q==="number"&&E0(Y.ownerDocument)===Y||Y.defaultValue===""+q||(Y.defaultValue=""+q)}function d1(Y,Q){Q.value==null&&(typeof Q.children==="object"&&Q.children!==null?gJ.Children.forEach(Q.children,function(q){q==null||typeof q==="string"||typeof q==="number"||typeof q==="bigint"||uC||(uC=!0,console.error("Cannot infer the option value of complex children. Pass a `value` prop or use a plain string as children to