From f401acc96b9403e7119ca49e0481c55dc057c7fa Mon Sep 17 00:00:00 2001 From: Rodolfo Ruiz Date: Fri, 27 Jun 2025 15:46:42 -0700 Subject: [PATCH] Add Full Component CSS Exports + Build Improvements --- docs/src/assets/styles.css | 5173 +------------------------- docs/src/installation.njk | 10 + package-lock.json | 20 +- packages/css/package.json | 70 +- scripts/build.js | 73 + src/css/base/base.css | 153 + src/css/basecoat.all.css | 17 + src/css/components/accordion.css | 20 + src/css/components/alert.css | 28 + src/css/components/badge.css | 23 + src/css/components/button.css | 177 + src/css/components/card.css | 24 + src/css/components/dialog.css | 58 + src/css/components/dropdown-menu.css | 38 + src/css/components/form.css | 8 + src/css/components/form/checkbox.css | 12 + src/css/components/form/input.css | 33 + src/css/components/form/label.css | 12 + src/css/components/form/radio.css | 11 + src/css/components/form/range.css | 48 + src/css/components/form/select.css | 63 + src/css/components/form/switch.css | 11 + src/css/components/form/textarea.css | 7 + src/css/components/popover.css | 71 + src/css/components/sidebar.css | 119 + src/css/components/table.css | 27 + src/css/components/tabs.css | 21 + src/css/components/toast.css | 57 + src/css/components/tooltip.css | 56 + 29 files changed, 1257 insertions(+), 5183 deletions(-) create mode 100644 src/css/base/base.css create mode 100644 src/css/basecoat.all.css create mode 100644 src/css/components/accordion.css create mode 100644 src/css/components/alert.css create mode 100644 src/css/components/badge.css create mode 100644 src/css/components/button.css create mode 100644 src/css/components/card.css create mode 100644 src/css/components/dialog.css create mode 100644 src/css/components/dropdown-menu.css create mode 100644 src/css/components/form.css create mode 100644 src/css/components/form/checkbox.css create mode 100644 src/css/components/form/input.css create mode 100644 src/css/components/form/label.css create mode 100644 src/css/components/form/radio.css create mode 100644 src/css/components/form/range.css create mode 100644 src/css/components/form/select.css create mode 100644 src/css/components/form/switch.css create mode 100644 src/css/components/form/textarea.css create mode 100644 src/css/components/popover.css create mode 100644 src/css/components/sidebar.css create mode 100644 src/css/components/table.css create mode 100644 src/css/components/tabs.css create mode 100644 src/css/components/toast.css create mode 100644 src/css/components/tooltip.css diff --git a/docs/src/assets/styles.css b/docs/src/assets/styles.css index de31d8f..674d848 100644 --- a/docs/src/assets/styles.css +++ b/docs/src/assets/styles.css @@ -1,5173 +1,2 @@ /*! tailwindcss v4.1.4 | MIT License | https://tailwindcss.com */ -@layer properties; -@layer theme, base, components, utilities; -@layer theme { - :root, :host { - --font-sans: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", - "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; - --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", - "Courier New", monospace; - --color-amber-50: oklch(98.7% 0.022 95.277); - --color-amber-100: oklch(96.2% 0.059 95.617); - --color-amber-900: oklch(41.4% 0.112 45.904); - --color-amber-950: oklch(27.9% 0.077 45.635); - --color-green-50: oklch(98.2% 0.018 155.826); - --color-green-600: oklch(62.7% 0.194 149.214); - --color-green-900: oklch(39.3% 0.095 152.535); - --color-green-950: oklch(26.6% 0.065 152.934); - --color-blue-50: oklch(97% 0.014 254.604); - --color-blue-500: oklch(62.3% 0.214 259.815); - --color-blue-600: oklch(54.6% 0.245 262.881); - --color-blue-700: oklch(48.8% 0.243 264.376); - --color-blue-900: oklch(37.9% 0.146 265.522); - --color-blue-950: oklch(28.2% 0.091 267.935); - --color-black: #000; - --color-white: #fff; - --spacing: 0.25rem; - --breakpoint-md: 48rem; - --breakpoint-lg: 64rem; - --container-xs: 20rem; - --container-sm: 24rem; - --container-md: 28rem; - --container-lg: 32rem; - --container-xl: 36rem; - --text-xs: 0.75rem; - --text-xs--line-height: calc(1 / 0.75); - --text-sm: 0.875rem; - --text-sm--line-height: calc(1.25 / 0.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); - --text-3xl: 1.875rem; - --text-3xl--line-height: calc(2.25 / 1.875); - --text-4xl: 2.25rem; - --text-4xl--line-height: calc(2.5 / 2.25); - --font-weight-normal: 400; - --font-weight-medium: 500; - --font-weight-semibold: 600; - --font-weight-bold: 700; - --tracking-tight: -0.025em; - --tracking-normal: 0em; - --tracking-widest: 0.1em; - --leading-tight: 1.25; - --leading-snug: 1.375; - --leading-normal: 1.5; - --leading-relaxed: 1.625; - --radius-xs: 0.125rem; - --radius-sm: calc(var(--radius) - 4px); - --radius-md: calc(var(--radius) - 2px); - --radius-lg: var(--radius); - --radius-xl: calc(var(--radius) + 4px); - --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1); - --animate-spin: spin 1s linear infinite; - --animate-pulse: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite; - --aspect-video: 16 / 9; - --default-transition-duration: 150ms; - --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); - --default-font-family: var(--font-sans); - --default-mono-font-family: var(--font-mono); - --color-background: var(--background); - --color-foreground: var(--foreground); - --color-card: var(--card); - --color-card-foreground: var(--card-foreground); - --color-popover: var(--popover); - --color-popover-foreground: var(--popover-foreground); - --color-primary: var(--primary); - --color-primary-foreground: var(--primary-foreground); - --color-secondary: var(--secondary); - --color-secondary-foreground: var(--secondary-foreground); - --color-muted: var(--muted); - --color-muted-foreground: var(--muted-foreground); - --color-accent: var(--accent); - --color-accent-foreground: var(--accent-foreground); - --color-destructive: var(--destructive); - --color-border: var(--border); - --color-input: var(--input); - --color-ring: var(--ring); - --color-sidebar: var(--sidebar); - --color-sidebar-foreground: var(--sidebar-foreground); - --color-sidebar-primary: var(--sidebar-primary); - --color-sidebar-primary-foreground: var(--sidebar-primary-foreground); - --color-sidebar-accent: var(--sidebar-accent); - --color-sidebar-accent-foreground: var(--sidebar-accent-foreground); - --color-sidebar-border: var(--sidebar-border); - --color-sidebar-ring: var(--sidebar-ring); - } -} -@layer base { - *, ::after, ::before, ::backdrop, ::file-selector-button { - box-sizing: border-box; - margin: 0; - padding: 0; - border: 0 solid; - } - html, :host { - line-height: 1.5; - -webkit-text-size-adjust: 100%; - tab-size: 4; - font-family: var(--default-font-family, ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"); - font-feature-settings: var(--default-font-feature-settings, normal); - font-variation-settings: var(--default-font-variation-settings, normal); - -webkit-tap-highlight-color: transparent; - } - hr { - height: 0; - color: inherit; - border-top-width: 1px; - } - abbr:where([title]) { - -webkit-text-decoration: underline dotted; - text-decoration: underline dotted; - } - h1, h2, h3, h4, h5, h6 { - font-size: inherit; - font-weight: inherit; - } - a { - color: inherit; - -webkit-text-decoration: inherit; - text-decoration: inherit; - } - b, strong { - font-weight: bolder; - } - code, kbd, samp, pre { - font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace); - font-feature-settings: var(--default-mono-font-feature-settings, normal); - font-variation-settings: var(--default-mono-font-variation-settings, normal); - font-size: 1em; - } - small { - font-size: 80%; - } - sub, sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; - } - sub { - bottom: -0.25em; - } - sup { - top: -0.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 { - display: block; - vertical-align: middle; - } - img, video { - max-width: 100%; - height: auto; - } - button, input, select, optgroup, textarea, ::file-selector-button { - font: inherit; - font-feature-settings: inherit; - font-variation-settings: inherit; - letter-spacing: inherit; - color: inherit; - border-radius: 0; - background-color: transparent; - opacity: 1; - } - :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)) { - 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, ::-webkit-datetime-edit-year-field, ::-webkit-datetime-edit-month-field, ::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-minute-field, ::-webkit-datetime-edit-second-field, ::-webkit-datetime-edit-millisecond-field, ::-webkit-datetime-edit-meridiem-field { - padding-block: 0; - } - :-moz-ui-invalid { - box-shadow: none; - } - button, input:where([type="button"], [type="reset"], [type="submit"]), ::file-selector-button { - appearance: button; - } - ::-webkit-inner-spin-button, ::-webkit-outer-spin-button { - height: auto; - } - [hidden]:where(:not([hidden="until-found"])) { - display: none !important; - } -} -@layer utilities { - .pointer-events-none { - pointer-events: none; - } - .invisible { - visibility: hidden; - } - .sr-only { - position: absolute; - width: 1px; - height: 1px; - padding: 0; - margin: -1px; - overflow: hidden; - clip: rect(0, 0, 0, 0); - white-space: nowrap; - border-width: 0; - } - .absolute { - position: absolute; - } - .relative { - position: relative; - } - .sticky { - position: sticky; - } - .inset-0 { - inset: calc(var(--spacing) * 0); - } - .inset-x-0 { - inset-inline: calc(var(--spacing) * 0); - } - .top-0 { - top: calc(var(--spacing) * 0); - } - .top-1\/2 { - top: calc(1/2 * 100%); - } - .top-2 { - top: calc(var(--spacing) * 2); - } - .top-22 { - top: calc(var(--spacing) * 22); - } - .right-2\.5 { - right: calc(var(--spacing) * 2.5); - } - .left-1\/2 { - left: calc(1/2 * 100%); - } - .left-2 { - left: calc(var(--spacing) * 2); - } - .isolate { - isolation: isolate; - } - .z-10 { - z-index: 10; - } - .col-span-2 { - grid-column: span 2 / span 2; - } - .container { - width: 100%; - @media (width >= 40rem) { - max-width: 40rem; - } - @media (width >= 48rem) { - max-width: 48rem; - } - @media (width >= 64rem) { - max-width: 64rem; - } - @media (width >= 80rem) { - max-width: 80rem; - } - @media (width >= 96rem) { - max-width: 96rem; - } - } - .mx-auto { - margin-inline: auto; - } - .my-4 { - margin-block: calc(var(--spacing) * 4); - } - .my-6 { - margin-block: calc(var(--spacing) * 6); - } - .mt-4 { - margin-top: calc(var(--spacing) * 4); - } - .mt-6 { - margin-top: calc(var(--spacing) * 6); - } - .mt-8 { - margin-top: calc(var(--spacing) * 8); - } - .mr-auto { - margin-right: auto; - } - .mb-4 { - margin-bottom: calc(var(--spacing) * 4); - } - .mb-6 { - margin-bottom: calc(var(--spacing) * 6); - } - .mb-8 { - margin-bottom: calc(var(--spacing) * 8); - } - .mb-12 { - margin-bottom: calc(var(--spacing) * 12); - } - .-ml-1\.5 { - margin-left: calc(var(--spacing) * -1.5); - } - .ml-auto { - margin-left: auto; - } - .block { - display: block; - } - .contents { - display: contents; - } - .flex { - display: flex; - } - .grid { - display: grid; - } - .hidden { - display: none; - } - .inline-block { - display: inline-block; - } - .inline-flex { - display: inline-flex; - } - .table { - display: table; - } - .aspect-square { - aspect-ratio: 1 / 1; - } - .aspect-video { - aspect-ratio: var(--aspect-video); - } - .size-2 { - width: calc(var(--spacing) * 2); - height: calc(var(--spacing) * 2); - } - .size-2\.5 { - width: calc(var(--spacing) * 2.5); - height: calc(var(--spacing) * 2.5); - } - .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-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); - } - .size-12 { - width: calc(var(--spacing) * 12); - height: calc(var(--spacing) * 12); - } - .h-4 { - height: calc(var(--spacing) * 4); - } - .h-6 { - height: calc(var(--spacing) * 6); - } - .h-8 { - height: calc(var(--spacing) * 8); - } - .h-10 { - height: calc(var(--spacing) * 10); - } - .h-12 { - height: calc(var(--spacing) * 12); - } - .h-14 { - height: calc(var(--spacing) * 14); - } - .max-h-64 { - max-height: calc(var(--spacing) * 64); - } - .max-h-\[150px\] { - max-height: 150px; - } - .max-h-\[200px\] { - max-height: 200px; - } - .max-h-\[612px\] { - max-height: 612px; - } - .max-h-\[650px\] { - max-height: 650px; - } - .min-h-\[350px\] { - min-height: 350px; - } - .w-1\/2 { - width: calc(1/2 * 100%); - } - .w-2\/3 { - width: calc(2/3 * 100%); - } - .w-4 { - width: calc(var(--spacing) * 4); - } - .w-10 { - width: calc(var(--spacing) * 10); - } - .w-48 { - width: calc(var(--spacing) * 48); - } - .w-72 { - width: calc(var(--spacing) * 72); - } - .w-80 { - width: calc(var(--spacing) * 80); - } - .w-\[100px\] { - width: 100px; - } - .w-\[150px\] { - width: 150px; - } - .w-\[180px\] { - width: 180px; - } - .w-\[200px\] { - width: 200px; - } - .w-\[271px\] { - width: 271px; - } - .w-full { - width: 100%; - } - .w-max { - width: max-content; - } - .max-w-\[75\%\] { - max-width: 75%; - } - .max-w-\[200px\] { - max-width: 200px; - } - .max-w-\[300px\] { - max-width: 300px; - } - .max-w-lg { - max-width: var(--container-lg); - } - .max-w-md { - max-width: var(--container-md); - } - .max-w-screen-lg { - max-width: var(--breakpoint-lg); - } - .max-w-screen-md { - max-width: var(--breakpoint-md); - } - .max-w-sm { - max-width: var(--container-sm); - } - .max-w-xl { - max-width: var(--container-xl); - } - .min-w-5 { - min-width: calc(var(--spacing) * 5); - } - .min-w-32 { - min-width: calc(var(--spacing) * 32); - } - .min-w-56 { - min-width: calc(var(--spacing) * 56); - } - .min-w-\[8rem\] { - min-width: 8rem; - } - .flex-1 { - flex: 1; - } - .flex-shrink { - flex-shrink: 1; - } - .shrink-0 { - flex-shrink: 0; - } - .-translate-x-1\/2 { - --tw-translate-x: calc(calc(1/2 * 100%) * -1); - translate: var(--tw-translate-x) var(--tw-translate-y); - } - .-translate-y-1\/2 { - --tw-translate-y: calc(calc(1/2 * 100%) * -1); - translate: var(--tw-translate-x) var(--tw-translate-y); - } - .translate-y-0\.5 { - --tw-translate-y: calc(var(--spacing) * 0.5); - translate: var(--tw-translate-x) var(--tw-translate-y); - } - .transform { - transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,); - } - .animate-pulse { - animation: var(--animate-pulse); - } - .animate-spin { - animation: var(--animate-spin); - } - .cursor-pointer { - cursor: pointer; - } - .scroll-m-20 { - scroll-margin: calc(var(--spacing) * 20); - } - .scroll-mt-14 { - scroll-margin-top: calc(var(--spacing) * 14); - } - .scroll-mt-16 { - scroll-margin-top: calc(var(--spacing) * 16); - } - .list-decimal { - list-style-type: decimal; - } - .grid-cols-1 { - grid-template-columns: repeat(1, minmax(0, 1fr)); - } - .grid-cols-2 { - grid-template-columns: repeat(2, minmax(0, 1fr)); - } - .grid-cols-3 { - grid-template-columns: repeat(3, minmax(0, 1fr)); - } - .flex-col { - flex-direction: column; - } - .flex-row { - flex-direction: row; - } - .flex-wrap { - flex-wrap: wrap; - } - .items-center { - align-items: center; - } - .items-start { - align-items: flex-start; - } - .justify-between { - justify-content: space-between; - } - .justify-center { - justify-content: center; - } - .justify-start { - justify-content: flex-start; - } - .gap-0\.5 { - gap: calc(var(--spacing) * 0.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-4 { - gap: calc(var(--spacing) * 4); - } - .gap-6 { - gap: calc(var(--spacing) * 6); - } - .gap-8 { - gap: calc(var(--spacing) * 8); - } - .gap-10 { - gap: calc(var(--spacing) * 10); - } - .space-y-1 { - :where(& > :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))); - } - } - .space-y-2 { - :where(& > :not(:last-child)) { - --tw-space-y-reverse: 0; - margin-block-start: calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse)); - margin-block-end: calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse))); - } - } - .space-y-4 { - :where(& > :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))); - } - } - .space-y-6 { - :where(& > :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))); - } - } - .gap-x-1\.5 { - column-gap: calc(var(--spacing) * 1.5); - } - .gap-x-2 { - column-gap: calc(var(--spacing) * 2); - } - .gap-x-10 { - column-gap: calc(var(--spacing) * 10); - } - .-space-x-2 { - :where(& > :not(:last-child)) { - --tw-space-x-reverse: 0; - margin-inline-start: calc(calc(var(--spacing) * -2) * var(--tw-space-x-reverse)); - margin-inline-end: calc(calc(var(--spacing) * -2) * calc(1 - var(--tw-space-x-reverse))); - } - } - .space-x-2 { - :where(& > :not(:last-child)) { - --tw-space-x-reverse: 0; - margin-inline-start: calc(calc(var(--spacing) * 2) * var(--tw-space-x-reverse)); - margin-inline-end: calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-x-reverse))); - } - } - .gap-y-4 { - row-gap: calc(var(--spacing) * 4); - } - .gap-y-6 { - row-gap: calc(var(--spacing) * 6); - } - .gap-y-10 { - row-gap: calc(var(--spacing) * 10); - } - .truncate { - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - } - .overflow-x-auto { - overflow-x: auto; - } - .overflow-y-auto { - overflow-y: auto; - } - .rounded { - border-radius: 0.25rem; - } - .rounded-\[2px\] { - border-radius: 2px; - } - .rounded-full { - border-radius: calc(infinity * 1px); - } - .rounded-lg { - border-radius: var(--radius-lg); - } - .rounded-md { - border-radius: var(--radius-md); - } - .rounded-sm { - border-radius: var(--radius-sm); - } - .rounded-xl { - border-radius: var(--radius-xl); - } - .border { - border-style: var(--tw-border-style); - border-width: 1px; - } - .border-2 { - border-style: var(--tw-border-style); - border-width: 2px; - } - .border-t { - border-top-style: var(--tw-border-style); - border-top-width: 1px; - } - .border-b { - border-bottom-style: var(--tw-border-style); - border-bottom-width: 1px; - } - .border-amber-50 { - border-color: var(--color-amber-50); - } - .border-border\/50 { - border-color: var(--color-border); - @supports (color: color-mix(in lab, red, red)) { - border-color: color-mix(in oklab, var(--color-border) 50%, transparent); - } - } - .border-muted { - border-color: var(--color-muted); - } - .\!bg-muted { - background-color: var(--color-muted) !important; - } - .bg-accent { - background-color: var(--color-accent); - } - .bg-amber-50 { - background-color: var(--color-amber-50); - } - .bg-background { - background-color: var(--color-background); - } - .bg-card { - background-color: var(--color-card); - } - .bg-foreground { - background-color: var(--color-foreground); - } - .bg-muted { - background-color: var(--color-muted); - } - .bg-primary { - background-color: var(--color-primary); - } - .bg-sidebar-primary { - background-color: var(--color-sidebar-primary); - } - .object-cover { - object-fit: cover; - } - .\!p-3\.5 { - padding: calc(var(--spacing) * 3.5) !important; - } - .p-1 { - padding: calc(var(--spacing) * 1); - } - .p-2 { - padding: calc(var(--spacing) * 2); - } - .p-3 { - padding: calc(var(--spacing) * 3); - } - .p-4 { - padding: calc(var(--spacing) * 4); - } - .p-10 { - padding: calc(var(--spacing) * 10); - } - .px-0 { - padding-inline: calc(var(--spacing) * 0); - } - .px-1 { - padding-inline: calc(var(--spacing) * 1); - } - .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-4 { - padding-inline: calc(var(--spacing) * 4); - } - .px-\[0\.3rem\] { - padding-inline: 0.3rem; - } - .py-1\.5 { - padding-block: calc(var(--spacing) * 1.5); - } - .py-2 { - padding-block: calc(var(--spacing) * 2); - } - .py-3 { - padding-block: calc(var(--spacing) * 3); - } - .py-4 { - padding-block: calc(var(--spacing) * 4); - } - .py-\[0\.2rem\] { - padding-block: 0.2rem; - } - .pt-2 { - padding-top: calc(var(--spacing) * 2); - } - .pb-4 { - padding-bottom: calc(var(--spacing) * 4); - } - .pb-12 { - padding-bottom: calc(var(--spacing) * 12); - } - .pl-6 { - padding-left: calc(var(--spacing) * 6); - } - .pl-8 { - padding-left: calc(var(--spacing) * 8); - } - .text-center { - text-align: center; - } - .text-left { - text-align: left; - } - .text-right { - text-align: right; - } - .font-mono { - font-family: var(--font-mono); - } - .text-2xl { - font-size: var(--text-2xl); - line-height: var(--tw-leading, var(--text-2xl--line-height)); - } - .text-3xl { - font-size: var(--text-3xl); - line-height: var(--tw-leading, var(--text-3xl--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-sm { - font-size: var(--text-sm); - line-height: var(--tw-leading, var(--text-sm--line-height)); - } - .text-xs { - font-size: var(--text-xs); - line-height: var(--tw-leading, var(--text-xs--line-height)); - } - .text-\[1\.05rem\] { - font-size: 1.05rem; - } - .leading-none { - --tw-leading: 1; - line-height: 1; - } - .leading-normal { - --tw-leading: var(--leading-normal); - line-height: var(--leading-normal); - } - .leading-snug { - --tw-leading: var(--leading-snug); - line-height: var(--leading-snug); - } - .leading-tight { - --tw-leading: var(--leading-tight); - line-height: var(--leading-tight); - } - .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-widest { - --tw-tracking: var(--tracking-widest); - letter-spacing: var(--tracking-widest); - } - .break-words { - overflow-wrap: break-word; - } - .whitespace-pre-wrap { - white-space: pre-wrap; - } - .text-amber-900 { - color: var(--color-amber-900); - } - .text-destructive { - color: var(--color-destructive); - } - .text-foreground { - color: var(--color-foreground); - } - .text-muted-foreground { - color: var(--color-muted-foreground); - } - .text-primary-foreground { - color: var(--color-primary-foreground); - } - .text-sidebar-primary-foreground { - color: var(--color-sidebar-primary-foreground); - } - .uppercase { - text-transform: uppercase; - } - .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,); - } - .underline { - text-decoration-line: underline; - } - .underline-offset-4 { - text-underline-offset: 4px; - } - .opacity-0 { - opacity: 0%; - } - .opacity-50 { - opacity: 50%; - } - .opacity-60 { - opacity: 60%; - } - .opacity-100 { - opacity: 100%; - } - .shadow-none { - --tw-shadow: 0 0 #0000; - 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, rgb(0 0 0 / 0.1)), 0 8px 10px -6px var(--tw-shadow-color, rgb(0 0 0 / 0.1)); - box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); - } - .shadow-xs { - --tw-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05)); - box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); - } - .ring-offset-background { - --tw-ring-offset-color: var(--color-background); - } - .outline { - outline-style: var(--tw-outline-style); - outline-width: 1px; - } - .filter { - filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,); - } - .transition { - transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter; - 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-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-200 { - --tw-duration: 200ms; - transition-duration: 200ms; - } - .duration-400 { - --tw-duration: 400ms; - transition-duration: 400ms; - } - .outline-none { - --tw-outline-style: none; - outline-style: none; - } - .select-none { - -webkit-user-select: none; - user-select: none; - } - .group-open\:rotate-180 { - &:is(:where(.group):is([open], :popover-open, :open) *) { - rotate: 180deg; - } - } - .group-aria-checked\:visible { - &:is(:where(.group)[aria-checked="true"] *) { - visibility: visible; - } - } - .group-\[\.copied\]\:block { - &:is(:where(.group):is(.copied) *) { - display: block; - } - } - .group-\[\.copied\]\:hidden { - &:is(:where(.group):is(.copied) *) { - display: none; - } - } - .peer-checked\:border-primary { - &:is(:where(.peer):checked ~ *) { - border-color: var(--color-primary); - } - } - .last\:border-b-0 { - &:last-child { - border-bottom-style: var(--tw-border-style); - border-bottom-width: 0px; - } - } - .checked\:border-blue-600 { - &:checked { - border-color: var(--color-blue-600); - } - } - .checked\:border-green-600 { - &:checked { - border-color: var(--color-green-600); - } - } - .checked\:bg-blue-500 { - &:checked { - background-color: var(--color-blue-500); - } - } - .checked\:bg-blue-600 { - &:checked { - background-color: var(--color-blue-600); - } - } - .checked\:bg-green-600 { - &:checked { - background-color: var(--color-green-600); - } - } - .checked\:before\:bg-background { - &:checked { - &::before { - content: var(--tw-content); - background-color: var(--color-background); - } - } - } - .checked\:after\:bg-white { - &:checked { - &::after { - content: var(--tw-content); - background-color: var(--color-white); - } - } - } - .hover\:space-x-1 { - &:hover { - @media (hover: hover) { - :where(& > :not(:last-child)) { - --tw-space-x-reverse: 0; - margin-inline-start: calc(calc(var(--spacing) * 1) * var(--tw-space-x-reverse)); - margin-inline-end: calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-x-reverse))); - } - } - } - } - .hover\:bg-accent\/50 { - &:hover { - @media (hover: hover) { - background-color: var(--color-accent); - @supports (color: color-mix(in lab, red, red)) { - background-color: color-mix(in oklab, var(--color-accent) 50%, transparent); - } - } - } - } - .hover\:bg-destructive\/10 { - &:hover { - @media (hover: hover) { - background-color: var(--color-destructive); - @supports (color: color-mix(in lab, red, red)) { - background-color: color-mix(in oklab, var(--color-destructive) 10%, transparent); - } - } - } - } - .hover\:bg-muted { - &:hover { - @media (hover: hover) { - background-color: var(--color-muted); - } - } - } - .hover\:text-foreground { - &:hover { - @media (hover: hover) { - color: var(--color-foreground); - } - } - } - .hover\:underline { - &:hover { - @media (hover: hover) { - text-decoration-line: underline; - } - } - } - .focus\:bg-destructive\/10 { - &:focus { - background-color: var(--color-destructive); - @supports (color: color-mix(in lab, red, red)) { - background-color: color-mix(in oklab, var(--color-destructive) 10%, transparent); - } - } - } - .focus\:text-destructive { - &:focus { - color: var(--color-destructive); - } - } - .focus-visible\:border-ring { - &:focus-visible { - border-color: var(--color-ring); - } - } - .focus-visible\:ring-2 { - &:focus-visible { - --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + 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-visible\:ring-\[3px\] { - &:focus-visible { - --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + 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-visible\:ring-ring { - &:focus-visible { - --tw-ring-color: var(--color-ring); - } - } - .focus-visible\:ring-ring\/50 { - &:focus-visible { - --tw-ring-color: var(--color-ring); - @supports (color: color-mix(in lab, red, red)) { - --tw-ring-color: color-mix(in oklab, var(--color-ring) 50%, transparent); - } - } - } - .focus-visible\:ring-offset-2 { - &:focus-visible { - --tw-ring-offset-width: 2px; - --tw-ring-offset-shadow: var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); - } - } - .focus-visible\:outline-none { - &:focus-visible { - --tw-outline-style: none; - outline-style: none; - } - } - .has-\[input\[type\=\'checkbox\'\]\:checked\]\:border-blue-600 { - &:has(*:is(input[type='checkbox']:checked)) { - border-color: var(--color-blue-600); - } - } - .has-\[input\[type\=\'checkbox\'\]\:checked\]\:bg-blue-50 { - &:has(*:is(input[type='checkbox']:checked)) { - background-color: var(--color-blue-50); - } - } - .has-\[input\[type\=\'radio\'\]\:checked\]\:border-green-600 { - &:has(*:is(input[type='radio']:checked)) { - border-color: var(--color-green-600); - } - } - .has-\[input\[type\=\'radio\'\]\:checked\]\:bg-green-50 { - &:has(*:is(input[type='radio']:checked)) { - background-color: var(--color-green-50); - } - } - .max-sm\:flex-col { - @media (width < 40rem) { - flex-direction: column; - } - } - .sm\:max-w-\[425px\] { - @media (width >= 40rem) { - max-width: 425px; - } - } - .sm\:gap-2\.5 { - @media (width >= 40rem) { - gap: calc(var(--spacing) * 2.5); - } - } - .sm\:text-3xl { - @media (width >= 40rem) { - font-size: var(--text-3xl); - line-height: var(--tw-leading, var(--text-3xl--line-height)); - } - } - .sm\:text-base { - @media (width >= 40rem) { - font-size: var(--text-base); - line-height: var(--tw-leading, var(--text-base--line-height)); - } - } - .sm\:text-lg { - @media (width >= 40rem) { - font-size: var(--text-lg); - line-height: var(--tw-leading, var(--text-lg--line-height)); - } - } - .md\:ml-4 { - @media (width >= 48rem) { - margin-left: calc(var(--spacing) * 4); - } - } - .md\:w-\[239px\] { - @media (width >= 48rem) { - width: 239px; - } - } - .md\:max-w-\[200px\] { - @media (width >= 48rem) { - max-width: 200px; - } - } - .md\:flex-row { - @media (width >= 48rem) { - flex-direction: row; - } - } - .md\:border-l { - @media (width >= 48rem) { - border-left-style: var(--tw-border-style); - border-left-width: 1px; - } - } - .md\:p-6 { - @media (width >= 48rem) { - padding: calc(var(--spacing) * 6); - } - } - .md\:pl-8 { - @media (width >= 48rem) { - padding-left: calc(var(--spacing) * 8); - } - } - .md\:text-4xl { - @media (width >= 48rem) { - font-size: var(--text-4xl); - line-height: var(--tw-leading, var(--text-4xl--line-height)); - } - } - .lg\:grid-cols-2 { - @media (width >= 64rem) { - grid-template-columns: repeat(2, minmax(0, 1fr)); - } - } - .xl\:block { - @media (width >= 80rem) { - display: block; - } - } - .xl\:p-12 { - @media (width >= 80rem) { - padding: calc(var(--spacing) * 12); - } - } - .xl\:text-4xl { - @media (width >= 80rem) { - font-size: var(--text-4xl); - line-height: var(--tw-leading, var(--text-4xl--line-height)); - } - } - .\@md\:w-auto { - @container (width >= 28rem) { - width: auto; - } - } - .\@md\:min-w-sm { - @container (width >= 28rem) { - min-width: var(--container-sm); - } - } - .dark\:block { - &:is(.dark *) { - display: block; - } - } - .dark\:hidden { - &:is(.dark *) { - display: none; - } - } - .dark\:border-amber-950 { - &:is(.dark *) { - border-color: var(--color-amber-950); - } - } - .dark\:bg-amber-950 { - &:is(.dark *) { - background-color: var(--color-amber-950); - } - } - .dark\:text-amber-100 { - &:is(.dark *) { - color: var(--color-amber-100); - } - } - .dark\:checked\:border-blue-700 { - &:is(.dark *) { - &:checked { - border-color: var(--color-blue-700); - } - } - } - .dark\:checked\:bg-blue-600 { - &:is(.dark *) { - &:checked { - background-color: var(--color-blue-600); - } - } - } - .dark\:checked\:bg-blue-700 { - &:is(.dark *) { - &:checked { - background-color: var(--color-blue-700); - } - } - } - .dark\:checked\:bg-input\/30 { - &:is(.dark *) { - &:checked { - background-color: var(--color-input); - @supports (color: color-mix(in lab, red, red)) { - background-color: color-mix(in oklab, var(--color-input) 30%, transparent); - } - } - } - } - .dark\:checked\:before\:bg-primary { - &:is(.dark *) { - &:checked { - &::before { - content: var(--tw-content); - background-color: var(--color-primary); - } - } - } - } - .dark\:hover\:bg-destructive\/20 { - &:is(.dark *) { - &:hover { - @media (hover: hover) { - background-color: var(--color-destructive); - @supports (color: color-mix(in lab, red, red)) { - background-color: color-mix(in oklab, var(--color-destructive) 20%, transparent); - } - } - } - } - } - .dark\:focus\:bg-destructive\/20 { - &:is(.dark *) { - &:focus { - background-color: var(--color-destructive); - @supports (color: color-mix(in lab, red, red)) { - background-color: color-mix(in oklab, var(--color-destructive) 20%, transparent); - } - } - } - } - .dark\:has-\[input\[type\=\'checkbox\'\]\:checked\]\:border-blue-900 { - &:is(.dark *) { - &:has(*:is(input[type='checkbox']:checked)) { - border-color: var(--color-blue-900); - } - } - } - .dark\:has-\[input\[type\=\'checkbox\'\]\:checked\]\:bg-blue-950 { - &:is(.dark *) { - &:has(*:is(input[type='checkbox']:checked)) { - background-color: var(--color-blue-950); - } - } - } - .dark\:has-\[input\[type\=\'radio\'\]\:checked\]\:border-green-900 { - &:is(.dark *) { - &:has(*:is(input[type='radio']:checked)) { - border-color: var(--color-green-900); - } - } - } - .dark\:has-\[input\[type\=\'radio\'\]\:checked\]\:bg-green-950 { - &:is(.dark *) { - &:has(*:is(input[type='radio']:checked)) { - background-color: var(--color-green-950); - } - } - } - .\[\&_a\]\:inline-block { - & a { - display: inline-block; - } - } - .\[\&_a\]\:text-muted-foreground { - & a { - color: var(--color-muted-foreground); - } - } - .\[\&_a\]\:no-underline { - & a { - text-decoration-line: none; - } - } - .\[\&_a\]\:transition-colors { - & a { - 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)); - } - } - .\[\&_a\]\:hover\:text-foreground { - & a { - &:hover { - @media (hover: hover) { - color: var(--color-foreground); - } - } - } - } - .\[\&_img\]\:size-8 { - & img { - width: calc(var(--spacing) * 8); - height: calc(var(--spacing) * 8); - } - } - .\[\&_img\]\:size-12 { - & img { - width: calc(var(--spacing) * 12); - height: calc(var(--spacing) * 12); - } - } - .\[\&_img\]\:shrink-0 { - & img { - flex-shrink: 0; - } - } - .\[\&_img\]\:rounded-full { - & img { - border-radius: calc(infinity * 1px); - } - } - .\[\&_img\]\:object-cover { - & img { - object-fit: cover; - } - } - .\[\&_img\]\:ring-2 { - & img { - --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + 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); - } - } - .\[\&_img\]\:ring-background { - & img { - --tw-ring-color: var(--color-background); - } - } - .\[\&_img\]\:ring-card { - & img { - --tw-ring-color: var(--color-card); - } - } - .\[\&_img\]\:grayscale { - & img { - --tw-grayscale: grayscale(100%); - 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,); - } - } - .\[\&_img\]\:transition-all { - & img { - transition-property: all; - transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); - transition-duration: var(--tw-duration, var(--default-transition-duration)); - } - } - .\[\&_img\]\:duration-300 { - & img { - --tw-duration: 300ms; - transition-duration: 300ms; - } - } - .\[\&_img\]\:ease-in-out { - & img { - --tw-ease: var(--ease-in-out); - transition-timing-function: var(--ease-in-out); - } - } - .\[\&_li\]\:mt-0 { - & li { - margin-top: calc(var(--spacing) * 0); - } - } - .\[\&_li\]\:pt-2 { - & li { - padding-top: calc(var(--spacing) * 2); - } - } - .\[\&_svg\]\:\!text-destructive { - & svg { - color: var(--color-destructive) !important; - } - } - .\[\&_ul\]\:m-0 { - & ul { - margin: calc(var(--spacing) * 0); - } - } - .\[\&_ul\]\:list-none { - & ul { - list-style-type: none; - } - } - .\[\&_ul_ul\]\:pl-4 { - & ul ul { - padding-left: calc(var(--spacing) * 4); - } - } - .md\:\*\:\[\.card\]\:basis-1\/4 { - @media (width >= 48rem) { - :is(& > *) { - &:is(.card) { - flex-basis: calc(1/4 * 100%); - } - } - } - } - .\[\&\>svg\]\:mb-3 { - &>svg { - margin-bottom: calc(var(--spacing) * 3); - } - } - .\[\&\>svg\]\:size-6 { - &>svg { - width: calc(var(--spacing) * 6); - height: calc(var(--spacing) * 6); - } - } -} -:root { - --radius: 0.625rem; - --background: oklch(1 0 0); - --foreground: oklch(0.145 0 0); - --card: oklch(1 0 0); - --card-foreground: oklch(0.145 0 0); - --popover: oklch(1 0 0); - --popover-foreground: oklch(0.145 0 0); - --primary: oklch(0.205 0 0); - --primary-foreground: oklch(0.985 0 0); - --secondary: oklch(0.97 0 0); - --secondary-foreground: oklch(0.205 0 0); - --muted: oklch(0.97 0 0); - --muted-foreground: oklch(0.556 0 0); - --accent: oklch(0.97 0 0); - --accent-foreground: oklch(0.205 0 0); - --destructive: oklch(0.577 0.245 27.325); - --border: oklch(0.922 0 0); - --input: oklch(0.922 0 0); - --ring: oklch(0.708 0 0); - --chart-1: oklch(0.646 0.222 41.116); - --chart-2: oklch(0.6 0.118 184.704); - --chart-3: oklch(0.398 0.07 227.392); - --chart-4: oklch(0.828 0.189 84.429); - --chart-5: oklch(0.769 0.188 70.08); - --sidebar: oklch(0.985 0 0); - --sidebar-foreground: oklch(0.145 0 0); - --sidebar-primary: oklch(0.205 0 0); - --sidebar-primary-foreground: oklch(0.985 0 0); - --sidebar-accent: oklch(0.97 0 0); - --sidebar-accent-foreground: oklch(0.205 0 0); - --sidebar-border: oklch(0.922 0 0); - --sidebar-ring: oklch(0.708 0 0); - --sidebar-width: 16rem; - --sidebar-mobile-width: 18rem; - --scrollbar-track: transparent; - --scrollbar-thumb: rgba(0, 0, 0, 0.3); - --scrollbar-width: 6px; - --scrollbar-radius: 6px; - --chevron-down-icon: url('data:image/svg+xml;utf8,'); - --chevron-down-icon-50: url('data:image/svg+xml;utf8,'); - --check-icon: url('data:image/svg+xml;utf8,'); -} -.dark { - --background: oklch(0.145 0 0); - --foreground: oklch(0.985 0 0); - --card: oklch(0.205 0 0); - --card-foreground: oklch(0.985 0 0); - --popover: oklch(0.269 0 0); - --popover-foreground: oklch(0.985 0 0); - --primary: oklch(0.922 0 0); - --primary-foreground: oklch(0.205 0 0); - --secondary: oklch(0.269 0 0); - --secondary-foreground: oklch(0.985 0 0); - --muted: oklch(0.269 0 0); - --muted-foreground: oklch(0.708 0 0); - --accent: oklch(0.371 0 0); - --accent-foreground: oklch(0.985 0 0); - --destructive: oklch(0.704 0.191 22.216); - --border: oklch(1 0 0 / 10%); - --input: oklch(1 0 0 / 15%); - --ring: oklch(0.556 0 0); - --chart-1: oklch(0.488 0.243 264.376); - --chart-2: oklch(0.696 0.17 162.48); - --chart-3: oklch(0.769 0.188 70.08); - --chart-4: oklch(0.627 0.265 303.9); - --chart-5: oklch(0.645 0.246 16.439); - --sidebar: oklch(0.205 0 0); - --sidebar-foreground: oklch(0.985 0 0); - --sidebar-primary: oklch(0.488 0.243 264.376); - --sidebar-primary-foreground: oklch(0.985 0 0); - --sidebar-accent: oklch(0.269 0 0); - --sidebar-accent-foreground: oklch(0.985 0 0); - --sidebar-border: oklch(1 0 0 / 10%); - --sidebar-ring: oklch(0.439 0 0); - --scrollbar-thumb: rgba(255, 255, 255, 0.3); - --chevron-down-icon: url('data:image/svg+xml;utf8,'); - --chevron-down-icon-50: url('data:image/svg+xml;utf8,'); - --check-icon: url('data:image/svg+xml;utf8,'); - color-scheme: dark; -} -@layer base { - * { - border-color: var(--color-border); - outline-color: var(--color-ring); - @supports (color: color-mix(in lab, red, red)) { - outline-color: color-mix(in oklab, var(--color-ring) 50%, transparent); - } - } - html { - scroll-behavior: smooth; - } - body { - overscroll-behavior: none; - background-color: var(--color-background); - color: var(--color-foreground); - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - } - .scrollbar { - scrollbar-width: thin; - scrollbar-color: var(--scrollbar-thumb) var(--scrollbar-track); - &::-webkit-scrollbar { - width: var(--scrollbar-width); - } - &::-webkit-scrollbar-track { - background: var(--scrollbar-track); - } - &::-webkit-scrollbar-thumb { - background: var(--scrollbar-thumb); - border-radius: var(--scrollbar-radius); - } - } - [x-cloak] { - display: none !important; - } -} -@layer components { - .alert, .alert-destructive { - position: relative; - display: grid; - width: 100%; - grid-template-columns: 0 1fr; - align-items: flex-start; - row-gap: calc(var(--spacing) * 0.5); - border-radius: var(--radius-lg); - border-style: var(--tw-border-style); - border-width: 1px; - padding-inline: calc(var(--spacing) * 4); - padding-block: calc(var(--spacing) * 3); - font-size: var(--text-sm); - line-height: var(--tw-leading, var(--text-sm--line-height)); - &:has(>svg) { - grid-template-columns: calc(var(--spacing) * 4) 1fr; - } - &:has(>svg) { - column-gap: calc(var(--spacing) * 3); - } - &>svg { - width: calc(var(--spacing) * 4); - height: calc(var(--spacing) * 4); - } - &>svg { - --tw-translate-y: calc(var(--spacing) * 0.5); - translate: var(--tw-translate-x) var(--tw-translate-y); - } - &>svg { - color: currentcolor; - } - h2 { - grid-column-start: 2; - overflow: hidden; - display: -webkit-box; - -webkit-box-orient: vertical; - -webkit-line-clamp: 1; - min-height: calc(var(--spacing) * 4); - --tw-font-weight: var(--font-weight-medium); - font-weight: var(--font-weight-medium); - --tw-tracking: var(--tracking-tight); - letter-spacing: var(--tracking-tight); - } - section { - grid-column-start: 2; - display: grid; - justify-items: start; - gap: calc(var(--spacing) * 1); - font-size: var(--text-sm); - line-height: var(--tw-leading, var(--text-sm--line-height)); - color: var(--color-muted-foreground); - & p { - --tw-leading: var(--leading-relaxed); - line-height: var(--leading-relaxed); - } - ul { - list-style-position: inside; - list-style-type: disc; - font-size: var(--text-sm); - line-height: var(--tw-leading, var(--text-sm--line-height)); - } - } - } - .alert { - background-color: var(--color-card); - color: var(--color-card-foreground); - } - .alert-destructive { - background-color: var(--color-card); - color: var(--color-destructive); - &>svg { - color: currentcolor; - } - section { - color: var(--color-destructive); - } - } -} -@layer components { - .btn, .btn-primary, .btn-secondary, .btn-outline, .btn-ghost, .btn-link, .btn-destructive, .btn-sm, .btn-sm-primary, .btn-sm-secondary, .btn-sm-outline, .btn-sm-ghost, .btn-sm-link, .btn-sm-destructive, .btn-lg, .btn-lg-primary, .btn-lg-secondary, .btn-lg-outline, .btn-lg-ghost, .btn-lg-link, .btn-lg-destructive, .btn-icon, .btn-icon-primary, .btn-icon-secondary, .btn-icon-outline, .btn-icon-ghost, .btn-icon-link, .btn-icon-destructive, .btn-sm-icon, .btn-sm-icon-primary, .btn-sm-icon-secondary, .btn-sm-icon-outline, .btn-sm-icon-ghost, .btn-sm-icon-link, .btn-sm-icon-destructive, .btn-lg-icon, .btn-lg-icon-primary, .btn-lg-icon-secondary, .btn-lg-icon-outline, .btn-lg-icon-ghost, .btn-lg-icon-link, .btn-lg-icon-destructive { - display: inline-flex; - flex-shrink: 0; - cursor: pointer; - align-items: center; - justify-content: center; - border-radius: var(--radius-md); - font-size: var(--text-sm); - line-height: var(--tw-leading, var(--text-sm--line-height)); - --tw-font-weight: var(--font-weight-medium); - font-weight: var(--font-weight-medium); - white-space: nowrap; - transition-property: all; - transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); - transition-duration: var(--tw-duration, var(--default-transition-duration)); - --tw-outline-style: none; - outline-style: none; - &:focus-visible { - border-color: var(--color-ring); - } - &:focus-visible { - --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + 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-visible { - --tw-ring-color: var(--color-ring); - @supports (color: color-mix(in lab, red, red)) { - --tw-ring-color: color-mix(in oklab, var(--color-ring) 50%, transparent); - } - } - &:disabled { - pointer-events: none; - } - &:disabled { - opacity: 50%; - } - &[aria-invalid="true"] { - border-color: var(--color-destructive); - } - &[aria-invalid="true"] { - --tw-ring-color: var(--color-destructive); - @supports (color: color-mix(in lab, red, red)) { - --tw-ring-color: color-mix(in oklab, var(--color-destructive) 20%, transparent); - } - } - &:is(.dark *) { - &[aria-invalid="true"] { - --tw-ring-color: var(--color-destructive); - @supports (color: color-mix(in lab, red, red)) { - --tw-ring-color: color-mix(in oklab, var(--color-destructive) 40%, transparent); - } - } - } - & svg { - pointer-events: none; - } - & svg { - flex-shrink: 0; - } - & svg:not([class*='size-']) { - width: calc(var(--spacing) * 4); - height: calc(var(--spacing) * 4); - } - } - .btn, .btn-primary, .btn-secondary, .btn-outline, .btn-ghost, .btn-link, .btn-destructive { - height: calc(var(--spacing) * 9); - gap: calc(var(--spacing) * 2); - padding-inline: calc(var(--spacing) * 4); - padding-block: calc(var(--spacing) * 2); - &:has(>svg) { - padding-inline: calc(var(--spacing) * 3); - } - } - .btn-icon, .btn-icon-primary, .btn-icon-secondary, .btn-icon-outline, .btn-icon-ghost, .btn-icon-link, .btn-icon-destructive { - width: calc(var(--spacing) * 9); - height: calc(var(--spacing) * 9); - } - .btn-sm, .btn-sm-primary, .btn-sm-secondary, .btn-sm-outline, .btn-sm-ghost, .btn-sm-link, .btn-sm-destructive { - height: calc(var(--spacing) * 8); - gap: calc(var(--spacing) * 1.5); - padding-inline: calc(var(--spacing) * 3); - &:has(>svg) { - padding-inline: calc(var(--spacing) * 2.5); - } - } - .btn-sm-icon, .btn-sm-icon-primary, .btn-sm-icon-secondary, .btn-sm-icon-outline, .btn-sm-icon-ghost, .btn-sm-icon-link, .btn-sm-icon-destructive { - width: calc(var(--spacing) * 8); - height: calc(var(--spacing) * 8); - } - .btn-lg, .btn-lg-primary, .btn-lg-secondary, .btn-lg-outline, .btn-lg-ghost, .btn-lg-link, .btn-lg-destructive { - height: calc(var(--spacing) * 10); - gap: calc(var(--spacing) * 2); - padding-inline: calc(var(--spacing) * 6); - &:has(>svg) { - padding-inline: calc(var(--spacing) * 4); - } - } - .btn-lg-icon, .btn-lg-icon-primary, .btn-lg-icon-secondary, .btn-lg-icon-outline, .btn-lg-icon-ghost, .btn-lg-icon-link, .btn-lg-icon-destructive { - width: calc(var(--spacing) * 10); - height: calc(var(--spacing) * 10); - } - .btn, .btn-primary, .btn-sm, .btn-sm-primary, .btn-lg, .btn-lg-primary, .btn-icon, .btn-icon-primary, .btn-sm-icon, .btn-sm-icon-primary, .btn-lg-icon, .btn-lg-icon-primary { - background-color: var(--color-primary); - color: var(--color-primary-foreground); - --tw-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05)); - box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); - &:hover { - @media (hover: hover) { - background-color: var(--color-primary); - @supports (color: color-mix(in lab, red, red)) { - background-color: color-mix(in oklab, var(--color-primary) 90%, transparent); - } - } - } - &[aria-pressed='true'] { - background-color: var(--color-primary); - @supports (color: color-mix(in lab, red, red)) { - background-color: color-mix(in oklab, var(--color-primary) 90%, transparent); - } - } - } - .btn-secondary, .btn-sm-secondary, .btn-lg-secondary, .btn-icon-secondary, .btn-sm-icon-secondary, .btn-lg-icon-secondary { - background-color: var(--color-secondary); - color: var(--color-secondary-foreground); - --tw-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05)); - box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); - &:hover, &[aria-pressed='true'] { - background-color: var(--color-secondary); - @supports (color: color-mix(in lab, red, red)) { - background-color: color-mix(in oklab, var(--color-secondary) 80%, transparent); - } - } - } - .btn-outline, .btn-sm-outline, .btn-lg-outline, .btn-icon-outline, .btn-sm-icon-outline, .btn-lg-icon-outline { - border-style: var(--tw-border-style); - border-width: 1px; - background-color: var(--color-background); - --tw-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05)); - box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); - &:is(.dark *) { - border-color: var(--color-input); - } - &:is(.dark *) { - background-color: var(--color-input); - @supports (color: color-mix(in lab, red, red)) { - background-color: color-mix(in oklab, var(--color-input) 30%, transparent); - } - } - &:hover, &[aria-pressed='true'] { - background-color: var(--color-accent); - color: var(--color-accent-foreground); - &:is(.dark *) { - background-color: var(--color-accent); - @supports (color: color-mix(in lab, red, red)) { - background-color: color-mix(in oklab, var(--color-accent) 50%, transparent); - } - } - } - } - .btn-ghost, .btn-sm-ghost, .btn-lg-ghost, .btn-icon-ghost, .btn-sm-icon-ghost, .btn-lg-icon-ghost { - &:hover, &[aria-pressed='true'] { - background-color: var(--color-accent); - color: var(--color-accent-foreground); - &:is(.dark *) { - background-color: var(--color-accent); - @supports (color: color-mix(in lab, red, red)) { - background-color: color-mix(in oklab, var(--color-accent) 50%, transparent); - } - } - } - } - .btn-link, .btn-sm-link, .btn-lg-link, .btn-icon-link, .btn-sm-icon-link, .btn-lg-icon-link { - color: var(--color-primary); - text-underline-offset: 4px; - &:hover, &[aria-pressed='true'] { - &:hover { - @media (hover: hover) { - text-decoration-line: underline; - } - } - } - } - .btn-destructive, .btn-sm-destructive, .btn-lg-destructive, .btn-icon-destructive, .btn-sm-icon-destructive, .btn-lg-icon-destructive { - background-color: var(--color-destructive); - color: var(--color-white); - --tw-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05)); - box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); - &:focus-visible { - --tw-ring-color: var(--color-destructive); - @supports (color: color-mix(in lab, red, red)) { - --tw-ring-color: color-mix(in oklab, var(--color-destructive) 20%, transparent); - } - } - &:is(.dark *) { - background-color: var(--color-destructive); - @supports (color: color-mix(in lab, red, red)) { - background-color: color-mix(in oklab, var(--color-destructive) 60%, transparent); - } - } - &:is(.dark *) { - &:focus-visible { - --tw-ring-color: var(--color-destructive); - @supports (color: color-mix(in lab, red, red)) { - --tw-ring-color: color-mix(in oklab, var(--color-destructive) 40%, transparent); - } - } - } - &:hover, &[aria-pressed='true'] { - background-color: var(--color-destructive); - @supports (color: color-mix(in lab, red, red)) { - background-color: color-mix(in oklab, var(--color-destructive) 90%, transparent); - } - &:is(.dark *) { - background-color: var(--color-destructive); - @supports (color: color-mix(in lab, red, red)) { - background-color: color-mix(in oklab, var(--color-destructive) 50%, transparent); - } - } - } - } -} -@layer components { - .badge, .badge-primary, .badge-secondary, .badge-destructive, .badge-outline { - display: inline-flex; - width: fit-content; - flex-shrink: 0; - align-items: center; - justify-content: center; - gap: calc(var(--spacing) * 1); - overflow: hidden; - border-radius: var(--radius-md); - border-style: var(--tw-border-style); - border-width: 1px; - padding-inline: calc(var(--spacing) * 2); - padding-block: calc(var(--spacing) * 0.5); - font-size: var(--text-xs); - line-height: var(--tw-leading, var(--text-xs--line-height)); - --tw-font-weight: var(--font-weight-medium); - font-weight: var(--font-weight-medium); - white-space: nowrap; - transition-property: color,box-shadow; - transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); - transition-duration: var(--tw-duration, var(--default-transition-duration)); - &:focus-visible { - border-color: var(--color-ring); - } - &:focus-visible { - --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + 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-visible { - --tw-ring-color: var(--color-ring); - @supports (color: color-mix(in lab, red, red)) { - --tw-ring-color: color-mix(in oklab, var(--color-ring) 50%, transparent); - } - } - &[aria-invalid="true"] { - border-color: var(--color-destructive); - } - &[aria-invalid="true"] { - --tw-ring-color: var(--color-destructive); - @supports (color: color-mix(in lab, red, red)) { - --tw-ring-color: color-mix(in oklab, var(--color-destructive) 20%, transparent); - } - } - &:is(.dark *) { - &[aria-invalid="true"] { - --tw-ring-color: var(--color-destructive); - @supports (color: color-mix(in lab, red, red)) { - --tw-ring-color: color-mix(in oklab, var(--color-destructive) 40%, transparent); - } - } - } - &>svg { - pointer-events: none; - } - &>svg { - width: calc(var(--spacing) * 3); - height: calc(var(--spacing) * 3); - } - } - .badge, .badge-primary { - border-color: transparent; - background-color: var(--color-primary); - color: var(--color-primary-foreground); - a& { - &:hover { - @media (hover: hover) { - background-color: var(--color-primary); - @supports (color: color-mix(in lab, red, red)) { - background-color: color-mix(in oklab, var(--color-primary) 90%, transparent); - } - } - } - } - } - .badge-secondary { - border-color: transparent; - background-color: var(--color-secondary); - color: var(--color-secondary-foreground); - a& { - &:hover { - @media (hover: hover) { - background-color: var(--color-secondary); - @supports (color: color-mix(in lab, red, red)) { - background-color: color-mix(in oklab, var(--color-secondary) 90%, transparent); - } - } - } - } - } - .badge-destructive { - border-color: transparent; - background-color: var(--color-destructive); - color: var(--color-white); - &:focus-visible { - --tw-ring-color: var(--color-destructive); - @supports (color: color-mix(in lab, red, red)) { - --tw-ring-color: color-mix(in oklab, var(--color-destructive) 20%, transparent); - } - } - &:is(.dark *) { - background-color: var(--color-destructive); - @supports (color: color-mix(in lab, red, red)) { - background-color: color-mix(in oklab, var(--color-destructive) 60%, transparent); - } - } - &:is(.dark *) { - &:focus-visible { - --tw-ring-color: var(--color-destructive); - @supports (color: color-mix(in lab, red, red)) { - --tw-ring-color: color-mix(in oklab, var(--color-destructive) 40%, transparent); - } - } - } - a& { - &:hover { - @media (hover: hover) { - background-color: var(--color-destructive); - @supports (color: color-mix(in lab, red, red)) { - background-color: color-mix(in oklab, var(--color-destructive) 90%, transparent); - } - } - } - } - } - .badge-outline { - color: var(--color-foreground); - a& { - &:hover { - @media (hover: hover) { - background-color: var(--color-accent); - } - } - } - a& { - &:hover { - @media (hover: hover) { - color: var(--color-accent-foreground); - } - } - } - } -} -@layer components { - .card { - display: flex; - flex-direction: column; - gap: calc(var(--spacing) * 6); - border-radius: var(--radius-xl); - border-style: var(--tw-border-style); - border-width: 1px; - background-color: var(--color-card); - padding-block: calc(var(--spacing) * 6); - color: var(--color-card-foreground); - --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1)); - box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); - > header { - container-type: inline-size; - container-name: card-header; - display: grid; - grid-auto-rows: min-content; - grid-template-rows: auto auto; - align-items: flex-start; - gap: calc(var(--spacing) * 1.5); - padding-inline: calc(var(--spacing) * 6); - &:has(*[data-slot="card-action"]) { - grid-template-columns: 1fr auto; - } - &:is(.border-b) { - padding-bottom: calc(var(--spacing) * 6); - } - h2 { - --tw-leading: 1; - line-height: 1; - --tw-font-weight: var(--font-weight-semibold); - font-weight: var(--font-weight-semibold); - } - p { - font-size: var(--text-sm); - line-height: var(--tw-leading, var(--text-sm--line-height)); - color: var(--color-muted-foreground); - } - } - > section { - padding-inline: calc(var(--spacing) * 6); - } - > footer { - display: flex; - align-items: center; - padding-inline: calc(var(--spacing) * 6); - &:is(.border-t) { - padding-top: calc(var(--spacing) * 6); - } - } - } -} -@layer components { - .form input[type='checkbox']:not([role='switch']), .input[type='checkbox']:not([role='switch']) { - width: calc(var(--spacing) * 4); - height: calc(var(--spacing) * 4); - flex-shrink: 0; - appearance: none; - border-radius: 4px; - border-style: var(--tw-border-style); - border-width: 1px; - border-color: var(--color-input); - --tw-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05)); - box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); - transition-property: box-shadow; - transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); - transition-duration: var(--tw-duration, var(--default-transition-duration)); - --tw-outline-style: none; - outline-style: none; - &:checked { - border-color: var(--color-primary); - } - &:checked { - background-color: var(--color-primary); - } - &:focus-visible { - border-color: var(--color-ring); - } - &:focus-visible { - --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + 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-visible { - --tw-ring-color: var(--color-ring); - @supports (color: color-mix(in lab, red, red)) { - --tw-ring-color: color-mix(in oklab, var(--color-ring) 50%, transparent); - } - } - &:disabled { - cursor: not-allowed; - } - &:disabled { - opacity: 50%; - } - &[aria-invalid="true"] { - border-color: var(--color-destructive); - } - &[aria-invalid="true"] { - --tw-ring-color: var(--color-destructive); - @supports (color: color-mix(in lab, red, red)) { - --tw-ring-color: color-mix(in oklab, var(--color-destructive) 20%, transparent); - } - } - &:is(.dark *) { - background-color: var(--color-input); - @supports (color: color-mix(in lab, red, red)) { - background-color: color-mix(in oklab, var(--color-input) 30%, transparent); - } - } - &:is(.dark *) { - &:checked { - background-color: var(--color-primary); - } - } - &:is(.dark *) { - &[aria-invalid="true"] { - --tw-ring-color: var(--color-destructive); - @supports (color: color-mix(in lab, red, red)) { - --tw-ring-color: color-mix(in oklab, var(--color-destructive) 40%, transparent); - } - } - } - &:checked:after { - display: block; - width: calc(var(--spacing) * 3.5); - height: calc(var(--spacing) * 3.5); - background-color: var(--color-primary-foreground); - --tw-content: ''; - content: var(--tw-content); - mask-image: var(--check-icon); - mask-size: 0.875rem; - mask-position: center; - mask-repeat: no-repeat; - } - } -} -@layer components { - details { - &::details-content { - block-size: 0; - display: block; - opacity: 0%; - transition-property: all; - transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); - transition-duration: var(--tw-duration, var(--default-transition-duration)); - transition-behavior: allow-discrete; - } - &[open]::details-content { - block-size: auto; - block-size: calc-size(auto, size); - opacity: 100%; - } - summary { - display: inline-flex; - cursor: pointer; - align-items: center; - } - } - details > summary::-webkit-details-marker { - display: none; - } -} -@layer components { - .dialog { - inset-block: calc(var(--spacing) * 0); - opacity: 0%; - transition-property: all; - transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); - transition-duration: var(--tw-duration, var(--default-transition-duration)); - transition-behavior: allow-discrete; - &:is([open],:popover-open) { - opacity: 100%; - &::backdrop { - opacity: 100%; - } - > article { - --tw-scale-x: 100%; - --tw-scale-y: 100%; - --tw-scale-z: 100%; - scale: var(--tw-scale-x) var(--tw-scale-y); - } - @starting-style { - opacity: 0%; - &::backdrop { - opacity: 0%; - } - > article { - --tw-scale-x: 95%; - --tw-scale-y: 95%; - --tw-scale-z: 95%; - scale: var(--tw-scale-x) var(--tw-scale-y); - } - } - } - &::backdrop { - background-color: color-mix(in srgb, #000 50%, transparent); - @supports (color: color-mix(in lab, red, red)) { - background-color: color-mix(in oklab, var(--color-black) 50%, transparent); - } - opacity: 0%; - transition-property: all; - transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); - transition-duration: var(--tw-duration, var(--default-transition-duration)); - transition-behavior: allow-discrete; - } - > article { - position: fixed; - top: 50%; - left: 50%; - z-index: 50; - display: flex; - max-height: calc(100% - 2rem); - width: 100%; - max-width: calc(100% - 2rem); - --tw-translate-x: calc(calc(1/2 * 100%) * -1); - translate: var(--tw-translate-x) var(--tw-translate-y); - --tw-translate-y: calc(calc(1/2 * 100%) * -1); - translate: var(--tw-translate-x) var(--tw-translate-y); - flex-direction: column; - gap: calc(var(--spacing) * 4); - border-radius: var(--radius-lg); - border-style: var(--tw-border-style); - border-width: 1px; - background-color: var(--color-background); - padding: calc(var(--spacing) * 6); - --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1)); - box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); - @media (width >= 40rem) { - max-width: var(--container-lg); - } - --tw-scale-x: 95%; - --tw-scale-y: 95%; - --tw-scale-z: 95%; - scale: var(--tw-scale-x) var(--tw-scale-y); - transition-property: all; - transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); - transition-duration: var(--tw-duration, var(--default-transition-duration)); - > header { - display: flex; - flex-direction: column; - gap: calc(var(--spacing) * 2); - text-align: center; - @media (width >= 40rem) { - text-align: left; - } - > h2 { - font-size: var(--text-lg); - line-height: var(--tw-leading, var(--text-lg--line-height)); - --tw-leading: 1; - line-height: 1; - --tw-font-weight: var(--font-weight-semibold); - font-weight: var(--font-weight-semibold); - } - > p { - font-size: var(--text-sm); - line-height: var(--tw-leading, var(--text-sm--line-height)); - color: var(--color-muted-foreground); - } - } - > section { - margin-inline: calc(var(--spacing) * -6); - flex: 1; - padding-inline: calc(var(--spacing) * 6); - } - > footer { - display: flex; - flex-direction: column-reverse; - gap: calc(var(--spacing) * 2); - @media (width >= 40rem) { - flex-direction: row; - } - @media (width >= 40rem) { - justify-content: flex-end; - } - } - > form[method='dialog'] { - position: absolute; - top: calc(var(--spacing) * 4); - right: calc(var(--spacing) * 4); - > button { - border-radius: var(--radius-xs); - opacity: 70%; - --tw-ring-offset-color: var(--color-background); - transition-property: opacity; - transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); - transition-duration: var(--tw-duration, var(--default-transition-duration)); - &:hover { - @media (hover: hover) { - opacity: 100%; - } - } - &:focus { - --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + 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 { - --tw-ring-color: var(--color-ring); - } - &:focus { - --tw-ring-offset-width: 2px; - --tw-ring-offset-shadow: var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); - } - &:focus { - --tw-outline-style: none; - outline-style: none; - @media (forced-colors: active) { - outline: 2px solid transparent; - outline-offset: 2px; - } - } - &:disabled { - pointer-events: none; - } - &[data-state="open"] { - background-color: var(--color-accent); - } - &[data-state="open"] { - color: var(--color-muted-foreground); - } - & svg { - pointer-events: none; - } - & svg { - flex-shrink: 0; - } - & svg:not([class*='size-']) { - width: calc(var(--spacing) * 4); - height: calc(var(--spacing) * 4); - } - } - } - } - } -} -@layer components { - .dropdown-menu { - position: relative; - display: inline-flex; - [data-popover] { - padding: calc(var(--spacing) * 1); - min-width: anchor-size(width); - [role='menuitem'], [role='menuitemcheckbox'], [role='menuitemradio'] { - position: relative; - display: flex; - width: 100%; - cursor: default; - align-items: center; - gap: calc(var(--spacing) * 2); - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - border-radius: var(--radius-sm); - padding-inline: calc(var(--spacing) * 2); - padding-block: calc(var(--spacing) * 1.5); - font-size: var(--text-sm); - line-height: var(--tw-leading, var(--text-sm--line-height)); - --tw-outline-style: none; - outline-style: none; - @media (forced-colors: active) { - outline: 2px solid transparent; - outline-offset: 2px; - } - -webkit-user-select: none; - user-select: none; - &:disabled { - pointer-events: none; - } - &:disabled { - opacity: 50%; - } - &[aria-disabled="true"] { - pointer-events: none; - } - &[aria-disabled="true"] { - opacity: 50%; - } - &[aria-hidden="true"] { - display: none; - } - & svg { - width: calc(var(--spacing) * 4); - height: calc(var(--spacing) * 4); - } - & svg { - flex-shrink: 0; - } - & svg { - color: var(--color-muted-foreground); - } - &:not([aria-disabled='true']) { - &:focus-visible { - background-color: var(--color-accent); - } - &:focus-visible { - color: var(--color-accent-foreground); - } - } - &.active { - background-color: var(--color-accent); - color: var(--color-accent-foreground); - } - } - [role='menu'] [role='heading'] { - display: flex; - padding-inline: calc(var(--spacing) * 2); - padding-block: calc(var(--spacing) * 1.5); - font-size: var(--text-sm); - line-height: var(--tw-leading, var(--text-sm--line-height)); - --tw-font-weight: var(--font-weight-medium); - font-weight: var(--font-weight-medium); - } - [role='separator'] { - margin-inline: calc(var(--spacing) * -1); - margin-block: calc(var(--spacing) * 1); - border-color: var(--color-border); - } - } - &:not([data-dropdown-menu-initialized]) [data-popover] { - [role='menuitem'], [role='menuitemcheckbox'], [role='menuitemradio'] { - &:hover { - @media (hover: hover) { - background-color: var(--color-accent); - } - } - &:hover { - @media (hover: hover) { - color: var(--color-accent-foreground); - } - } - } - } - } -} -@layer components { - .form input[type='text'], .form input[type='email'], .form input[type='password'], .form input[type='number'], .form input[type='file'], .form input[type='tel'], .form input[type='url'], .form input[type='search'], .form input[type='date'], .form input[type='datetime-local'], .form input[type='month'], .form input[type='week'], .form input[type='time'], .input[type='text'], .input[type='email'], .input[type='password'], .input[type='number'], .input[type='file'], .input[type='tel'], .input[type='url'], .input[type='search'], .input[type='date'], .input[type='datetime-local'], .input[type='month'], .input[type='week'], .input[type='time'] { - display: flex; - height: calc(var(--spacing) * 9); - width: 100%; - min-width: calc(var(--spacing) * 0); - appearance: none; - border-radius: var(--radius-md); - border-style: var(--tw-border-style); - border-width: 1px; - border-color: var(--color-input); - background-color: transparent; - padding-inline: calc(var(--spacing) * 3); - padding-block: calc(var(--spacing) * 1); - font-size: var(--text-base); - line-height: var(--tw-leading, var(--text-base--line-height)); - --tw-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05)); - box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); - transition-property: color,box-shadow; - transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); - transition-duration: var(--tw-duration, var(--default-transition-duration)); - --tw-outline-style: none; - outline-style: none; - & *::selection { - background-color: var(--color-primary); - } - &::selection { - background-color: var(--color-primary); - } - & *::selection { - color: var(--color-primary-foreground); - } - &::selection { - color: var(--color-primary-foreground); - } - &::file-selector-button { - display: inline-flex; - } - &::file-selector-button { - height: calc(var(--spacing) * 7); - } - &::file-selector-button { - border-style: var(--tw-border-style); - border-width: 0px; - } - &::file-selector-button { - background-color: transparent; - } - &::file-selector-button { - font-size: var(--text-sm); - line-height: var(--tw-leading, var(--text-sm--line-height)); - } - &::file-selector-button { - --tw-font-weight: var(--font-weight-medium); - font-weight: var(--font-weight-medium); - } - &::file-selector-button { - color: var(--color-foreground); - } - &::placeholder { - color: var(--color-muted-foreground); - } - &:disabled { - pointer-events: none; - } - &:disabled { - cursor: not-allowed; - } - &:disabled { - opacity: 50%; - } - @media (width >= 48rem) { - font-size: var(--text-sm); - line-height: var(--tw-leading, var(--text-sm--line-height)); - } - &:is(.dark *) { - background-color: var(--color-input); - @supports (color: color-mix(in lab, red, red)) { - background-color: color-mix(in oklab, var(--color-input) 30%, transparent); - } - } - &:focus-visible { - border-color: var(--color-ring); - } - &:focus-visible { - --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + 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-visible { - --tw-ring-color: var(--color-ring); - @supports (color: color-mix(in lab, red, red)) { - --tw-ring-color: color-mix(in oklab, var(--color-ring) 50%, transparent); - } - } - &[aria-invalid="true"] { - border-color: var(--color-destructive); - } - &[aria-invalid="true"] { - --tw-ring-color: var(--color-destructive); - @supports (color: color-mix(in lab, red, red)) { - --tw-ring-color: color-mix(in oklab, var(--color-destructive) 20%, transparent); - } - } - &:is(.dark *) { - &[aria-invalid="true"] { - --tw-ring-color: var(--color-destructive); - @supports (color: color-mix(in lab, red, red)) { - --tw-ring-color: color-mix(in oklab, var(--color-destructive) 40%, transparent); - } - } - } - } -} -@layer components { - .form label, .label { - display: flex; - align-items: center; - gap: calc(var(--spacing) * 2); - font-size: var(--text-sm); - line-height: var(--tw-leading, var(--text-sm--line-height)); - --tw-leading: 1; - line-height: 1; - --tw-font-weight: var(--font-weight-medium); - font-weight: var(--font-weight-medium); - -webkit-user-select: none; - user-select: none; - &:is(:where(.peer):disabled ~ *) { - pointer-events: none; - } - &:is(:where(.peer):disabled ~ *) { - opacity: 50%; - } - &:has(>*:disabled), &:has(+*:disabled) { - pointer-events: none; - opacity: 50%; - } - } -} -@layer components { - [data-popover] { - visibility: visible; - position: absolute; - z-index: 50; - width: max-content; - min-width: 100%; - --tw-scale-x: 100%; - --tw-scale-y: 100%; - --tw-scale-z: 100%; - scale: var(--tw-scale-x) var(--tw-scale-y); - overflow-x: hidden; - overflow-y: auto; - border-radius: var(--radius-md); - border-style: var(--tw-border-style); - border-width: 1px; - background-color: var(--color-popover); - color: var(--color-popover-foreground); - opacity: 100%; - --tw-shadow: 0 4px 6px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 2px 4px -2px var(--tw-shadow-color, rgb(0 0 0 / 0.1)); - box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); - transition-property: all; - transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); - transition-duration: var(--tw-duration, var(--default-transition-duration)); - &[aria-hidden='true'] { - visibility: hidden; - --tw-scale-x: 95%; - --tw-scale-y: 95%; - --tw-scale-z: 95%; - scale: var(--tw-scale-x) var(--tw-scale-y); - opacity: 0%; - &:not([data-side]), &[data-side='bottom'] { - --tw-translate-y: calc(var(--spacing) * -2); - translate: var(--tw-translate-x) var(--tw-translate-y); - } - &[data-side='top'] { - --tw-translate-y: calc(var(--spacing) * 2); - translate: var(--tw-translate-x) var(--tw-translate-y); - } - &[data-side='left'] { - --tw-translate-x: calc(var(--spacing) * 2); - translate: var(--tw-translate-x) var(--tw-translate-y); - } - &[data-side='right'] { - --tw-translate-x: calc(var(--spacing) * -2); - translate: var(--tw-translate-x) var(--tw-translate-y); - } - } - &:not([data-side]), &[data-side='bottom'] { - top: 100%; - margin-top: calc(var(--spacing) * 1); - } - &[data-side='top'] { - bottom: 100%; - margin-bottom: calc(var(--spacing) * 1); - } - &[data-side='left'] { - right: 100%; - margin-right: calc(var(--spacing) * 1); - } - &[data-side='right'] { - left: 100%; - margin-left: calc(var(--spacing) * 1); - } - &:not([data-side]), &[data-side='bottom'], &[data-side='top'] { - &:not([data-align]), &[data-align='start'] { - left: calc(var(--spacing) * 0); - } - &[data-align='end'] { - right: calc(var(--spacing) * 0); - } - &[data-align='center'] { - left: calc(1/2 * 100%); - --tw-translate-x: calc(calc(1/2 * 100%) * -1); - translate: var(--tw-translate-x) var(--tw-translate-y); - } - } - &[data-side='left'], &[data-side='right'] { - &:not([data-align]), &[data-align='start'] { - top: calc(var(--spacing) * 0); - } - &[data-align='end'] { - bottom: calc(var(--spacing) * 0); - } - &[data-align='center'] { - top: calc(1/2 * 100%); - --tw-translate-y: calc(calc(1/2 * 100%) * -1); - translate: var(--tw-translate-x) var(--tw-translate-y); - } - } - } - .popover { - position: relative; - display: inline-flex; - [data-popover] { - padding: calc(var(--spacing) * 4); - } - } -} -@layer components { - .form input[type='radio'], .input[type='radio'] { - position: relative; - aspect-ratio: 1 / 1; - width: calc(var(--spacing) * 4); - height: calc(var(--spacing) * 4); - flex-shrink: 0; - appearance: none; - border-radius: calc(infinity * 1px); - border-style: var(--tw-border-style); - border-width: 1px; - border-color: var(--color-input); - color: var(--color-primary); - --tw-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05)); - box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); - transition-property: color,box-shadow; - transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); - transition-duration: var(--tw-duration, var(--default-transition-duration)); - --tw-outline-style: none; - outline-style: none; - &:focus-visible { - border-color: var(--color-ring); - } - &:focus-visible { - --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + 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-visible { - --tw-ring-color: var(--color-ring); - @supports (color: color-mix(in lab, red, red)) { - --tw-ring-color: color-mix(in oklab, var(--color-ring) 50%, transparent); - } - } - &:disabled { - cursor: not-allowed; - } - &:disabled { - opacity: 50%; - } - &[aria-invalid="true"] { - border-color: var(--color-destructive); - } - &[aria-invalid="true"] { - --tw-ring-color: var(--color-destructive); - @supports (color: color-mix(in lab, red, red)) { - --tw-ring-color: color-mix(in oklab, var(--color-destructive) 20%, transparent); - } - } - &:is(.dark *) { - background-color: var(--color-input); - @supports (color: color-mix(in lab, red, red)) { - background-color: color-mix(in oklab, var(--color-input) 30%, transparent); - } - } - &:is(.dark *) { - &[aria-invalid="true"] { - --tw-ring-color: var(--color-destructive); - @supports (color: color-mix(in lab, red, red)) { - --tw-ring-color: color-mix(in oklab, var(--color-destructive) 40%, transparent); - } - } - } - &:checked:before { - position: absolute; - top: calc(1/2 * 100%); - left: calc(1/2 * 100%); - width: calc(var(--spacing) * 2); - height: calc(var(--spacing) * 2); - --tw-translate-x: calc(calc(1/2 * 100%) * -1); - translate: var(--tw-translate-x) var(--tw-translate-y); - --tw-translate-y: calc(calc(1/2 * 100%) * -1); - translate: var(--tw-translate-x) var(--tw-translate-y); - border-radius: calc(infinity * 1px); - background-color: var(--color-primary); - --tw-content: ''; - content: var(--tw-content); - } - } -} -@layer components { - .form input[type='range'], .input[type='range'] { - display: flex; - appearance: none; - align-items: center; - padding: calc(var(--spacing) * 0); - --tw-outline-style: none; - outline-style: none; - --slider-value: 20%; - &:hover, &:focus-visible { - &::-webkit-slider-thumb { - --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(4px + 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); - } - &::-moz-range-thumb { - --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(4px + 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); - } - &::-ms-thumb { - --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(4px + 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); - } - } - &::-webkit-slider-thumb { - margin-top: calc(var(--spacing) * -1.25); - display: block; - width: calc(var(--spacing) * 4); - height: calc(var(--spacing) * 4); - flex-shrink: 0; - appearance: none; - border-radius: calc(infinity * 1px); - border-style: var(--tw-border-style); - border-width: 1px; - border-color: var(--color-primary); - background-color: var(--color-background); - --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1)); - box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); - --tw-ring-color: var(--color-ring); - @supports (color: color-mix(in lab, red, red)) { - --tw-ring-color: color-mix(in oklab, var(--color-ring) 50%, transparent); - } - } - &::-webkit-slider-runnable-track { - height: calc(var(--spacing) * 1.5); - width: 100%; - appearance: none; - border-radius: calc(infinity * 1px); - background: linear-gradient(to right, var(--primary) var(--slider-value), var(--muted) var(--slider-value)); - } - &::-moz-range-thumb { - margin-top: calc(var(--spacing) * -1.25); - display: block; - width: calc(var(--spacing) * 4); - height: calc(var(--spacing) * 4); - flex-shrink: 0; - appearance: none; - border-radius: calc(infinity * 1px); - border-style: var(--tw-border-style); - border-width: 1px; - border-color: var(--color-primary); - background-color: var(--color-background); - --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1)); - box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); - --tw-ring-color: var(--color-ring); - @supports (color: color-mix(in lab, red, red)) { - --tw-ring-color: color-mix(in oklab, var(--color-ring) 50%, transparent); - } - } - &::-moz-range-track { - height: calc(var(--spacing) * 1.5); - width: 100%; - appearance: none; - border-radius: calc(infinity * 1px); - background: linear-gradient(to right, var(--primary) var(--slider-value), var(--muted) var(--slider-value)); - } - &::-ms-thumb { - margin-top: calc(var(--spacing) * -1.25); - display: block; - width: calc(var(--spacing) * 4); - height: calc(var(--spacing) * 4); - flex-shrink: 0; - appearance: none; - border-radius: calc(infinity * 1px); - border-style: var(--tw-border-style); - border-width: 1px; - border-color: var(--color-primary); - background-color: var(--color-background); - --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1)); - box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); - --tw-ring-color: var(--color-ring); - @supports (color: color-mix(in lab, red, red)) { - --tw-ring-color: color-mix(in oklab, var(--color-ring) 50%, transparent); - } - } - &::-ms-track { - height: calc(var(--spacing) * 1.5); - width: 100%; - appearance: none; - border-radius: calc(infinity * 1px); - } - &::-ms-fill-lower { - border-radius: calc(infinity * 1px); - background-color: var(--color-primary); - } - &::-ms-fill-upper { - border-radius: calc(infinity * 1px); - background-color: var(--color-muted); - } - } -} -@layer components { - .form select, select.select { - display: flex; - height: calc(var(--spacing) * 9); - width: fit-content; - appearance: none; - align-items: center; - justify-content: space-between; - gap: calc(var(--spacing) * 2); - border-radius: var(--radius-md); - border-style: var(--tw-border-style); - border-width: 1px; - border-color: var(--color-input); - background-color: transparent; - padding-block: calc(var(--spacing) * 2); - padding-right: calc(var(--spacing) * 9); - padding-left: calc(var(--spacing) * 3); - font-size: var(--text-sm); - line-height: var(--tw-leading, var(--text-sm--line-height)); - white-space: nowrap; - --tw-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05)); - box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); - transition-property: color,box-shadow; - transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); - transition-duration: var(--tw-duration, var(--default-transition-duration)); - --tw-outline-style: none; - outline-style: none; - &:focus-visible { - border-color: var(--color-ring); - } - &:focus-visible { - --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + 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-visible { - --tw-ring-color: var(--color-ring); - @supports (color: color-mix(in lab, red, red)) { - --tw-ring-color: color-mix(in oklab, var(--color-ring) 50%, transparent); - } - } - &:disabled { - cursor: not-allowed; - } - &:disabled { - opacity: 50%; - } - &[aria-invalid="true"] { - border-color: var(--color-destructive); - } - &[aria-invalid="true"] { - --tw-ring-color: var(--color-destructive); - @supports (color: color-mix(in lab, red, red)) { - --tw-ring-color: color-mix(in oklab, var(--color-destructive) 20%, transparent); - } - } - &:is(.dark *) { - background-color: var(--color-input); - @supports (color: color-mix(in lab, red, red)) { - background-color: color-mix(in oklab, var(--color-input) 30%, transparent); - } - } - &:is(.dark *) { - &:hover { - @media (hover: hover) { - background-color: var(--color-input); - @supports (color: color-mix(in lab, red, red)) { - background-color: color-mix(in oklab, var(--color-input) 50%, transparent); - } - } - } - } - &:is(.dark *) { - &[aria-invalid="true"] { - --tw-ring-color: var(--color-destructive); - @supports (color: color-mix(in lab, red, red)) { - --tw-ring-color: color-mix(in oklab, var(--color-destructive) 40%, transparent); - } - } - } - background-image: var(--chevron-down-icon-50); - background-size: 1rem; - background-position: center right 0.75rem; - background-repeat: no-repeat; - option, optgroup { - background-color: var(--color-popover); - color: var(--color-popover-foreground); - } - } - *:not(select).select { - position: relative; - display: inline-flex; - [data-popover] { - padding: calc(var(--spacing) * 1); - [role='option'] { - position: relative; - display: flex; - width: 100%; - cursor: default; - align-items: center; - gap: calc(var(--spacing) * 2); - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - border-radius: var(--radius-sm); - padding-block: calc(var(--spacing) * 1.5); - padding-right: calc(var(--spacing) * 7.5); - padding-left: calc(var(--spacing) * 2); - font-size: var(--text-sm); - line-height: var(--tw-leading, var(--text-sm--line-height)); - --tw-outline-style: none; - outline-style: none; - @media (forced-colors: active) { - outline: 2px solid transparent; - outline-offset: 2px; - } - -webkit-user-select: none; - user-select: none; - &:disabled { - pointer-events: none; - } - &:disabled { - opacity: 50%; - } - &[aria-disabled="true"] { - pointer-events: none; - } - &[aria-disabled="true"] { - opacity: 50%; - } - &[aria-hidden="true"] { - display: none; - } - & svg { - width: calc(var(--spacing) * 4); - height: calc(var(--spacing) * 4); - } - & svg { - flex-shrink: 0; - } - & svg { - color: var(--color-muted-foreground); - } - &[aria-selected='true'] { - background-image: var(--check-icon); - background-size: 0.875rem; - background-position: center right 0.5rem; - background-repeat: no-repeat; - } - &.active, &:focus-visible { - background-color: var(--color-accent); - color: var(--color-accent-foreground); - } - } - [role='listbox'] [role='heading'] { - display: flex; - padding-inline: calc(var(--spacing) * 2); - padding-block: calc(var(--spacing) * 1.5); - font-size: var(--text-xs); - line-height: var(--tw-leading, var(--text-xs--line-height)); - color: var(--color-muted-foreground); - } - [role='listbox'] [role='group']:not(:has([role='option']:not([aria-hidden='true']))) { - display: none; - } - [role='separator'] { - margin-inline: calc(var(--spacing) * -1); - margin-block: calc(var(--spacing) * 1); - border-color: var(--color-border); - } - > header { - margin-inline: calc(var(--spacing) * -1); - margin-top: calc(var(--spacing) * -1); - margin-bottom: calc(var(--spacing) * 1); - display: flex; - height: calc(var(--spacing) * 9); - align-items: center; - gap: calc(var(--spacing) * 2); - border-bottom-style: var(--tw-border-style); - border-bottom-width: 1px; - padding-inline: calc(var(--spacing) * 3); - svg { - width: calc(var(--spacing) * 4); - height: calc(var(--spacing) * 4); - flex-shrink: 0; - opacity: 50%; - } - input[role='combobox'] { - display: flex; - height: calc(var(--spacing) * 10); - width: 100%; - min-width: calc(var(--spacing) * 0); - flex: 1; - border-radius: var(--radius-md); - background-color: transparent; - padding-block: calc(var(--spacing) * 3); - font-size: var(--text-sm); - line-height: var(--tw-leading, var(--text-sm--line-height)); - --tw-outline-style: none; - outline-style: none; - @media (forced-colors: active) { - outline: 2px solid transparent; - outline-offset: 2px; - } - &::placeholder { - color: var(--color-muted-foreground); - } - &:disabled { - cursor: not-allowed; - } - &:disabled { - opacity: 50%; - } - } - } - [role='listbox']:not(:has([data-value]:not([aria-hidden='true'])))::before { - display: flex; - align-items: center; - justify-content: center; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - padding: calc(var(--spacing) * 6); - font-size: var(--text-sm); - line-height: var(--tw-leading, var(--text-sm--line-height)); - } - [role='listbox'][data-empty]:not(:has([data-value]:not([aria-hidden='true'])))::before { - --tw-content: attr(data-empty); - content: var(--tw-content); - } - [role='listbox']:not([data-empty]):not(:has([data-value]:not([aria-hidden='true'])))::before { - --tw-content: 'No results found'; - content: var(--tw-content); - } - } - &:not([data-select-initialized]) [data-popover] [role='option'] { - &:hover { - @media (hover: hover) { - background-color: var(--color-accent); - } - } - &:hover { - @media (hover: hover) { - color: var(--color-accent-foreground); - } - } - } - } -} -.sidebar { - &:not([data-sidebar-initialized]) { - @media (width < 48rem) { - display: none; - } - } - &:not([aria-hidden]), &[aria-hidden=false] { - @media (width < 48rem) { - position: fixed; - } - @media (width < 48rem) { - inset: calc(var(--spacing) * 0); - } - @media (width < 48rem) { - z-index: 40; - } - @media (width < 48rem) { - background-color: color-mix(in srgb, #000 50%, transparent); - @supports (color: color-mix(in lab, red, red)) { - background-color: color-mix(in oklab, var(--color-black) 50%, transparent); - } - } - } - nav { - position: fixed; - inset-block: calc(var(--spacing) * 0); - z-index: 50; - display: flex; - width: var(--sidebar-mobile-width); - flex-direction: column; - background-color: var(--color-sidebar); - color: var(--color-sidebar-foreground); - 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)); - --tw-duration: 300ms; - transition-duration: 300ms; - --tw-ease: var(--ease-in-out); - transition-timing-function: var(--ease-in-out); - @media (width >= 48rem) { - width: var(--sidebar-width); - } - } - & + * { - transition-property: margin; - transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); - transition-duration: var(--tw-duration, var(--default-transition-duration)); - --tw-duration: 300ms; - transition-duration: 300ms; - --tw-ease: var(--ease-in-out); - transition-timing-function: var(--ease-in-out); - } - &:not([data-side]), &[data-side=left] { - nav { - left: calc(var(--spacing) * 0); - border-right-style: var(--tw-border-style); - border-right-width: 1px; - } - & + * { - position: relative; - @media (width >= 48rem) { - margin-left: var(--sidebar-width); - } - } - &[aria-hidden=true] { - nav { - --tw-translate-x: -100%; - translate: var(--tw-translate-x) var(--tw-translate-y); - } - & + * { - @media (width >= 48rem) { - margin-left: calc(var(--spacing) * 0); - } - } - } - } - &[data-side=right] { - nav { - right: calc(var(--spacing) * 0); - border-left-style: var(--tw-border-style); - border-left-width: 1px; - } - & + * { - position: relative; - @media (width >= 48rem) { - margin-right: var(--sidebar-width); - } - } - &[aria-hidden=true] { - nav { - --tw-translate-x: 100%; - translate: var(--tw-translate-x) var(--tw-translate-y); - } - & + * { - @media (width >= 48rem) { - margin-right: calc(var(--spacing) * 0); - } - } - } - } - nav { - > header, > footer { - display: flex; - flex-direction: column; - gap: calc(var(--spacing) * 2); - padding: calc(var(--spacing) * 2); - } - [role=separator] { - margin-inline: calc(var(--spacing) * 2); - width: auto; - border-color: var(--color-sidebar-border); - } - > section { - display: flex; - min-height: calc(var(--spacing) * 0); - flex: 1; - flex-direction: column; - gap: calc(var(--spacing) * 2); - overflow-y: auto; - > [role=group] { - position: relative; - display: flex; - width: 100%; - min-width: calc(var(--spacing) * 0); - flex-direction: column; - padding: calc(var(--spacing) * 2); - } - h3 { - display: flex; - height: calc(var(--spacing) * 8); - flex-shrink: 0; - align-items: center; - border-radius: var(--radius-md); - padding-inline: calc(var(--spacing) * 2); - font-size: var(--text-xs); - line-height: var(--tw-leading, var(--text-xs--line-height)); - --tw-font-weight: var(--font-weight-medium); - font-weight: var(--font-weight-medium); - color: var(--color-sidebar-foreground); - @supports (color: color-mix(in lab, red, red)) { - color: color-mix(in oklab, var(--color-sidebar-foreground) 70%, transparent); - } - --tw-ring-color: var(--color-sidebar-ring); - --tw-outline-style: none; - outline-style: none; - @media (forced-colors: active) { - outline: 2px solid transparent; - outline-offset: 2px; - } - transition-property: margin,opacity; - transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); - transition-duration: var(--tw-duration, var(--default-transition-duration)); - --tw-duration: 200ms; - transition-duration: 200ms; - --tw-ease: linear; - transition-timing-function: linear; - &:focus-visible { - --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + 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); - } - &>svg { - width: calc(var(--spacing) * 4); - height: calc(var(--spacing) * 4); - } - &>svg { - flex-shrink: 0; - } - } - ul { - display: flex; - width: 100%; - min-width: calc(var(--spacing) * 0); - flex-direction: column; - gap: calc(var(--spacing) * 1); - li { - position: relative; - > a, > details > summary { - display: flex; - width: 100%; - align-items: center; - gap: calc(var(--spacing) * 2); - overflow: hidden; - border-radius: var(--radius-md); - padding: calc(var(--spacing) * 2); - text-align: left; - font-size: var(--text-sm); - line-height: var(--tw-leading, var(--text-sm--line-height)); - --tw-ring-color: var(--color-sidebar-ring); - --tw-outline-style: none; - outline-style: none; - @media (forced-colors: active) { - outline: 2px solid transparent; - outline-offset: 2px; - } - transition-property: width,height,padding; - transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); - transition-duration: var(--tw-duration, var(--default-transition-duration)); - &:hover { - @media (hover: hover) { - background-color: var(--color-sidebar-accent); - } - } - &:hover { - @media (hover: hover) { - color: var(--color-sidebar-accent-foreground); - } - } - &:focus-visible { - --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + 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); - } - &:active { - background-color: var(--color-sidebar-accent); - } - &:active { - color: var(--color-sidebar-accent-foreground); - } - &:disabled { - pointer-events: none; - } - &:disabled { - opacity: 50%; - } - &[aria-disabled="true"] { - pointer-events: none; - } - &[aria-disabled="true"] { - opacity: 50%; - } - &>span:last-child { - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - } - &>svg { - width: calc(var(--spacing) * 4); - height: calc(var(--spacing) * 4); - } - &>svg { - flex-shrink: 0; - } - &[aria-current=page] { - background-color: var(--color-sidebar-accent); - } - &[aria-current=page] { - --tw-font-weight: var(--font-weight-medium); - font-weight: var(--font-weight-medium); - } - &[aria-current=page] { - color: var(--color-sidebar-accent-foreground); - } - &:not([data-variant]), &[data-variant=default] { - &:hover { - @media (hover: hover) { - background-color: var(--color-sidebar-accent); - } - } - &:hover { - @media (hover: hover) { - color: var(--color-sidebar-accent-foreground); - } - } - } - &[data-variant=outline] { - background-color: var(--color-background); - --tw-shadow: 0 0 0 1px var(--tw-shadow-color, hsl(var(--sidebar-border))); - box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); - &:hover { - @media (hover: hover) { - background-color: var(--color-sidebar-accent); - } - } - &:hover { - @media (hover: hover) { - color: var(--color-sidebar-accent-foreground); - } - } - &:hover { - @media (hover: hover) { - --tw-shadow: 0 0 0 1px var(--tw-shadow-color, hsl(var(--sidebar-accent))); - box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); - } - } - } - &:not([data-size]), &[data-size=default] { - height: calc(var(--spacing) * 8); - font-size: var(--text-sm); - line-height: var(--tw-leading, var(--text-sm--line-height)); - } - &[data-size=sm] { - height: calc(var(--spacing) * 7); - font-size: var(--text-xs); - line-height: var(--tw-leading, var(--text-xs--line-height)); - } - &[data-size=lg] { - height: calc(var(--spacing) * 12); - font-size: var(--text-sm); - line-height: var(--tw-leading, var(--text-sm--line-height)); - &:is(:where(.group)[data-collapsible="icon"] *) { - padding: calc(var(--spacing) * 0) !important; - } - } - } - > details { - &:not([open]) { - > summary { - &::after { - rotate: calc(90deg * -1); - } - } - } - > summary { - &::after { - margin-left: auto; - display: block; - width: calc(var(--spacing) * 3.5); - height: calc(var(--spacing) * 3.5); - background-color: var(--color-primary); - 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)); - --tw-ease: linear; - transition-timing-function: linear; - --tw-content: ''; - content: var(--tw-content); - mask-image: var(--chevron-down-icon); - mask-size: 1rem; - mask-position: center; - mask-repeat: no-repeat; - } - } - &::details-content { - padding-inline: calc(var(--spacing) * 3.5); - } - } - } - ul { - display: flex; - width: 100%; - min-width: calc(var(--spacing) * 0); - --tw-translate-x: 1px; - translate: var(--tw-translate-x) var(--tw-translate-y); - flex-direction: column; - gap: calc(var(--spacing) * 1); - border-left-style: var(--tw-border-style); - border-left-width: 1px; - border-color: var(--color-sidebar-border); - padding-inline: calc(var(--spacing) * 2.5); - padding-block: calc(var(--spacing) * 0.5); - } - } - } - } -} -@layer components { - .form input[type='checkbox'][role='switch'], .input[type='checkbox'][role='switch'] { - display: inline-flex; - height: 1.15rem; - width: calc(var(--spacing) * 8); - flex-shrink: 0; - appearance: none; - align-items: center; - border-radius: calc(infinity * 1px); - border-style: var(--tw-border-style); - border-width: 1px; - border-color: transparent; - --tw-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05)); - box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); - transition-property: all; - transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); - transition-duration: var(--tw-duration, var(--default-transition-duration)); - --tw-outline-style: none; - outline-style: none; - &:focus-visible { - border-color: var(--color-ring); - } - &:focus-visible { - --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + 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-visible { - --tw-ring-color: var(--color-ring); - @supports (color: color-mix(in lab, red, red)) { - --tw-ring-color: color-mix(in oklab, var(--color-ring) 50%, transparent); - } - } - &:disabled { - cursor: not-allowed; - } - &:disabled { - opacity: 50%; - } - background-color: var(--color-input); - &:checked { - background-color: var(--color-primary); - } - &:is(.dark *) { - background-color: var(--color-input); - @supports (color: color-mix(in lab, red, red)) { - background-color: color-mix(in oklab, var(--color-input) 80%, transparent); - } - } - &:is(.dark *) { - &:checked { - background-color: var(--color-primary); - } - } - &::before { - content: var(--tw-content); - pointer-events: none; - } - &::before { - content: var(--tw-content); - display: block; - } - &::before { - content: var(--tw-content); - width: calc(var(--spacing) * 4); - height: calc(var(--spacing) * 4); - } - &::before { - content: var(--tw-content); - border-radius: calc(infinity * 1px); - } - &::before { - content: var(--tw-content); - --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); - } - &::before { - content: var(--tw-content); - transition-property: all; - transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); - transition-duration: var(--tw-duration, var(--default-transition-duration)); - } - &::before { - content: var(--tw-content); - --tw-content: ''; - content: var(--tw-content); - } - &::before { - content: var(--tw-content); - background-color: var(--color-background); - } - &:is(.dark *) { - &::before { - content: var(--tw-content); - background-color: var(--color-foreground); - } - } - &:checked { - &::before { - content: var(--tw-content); - margin-inline-start: calc(var(--spacing) * 3.5); - } - } - &:is(.dark *) { - &:checked { - &::before { - content: var(--tw-content); - background-color: var(--color-primary-foreground); - } - } - } - } -} -@layer components { - .table { - width: 100%; - caption-side: bottom; - font-size: var(--text-sm); - line-height: var(--tw-leading, var(--text-sm--line-height)); - thead { - & tr { - border-bottom-style: var(--tw-border-style); - border-bottom-width: 1px; - } - } - tbody { - & tr:last-child { - border-style: var(--tw-border-style); - border-width: 0px; - } - } - tfoot { - border-top-style: var(--tw-border-style); - border-top-width: 1px; - background-color: var(--color-muted); - @supports (color: color-mix(in lab, red, red)) { - background-color: color-mix(in oklab, var(--color-muted) 50%, transparent); - } - --tw-font-weight: var(--font-weight-medium); - font-weight: var(--font-weight-medium); - &>tr { - &:last-child { - border-bottom-style: var(--tw-border-style); - border-bottom-width: 0px; - } - } - } - tr { - border-bottom-style: var(--tw-border-style); - border-bottom-width: 1px; - 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)); - &:hover { - @media (hover: hover) { - background-color: var(--color-muted); - @supports (color: color-mix(in lab, red, red)) { - background-color: color-mix(in oklab, var(--color-muted) 50%, transparent); - } - } - } - } - th { - height: calc(var(--spacing) * 10); - padding-inline: calc(var(--spacing) * 2); - text-align: left; - vertical-align: middle; - --tw-font-weight: var(--font-weight-medium); - font-weight: var(--font-weight-medium); - white-space: nowrap; - color: var(--color-foreground); - &:has([role=checkbox]) { - padding-right: calc(var(--spacing) * 0); - } - &>[role=checkbox] { - --tw-translate-y: 2px; - translate: var(--tw-translate-x) var(--tw-translate-y); - } - } - td { - padding: calc(var(--spacing) * 2); - vertical-align: middle; - white-space: nowrap; - &:has([role=checkbox]) { - padding-right: calc(var(--spacing) * 0); - } - &>[role=checkbox] { - --tw-translate-y: 2px; - translate: var(--tw-translate-x) var(--tw-translate-y); - } - } - caption { - margin-top: calc(var(--spacing) * 4); - font-size: var(--text-sm); - line-height: var(--tw-leading, var(--text-sm--line-height)); - color: var(--color-muted-foreground); - } - } -} -@layer components { - .tabs { - display: flex; - flex-direction: column; - gap: calc(var(--spacing) * 2); - [role='tablist'] { - display: inline-flex; - height: calc(var(--spacing) * 9); - width: fit-content; - align-items: center; - justify-content: center; - border-radius: var(--radius-lg); - background-color: var(--color-muted); - padding: 3px; - color: var(--color-muted-foreground); - [role='tab'] { - display: inline-flex; - height: calc(100% - 1px); - flex: 1; - align-items: center; - justify-content: center; - gap: calc(var(--spacing) * 1.5); - border-radius: var(--radius-md); - border-style: var(--tw-border-style); - border-width: 1px; - border-color: transparent; - padding-inline: calc(var(--spacing) * 2); - padding-block: calc(var(--spacing) * 1); - font-size: var(--text-sm); - line-height: var(--tw-leading, var(--text-sm--line-height)); - --tw-font-weight: var(--font-weight-medium); - font-weight: var(--font-weight-medium); - white-space: nowrap; - color: var(--color-foreground); - transition-property: color,box-shadow; - transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); - transition-duration: var(--tw-duration, var(--default-transition-duration)); - &:focus-visible { - border-color: var(--color-ring); - } - &:focus-visible { - --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + 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-visible { - --tw-ring-color: var(--color-ring); - @supports (color: color-mix(in lab, red, red)) { - --tw-ring-color: color-mix(in oklab, var(--color-ring) 50%, transparent); - } - } - &:focus-visible { - outline-style: var(--tw-outline-style); - outline-width: 1px; - } - &:focus-visible { - outline-color: var(--color-ring); - } - &:disabled { - pointer-events: none; - } - &:disabled { - opacity: 50%; - } - &:is(.dark *) { - color: var(--color-muted-foreground); - } - & svg { - pointer-events: none; - } - & svg { - flex-shrink: 0; - } - & svg:not([class*='size-']) { - width: calc(var(--spacing) * 4); - height: calc(var(--spacing) * 4); - } - &[aria-selected='true'] { - background-color: var(--color-background); - --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1)); - box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); - &:is(.dark *) { - border-color: var(--color-input); - } - &:is(.dark *) { - background-color: var(--color-input); - @supports (color: color-mix(in lab, red, red)) { - background-color: color-mix(in oklab, var(--color-input) 30%, transparent); - } - } - &:is(.dark *) { - color: var(--color-foreground); - } - } - } - } - [role='tabpanel'] { - flex: 1; - --tw-outline-style: none; - outline-style: none; - } - } -} -@layer components { - .form textarea, .textarea { - display: flex; - field-sizing: content; - min-height: calc(var(--spacing) * 16); - width: 100%; - border-radius: var(--radius-md); - border-style: var(--tw-border-style); - border-width: 1px; - border-color: var(--color-input); - background-color: transparent; - padding-inline: calc(var(--spacing) * 3); - padding-block: calc(var(--spacing) * 2); - font-size: var(--text-base); - line-height: var(--tw-leading, var(--text-base--line-height)); - --tw-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05)); - box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); - transition-property: color,box-shadow; - transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); - transition-duration: var(--tw-duration, var(--default-transition-duration)); - --tw-outline-style: none; - outline-style: none; - &::placeholder { - color: var(--color-muted-foreground); - } - &:focus-visible { - border-color: var(--color-ring); - } - &:focus-visible { - --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + 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-visible { - --tw-ring-color: var(--color-ring); - @supports (color: color-mix(in lab, red, red)) { - --tw-ring-color: color-mix(in oklab, var(--color-ring) 50%, transparent); - } - } - &:disabled { - cursor: not-allowed; - } - &:disabled { - opacity: 50%; - } - &[aria-invalid="true"] { - border-color: var(--color-destructive); - } - &[aria-invalid="true"] { - --tw-ring-color: var(--color-destructive); - @supports (color: color-mix(in lab, red, red)) { - --tw-ring-color: color-mix(in oklab, var(--color-destructive) 20%, transparent); - } - } - @media (width >= 48rem) { - font-size: var(--text-sm); - line-height: var(--tw-leading, var(--text-sm--line-height)); - } - &:is(.dark *) { - background-color: var(--color-input); - @supports (color: color-mix(in lab, red, red)) { - background-color: color-mix(in oklab, var(--color-input) 30%, transparent); - } - } - &:is(.dark *) { - &[aria-invalid="true"] { - --tw-ring-color: var(--color-destructive); - @supports (color: color-mix(in lab, red, red)) { - --tw-ring-color: color-mix(in oklab, var(--color-destructive) 40%, transparent); - } - } - } - } -} -@layer components { - .toaster { - pointer-events: none; - position: fixed; - bottom: calc(var(--spacing) * 0); - z-index: 50; - display: flex; - width: 100%; - flex-direction: column-reverse; - padding: calc(var(--spacing) * 4); - @media (width >= 40rem) { - max-width: calc(var(--spacing) * 90); - } - &:not([data-align]), &[data-align='end'] { - right: calc(var(--spacing) * 0); - } - &[data-align='start'] { - left: calc(var(--spacing) * 0); - } - &[data-align='center'] { - left: calc(1/2 * 100%); - --tw-translate-x: calc(calc(1/2 * 100%) * -1); - translate: var(--tw-translate-x) var(--tw-translate-y); - } - .toast { - pointer-events: auto; - margin-top: calc(var(--spacing) * 4); - display: grid; - width: 100%; - animation: toast-up 0.3s ease-in-out; - grid-template-rows: 1fr; - transition-property: grid-template-rows,opacity,margin; - transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); - transition-duration: var(--tw-duration, var(--default-transition-duration)); - --tw-duration: 300ms; - transition-duration: 300ms; - --tw-ease: var(--ease-in-out); - transition-timing-function: var(--ease-in-out); - .toast-content { - display: flex; - align-items: center; - gap: calc(var(--spacing) * 2.5); - overflow: hidden; - border-radius: var(--radius-lg); - border-style: var(--tw-border-style); - border-width: 1px; - background-color: var(--color-popover); - padding: calc(var(--spacing) * 3); - font-size: 13px; - color: var(--color-popover-foreground); - --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1)); - box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); - svg { - width: calc(var(--spacing) * 4); - height: calc(var(--spacing) * 4); - flex-shrink: 0; - } - section { - h2 { - --tw-font-weight: var(--font-weight-medium); - font-weight: var(--font-weight-medium); - --tw-tracking: var(--tracking-tight); - letter-spacing: var(--tracking-tight); - } - p { - color: var(--color-muted-foreground); - } - } - footer { - margin-left: auto; - display: flex; - flex-direction: column; - gap: calc(var(--spacing) * 2); - [data-toast-action], [data-toast-cancel] { - height: calc(var(--spacing) * 6); - padding-inline: calc(var(--spacing) * 2.5); - font-size: var(--text-xs); - line-height: var(--tw-leading, var(--text-xs--line-height)); - } - } - } - &[aria-hidden='true'] { - margin: calc(var(--spacing) * 0); - grid-template-rows: 0fr; - overflow: hidden; - border-style: var(--tw-border-style); - border-width: 0px; - padding: calc(var(--spacing) * 0); - opacity: 0%; - .toast-content { - border-style: var(--tw-border-style); - border-width: 0px; - } - } - } - } -} -@keyframes toast-up { - from { - opacity: 0; - transform: translateY(100%); - } -} -@layer components { - [data-tooltip] { - position: relative; - &:before { - pointer-events: none; - visibility: hidden; - position: absolute; - z-index: 50; - width: fit-content; - max-width: var(--container-xs); - --tw-scale-x: 95%; - --tw-scale-y: 95%; - --tw-scale-z: 95%; - scale: var(--tw-scale-x) var(--tw-scale-y); - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - border-radius: var(--radius-md); - background-color: var(--color-primary); - padding-inline: calc(var(--spacing) * 3); - padding-block: calc(var(--spacing) * 1.5); - font-size: var(--text-xs); - line-height: var(--tw-leading, var(--text-xs--line-height)); - color: var(--color-primary-foreground); - opacity: 0%; - transition-property: all; - transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); - transition-duration: var(--tw-duration, var(--default-transition-duration)); - --tw-content: attr(data-tooltip); - content: var(--tw-content); - } - &:hover:before { - visibility: visible; - --tw-scale-x: 100%; - --tw-scale-y: 100%; - --tw-scale-z: 100%; - scale: var(--tw-scale-x) var(--tw-scale-y); - opacity: 100%; - } - &:focus-visible:not(:hover):before { - display: none; - } - &:not([data-side]), &[data-side='top'] { - &::before { - content: var(--tw-content); - bottom: 100%; - } - &::before { - content: var(--tw-content); - margin-bottom: calc(var(--spacing) * 1.5); - } - &::before { - content: var(--tw-content); - --tw-translate-y: calc(var(--spacing) * 2); - translate: var(--tw-translate-x) var(--tw-translate-y); - } - &:hover { - @media (hover: hover) { - &::before { - content: var(--tw-content); - --tw-translate-y: calc(var(--spacing) * 0); - translate: var(--tw-translate-x) var(--tw-translate-y); - } - } - } - } - &[data-side='bottom'] { - &::before { - content: var(--tw-content); - top: 100%; - } - &::before { - content: var(--tw-content); - margin-top: calc(var(--spacing) * 1.5); - } - &::before { - content: var(--tw-content); - --tw-translate-y: calc(var(--spacing) * -2); - translate: var(--tw-translate-x) var(--tw-translate-y); - } - &:hover { - @media (hover: hover) { - &::before { - content: var(--tw-content); - --tw-translate-y: calc(var(--spacing) * 0); - translate: var(--tw-translate-x) var(--tw-translate-y); - } - } - } - } - &:not([data-side]), &[data-side='top'], &[data-side='bottom'] { - &[data-align='start'] { - &::before { - content: var(--tw-content); - left: calc(var(--spacing) * 0); - } - } - &[data-align='end'] { - &::before { - content: var(--tw-content); - right: calc(var(--spacing) * 0); - } - } - &:not([data-align]), &[data-align='center'] { - &::before { - content: var(--tw-content); - left: calc(1/2 * 100%); - } - &::before { - content: var(--tw-content); - --tw-translate-x: calc(calc(1/2 * 100%) * -1); - translate: var(--tw-translate-x) var(--tw-translate-y); - } - } - } - &[data-side='left'] { - &::before { - content: var(--tw-content); - right: 100%; - } - &::before { - content: var(--tw-content); - margin-right: calc(var(--spacing) * 1.5); - } - &::before { - content: var(--tw-content); - --tw-translate-x: calc(var(--spacing) * 2); - translate: var(--tw-translate-x) var(--tw-translate-y); - } - &:hover { - @media (hover: hover) { - &::before { - content: var(--tw-content); - --tw-translate-x: calc(var(--spacing) * 0); - translate: var(--tw-translate-x) var(--tw-translate-y); - } - } - } - } - &[data-side='right'] { - &::before { - content: var(--tw-content); - left: 100%; - } - &::before { - content: var(--tw-content); - margin-left: calc(var(--spacing) * 1.5); - } - &::before { - content: var(--tw-content); - --tw-translate-x: calc(var(--spacing) * -2); - translate: var(--tw-translate-x) var(--tw-translate-y); - } - &:hover { - @media (hover: hover) { - &::before { - content: var(--tw-content); - --tw-translate-x: calc(var(--spacing) * 0); - translate: var(--tw-translate-x) var(--tw-translate-y); - } - } - } - } - &[data-side='left'], &[data-side='right'] { - &[data-align='start'] { - &::before { - content: var(--tw-content); - top: calc(var(--spacing) * 0); - } - } - &[data-align='end'] { - &::before { - content: var(--tw-content); - bottom: calc(var(--spacing) * 0); - } - } - &:not([data-align]), &[data-align='center'] { - &::before { - content: var(--tw-content); - top: calc(1/2 * 100%); - } - &::before { - content: var(--tw-content); - --tw-translate-y: calc(calc(1/2 * 100%) * -1); - translate: var(--tw-translate-x) var(--tw-translate-y); - } - } - } - } -} -.htmx-indicator { - visibility: hidden; - opacity: 0%; - transition-property: all; - transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); - transition-duration: var(--tw-duration, var(--default-transition-duration)); - transition-behavior: allow-discrete; -} -.htmx-indicator:not(.htmx-request) { - display: none; -} -.htmx-request, .htmx-request.htmx-indicator { - visibility: visible; - opacity: 100%; -} -.content { - > h2 { - margin-top: calc(var(--spacing) * 12); - margin-bottom: calc(var(--spacing) * 6); - scroll-margin: calc(var(--spacing) * 22); - font-size: var(--text-2xl); - line-height: var(--tw-leading, var(--text-2xl--line-height)); - --tw-font-weight: var(--font-weight-semibold); - font-weight: var(--font-weight-semibold); - --tw-tracking: var(--tracking-tight); - letter-spacing: var(--tracking-tight); - &:first-child { - margin-top: calc(var(--spacing) * 0); - } - @media (width >= 64rem) { - margin-top: calc(var(--spacing) * 20); - } - } - > h3 { - margin-top: calc(var(--spacing) * 8); - margin-bottom: calc(var(--spacing) * 6); - scroll-margin: calc(var(--spacing) * 22); - font-size: var(--text-xl); - line-height: var(--tw-leading, var(--text-xl--line-height)); - --tw-font-weight: var(--font-weight-semibold); - font-weight: var(--font-weight-semibold); - --tw-tracking: var(--tracking-tight); - letter-spacing: var(--tracking-tight); - } - > h4 { - margin-block: calc(var(--spacing) * 6); - scroll-margin: calc(var(--spacing) * 22); - --tw-font-weight: var(--font-weight-semibold); - font-weight: var(--font-weight-semibold); - --tw-tracking: var(--tracking-tight); - letter-spacing: var(--tracking-tight); - } - .prose { - margin-block: calc(var(--spacing) * 6); - a { - --tw-font-weight: var(--font-weight-medium); - font-weight: var(--font-weight-medium); - text-decoration-line: underline; - text-underline-offset: 4px; - } - code:not(pre > code) { - position: relative; - border-radius: var(--radius-md); - background-color: var(--color-muted); - padding-inline: 0.3rem; - padding-block: 0.2rem; - font-family: var(--font-mono); - font-size: var(--text-sm); - line-height: var(--tw-leading, var(--text-sm--line-height)); - } - blockquote { - border-left-style: var(--tw-border-style); - border-left-width: 4px; - border-color: var(--color-border); - padding-left: calc(var(--spacing) * 4); - } - ol { - margin-left: calc(var(--spacing) * 6); - list-style-type: decimal; - } - ul { - margin-left: calc(var(--spacing) * 6); - list-style-type: disc; - } - ol, ul { - li { - margin-top: calc(var(--spacing) * 2); - } - } - dl { - margin-block: calc(var(--spacing) * 6); - border-bottom-style: var(--tw-border-style); - border-bottom-width: 1px; - padding-bottom: calc(var(--spacing) * 3); - dt { - margin-top: calc(var(--spacing) * 3); - border-top-style: var(--tw-border-style); - border-top-width: 1px; - padding-top: calc(var(--spacing) * 3); - &:first-child { - margin-top: calc(var(--spacing) * 0); - } - } - dd { - margin-top: calc(var(--spacing) * 2); - } - dl { - margin-block: calc(var(--spacing) * 0); - margin-top: calc(var(--spacing) * 4); - border-bottom-style: var(--tw-border-style); - border-bottom-width: 0px; - padding-bottom: calc(var(--spacing) * 0); - padding-left: calc(var(--spacing) * 8); - } - } - b, strong { - --tw-font-weight: var(--font-weight-semibold); - font-weight: var(--font-weight-semibold); - } - > p, > blockquote, > ul, > ol, > dl, > table, > pre, > p { - margin-block: calc(var(--spacing) * 6); - } - > *:first-child { - margin-top: calc(var(--spacing) * 0) !important; - } - > *:last-child { - margin-bottom: calc(var(--spacing) * 0) !important; - } - } - .step { - counter-increment: step; - &:before { - position: absolute; - margin-right: calc(var(--spacing) * 2); - display: inline-flex; - height: calc(var(--spacing) * 8); - width: calc(var(--spacing) * 8); - align-items: center; - justify-content: center; - border-radius: calc(infinity * 1px); - border-style: var(--tw-border-style); - border-width: 4px; - border-color: var(--color-background); - background-color: var(--color-muted); - text-align: center; - text-indent: -1px; - font-family: var(--font-mono); - font-size: var(--text-sm); - line-height: var(--tw-leading, var(--text-sm--line-height)); - --tw-font-weight: var(--font-weight-semibold); - font-weight: var(--font-weight-semibold); - @media (width >= 48rem) { - height: calc(var(--spacing) * 9); - } - @media (width >= 48rem) { - width: calc(var(--spacing) * 9); - } - @media (width >= 48rem) { - margin-top: -4px; - } - @media (width >= 48rem) { - margin-left: -50px; - } - content: counter(step); - } - > h3 { - display: flex; - min-height: calc(var(--spacing) * 8); - align-items: center; - @media (width < 48rem) { - margin-left: calc(var(--spacing) * 10); - } - } - } -} -:root { - --hljs-bg: #fff; - --hljs-color: #24292e; - --hljs-keyword: #d73a49; - --hljs-title: #6f42c1; - --hljs-literal: #005cc5; - --hljs-string: #032f62; - --hljs-symbol: #e36209; - --hljs-comment: #6a737d; - --hljs-tag: #22863a; - --hljs-section: #005cc5; - --hljs-bullet: #735c0f; - --hljs-addition-color: #22863a; - --hljs-addition-bg: #f0fff4; - --hljs-deletion-color: #b31d28; - --hljs-deletion-bg: #ffeef0; -} -html.dark { - --hljs-bg: #0d1117; - --hljs-color: #c9d1d9; - --hljs-keyword: #ff7b72; - --hljs-title: #d2a8ff; - --hljs-literal: #79c0ff; - --hljs-string: #a5d6ff; - --hljs-symbol: #ffa657; - --hljs-comment: #8b949e; - --hljs-tag: #7ee787; - --hljs-section: #1f6feb; - --hljs-bullet: #f2cc60; - --hljs-addition-color: #aff5b4; - --hljs-addition-bg: #033a16; - --hljs-deletion-color: #ffdcd7; - --hljs-deletion-bg: #67060c; -} -pre code.hljs { - display: block; - overflow-x: auto; - padding: 1em; -} -code.hljs { - padding: 3px 5px; -} -.hljs { - color: var(--hljs-color); - background: var(--hljs-bg); -} -.hljs-doctag, .hljs-keyword, .hljs-meta .hljs-keyword, .hljs-template-tag, .hljs-template-variable, .hljs-type, .hljs-variable.language_ { - color: var(--hljs-keyword); -} -.hljs-title, .hljs-title.class_, .hljs-title.class_.inherited__, .hljs-title.function_ { - color: var(--hljs-title); -} -.hljs-attr, .hljs-attribute, .hljs-literal, .hljs-meta, .hljs-number, .hljs-operator, .hljs-selector-attr, .hljs-selector-class, .hljs-selector-id, .hljs-variable { - color: var(--hljs-literal); -} -.hljs-meta .hljs-string, .hljs-regexp, .hljs-string { - color: var(--hljs-string); -} -.hljs-built_in, .hljs-symbol { - color: var(--hljs-symbol); -} -.hljs-code, .hljs-comment, .hljs-formula { - color: var(--hljs-comment); -} -.hljs-name, .hljs-quote, .hljs-selector-pseudo, .hljs-selector-tag { - color: var(--hljs-tag); -} -.hljs-subst { - color: var(--hljs-color); -} -.hljs-section { - color: var(--hljs-section); - font-weight: 700; -} -.hljs-bullet { - color: var(--hljs-bullet); -} -.hljs-emphasis { - font-style: italic; -} -.hljs-strong { - font-weight: 700; -} -.hljs-addition { - color: var(--hljs-addition-color); - background-color: var(--hljs-addition-bg); -} -.hljs-deletion { - color: var(--hljs-deletion-color); - background-color: var(--hljs-deletion-bg); -} -.theme-claude { - &:root { - --background: oklch(0.98 0.01 95.10); - --foreground: oklch(0.34 0.03 95.72); - --card: oklch(0.98 0.01 95.10); - --card-foreground: oklch(0.19 0.00 106.59); - --popover: oklch(1.00 0 0); - --popover-foreground: oklch(0.27 0.02 98.94); - --primary: oklch(0.62 0.14 39.04); - --primary-foreground: oklch(1.00 0 0); - --secondary: oklch(0.92 0.01 92.99); - --secondary-foreground: oklch(0.43 0.02 98.60); - --muted: oklch(0.93 0.02 90.24); - --muted-foreground: oklch(0.61 0.01 97.42); - --accent: oklch(0.92 0.01 92.99); - --accent-foreground: oklch(0.27 0.02 98.94); - --destructive: oklch(0.19 0.00 106.59); - --destructive-foreground: oklch(1.00 0 0); - --border: oklch(0.88 0.01 97.36); - --input: oklch(0.76 0.02 98.35); - --ring: oklch(0.59 0.17 253.06); - --chart-1: oklch(0.56 0.13 43.00); - --chart-2: oklch(0.69 0.16 290.41); - --chart-3: oklch(0.88 0.03 93.13); - --chart-4: oklch(0.88 0.04 298.18); - --chart-5: oklch(0.56 0.13 42.06); - --sidebar: oklch(0.97 0.01 98.88); - --sidebar-foreground: oklch(0.36 0.01 106.65); - --sidebar-primary: oklch(0.62 0.14 39.04); - --sidebar-primary-foreground: oklch(0.99 0 0); - --sidebar-accent: oklch(0.92 0.01 92.99); - --sidebar-accent-foreground: oklch(0.33 0 0); - --sidebar-border: oklch(0.94 0 0); - --sidebar-ring: oklch(0.77 0 0); - --font-sans: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; - --font-serif: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif; - --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; - --radius: 0.5rem; - --shadow-2xs: 0 1px 3px 0px hsl(0 0% 0% / 0.05); - --shadow-xs: 0 1px 3px 0px hsl(0 0% 0% / 0.05); - --shadow-sm: 0 1px 3px 0px hsl(0 0% 0% / 0.10), 0 1px 2px -1px hsl(0 0% 0% / 0.10); - --shadow: 0 1px 3px 0px hsl(0 0% 0% / 0.10), 0 1px 2px -1px hsl(0 0% 0% / 0.10); - --shadow-md: 0 1px 3px 0px hsl(0 0% 0% / 0.10), 0 2px 4px -1px hsl(0 0% 0% / 0.10); - --shadow-lg: 0 1px 3px 0px hsl(0 0% 0% / 0.10), 0 4px 6px -1px hsl(0 0% 0% / 0.10); - --shadow-xl: 0 1px 3px 0px hsl(0 0% 0% / 0.10), 0 8px 10px -1px hsl(0 0% 0% / 0.10); - --shadow-2xl: 0 1px 3px 0px hsl(0 0% 0% / 0.25); - } - &.dark { - --background: oklch(0.27 0.00 106.64); - --foreground: oklch(0.81 0.01 93.01); - --card: oklch(0.27 0.00 106.64); - --card-foreground: oklch(0.98 0.01 95.10); - --popover: oklch(0.31 0.00 106.60); - --popover-foreground: oklch(0.92 0.00 106.48); - --primary: oklch(0.67 0.13 38.76); - --primary-foreground: oklch(1.00 0 0); - --secondary: oklch(0.98 0.01 95.10); - --secondary-foreground: oklch(0.31 0.00 106.60); - --muted: oklch(0.22 0.00 106.71); - --muted-foreground: oklch(0.77 0.02 99.07); - --accent: oklch(0.21 0.01 95.42); - --accent-foreground: oklch(0.97 0.01 98.88); - --destructive: oklch(0.64 0.21 25.33); - --destructive-foreground: oklch(1.00 0 0); - --border: oklch(0.36 0.01 106.89); - --input: oklch(0.43 0.01 100.22); - --ring: oklch(0.59 0.17 253.06); - --chart-1: oklch(0.56 0.13 43.00); - --chart-2: oklch(0.69 0.16 290.41); - --chart-3: oklch(0.21 0.01 95.42); - --chart-4: oklch(0.31 0.05 289.32); - --chart-5: oklch(0.56 0.13 42.06); - --sidebar: oklch(0.24 0.00 67.71); - --sidebar-foreground: oklch(0.81 0.01 93.01); - --sidebar-primary: oklch(0.33 0 0); - --sidebar-primary-foreground: oklch(0.99 0 0); - --sidebar-accent: oklch(0.17 0.00 106.62); - --sidebar-accent-foreground: oklch(0.81 0.01 93.01); - --sidebar-border: oklch(0.94 0 0); - --sidebar-ring: oklch(0.77 0 0); - --font-sans: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; - --font-serif: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif; - --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; - --radius: 0.5rem; - --shadow-2xs: 0 1px 3px 0px hsl(0 0% 0% / 0.05); - --shadow-xs: 0 1px 3px 0px hsl(0 0% 0% / 0.05); - --shadow-sm: 0 1px 3px 0px hsl(0 0% 0% / 0.10), 0 1px 2px -1px hsl(0 0% 0% / 0.10); - --shadow: 0 1px 3px 0px hsl(0 0% 0% / 0.10), 0 1px 2px -1px hsl(0 0% 0% / 0.10); - --shadow-md: 0 1px 3px 0px hsl(0 0% 0% / 0.10), 0 2px 4px -1px hsl(0 0% 0% / 0.10); - --shadow-lg: 0 1px 3px 0px hsl(0 0% 0% / 0.10), 0 4px 6px -1px hsl(0 0% 0% / 0.10); - --shadow-xl: 0 1px 3px 0px hsl(0 0% 0% / 0.10), 0 8px 10px -1px hsl(0 0% 0% / 0.10); - --shadow-2xl: 0 1px 3px 0px hsl(0 0% 0% / 0.25); - } -} -.theme-doom-64 { - &:root { - --background: oklch(0.85 0 0); - --foreground: oklch(0.24 0 0); - --card: oklch(0.76 0 0); - --card-foreground: oklch(0.24 0 0); - --popover: oklch(0.76 0 0); - --popover-foreground: oklch(0.24 0 0); - --primary: oklch(0.50 0.19 27.48); - --primary-foreground: oklch(1.00 0 0); - --secondary: oklch(0.50 0.09 126.19); - --secondary-foreground: oklch(1.00 0 0); - --muted: oklch(0.78 0 0); - --muted-foreground: oklch(0.41 0 0); - --accent: oklch(0.59 0.10 245.74); - --accent-foreground: oklch(1.00 0 0); - --destructive: oklch(0.71 0.20 46.46); - --destructive-foreground: oklch(0 0 0); - --border: oklch(0.43 0 0); - --input: oklch(0.43 0 0); - --ring: oklch(0.50 0.19 27.48); - --chart-1: oklch(0.50 0.19 27.48); - --chart-2: oklch(0.50 0.09 126.19); - --chart-3: oklch(0.59 0.10 245.74); - --chart-4: oklch(0.71 0.20 46.46); - --chart-5: oklch(0.57 0.04 40.43); - --sidebar: oklch(0.76 0 0); - --sidebar-foreground: oklch(0.24 0 0); - --sidebar-primary: oklch(0.50 0.19 27.48); - --sidebar-primary-foreground: oklch(1.00 0 0); - --sidebar-accent: oklch(0.59 0.10 245.74); - --sidebar-accent-foreground: oklch(1.00 0 0); - --sidebar-border: oklch(0.43 0 0); - --sidebar-ring: oklch(0.50 0.19 27.48); - --font-sans: "Oxanium", sans-serif; - --font-serif: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif; - --font-mono: "Source Code Pro", monospace; - --radius: 0px; - --shadow-2xs: 0px 2px 4px 0px hsl(0 0% 0% / 0.20); - --shadow-xs: 0px 2px 4px 0px hsl(0 0% 0% / 0.20); - --shadow-sm: 0px 2px 4px 0px hsl(0 0% 0% / 0.40), 0px 1px 2px -1px hsl(0 0% 0% / 0.40); - --shadow: 0px 2px 4px 0px hsl(0 0% 0% / 0.40), 0px 1px 2px -1px hsl(0 0% 0% / 0.40); - --shadow-md: 0px 2px 4px 0px hsl(0 0% 0% / 0.40), 0px 2px 4px -1px hsl(0 0% 0% / 0.40); - --shadow-lg: 0px 2px 4px 0px hsl(0 0% 0% / 0.40), 0px 4px 6px -1px hsl(0 0% 0% / 0.40); - --shadow-xl: 0px 2px 4px 0px hsl(0 0% 0% / 0.40), 0px 8px 10px -1px hsl(0 0% 0% / 0.40); - --shadow-2xl: 0px 2px 4px 0px hsl(0 0% 0% / 1.00); - } - &.dark { - --background: oklch(0.22 0 0); - --foreground: oklch(0.91 0 0); - --card: oklch(0.29 0 0); - --card-foreground: oklch(0.91 0 0); - --popover: oklch(0.29 0 0); - --popover-foreground: oklch(0.91 0 0); - --primary: oklch(0.61 0.21 27.03); - --primary-foreground: oklch(1.00 0 0); - --secondary: oklch(0.64 0.15 133.01); - --secondary-foreground: oklch(0 0 0); - --muted: oklch(0.26 0 0); - --muted-foreground: oklch(0.71 0 0); - --accent: oklch(0.75 0.12 244.75); - --accent-foreground: oklch(0 0 0); - --destructive: oklch(0.78 0.17 68.09); - --destructive-foreground: oklch(0 0 0); - --border: oklch(0.41 0 0); - --input: oklch(0.41 0 0); - --ring: oklch(0.61 0.21 27.03); - --chart-1: oklch(0.61 0.21 27.03); - --chart-2: oklch(0.64 0.15 133.01); - --chart-3: oklch(0.75 0.12 244.75); - --chart-4: oklch(0.78 0.17 68.09); - --chart-5: oklch(0.65 0.03 40.80); - --sidebar: oklch(0.19 0 0); - --sidebar-foreground: oklch(0.91 0 0); - --sidebar-primary: oklch(0.61 0.21 27.03); - --sidebar-primary-foreground: oklch(1.00 0 0); - --sidebar-accent: oklch(0.75 0.12 244.75); - --sidebar-accent-foreground: oklch(0 0 0); - --sidebar-border: oklch(0.41 0 0); - --sidebar-ring: oklch(0.61 0.21 27.03); - --font-sans: "Oxanium", sans-serif; - --font-serif: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif; - --font-mono: "Source Code Pro", monospace; - --radius: 0px; - --shadow-2xs: 0px 2px 5px 0px hsl(0 0% 0% / 0.30); - --shadow-xs: 0px 2px 5px 0px hsl(0 0% 0% / 0.30); - --shadow-sm: 0px 2px 5px 0px hsl(0 0% 0% / 0.60), 0px 1px 2px -1px hsl(0 0% 0% / 0.60); - --shadow: 0px 2px 5px 0px hsl(0 0% 0% / 0.60), 0px 1px 2px -1px hsl(0 0% 0% / 0.60); - --shadow-md: 0px 2px 5px 0px hsl(0 0% 0% / 0.60), 0px 2px 4px -1px hsl(0 0% 0% / 0.60); - --shadow-lg: 0px 2px 5px 0px hsl(0 0% 0% / 0.60), 0px 4px 6px -1px hsl(0 0% 0% / 0.60); - --shadow-xl: 0px 2px 5px 0px hsl(0 0% 0% / 0.60), 0px 8px 10px -1px hsl(0 0% 0% / 0.60); - --shadow-2xl: 0px 2px 5px 0px hsl(0 0% 0% / 1.50); - } -} -.theme-supabase { - &:root { - --background: oklch(0.99 0 0); - --foreground: oklch(0.20 0 0); - --card: oklch(0.99 0 0); - --card-foreground: oklch(0.20 0 0); - --popover: oklch(0.99 0 0); - --popover-foreground: oklch(0.44 0 0); - --primary: oklch(0.83 0.13 160.91); - --primary-foreground: oklch(0.26 0.01 166.46); - --secondary: oklch(0.99 0 0); - --secondary-foreground: oklch(0.20 0 0); - --muted: oklch(0.95 0 0); - --muted-foreground: oklch(0.24 0 0); - --accent: oklch(0.95 0 0); - --accent-foreground: oklch(0.24 0 0); - --destructive: oklch(0.55 0.19 32.73); - --destructive-foreground: oklch(0.99 0.00 17.21); - --border: oklch(0.90 0 0); - --input: oklch(0.90 0 0); - --ring: oklch(0.83 0.13 160.91); - --chart-1: oklch(0.83 0.13 160.91); - --chart-2: oklch(0.62 0.19 259.81); - --chart-3: oklch(0.61 0.22 292.72); - --chart-4: oklch(0.77 0.16 70.08); - --chart-5: oklch(0.70 0.15 162.48); - --sidebar: oklch(0.99 0 0); - --sidebar-foreground: oklch(0.55 0 0); - --sidebar-primary: oklch(0.83 0.13 160.91); - --sidebar-primary-foreground: oklch(0.26 0.01 166.46); - --sidebar-accent: oklch(0.95 0 0); - --sidebar-accent-foreground: oklch(0.24 0 0); - --sidebar-border: oklch(0.90 0 0); - --sidebar-ring: oklch(0.83 0.13 160.91); - --font-sans: Outfit, sans-serif; - --font-serif: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif; - --font-mono: monospace; - --radius: 0.5rem; - --shadow-2xs: 0px 1px 3px 0px hsl(0 0% 0% / 0.09); - --shadow-xs: 0px 1px 3px 0px hsl(0 0% 0% / 0.09); - --shadow-sm: 0px 1px 3px 0px hsl(0 0% 0% / 0.17), 0px 1px 2px -1px hsl(0 0% 0% / 0.17); - --shadow: 0px 1px 3px 0px hsl(0 0% 0% / 0.17), 0px 1px 2px -1px hsl(0 0% 0% / 0.17); - --shadow-md: 0px 1px 3px 0px hsl(0 0% 0% / 0.17), 0px 2px 4px -1px hsl(0 0% 0% / 0.17); - --shadow-lg: 0px 1px 3px 0px hsl(0 0% 0% / 0.17), 0px 4px 6px -1px hsl(0 0% 0% / 0.17); - --shadow-xl: 0px 1px 3px 0px hsl(0 0% 0% / 0.17), 0px 8px 10px -1px hsl(0 0% 0% / 0.17); - --shadow-2xl: 0px 1px 3px 0px hsl(0 0% 0% / 0.43); - --tracking-normal: 0.025em; - } - &.dark { - --background: oklch(0.18 0 0); - --foreground: oklch(0.93 0.01 255.51); - --card: oklch(0.20 0 0); - --card-foreground: oklch(0.93 0.01 255.51); - --popover: oklch(0.26 0 0); - --popover-foreground: oklch(0.73 0 0); - --primary: oklch(0.44 0.10 156.76); - --primary-foreground: oklch(0.92 0.01 167.16); - --secondary: oklch(0.26 0 0); - --secondary-foreground: oklch(0.99 0 0); - --muted: oklch(0.24 0 0); - --muted-foreground: oklch(0.71 0 0); - --accent: oklch(0.31 0 0); - --accent-foreground: oklch(0.99 0 0); - --destructive: oklch(0.31 0.09 29.79); - --destructive-foreground: oklch(0.94 0.00 34.31); - --border: oklch(0.28 0 0); - --input: oklch(0.28 0 0); - --ring: oklch(0.80 0.18 151.71); - --chart-1: oklch(0.80 0.18 151.71); - --chart-2: oklch(0.71 0.14 254.62); - --chart-3: oklch(0.71 0.16 293.54); - --chart-4: oklch(0.84 0.16 84.43); - --chart-5: oklch(0.78 0.13 181.91); - --sidebar: oklch(0.18 0 0); - --sidebar-foreground: oklch(0.63 0 0); - --sidebar-primary: oklch(0.44 0.10 156.76); - --sidebar-primary-foreground: oklch(0.92 0.01 167.16); - --sidebar-accent: oklch(0.31 0 0); - --sidebar-accent-foreground: oklch(0.99 0 0); - --sidebar-border: oklch(0.28 0 0); - --sidebar-ring: oklch(0.80 0.18 151.71); - --font-sans: Outfit, sans-serif; - --font-serif: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif; - --font-mono: monospace; - --radius: 0.5rem; - --shadow-2xs: 0px 1px 3px 0px hsl(0 0% 0% / 0.09); - --shadow-xs: 0px 1px 3px 0px hsl(0 0% 0% / 0.09); - --shadow-sm: 0px 1px 3px 0px hsl(0 0% 0% / 0.17), 0px 1px 2px -1px hsl(0 0% 0% / 0.17); - --shadow: 0px 1px 3px 0px hsl(0 0% 0% / 0.17), 0px 1px 2px -1px hsl(0 0% 0% / 0.17); - --shadow-md: 0px 1px 3px 0px hsl(0 0% 0% / 0.17), 0px 2px 4px -1px hsl(0 0% 0% / 0.17); - --shadow-lg: 0px 1px 3px 0px hsl(0 0% 0% / 0.17), 0px 4px 6px -1px hsl(0 0% 0% / 0.17); - --shadow-xl: 0px 1px 3px 0px hsl(0 0% 0% / 0.17), 0px 8px 10px -1px hsl(0 0% 0% / 0.17); - --shadow-2xl: 0px 1px 3px 0px hsl(0 0% 0% / 0.43); - } - body { - letter-spacing: var(--tracking-normal); - } -} -@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-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: 0px; -} -@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-duration { - syntax: "*"; - inherits: false; -} -@property --tw-content { - syntax: "*"; - initial-value: ""; - inherits: false; -} -@property --tw-ease { - syntax: "*"; - inherits: false; -} -@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); - } -} -@keyframes pulse { - 50% { - opacity: 0.5; - } -} -@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-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-duration: initial; - --tw-content: ""; - --tw-ease: initial; - --tw-scale-x: 1; - --tw-scale-y: 1; - --tw-scale-z: 1; - } - } -} +@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-space-y-reverse:0;--tw-space-x-reverse:0;--tw-border-style:solid;--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-duration:initial;--tw-content:"";--tw-ease:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-amber-50:oklch(98.7% .022 95.277);--color-amber-100:oklch(96.2% .059 95.617);--color-amber-900:oklch(41.4% .112 45.904);--color-amber-950:oklch(27.9% .077 45.635);--color-green-50:oklch(98.2% .018 155.826);--color-green-600:oklch(62.7% .194 149.214);--color-green-900:oklch(39.3% .095 152.535);--color-green-950:oklch(26.6% .065 152.934);--color-blue-50:oklch(97% .014 254.604);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-blue-900:oklch(37.9% .146 265.522);--color-blue-950:oklch(28.2% .091 267.935);--color-black:#000;--color-white:#fff;--spacing:.25rem;--breakpoint-md:48rem;--breakpoint-lg:64rem;--container-xs:20rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--container-xl:36rem;--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);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25/1.875);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5/2.25);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-normal:0em;--tracking-widest:.1em;--leading-tight:1.25;--leading-snug:1.375;--leading-normal:1.5;--leading-relaxed:1.625;--radius-xs:.125rem;--radius-sm:calc(var(--radius) - 4px);--radius-md:calc(var(--radius) - 2px);--radius-lg:var(--radius);--radius-xl:calc(var(--radius) + 4px);--ease-in-out:cubic-bezier(.4,0,.2,1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--aspect-video:16/9;--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-background:var(--background);--color-foreground:var(--foreground);--color-card:var(--card);--color-card-foreground:var(--card-foreground);--color-popover:var(--popover);--color-popover-foreground:var(--popover-foreground);--color-primary:var(--primary);--color-primary-foreground:var(--primary-foreground);--color-secondary:var(--secondary);--color-secondary-foreground:var(--secondary-foreground);--color-muted:var(--muted);--color-muted-foreground:var(--muted-foreground);--color-accent:var(--accent);--color-accent-foreground:var(--accent-foreground);--color-destructive:var(--destructive);--color-border:var(--border);--color-input:var(--input);--color-ring:var(--ring);--color-sidebar:var(--sidebar);--color-sidebar-foreground:var(--sidebar-foreground);--color-sidebar-primary:var(--sidebar-primary);--color-sidebar-primary-foreground:var(--sidebar-primary-foreground);--color-sidebar-accent:var(--sidebar-accent);--color-sidebar-accent-foreground:var(--sidebar-accent-foreground);--color-sidebar-border:var(--sidebar-border);--color-sidebar-ring:var(--sidebar-ring)}}@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}:-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}*{border-color:var(--color-border);outline-color:var(--color-ring)}@supports (color:color-mix(in lab, red, red)){*{outline-color:color-mix(in oklab,var(--color-ring)50%,transparent)}}html{scroll-behavior:smooth}body{overscroll-behavior:none;background-color:var(--color-background);color:var(--color-foreground);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.scrollbar{scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb)var(--scrollbar-track)}.scrollbar::-webkit-scrollbar{width:var(--scrollbar-width)}.scrollbar::-webkit-scrollbar-track{background:var(--scrollbar-track)}.scrollbar::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:var(--scrollbar-radius)}[x-cloak]{display:none!important}}@layer components{.alert,.alert-destructive{align-items:flex-start;row-gap:calc(var(--spacing)*.5);border-radius:var(--radius-lg);border-style:var(--tw-border-style);width:100%;padding-inline:calc(var(--spacing)*4);padding-block:calc(var(--spacing)*3);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));border-width:1px;grid-template-columns:0 1fr;display:grid;position:relative}:is(.alert,.alert-destructive):has(>svg){grid-template-columns:calc(var(--spacing)*4)1fr;column-gap:calc(var(--spacing)*3)}:is(.alert,.alert-destructive)>svg{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4);--tw-translate-y:calc(var(--spacing)*.5);translate:var(--tw-translate-x)var(--tw-translate-y);color:currentColor}:is(.alert,.alert-destructive) h2{-webkit-line-clamp:1;min-height:calc(var(--spacing)*4);--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight);-webkit-box-orient:vertical;grid-column-start:2;display:-webkit-box;overflow:hidden}:is(.alert,.alert-destructive) section{justify-items:start;gap:calc(var(--spacing)*1);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));color:var(--color-muted-foreground);grid-column-start:2;display:grid}:is(.alert,.alert-destructive) section p{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}:is(.alert,.alert-destructive) section ul{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));list-style-type:disc;list-style-position:inside}.alert{background-color:var(--color-card);color:var(--color-card-foreground)}.alert-destructive{background-color:var(--color-card);color:var(--color-destructive)}.alert-destructive>svg{color:currentColor}.alert-destructive section{color:var(--color-destructive)}.btn,.btn-primary,.btn-secondary,.btn-outline,.btn-ghost,.btn-link,.btn-destructive,.btn-sm,.btn-sm-primary,.btn-sm-secondary,.btn-sm-outline,.btn-sm-ghost,.btn-sm-link,.btn-sm-destructive,.btn-lg,.btn-lg-primary,.btn-lg-secondary,.btn-lg-outline,.btn-lg-ghost,.btn-lg-link,.btn-lg-destructive,.btn-icon,.btn-icon-primary,.btn-icon-secondary,.btn-icon-outline,.btn-icon-ghost,.btn-icon-link,.btn-icon-destructive,.btn-sm-icon,.btn-sm-icon-primary,.btn-sm-icon-secondary,.btn-sm-icon-outline,.btn-sm-icon-ghost,.btn-sm-icon-link,.btn-sm-icon-destructive,.btn-lg-icon,.btn-lg-icon-primary,.btn-lg-icon-secondary,.btn-lg-icon-outline,.btn-lg-icon-ghost,.btn-lg-icon-link,.btn-lg-icon-destructive{cursor:pointer;border-radius:var(--radius-md);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);white-space:nowrap;transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-outline-style:none;outline-style:none;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}:is(.btn,.btn-primary,.btn-secondary,.btn-outline,.btn-ghost,.btn-link,.btn-destructive,.btn-sm,.btn-sm-primary,.btn-sm-secondary,.btn-sm-outline,.btn-sm-ghost,.btn-sm-link,.btn-sm-destructive,.btn-lg,.btn-lg-primary,.btn-lg-secondary,.btn-lg-outline,.btn-lg-ghost,.btn-lg-link,.btn-lg-destructive,.btn-icon,.btn-icon-primary,.btn-icon-secondary,.btn-icon-outline,.btn-icon-ghost,.btn-icon-link,.btn-icon-destructive,.btn-sm-icon,.btn-sm-icon-primary,.btn-sm-icon-secondary,.btn-sm-icon-outline,.btn-sm-icon-ghost,.btn-sm-icon-link,.btn-sm-icon-destructive,.btn-lg-icon,.btn-lg-icon-primary,.btn-lg-icon-secondary,.btn-lg-icon-outline,.btn-lg-icon-ghost,.btn-lg-icon-link,.btn-lg-icon-destructive):focus-visible{border-color:var(--color-ring);--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(3px + 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);--tw-ring-color:var(--color-ring)}@supports (color:color-mix(in lab, red, red)){:is(.btn,.btn-primary,.btn-secondary,.btn-outline,.btn-ghost,.btn-link,.btn-destructive,.btn-sm,.btn-sm-primary,.btn-sm-secondary,.btn-sm-outline,.btn-sm-ghost,.btn-sm-link,.btn-sm-destructive,.btn-lg,.btn-lg-primary,.btn-lg-secondary,.btn-lg-outline,.btn-lg-ghost,.btn-lg-link,.btn-lg-destructive,.btn-icon,.btn-icon-primary,.btn-icon-secondary,.btn-icon-outline,.btn-icon-ghost,.btn-icon-link,.btn-icon-destructive,.btn-sm-icon,.btn-sm-icon-primary,.btn-sm-icon-secondary,.btn-sm-icon-outline,.btn-sm-icon-ghost,.btn-sm-icon-link,.btn-sm-icon-destructive,.btn-lg-icon,.btn-lg-icon-primary,.btn-lg-icon-secondary,.btn-lg-icon-outline,.btn-lg-icon-ghost,.btn-lg-icon-link,.btn-lg-icon-destructive):focus-visible{--tw-ring-color:color-mix(in oklab,var(--color-ring)50%,transparent)}}:is(.btn,.btn-primary,.btn-secondary,.btn-outline,.btn-ghost,.btn-link,.btn-destructive,.btn-sm,.btn-sm-primary,.btn-sm-secondary,.btn-sm-outline,.btn-sm-ghost,.btn-sm-link,.btn-sm-destructive,.btn-lg,.btn-lg-primary,.btn-lg-secondary,.btn-lg-outline,.btn-lg-ghost,.btn-lg-link,.btn-lg-destructive,.btn-icon,.btn-icon-primary,.btn-icon-secondary,.btn-icon-outline,.btn-icon-ghost,.btn-icon-link,.btn-icon-destructive,.btn-sm-icon,.btn-sm-icon-primary,.btn-sm-icon-secondary,.btn-sm-icon-outline,.btn-sm-icon-ghost,.btn-sm-icon-link,.btn-sm-icon-destructive,.btn-lg-icon,.btn-lg-icon-primary,.btn-lg-icon-secondary,.btn-lg-icon-outline,.btn-lg-icon-ghost,.btn-lg-icon-link,.btn-lg-icon-destructive):disabled{pointer-events:none;opacity:.5}:is(.btn,.btn-primary,.btn-secondary,.btn-outline,.btn-ghost,.btn-link,.btn-destructive,.btn-sm,.btn-sm-primary,.btn-sm-secondary,.btn-sm-outline,.btn-sm-ghost,.btn-sm-link,.btn-sm-destructive,.btn-lg,.btn-lg-primary,.btn-lg-secondary,.btn-lg-outline,.btn-lg-ghost,.btn-lg-link,.btn-lg-destructive,.btn-icon,.btn-icon-primary,.btn-icon-secondary,.btn-icon-outline,.btn-icon-ghost,.btn-icon-link,.btn-icon-destructive,.btn-sm-icon,.btn-sm-icon-primary,.btn-sm-icon-secondary,.btn-sm-icon-outline,.btn-sm-icon-ghost,.btn-sm-icon-link,.btn-sm-icon-destructive,.btn-lg-icon,.btn-lg-icon-primary,.btn-lg-icon-secondary,.btn-lg-icon-outline,.btn-lg-icon-ghost,.btn-lg-icon-link,.btn-lg-icon-destructive)[aria-invalid=true]{border-color:var(--color-destructive);--tw-ring-color:var(--color-destructive)}@supports (color:color-mix(in lab, red, red)){:is(.btn,.btn-primary,.btn-secondary,.btn-outline,.btn-ghost,.btn-link,.btn-destructive,.btn-sm,.btn-sm-primary,.btn-sm-secondary,.btn-sm-outline,.btn-sm-ghost,.btn-sm-link,.btn-sm-destructive,.btn-lg,.btn-lg-primary,.btn-lg-secondary,.btn-lg-outline,.btn-lg-ghost,.btn-lg-link,.btn-lg-destructive,.btn-icon,.btn-icon-primary,.btn-icon-secondary,.btn-icon-outline,.btn-icon-ghost,.btn-icon-link,.btn-icon-destructive,.btn-sm-icon,.btn-sm-icon-primary,.btn-sm-icon-secondary,.btn-sm-icon-outline,.btn-sm-icon-ghost,.btn-sm-icon-link,.btn-sm-icon-destructive,.btn-lg-icon,.btn-lg-icon-primary,.btn-lg-icon-secondary,.btn-lg-icon-outline,.btn-lg-icon-ghost,.btn-lg-icon-link,.btn-lg-icon-destructive)[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--color-destructive)20%,transparent)}}:is(.btn,.btn-primary,.btn-secondary,.btn-outline,.btn-ghost,.btn-link,.btn-destructive,.btn-sm,.btn-sm-primary,.btn-sm-secondary,.btn-sm-outline,.btn-sm-ghost,.btn-sm-link,.btn-sm-destructive,.btn-lg,.btn-lg-primary,.btn-lg-secondary,.btn-lg-outline,.btn-lg-ghost,.btn-lg-link,.btn-lg-destructive,.btn-icon,.btn-icon-primary,.btn-icon-secondary,.btn-icon-outline,.btn-icon-ghost,.btn-icon-link,.btn-icon-destructive,.btn-sm-icon,.btn-sm-icon-primary,.btn-sm-icon-secondary,.btn-sm-icon-outline,.btn-sm-icon-ghost,.btn-sm-icon-link,.btn-sm-icon-destructive,.btn-lg-icon,.btn-lg-icon-primary,.btn-lg-icon-secondary,.btn-lg-icon-outline,.btn-lg-icon-ghost,.btn-lg-icon-link,.btn-lg-icon-destructive):is(.dark *)[aria-invalid=true]{--tw-ring-color:var(--color-destructive)}@supports (color:color-mix(in lab, red, red)){:is(.btn,.btn-primary,.btn-secondary,.btn-outline,.btn-ghost,.btn-link,.btn-destructive,.btn-sm,.btn-sm-primary,.btn-sm-secondary,.btn-sm-outline,.btn-sm-ghost,.btn-sm-link,.btn-sm-destructive,.btn-lg,.btn-lg-primary,.btn-lg-secondary,.btn-lg-outline,.btn-lg-ghost,.btn-lg-link,.btn-lg-destructive,.btn-icon,.btn-icon-primary,.btn-icon-secondary,.btn-icon-outline,.btn-icon-ghost,.btn-icon-link,.btn-icon-destructive,.btn-sm-icon,.btn-sm-icon-primary,.btn-sm-icon-secondary,.btn-sm-icon-outline,.btn-sm-icon-ghost,.btn-sm-icon-link,.btn-sm-icon-destructive,.btn-lg-icon,.btn-lg-icon-primary,.btn-lg-icon-secondary,.btn-lg-icon-outline,.btn-lg-icon-ghost,.btn-lg-icon-link,.btn-lg-icon-destructive):is(.dark *)[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--color-destructive)40%,transparent)}}:is(.btn,.btn-primary,.btn-secondary,.btn-outline,.btn-ghost,.btn-link,.btn-destructive,.btn-sm,.btn-sm-primary,.btn-sm-secondary,.btn-sm-outline,.btn-sm-ghost,.btn-sm-link,.btn-sm-destructive,.btn-lg,.btn-lg-primary,.btn-lg-secondary,.btn-lg-outline,.btn-lg-ghost,.btn-lg-link,.btn-lg-destructive,.btn-icon,.btn-icon-primary,.btn-icon-secondary,.btn-icon-outline,.btn-icon-ghost,.btn-icon-link,.btn-icon-destructive,.btn-sm-icon,.btn-sm-icon-primary,.btn-sm-icon-secondary,.btn-sm-icon-outline,.btn-sm-icon-ghost,.btn-sm-icon-link,.btn-sm-icon-destructive,.btn-lg-icon,.btn-lg-icon-primary,.btn-lg-icon-secondary,.btn-lg-icon-outline,.btn-lg-icon-ghost,.btn-lg-icon-link,.btn-lg-icon-destructive) svg{pointer-events:none;flex-shrink:0}:is(.btn,.btn-primary,.btn-secondary,.btn-outline,.btn-ghost,.btn-link,.btn-destructive,.btn-sm,.btn-sm-primary,.btn-sm-secondary,.btn-sm-outline,.btn-sm-ghost,.btn-sm-link,.btn-sm-destructive,.btn-lg,.btn-lg-primary,.btn-lg-secondary,.btn-lg-outline,.btn-lg-ghost,.btn-lg-link,.btn-lg-destructive,.btn-icon,.btn-icon-primary,.btn-icon-secondary,.btn-icon-outline,.btn-icon-ghost,.btn-icon-link,.btn-icon-destructive,.btn-sm-icon,.btn-sm-icon-primary,.btn-sm-icon-secondary,.btn-sm-icon-outline,.btn-sm-icon-ghost,.btn-sm-icon-link,.btn-sm-icon-destructive,.btn-lg-icon,.btn-lg-icon-primary,.btn-lg-icon-secondary,.btn-lg-icon-outline,.btn-lg-icon-ghost,.btn-lg-icon-link,.btn-lg-icon-destructive) svg:not([class*=size-]){width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.btn,.btn-primary,.btn-secondary,.btn-outline,.btn-ghost,.btn-link,.btn-destructive{height:calc(var(--spacing)*9);gap:calc(var(--spacing)*2);padding-inline:calc(var(--spacing)*4);padding-block:calc(var(--spacing)*2)}:is(.btn,.btn-primary,.btn-secondary,.btn-outline,.btn-ghost,.btn-link,.btn-destructive):has(>svg){padding-inline:calc(var(--spacing)*3)}.btn-icon,.btn-icon-primary,.btn-icon-secondary,.btn-icon-outline,.btn-icon-ghost,.btn-icon-link,.btn-icon-destructive{width:calc(var(--spacing)*9);height:calc(var(--spacing)*9)}.btn-sm,.btn-sm-primary,.btn-sm-secondary,.btn-sm-outline,.btn-sm-ghost,.btn-sm-link,.btn-sm-destructive{height:calc(var(--spacing)*8);gap:calc(var(--spacing)*1.5);padding-inline:calc(var(--spacing)*3)}:is(.btn-sm,.btn-sm-primary,.btn-sm-secondary,.btn-sm-outline,.btn-sm-ghost,.btn-sm-link,.btn-sm-destructive):has(>svg){padding-inline:calc(var(--spacing)*2.5)}.btn-sm-icon,.btn-sm-icon-primary,.btn-sm-icon-secondary,.btn-sm-icon-outline,.btn-sm-icon-ghost,.btn-sm-icon-link,.btn-sm-icon-destructive{width:calc(var(--spacing)*8);height:calc(var(--spacing)*8)}.btn-lg,.btn-lg-primary,.btn-lg-secondary,.btn-lg-outline,.btn-lg-ghost,.btn-lg-link,.btn-lg-destructive{height:calc(var(--spacing)*10);gap:calc(var(--spacing)*2);padding-inline:calc(var(--spacing)*6)}:is(.btn-lg,.btn-lg-primary,.btn-lg-secondary,.btn-lg-outline,.btn-lg-ghost,.btn-lg-link,.btn-lg-destructive):has(>svg){padding-inline:calc(var(--spacing)*4)}.btn-lg-icon,.btn-lg-icon-primary,.btn-lg-icon-secondary,.btn-lg-icon-outline,.btn-lg-icon-ghost,.btn-lg-icon-link,.btn-lg-icon-destructive{width:calc(var(--spacing)*10);height:calc(var(--spacing)*10)}.btn,.btn-primary,.btn-sm,.btn-sm-primary,.btn-lg,.btn-lg-primary,.btn-icon,.btn-icon-primary,.btn-sm-icon,.btn-sm-icon-primary,.btn-lg-icon,.btn-lg-icon-primary{background-color:var(--color-primary);color:var(--color-primary-foreground);--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}@media (hover:hover){:is(.btn,.btn-primary,.btn-sm,.btn-sm-primary,.btn-lg,.btn-lg-primary,.btn-icon,.btn-icon-primary,.btn-sm-icon,.btn-sm-icon-primary,.btn-lg-icon,.btn-lg-icon-primary):hover{background-color:var(--color-primary)}@supports (color:color-mix(in lab, red, red)){:is(.btn,.btn-primary,.btn-sm,.btn-sm-primary,.btn-lg,.btn-lg-primary,.btn-icon,.btn-icon-primary,.btn-sm-icon,.btn-sm-icon-primary,.btn-lg-icon,.btn-lg-icon-primary):hover{background-color:color-mix(in oklab,var(--color-primary)90%,transparent)}}}:is(.btn,.btn-primary,.btn-sm,.btn-sm-primary,.btn-lg,.btn-lg-primary,.btn-icon,.btn-icon-primary,.btn-sm-icon,.btn-sm-icon-primary,.btn-lg-icon,.btn-lg-icon-primary)[aria-pressed=true]{background-color:var(--color-primary)}@supports (color:color-mix(in lab, red, red)){:is(.btn,.btn-primary,.btn-sm,.btn-sm-primary,.btn-lg,.btn-lg-primary,.btn-icon,.btn-icon-primary,.btn-sm-icon,.btn-sm-icon-primary,.btn-lg-icon,.btn-lg-icon-primary)[aria-pressed=true]{background-color:color-mix(in oklab,var(--color-primary)90%,transparent)}}.btn-secondary,.btn-sm-secondary,.btn-lg-secondary,.btn-icon-secondary,.btn-sm-icon-secondary,.btn-lg-icon-secondary{background-color:var(--color-secondary);color:var(--color-secondary-foreground);--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}:is(.btn-secondary,.btn-sm-secondary,.btn-lg-secondary,.btn-icon-secondary,.btn-sm-icon-secondary,.btn-lg-icon-secondary):hover,:is(.btn-secondary,.btn-sm-secondary,.btn-lg-secondary,.btn-icon-secondary,.btn-sm-icon-secondary,.btn-lg-icon-secondary)[aria-pressed=true]{background-color:var(--color-secondary)}@supports (color:color-mix(in lab, red, red)){:is(:is(.btn-secondary,.btn-sm-secondary,.btn-lg-secondary,.btn-icon-secondary,.btn-sm-icon-secondary,.btn-lg-icon-secondary):hover,:is(.btn-secondary,.btn-sm-secondary,.btn-lg-secondary,.btn-icon-secondary,.btn-sm-icon-secondary,.btn-lg-icon-secondary)[aria-pressed=true]){background-color:color-mix(in oklab,var(--color-secondary)80%,transparent)}}.btn-outline,.btn-sm-outline,.btn-lg-outline,.btn-icon-outline,.btn-sm-icon-outline,.btn-lg-icon-outline{border-style:var(--tw-border-style);background-color:var(--color-background);--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);border-width:1px}:is(.btn-outline,.btn-sm-outline,.btn-lg-outline,.btn-icon-outline,.btn-sm-icon-outline,.btn-lg-icon-outline):is(.dark *){border-color:var(--color-input);background-color:var(--color-input)}@supports (color:color-mix(in lab, red, red)){:is(.btn-outline,.btn-sm-outline,.btn-lg-outline,.btn-icon-outline,.btn-sm-icon-outline,.btn-lg-icon-outline):is(.dark *){background-color:color-mix(in oklab,var(--color-input)30%,transparent)}}:is(.btn-outline,.btn-sm-outline,.btn-lg-outline,.btn-icon-outline,.btn-sm-icon-outline,.btn-lg-icon-outline):hover,:is(.btn-outline,.btn-sm-outline,.btn-lg-outline,.btn-icon-outline,.btn-sm-icon-outline,.btn-lg-icon-outline)[aria-pressed=true]{background-color:var(--color-accent);color:var(--color-accent-foreground)}:is(:is(.btn-outline,.btn-sm-outline,.btn-lg-outline,.btn-icon-outline,.btn-sm-icon-outline,.btn-lg-icon-outline):hover,:is(.btn-outline,.btn-sm-outline,.btn-lg-outline,.btn-icon-outline,.btn-sm-icon-outline,.btn-lg-icon-outline)[aria-pressed=true]):is(.dark *){background-color:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){:is(:is(.btn-outline,.btn-sm-outline,.btn-lg-outline,.btn-icon-outline,.btn-sm-icon-outline,.btn-lg-icon-outline):hover,:is(.btn-outline,.btn-sm-outline,.btn-lg-outline,.btn-icon-outline,.btn-sm-icon-outline,.btn-lg-icon-outline)[aria-pressed=true]):is(.dark *){background-color:color-mix(in oklab,var(--color-accent)50%,transparent)}}:is(.btn-ghost,.btn-sm-ghost,.btn-lg-ghost,.btn-icon-ghost,.btn-sm-icon-ghost,.btn-lg-icon-ghost):hover,:is(.btn-ghost,.btn-sm-ghost,.btn-lg-ghost,.btn-icon-ghost,.btn-sm-icon-ghost,.btn-lg-icon-ghost)[aria-pressed=true]{background-color:var(--color-accent);color:var(--color-accent-foreground)}:is(:is(.btn-ghost,.btn-sm-ghost,.btn-lg-ghost,.btn-icon-ghost,.btn-sm-icon-ghost,.btn-lg-icon-ghost):hover,:is(.btn-ghost,.btn-sm-ghost,.btn-lg-ghost,.btn-icon-ghost,.btn-sm-icon-ghost,.btn-lg-icon-ghost)[aria-pressed=true]):is(.dark *){background-color:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){:is(:is(.btn-ghost,.btn-sm-ghost,.btn-lg-ghost,.btn-icon-ghost,.btn-sm-icon-ghost,.btn-lg-icon-ghost):hover,:is(.btn-ghost,.btn-sm-ghost,.btn-lg-ghost,.btn-icon-ghost,.btn-sm-icon-ghost,.btn-lg-icon-ghost)[aria-pressed=true]):is(.dark *){background-color:color-mix(in oklab,var(--color-accent)50%,transparent)}}.btn-link,.btn-sm-link,.btn-lg-link,.btn-icon-link,.btn-sm-icon-link,.btn-lg-icon-link{color:var(--color-primary);text-underline-offset:4px}@media (hover:hover){:is(:is(.btn-link,.btn-sm-link,.btn-lg-link,.btn-icon-link,.btn-sm-icon-link,.btn-lg-icon-link):hover,:is(.btn-link,.btn-sm-link,.btn-lg-link,.btn-icon-link,.btn-sm-icon-link,.btn-lg-icon-link)[aria-pressed=true]):hover{text-decoration-line:underline}}.btn-destructive,.btn-sm-destructive,.btn-lg-destructive,.btn-icon-destructive,.btn-sm-icon-destructive,.btn-lg-icon-destructive{background-color:var(--color-destructive);color:var(--color-white);--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}:is(.btn-destructive,.btn-sm-destructive,.btn-lg-destructive,.btn-icon-destructive,.btn-sm-icon-destructive,.btn-lg-icon-destructive):focus-visible{--tw-ring-color:var(--color-destructive)}@supports (color:color-mix(in lab, red, red)){:is(.btn-destructive,.btn-sm-destructive,.btn-lg-destructive,.btn-icon-destructive,.btn-sm-icon-destructive,.btn-lg-icon-destructive):focus-visible{--tw-ring-color:color-mix(in oklab,var(--color-destructive)20%,transparent)}}:is(.btn-destructive,.btn-sm-destructive,.btn-lg-destructive,.btn-icon-destructive,.btn-sm-icon-destructive,.btn-lg-icon-destructive):is(.dark *){background-color:var(--color-destructive)}@supports (color:color-mix(in lab, red, red)){:is(.btn-destructive,.btn-sm-destructive,.btn-lg-destructive,.btn-icon-destructive,.btn-sm-icon-destructive,.btn-lg-icon-destructive):is(.dark *){background-color:color-mix(in oklab,var(--color-destructive)60%,transparent)}}:is(.btn-destructive,.btn-sm-destructive,.btn-lg-destructive,.btn-icon-destructive,.btn-sm-icon-destructive,.btn-lg-icon-destructive):is(.dark *):focus-visible{--tw-ring-color:var(--color-destructive)}@supports (color:color-mix(in lab, red, red)){:is(.btn-destructive,.btn-sm-destructive,.btn-lg-destructive,.btn-icon-destructive,.btn-sm-icon-destructive,.btn-lg-icon-destructive):is(.dark *):focus-visible{--tw-ring-color:color-mix(in oklab,var(--color-destructive)40%,transparent)}}:is(.btn-destructive,.btn-sm-destructive,.btn-lg-destructive,.btn-icon-destructive,.btn-sm-icon-destructive,.btn-lg-icon-destructive):hover,:is(.btn-destructive,.btn-sm-destructive,.btn-lg-destructive,.btn-icon-destructive,.btn-sm-icon-destructive,.btn-lg-icon-destructive)[aria-pressed=true]{background-color:var(--color-destructive)}@supports (color:color-mix(in lab, red, red)){:is(:is(.btn-destructive,.btn-sm-destructive,.btn-lg-destructive,.btn-icon-destructive,.btn-sm-icon-destructive,.btn-lg-icon-destructive):hover,:is(.btn-destructive,.btn-sm-destructive,.btn-lg-destructive,.btn-icon-destructive,.btn-sm-icon-destructive,.btn-lg-icon-destructive)[aria-pressed=true]){background-color:color-mix(in oklab,var(--color-destructive)90%,transparent)}}:is(:is(.btn-destructive,.btn-sm-destructive,.btn-lg-destructive,.btn-icon-destructive,.btn-sm-icon-destructive,.btn-lg-icon-destructive):hover,:is(.btn-destructive,.btn-sm-destructive,.btn-lg-destructive,.btn-icon-destructive,.btn-sm-icon-destructive,.btn-lg-icon-destructive)[aria-pressed=true]):is(.dark *){background-color:var(--color-destructive)}@supports (color:color-mix(in lab, red, red)){:is(:is(.btn-destructive,.btn-sm-destructive,.btn-lg-destructive,.btn-icon-destructive,.btn-sm-icon-destructive,.btn-lg-icon-destructive):hover,:is(.btn-destructive,.btn-sm-destructive,.btn-lg-destructive,.btn-icon-destructive,.btn-sm-icon-destructive,.btn-lg-icon-destructive)[aria-pressed=true]):is(.dark *){background-color:color-mix(in oklab,var(--color-destructive)50%,transparent)}}.badge,.badge-primary,.badge-secondary,.badge-destructive,.badge-outline{justify-content:center;align-items:center;gap:calc(var(--spacing)*1);border-radius:var(--radius-md);border-style:var(--tw-border-style);width:fit-content;padding-inline:calc(var(--spacing)*2);padding-block:calc(var(--spacing)*.5);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);white-space:nowrap;transition-property:color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));border-width:1px;flex-shrink:0;display:inline-flex;overflow:hidden}:is(.badge,.badge-primary,.badge-secondary,.badge-destructive,.badge-outline):focus-visible{border-color:var(--color-ring);--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(3px + 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);--tw-ring-color:var(--color-ring)}@supports (color:color-mix(in lab, red, red)){:is(.badge,.badge-primary,.badge-secondary,.badge-destructive,.badge-outline):focus-visible{--tw-ring-color:color-mix(in oklab,var(--color-ring)50%,transparent)}}:is(.badge,.badge-primary,.badge-secondary,.badge-destructive,.badge-outline)[aria-invalid=true]{border-color:var(--color-destructive);--tw-ring-color:var(--color-destructive)}@supports (color:color-mix(in lab, red, red)){:is(.badge,.badge-primary,.badge-secondary,.badge-destructive,.badge-outline)[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--color-destructive)20%,transparent)}}:is(.badge,.badge-primary,.badge-secondary,.badge-destructive,.badge-outline):is(.dark *)[aria-invalid=true]{--tw-ring-color:var(--color-destructive)}@supports (color:color-mix(in lab, red, red)){:is(.badge,.badge-primary,.badge-secondary,.badge-destructive,.badge-outline):is(.dark *)[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--color-destructive)40%,transparent)}}:is(.badge,.badge-primary,.badge-secondary,.badge-destructive,.badge-outline)>svg{pointer-events:none;width:calc(var(--spacing)*3);height:calc(var(--spacing)*3)}.badge,.badge-primary{background-color:var(--color-primary);color:var(--color-primary-foreground);border-color:#0000}@media (hover:hover){a:is(.badge,.badge-primary):hover{background-color:var(--color-primary)}@supports (color:color-mix(in lab, red, red)){a:is(.badge,.badge-primary):hover{background-color:color-mix(in oklab,var(--color-primary)90%,transparent)}}}.badge-secondary{background-color:var(--color-secondary);color:var(--color-secondary-foreground);border-color:#0000}@media (hover:hover){a.badge-secondary:hover{background-color:var(--color-secondary)}@supports (color:color-mix(in lab, red, red)){a.badge-secondary:hover{background-color:color-mix(in oklab,var(--color-secondary)90%,transparent)}}}.badge-destructive{background-color:var(--color-destructive);color:var(--color-white);border-color:#0000}.badge-destructive:focus-visible{--tw-ring-color:var(--color-destructive)}@supports (color:color-mix(in lab, red, red)){.badge-destructive:focus-visible{--tw-ring-color:color-mix(in oklab,var(--color-destructive)20%,transparent)}}.badge-destructive:is(.dark *){background-color:var(--color-destructive)}@supports (color:color-mix(in lab, red, red)){.badge-destructive:is(.dark *){background-color:color-mix(in oklab,var(--color-destructive)60%,transparent)}}.badge-destructive:is(.dark *):focus-visible{--tw-ring-color:var(--color-destructive)}@supports (color:color-mix(in lab, red, red)){.badge-destructive:is(.dark *):focus-visible{--tw-ring-color:color-mix(in oklab,var(--color-destructive)40%,transparent)}}@media (hover:hover){a.badge-destructive:hover{background-color:var(--color-destructive)}@supports (color:color-mix(in lab, red, red)){a.badge-destructive:hover{background-color:color-mix(in oklab,var(--color-destructive)90%,transparent)}}}.badge-outline{color:var(--color-foreground)}@media (hover:hover){a.badge-outline:hover{background-color:var(--color-accent);color:var(--color-accent-foreground)}}.card{gap:calc(var(--spacing)*6);border-radius:var(--radius-xl);border-style:var(--tw-border-style);background-color:var(--color-card);padding-block:calc(var(--spacing)*6);color:var(--color-card-foreground);--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);border-width:1px;flex-direction:column;display:flex}.card>header{align-items:flex-start;gap:calc(var(--spacing)*1.5);padding-inline:calc(var(--spacing)*6);grid-template-rows:auto auto;grid-auto-rows:min-content;display:grid;container:card-header/inline-size}.card>header:has([data-slot=card-action]){grid-template-columns:1fr auto}.card>header.border-b{padding-bottom:calc(var(--spacing)*6)}.card>header h2{--tw-leading:1;--tw-font-weight:var(--font-weight-semibold);line-height:1;font-weight:var(--font-weight-semibold)}.card>header p{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));color:var(--color-muted-foreground)}.card>section{padding-inline:calc(var(--spacing)*6)}.card>footer{padding-inline:calc(var(--spacing)*6);align-items:center;display:flex}.card>footer.border-t{padding-top:calc(var(--spacing)*6)}.form input[type=checkbox]:not([role=switch]),.input[type=checkbox]:not([role=switch]){width:calc(var(--spacing)*4);height:calc(var(--spacing)*4);appearance:none;border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-input);--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);transition-property:box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-outline-style:none;border-radius:4px;outline-style:none;flex-shrink:0}:is(.form input[type=checkbox]:not([role=switch]),.input[type=checkbox]:not([role=switch])):checked{border-color:var(--color-primary);background-color:var(--color-primary)}:is(.form input[type=checkbox]:not([role=switch]),.input[type=checkbox]:not([role=switch])):focus-visible{border-color:var(--color-ring);--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(3px + 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);--tw-ring-color:var(--color-ring)}@supports (color:color-mix(in lab, red, red)){:is(.form input[type=checkbox]:not([role=switch]),.input[type=checkbox]:not([role=switch])):focus-visible{--tw-ring-color:color-mix(in oklab,var(--color-ring)50%,transparent)}}:is(.form input[type=checkbox]:not([role=switch]),.input[type=checkbox]:not([role=switch])):disabled{cursor:not-allowed;opacity:.5}:is(.form input[type=checkbox]:not([role=switch]),.input[type=checkbox]:not([role=switch]))[aria-invalid=true]{border-color:var(--color-destructive);--tw-ring-color:var(--color-destructive)}@supports (color:color-mix(in lab, red, red)){:is(.form input[type=checkbox]:not([role=switch]),.input[type=checkbox]:not([role=switch]))[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--color-destructive)20%,transparent)}}:is(.form input[type=checkbox]:not([role=switch]),.input[type=checkbox]:not([role=switch])):is(.dark *){background-color:var(--color-input)}@supports (color:color-mix(in lab, red, red)){:is(.form input[type=checkbox]:not([role=switch]),.input[type=checkbox]:not([role=switch])):is(.dark *){background-color:color-mix(in oklab,var(--color-input)30%,transparent)}}:is(.form input[type=checkbox]:not([role=switch]),.input[type=checkbox]:not([role=switch])):is(.dark *):checked{background-color:var(--color-primary)}:is(.form input[type=checkbox]:not([role=switch]),.input[type=checkbox]:not([role=switch])):is(.dark *)[aria-invalid=true]{--tw-ring-color:var(--color-destructive)}@supports (color:color-mix(in lab, red, red)){:is(.form input[type=checkbox]:not([role=switch]),.input[type=checkbox]:not([role=switch])):is(.dark *)[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--color-destructive)40%,transparent)}}:is(.form input[type=checkbox]:not([role=switch]),.input[type=checkbox]:not([role=switch])):checked:after{width:calc(var(--spacing)*3.5);height:calc(var(--spacing)*3.5);background-color:var(--color-primary-foreground);--tw-content:"";content:var(--tw-content);-webkit-mask-image:var(--check-icon);-webkit-mask-image:var(--check-icon);mask-image:var(--check-icon);display:block;-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:.875rem;mask-size:.875rem;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}details::details-content{opacity:0;block-size:0;transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));transition-behavior:allow-discrete;display:block}details[open]::details-content{block-size:auto;block-size:calc-size(auto,size);opacity:1}details summary{cursor:pointer;align-items:center;display:inline-flex}details>summary::-webkit-details-marker{display:none}.dialog{inset-block:calc(var(--spacing)*0);opacity:0;transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));transition-behavior:allow-discrete}.dialog:is([open],:popover-open),.dialog:is([open],:popover-open)::backdrop{opacity:1}.dialog:is([open],:popover-open)>article{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}@starting-style{.dialog:is([open],:popover-open),.dialog:is([open],:popover-open)::backdrop{opacity:0}.dialog:is([open],:popover-open)>article{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x)var(--tw-scale-y)}}.dialog::backdrop{opacity:0;transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));transition-behavior:allow-discrete;background-color:#00000080}@supports (color:color-mix(in lab, red, red)){.dialog::backdrop{background-color:color-mix(in oklab,var(--color-black)50%,transparent)}}.dialog>article{z-index:50;--tw-translate-x:calc(calc(1/2*100%)*-1);width:100%;max-width:calc(100% - 2rem);max-height:calc(100% - 2rem);translate:var(--tw-translate-x)var(--tw-translate-y);--tw-translate-y:calc(calc(1/2*100%)*-1);translate:var(--tw-translate-x)var(--tw-translate-y);gap:calc(var(--spacing)*4);border-radius:var(--radius-lg);border-style:var(--tw-border-style);background-color:var(--color-background);padding:calc(var(--spacing)*6);--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);--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x)var(--tw-scale-y);transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));border-width:1px;flex-direction:column;display:flex;position:fixed;top:50%;left:50%}@media (min-width:40rem){.dialog>article{max-width:var(--container-lg)}}.dialog>article>header{gap:calc(var(--spacing)*2);text-align:center;flex-direction:column;display:flex}@media (min-width:40rem){.dialog>article>header{text-align:left}}.dialog>article>header>h2{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height));--tw-leading:1;--tw-font-weight:var(--font-weight-semibold);line-height:1;font-weight:var(--font-weight-semibold)}.dialog>article>header>p{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));color:var(--color-muted-foreground)}.dialog>article>section{margin-inline:calc(var(--spacing)*-6);padding-inline:calc(var(--spacing)*6);flex:1}.dialog>article>footer{gap:calc(var(--spacing)*2);flex-direction:column-reverse;display:flex}@media (min-width:40rem){.dialog>article>footer{flex-direction:row;justify-content:flex-end}}.dialog>article>form[method=dialog]{top:calc(var(--spacing)*4);right:calc(var(--spacing)*4);position:absolute}.dialog>article>form[method=dialog]>button{border-radius:var(--radius-xs);opacity:.7;--tw-ring-offset-color:var(--color-background);transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}@media (hover:hover){.dialog>article>form[method=dialog]>button:hover{opacity:1}}.dialog>article>form[method=dialog]>button:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + 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);--tw-ring-color:var(--color-ring);--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color);--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.dialog>article>form[method=dialog]>button:focus{outline-offset:2px;outline:2px solid #0000}}.dialog>article>form[method=dialog]>button:disabled{pointer-events:none}.dialog>article>form[method=dialog]>button[data-state=open]{background-color:var(--color-accent);color:var(--color-muted-foreground)}.dialog>article>form[method=dialog]>button svg{pointer-events:none;flex-shrink:0}.dialog>article>form[method=dialog]>button svg:not([class*=size-]){width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.dropdown-menu{display:inline-flex;position:relative}.dropdown-menu [data-popover]{padding:calc(var(--spacing)*1);min-width:anchor-size(width)}.dropdown-menu [data-popover] [role=menuitem],.dropdown-menu [data-popover] [role=menuitemcheckbox],.dropdown-menu [data-popover] [role=menuitemradio]{cursor:default;align-items:center;gap:calc(var(--spacing)*2);text-overflow:ellipsis;white-space:nowrap;border-radius:var(--radius-sm);width:100%;padding-inline:calc(var(--spacing)*2);padding-block:calc(var(--spacing)*1.5);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-outline-style:none;-webkit-user-select:none;user-select:none;outline-style:none;display:flex;position:relative;overflow:hidden}@media (forced-colors:active){:is(.dropdown-menu [data-popover] [role=menuitem],.dropdown-menu [data-popover] [role=menuitemcheckbox],.dropdown-menu [data-popover] [role=menuitemradio]){outline-offset:2px;outline:2px solid #0000}}:is(.dropdown-menu [data-popover] [role=menuitem],.dropdown-menu [data-popover] [role=menuitemcheckbox],.dropdown-menu [data-popover] [role=menuitemradio]):disabled,:is(.dropdown-menu [data-popover] [role=menuitem],.dropdown-menu [data-popover] [role=menuitemcheckbox],.dropdown-menu [data-popover] [role=menuitemradio])[aria-disabled=true]{pointer-events:none;opacity:.5}:is(.dropdown-menu [data-popover] [role=menuitem],.dropdown-menu [data-popover] [role=menuitemcheckbox],.dropdown-menu [data-popover] [role=menuitemradio])[aria-hidden=true]{display:none}:is(.dropdown-menu [data-popover] [role=menuitem],.dropdown-menu [data-popover] [role=menuitemcheckbox],.dropdown-menu [data-popover] [role=menuitemradio]) svg{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4);color:var(--color-muted-foreground);flex-shrink:0}:is(.dropdown-menu [data-popover] [role=menuitem],.dropdown-menu [data-popover] [role=menuitemcheckbox],.dropdown-menu [data-popover] [role=menuitemradio]):not([aria-disabled=true]):focus-visible,:is(.dropdown-menu [data-popover] [role=menuitem],.dropdown-menu [data-popover] [role=menuitemcheckbox],.dropdown-menu [data-popover] [role=menuitemradio]).active{background-color:var(--color-accent);color:var(--color-accent-foreground)}.dropdown-menu [data-popover] [role=menu] [role=heading]{padding-inline:calc(var(--spacing)*2);padding-block:calc(var(--spacing)*1.5);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);display:flex}.dropdown-menu [data-popover] [role=separator]{margin-inline:calc(var(--spacing)*-1);margin-block:calc(var(--spacing)*1);border-color:var(--color-border)}@media (hover:hover){:is(.dropdown-menu:not([data-dropdown-menu-initialized]) [data-popover] [role=menuitem],.dropdown-menu:not([data-dropdown-menu-initialized]) [data-popover] [role=menuitemcheckbox],.dropdown-menu:not([data-dropdown-menu-initialized]) [data-popover] [role=menuitemradio]):hover{background-color:var(--color-accent);color:var(--color-accent-foreground)}}.form input[type=text],.form input[type=email],.form input[type=password],.form input[type=number],.form input[type=file],.form input[type=tel],.form input[type=url],.form input[type=search],.form input[type=date],.form input[type=datetime-local],.form input[type=month],.form input[type=week],.form input[type=time],.input[type=text],.input[type=email],.input[type=password],.input[type=number],.input[type=file],.input[type=tel],.input[type=url],.input[type=search],.input[type=date],.input[type=datetime-local],.input[type=month],.input[type=week],.input[type=time]{height:calc(var(--spacing)*9);width:100%;min-width:calc(var(--spacing)*0);appearance:none;border-radius:var(--radius-md);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-input);padding-inline:calc(var(--spacing)*3);padding-block:calc(var(--spacing)*1);font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height));--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);transition-property:color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-outline-style:none;background-color:#0000;outline-style:none;display:flex}:is(.form input[type=text],.form input[type=email],.form input[type=password],.form input[type=number],.form input[type=file],.form input[type=tel],.form input[type=url],.form input[type=search],.form input[type=date],.form input[type=datetime-local],.form input[type=month],.form input[type=week],.form input[type=time],.input[type=text],.input[type=email],.input[type=password],.input[type=number],.input[type=file],.input[type=tel],.input[type=url],.input[type=search],.input[type=date],.input[type=datetime-local],.input[type=month],.input[type=week],.input[type=time]) ::selection{background-color:var(--color-primary)}:is(.form input[type=text],.form input[type=email],.form input[type=password],.form input[type=number],.form input[type=file],.form input[type=tel],.form input[type=url],.form input[type=search],.form input[type=date],.form input[type=datetime-local],.form input[type=month],.form input[type=week],.form input[type=time],.input[type=text],.input[type=email],.input[type=password],.input[type=number],.input[type=file],.input[type=tel],.input[type=url],.input[type=search],.input[type=date],.input[type=datetime-local],.input[type=month],.input[type=week],.input[type=time])::selection{background-color:var(--color-primary)}:is(.form input[type=text],.form input[type=email],.form input[type=password],.form input[type=number],.form input[type=file],.form input[type=tel],.form input[type=url],.form input[type=search],.form input[type=date],.form input[type=datetime-local],.form input[type=month],.form input[type=week],.form input[type=time],.input[type=text],.input[type=email],.input[type=password],.input[type=number],.input[type=file],.input[type=tel],.input[type=url],.input[type=search],.input[type=date],.input[type=datetime-local],.input[type=month],.input[type=week],.input[type=time]) ::selection{color:var(--color-primary-foreground)}:is(.form input[type=text],.form input[type=email],.form input[type=password],.form input[type=number],.form input[type=file],.form input[type=tel],.form input[type=url],.form input[type=search],.form input[type=date],.form input[type=datetime-local],.form input[type=month],.form input[type=week],.form input[type=time],.input[type=text],.input[type=email],.input[type=password],.input[type=number],.input[type=file],.input[type=tel],.input[type=url],.input[type=search],.input[type=date],.input[type=datetime-local],.input[type=month],.input[type=week],.input[type=time])::selection{color:var(--color-primary-foreground)}:is(.form input[type=text],.form input[type=email],.form input[type=password],.form input[type=number],.form input[type=file],.form input[type=tel],.form input[type=url],.form input[type=search],.form input[type=date],.form input[type=datetime-local],.form input[type=month],.form input[type=week],.form input[type=time],.input[type=text],.input[type=email],.input[type=password],.input[type=number],.input[type=file],.input[type=tel],.input[type=url],.input[type=search],.input[type=date],.input[type=datetime-local],.input[type=month],.input[type=week],.input[type=time])::file-selector-button{display:inline-flex}:is(.form input[type=text],.form input[type=email],.form input[type=password],.form input[type=number],.form input[type=file],.form input[type=tel],.form input[type=url],.form input[type=search],.form input[type=date],.form input[type=datetime-local],.form input[type=month],.form input[type=week],.form input[type=time],.input[type=text],.input[type=email],.input[type=password],.input[type=number],.input[type=file],.input[type=tel],.input[type=url],.input[type=search],.input[type=date],.input[type=datetime-local],.input[type=month],.input[type=week],.input[type=time])::file-selector-button{height:calc(var(--spacing)*7)}:is(.form input[type=text],.form input[type=email],.form input[type=password],.form input[type=number],.form input[type=file],.form input[type=tel],.form input[type=url],.form input[type=search],.form input[type=date],.form input[type=datetime-local],.form input[type=month],.form input[type=week],.form input[type=time],.input[type=text],.input[type=email],.input[type=password],.input[type=number],.input[type=file],.input[type=tel],.input[type=url],.input[type=search],.input[type=date],.input[type=datetime-local],.input[type=month],.input[type=week],.input[type=time])::file-selector-button{border-style:var(--tw-border-style);border-width:0}:is(.form input[type=text],.form input[type=email],.form input[type=password],.form input[type=number],.form input[type=file],.form input[type=tel],.form input[type=url],.form input[type=search],.form input[type=date],.form input[type=datetime-local],.form input[type=month],.form input[type=week],.form input[type=time],.input[type=text],.input[type=email],.input[type=password],.input[type=number],.input[type=file],.input[type=tel],.input[type=url],.input[type=search],.input[type=date],.input[type=datetime-local],.input[type=month],.input[type=week],.input[type=time])::file-selector-button{background-color:#0000}:is(.form input[type=text],.form input[type=email],.form input[type=password],.form input[type=number],.form input[type=file],.form input[type=tel],.form input[type=url],.form input[type=search],.form input[type=date],.form input[type=datetime-local],.form input[type=month],.form input[type=week],.form input[type=time],.input[type=text],.input[type=email],.input[type=password],.input[type=number],.input[type=file],.input[type=tel],.input[type=url],.input[type=search],.input[type=date],.input[type=datetime-local],.input[type=month],.input[type=week],.input[type=time])::file-selector-button{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}:is(.form input[type=text],.form input[type=email],.form input[type=password],.form input[type=number],.form input[type=file],.form input[type=tel],.form input[type=url],.form input[type=search],.form input[type=date],.form input[type=datetime-local],.form input[type=month],.form input[type=week],.form input[type=time],.input[type=text],.input[type=email],.input[type=password],.input[type=number],.input[type=file],.input[type=tel],.input[type=url],.input[type=search],.input[type=date],.input[type=datetime-local],.input[type=month],.input[type=week],.input[type=time])::file-selector-button{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}:is(.form input[type=text],.form input[type=email],.form input[type=password],.form input[type=number],.form input[type=file],.form input[type=tel],.form input[type=url],.form input[type=search],.form input[type=date],.form input[type=datetime-local],.form input[type=month],.form input[type=week],.form input[type=time],.input[type=text],.input[type=email],.input[type=password],.input[type=number],.input[type=file],.input[type=tel],.input[type=url],.input[type=search],.input[type=date],.input[type=datetime-local],.input[type=month],.input[type=week],.input[type=time])::file-selector-button{color:var(--color-foreground)}:is(.form input[type=text],.form input[type=email],.form input[type=password],.form input[type=number],.form input[type=file],.form input[type=tel],.form input[type=url],.form input[type=search],.form input[type=date],.form input[type=datetime-local],.form input[type=month],.form input[type=week],.form input[type=time],.input[type=text],.input[type=email],.input[type=password],.input[type=number],.input[type=file],.input[type=tel],.input[type=url],.input[type=search],.input[type=date],.input[type=datetime-local],.input[type=month],.input[type=week],.input[type=time])::placeholder{color:var(--color-muted-foreground)}:is(.form input[type=text],.form input[type=email],.form input[type=password],.form input[type=number],.form input[type=file],.form input[type=tel],.form input[type=url],.form input[type=search],.form input[type=date],.form input[type=datetime-local],.form input[type=month],.form input[type=week],.form input[type=time],.input[type=text],.input[type=email],.input[type=password],.input[type=number],.input[type=file],.input[type=tel],.input[type=url],.input[type=search],.input[type=date],.input[type=datetime-local],.input[type=month],.input[type=week],.input[type=time]):disabled{pointer-events:none;cursor:not-allowed;opacity:.5}@media (min-width:48rem){:is(.form input[type=text],.form input[type=email],.form input[type=password],.form input[type=number],.form input[type=file],.form input[type=tel],.form input[type=url],.form input[type=search],.form input[type=date],.form input[type=datetime-local],.form input[type=month],.form input[type=week],.form input[type=time],.input[type=text],.input[type=email],.input[type=password],.input[type=number],.input[type=file],.input[type=tel],.input[type=url],.input[type=search],.input[type=date],.input[type=datetime-local],.input[type=month],.input[type=week],.input[type=time]){font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}:is(.form input[type=text],.form input[type=email],.form input[type=password],.form input[type=number],.form input[type=file],.form input[type=tel],.form input[type=url],.form input[type=search],.form input[type=date],.form input[type=datetime-local],.form input[type=month],.form input[type=week],.form input[type=time],.input[type=text],.input[type=email],.input[type=password],.input[type=number],.input[type=file],.input[type=tel],.input[type=url],.input[type=search],.input[type=date],.input[type=datetime-local],.input[type=month],.input[type=week],.input[type=time]):is(.dark *){background-color:var(--color-input)}@supports (color:color-mix(in lab, red, red)){:is(.form input[type=text],.form input[type=email],.form input[type=password],.form input[type=number],.form input[type=file],.form input[type=tel],.form input[type=url],.form input[type=search],.form input[type=date],.form input[type=datetime-local],.form input[type=month],.form input[type=week],.form input[type=time],.input[type=text],.input[type=email],.input[type=password],.input[type=number],.input[type=file],.input[type=tel],.input[type=url],.input[type=search],.input[type=date],.input[type=datetime-local],.input[type=month],.input[type=week],.input[type=time]):is(.dark *){background-color:color-mix(in oklab,var(--color-input)30%,transparent)}}:is(.form input[type=text],.form input[type=email],.form input[type=password],.form input[type=number],.form input[type=file],.form input[type=tel],.form input[type=url],.form input[type=search],.form input[type=date],.form input[type=datetime-local],.form input[type=month],.form input[type=week],.form input[type=time],.input[type=text],.input[type=email],.input[type=password],.input[type=number],.input[type=file],.input[type=tel],.input[type=url],.input[type=search],.input[type=date],.input[type=datetime-local],.input[type=month],.input[type=week],.input[type=time]):focus-visible{border-color:var(--color-ring);--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(3px + 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);--tw-ring-color:var(--color-ring)}@supports (color:color-mix(in lab, red, red)){:is(.form input[type=text],.form input[type=email],.form input[type=password],.form input[type=number],.form input[type=file],.form input[type=tel],.form input[type=url],.form input[type=search],.form input[type=date],.form input[type=datetime-local],.form input[type=month],.form input[type=week],.form input[type=time],.input[type=text],.input[type=email],.input[type=password],.input[type=number],.input[type=file],.input[type=tel],.input[type=url],.input[type=search],.input[type=date],.input[type=datetime-local],.input[type=month],.input[type=week],.input[type=time]):focus-visible{--tw-ring-color:color-mix(in oklab,var(--color-ring)50%,transparent)}}:is(.form input[type=text],.form input[type=email],.form input[type=password],.form input[type=number],.form input[type=file],.form input[type=tel],.form input[type=url],.form input[type=search],.form input[type=date],.form input[type=datetime-local],.form input[type=month],.form input[type=week],.form input[type=time],.input[type=text],.input[type=email],.input[type=password],.input[type=number],.input[type=file],.input[type=tel],.input[type=url],.input[type=search],.input[type=date],.input[type=datetime-local],.input[type=month],.input[type=week],.input[type=time])[aria-invalid=true]{border-color:var(--color-destructive);--tw-ring-color:var(--color-destructive)}@supports (color:color-mix(in lab, red, red)){:is(.form input[type=text],.form input[type=email],.form input[type=password],.form input[type=number],.form input[type=file],.form input[type=tel],.form input[type=url],.form input[type=search],.form input[type=date],.form input[type=datetime-local],.form input[type=month],.form input[type=week],.form input[type=time],.input[type=text],.input[type=email],.input[type=password],.input[type=number],.input[type=file],.input[type=tel],.input[type=url],.input[type=search],.input[type=date],.input[type=datetime-local],.input[type=month],.input[type=week],.input[type=time])[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--color-destructive)20%,transparent)}}:is(.form input[type=text],.form input[type=email],.form input[type=password],.form input[type=number],.form input[type=file],.form input[type=tel],.form input[type=url],.form input[type=search],.form input[type=date],.form input[type=datetime-local],.form input[type=month],.form input[type=week],.form input[type=time],.input[type=text],.input[type=email],.input[type=password],.input[type=number],.input[type=file],.input[type=tel],.input[type=url],.input[type=search],.input[type=date],.input[type=datetime-local],.input[type=month],.input[type=week],.input[type=time]):is(.dark *)[aria-invalid=true]{--tw-ring-color:var(--color-destructive)}@supports (color:color-mix(in lab, red, red)){:is(.form input[type=text],.form input[type=email],.form input[type=password],.form input[type=number],.form input[type=file],.form input[type=tel],.form input[type=url],.form input[type=search],.form input[type=date],.form input[type=datetime-local],.form input[type=month],.form input[type=week],.form input[type=time],.input[type=text],.input[type=email],.input[type=password],.input[type=number],.input[type=file],.input[type=tel],.input[type=url],.input[type=search],.input[type=date],.input[type=datetime-local],.input[type=month],.input[type=week],.input[type=time]):is(.dark *)[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--color-destructive)40%,transparent)}}.form label,.label{align-items:center;gap:calc(var(--spacing)*2);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-leading:1;--tw-font-weight:var(--font-weight-medium);line-height:1;font-weight:var(--font-weight-medium);-webkit-user-select:none;user-select:none;display:flex}:is(.form label,.label):is(:where(.peer):disabled~*),:is(.form label,.label):has(>:disabled),:is(.form label,.label):has(+:disabled){pointer-events:none;opacity:.5}[data-popover]{visibility:visible;z-index:50;--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;width:max-content;min-width:100%;scale:var(--tw-scale-x)var(--tw-scale-y);border-radius:var(--radius-md);border-style:var(--tw-border-style);background-color:var(--color-popover);color:var(--color-popover-foreground);opacity:1;--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px 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);transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));border-width:1px;position:absolute;overflow:hidden auto}[data-popover][aria-hidden=true]{visibility:hidden;--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x)var(--tw-scale-y);opacity:0}[data-popover][aria-hidden=true]:not([data-side]),[data-popover][aria-hidden=true][data-side=bottom]{--tw-translate-y:calc(var(--spacing)*-2);translate:var(--tw-translate-x)var(--tw-translate-y)}[data-popover][aria-hidden=true][data-side=top]{--tw-translate-y:calc(var(--spacing)*2);translate:var(--tw-translate-x)var(--tw-translate-y)}[data-popover][aria-hidden=true][data-side=left]{--tw-translate-x:calc(var(--spacing)*2);translate:var(--tw-translate-x)var(--tw-translate-y)}[data-popover][aria-hidden=true][data-side=right]{--tw-translate-x:calc(var(--spacing)*-2);translate:var(--tw-translate-x)var(--tw-translate-y)}[data-popover]:not([data-side]),[data-popover][data-side=bottom]{margin-top:calc(var(--spacing)*1);top:100%}[data-popover][data-side=top]{margin-bottom:calc(var(--spacing)*1);bottom:100%}[data-popover][data-side=left]{margin-right:calc(var(--spacing)*1);right:100%}[data-popover][data-side=right]{margin-left:calc(var(--spacing)*1);left:100%}:is([data-popover]:not([data-side]),[data-popover][data-side=bottom],[data-popover][data-side=top]):not([data-align]),:is([data-popover]:not([data-side]),[data-popover][data-side=bottom],[data-popover][data-side=top])[data-align=start]{left:calc(var(--spacing)*0)}:is([data-popover]:not([data-side]),[data-popover][data-side=bottom],[data-popover][data-side=top])[data-align=end]{right:calc(var(--spacing)*0)}:is([data-popover]:not([data-side]),[data-popover][data-side=bottom],[data-popover][data-side=top])[data-align=center]{--tw-translate-x:calc(calc(1/2*100%)*-1);translate:var(--tw-translate-x)var(--tw-translate-y);left:50%}:is([data-popover][data-side=left],[data-popover][data-side=right]):not([data-align]),:is([data-popover][data-side=left],[data-popover][data-side=right])[data-align=start]{top:calc(var(--spacing)*0)}:is([data-popover][data-side=left],[data-popover][data-side=right])[data-align=end]{bottom:calc(var(--spacing)*0)}:is([data-popover][data-side=left],[data-popover][data-side=right])[data-align=center]{--tw-translate-y:calc(calc(1/2*100%)*-1);translate:var(--tw-translate-x)var(--tw-translate-y);top:50%}.popover{display:inline-flex;position:relative}.popover [data-popover]{padding:calc(var(--spacing)*4)}.form input[type=radio],.input[type=radio]{aspect-ratio:1;width:calc(var(--spacing)*4);height:calc(var(--spacing)*4);appearance:none;border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-input);color:var(--color-primary);--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);transition-property:color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-outline-style:none;border-radius:3.40282e38px;outline-style:none;flex-shrink:0;position:relative}:is(.form input[type=radio],.input[type=radio]):focus-visible{border-color:var(--color-ring);--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(3px + 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);--tw-ring-color:var(--color-ring)}@supports (color:color-mix(in lab, red, red)){:is(.form input[type=radio],.input[type=radio]):focus-visible{--tw-ring-color:color-mix(in oklab,var(--color-ring)50%,transparent)}}:is(.form input[type=radio],.input[type=radio]):disabled{cursor:not-allowed;opacity:.5}:is(.form input[type=radio],.input[type=radio])[aria-invalid=true]{border-color:var(--color-destructive);--tw-ring-color:var(--color-destructive)}@supports (color:color-mix(in lab, red, red)){:is(.form input[type=radio],.input[type=radio])[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--color-destructive)20%,transparent)}}:is(.form input[type=radio],.input[type=radio]):is(.dark *){background-color:var(--color-input)}@supports (color:color-mix(in lab, red, red)){:is(.form input[type=radio],.input[type=radio]):is(.dark *){background-color:color-mix(in oklab,var(--color-input)30%,transparent)}}:is(.form input[type=radio],.input[type=radio]):is(.dark *)[aria-invalid=true]{--tw-ring-color:var(--color-destructive)}@supports (color:color-mix(in lab, red, red)){:is(.form input[type=radio],.input[type=radio]):is(.dark *)[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--color-destructive)40%,transparent)}}:is(.form input[type=radio],.input[type=radio]):checked:before{width:calc(var(--spacing)*2);height:calc(var(--spacing)*2);--tw-translate-x:calc(calc(1/2*100%)*-1);translate:var(--tw-translate-x)var(--tw-translate-y);--tw-translate-y:calc(calc(1/2*100%)*-1);translate:var(--tw-translate-x)var(--tw-translate-y);background-color:var(--color-primary);--tw-content:"";content:var(--tw-content);border-radius:3.40282e38px;position:absolute;top:50%;left:50%}.form input[type=range],.input[type=range]{appearance:none;padding:calc(var(--spacing)*0);--tw-outline-style:none;--slider-value:20%;outline-style:none;align-items:center;display:flex}:is(:is(.form input[type=range],.input[type=range]):hover,:is(.form input[type=range],.input[type=range]):focus-visible)::-webkit-slider-thumb{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(4px + 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)}:is(:is(.form input[type=range],.input[type=range]):hover,:is(.form input[type=range],.input[type=range]):focus-visible)::-moz-range-thumb{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(4px + 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)}:is(:is(.form input[type=range],.input[type=range]):hover,:is(.form input[type=range],.input[type=range]):focus-visible)::-ms-thumb{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(4px + 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)}:is(.form input[type=range],.input[type=range])::-webkit-slider-thumb{margin-top:calc(var(--spacing)*-1.25);width:calc(var(--spacing)*4);height:calc(var(--spacing)*4);appearance:none;border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-primary);background-color:var(--color-background);--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);--tw-ring-color:var(--color-ring);border-radius:3.40282e38px;flex-shrink:0;display:block}@supports (color:color-mix(in lab, red, red)){:is(.form input[type=range],.input[type=range])::-webkit-slider-thumb{--tw-ring-color:color-mix(in oklab,var(--color-ring)50%,transparent)}}:is(.form input[type=range],.input[type=range])::-webkit-slider-runnable-track{height:calc(var(--spacing)*1.5);appearance:none;background:linear-gradient(to right,var(--primary)var(--slider-value),var(--muted)var(--slider-value));border-radius:3.40282e38px;width:100%}:is(.form input[type=range],.input[type=range])::-moz-range-thumb{margin-top:calc(var(--spacing)*-1.25);width:calc(var(--spacing)*4);height:calc(var(--spacing)*4);appearance:none;border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-primary);background-color:var(--color-background);--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);--tw-ring-color:var(--color-ring);border-radius:3.40282e38px;flex-shrink:0;display:block}@supports (color:color-mix(in lab, red, red)){:is(.form input[type=range],.input[type=range])::-moz-range-thumb{--tw-ring-color:color-mix(in oklab,var(--color-ring)50%,transparent)}}:is(.form input[type=range],.input[type=range])::-moz-range-track{height:calc(var(--spacing)*1.5);appearance:none;background:linear-gradient(to right,var(--primary)var(--slider-value),var(--muted)var(--slider-value));border-radius:3.40282e38px;width:100%}:is(.form input[type=range],.input[type=range])::-ms-thumb{margin-top:calc(var(--spacing)*-1.25);width:calc(var(--spacing)*4);height:calc(var(--spacing)*4);appearance:none;border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-primary);background-color:var(--color-background);--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);--tw-ring-color:var(--color-ring);border-radius:3.40282e38px;flex-shrink:0;display:block}@supports (color:color-mix(in lab, red, red)){:is(.form input[type=range],.input[type=range])::-ms-thumb{--tw-ring-color:color-mix(in oklab,var(--color-ring)50%,transparent)}}:is(.form input[type=range],.input[type=range])::-ms-track{height:calc(var(--spacing)*1.5);appearance:none;border-radius:3.40282e38px;width:100%}:is(.form input[type=range],.input[type=range])::-ms-fill-lower{background-color:var(--color-primary);border-radius:3.40282e38px}:is(.form input[type=range],.input[type=range])::-ms-fill-upper{background-color:var(--color-muted);border-radius:3.40282e38px}.form select,select.select{height:calc(var(--spacing)*9);appearance:none;justify-content:space-between;align-items:center;gap:calc(var(--spacing)*2);border-radius:var(--radius-md);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-input);width:fit-content;padding-block:calc(var(--spacing)*2);padding-right:calc(var(--spacing)*9);padding-left:calc(var(--spacing)*3);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));white-space:nowrap;--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);transition-property:color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-outline-style:none;background-color:#0000;background-image:var(--chevron-down-icon-50);background-position:right .75rem center;background-repeat:no-repeat;background-size:1rem;outline-style:none;display:flex}:is(.form select,select.select):focus-visible{border-color:var(--color-ring);--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(3px + 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);--tw-ring-color:var(--color-ring)}@supports (color:color-mix(in lab, red, red)){:is(.form select,select.select):focus-visible{--tw-ring-color:color-mix(in oklab,var(--color-ring)50%,transparent)}}:is(.form select,select.select):disabled{cursor:not-allowed;opacity:.5}:is(.form select,select.select)[aria-invalid=true]{border-color:var(--color-destructive);--tw-ring-color:var(--color-destructive)}@supports (color:color-mix(in lab, red, red)){:is(.form select,select.select)[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--color-destructive)20%,transparent)}}:is(.form select,select.select):is(.dark *){background-color:var(--color-input)}@supports (color:color-mix(in lab, red, red)){:is(.form select,select.select):is(.dark *){background-color:color-mix(in oklab,var(--color-input)30%,transparent)}}@media (hover:hover){:is(.form select,select.select):is(.dark *):hover{background-color:var(--color-input)}@supports (color:color-mix(in lab, red, red)){:is(.form select,select.select):is(.dark *):hover{background-color:color-mix(in oklab,var(--color-input)50%,transparent)}}}:is(.form select,select.select):is(.dark *)[aria-invalid=true]{--tw-ring-color:var(--color-destructive)}@supports (color:color-mix(in lab, red, red)){:is(.form select,select.select):is(.dark *)[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--color-destructive)40%,transparent)}}:is(.form select,select.select) option,:is(.form select,select.select) optgroup{background-color:var(--color-popover);color:var(--color-popover-foreground)}:not(select).select{display:inline-flex;position:relative}:not(select).select [data-popover]{padding:calc(var(--spacing)*1)}:not(select).select [data-popover] [role=option]{cursor:default;align-items:center;gap:calc(var(--spacing)*2);text-overflow:ellipsis;white-space:nowrap;border-radius:var(--radius-sm);width:100%;padding-block:calc(var(--spacing)*1.5);padding-right:calc(var(--spacing)*7.5);padding-left:calc(var(--spacing)*2);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-outline-style:none;-webkit-user-select:none;user-select:none;outline-style:none;display:flex;position:relative;overflow:hidden}@media (forced-colors:active){:not(select).select [data-popover] [role=option]{outline-offset:2px;outline:2px solid #0000}}:not(select).select [data-popover] [role=option]:disabled,:not(select).select [data-popover] [role=option][aria-disabled=true]{pointer-events:none;opacity:.5}:not(select).select [data-popover] [role=option][aria-hidden=true]{display:none}:not(select).select [data-popover] [role=option] svg{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4);color:var(--color-muted-foreground);flex-shrink:0}:not(select).select [data-popover] [role=option][aria-selected=true]{background-image:var(--check-icon);background-position:right .5rem center;background-repeat:no-repeat;background-size:.875rem}:not(select).select [data-popover] [role=option].active,:not(select).select [data-popover] [role=option]:focus-visible{background-color:var(--color-accent);color:var(--color-accent-foreground)}:not(select).select [data-popover] [role=listbox] [role=heading]{padding-inline:calc(var(--spacing)*2);padding-block:calc(var(--spacing)*1.5);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));color:var(--color-muted-foreground);display:flex}:not(select).select [data-popover] [role=listbox] [role=group]:not(:has([role=option]:not([aria-hidden=true]))){display:none}:not(select).select [data-popover] [role=separator]{margin-inline:calc(var(--spacing)*-1);margin-block:calc(var(--spacing)*1);border-color:var(--color-border)}:not(select).select [data-popover]>header{margin-inline:calc(var(--spacing)*-1);margin-top:calc(var(--spacing)*-1);margin-bottom:calc(var(--spacing)*1);height:calc(var(--spacing)*9);align-items:center;gap:calc(var(--spacing)*2);border-bottom-style:var(--tw-border-style);padding-inline:calc(var(--spacing)*3);border-bottom-width:1px;display:flex}:not(select).select [data-popover]>header svg{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4);opacity:.5;flex-shrink:0}:not(select).select [data-popover]>header input[role=combobox]{height:calc(var(--spacing)*10);width:100%;min-width:calc(var(--spacing)*0);border-radius:var(--radius-md);padding-block:calc(var(--spacing)*3);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-outline-style:none;background-color:#0000;outline-style:none;flex:1;display:flex}@media (forced-colors:active){:not(select).select [data-popover]>header input[role=combobox]{outline-offset:2px;outline:2px solid #0000}}:not(select).select [data-popover]>header input[role=combobox]::placeholder{color:var(--color-muted-foreground)}:not(select).select [data-popover]>header input[role=combobox]:disabled{cursor:not-allowed;opacity:.5}:not(select).select [data-popover] [role=listbox]:not(:has([data-value]:not([aria-hidden=true]))):before{text-overflow:ellipsis;white-space:nowrap;padding:calc(var(--spacing)*6);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));justify-content:center;align-items:center;display:flex;overflow:hidden}:not(select).select [data-popover] [role=listbox][data-empty]:not(:has([data-value]:not([aria-hidden=true]))):before{--tw-content:attr(data-empty);content:var(--tw-content)}:not(select).select [data-popover] [role=listbox]:not([data-empty]):not(:has([data-value]:not([aria-hidden=true]))):before{--tw-content:"No results found";content:var(--tw-content)}@media (hover:hover){:not(select).select:not([data-select-initialized]) [data-popover] [role=option]:hover{background-color:var(--color-accent);color:var(--color-accent-foreground)}}.form input[type=checkbox][role=switch],.input[type=checkbox][role=switch]{height:1.15rem;width:calc(var(--spacing)*8);appearance:none;border-style:var(--tw-border-style);--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-outline-style:none;background-color:var(--color-input);border-width:1px;border-color:#0000;border-radius:3.40282e38px;outline-style:none;flex-shrink:0;align-items:center;display:inline-flex}:is(.form input[type=checkbox][role=switch],.input[type=checkbox][role=switch]):focus-visible{border-color:var(--color-ring);--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(3px + 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);--tw-ring-color:var(--color-ring)}@supports (color:color-mix(in lab, red, red)){:is(.form input[type=checkbox][role=switch],.input[type=checkbox][role=switch]):focus-visible{--tw-ring-color:color-mix(in oklab,var(--color-ring)50%,transparent)}}:is(.form input[type=checkbox][role=switch],.input[type=checkbox][role=switch]):disabled{cursor:not-allowed;opacity:.5}:is(.form input[type=checkbox][role=switch],.input[type=checkbox][role=switch]):checked{background-color:var(--color-primary)}:is(.form input[type=checkbox][role=switch],.input[type=checkbox][role=switch]):is(.dark *){background-color:var(--color-input)}@supports (color:color-mix(in lab, red, red)){:is(.form input[type=checkbox][role=switch],.input[type=checkbox][role=switch]):is(.dark *){background-color:color-mix(in oklab,var(--color-input)80%,transparent)}}:is(.form input[type=checkbox][role=switch],.input[type=checkbox][role=switch]):is(.dark *):checked{background-color:var(--color-primary)}:is(.form input[type=checkbox][role=switch],.input[type=checkbox][role=switch]):before{content:var(--tw-content);pointer-events:none;content:var(--tw-content);content:var(--tw-content);width:calc(var(--spacing)*4);height:calc(var(--spacing)*4);content:var(--tw-content);content:var(--tw-content);--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);content:var(--tw-content);transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));content:var(--tw-content);--tw-content:"";content:var(--tw-content);content:var(--tw-content);background-color:var(--color-background);border-radius:3.40282e38px;display:block}:is(.form input[type=checkbox][role=switch],.input[type=checkbox][role=switch]):is(.dark *):before{content:var(--tw-content);background-color:var(--color-foreground)}:is(.form input[type=checkbox][role=switch],.input[type=checkbox][role=switch]):checked:before{content:var(--tw-content);margin-inline-start:calc(var(--spacing)*3.5)}:is(.form input[type=checkbox][role=switch],.input[type=checkbox][role=switch]):is(.dark *):checked:before{content:var(--tw-content);background-color:var(--color-primary-foreground)}.table{caption-side:bottom;width:100%;font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.table thead tr{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.table tbody tr:last-child{border-style:var(--tw-border-style);border-width:0}.table tfoot{border-top-style:var(--tw-border-style);background-color:var(--color-muted);--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);border-top-width:1px}@supports (color:color-mix(in lab, red, red)){.table tfoot{background-color:color-mix(in oklab,var(--color-muted)50%,transparent)}}.table tfoot>tr:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.table tr{border-bottom-style:var(--tw-border-style);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));border-bottom-width:1px}@media (hover:hover){.table tr:hover{background-color:var(--color-muted)}@supports (color:color-mix(in lab, red, red)){.table tr:hover{background-color:color-mix(in oklab,var(--color-muted)50%,transparent)}}}.table th{height:calc(var(--spacing)*10);padding-inline:calc(var(--spacing)*2);text-align:left;vertical-align:middle;--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);white-space:nowrap;color:var(--color-foreground)}.table th:has([role=checkbox]){padding-right:calc(var(--spacing)*0)}.table th>[role=checkbox]{--tw-translate-y:2px;translate:var(--tw-translate-x)var(--tw-translate-y)}.table td{padding:calc(var(--spacing)*2);vertical-align:middle;white-space:nowrap}.table td:has([role=checkbox]){padding-right:calc(var(--spacing)*0)}.table td>[role=checkbox]{--tw-translate-y:2px;translate:var(--tw-translate-x)var(--tw-translate-y)}.table caption{margin-top:calc(var(--spacing)*4);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));color:var(--color-muted-foreground)}.tabs{gap:calc(var(--spacing)*2);flex-direction:column;display:flex}.tabs [role=tablist]{height:calc(var(--spacing)*9);border-radius:var(--radius-lg);background-color:var(--color-muted);width:fit-content;color:var(--color-muted-foreground);justify-content:center;align-items:center;padding:3px;display:inline-flex}.tabs [role=tablist] [role=tab]{justify-content:center;align-items:center;gap:calc(var(--spacing)*1.5);border-radius:var(--radius-md);border-style:var(--tw-border-style);height:calc(100% - 1px);padding-inline:calc(var(--spacing)*2);padding-block:calc(var(--spacing)*1);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);white-space:nowrap;color:var(--color-foreground);transition-property:color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));border-width:1px;border-color:#0000;flex:1;display:inline-flex}.tabs [role=tablist] [role=tab]:focus-visible{border-color:var(--color-ring);--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(3px + 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);--tw-ring-color:var(--color-ring)}@supports (color:color-mix(in lab, red, red)){.tabs [role=tablist] [role=tab]:focus-visible{--tw-ring-color:color-mix(in oklab,var(--color-ring)50%,transparent)}}.tabs [role=tablist] [role=tab]:focus-visible{outline-style:var(--tw-outline-style);outline-width:1px;outline-color:var(--color-ring)}.tabs [role=tablist] [role=tab]:disabled{pointer-events:none;opacity:.5}.tabs [role=tablist] [role=tab]:is(.dark *){color:var(--color-muted-foreground)}.tabs [role=tablist] [role=tab] svg{pointer-events:none;flex-shrink:0}.tabs [role=tablist] [role=tab] svg:not([class*=size-]){width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.tabs [role=tablist] [role=tab][aria-selected=true]{background-color:var(--color-background);--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)}.tabs [role=tablist] [role=tab][aria-selected=true]:is(.dark *){border-color:var(--color-input);background-color:var(--color-input)}@supports (color:color-mix(in lab, red, red)){.tabs [role=tablist] [role=tab][aria-selected=true]:is(.dark *){background-color:color-mix(in oklab,var(--color-input)30%,transparent)}}.tabs [role=tablist] [role=tab][aria-selected=true]:is(.dark *){color:var(--color-foreground)}.tabs [role=tabpanel]{--tw-outline-style:none;outline-style:none;flex:1}.form textarea,.textarea{field-sizing:content;min-height:calc(var(--spacing)*16);border-radius:var(--radius-md);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-input);width:100%;padding-inline:calc(var(--spacing)*3);padding-block:calc(var(--spacing)*2);font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height));--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);transition-property:color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-outline-style:none;background-color:#0000;outline-style:none;display:flex}:is(.form textarea,.textarea)::placeholder{color:var(--color-muted-foreground)}:is(.form textarea,.textarea):focus-visible{border-color:var(--color-ring);--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(3px + 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);--tw-ring-color:var(--color-ring)}@supports (color:color-mix(in lab, red, red)){:is(.form textarea,.textarea):focus-visible{--tw-ring-color:color-mix(in oklab,var(--color-ring)50%,transparent)}}:is(.form textarea,.textarea):disabled{cursor:not-allowed;opacity:.5}:is(.form textarea,.textarea)[aria-invalid=true]{border-color:var(--color-destructive);--tw-ring-color:var(--color-destructive)}@supports (color:color-mix(in lab, red, red)){:is(.form textarea,.textarea)[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--color-destructive)20%,transparent)}}@media (min-width:48rem){:is(.form textarea,.textarea){font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}:is(.form textarea,.textarea):is(.dark *){background-color:var(--color-input)}@supports (color:color-mix(in lab, red, red)){:is(.form textarea,.textarea):is(.dark *){background-color:color-mix(in oklab,var(--color-input)30%,transparent)}}:is(.form textarea,.textarea):is(.dark *)[aria-invalid=true]{--tw-ring-color:var(--color-destructive)}@supports (color:color-mix(in lab, red, red)){:is(.form textarea,.textarea):is(.dark *)[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--color-destructive)40%,transparent)}}.toaster{pointer-events:none;bottom:calc(var(--spacing)*0);z-index:50;width:100%;padding:calc(var(--spacing)*4);flex-direction:column-reverse;display:flex;position:fixed}@media (min-width:40rem){.toaster{max-width:calc(var(--spacing)*90)}}.toaster:not([data-align]),.toaster[data-align=end]{right:calc(var(--spacing)*0)}.toaster[data-align=start]{left:calc(var(--spacing)*0)}.toaster[data-align=center]{--tw-translate-x:calc(calc(1/2*100%)*-1);translate:var(--tw-translate-x)var(--tw-translate-y);left:50%}.toaster .toast{pointer-events:auto;margin-top:calc(var(--spacing)*4);width:100%;transition-property:grid-template-rows,opacity,margin;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.3s;--tw-ease:var(--ease-in-out);transition-duration:.3s;transition-timing-function:var(--ease-in-out);grid-template-rows:1fr;animation:.3s ease-in-out toast-up;display:grid}.toaster .toast .toast-content{align-items:center;gap:calc(var(--spacing)*2.5);border-radius:var(--radius-lg);border-style:var(--tw-border-style);background-color:var(--color-popover);padding:calc(var(--spacing)*3);color:var(--color-popover-foreground);--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);border-width:1px;font-size:13px;display:flex;overflow:hidden}.toaster .toast .toast-content svg{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4);flex-shrink:0}.toaster .toast .toast-content section h2{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.toaster .toast .toast-content section p{color:var(--color-muted-foreground)}.toaster .toast .toast-content footer{gap:calc(var(--spacing)*2);flex-direction:column;margin-left:auto;display:flex}.toaster .toast .toast-content footer [data-toast-action],.toaster .toast .toast-content footer [data-toast-cancel]{height:calc(var(--spacing)*6);padding-inline:calc(var(--spacing)*2.5);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.toaster .toast[aria-hidden=true]{margin:calc(var(--spacing)*0);border-style:var(--tw-border-style);padding:calc(var(--spacing)*0);opacity:0;border-width:0;grid-template-rows:0fr;overflow:hidden}.toaster .toast[aria-hidden=true] .toast-content{border-style:var(--tw-border-style);border-width:0}[data-tooltip]{position:relative}[data-tooltip]:before{pointer-events:none;visibility:hidden;z-index:50;width:fit-content;max-width:var(--container-xs);--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x)var(--tw-scale-y);text-overflow:ellipsis;white-space:nowrap;border-radius:var(--radius-md);background-color:var(--color-primary);padding-inline:calc(var(--spacing)*3);padding-block:calc(var(--spacing)*1.5);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));color:var(--color-primary-foreground);opacity:0;transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-content:attr(data-tooltip);content:var(--tw-content);position:absolute;overflow:hidden}[data-tooltip]:hover:before{visibility:visible;--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y);opacity:1}[data-tooltip]:focus-visible:not(:hover):before{display:none}:is([data-tooltip]:not([data-side]),[data-tooltip][data-side=top]):before{content:var(--tw-content);content:var(--tw-content);margin-bottom:calc(var(--spacing)*1.5);content:var(--tw-content);--tw-translate-y:calc(var(--spacing)*2);translate:var(--tw-translate-x)var(--tw-translate-y);bottom:100%}@media (hover:hover){:is([data-tooltip]:not([data-side]),[data-tooltip][data-side=top]):hover:before{content:var(--tw-content);--tw-translate-y:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}}[data-tooltip][data-side=bottom]:before{content:var(--tw-content);content:var(--tw-content);margin-top:calc(var(--spacing)*1.5);content:var(--tw-content);--tw-translate-y:calc(var(--spacing)*-2);translate:var(--tw-translate-x)var(--tw-translate-y);top:100%}@media (hover:hover){[data-tooltip][data-side=bottom]:hover:before{content:var(--tw-content);--tw-translate-y:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}}:is([data-tooltip]:not([data-side]),[data-tooltip][data-side=top],[data-tooltip][data-side=bottom])[data-align=start]:before{content:var(--tw-content);left:calc(var(--spacing)*0)}:is([data-tooltip]:not([data-side]),[data-tooltip][data-side=top],[data-tooltip][data-side=bottom])[data-align=end]:before{content:var(--tw-content);right:calc(var(--spacing)*0)}:is(:is([data-tooltip]:not([data-side]),[data-tooltip][data-side=top],[data-tooltip][data-side=bottom]):not([data-align]),:is([data-tooltip]:not([data-side]),[data-tooltip][data-side=top],[data-tooltip][data-side=bottom])[data-align=center]):before{content:var(--tw-content);content:var(--tw-content);--tw-translate-x:calc(calc(1/2*100%)*-1);translate:var(--tw-translate-x)var(--tw-translate-y);left:50%}[data-tooltip][data-side=left]:before{content:var(--tw-content);content:var(--tw-content);margin-right:calc(var(--spacing)*1.5);content:var(--tw-content);--tw-translate-x:calc(var(--spacing)*2);translate:var(--tw-translate-x)var(--tw-translate-y);right:100%}@media (hover:hover){[data-tooltip][data-side=left]:hover:before{content:var(--tw-content);--tw-translate-x:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}}[data-tooltip][data-side=right]:before{content:var(--tw-content);content:var(--tw-content);margin-left:calc(var(--spacing)*1.5);content:var(--tw-content);--tw-translate-x:calc(var(--spacing)*-2);translate:var(--tw-translate-x)var(--tw-translate-y);left:100%}@media (hover:hover){[data-tooltip][data-side=right]:hover:before{content:var(--tw-content);--tw-translate-x:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}}:is([data-tooltip][data-side=left],[data-tooltip][data-side=right])[data-align=start]:before{content:var(--tw-content);top:calc(var(--spacing)*0)}:is([data-tooltip][data-side=left],[data-tooltip][data-side=right])[data-align=end]:before{content:var(--tw-content);bottom:calc(var(--spacing)*0)}:is(:is([data-tooltip][data-side=left],[data-tooltip][data-side=right]):not([data-align]),:is([data-tooltip][data-side=left],[data-tooltip][data-side=right])[data-align=center]):before{content:var(--tw-content);content:var(--tw-content);--tw-translate-y:calc(calc(1/2*100%)*-1);translate:var(--tw-translate-x)var(--tw-translate-y);top:50%}}@layer utilities{.pointer-events-none{pointer-events:none}.invisible{visibility:hidden}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing)*0)}.inset-x-0{inset-inline:calc(var(--spacing)*0)}.top-0{top:calc(var(--spacing)*0)}.top-1\/2{top:50%}.top-2{top:calc(var(--spacing)*2)}.top-22{top:calc(var(--spacing)*22)}.right-2\.5{right:calc(var(--spacing)*2.5)}.left-1\/2{left:50%}.left-2{left:calc(var(--spacing)*2)}.isolate{isolation:isolate}.z-10{z-index:10}.col-span-2{grid-column:span 2/span 2}.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-auto{margin-inline:auto}.my-4{margin-block:calc(var(--spacing)*4)}.my-6{margin-block:calc(var(--spacing)*6)}.mt-4{margin-top:calc(var(--spacing)*4)}.mt-6{margin-top:calc(var(--spacing)*6)}.mt-8{margin-top:calc(var(--spacing)*8)}.mr-auto{margin-right:auto}.mb-4{margin-bottom:calc(var(--spacing)*4)}.mb-6{margin-bottom:calc(var(--spacing)*6)}.mb-8{margin-bottom:calc(var(--spacing)*8)}.mb-12{margin-bottom:calc(var(--spacing)*12)}.-ml-1\.5{margin-left:calc(var(--spacing)*-1.5)}.ml-auto{margin-left:auto}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.aspect-square{aspect-ratio:1}.aspect-video{aspect-ratio:var(--aspect-video)}.size-2{width:calc(var(--spacing)*2);height:calc(var(--spacing)*2)}.size-2\.5{width:calc(var(--spacing)*2.5);height:calc(var(--spacing)*2.5)}.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-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)}.size-12{width:calc(var(--spacing)*12);height:calc(var(--spacing)*12)}.h-4{height:calc(var(--spacing)*4)}.h-6{height:calc(var(--spacing)*6)}.h-8{height:calc(var(--spacing)*8)}.h-10{height:calc(var(--spacing)*10)}.h-12{height:calc(var(--spacing)*12)}.h-14{height:calc(var(--spacing)*14)}.max-h-64{max-height:calc(var(--spacing)*64)}.max-h-\[150px\]{max-height:150px}.max-h-\[200px\]{max-height:200px}.max-h-\[612px\]{max-height:612px}.max-h-\[650px\]{max-height:650px}.min-h-\[350px\]{min-height:350px}.w-1\/2{width:50%}.w-2\/3{width:66.6667%}.w-4{width:calc(var(--spacing)*4)}.w-10{width:calc(var(--spacing)*10)}.w-48{width:calc(var(--spacing)*48)}.w-72{width:calc(var(--spacing)*72)}.w-80{width:calc(var(--spacing)*80)}.w-\[100px\]{width:100px}.w-\[150px\]{width:150px}.w-\[180px\]{width:180px}.w-\[200px\]{width:200px}.w-\[271px\]{width:271px}.w-full{width:100%}.w-max{width:max-content}.max-w-\[75\%\]{max-width:75%}.max-w-\[200px\]{max-width:200px}.max-w-\[300px\]{max-width:300px}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-screen-lg{max-width:var(--breakpoint-lg)}.max-w-screen-md{max-width:var(--breakpoint-md)}.max-w-sm{max-width:var(--container-sm)}.max-w-xl{max-width:var(--container-xl)}.min-w-5{min-width:calc(var(--spacing)*5)}.min-w-32{min-width:calc(var(--spacing)*32)}.min-w-56{min-width:calc(var(--spacing)*56)}.min-w-\[8rem\]{min-width:8rem}.flex-1{flex:1}.shrink-0{flex-shrink:0}.-translate-x-1\/2{--tw-translate-x:calc(calc(1/2*100%)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1/2*100%)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-0\.5{--tw-translate-y:calc(var(--spacing)*.5);translate:var(--tw-translate-x)var(--tw-translate-y)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-pointer{cursor:pointer}.scroll-m-20{scroll-margin:calc(var(--spacing)*20)}.scroll-mt-14{scroll-margin-top:calc(var(--spacing)*14)}.scroll-mt-16{scroll-margin-top:calc(var(--spacing)*16)}.list-decimal{list-style-type:decimal}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-start{justify-content:flex-start}.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-4{gap:calc(var(--spacing)*4)}.gap-6{gap:calc(var(--spacing)*6)}.gap-8{gap:calc(var(--spacing)*8)}.gap-10{gap:calc(var(--spacing)*10)}: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-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2)*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)))}.gap-x-1\.5{column-gap:calc(var(--spacing)*1.5)}.gap-x-2{column-gap:calc(var(--spacing)*2)}.gap-x-10{column-gap:calc(var(--spacing)*10)}:where(.-space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*-2)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*-2)*calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*2)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-x-reverse)))}.gap-y-4{row-gap:calc(var(--spacing)*4)}.gap-y-6{row-gap:calc(var(--spacing)*6)}.gap-y-10{row-gap:calc(var(--spacing)*10)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-\[2px\]{border-radius:2px}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-amber-50{border-color:var(--color-amber-50)}.border-border\/50{border-color:var(--color-border)}@supports (color:color-mix(in lab, red, red)){.border-border\/50{border-color:color-mix(in oklab,var(--color-border)50%,transparent)}}.border-muted{border-color:var(--color-muted)}.\!bg-muted{background-color:var(--color-muted)!important}.bg-accent{background-color:var(--color-accent)}.bg-amber-50{background-color:var(--color-amber-50)}.bg-background{background-color:var(--color-background)}.bg-card{background-color:var(--color-card)}.bg-foreground{background-color:var(--color-foreground)}.bg-muted{background-color:var(--color-muted)}.bg-primary{background-color:var(--color-primary)}.bg-sidebar-primary{background-color:var(--color-sidebar-primary)}.object-cover{object-fit:cover}.\!p-3\.5{padding:calc(var(--spacing)*3.5)!important}.p-1{padding:calc(var(--spacing)*1)}.p-2{padding:calc(var(--spacing)*2)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.p-10{padding:calc(var(--spacing)*10)}.px-0{padding-inline:calc(var(--spacing)*0)}.px-1{padding-inline:calc(var(--spacing)*1)}.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-4{padding-inline:calc(var(--spacing)*4)}.px-\[0\.3rem\]{padding-inline:.3rem}.py-1\.5{padding-block:calc(var(--spacing)*1.5)}.py-2{padding-block:calc(var(--spacing)*2)}.py-3{padding-block:calc(var(--spacing)*3)}.py-4{padding-block:calc(var(--spacing)*4)}.py-\[0\.2rem\]{padding-block:.2rem}.pt-2{padding-top:calc(var(--spacing)*2)}.pb-4{padding-bottom:calc(var(--spacing)*4)}.pb-12{padding-bottom:calc(var(--spacing)*12)}.pl-6{padding-left:calc(var(--spacing)*6)}.pl-8{padding-left:calc(var(--spacing)*8)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--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-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[1\.05rem\]{font-size:1.05rem}.leading-none{--tw-leading:1;line-height:1}.leading-normal{--tw-leading:var(--leading-normal);line-height:var(--leading-normal)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.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-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.break-words{overflow-wrap:break-word}.whitespace-pre-wrap{white-space:pre-wrap}.text-amber-900{color:var(--color-amber-900)}.text-destructive{color:var(--color-destructive)}.text-foreground{color:var(--color-foreground)}.text-muted-foreground{color:var(--color-muted-foreground)}.text-primary-foreground{color:var(--color-primary-foreground)}.text-sidebar-primary-foreground{color:var(--color-sidebar-primary-foreground)}.uppercase{text-transform:uppercase}.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,)}.underline{text-decoration-line:underline}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-100{opacity:1}.shadow-none{--tw-shadow:0 0 #0000;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-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-offset-background{--tw-ring-offset-color:var(--color-background)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.transition-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-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-200{--tw-duration:.2s;transition-duration:.2s}.duration-400{--tw-duration:.4s;transition-duration:.4s}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.group-open\:rotate-180:is(:where(.group):is([open],:popover-open,:open) *){rotate:180deg}.group-aria-checked\:visible:is(:where(.group)[aria-checked=true] *){visibility:visible}.group-\[\.copied\]\:block:is(:where(.group).copied *){display:block}.group-\[\.copied\]\:hidden:is(:where(.group).copied *){display:none}.peer-checked\:border-primary:is(:where(.peer):checked~*){border-color:var(--color-primary)}.last\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.checked\:border-blue-600:checked{border-color:var(--color-blue-600)}.checked\:border-green-600:checked{border-color:var(--color-green-600)}.checked\:bg-blue-500:checked{background-color:var(--color-blue-500)}.checked\:bg-blue-600:checked{background-color:var(--color-blue-600)}.checked\:bg-green-600:checked{background-color:var(--color-green-600)}.checked\:before\:bg-background:checked:before{content:var(--tw-content);background-color:var(--color-background)}.checked\:after\:bg-white:checked:after{content:var(--tw-content);background-color:var(--color-white)}@media (hover:hover){:where(.hover\:space-x-1:hover>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*1)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*1)*calc(1 - var(--tw-space-x-reverse)))}.hover\:bg-accent\/50:hover{background-color:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-accent\/50:hover{background-color:color-mix(in oklab,var(--color-accent)50%,transparent)}}.hover\:bg-destructive\/10:hover{background-color:var(--color-destructive)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-destructive\/10:hover{background-color:color-mix(in oklab,var(--color-destructive)10%,transparent)}}.hover\:bg-muted:hover{background-color:var(--color-muted)}.hover\:text-foreground:hover{color:var(--color-foreground)}.hover\:underline:hover{text-decoration-line:underline}}.focus\:bg-destructive\/10:focus{background-color:var(--color-destructive)}@supports (color:color-mix(in lab, red, red)){.focus\:bg-destructive\/10:focus{background-color:color-mix(in oklab,var(--color-destructive)10%,transparent)}}.focus\:text-destructive:focus{color:var(--color-destructive)}.focus-visible\:border-ring:focus-visible{border-color:var(--color-ring)}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + 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-visible\:ring-\[3px\]:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(3px + 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-visible\:ring-ring:focus-visible,.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:var(--color-ring)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:color-mix(in oklab,var(--color-ring)50%,transparent)}}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.has-\[input\[type\=\'checkbox\'\]\:checked\]\:border-blue-600:has(:is(input[type=checkbox]:checked)){border-color:var(--color-blue-600)}.has-\[input\[type\=\'checkbox\'\]\:checked\]\:bg-blue-50:has(:is(input[type=checkbox]:checked)){background-color:var(--color-blue-50)}.has-\[input\[type\=\'radio\'\]\:checked\]\:border-green-600:has(:is(input[type=radio]:checked)){border-color:var(--color-green-600)}.has-\[input\[type\=\'radio\'\]\:checked\]\:bg-green-50:has(:is(input[type=radio]:checked)){background-color:var(--color-green-50)}@media not all and (min-width:40rem){.max-sm\:flex-col{flex-direction:column}}@media (min-width:40rem){.sm\:max-w-\[425px\]{max-width:425px}.sm\:gap-2\.5{gap:calc(var(--spacing)*2.5)}.sm\:text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.sm\:text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.sm\:text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}}@media (min-width:48rem){.md\:ml-4{margin-left:calc(var(--spacing)*4)}.md\:w-\[239px\]{width:239px}.md\:max-w-\[200px\]{max-width:200px}.md\:flex-row{flex-direction:row}.md\:border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.md\:p-6{padding:calc(var(--spacing)*6)}.md\:pl-8{padding-left:calc(var(--spacing)*8)}.md\:text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}}@media (min-width:64rem){.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:80rem){.xl\:block{display:block}.xl\:p-12{padding:calc(var(--spacing)*12)}.xl\:text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}}@container (min-width:28rem){.\@md\:w-auto{width:auto}.\@md\:min-w-sm{min-width:var(--container-sm)}}.dark\:block:is(.dark *){display:block}.dark\:hidden:is(.dark *){display:none}.dark\:border-amber-950:is(.dark *){border-color:var(--color-amber-950)}.dark\:bg-amber-950:is(.dark *){background-color:var(--color-amber-950)}.dark\:text-amber-100:is(.dark *){color:var(--color-amber-100)}.dark\:checked\:border-blue-700:is(.dark *):checked{border-color:var(--color-blue-700)}.dark\:checked\:bg-blue-600:is(.dark *):checked{background-color:var(--color-blue-600)}.dark\:checked\:bg-blue-700:is(.dark *):checked{background-color:var(--color-blue-700)}.dark\:checked\:bg-input\/30:is(.dark *):checked{background-color:var(--color-input)}@supports (color:color-mix(in lab, red, red)){.dark\:checked\:bg-input\/30:is(.dark *):checked{background-color:color-mix(in oklab,var(--color-input)30%,transparent)}}.dark\:checked\:before\:bg-primary:is(.dark *):checked:before{content:var(--tw-content);background-color:var(--color-primary)}@media (hover:hover){.dark\:hover\:bg-destructive\/20:is(.dark *):hover{background-color:var(--color-destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-destructive\/20:is(.dark *):hover{background-color:color-mix(in oklab,var(--color-destructive)20%,transparent)}}}.dark\:focus\:bg-destructive\/20:is(.dark *):focus{background-color:var(--color-destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:focus\:bg-destructive\/20:is(.dark *):focus{background-color:color-mix(in oklab,var(--color-destructive)20%,transparent)}}.dark\:has-\[input\[type\=\'checkbox\'\]\:checked\]\:border-blue-900:is(.dark *):has(:is(input[type=checkbox]:checked)){border-color:var(--color-blue-900)}.dark\:has-\[input\[type\=\'checkbox\'\]\:checked\]\:bg-blue-950:is(.dark *):has(:is(input[type=checkbox]:checked)){background-color:var(--color-blue-950)}.dark\:has-\[input\[type\=\'radio\'\]\:checked\]\:border-green-900:is(.dark *):has(:is(input[type=radio]:checked)){border-color:var(--color-green-900)}.dark\:has-\[input\[type\=\'radio\'\]\:checked\]\:bg-green-950:is(.dark *):has(:is(input[type=radio]:checked)){background-color:var(--color-green-950)}.\[\&_a\]\:inline-block a{display:inline-block}.\[\&_a\]\:text-muted-foreground a{color:var(--color-muted-foreground)}.\[\&_a\]\:no-underline a{text-decoration-line:none}.\[\&_a\]\:transition-colors a{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))}@media (hover:hover){.\[\&_a\]\:hover\:text-foreground a:hover{color:var(--color-foreground)}}.\[\&_img\]\:size-8 img{width:calc(var(--spacing)*8);height:calc(var(--spacing)*8)}.\[\&_img\]\:size-12 img{width:calc(var(--spacing)*12);height:calc(var(--spacing)*12)}.\[\&_img\]\:shrink-0 img{flex-shrink:0}.\[\&_img\]\:rounded-full img{border-radius:3.40282e38px}.\[\&_img\]\:object-cover img{object-fit:cover}.\[\&_img\]\:ring-2 img{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + 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)}.\[\&_img\]\:ring-background img{--tw-ring-color:var(--color-background)}.\[\&_img\]\:ring-card img{--tw-ring-color:var(--color-card)}.\[\&_img\]\:grayscale img{--tw-grayscale:grayscale(100%);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,)}.\[\&_img\]\:transition-all img{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.\[\&_img\]\:duration-300 img{--tw-duration:.3s;transition-duration:.3s}.\[\&_img\]\:ease-in-out img{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.\[\&_li\]\:mt-0 li{margin-top:calc(var(--spacing)*0)}.\[\&_li\]\:pt-2 li{padding-top:calc(var(--spacing)*2)}.\[\&_svg\]\:\!text-destructive svg{color:var(--color-destructive)!important}.\[\&_ul\]\:m-0 ul{margin:calc(var(--spacing)*0)}.\[\&_ul\]\:list-none ul{list-style-type:none}.\[\&_ul_ul\]\:pl-4 ul ul{padding-left:calc(var(--spacing)*4)}@media (min-width:48rem){:is(.md\:\*\:\[\.card\]\:basis-1\/4>*).card{flex-basis:25%}}.\[\&\>svg\]\:mb-3>svg{margin-bottom:calc(var(--spacing)*3)}.\[\&\>svg\]\:size-6>svg{width:calc(var(--spacing)*6);height:calc(var(--spacing)*6)}}:root{--radius:.625rem;--background:oklch(1 0 0);--foreground:oklch(.145 0 0);--card:oklch(1 0 0);--card-foreground:oklch(.145 0 0);--popover:oklch(1 0 0);--popover-foreground:oklch(.145 0 0);--primary:oklch(.205 0 0);--primary-foreground:oklch(.985 0 0);--secondary:oklch(.97 0 0);--secondary-foreground:oklch(.205 0 0);--muted:oklch(.97 0 0);--muted-foreground:oklch(.556 0 0);--accent:oklch(.97 0 0);--accent-foreground:oklch(.205 0 0);--destructive:oklch(.577 .245 27.325);--border:oklch(.922 0 0);--input:oklch(.922 0 0);--ring:oklch(.708 0 0);--chart-1:oklch(.646 .222 41.116);--chart-2:oklch(.6 .118 184.704);--chart-3:oklch(.398 .07 227.392);--chart-4:oklch(.828 .189 84.429);--chart-5:oklch(.769 .188 70.08);--sidebar:oklch(.985 0 0);--sidebar-foreground:oklch(.145 0 0);--sidebar-primary:oklch(.205 0 0);--sidebar-primary-foreground:oklch(.985 0 0);--sidebar-accent:oklch(.97 0 0);--sidebar-accent-foreground:oklch(.205 0 0);--sidebar-border:oklch(.922 0 0);--sidebar-ring:oklch(.708 0 0);--sidebar-width:16rem;--sidebar-mobile-width:18rem;--scrollbar-track:transparent;--scrollbar-thumb:#0000004d;--scrollbar-width:6px;--scrollbar-radius:6px;--chevron-down-icon:url("data:image/svg+xml;utf8,");--chevron-down-icon-50:url("data:image/svg+xml;utf8,");--check-icon:url("data:image/svg+xml;utf8,")}.dark{--background:oklch(.145 0 0);--foreground:oklch(.985 0 0);--card:oklch(.205 0 0);--card-foreground:oklch(.985 0 0);--popover:oklch(.269 0 0);--popover-foreground:oklch(.985 0 0);--primary:oklch(.922 0 0);--primary-foreground:oklch(.205 0 0);--secondary:oklch(.269 0 0);--secondary-foreground:oklch(.985 0 0);--muted:oklch(.269 0 0);--muted-foreground:oklch(.708 0 0);--accent:oklch(.371 0 0);--accent-foreground:oklch(.985 0 0);--destructive:oklch(.704 .191 22.216);--border:oklch(1 0 0/10%);--input:oklch(1 0 0/15%);--ring:oklch(.556 0 0);--chart-1:oklch(.488 .243 264.376);--chart-2:oklch(.696 .17 162.48);--chart-3:oklch(.769 .188 70.08);--chart-4:oklch(.627 .265 303.9);--chart-5:oklch(.645 .246 16.439);--sidebar:oklch(.205 0 0);--sidebar-foreground:oklch(.985 0 0);--sidebar-primary:oklch(.488 .243 264.376);--sidebar-primary-foreground:oklch(.985 0 0);--sidebar-accent:oklch(.269 0 0);--sidebar-accent-foreground:oklch(.985 0 0);--sidebar-border:oklch(1 0 0/10%);--sidebar-ring:oklch(.439 0 0);--scrollbar-thumb:#ffffff4d;--chevron-down-icon:url("data:image/svg+xml;utf8,");--chevron-down-icon-50:url("data:image/svg+xml;utf8,");--check-icon:url("data:image/svg+xml;utf8,");color-scheme:dark}@media not all and (min-width:48rem){.sidebar:not([data-sidebar-initialized]){display:none}:is(.sidebar:not([aria-hidden]),.sidebar[aria-hidden=false]){inset:calc(var(--spacing)*0);z-index:40;background-color:#00000080;position:fixed}@supports (color:color-mix(in lab, red, red)){:is(.sidebar:not([aria-hidden]),.sidebar[aria-hidden=false]){background-color:color-mix(in oklab,var(--color-black)50%,transparent)}}}.sidebar nav{inset-block:calc(var(--spacing)*0);z-index:50;width:var(--sidebar-mobile-width);background-color:var(--color-sidebar);color:var(--color-sidebar-foreground);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));--tw-duration:.3s;--tw-ease:var(--ease-in-out);transition-duration:.3s;transition-timing-function:var(--ease-in-out);flex-direction:column;display:flex;position:fixed}@media (min-width:48rem){.sidebar nav{width:var(--sidebar-width)}}.sidebar+*{transition-property:margin;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.3s;--tw-ease:var(--ease-in-out);transition-duration:.3s;transition-timing-function:var(--ease-in-out)}:is(.sidebar:not([data-side]),.sidebar[data-side=left]) nav{left:calc(var(--spacing)*0);border-right-style:var(--tw-border-style);border-right-width:1px}:is(.sidebar:not([data-side]),.sidebar[data-side=left])+*{position:relative}@media (min-width:48rem){:is(.sidebar:not([data-side]),.sidebar[data-side=left])+*{margin-left:var(--sidebar-width)}}:is(.sidebar:not([data-side]),.sidebar[data-side=left])[aria-hidden=true] nav{--tw-translate-x:-100%;translate:var(--tw-translate-x)var(--tw-translate-y)}@media (min-width:48rem){:is(.sidebar:not([data-side]),.sidebar[data-side=left])[aria-hidden=true]+*{margin-left:calc(var(--spacing)*0)}}.sidebar[data-side=right] nav{right:calc(var(--spacing)*0);border-left-style:var(--tw-border-style);border-left-width:1px}.sidebar[data-side=right]+*{position:relative}@media (min-width:48rem){.sidebar[data-side=right]+*{margin-right:var(--sidebar-width)}}.sidebar[data-side=right][aria-hidden=true] nav{--tw-translate-x:100%;translate:var(--tw-translate-x)var(--tw-translate-y)}@media (min-width:48rem){.sidebar[data-side=right][aria-hidden=true]+*{margin-right:calc(var(--spacing)*0)}}.sidebar nav>header,.sidebar nav>footer{gap:calc(var(--spacing)*2);padding:calc(var(--spacing)*2);flex-direction:column;display:flex}.sidebar nav [role=separator]{margin-inline:calc(var(--spacing)*2);border-color:var(--color-sidebar-border);width:auto}.sidebar nav>section{min-height:calc(var(--spacing)*0);gap:calc(var(--spacing)*2);flex-direction:column;flex:1;display:flex;overflow-y:auto}.sidebar nav>section>[role=group]{width:100%;min-width:calc(var(--spacing)*0);padding:calc(var(--spacing)*2);flex-direction:column;display:flex;position:relative}.sidebar nav>section h3{height:calc(var(--spacing)*8);border-radius:var(--radius-md);padding-inline:calc(var(--spacing)*2);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);color:var(--color-sidebar-foreground);--tw-ring-color:var(--color-sidebar-ring);--tw-outline-style:none;transition-property:margin,opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.2s;--tw-ease:linear;outline-style:none;flex-shrink:0;align-items:center;transition-duration:.2s;transition-timing-function:linear;display:flex}@supports (color:color-mix(in lab, red, red)){.sidebar nav>section h3{color:color-mix(in oklab,var(--color-sidebar-foreground)70%,transparent)}}@media (forced-colors:active){.sidebar nav>section h3{outline-offset:2px;outline:2px solid #0000}}.sidebar nav>section h3:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + 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)}.sidebar nav>section h3>svg{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4);flex-shrink:0}.sidebar nav>section ul{width:100%;min-width:calc(var(--spacing)*0);gap:calc(var(--spacing)*1);flex-direction:column;display:flex}.sidebar nav>section ul li{position:relative}.sidebar nav>section ul li>a,.sidebar nav>section ul li>details>summary{align-items:center;gap:calc(var(--spacing)*2);border-radius:var(--radius-md);width:100%;padding:calc(var(--spacing)*2);text-align:left;font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-ring-color:var(--color-sidebar-ring);--tw-outline-style:none;transition-property:width,height,padding;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));outline-style:none;display:flex;overflow:hidden}@media (forced-colors:active){:is(.sidebar nav>section ul li>a,.sidebar nav>section ul li>details>summary){outline-offset:2px;outline:2px solid #0000}}@media (hover:hover){:is(.sidebar nav>section ul li>a,.sidebar nav>section ul li>details>summary):hover{background-color:var(--color-sidebar-accent);color:var(--color-sidebar-accent-foreground)}}:is(.sidebar nav>section ul li>a,.sidebar nav>section ul li>details>summary):focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + 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)}:is(.sidebar nav>section ul li>a,.sidebar nav>section ul li>details>summary):active{background-color:var(--color-sidebar-accent);color:var(--color-sidebar-accent-foreground)}:is(.sidebar nav>section ul li>a,.sidebar nav>section ul li>details>summary):disabled,:is(.sidebar nav>section ul li>a,.sidebar nav>section ul li>details>summary)[aria-disabled=true]{pointer-events:none;opacity:.5}:is(.sidebar nav>section ul li>a,.sidebar nav>section ul li>details>summary)>span:last-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}:is(.sidebar nav>section ul li>a,.sidebar nav>section ul li>details>summary)>svg{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4);flex-shrink:0}:is(.sidebar nav>section ul li>a,.sidebar nav>section ul li>details>summary)[aria-current=page]{background-color:var(--color-sidebar-accent);--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);color:var(--color-sidebar-accent-foreground)}@media (hover:hover){:is(:is(.sidebar nav>section ul li>a,.sidebar nav>section ul li>details>summary):not([data-variant]),:is(.sidebar nav>section ul li>a,.sidebar nav>section ul li>details>summary)[data-variant=default]):hover{background-color:var(--color-sidebar-accent);color:var(--color-sidebar-accent-foreground)}}:is(.sidebar nav>section ul li>a,.sidebar nav>section ul li>details>summary)[data-variant=outline]{background-color:var(--color-background);--tw-shadow:0 0 0 1px var(--tw-shadow-color,hsl(var(--sidebar-border)));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}@media (hover:hover){:is(.sidebar nav>section ul li>a,.sidebar nav>section ul li>details>summary)[data-variant=outline]:hover{background-color:var(--color-sidebar-accent);color:var(--color-sidebar-accent-foreground);--tw-shadow:0 0 0 1px var(--tw-shadow-color,hsl(var(--sidebar-accent)));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}:is(.sidebar nav>section ul li>a,.sidebar nav>section ul li>details>summary):not([data-size]),:is(.sidebar nav>section ul li>a,.sidebar nav>section ul li>details>summary)[data-size=default]{height:calc(var(--spacing)*8);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}:is(.sidebar nav>section ul li>a,.sidebar nav>section ul li>details>summary)[data-size=sm]{height:calc(var(--spacing)*7);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}:is(.sidebar nav>section ul li>a,.sidebar nav>section ul li>details>summary)[data-size=lg]{height:calc(var(--spacing)*12);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}:is(.sidebar nav>section ul li>a,.sidebar nav>section ul li>details>summary)[data-size=lg]:is(:where(.group)[data-collapsible=icon] *){padding:calc(var(--spacing)*0)!important}.sidebar nav>section ul li>details:not([open])>summary:after{rotate:-90deg}.sidebar nav>section ul li>details>summary:after{width:calc(var(--spacing)*3.5);height:calc(var(--spacing)*3.5);background-color:var(--color-primary);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));--tw-ease:linear;--tw-content:"";content:var(--tw-content);-webkit-mask-image:var(--chevron-down-icon);-webkit-mask-image:var(--chevron-down-icon);mask-image:var(--chevron-down-icon);margin-left:auto;transition-timing-function:linear;display:block;-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:1rem;mask-size:1rem;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.sidebar nav>section ul li>details::details-content{padding-inline:calc(var(--spacing)*3.5)}.sidebar nav>section ul ul{width:100%;min-width:calc(var(--spacing)*0);--tw-translate-x:1px;translate:var(--tw-translate-x)var(--tw-translate-y);gap:calc(var(--spacing)*1);border-left-style:var(--tw-border-style);border-left-width:1px;border-color:var(--color-sidebar-border);padding-inline:calc(var(--spacing)*2.5);padding-block:calc(var(--spacing)*.5);flex-direction:column;display:flex}@keyframes toast-up{0%{opacity:0;transform:translateY(100%)}}.htmx-indicator{visibility:hidden;opacity:0;transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));transition-behavior:allow-discrete}.htmx-indicator:not(.htmx-request){display:none}.htmx-request,.htmx-request.htmx-indicator{visibility:visible;opacity:1}.content>h2{margin-top:calc(var(--spacing)*12);margin-bottom:calc(var(--spacing)*6);scroll-margin:calc(var(--spacing)*22);font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.content>h2:first-child{margin-top:calc(var(--spacing)*0)}@media (min-width:64rem){.content>h2{margin-top:calc(var(--spacing)*20)}}.content>h3{margin-top:calc(var(--spacing)*8);margin-bottom:calc(var(--spacing)*6);scroll-margin:calc(var(--spacing)*22);font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.content>h4{margin-block:calc(var(--spacing)*6);scroll-margin:calc(var(--spacing)*22);--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.content .prose{margin-block:calc(var(--spacing)*6)}.content .prose a{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);text-underline-offset:4px;text-decoration-line:underline}.content .prose code:not(pre>code){border-radius:var(--radius-md);background-color:var(--color-muted);font-family:var(--font-mono);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));padding-block:.2rem;padding-inline:.3rem;position:relative}.content .prose blockquote{border-left-style:var(--tw-border-style);border-left-width:4px;border-color:var(--color-border);padding-left:calc(var(--spacing)*4)}.content .prose ol{margin-left:calc(var(--spacing)*6);list-style-type:decimal}.content .prose ul{margin-left:calc(var(--spacing)*6);list-style-type:disc}:is(.content .prose ol,.content .prose ul) li{margin-top:calc(var(--spacing)*2)}.content .prose dl{margin-block:calc(var(--spacing)*6);border-bottom-style:var(--tw-border-style);padding-bottom:calc(var(--spacing)*3);border-bottom-width:1px}.content .prose dl dt{margin-top:calc(var(--spacing)*3);border-top-style:var(--tw-border-style);padding-top:calc(var(--spacing)*3);border-top-width:1px}.content .prose dl dt:first-child{margin-top:calc(var(--spacing)*0)}.content .prose dl dd{margin-top:calc(var(--spacing)*2)}.content .prose dl dl{margin-block:calc(var(--spacing)*0);margin-top:calc(var(--spacing)*4);border-bottom-style:var(--tw-border-style);padding-bottom:calc(var(--spacing)*0);padding-left:calc(var(--spacing)*8);border-bottom-width:0}.content .prose b,.content .prose strong{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.content .prose>p,.content .prose>blockquote,.content .prose>ul,.content .prose>ol,.content .prose>dl,.content .prose>table,.content .prose>pre,.content .prose>p{margin-block:calc(var(--spacing)*6)}.content .prose>:first-child{margin-top:calc(var(--spacing)*0)!important}.content .prose>:last-child{margin-bottom:calc(var(--spacing)*0)!important}.content .step{counter-increment:step}.content .step:before{margin-right:calc(var(--spacing)*2);height:calc(var(--spacing)*8);width:calc(var(--spacing)*8);border-style:var(--tw-border-style);border-width:4px;border-color:var(--color-background);background-color:var(--color-muted);text-align:center;text-indent:-1px;font-family:var(--font-mono);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);content:counter(step);border-radius:3.40282e38px;justify-content:center;align-items:center;display:inline-flex;position:absolute}@media (min-width:48rem){.content .step:before{height:calc(var(--spacing)*9);width:calc(var(--spacing)*9);margin-top:-4px;margin-left:-50px}}.content .step>h3{min-height:calc(var(--spacing)*8);align-items:center;display:flex}@media not all and (min-width:48rem){.content .step>h3{margin-left:calc(var(--spacing)*10)}}:root{--hljs-bg:#fff;--hljs-color:#24292e;--hljs-keyword:#d73a49;--hljs-title:#6f42c1;--hljs-literal:#005cc5;--hljs-string:#032f62;--hljs-symbol:#e36209;--hljs-comment:#6a737d;--hljs-tag:#22863a;--hljs-section:#005cc5;--hljs-bullet:#735c0f;--hljs-addition-color:#22863a;--hljs-addition-bg:#f0fff4;--hljs-deletion-color:#b31d28;--hljs-deletion-bg:#ffeef0}html.dark{--hljs-bg:#0d1117;--hljs-color:#c9d1d9;--hljs-keyword:#ff7b72;--hljs-title:#d2a8ff;--hljs-literal:#79c0ff;--hljs-string:#a5d6ff;--hljs-symbol:#ffa657;--hljs-comment:#8b949e;--hljs-tag:#7ee787;--hljs-section:#1f6feb;--hljs-bullet:#f2cc60;--hljs-addition-color:#aff5b4;--hljs-addition-bg:#033a16;--hljs-deletion-color:#ffdcd7;--hljs-deletion-bg:#67060c}pre code.hljs{padding:1em;display:block;overflow-x:auto}code.hljs{padding:3px 5px}.hljs{color:var(--hljs-color);background:var(--hljs-bg)}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:var(--hljs-keyword)}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:var(--hljs-title)}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id,.hljs-variable{color:var(--hljs-literal)}.hljs-meta .hljs-string,.hljs-regexp,.hljs-string{color:var(--hljs-string)}.hljs-built_in,.hljs-symbol{color:var(--hljs-symbol)}.hljs-code,.hljs-comment,.hljs-formula{color:var(--hljs-comment)}.hljs-name,.hljs-quote,.hljs-selector-pseudo,.hljs-selector-tag{color:var(--hljs-tag)}.hljs-subst{color:var(--hljs-color)}.hljs-section{color:var(--hljs-section);font-weight:700}.hljs-bullet{color:var(--hljs-bullet)}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.hljs-addition{color:var(--hljs-addition-color);background-color:var(--hljs-addition-bg)}.hljs-deletion{color:var(--hljs-deletion-color);background-color:var(--hljs-deletion-bg)}.theme-claude:root{--background:oklch(.98 .01 95.1);--foreground:oklch(.34 .03 95.72);--card:oklch(.98 .01 95.1);--card-foreground:oklch(.19 0 106.59);--popover:oklch(1 0 0);--popover-foreground:oklch(.27 .02 98.94);--primary:oklch(.62 .14 39.04);--primary-foreground:oklch(1 0 0);--secondary:oklch(.92 .01 92.99);--secondary-foreground:oklch(.43 .02 98.6);--muted:oklch(.93 .02 90.24);--muted-foreground:oklch(.61 .01 97.42);--accent:oklch(.92 .01 92.99);--accent-foreground:oklch(.27 .02 98.94);--destructive:oklch(.19 0 106.59);--destructive-foreground:oklch(1 0 0);--border:oklch(.88 .01 97.36);--input:oklch(.76 .02 98.35);--ring:oklch(.59 .17 253.06);--chart-1:oklch(.56 .13 43);--chart-2:oklch(.69 .16 290.41);--chart-3:oklch(.88 .03 93.13);--chart-4:oklch(.88 .04 298.18);--chart-5:oklch(.56 .13 42.06);--sidebar:oklch(.97 .01 98.88);--sidebar-foreground:oklch(.36 .01 106.65);--sidebar-primary:oklch(.62 .14 39.04);--sidebar-primary-foreground:oklch(.99 0 0);--sidebar-accent:oklch(.92 .01 92.99);--sidebar-accent-foreground:oklch(.33 0 0);--sidebar-border:oklch(.94 0 0);--sidebar-ring:oklch(.77 0 0);--font-sans:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-serif:ui-serif,Georgia,Cambria,"Times New Roman",Times,serif;--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--radius:.5rem;--shadow-2xs:0 1px 3px 0px #0000000d;--shadow-xs:0 1px 3px 0px #0000000d;--shadow-sm:0 1px 3px 0px #0000001a,0 1px 2px -1px #0000001a;--shadow:0 1px 3px 0px #0000001a,0 1px 2px -1px #0000001a;--shadow-md:0 1px 3px 0px #0000001a,0 2px 4px -1px #0000001a;--shadow-lg:0 1px 3px 0px #0000001a,0 4px 6px -1px #0000001a;--shadow-xl:0 1px 3px 0px #0000001a,0 8px 10px -1px #0000001a;--shadow-2xl:0 1px 3px 0px #00000040}.theme-claude.dark{--background:oklch(.27 0 106.64);--foreground:oklch(.81 .01 93.01);--card:oklch(.27 0 106.64);--card-foreground:oklch(.98 .01 95.1);--popover:oklch(.31 0 106.6);--popover-foreground:oklch(.92 0 106.48);--primary:oklch(.67 .13 38.76);--primary-foreground:oklch(1 0 0);--secondary:oklch(.98 .01 95.1);--secondary-foreground:oklch(.31 0 106.6);--muted:oklch(.22 0 106.71);--muted-foreground:oklch(.77 .02 99.07);--accent:oklch(.21 .01 95.42);--accent-foreground:oklch(.97 .01 98.88);--destructive:oklch(.64 .21 25.33);--destructive-foreground:oklch(1 0 0);--border:oklch(.36 .01 106.89);--input:oklch(.43 .01 100.22);--ring:oklch(.59 .17 253.06);--chart-1:oklch(.56 .13 43);--chart-2:oklch(.69 .16 290.41);--chart-3:oklch(.21 .01 95.42);--chart-4:oklch(.31 .05 289.32);--chart-5:oklch(.56 .13 42.06);--sidebar:oklch(.24 0 67.71);--sidebar-foreground:oklch(.81 .01 93.01);--sidebar-primary:oklch(.33 0 0);--sidebar-primary-foreground:oklch(.99 0 0);--sidebar-accent:oklch(.17 0 106.62);--sidebar-accent-foreground:oklch(.81 .01 93.01);--sidebar-border:oklch(.94 0 0);--sidebar-ring:oklch(.77 0 0);--font-sans:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-serif:ui-serif,Georgia,Cambria,"Times New Roman",Times,serif;--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--radius:.5rem;--shadow-2xs:0 1px 3px 0px #0000000d;--shadow-xs:0 1px 3px 0px #0000000d;--shadow-sm:0 1px 3px 0px #0000001a,0 1px 2px -1px #0000001a;--shadow:0 1px 3px 0px #0000001a,0 1px 2px -1px #0000001a;--shadow-md:0 1px 3px 0px #0000001a,0 2px 4px -1px #0000001a;--shadow-lg:0 1px 3px 0px #0000001a,0 4px 6px -1px #0000001a;--shadow-xl:0 1px 3px 0px #0000001a,0 8px 10px -1px #0000001a;--shadow-2xl:0 1px 3px 0px #00000040}.theme-doom-64:root{--background:oklch(.85 0 0);--foreground:oklch(.24 0 0);--card:oklch(.76 0 0);--card-foreground:oklch(.24 0 0);--popover:oklch(.76 0 0);--popover-foreground:oklch(.24 0 0);--primary:oklch(.5 .19 27.48);--primary-foreground:oklch(1 0 0);--secondary:oklch(.5 .09 126.19);--secondary-foreground:oklch(1 0 0);--muted:oklch(.78 0 0);--muted-foreground:oklch(.41 0 0);--accent:oklch(.59 .1 245.74);--accent-foreground:oklch(1 0 0);--destructive:oklch(.71 .2 46.46);--destructive-foreground:oklch(0 0 0);--border:oklch(.43 0 0);--input:oklch(.43 0 0);--ring:oklch(.5 .19 27.48);--chart-1:oklch(.5 .19 27.48);--chart-2:oklch(.5 .09 126.19);--chart-3:oklch(.59 .1 245.74);--chart-4:oklch(.71 .2 46.46);--chart-5:oklch(.57 .04 40.43);--sidebar:oklch(.76 0 0);--sidebar-foreground:oklch(.24 0 0);--sidebar-primary:oklch(.5 .19 27.48);--sidebar-primary-foreground:oklch(1 0 0);--sidebar-accent:oklch(.59 .1 245.74);--sidebar-accent-foreground:oklch(1 0 0);--sidebar-border:oklch(.43 0 0);--sidebar-ring:oklch(.5 .19 27.48);--font-sans:"Oxanium",sans-serif;--font-serif:ui-serif,Georgia,Cambria,"Times New Roman",Times,serif;--font-mono:"Source Code Pro",monospace;--radius:0px;--shadow-2xs:0px 2px 4px 0px #0003;--shadow-xs:0px 2px 4px 0px #0003;--shadow-sm:0px 2px 4px 0px #0006,0px 1px 2px -1px #0006;--shadow:0px 2px 4px 0px #0006,0px 1px 2px -1px #0006;--shadow-md:0px 2px 4px 0px #0006,0px 2px 4px -1px #0006;--shadow-lg:0px 2px 4px 0px #0006,0px 4px 6px -1px #0006;--shadow-xl:0px 2px 4px 0px #0006,0px 8px 10px -1px #0006;--shadow-2xl:0px 2px 4px 0px #000}.theme-doom-64.dark{--background:oklch(.22 0 0);--foreground:oklch(.91 0 0);--card:oklch(.29 0 0);--card-foreground:oklch(.91 0 0);--popover:oklch(.29 0 0);--popover-foreground:oklch(.91 0 0);--primary:oklch(.61 .21 27.03);--primary-foreground:oklch(1 0 0);--secondary:oklch(.64 .15 133.01);--secondary-foreground:oklch(0 0 0);--muted:oklch(.26 0 0);--muted-foreground:oklch(.71 0 0);--accent:oklch(.75 .12 244.75);--accent-foreground:oklch(0 0 0);--destructive:oklch(.78 .17 68.09);--destructive-foreground:oklch(0 0 0);--border:oklch(.41 0 0);--input:oklch(.41 0 0);--ring:oklch(.61 .21 27.03);--chart-1:oklch(.61 .21 27.03);--chart-2:oklch(.64 .15 133.01);--chart-3:oklch(.75 .12 244.75);--chart-4:oklch(.78 .17 68.09);--chart-5:oklch(.65 .03 40.8);--sidebar:oklch(.19 0 0);--sidebar-foreground:oklch(.91 0 0);--sidebar-primary:oklch(.61 .21 27.03);--sidebar-primary-foreground:oklch(1 0 0);--sidebar-accent:oklch(.75 .12 244.75);--sidebar-accent-foreground:oklch(0 0 0);--sidebar-border:oklch(.41 0 0);--sidebar-ring:oklch(.61 .21 27.03);--font-sans:"Oxanium",sans-serif;--font-serif:ui-serif,Georgia,Cambria,"Times New Roman",Times,serif;--font-mono:"Source Code Pro",monospace;--radius:0px;--shadow-2xs:0px 2px 5px 0px #0000004d;--shadow-xs:0px 2px 5px 0px #0000004d;--shadow-sm:0px 2px 5px 0px #0009,0px 1px 2px -1px #0009;--shadow:0px 2px 5px 0px #0009,0px 1px 2px -1px #0009;--shadow-md:0px 2px 5px 0px #0009,0px 2px 4px -1px #0009;--shadow-lg:0px 2px 5px 0px #0009,0px 4px 6px -1px #0009;--shadow-xl:0px 2px 5px 0px #0009,0px 8px 10px -1px #0009;--shadow-2xl:0px 2px 5px 0px #000}.theme-supabase:root{--background:oklch(.99 0 0);--foreground:oklch(.2 0 0);--card:oklch(.99 0 0);--card-foreground:oklch(.2 0 0);--popover:oklch(.99 0 0);--popover-foreground:oklch(.44 0 0);--primary:oklch(.83 .13 160.91);--primary-foreground:oklch(.26 .01 166.46);--secondary:oklch(.99 0 0);--secondary-foreground:oklch(.2 0 0);--muted:oklch(.95 0 0);--muted-foreground:oklch(.24 0 0);--accent:oklch(.95 0 0);--accent-foreground:oklch(.24 0 0);--destructive:oklch(.55 .19 32.73);--destructive-foreground:oklch(.99 0 17.21);--border:oklch(.9 0 0);--input:oklch(.9 0 0);--ring:oklch(.83 .13 160.91);--chart-1:oklch(.83 .13 160.91);--chart-2:oklch(.62 .19 259.81);--chart-3:oklch(.61 .22 292.72);--chart-4:oklch(.77 .16 70.08);--chart-5:oklch(.7 .15 162.48);--sidebar:oklch(.99 0 0);--sidebar-foreground:oklch(.55 0 0);--sidebar-primary:oklch(.83 .13 160.91);--sidebar-primary-foreground:oklch(.26 .01 166.46);--sidebar-accent:oklch(.95 0 0);--sidebar-accent-foreground:oklch(.24 0 0);--sidebar-border:oklch(.9 0 0);--sidebar-ring:oklch(.83 .13 160.91);--font-sans:Outfit,sans-serif;--font-serif:ui-serif,Georgia,Cambria,"Times New Roman",Times,serif;--font-mono:monospace;--radius:.5rem;--shadow-2xs:0px 1px 3px 0px #00000017;--shadow-xs:0px 1px 3px 0px #00000017;--shadow-sm:0px 1px 3px 0px #0000002b,0px 1px 2px -1px #0000002b;--shadow:0px 1px 3px 0px #0000002b,0px 1px 2px -1px #0000002b;--shadow-md:0px 1px 3px 0px #0000002b,0px 2px 4px -1px #0000002b;--shadow-lg:0px 1px 3px 0px #0000002b,0px 4px 6px -1px #0000002b;--shadow-xl:0px 1px 3px 0px #0000002b,0px 8px 10px -1px #0000002b;--shadow-2xl:0px 1px 3px 0px #0000006e;--tracking-normal:.025em}.theme-supabase.dark{--background:oklch(.18 0 0);--foreground:oklch(.93 .01 255.51);--card:oklch(.2 0 0);--card-foreground:oklch(.93 .01 255.51);--popover:oklch(.26 0 0);--popover-foreground:oklch(.73 0 0);--primary:oklch(.44 .1 156.76);--primary-foreground:oklch(.92 .01 167.16);--secondary:oklch(.26 0 0);--secondary-foreground:oklch(.99 0 0);--muted:oklch(.24 0 0);--muted-foreground:oklch(.71 0 0);--accent:oklch(.31 0 0);--accent-foreground:oklch(.99 0 0);--destructive:oklch(.31 .09 29.79);--destructive-foreground:oklch(.94 0 34.31);--border:oklch(.28 0 0);--input:oklch(.28 0 0);--ring:oklch(.8 .18 151.71);--chart-1:oklch(.8 .18 151.71);--chart-2:oklch(.71 .14 254.62);--chart-3:oklch(.71 .16 293.54);--chart-4:oklch(.84 .16 84.43);--chart-5:oklch(.78 .13 181.91);--sidebar:oklch(.18 0 0);--sidebar-foreground:oklch(.63 0 0);--sidebar-primary:oklch(.44 .1 156.76);--sidebar-primary-foreground:oklch(.92 .01 167.16);--sidebar-accent:oklch(.31 0 0);--sidebar-accent-foreground:oklch(.99 0 0);--sidebar-border:oklch(.28 0 0);--sidebar-ring:oklch(.8 .18 151.71);--font-sans:Outfit,sans-serif;--font-serif:ui-serif,Georgia,Cambria,"Times New Roman",Times,serif;--font-mono:monospace;--radius:.5rem;--shadow-2xs:0px 1px 3px 0px #00000017;--shadow-xs:0px 1px 3px 0px #00000017;--shadow-sm:0px 1px 3px 0px #0000002b,0px 1px 2px -1px #0000002b;--shadow:0px 1px 3px 0px #0000002b,0px 1px 2px -1px #0000002b;--shadow-md:0px 1px 3px 0px #0000002b,0px 2px 4px -1px #0000002b;--shadow-lg:0px 1px 3px 0px #0000002b,0px 4px 6px -1px #0000002b;--shadow-xl:0px 1px 3px 0px #0000002b,0px 8px 10px -1px #0000002b;--shadow-2xl:0px 1px 3px 0px #0000006e}.theme-supabase body{letter-spacing:var(--tracking-normal)}@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-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-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-duration{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@property --tw-ease{syntax:"*";inherits:false}@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)}}@keyframes pulse{50%{opacity:.5}} \ No newline at end of file diff --git a/docs/src/installation.njk b/docs/src/installation.njk index 2b1a241..5ee2bbc 100644 --- a/docs/src/installation.njk +++ b/docs/src/installation.njk @@ -14,6 +14,8 @@ toc: id: install-npm-basecoat - label: Import basecoat in your CSS id: install-npm-import + - label: (Optional) Import specific components + id: install-npm-import-css-components-optional - label: (Optional) Add JavaScript files id: install-npm-js - label: That's it @@ -89,6 +91,14 @@ toc: @import "basecoat-css";{% endset %} {{ code_block(code, "css") }} +
  • +

    (Optional) Import specific components

    + {% set code %}@import "tailwindcss"; +@import "basecoat-css/base"; +@import "basecoat-css/components/form"; +@import "basecoat-css/components/alert";{% endset %} + {{ code_block(code, "css") }} +
  • (Optional) Add JavaScript files

    diff --git a/package-lock.json b/package-lock.json index 525ffcb..ba77e83 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "basecoat", - "version": "0.2.0-beta.1", + "version": "0.2.7", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "basecoat", - "version": "0.2.0-beta.1", + "version": "0.2.7", "license": "MIT", "workspaces": [ "packages/*" @@ -1588,9 +1588,9 @@ } }, "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, "license": "MIT", "dependencies": { @@ -2327,9 +2327,9 @@ } }, "node_modules/glob/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", "dev": true, "license": "MIT", "dependencies": { @@ -4337,7 +4337,7 @@ }, "packages/cli": { "name": "basecoat-cli", - "version": "0.2.0-beta.1", + "version": "0.2.7", "license": "MIT", "dependencies": { "commander": "^13.1.0", @@ -4350,7 +4350,7 @@ }, "packages/css": { "name": "basecoat-css", - "version": "0.2.0-beta.1", + "version": "0.2.7", "license": "MIT" } } diff --git a/packages/css/package.json b/packages/css/package.json index ca80325..64edbec 100644 --- a/packages/css/package.json +++ b/packages/css/package.json @@ -39,6 +39,7 @@ }, "homepage": "https://basecoatui.com/installation#install-npm", "exports": { + "./package.json": "./package.json", ".": "./dist/basecoat.css", "./css": "./dist/basecoat.css", "./all": "./dist/js/all.js", @@ -55,6 +56,73 @@ "./tabs.min": "./dist/js/tabs.min.js", "./toast": "./dist/js/toast.js", "./toast.min": "./dist/js/toast.min.js", - "./package.json": "./package.json" + "./all.css": "./dist/basecoat.all.css", + "./base": "./dist/base/base.css", + "./components/accordion": { + "style": "./dist/components/accordion.css" + }, + "./components/alert": { + "style": "./dist/components/alert.css" + }, + "./components/badge": { + "style": "./dist/components/badge.css" + }, + "./components/button": { + "style": "./dist/components/button.css" + }, + "./components/card": { + "style": "./dist/components/card.css" + }, + "./components/dialog": { + "style": "./dist/components/dialog.css" + }, + "./components/dropdown-menu": { + "style": "./dist/components/dropdown-menu.css" + }, + "./components/form/checkbox": { + "style": "./dist/components/form/checkbox.css" + }, + "./components/form/input": { + "style": "./dist/components/form/input.css" + }, + "./components/form/label": { + "style": "./dist/components/form/label.css" + }, + "./components/form/radio": { + "style": "./dist/components/form/radio.css" + }, + "./components/form/range": { + "style": "./dist/components/form/range.css" + }, + "./components/form/select": { + "style": "./dist/components/form/select.css" + }, + "./components/form/switch": { + "style": "./dist/components/form/switch.css" + }, + "./components/form/textarea": { + "style": "./dist/components/form/textarea.css" + }, + "./components/form": { + "style": "./dist/components/form.css" + }, + "./components/popover": { + "style": "./dist/components/popover.css" + }, + "./components/sidebar": { + "style": "./dist/components/sidebar.css" + }, + "./components/table": { + "style": "./dist/components/table.css" + }, + "./components/tabs": { + "style": "./dist/components/tabs.css" + }, + "./components/toast": { + "style": "./dist/components/toast.css" + }, + "./components/tooltip": { + "style": "./dist/components/tooltip.css" + } } } \ No newline at end of file diff --git a/scripts/build.js b/scripts/build.js index 5eadfff..04a9423 100644 --- a/scripts/build.js +++ b/scripts/build.js @@ -63,6 +63,24 @@ async function copyDirRecursive(src, dest) { } } +// Recursively adds CSS component exports +async function collectComponentCssExports(srcDir, exportsMap, relativePath = '') { + const entries = await fs.readdir(srcDir, { withFileTypes: true }); + + for (const entry of entries) { + const entryPath = path.join(srcDir, entry.name); + const subPath = path.posix.join(relativePath, entry.name); + + if (entry.isDirectory()) { + await collectComponentCssExports(entryPath, exportsMap, subPath); + } else if (entry.name.endsWith('.css')) { + const exportKey = `./components/${subPath.replace(/\.css$/, '')}`; + const stylePath = `./dist/components/${subPath}`; + exportsMap[exportKey] = { style: stylePath }; + } + } +} + // Main build function to prepare packages for publishing. async function build() { console.log('Starting build process...'); @@ -161,6 +179,61 @@ async function build() { await execPromise(`npx tailwindcss -i "${cdnCssSrc}" -o "${cssDistCdnMinPath}" --minify`); console.log(`Generated minified CSS: ${cssDistCdnMinPath}`); + // Copy basecoat.all.css + await fs.copyFile(path.join(srcCssDir, 'basecoat.all.css'), path.join(cssDistDir, 'basecoat.all.css')); + console.log(`Copied basecoat.all.css to ${cssDistDir}`); + + // Copy base/base.css + const baseSrcDir = path.join(srcCssDir, 'base'); + const baseDistDir = path.join(cssDistDir, 'base'); + await ensureDir(baseDistDir); + await fs.copyFile(path.join(baseSrcDir, 'base.css'), path.join(baseDistDir, 'base.css')); + console.log(`Copied base/base.css to ${cssDistDir}`); + + // Copy components + console.log('Copying individual CSS components...'); + const componentsSrcDir = path.join(srcCssDir, 'components'); + const componentsDistDir = path.join(cssDistDir, 'components'); + await copyDirRecursive(componentsSrcDir, componentsDistDir); + console.log(`Copied component CSS files to ${componentsDistDir}`); + + // Read package.json + const cssPackageJsonPath = path.join(cssPackageDir, 'package.json'); + const cssPackageJson = JSON.parse(await fs.readFile(cssPackageJsonPath, 'utf-8')); + + // Base exports + const exportsMap = { + "./package.json": "./package.json", + ".": "./dist/basecoat.css", + "./css": "./dist/basecoat.css", + "./all": "./dist/js/all.js", + "./all.min": "./dist/js/all.min.js", + "./dropdown-menu": "./dist/js/dropdown-menu.js", + "./dropdown-menu.min": "./dist/js/dropdown-menu.min.js", + "./popover": "./dist/js/popover.js", + "./popover.min": "./dist/js/popover.min.js", + "./select": "./dist/js/select.js", + "./select.min": "./dist/js/select.min.js", + "./sidebar": "./dist/js/sidebar.js", + "./sidebar.min": "./dist/js/sidebar.min.js", + "./tabs": "./dist/js/tabs.js", + "./tabs.min": "./dist/js/tabs.min.js", + "./toast": "./dist/js/toast.js", + "./toast.min": "./dist/js/toast.min.js", + + "./all.css": "./dist/basecoat.all.css", + "./base": "./dist/base/base.css" + }; + + // Add dynamic component exports + await collectComponentCssExports(componentsSrcDir, exportsMap); + + // Write updated package.json + cssPackageJson.exports = exportsMap; + await fs.writeFile(cssPackageJsonPath, JSON.stringify(cssPackageJson, null, 2)); + console.log('Updated package.json with dynamic CSS component exports.'); + + console.log('Build process finished successfully!'); } diff --git a/src/css/base/base.css b/src/css/base/base.css new file mode 100644 index 0000000..924e834 --- /dev/null +++ b/src/css/base/base.css @@ -0,0 +1,153 @@ +@custom-variant dark (&:is(.dark *)); + +:root { + --radius: 0.625rem; + --background: oklch(1 0 0); + --foreground: oklch(0.145 0 0); + --card: oklch(1 0 0); + --card-foreground: oklch(0.145 0 0); + --popover: oklch(1 0 0); + --popover-foreground: oklch(0.145 0 0); + --primary: oklch(0.205 0 0); + --primary-foreground: oklch(0.985 0 0); + --secondary: oklch(0.97 0 0); + --secondary-foreground: oklch(0.205 0 0); + --muted: oklch(0.97 0 0); + --muted-foreground: oklch(0.556 0 0); + --accent: oklch(0.97 0 0); + --accent-foreground: oklch(0.205 0 0); + --destructive: oklch(0.577 0.245 27.325); + --border: oklch(0.922 0 0); + --input: oklch(0.922 0 0); + --ring: oklch(0.708 0 0); + --chart-1: oklch(0.646 0.222 41.116); + --chart-2: oklch(0.6 0.118 184.704); + --chart-3: oklch(0.398 0.07 227.392); + --chart-4: oklch(0.828 0.189 84.429); + --chart-5: oklch(0.769 0.188 70.08); + --sidebar: oklch(0.985 0 0); + --sidebar-foreground: oklch(0.145 0 0); + --sidebar-primary: oklch(0.205 0 0); + --sidebar-primary-foreground: oklch(0.985 0 0); + --sidebar-accent: oklch(0.97 0 0); + --sidebar-accent-foreground: oklch(0.205 0 0); + --sidebar-border: oklch(0.922 0 0); + --sidebar-ring: oklch(0.708 0 0); + --sidebar-width: 16rem; + --sidebar-mobile-width: 18rem; + --scrollbar-track: transparent; + --scrollbar-thumb: rgba(0, 0, 0, 0.3); + --scrollbar-width: 6px; + --scrollbar-radius: 6px; + --chevron-down-icon: url('data:image/svg+xml;utf8,'); /* --muted-foreground */ + --chevron-down-icon-50: url('data:image/svg+xml;utf8,'); /* --muted-foreground + 50% opacity */ + --check-icon: url('data:image/svg+xml;utf8,'); /* --muted-foreground */ +} + +.dark { + --background: oklch(0.145 0 0); + --foreground: oklch(0.985 0 0); + --card: oklch(0.205 0 0); + --card-foreground: oklch(0.985 0 0); + --popover: oklch(0.269 0 0); + --popover-foreground: oklch(0.985 0 0); + --primary: oklch(0.922 0 0); + --primary-foreground: oklch(0.205 0 0); + --secondary: oklch(0.269 0 0); + --secondary-foreground: oklch(0.985 0 0); + --muted: oklch(0.269 0 0); + --muted-foreground: oklch(0.708 0 0); + --accent: oklch(0.371 0 0); + --accent-foreground: oklch(0.985 0 0); + --destructive: oklch(0.704 0.191 22.216); + --border: oklch(1 0 0 / 10%); + --input: oklch(1 0 0 / 15%); + --ring: oklch(0.556 0 0); + --chart-1: oklch(0.488 0.243 264.376); + --chart-2: oklch(0.696 0.17 162.48); + --chart-3: oklch(0.769 0.188 70.08); + --chart-4: oklch(0.627 0.265 303.9); + --chart-5: oklch(0.645 0.246 16.439); + --sidebar: oklch(0.205 0 0); + --sidebar-foreground: oklch(0.985 0 0); + --sidebar-primary: oklch(0.488 0.243 264.376); + --sidebar-primary-foreground: oklch(0.985 0 0); + --sidebar-accent: oklch(0.269 0 0); + --sidebar-accent-foreground: oklch(0.985 0 0); + --sidebar-border: oklch(1 0 0 / 10%); + --sidebar-ring: oklch(0.439 0 0); + --scrollbar-thumb: rgba(255, 255, 255, 0.3); + --chevron-down-icon: url('data:image/svg+xml;utf8,'); /* --muted-foreground */ + --chevron-down-icon-50: url('data:image/svg+xml;utf8,'); /* --muted-foreground + 50% opacity */ + --check-icon: url('data:image/svg+xml;utf8,');/* --muted-foreground */ + color-scheme: dark; +} + +@theme { + --radius-sm: calc(var(--radius) - 4px); + --radius-md: calc(var(--radius) - 2px); + --radius-lg: var(--radius); + --radius-xl: calc(var(--radius) + 4px); + --color-background: var(--background); + --color-foreground: var(--foreground); + --color-card: var(--card); + --color-card-foreground: var(--card-foreground); + --color-popover: var(--popover); + --color-popover-foreground: var(--popover-foreground); + --color-primary: var(--primary); + --color-primary-foreground: var(--primary-foreground); + --color-secondary: var(--secondary); + --color-secondary-foreground: var(--secondary-foreground); + --color-muted: var(--muted); + --color-muted-foreground: var(--muted-foreground); + --color-accent: var(--accent); + --color-accent-foreground: var(--accent-foreground); + --color-destructive: var(--destructive); + --color-border: var(--border); + --color-input: var(--input); + --color-ring: var(--ring); + --color-chart-1: var(--chart-1); + --color-chart-2: var(--chart-2); + --color-chart-3: var(--chart-3); + --color-chart-4: var(--chart-4); + --color-chart-5: var(--chart-5); + --color-sidebar: var(--sidebar); + --color-sidebar-foreground: var(--sidebar-foreground); + --color-sidebar-primary: var(--sidebar-primary); + --color-sidebar-primary-foreground: var(--sidebar-primary-foreground); + --color-sidebar-accent: var(--sidebar-accent); + --color-sidebar-accent-foreground: var(--sidebar-accent-foreground); + --color-sidebar-border: var(--sidebar-border); + --color-sidebar-ring: var(--sidebar-ring); +} + +@layer base { + * { + @apply border-border outline-ring/50; + } + html { + @apply scroll-smooth; + } + body { + @apply bg-background text-foreground overscroll-none antialiased; + } + .scrollbar { + scrollbar-width: thin; + scrollbar-color: var(--scrollbar-thumb) var(--scrollbar-track); + + &::-webkit-scrollbar { + width: var(--scrollbar-width); + } + &::-webkit-scrollbar-track { + background: var(--scrollbar-track); + } + &::-webkit-scrollbar-thumb { + background: var(--scrollbar-thumb); + border-radius: var(--scrollbar-radius); + } + } + /* Alpine.js */ + [x-cloak] { + display: none !important; + } +} \ No newline at end of file diff --git a/src/css/basecoat.all.css b/src/css/basecoat.all.css new file mode 100644 index 0000000..f45e92d --- /dev/null +++ b/src/css/basecoat.all.css @@ -0,0 +1,17 @@ +@import "./base/base.css"; + +/* Components */ +@import "./components/alert.css"; +@import "./components/button.css"; +@import "./components/badge.css"; +@import "./components/card.css"; +@import "./components/form.css"; +@import "./components/dialog.css"; +@import "./components/dropdown-menu.css"; +@import "./components/popover.css"; +@import "./components/table.css"; +@import "./components/tabs.css"; +@import "./components/toast.css"; +@import "./components/tooltip.css"; +@import "./components/accordion.css"; +@import "./components/sidebar.css"; \ No newline at end of file diff --git a/src/css/components/accordion.css b/src/css/components/accordion.css new file mode 100644 index 0000000..6b06941 --- /dev/null +++ b/src/css/components/accordion.css @@ -0,0 +1,20 @@ +/* Accordion / Collapsible */ +@layer components { + details { + &::details-content { + block-size: 0; + @apply block opacity-0 transition-discrete transition-all; + } + &[open]::details-content { + block-size: auto; + block-size: calc-size(auto, size); + @apply opacity-100; + } + summary { + @apply inline-flex items-center cursor-pointer; + } + } + details > summary::-webkit-details-marker { + display: none; + } +} \ No newline at end of file diff --git a/src/css/components/alert.css b/src/css/components/alert.css new file mode 100644 index 0000000..8b35557 --- /dev/null +++ b/src/css/components/alert.css @@ -0,0 +1,28 @@ +/* Alert */ +@layer components { + .alert, + .alert-destructive { + @apply relative w-full rounded-lg border px-4 py-3 text-sm grid has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] grid-cols-[0_1fr] has-[>svg]:gap-x-3 gap-y-0.5 items-start [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current; + + h2 { + @apply col-start-2 line-clamp-1 min-h-4 font-medium tracking-tight; + } + section { + @apply text-muted-foreground col-start-2 grid justify-items-start gap-1 text-sm [&_p]:leading-relaxed; + + ul { + @apply list-inside list-disc text-sm; + } + } + } + .alert { + @apply bg-card text-card-foreground; + } + .alert-destructive { + @apply text-destructive bg-card [&>svg]:text-current; + + section { + @apply text-destructive; + } + } +} \ No newline at end of file diff --git a/src/css/components/badge.css b/src/css/components/badge.css new file mode 100644 index 0000000..9f2618c --- /dev/null +++ b/src/css/components/badge.css @@ -0,0 +1,23 @@ +/* Badge */ +@layer components { + .badge, + .badge-primary, + .badge-secondary, + .badge-destructive, + .badge-outline { + @apply inline-flex items-center justify-center rounded-md border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden; + } + .badge, + .badge-primary { + @apply border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90; + } + .badge-secondary { + @apply border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90; + } + .badge-destructive { + @apply border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60; + } + .badge-outline { + @apply text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground; + } +} \ No newline at end of file diff --git a/src/css/components/button.css b/src/css/components/button.css new file mode 100644 index 0000000..3467075 --- /dev/null +++ b/src/css/components/button.css @@ -0,0 +1,177 @@ +/* Button */ +@layer components { + .btn, + .btn-primary, + .btn-secondary, + .btn-outline, + .btn-ghost, + .btn-link, + .btn-destructive, + .btn-sm, + .btn-sm-primary, + .btn-sm-secondary, + .btn-sm-outline, + .btn-sm-ghost, + .btn-sm-link, + .btn-sm-destructive, + .btn-lg, + .btn-lg-primary, + .btn-lg-secondary, + .btn-lg-outline, + .btn-lg-ghost, + .btn-lg-link, + .btn-lg-destructive, + .btn-icon, + .btn-icon-primary, + .btn-icon-secondary, + .btn-icon-outline, + .btn-icon-ghost, + .btn-icon-link, + .btn-icon-destructive, + .btn-sm-icon, + .btn-sm-icon-primary, + .btn-sm-icon-secondary, + .btn-sm-icon-outline, + .btn-sm-icon-ghost, + .btn-sm-icon-link, + .btn-sm-icon-destructive, + .btn-lg-icon, + .btn-lg-icon-primary, + .btn-lg-icon-secondary, + .btn-lg-icon-outline, + .btn-lg-icon-ghost, + .btn-lg-icon-link, + .btn-lg-icon-destructive { + @apply inline-flex items-center justify-center whitespace-nowrap text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive cursor-pointer rounded-md; + } + .btn, + .btn-primary, + .btn-secondary, + .btn-outline, + .btn-ghost, + .btn-link, + .btn-destructive { + @apply gap-2 h-9 px-4 py-2 has-[>svg]:px-3; + } + .btn-icon, + .btn-icon-primary, + .btn-icon-secondary, + .btn-icon-outline, + .btn-icon-ghost, + .btn-icon-link, + .btn-icon-destructive { + @apply size-9; + } + .btn-sm, + .btn-sm-primary, + .btn-sm-secondary, + .btn-sm-outline, + .btn-sm-ghost, + .btn-sm-link, + .btn-sm-destructive { + @apply gap-1.5 h-8 px-3 has-[>svg]:px-2.5; + } + .btn-sm-icon, + .btn-sm-icon-primary, + .btn-sm-icon-secondary, + .btn-sm-icon-outline, + .btn-sm-icon-ghost, + .btn-sm-icon-link, + .btn-sm-icon-destructive { + @apply size-8; + } + .btn-lg, + .btn-lg-primary, + .btn-lg-secondary, + .btn-lg-outline, + .btn-lg-ghost, + .btn-lg-link, + .btn-lg-destructive { + @apply gap-2 h-10 px-6 has-[>svg]:px-4; + } + .btn-lg-icon, + .btn-lg-icon-primary, + .btn-lg-icon-secondary, + .btn-lg-icon-outline, + .btn-lg-icon-ghost, + .btn-lg-icon-link, + .btn-lg-icon-destructive { + @apply size-10; + } + .btn, + .btn-primary, + .btn-sm, + .btn-sm-primary, + .btn-lg, + .btn-lg-primary, + .btn-icon, + .btn-icon-primary, + .btn-sm-icon, + .btn-sm-icon-primary, + .btn-lg-icon, + .btn-lg-icon-primary { + @apply bg-primary text-primary-foreground shadow-xs hover:bg-primary/90; + &[aria-pressed='true'] { + @apply bg-primary/90; + } + } + .btn-secondary, + .btn-sm-secondary, + .btn-lg-secondary, + .btn-icon-secondary, + .btn-sm-icon-secondary, + .btn-lg-icon-secondary { + @apply bg-secondary text-secondary-foreground shadow-xs; + &:hover, + &[aria-pressed='true'] { + @apply bg-secondary/80; + } + } + .btn-outline, + .btn-sm-outline, + .btn-lg-outline, + .btn-icon-outline, + .btn-sm-icon-outline, + .btn-lg-icon-outline { + @apply border bg-background shadow-xs dark:bg-input/30 dark:border-input; + &:hover, + &[aria-pressed='true'] { + @apply bg-accent text-accent-foreground dark:bg-accent/50; + } + } + .btn-ghost, + .btn-sm-ghost, + .btn-lg-ghost, + .btn-icon-ghost, + .btn-sm-icon-ghost, + .btn-lg-icon-ghost { + &:hover, + &[aria-pressed='true'] { + @apply bg-accent text-accent-foreground dark:bg-accent/50; + } + } + .btn-link, + .btn-sm-link, + .btn-lg-link, + .btn-icon-link, + .btn-sm-icon-link, + .btn-lg-icon-link { + @apply text-primary underline-offset-4; + &:hover, + &[aria-pressed='true'] { + @apply hover:underline; + } + } + .btn-destructive, + .btn-sm-destructive, + .btn-lg-destructive, + .btn-icon-destructive, + .btn-sm-icon-destructive, + .btn-lg-icon-destructive { + @apply bg-destructive text-white shadow-xs focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60; + &:hover, + &[aria-pressed='true'] { + @apply bg-destructive/90 dark:bg-destructive/50; + } + } +} \ No newline at end of file diff --git a/src/css/components/card.css b/src/css/components/card.css new file mode 100644 index 0000000..6b954de --- /dev/null +++ b/src/css/components/card.css @@ -0,0 +1,24 @@ +/* Card */ +@layer components { + .card { + @apply bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm; + + > header { + @apply @container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6; + /* TODO: CLEAN has-data-[slot=card-action] */ + + h2 { + @apply leading-none font-semibold; + } + p { + @apply text-muted-foreground text-sm; + } + } + > section { + @apply px-6; + } + > footer { + @apply flex items-center px-6 [.border-t]:pt-6; + } + } +} \ No newline at end of file diff --git a/src/css/components/dialog.css b/src/css/components/dialog.css new file mode 100644 index 0000000..96a55f8 --- /dev/null +++ b/src/css/components/dialog.css @@ -0,0 +1,58 @@ +/* Dialog */ +@layer components { + .dialog { + @apply inset-y-0 opacity-0 transition-all transition-discrete; + + &:is([open],:popover-open) { + @apply opacity-100; + + &::backdrop { + @apply opacity-100; + } + > article { + @apply scale-100; + } + + @starting-style { + @apply opacity-0; + + &::backdrop { + @apply opacity-0; + } + > article { + @apply scale-95; + } + } + } + &::backdrop { + @apply bg-black/50 opacity-0 transition-all transition-discrete; + } + > article { + @apply bg-background fixed top-[50%] left-[50%] z-50 flex flex-col w-full max-w-[calc(100%_-_2rem)] -translate-x-1/2 -translate-y-1/2 gap-4 rounded-lg border p-6 shadow-lg sm:max-w-lg max-h-[calc(100%_-_2rem)]; + @apply transition-all scale-95; + + > header { + @apply flex flex-col gap-2 text-center sm:text-left; + + > h2 { + @apply text-lg leading-none font-semibold; + } + > p { + @apply text-muted-foreground text-sm; + } + } + > section { + @apply flex-1 -mx-6 px-6; + } + > footer { + @apply flex flex-col-reverse gap-2 sm:flex-row sm:justify-end; + } + > form[method='dialog'] { + @apply absolute top-4 right-4; + > button { + @apply ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4; + } + } + } + } +} \ No newline at end of file diff --git a/src/css/components/dropdown-menu.css b/src/css/components/dropdown-menu.css new file mode 100644 index 0000000..e91f756 --- /dev/null +++ b/src/css/components/dropdown-menu.css @@ -0,0 +1,38 @@ +/* Dropdown Menu */ +@layer components { + .dropdown-menu { + @apply relative inline-flex; + + [data-popover] { + @apply p-1; + min-width: anchor-size(width); + + [role='menuitem'], + [role='menuitemcheckbox'], + [role='menuitemradio'] { + @apply aria-hidden:hidden [&_svg]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none [&_svg]:shrink-0 [&_svg]:size-4 aria-disabled:opacity-50 aria-disabled:pointer-events-none disabled:opacity-50 disabled:pointer-events-none w-full truncate; + + &:not([aria-disabled='true']) { + @apply focus-visible:bg-accent focus-visible:text-accent-foreground; + } + + &.active { + @apply bg-accent text-accent-foreground; + } + } + [role='menu'] [role='heading'] { + @apply flex px-2 py-1.5 text-sm font-medium; + } + [role='separator'] { + @apply border-border -mx-1 my-1; + } + } + &:not([data-dropdown-menu-initialized]) [data-popover] { + [role='menuitem'], + [role='menuitemcheckbox'], + [role='menuitemradio'] { + @apply hover:bg-accent hover:text-accent-foreground; + } + } + } +} \ No newline at end of file diff --git a/src/css/components/form.css b/src/css/components/form.css new file mode 100644 index 0000000..121b023 --- /dev/null +++ b/src/css/components/form.css @@ -0,0 +1,8 @@ +@import "./form/label.css"; +@import "./form/input.css"; +@import "./form/textarea.css"; +@import "./form/select.css"; +@import "./form/radio.css"; +@import "./form/checkbox.css"; +@import "./form/switch.css"; +@import "./form/range.css"; \ No newline at end of file diff --git a/src/css/components/form/checkbox.css b/src/css/components/form/checkbox.css new file mode 100644 index 0000000..4a967c2 --- /dev/null +++ b/src/css/components/form/checkbox.css @@ -0,0 +1,12 @@ +/* Checkbox */ +@layer components { + .form input[type='checkbox']:not([role='switch']), + .input[type='checkbox']:not([role='switch']) { + @apply appearance-none border-input dark:bg-input/30 checked:bg-primary dark:checked:bg-primary checked:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive size-4 shrink-0 rounded-[4px] border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50; + + &:checked:after { + @apply content-[''] block size-3.5 bg-primary-foreground; + @apply mask-[image:var(--check-icon)] mask-size-[0.875rem] mask-no-repeat mask-center; + } + } +} \ No newline at end of file diff --git a/src/css/components/form/input.css b/src/css/components/form/input.css new file mode 100644 index 0000000..f6403ac --- /dev/null +++ b/src/css/components/form/input.css @@ -0,0 +1,33 @@ +/* Input */ +@layer components { + .form input[type='text'], + .form input[type='email'], + .form input[type='password'], + .form input[type='number'], + .form input[type='file'], + .form input[type='tel'], + .form input[type='url'], + .form input[type='search'], + .form input[type='date'], + .form input[type='datetime-local'], + .form input[type='month'], + .form input[type='week'], + .form input[type='time'], + .input[type='text'], + .input[type='email'], + .input[type='password'], + .input[type='number'], + .input[type='file'], + .input[type='tel'], + .input[type='url'], + .input[type='search'], + .input[type='date'], + .input[type='datetime-local'], + .input[type='month'], + .input[type='week'], + .input[type='time'] { + @apply appearance-none file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm; + @apply focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]; + @apply aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive; + } +} \ No newline at end of file diff --git a/src/css/components/form/label.css b/src/css/components/form/label.css new file mode 100644 index 0000000..0e299fe --- /dev/null +++ b/src/css/components/form/label.css @@ -0,0 +1,12 @@ +/* Label */ +@layer components { + .form label, + .label { + @apply flex items-center gap-2 text-sm leading-none font-medium select-none peer-disabled:pointer-events-none peer-disabled:opacity-50; + + &:has(>*:disabled), + &:has(+*:disabled) { + @apply opacity-50 pointer-events-none; + } + } +} \ No newline at end of file diff --git a/src/css/components/form/radio.css b/src/css/components/form/radio.css new file mode 100644 index 0000000..59c8fc1 --- /dev/null +++ b/src/css/components/form/radio.css @@ -0,0 +1,11 @@ +/* Radio */ +@layer components { + .form input[type='radio'], + .input[type='radio'] { + @apply appearance-none border-input text-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 aspect-square size-4 shrink-0 rounded-full border shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 relative; + + &:checked:before { + @apply absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 content-[''] rounded-full size-2 bg-primary; + } + } +} \ No newline at end of file diff --git a/src/css/components/form/range.css b/src/css/components/form/range.css new file mode 100644 index 0000000..3bc96c6 --- /dev/null +++ b/src/css/components/form/range.css @@ -0,0 +1,48 @@ +/* Range */ +@layer components { + .form input[type='range'], + .input[type='range'] { + @apply appearance-none flex items-center p-0 outline-none; + --slider-value: 20%; + + &:hover, + &:focus-visible { + &::-webkit-slider-thumb { + @apply ring-4; + } + &::-moz-range-thumb { + @apply ring-4; + } + &::-ms-thumb { + @apply ring-4; + } + } + + &::-webkit-slider-thumb { + @apply appearance-none border-primary bg-background ring-ring/50 block size-4 shrink-0 rounded-full border shadow-sm -mt-1.25; + } + &::-webkit-slider-runnable-track { + @apply appearance-none rounded-full h-1.5 w-full; + background: linear-gradient(to right, var(--primary) var(--slider-value), var(--muted) var(--slider-value)); + } + &::-moz-range-thumb { + @apply appearance-none border-primary bg-background ring-ring/50 block size-4 shrink-0 rounded-full border shadow-sm -mt-1.25; + } + &::-moz-range-track { + @apply appearance-none rounded-full h-1.5 w-full; + background: linear-gradient(to right, var(--primary) var(--slider-value), var(--muted) var(--slider-value)); + } + &::-ms-thumb { + @apply appearance-none border-primary bg-background ring-ring/50 block size-4 shrink-0 rounded-full border shadow-sm -mt-1.25; + } + &::-ms-track { + @apply appearance-none rounded-full h-1.5 w-full; + } + &::-ms-fill-lower { + @apply bg-primary rounded-full; + } + &::-ms-fill-upper { + @apply bg-muted rounded-full; + } + } +} \ No newline at end of file diff --git a/src/css/components/form/select.css b/src/css/components/form/select.css new file mode 100644 index 0000000..0160008 --- /dev/null +++ b/src/css/components/form/select.css @@ -0,0 +1,63 @@ +/* Select */ +@layer components { + .form select, + select.select { + @apply appearance-none border-input focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 dark:hover:bg-input/50 flex w-fit items-center justify-between gap-2 rounded-md border bg-transparent pl-3 pr-9 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 h-9; + @apply bg-[image:var(--chevron-down-icon-50)] bg-no-repeat bg-position-[center_right_0.75rem] bg-size-[1rem]; + + option, + optgroup { + @apply bg-popover text-popover-foreground; + } + } + *:not(select).select { + @apply relative inline-flex; + + [data-popover] { + @apply p-1; + + [role='option'] { + @apply aria-hidden:hidden [&_svg]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm pl-2 py-1.5 pr-7.5 text-sm outline-hidden select-none [&_svg]:shrink-0 [&_svg]:size-4 aria-disabled:opacity-50 aria-disabled:pointer-events-none disabled:opacity-50 disabled:pointer-events-none w-full truncate; + + &[aria-selected='true'] { + @apply bg-[image:var(--check-icon)] bg-no-repeat bg-position-[center_right_0.5rem] bg-size-[0.875rem]; + } + &.active, + &:focus-visible { + @apply bg-accent text-accent-foreground; + } + } + [role='listbox'] [role='heading'] { + @apply flex text-muted-foreground px-2 py-1.5 text-xs; + } + [role='listbox'] [role='group']:not(:has([role='option']:not([aria-hidden='true']))) { + @apply hidden; + } + [role='separator'] { + @apply border-border -mx-1 my-1; + } + > header { + @apply flex h-9 items-center gap-2 border-b px-3 -mx-1 -mt-1 mb-1; + + svg { + @apply size-4 shrink-0 opacity-50; + } + input[role='combobox'] { + @apply placeholder:text-muted-foreground flex h-10 flex-1 w-full rounded-md bg-transparent py-3 text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50 min-w-0; + } + } + [role='listbox']:not(:has([data-value]:not([aria-hidden='true'])))::before { + @apply flex items-center justify-center p-6 text-sm truncate; + } + [role='listbox'][data-empty]:not(:has([data-value]:not([aria-hidden='true'])))::before { + @apply content-[attr(data-empty)]; + } + [role='listbox']:not([data-empty]):not(:has([data-value]:not([aria-hidden='true'])))::before { + @apply content-['No_results_found']; + } + } + &:not([data-select-initialized]) [data-popover] [role='option'] { + @apply hover:bg-accent hover:text-accent-foreground; + } + } +} \ No newline at end of file diff --git a/src/css/components/form/switch.css b/src/css/components/form/switch.css new file mode 100644 index 0000000..289e998 --- /dev/null +++ b/src/css/components/form/switch.css @@ -0,0 +1,11 @@ +/* Switch */ +@layer components { + .form input[type='checkbox'][role='switch'], + .input[type='checkbox'][role='switch'] { + @apply appearance-none focus-visible:border-ring focus-visible:ring-ring/50 inline-flex h-[1.15rem] w-8 shrink-0 items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50; + @apply bg-input dark:bg-input/80 checked:bg-primary dark:checked:bg-primary; + @apply before:content-[''] before:pointer-events-none before:block before:size-4 before:rounded-full before:ring-0 before:transition-all; + @apply before:bg-background dark:before:bg-foreground; + @apply dark:checked:before:bg-primary-foreground checked:before:ms-3.5; + } +} \ No newline at end of file diff --git a/src/css/components/form/textarea.css b/src/css/components/form/textarea.css new file mode 100644 index 0000000..9c53448 --- /dev/null +++ b/src/css/components/form/textarea.css @@ -0,0 +1,7 @@ +/* Textarea */ +@layer components { + .form textarea, + .textarea { + @apply border-input placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 flex field-sizing-content min-h-16 w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 md:text-sm; + } +} \ No newline at end of file diff --git a/src/css/components/popover.css b/src/css/components/popover.css new file mode 100644 index 0000000..f2c321f --- /dev/null +++ b/src/css/components/popover.css @@ -0,0 +1,71 @@ +/* Popover */ +@layer components { + [data-popover] { + @apply absolute bg-popover text-popover-foreground overflow-x-hidden overflow-y-auto rounded-md border shadow-md z-50 visible opacity-100 scale-100 min-w-full w-max transition-all; + + &[aria-hidden='true'] { + @apply invisible opacity-0 scale-95; + + &:not([data-side]), + &[data-side='bottom'] { + @apply -translate-y-2; + } + &[data-side='top'] { + @apply translate-y-2; + } + &[data-side='left'] { + @apply translate-x-2; + } + &[data-side='right'] { + @apply -translate-x-2; + } + } + &:not([data-side]), + &[data-side='bottom'] { + @apply mt-1 top-full; + } + &[data-side='top'] { + @apply mb-1 bottom-full; + } + &[data-side='left'] { + @apply mr-1 right-full; + } + &[data-side='right'] { + @apply ml-1 left-full; + } + &:not([data-side]), + &[data-side='bottom'], + &[data-side='top'] { + &:not([data-align]), + &[data-align='start'] { + @apply left-0; + } + &[data-align='end'] { + @apply right-0; + } + &[data-align='center'] { + @apply left-1/2 -translate-x-1/2; + } + } + &[data-side='left'], + &[data-side='right'] { + &:not([data-align]), + &[data-align='start'] { + @apply top-0; + } + &[data-align='end'] { + @apply bottom-0; + } + &[data-align='center'] { + @apply top-1/2 -translate-y-1/2; + } + } + } + .popover { + @apply relative inline-flex; + + [data-popover] { + @apply p-4; + } + } +} \ No newline at end of file diff --git a/src/css/components/sidebar.css b/src/css/components/sidebar.css new file mode 100644 index 0000000..92122f7 --- /dev/null +++ b/src/css/components/sidebar.css @@ -0,0 +1,119 @@ +/* Sidebar */ +.sidebar { + &:not([data-sidebar-initialized]) { + @apply max-md:hidden; + } + &:not([aria-hidden]), + &[aria-hidden=false] { + @apply max-md:bg-black/50 max-md:fixed max-md:inset-0 max-md:z-40; + } + nav { + @apply bg-sidebar text-sidebar-foreground flex flex-col w-(--sidebar-mobile-width) md:w-(--sidebar-width) fixed inset-y-0 z-50 transition-transform ease-in-out duration-300; + } + & + * { + @apply transition-[margin] ease-in-out duration-300; + } + &:not([data-side]), + &[data-side=left] { + nav { + @apply left-0 border-r; + } + & + * { + @apply relative md:ml-(--sidebar-width); + } + &[aria-hidden=true] { + nav { + @apply -translate-x-full; + } + & + * { + @apply md:ml-0; + } + } + } + &[data-side=right] { + nav { + @apply right-0 border-l; + } + & + * { + @apply relative md:mr-(--sidebar-width); + } + &[aria-hidden=true] { + nav { + @apply translate-x-full; + } + & + * { + @apply md:mr-0; + } + } + } + nav { + > header, + > footer { + @apply flex flex-col gap-2 p-2; + } + [role=separator] { + @apply border-sidebar-border mx-2 w-auto; + } + > section { + @apply flex min-h-0 flex-1 flex-col gap-2 overflow-y-auto; + + > [role=group] { + @apply relative flex w-full min-w-0 flex-col p-2; + } + h3 { + @apply text-sidebar-foreground/70 ring-sidebar-ring flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium outline-hidden transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0; + } + ul { + @apply flex w-full min-w-0 flex-col gap-1; + + li { + @apply relative; + + > a, + > details > summary { + @apply flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-hidden ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&[aria-current=page]]:bg-sidebar-accent [&[aria-current=page]]:font-medium [&[aria-current=page]]:text-sidebar-accent-foreground [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0; + + &:not([data-variant]), + &[data-variant=default] { + @apply hover:bg-sidebar-accent hover:text-sidebar-accent-foreground; + } + &[data-variant=outline] { + @apply bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]; + } + &:not([data-size]), + &[data-size=default] { + @apply h-8 text-sm; + } + &[data-size=sm] { + @apply h-7 text-xs; + } + &[data-size=lg] { + @apply h-12 text-sm group-data-[collapsible=icon]:p-0!; + } + } + > details { + &:not([open]) { + > summary { + &::after { + @apply -rotate-90; + } + } + } + > summary { + &::after { + @apply content-[''] block size-3.5 bg-primary ml-auto transition-transform ease-linear; + @apply mask-[image:var(--chevron-down-icon)] mask-size-[1rem] mask-no-repeat mask-center; + } + } + &::details-content { + @apply px-3.5; + } + } + } + ul { + @apply border-sidebar-border flex min-w-0 translate-x-px flex-col gap-1 border-l px-2.5 py-0.5 w-full; + } + } + } + } +} \ No newline at end of file diff --git a/src/css/components/table.css b/src/css/components/table.css new file mode 100644 index 0000000..619fe2b --- /dev/null +++ b/src/css/components/table.css @@ -0,0 +1,27 @@ +/* Tables */ +@layer components { + .table { + @apply w-full caption-bottom text-sm; + thead { + @apply [&_tr]:border-b; + } + tbody { + @apply [&_tr:last-child]:border-0; + } + tfoot { + @apply bg-muted/50 border-t font-medium [&>tr]:last:border-b-0; + } + tr { + @apply hover:bg-muted/50 border-b transition-colors; + } + th { + @apply text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]; + } + td { + @apply p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]; + } + caption { + @apply text-muted-foreground mt-4 text-sm; + } + } +} \ No newline at end of file diff --git a/src/css/components/tabs.css b/src/css/components/tabs.css new file mode 100644 index 0000000..30aca66 --- /dev/null +++ b/src/css/components/tabs.css @@ -0,0 +1,21 @@ +/* Tabs */ +@layer components { + .tabs { + @apply flex flex-col gap-2; + + [role='tablist'] { + @apply bg-muted text-muted-foreground inline-flex h-9 w-fit items-center justify-center rounded-lg p-[3px]; + + [role='tab'] { + @apply focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring text-foreground dark:text-muted-foreground inline-flex h-[calc(100%_-_1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4; + + &[aria-selected='true'] { + @apply bg-background dark:text-foreground dark:border-input dark:bg-input/30 shadow-sm; + } + } + } + [role='tabpanel'] { + @apply flex-1 outline-none; + } + } +} \ No newline at end of file diff --git a/src/css/components/toast.css b/src/css/components/toast.css new file mode 100644 index 0000000..c71a7b2 --- /dev/null +++ b/src/css/components/toast.css @@ -0,0 +1,57 @@ +/* Toasts */ +@layer components { + .toaster { + @apply fixed bottom-0 p-4 pointer-events-none z-50 w-full sm:max-w-90 flex flex-col-reverse; + + &:not([data-align]), + &[data-align='end'] { + @apply right-0; + } + &[data-align='start'] { + @apply left-0; + } + &[data-align='center'] { + @apply left-1/2 -translate-x-1/2; + } + .toast { + @apply pointer-events-auto w-full mt-4 animate-[toast-up_0.3s_ease-in-out] grid grid-rows-[1fr] transition-[grid-template-rows,opacity,margin] duration-300 ease-in-out; + + .toast-content { + @apply text-popover-foreground text-[13px] bg-popover border shadow-lg rounded-lg overflow-hidden flex gap-2.5 p-3 items-center; + + svg { + @apply size-4 shrink-0; + } + section { + h2 { + @apply font-medium tracking-tight; + } + p { + @apply text-muted-foreground; + } + } + footer { + @apply ml-auto flex flex-col gap-2; + + [data-toast-action], + [data-toast-cancel] { + @apply h-6 px-2.5 text-xs; + } + } + } + &[aria-hidden='true'] { + @apply grid-rows-[0fr] opacity-0 m-0 border-0 p-0 overflow-hidden; + + .toast-content { + @apply border-0; + } + } + } + } +} +@keyframes toast-up { + from { + opacity: 0; + transform: translateY(100%); + } +} \ No newline at end of file diff --git a/src/css/components/tooltip.css b/src/css/components/tooltip.css new file mode 100644 index 0000000..678775e --- /dev/null +++ b/src/css/components/tooltip.css @@ -0,0 +1,56 @@ +/* Tooltip */ +@layer components { + [data-tooltip] { + @apply relative; + + &:before { + @apply absolute content-[attr(data-tooltip)] bg-primary text-primary-foreground z-50 truncate max-w-xs w-fit rounded-md px-3 py-1.5 text-xs invisible opacity-0 scale-95 transition-all pointer-events-none; + } + &:hover:before { + @apply visible opacity-100 scale-100; + } + &:focus-visible:not(:hover):before { + @apply hidden; + } + &:not([data-side]), + &[data-side='top'] { + @apply before:bottom-full before:mb-1.5 before:translate-y-2 hover:before:translate-y-0 ; + } + &[data-side='bottom'] { + @apply before:top-full before:mt-1.5 before:-translate-y-2 hover:before:translate-y-0 ; + } + &:not([data-side]), + &[data-side='top'], + &[data-side='bottom'] { + &[data-align='start'] { + @apply before:left-0; + } + &[data-align='end'] { + @apply before:right-0; + } + &:not([data-align]), + &[data-align='center'] { + @apply before:left-1/2 before:-translate-x-1/2; + } + } + &[data-side='left'] { + @apply before:right-full before:mr-1.5 before:translate-x-2 hover:before:translate-x-0; + } + &[data-side='right'] { + @apply before:left-full before:ml-1.5 before:-translate-x-2 hover:before:translate-x-0; + } + &[data-side='left'], + &[data-side='right'] { + &[data-align='start'] { + @apply before:top-0; + } + &[data-align='end'] { + @apply before:bottom-0; + } + &:not([data-align]), + &[data-align='center'] { + @apply before:top-1/2 before:-translate-y-1/2; + } + } + } +} \ No newline at end of file