rizzo-css 0.0.65 → 0.0.68
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/bin/rizzo-css.js +6 -6
- package/dist/rizzo.min.css +28 -4
- package/package.json +2 -2
- package/scaffold/astro/Calendar.astro +183 -0
- package/scaffold/astro/Carousel.astro +125 -0
- package/scaffold/astro/Footer.astro +1 -1
- package/scaffold/astro/base/README-RIZZO.md +1 -1
- package/scaffold/astro/variants/full/README-RIZZO.md +1 -1
- package/scaffold/svelte/Button.svelte +1 -1
- package/scaffold/svelte/Calendar.svelte +121 -0
- package/scaffold/svelte/Carousel.svelte +86 -0
- package/scaffold/svelte/base/README-RIZZO.md +1 -1
- package/scaffold/svelte/index.ts +2 -0
- package/scaffold/svelte/variants/full/README-RIZZO.md +1 -1
- package/scaffold/vanilla/README-RIZZO.md +2 -2
- package/scaffold/vanilla/components/accordion.html +18 -0
- package/scaffold/vanilla/components/alert-dialog.html +18 -0
- package/scaffold/vanilla/components/alert.html +18 -0
- package/scaffold/vanilla/components/aspect-ratio.html +18 -0
- package/scaffold/vanilla/components/avatar.html +18 -0
- package/scaffold/vanilla/components/back-to-top.html +18 -0
- package/scaffold/vanilla/components/badge.html +18 -0
- package/scaffold/vanilla/components/breadcrumb.html +18 -0
- package/scaffold/vanilla/components/button-group.html +18 -0
- package/scaffold/vanilla/components/button.html +18 -0
- package/scaffold/vanilla/components/calendar.html +764 -0
- package/scaffold/vanilla/components/cards.html +18 -0
- package/scaffold/vanilla/components/carousel.html +764 -0
- package/scaffold/vanilla/components/collapsible.html +18 -0
- package/scaffold/vanilla/components/context-menu.html +18 -0
- package/scaffold/vanilla/components/copy-to-clipboard.html +18 -0
- package/scaffold/vanilla/components/dashboard.html +18 -0
- package/scaffold/vanilla/components/divider.html +18 -0
- package/scaffold/vanilla/components/docs-sidebar.html +18 -0
- package/scaffold/vanilla/components/dropdown.html +18 -0
- package/scaffold/vanilla/components/empty.html +18 -0
- package/scaffold/vanilla/components/font-switcher.html +18 -0
- package/scaffold/vanilla/components/footer.html +18 -0
- package/scaffold/vanilla/components/forms.html +18 -0
- package/scaffold/vanilla/components/hover-card.html +18 -0
- package/scaffold/vanilla/components/icons.html +18 -0
- package/scaffold/vanilla/components/index.html +20 -0
- package/scaffold/vanilla/components/input-group.html +18 -0
- package/scaffold/vanilla/components/kbd.html +18 -0
- package/scaffold/vanilla/components/label.html +18 -0
- package/scaffold/vanilla/components/modal.html +18 -0
- package/scaffold/vanilla/components/navbar.html +18 -0
- package/scaffold/vanilla/components/pagination.html +18 -0
- package/scaffold/vanilla/components/popover.html +18 -0
- package/scaffold/vanilla/components/progress-bar.html +18 -0
- package/scaffold/vanilla/components/resizable.html +18 -0
- package/scaffold/vanilla/components/scroll-area.html +18 -0
- package/scaffold/vanilla/components/search.html +18 -0
- package/scaffold/vanilla/components/separator.html +18 -0
- package/scaffold/vanilla/components/settings.html +18 -0
- package/scaffold/vanilla/components/sheet.html +18 -0
- package/scaffold/vanilla/components/skeleton.html +18 -0
- package/scaffold/vanilla/components/slider.html +18 -0
- package/scaffold/vanilla/components/sound-effects.html +18 -0
- package/scaffold/vanilla/components/spinner.html +18 -0
- package/scaffold/vanilla/components/switch.html +18 -0
- package/scaffold/vanilla/components/table.html +18 -0
- package/scaffold/vanilla/components/tabs.html +18 -0
- package/scaffold/vanilla/components/theme-switcher.html +18 -0
- package/scaffold/vanilla/components/toast.html +18 -0
- package/scaffold/vanilla/components/toggle-group.html +18 -0
- package/scaffold/vanilla/components/toggle.html +18 -0
- package/scaffold/vanilla/components/tooltip.html +18 -0
- package/scaffold/vanilla/index.html +18 -0
package/README.md
CHANGED
|
@@ -16,7 +16,7 @@ bun add rizzo-css
|
|
|
16
16
|
|
|
17
17
|
The package works with **npm**, **pnpm**, **yarn**, and **bun**. After install, run the CLI with your manager’s runner: `npx` (npm/yarn), `pnpm dlx`, or `bunx`.
|
|
18
18
|
|
|
19
|
-
**Quick start (no install):** `npx rizzo-css init` — choose **framework** (Vanilla, Astro, Svelte, React, or Vue), then **add to existing** or **create new**. Both flows use the **same template choice**: **Landing** (hero/features), **Docs** (sidebar + sample doc), **Dashboard** (sidebar + stats/table), or **Full** (clone of the docs site). Landing/Docs/Dashboard = component picker (all
|
|
19
|
+
**Quick start (no install):** `npx rizzo-css init` — choose **framework** (Vanilla, Astro, Svelte, React, or Vue), then **add to existing** or **create new**. Both flows use the **same template choice**: **Landing** (hero/features), **Docs** (sidebar + sample doc), **Dashboard** (sidebar + stats/table), or **Full** (clone of the docs site). Landing/Docs/Dashboard = component picker (all 52 or pick). We **never overwrite your existing files**; any skipped content is in **RIZZO-SETUP.md**. You must add the `<link>` yourself (CLI prints the exact tag). Non-interactive: `npx rizzo-css init --yes --framework vanilla|astro|svelte|react|vue --template landing|docs|dashboard|full` or `npx rizzo-css add --template landing|docs|dashboard|full`. Optional **rizzo-css.json** and `add --install-package`. All get the **same CSS and component styles**. To use the **official Svelte or Astro create command** plus Rizzo, create the app first, then run `npx rizzo-css add`:
|
|
20
20
|
|
|
21
21
|
```bash
|
|
22
22
|
npm create svelte@latest my-app && cd my-app && npx rizzo-css add
|
|
@@ -25,7 +25,7 @@ npm create astro@latest my-app && cd my-app && npx rizzo-css add
|
|
|
25
25
|
|
|
26
26
|
**Running the CLI:** npm → `npx`; pnpm → `pnpm dlx`; yarn → `npx` (Yarn 1 has no `dlx`; works with Yarn 2+ too); bun → `bunx`. The [docs site](https://rizzo-css.vercel.app/docs/getting-started) tabs show the correct command for each manager.
|
|
27
27
|
|
|
28
|
-
**Same flow for new and existing:** Both prompt for **Landing** | **Docs** | **Dashboard** | **Full**. Landing/Docs/Dashboard = component picker (all
|
|
28
|
+
**Same flow for new and existing:** Both prompt for **Landing** | **Docs** | **Dashboard** | **Full**. Landing/Docs/Dashboard = component picker (all 52 or pick). Full = site clone (no picker); also writes **RIZZO-SNIPPET.txt** (link + theme) unless `--no-snippet`. `npx rizzo-css doctor` checks config and CSS path. `npx rizzo-css theme` lists themes.
|
|
29
29
|
|
|
30
30
|
| | **Create new** (`init` → new) | **Add to existing** (`add` or `init` → existing) |
|
|
31
31
|
|---|------------------------------|--------------------------------------------------|
|
|
@@ -72,7 +72,7 @@ import 'rizzo-css';
|
|
|
72
72
|
**Without a bundler (plain HTML):** Use a CDN. Both unpkg and jsDelivr resolve the package root to the built CSS (via the `unpkg` / `jsdelivr` fields in this package). For reliability or to pin a version, use the explicit path:
|
|
73
73
|
|
|
74
74
|
```html
|
|
75
|
-
<!-- unpkg (pin version: replace @latest with @0.0.
|
|
75
|
+
<!-- unpkg (pin version: replace @latest with @0.0.68 or any version) -->
|
|
76
76
|
<link rel="stylesheet" href="https://unpkg.com/rizzo-css@latest/dist/rizzo.min.css" />
|
|
77
77
|
|
|
78
78
|
<!-- or jsDelivr -->
|
package/bin/rizzo-css.js
CHANGED
|
@@ -196,7 +196,7 @@ const THEMES = [...DARK_THEMES, ...LIGHT_THEMES];
|
|
|
196
196
|
const VALID_THEME_VALUES = ['system', ...THEMES];
|
|
197
197
|
// Components available for scaffold (must match scaffold/svelte and scaffold/astro; missing files are skipped on copy)
|
|
198
198
|
const SVELTE_COMPONENTS = [
|
|
199
|
-
'Button', 'Badge', 'Card', 'Dashboard', 'Divider', 'DocsSidebar', 'Footer', 'Spinner', 'ProgressBar', 'Avatar', 'Alert',
|
|
199
|
+
'Button', 'Badge', 'Card', 'Calendar', 'Carousel', 'Dashboard', 'Divider', 'DocsSidebar', 'Footer', 'Spinner', 'ProgressBar', 'Avatar', 'Alert',
|
|
200
200
|
'BackToTop', 'Breadcrumb', 'FormGroup', 'Input', 'InputGroup', 'Checkbox', 'Textarea', 'Select', 'Radio',
|
|
201
201
|
'CopyToClipboard', 'Tooltip', 'Pagination', 'Tabs', 'Accordion', 'Dropdown',
|
|
202
202
|
'Modal', 'Toast', 'Table', 'ThemeSwitcher', 'FontSwitcher', 'SoundEffects',
|
|
@@ -205,7 +205,7 @@ const SVELTE_COMPONENTS = [
|
|
|
205
205
|
'Slider', 'Sheet', 'Popover', 'Toggle', 'ToggleGroup', 'ScrollArea', 'HoverCard', 'ContextMenu', 'ResizablePaneGroup', 'ResizablePane', 'ResizableHandle',
|
|
206
206
|
];
|
|
207
207
|
const ASTRO_COMPONENTS = [
|
|
208
|
-
'Button', 'Badge', 'Card', 'Dashboard', 'Divider', 'DocsSidebar', 'Footer', 'Spinner', 'ProgressBar', 'Avatar', 'Alert',
|
|
208
|
+
'Button', 'Badge', 'Card', 'Calendar', 'Carousel', 'Dashboard', 'Divider', 'DocsSidebar', 'Footer', 'Spinner', 'ProgressBar', 'Avatar', 'Alert',
|
|
209
209
|
'BackToTop', 'Breadcrumb', 'FormGroup', 'Input', 'InputGroup', 'Checkbox', 'Textarea', 'Select', 'Radio',
|
|
210
210
|
'CopyToClipboard', 'Tooltip', 'Pagination', 'Tabs', 'Accordion', 'Dropdown',
|
|
211
211
|
'Modal', 'Toast', 'Table', 'ThemeSwitcher', 'FontSwitcher', 'SoundEffects',
|
|
@@ -218,7 +218,7 @@ const VUE_COMPONENTS = [...ASTRO_COMPONENTS];
|
|
|
218
218
|
|
|
219
219
|
// Base set for Manual: all interactive components we ship (so manual has a full working set). Full includes everything (same list).
|
|
220
220
|
const RECOMMENDED_COMPONENTS = [
|
|
221
|
-
'Button', 'Badge', 'Card', 'Dashboard', 'Divider', 'DocsSidebar', 'Footer', 'Spinner', 'ProgressBar', 'Avatar', 'Alert',
|
|
221
|
+
'Button', 'Badge', 'Card', 'Calendar', 'Carousel', 'Dashboard', 'Divider', 'DocsSidebar', 'Footer', 'Spinner', 'ProgressBar', 'Avatar', 'Alert',
|
|
222
222
|
'BackToTop', 'Breadcrumb', 'FormGroup', 'Input', 'Checkbox', 'Textarea', 'Select', 'Radio',
|
|
223
223
|
'CopyToClipboard', 'Tooltip', 'Pagination', 'Tabs', 'Accordion', 'Dropdown',
|
|
224
224
|
'Modal', 'Toast', 'Table', 'ThemeSwitcher', 'FontSwitcher', 'SoundEffects',
|
|
@@ -290,7 +290,7 @@ function logAddedDeps(selected, expanded, framework) {
|
|
|
290
290
|
// Vanilla scaffold: component name (same as ASTRO_COMPONENTS) -> components/*.html slug. New components (label, kbd, etc.) have stub pages in scaffold/vanilla/components/.
|
|
291
291
|
const VANILLA_COMPONENT_SLUGS = {
|
|
292
292
|
Accordion: 'accordion', Alert: 'alert', AlertDialog: 'alert-dialog', AspectRatio: 'aspect-ratio', Avatar: 'avatar', BackToTop: 'back-to-top', Badge: 'badge', Breadcrumb: 'breadcrumb', Button: 'button', ButtonGroup: 'button-group',
|
|
293
|
-
Card: 'cards', Checkbox: 'forms', Collapsible: 'collapsible', ContextMenu: 'context-menu', CopyToClipboard: 'copy-to-clipboard', Dashboard: 'dashboard', Divider: 'divider', DocsSidebar: 'docs-sidebar', Dropdown: 'dropdown',
|
|
293
|
+
Card: 'cards', Calendar: 'calendar', Carousel: 'carousel', Checkbox: 'forms', Collapsible: 'collapsible', ContextMenu: 'context-menu', CopyToClipboard: 'copy-to-clipboard', Dashboard: 'dashboard', Divider: 'divider', DocsSidebar: 'docs-sidebar', Dropdown: 'dropdown',
|
|
294
294
|
Empty: 'empty', Footer: 'footer', FormGroup: 'forms', HoverCard: 'hover-card', Input: 'forms', InputGroup: 'input-group', Icons: 'icons', Kbd: 'kbd', Label: 'label',
|
|
295
295
|
Modal: 'modal', Navbar: 'navbar', Pagination: 'pagination', Popover: 'popover', ProgressBar: 'progress-bar',
|
|
296
296
|
Radio: 'forms', ResizableHandle: 'resizable', ResizablePane: 'resizable', ResizablePaneGroup: 'resizable', ScrollArea: 'scroll-area', Search: 'search', Separator: 'separator', Select: 'forms', Settings: 'settings', Sheet: 'sheet',
|
|
@@ -1124,7 +1124,7 @@ Commands:
|
|
|
1124
1124
|
Options (init):
|
|
1125
1125
|
--yes Non-interactive: scaffold new in cwd with defaults (framework: astro, template: landing)
|
|
1126
1126
|
--path <dir> Project directory (relative to cwd or absolute). Scaffold and run install there. With --yes; interactive: "Enter path" option.
|
|
1127
|
-
--framework <fw> vanilla | astro | svelte | react | vue (same
|
|
1127
|
+
--framework <fw> vanilla | astro | svelte | react | vue (same 52 components each)
|
|
1128
1128
|
--template <t> create new: css-only | landing | docs | dashboard | full (default: landing). add: same options.
|
|
1129
1129
|
--package-manager <pm> npm | pnpm | yarn | bun (with --yes, or skip PM prompt when interactive)
|
|
1130
1130
|
--install After scaffolding, run package manager install in project directory (no prompt)
|
|
@@ -1189,7 +1189,7 @@ Component dependencies (Full template):
|
|
|
1189
1189
|
Full list of available components and what relies on what: npx rizzo-css help components
|
|
1190
1190
|
|
|
1191
1191
|
Frameworks:
|
|
1192
|
-
Scaffolds (init/add): Vanilla, Astro, Svelte, React, Vue. Same
|
|
1192
|
+
Scaffolds (init/add): Vanilla, Astro, Svelte, React, Vue. Same 52 components in each framework’s syntax; same CSS and BEM. Docs: https://rizzo-css.vercel.app/docs/react and Vue.
|
|
1193
1193
|
|
|
1194
1194
|
Docs: https://rizzo-css.vercel.app
|
|
1195
1195
|
`);
|
package/dist/rizzo.min.css
CHANGED
|
@@ -4,6 +4,13 @@ ol[role="list"],ul[role="list"]{list-style:none}body{line-height:1.5;margin:0;ma
|
|
|
4
4
|
button,h1, h2, h3, h4, h5, h6, input, label{line-height:1.1}h1, h2, h3, h4, h5, h6{text-wrap:balance}a:not([class]){-webkit-text-decoration-skip:ink;color:currentcolor;text-decoration-skip-ink:auto}img,
|
|
5
5
|
picture{display:block;max-width:100%} button,input, select,
|
|
6
6
|
textarea{font-family:inherit;font-size:inherit}textarea:not([rows]){min-height:10em}:target{scroll-margin-block:5ex}body,html{background-color:var(--background);color:var(--text);transition:color var(--theme-transition-duration) ease-out,background-color var(--theme-transition-duration) ease-out,border-color var(--theme-transition-duration) ease-out}a{color:var(--accent-fg);text-decoration:none}a:hover{color:var(--accent-fg-hover)}
|
|
7
|
+
.dashboard__nav a,.dashboard__nav a:hover,
|
|
8
|
+
.dashboard__nav-link,
|
|
9
|
+
.dashboard__nav-link:hover,
|
|
10
|
+
.docs-layout-demo__nav a,
|
|
11
|
+
.docs-layout-demo__nav a:hover,
|
|
12
|
+
.docs-layout-demo__nav-link,
|
|
13
|
+
.docs-layout-demo__nav-link:hover,
|
|
7
14
|
.docs-sidebar a,
|
|
8
15
|
.navbar a,
|
|
9
16
|
[role="menu"] a,
|
|
@@ -31,7 +38,7 @@ a.docs-layout-demo__nav-link--active{color:var(--accent-text)!important}::-moz-s
|
|
|
31
38
|
.btn:active,button:active{opacity:var(--opacity-90)}
|
|
32
39
|
.btn:disabled,button:disabled{cursor:not-allowed;opacity:var(--opacity-50)}.btn-primary:disabled:hover{background-color:var(--accent);color:var(--accent-text)}.btn-success:disabled:hover{background-color:var(--success);color:var(--success-text-on-solid)}.btn-warning:disabled:hover{background-color:var(--warning);color:var(--warning-text-on-solid)}.btn-error:disabled:hover{background-color:var(--error);color:var(--error-text-on-solid)}.btn-info:disabled:hover{background-color:var(--info);color:var(--info-text-on-solid)}.btn-primary{background-color:var(--accent);color:var(--accent-text)}.btn-primary:hover{background-color:var(--accent-hover);color:var(--accent-text-on-hover)}a.btn-primary,
|
|
33
40
|
a.btn-primary:visited{color:var(--accent-text)!important}a.btn-primary:hover,
|
|
34
|
-
a.btn-primary:visited:hover{color:var(--accent-text-on-hover)!important}.btn-success{background-color:var(--success);color:var(--success-text-on-solid)}.btn-success:hover{background-color:var(--success-hover);color:var(--text-on-solid-hover)}.btn-warning{background-color:var(--warning);color:var(--warning-text-on-solid)}.btn-warning:hover{background-color:var(--warning-hover);color:var(--text-on-solid-hover)}.btn-error{background-color:var(--error);color:var(--error-text-on-solid)}.btn-error:hover{background-color:var(--error-hover);color:var(--text-on-solid-hover)}.btn-info{background-color:var(--info);color:var(--info-text-on-solid)}.btn-info:hover{background-color:var(--info-hover);color:var(--text-on-solid-hover)}.btn-outline{background-color:transparent;border:var(--border-width) solid var(--accent-fg);color:var(--accent-fg)}.btn-outline:hover{background-color:var(--accent);color:var(--accent-text)}
|
|
41
|
+
a.btn-primary:visited:hover{color:var(--accent-text-on-hover)!important}.btn-success{background-color:var(--success);color:var(--success-text-on-solid)}.btn-success:hover{background-color:var(--success-hover);color:var(--text-on-solid-hover)}.btn-warning{background-color:var(--warning);color:var(--warning-text-on-solid)}.btn-warning:hover{background-color:var(--warning-hover);color:var(--text-on-solid-hover)}.btn-error{background-color:var(--error);color:var(--error-text-on-solid)}.btn-error:hover{background-color:var(--error-hover);color:var(--text-on-solid-hover)}.btn-info{background-color:var(--info);color:var(--info-text-on-solid)}.btn-info:hover{background-color:var(--info-hover);color:var(--text-on-solid-hover)}.btn-outline{background-color:transparent;border:var(--border-width) solid var(--accent-fg);color:var(--accent-fg)}.btn-outline:hover{background-color:var(--accent);color:var(--accent-text)}.btn-ghost{background-color:transparent}.btn-ghost,.btn-ghost:hover{border-color:transparent;color:var(--accent-fg)}.btn-ghost:hover{background-color:var(--border)}.btn-secondary{background-color:var(--background-alt)}.btn-secondary,.btn-secondary:hover{border-color:var(--border);color:var(--text)}.btn-secondary:hover{background-color:var(--border)}.btn--sm{font-size:var(--font-size-sm);padding:var(--spacing-1) var(--spacing-3)}.btn--lg{font-size:var(--font-size-lg);padding:var(--spacing-3) var(--spacing-6)}
|
|
35
42
|
input[type="date"],
|
|
36
43
|
input[type="datetime-local"],
|
|
37
44
|
input[type="email"],
|
|
@@ -93,7 +100,7 @@ input[type="radio"]:disabled{cursor:not-allowed;opacity:var(--opacity-60)}.check
|
|
|
93
100
|
.input-group__wrapper:has(.input-group__input:disabled){cursor:not-allowed;opacity:var(--opacity-60)}.input-group--error .input-group__wrapper{border-color:var(--error)}.input-group--error .input-group__wrapper:focus-within{border-color:var(--error);box-shadow:0 0 0 var(--spacing-3) oklch(from var(--error) l c h/10%)}.input-group--success .input-group__wrapper{border-color:var(--success)}.input-group--success .input-group__wrapper:focus-within{border-color:var(--success);box-shadow:0 0 0 var(--spacing-3) oklch(from var(--success) l c h/10%)}.form-row{display:flex;gap:var(--spacing-4);margin-bottom:var(--spacing-6)}.form-row .form-group{flex:1;margin-bottom:0}@media (width <= 640px){.form-row{flex-direction:column;gap:var(--spacing-0)}}main{max-width:100%;overflow-x:clip;width:100%}.layout__container{box-sizing:border-box;min-width:0;padding:0;width:100%}.container,.layout__container{margin:0 auto;max-width:var(--container-default)}.container{padding:0 var(--content-padding-x)}.card{background-color:var(--background-alt);border:var(--border-width) solid var(--border);border-radius:var(--radius-lg);box-sizing:border-box;color:var(--text);display:flex;flex-direction:column;min-width:0;padding:var(--spacing-6);transition:border-color var(--transition-base),box-shadow var(--transition-base),transform var(--transition-base);width:100%}.card--elevated{border:none;box-shadow:var(--shadow-md)}.card--elevated:hover{box-shadow:var(--shadow-lg);transform:translateY(calc(var(--spacing-0-125)*-1))}.card--outlined{background-color:transparent;border:var(--outline-width) solid var(--border)}.card--outlined:hover{border-color:var(--accent)}.card--filled{background-color:var(--background);border:var(--border-width) solid var(--border)}.card__header{border-bottom:var(--border-width) solid var(--border);margin-bottom:var(--spacing-4);padding-bottom:var(--spacing-4)}.card__header:empty{display:none}.card__body{flex:1}.card__body:empty{display:none}.card__body h2,
|
|
94
101
|
.card__body h3,
|
|
95
102
|
.card__body h4{color:var(--text)}.card a{text-decoration:none}
|
|
96
|
-
.card a:hover,.card:hover a{text-decoration:underline;text-underline-offset:.15em}.card__footer{border-top:var(--border-width) solid var(--border);margin-top:var(--spacing-4);padding-top:var(--spacing-4)}.card__footer:empty{display:none}.card__image{border-radius:var(--radius-lg) var(--radius-lg) 0 0;display:block;height:auto;margin:calc(var(--spacing-6)*-1) calc(var(--spacing-6)*-1) var(--spacing-6) calc(var(--spacing-6)*-1);-o-object-fit:cover;object-fit:cover;width:100%}.card:has(.card__image){padding-top:0}.card__image + .card__header{margin-top:0;padding-top:0}.card__title{color:var(--text);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);margin:0 0 var(--spacing-2) 0}.card__subtitle{color:var(--text-dim);font-size:var(--font-size-sm);margin:0}section{background-color:var(--background);color:var(--text)}.border{border:var(--border-width) solid var(--border)}.border-top{border-top:var(--border-width) solid var(--border)}.border-bottom{border-bottom:var(--border-width) solid var(--border)}.border-left{border-left:var(--border-width) solid var(--border)}.border-right{border-right:var(--border-width) solid var(--border)}.m-0{margin:0}.m-1{margin:.25rem}.m-2{margin:.5rem}.m-3{margin:.75rem}.m-4{margin:1rem}.m-5{margin:1.25rem}.m-6{margin:1.5rem}.m-8{margin:2rem}.m-10{margin:2.5rem}.m-12{margin:3rem}.m-16{margin:4rem}.m-20{margin:5rem}.m-24{margin:6rem}.m-auto{margin:auto}.mt-0{margin-top:0}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-10{margin-top:2.5rem}.mt-12{margin-top:3rem}.mt-16{margin-top:4rem}.mt-20{margin-top:5rem}.mt-24{margin-top:6rem}.mt-auto{margin-top:auto}.mr-0{margin-right:0}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mr-4{margin-right:1rem}.mr-5{margin-right:1.25rem}.mr-6{margin-right:1.5rem}.mr-8{margin-right:2rem}.mr-10{margin-right:2.5rem}.mr-12{margin-right:3rem}.mr-16{margin-right:4rem}.mr-20{margin-right:5rem}.mr-24{margin-right:6rem}.mr-auto{margin-right:auto}.mb-0{margin-bottom:0}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.mb-10{margin-bottom:2.5rem}.mb-12{margin-bottom:3rem}.mb-16{margin-bottom:4rem}.mb-20{margin-bottom:5rem}.mb-24{margin-bottom:6rem}.mb-auto{margin-bottom:auto}.ml-0{margin-left:0}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-4{margin-left:1rem}.ml-5{margin-left:1.25rem}.ml-6{margin-left:1.5rem}.ml-8{margin-left:2rem}.ml-10{margin-left:2.5rem}.ml-12{margin-left:3rem}.ml-16{margin-left:4rem}.ml-20{margin-left:5rem}.ml-24{margin-left:6rem}.ml-auto{margin-left:auto}.mx-0{margin-left:0;margin-right:0}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-3{margin-left:.75rem;margin-right:.75rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-5{margin-left:1.25rem;margin-right:1.25rem}.mx-6{margin-left:1.5rem;margin-right:1.5rem}.mx-8{margin-left:2rem;margin-right:2rem}.mx-10{margin-left:2.5rem;margin-right:2.5rem}.mx-12{margin-left:3rem;margin-right:3rem}.mx-16{margin-left:4rem;margin-right:4rem}.mx-20{margin-left:5rem;margin-right:5rem}.mx-24{margin-left:6rem;margin-right:6rem}.mx-auto{margin-left:auto;margin-right:auto}.my-0{margin-bottom:0;margin-top:0}.my-1{margin-bottom:.25rem;margin-top:.25rem}.my-2{margin-bottom:.5rem;margin-top:.5rem}.my-3{margin-bottom:.75rem;margin-top:.75rem}.my-4{margin-bottom:1rem;margin-top:1rem}.my-5{margin-bottom:1.25rem;margin-top:1.25rem}.my-6{margin-bottom:1.5rem;margin-top:1.5rem}.my-8{margin-bottom:2rem;margin-top:2rem}.my-10{margin-bottom:2.5rem;margin-top:2.5rem}.my-12{margin-bottom:3rem;margin-top:3rem}.my-16{margin-bottom:4rem;margin-top:4rem}.my-20{margin-bottom:5rem;margin-top:5rem}.my-24{margin-bottom:6rem;margin-top:6rem}.my-auto{margin-bottom:auto;margin-top:auto}.p-0{padding:0}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.p-10{padding:2.5rem}.p-12{padding:3rem}.p-16{padding:4rem}.p-20{padding:5rem}.p-24{padding:6rem}.pt-0{padding-top:0}.pt-1{padding-top:.25rem}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-5{padding-top:1.25rem}.pt-6{padding-top:1.5rem}.pt-8{padding-top:2rem}.pt-10{padding-top:2.5rem}.pt-12{padding-top:3rem}.pt-16{padding-top:4rem}.pt-20{padding-top:5rem}.pt-24{padding-top:6rem}.pr-0{padding-right:0}.pr-1{padding-right:.25rem}.pr-2{padding-right:.5rem}.pr-3{padding-right:.75rem}.pr-4{padding-right:1rem}.pr-5{padding-right:1.25rem}.pr-6{padding-right:1.5rem}.pr-8{padding-right:2rem}.pr-10{padding-right:2.5rem}.pr-12{padding-right:3rem}.pr-16{padding-right:4rem}.pr-20{padding-right:5rem}.pr-24{padding-right:6rem}.pb-0{padding-bottom:0}.pb-1{padding-bottom:.25rem}.pb-2{padding-bottom:.5rem}.pb-3{padding-bottom:.75rem}.pb-4{padding-bottom:1rem}.pb-5{padding-bottom:1.25rem}.pb-6{padding-bottom:1.5rem}.pb-8{padding-bottom:2rem}.pb-10{padding-bottom:2.5rem}.pb-12{padding-bottom:3rem}.pb-16{padding-bottom:4rem}.pb-20{padding-bottom:5rem}.pb-24{padding-bottom:6rem}.pl-0{padding-left:0}.pl-1{padding-left:.25rem}.pl-2{padding-left:.5rem}.pl-3{padding-left:.75rem}.pl-4{padding-left:1rem}.pl-5{padding-left:1.25rem}.pl-6{padding-left:1.5rem}.pl-8{padding-left:2rem}.pl-10{padding-left:2.5rem}.pl-12{padding-left:3rem}.pl-16{padding-left:4rem}.pl-20{padding-left:5rem}.pl-24{padding-left:6rem}.px-0{padding-left:0;padding-right:0}.px-1{padding-left:.25rem;padding-right:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.px-10{padding-left:2.5rem;padding-right:2.5rem}.px-12{padding-left:3rem;padding-right:3rem}.px-16{padding-left:4rem;padding-right:4rem}.px-20{padding-left:5rem;padding-right:5rem}.px-24{padding-left:6rem;padding-right:6rem}.py-0{padding-bottom:0;padding-top:0}.py-1{padding-bottom:.25rem;padding-top:.25rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.py-4{padding-bottom:1rem;padding-top:1rem}.py-5{padding-bottom:1.25rem;padding-top:1.25rem}.py-6{padding-bottom:1.5rem;padding-top:1.5rem}.py-8{padding-bottom:2rem;padding-top:2rem}.py-10{padding-bottom:2.5rem;padding-top:2.5rem}.py-12{padding-bottom:3rem;padding-top:3rem}.py-16{padding-bottom:4rem;padding-top:4rem}.py-20{padding-bottom:5rem;padding-top:5rem}.py-24{padding-bottom:6rem;padding-top:6rem}.container-sm{max-width:640px}.container-md,.container-sm{margin-left:auto;margin-right:auto;padding-left:var(--spacing-4);padding-right:var(--spacing-4)}.container-md{max-width:768px}.container-lg{max-width:1024px}.container-lg,.container-xl{margin-left:auto;margin-right:auto;padding-left:var(--spacing-4);padding-right:var(--spacing-4)}.container-xl{max-width:1280px}.container-2xl{max-width:1536px}.container-2xl,.container-full{margin-left:auto;margin-right:auto;padding-left:var(--spacing-4);padding-right:var(--spacing-4)}.container-full{max-width:100%}.w-auto{width:auto}.w-full{width:100%}.w-screen{width:100vw}.w-fit{width:-moz-fit-content;width:fit-content}.w-max{width:-moz-max-content;width:max-content}.w-min{width:-moz-min-content;width:min-content}.w-0{width:0}.w-1{width:.25rem}.w-2{width:.5rem}.w-3{width:.75rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-8{width:2rem}.w-10{width:2.5rem}.w-12{width:3rem}.w-16{width:4rem}.w-20{width:5rem}.w-24{width:6rem}.w-32{width:8rem}.w-40{width:10rem}.w-48{width:12rem}.w-56{width:14rem}.w-64{width:16rem}.h-auto{height:auto}.h-full{height:100%}.h-screen{height:100vh}.h-fit{height:-moz-fit-content;height:fit-content}.h-max{height:-moz-max-content;height:max-content}.h-min{height:-moz-min-content;height:min-content}.h-0{height:0}.h-1{height:.25rem}.h-2{height:.5rem}.h-3{height:.75rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-16{height:4rem}.h-20{height:5rem}.h-24{height:6rem}.h-32{height:8rem}.h-40{height:10rem}.h-48{height:12rem}.h-56{height:14rem}.h-64{height:16rem}.min-w-0{min-width:0}.min-w-full{min-width:100%}.min-w-min{min-width:-moz-min-content;min-width:min-content}.min-w-max{min-width:-moz-max-content;min-width:max-content}.min-w-fit{min-width:-moz-fit-content;min-width:fit-content}.min-h-0{min-height:0}.min-h-full{min-height:100%}.min-h-screen{min-height:100vh}.min-h-fit{min-height:-moz-fit-content;min-height:fit-content}.min-h-max{min-height:-moz-max-content;min-height:max-content}.min-h-min{min-height:-moz-min-content;min-height:min-content}.max-w-none{max-width:none}.max-w-xs{max-width:20rem}.max-w-sm{max-width:24rem}.max-w-md{max-width:28rem}.max-w-lg{max-width:32rem}.max-w-xl{max-width:36rem}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-5xl{max-width:64rem}.max-w-6xl{max-width:72rem}.max-w-7xl{max-width:80rem}.max-w-full{max-width:100%}.max-w-screen-sm{max-width:640px}.max-w-screen-md{max-width:768px}.max-w-screen-lg{max-width:1024px}.max-w-screen-xl{max-width:1280px}.max-w-screen-2xl{max-width:1536px}.max-h-none{max-height:none}.max-h-full{max-height:100%}.max-h-screen{max-height:100vh}.max-h-fit{max-height:-moz-fit-content;max-height:fit-content}.max-h-max{max-height:-moz-max-content;max-height:max-content}.max-h-min{max-height:-moz-min-content;max-height:min-content}.max-h-0{max-height:0}.max-h-1{max-height:.25rem}.max-h-2{max-height:.5rem}.max-h-3{max-height:.75rem}.max-h-4{max-height:1rem}.max-h-5{max-height:1.25rem}.max-h-6{max-height:1.5rem}.max-h-8{max-height:2rem}.max-h-10{max-height:2.5rem}.max-h-12{max-height:3rem}.max-h-16{max-height:4rem}.max-h-20{max-height:5rem}.max-h-24{max-height:6rem}.max-h-32{max-height:8rem}.max-h-40{max-height:10rem}.max-h-48{max-height:12rem}.max-h-56{max-height:14rem}.max-h-64{max-height:16rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.inline-grid{display:inline-grid}.table{display:table}.table-row{display:table-row}.table-cell{display:table-cell}.contents{display:contents}.list-item{display:list-item}.hidden{display:none}@media (width >= 640px){.sm\:block{display:block}.sm\:inline-block{display:inline-block}.sm\:inline{display:inline}.sm\:flex{display:flex}.sm\:inline-flex{display:inline-flex}.sm\:grid{display:grid}.sm\:inline-grid{display:inline-grid}.sm\:hidden{display:none}}@media (width >= 768px){.md\:block{display:block}.md\:inline-block{display:inline-block}.md\:inline{display:inline}.md\:flex{display:flex}.md\:inline-flex{display:inline-flex}.md\:grid{display:grid}.md\:inline-grid{display:inline-grid}.md\:hidden{display:none}}@media (width >= 1024px){.lg\:block{display:block}.lg\:inline-block{display:inline-block}.lg\:inline{display:inline}.lg\:flex{display:flex}.lg\:inline-flex{display:inline-flex}.lg\:grid{display:grid}.lg\:inline-grid{display:inline-grid}.lg\:hidden{display:none}}@media (width >= 1280px){.xl\:block{display:block}.xl\:inline-block{display:inline-block}.xl\:inline{display:inline}.xl\:flex{display:flex}.xl\:inline-flex{display:inline-flex}.xl\:grid{display:grid}.xl\:inline-grid{display:inline-grid}.xl\:hidden{display:none}}@media (width >= 1536px){.xxl\:block{display:block}.xxl\:inline-block{display:inline-block}.xxl\:inline{display:inline}.xxl\:flex{display:flex}.xxl\:inline-flex{display:inline-flex}.xxl\:grid{display:grid}.xxl\:inline-grid{display:inline-grid}.xxl\:hidden{display:none}}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-auto{z-index:auto}.z-dropdown{z-index:1000}.z-dropdown-submenu{z-index:1001}.z-modal{z-index:2000}.z-modal-backdrop{z-index:1999}.z-tooltip{z-index:3000}.z-toast{z-index:4000}.z-navbar{z-index:5000}.rounded-none{border-radius:0}.rounded-sm{border-radius:.125rem}.rounded{border-radius:.25rem}.rounded-md{border-radius:.375rem}.rounded-lg{border-radius:.5rem}.rounded-xl{border-radius:.75rem}.rounded-2xl{border-radius:1rem}.rounded-3xl{border-radius:1.5rem}.rounded-full{border-radius:9999px}.rounded-t-none{border-top-left-radius:0;border-top-right-radius:0}.rounded-t-sm{border-top-left-radius:.125rem;border-top-right-radius:.125rem}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.rounded-t-md{border-top-left-radius:.375rem;border-top-right-radius:.375rem}.rounded-t-lg{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.rounded-t-xl{border-top-left-radius:.75rem;border-top-right-radius:.75rem}.rounded-t-2xl{border-top-left-radius:1rem;border-top-right-radius:1rem}.rounded-t-full{border-top-left-radius:9999px;border-top-right-radius:9999px}.rounded-r-none{border-bottom-right-radius:0;border-top-right-radius:0}.rounded-r-sm{border-bottom-right-radius:.125rem;border-top-right-radius:.125rem}.rounded-r{border-bottom-right-radius:.25rem;border-top-right-radius:.25rem}.rounded-r-md{border-bottom-right-radius:.375rem;border-top-right-radius:.375rem}.rounded-r-lg{border-bottom-right-radius:.5rem;border-top-right-radius:.5rem}.rounded-r-xl{border-bottom-right-radius:.75rem;border-top-right-radius:.75rem}.rounded-r-2xl{border-bottom-right-radius:1rem;border-top-right-radius:1rem}.rounded-r-full{border-bottom-right-radius:9999px;border-top-right-radius:9999px}.rounded-b-none{border-bottom-left-radius:0;border-bottom-right-radius:0}.rounded-b-sm{border-bottom-left-radius:.125rem;border-bottom-right-radius:.125rem}.rounded-b{border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}.rounded-b-md{border-bottom-left-radius:.375rem;border-bottom-right-radius:.375rem}.rounded-b-lg{border-bottom-left-radius:.5rem;border-bottom-right-radius:.5rem}.rounded-b-xl{border-bottom-left-radius:.75rem;border-bottom-right-radius:.75rem}.rounded-b-2xl{border-bottom-left-radius:1rem;border-bottom-right-radius:1rem}.rounded-b-full{border-bottom-left-radius:9999px;border-bottom-right-radius:9999px}.rounded-l-none{border-bottom-left-radius:0;border-top-left-radius:0}.rounded-l-sm{border-bottom-left-radius:.125rem;border-top-left-radius:.125rem}.rounded-l{border-bottom-left-radius:.25rem;border-top-left-radius:.25rem}.rounded-l-md{border-bottom-left-radius:.375rem;border-top-left-radius:.375rem}.rounded-l-lg{border-bottom-left-radius:.5rem;border-top-left-radius:.5rem}.rounded-l-xl{border-bottom-left-radius:.75rem;border-top-left-radius:.75rem}.rounded-l-2xl{border-bottom-left-radius:1rem;border-top-left-radius:1rem}.rounded-l-full{border-bottom-left-radius:9999px;border-top-left-radius:9999px}.border-0{border-width:0}.border{border-width:1px}.border-2{border-width:2px}.border-4{border-width:4px}.border-8{border-width:8px}.border-t-0{border-top-width:0}.border-t{border-top-width:1px}.border-t-2{border-top-width:2px}.border-t-4{border-top-width:4px}.border-t-8{border-top-width:8px}.border-r-0{border-right-width:0}.border-r{border-right-width:1px}.border-r-2{border-right-width:2px}.border-r-4{border-right-width:4px}.border-r-8{border-right-width:8px}.border-b-0{border-bottom-width:0}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-b-4{border-bottom-width:4px}.border-b-8{border-bottom-width:8px}.border-l-0{border-left-width:0}.border-l{border-left-width:1px}.border-l-2{border-left-width:2px}.border-l-4{border-left-width:4px}.border-l-8{border-left-width:8px}.border-transparent{border-color:transparent}.border-color{border-color:var(--border)}.border-accent{border-color:var(--accent)}.border-success{border-color:var(--success)}.border-warning{border-color:var(--warning)}.border-error{border-color:var(--error)}.border-info{border-color:var(--info)}.flex-row{flex-direction:row}.flex-row-reverse{flex-direction:row-reverse}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.flex-wrap-reverse{flex-wrap:wrap-reverse}.flex-nowrap{flex-wrap:nowrap}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.justify-evenly{justify-content:space-evenly}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}.self-auto{align-self:auto}.self-start{align-self:flex-start}.self-end{align-self:flex-end}.self-center{align-self:center}.self-stretch{align-self:stretch}.self-baseline{align-self:baseline}.flex-1{flex:1 1 0%}.flex-auto{flex:1 1 auto}.flex-initial{flex:0 1 auto}.flex-none{flex:none}.grow{flex-grow:1}.grow-0{flex-grow:0}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.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))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.grid-cols-none{grid-template-columns:none}.grid-rows-1{grid-template-rows:repeat(1,minmax(0,1fr))}.grid-rows-2{grid-template-rows:repeat(2,minmax(0,1fr))}.grid-rows-3{grid-template-rows:repeat(3,minmax(0,1fr))}.grid-rows-4{grid-template-rows:repeat(4,minmax(0,1fr))}.grid-rows-5{grid-template-rows:repeat(5,minmax(0,1fr))}.grid-rows-6{grid-template-rows:repeat(6,minmax(0,1fr))}.grid-rows-none{grid-template-rows:none}.col-auto{grid-column:auto}.col-span-1{grid-column:span 1/span 1}.col-span-2{grid-column:span 2/span 2}.col-span-3{grid-column:span 3/span 3}.col-span-4{grid-column:span 4/span 4}.col-span-5{grid-column:span 5/span 5}.col-span-6{grid-column:span 6/span 6}.col-span-full{grid-column:1/-1}.row-auto{grid-row:auto}.row-span-1{grid-row:span 1/span 1}.row-span-2{grid-row:span 2/span 2}.row-span-3{grid-row:span 3/span 3}.row-span-4{grid-row:span 4/span 4}.row-span-5{grid-row:span 5/span 5}.row-span-6{grid-row:span 6/span 6}.row-span-full{grid-row:1/-1}.gap-0{gap:0}.gap-1{gap:var(--spacing-1)}.gap-2{gap:var(--spacing-2)}.gap-3{gap:var(--spacing-3)}.gap-4{gap:var(--spacing-4)}.gap-5{gap:var(--spacing-5)}.gap-6{gap:var(--spacing-6)}.gap-8{gap:var(--spacing-8)}.gap-10{gap:var(--spacing-10)}.gap-12{gap:var(--spacing-12)}.gap-16{gap:var(--spacing-16)}.gap-20{gap:var(--spacing-20)}.gap-24{gap:var(--spacing-24)}.gap-x-0{-moz-column-gap:0;column-gap:0}.gap-x-1{-moz-column-gap:var(--spacing-1);column-gap:var(--spacing-1)}.gap-x-2{-moz-column-gap:var(--spacing-2);column-gap:var(--spacing-2)}.gap-x-3{-moz-column-gap:var(--spacing-3);column-gap:var(--spacing-3)}.gap-x-4{-moz-column-gap:var(--spacing-4);column-gap:var(--spacing-4)}.gap-x-5{-moz-column-gap:var(--spacing-5);column-gap:var(--spacing-5)}.gap-x-6{-moz-column-gap:var(--spacing-6);column-gap:var(--spacing-6)}.gap-x-8{-moz-column-gap:var(--spacing-8);column-gap:var(--spacing-8)}.gap-x-10{-moz-column-gap:var(--spacing-10);column-gap:var(--spacing-10)}.gap-x-12{-moz-column-gap:var(--spacing-12);column-gap:var(--spacing-12)}.gap-x-16{-moz-column-gap:var(--spacing-16);column-gap:var(--spacing-16)}.gap-x-20{-moz-column-gap:var(--spacing-20);column-gap:var(--spacing-20)}.gap-x-24{-moz-column-gap:var(--spacing-24);column-gap:var(--spacing-24)}.gap-y-0{row-gap:0}.gap-y-1{row-gap:var(--spacing-1)}.gap-y-2{row-gap:var(--spacing-2)}.gap-y-3{row-gap:var(--spacing-3)}.gap-y-4{row-gap:var(--spacing-4)}.gap-y-5{row-gap:var(--spacing-5)}.gap-y-6{row-gap:var(--spacing-6)}.gap-y-8{row-gap:var(--spacing-8)}.gap-y-10{row-gap:var(--spacing-10)}.gap-y-12{row-gap:var(--spacing-12)}.gap-y-16{row-gap:var(--spacing-16)}.gap-y-20{row-gap:var(--spacing-20)}.gap-y-24{row-gap:var(--spacing-24)}.transition-none{transition-property:none}.transition-all{transition-property:all}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke}.transition-opacity{transition-property:opacity}.transition-shadow{transition-property:box-shadow}.transition-transform{transition-property:transform}.duration-75{transition-duration:75ms}.duration-100{transition-duration:.1s}.duration-150{transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.duration-700{transition-duration:.7s}.duration-1000{transition-duration:1s}.ease-linear{transition-timing-function:linear}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.delay-75{transition-delay:75ms}.delay-100{transition-delay:.1s}.delay-150{transition-delay:.15s}.delay-200{transition-delay:.2s}.delay-300{transition-delay:.3s}.delay-500{transition-delay:.5s}.delay-700{transition-delay:.7s}.delay-1000{transition-delay:1s}.transition-fast{transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-base{transition-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-slow{transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1)}@media (prefers-reduced-motion:reduce){
|
|
103
|
+
.card a:hover,.card:hover a{text-decoration:underline;text-underline-offset:.15em}.card__footer{border-top:var(--border-width) solid var(--border);margin-top:var(--spacing-4);padding-top:var(--spacing-4)}.card__footer:empty{display:none}.card__image{border-radius:var(--radius-lg) var(--radius-lg) 0 0;display:block;height:auto;margin:calc(var(--spacing-6)*-1) calc(var(--spacing-6)*-1) var(--spacing-6) calc(var(--spacing-6)*-1);-o-object-fit:cover;object-fit:cover;width:100%}.card:has(.card__image){padding-top:0}.card__image + .card__header{margin-top:0;padding-top:0}.card__title{color:var(--text);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);margin:0 0 var(--spacing-2) 0}.card__subtitle{color:var(--text-dim);font-size:var(--font-size-sm);margin:0}section{background-color:var(--background);color:var(--text)}.border{border:var(--border-width) solid var(--border)}.border-top{border-top:var(--border-width) solid var(--border)}.border-bottom{border-bottom:var(--border-width) solid var(--border)}.border-left{border-left:var(--border-width) solid var(--border)}.border-right{border-right:var(--border-width) solid var(--border)}.m-0{margin:0}.m-1{margin:.25rem}.m-2{margin:.5rem}.m-3{margin:.75rem}.m-4{margin:1rem}.m-5{margin:1.25rem}.m-6{margin:1.5rem}.m-8{margin:2rem}.m-10{margin:2.5rem}.m-12{margin:3rem}.m-16{margin:4rem}.m-20{margin:5rem}.m-24{margin:6rem}.m-auto{margin:auto}.mt-0{margin-top:0}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-10{margin-top:2.5rem}.mt-12{margin-top:3rem}.mt-16{margin-top:4rem}.mt-20{margin-top:5rem}.mt-24{margin-top:6rem}.mt-auto{margin-top:auto}.mr-0{margin-right:0}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mr-4{margin-right:1rem}.mr-5{margin-right:1.25rem}.mr-6{margin-right:1.5rem}.mr-8{margin-right:2rem}.mr-10{margin-right:2.5rem}.mr-12{margin-right:3rem}.mr-16{margin-right:4rem}.mr-20{margin-right:5rem}.mr-24{margin-right:6rem}.mr-auto{margin-right:auto}.mb-0{margin-bottom:0}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.mb-10{margin-bottom:2.5rem}.mb-12{margin-bottom:3rem}.mb-16{margin-bottom:4rem}.mb-20{margin-bottom:5rem}.mb-24{margin-bottom:6rem}.mb-auto{margin-bottom:auto}.ml-0{margin-left:0}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-4{margin-left:1rem}.ml-5{margin-left:1.25rem}.ml-6{margin-left:1.5rem}.ml-8{margin-left:2rem}.ml-10{margin-left:2.5rem}.ml-12{margin-left:3rem}.ml-16{margin-left:4rem}.ml-20{margin-left:5rem}.ml-24{margin-left:6rem}.ml-auto{margin-left:auto}.mx-0{margin-left:0;margin-right:0}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-3{margin-left:.75rem;margin-right:.75rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-5{margin-left:1.25rem;margin-right:1.25rem}.mx-6{margin-left:1.5rem;margin-right:1.5rem}.mx-8{margin-left:2rem;margin-right:2rem}.mx-10{margin-left:2.5rem;margin-right:2.5rem}.mx-12{margin-left:3rem;margin-right:3rem}.mx-16{margin-left:4rem;margin-right:4rem}.mx-20{margin-left:5rem;margin-right:5rem}.mx-24{margin-left:6rem;margin-right:6rem}.mx-auto{margin-left:auto;margin-right:auto}.my-0{margin-bottom:0;margin-top:0}.my-1{margin-bottom:.25rem;margin-top:.25rem}.my-2{margin-bottom:.5rem;margin-top:.5rem}.my-3{margin-bottom:.75rem;margin-top:.75rem}.my-4{margin-bottom:1rem;margin-top:1rem}.my-5{margin-bottom:1.25rem;margin-top:1.25rem}.my-6{margin-bottom:1.5rem;margin-top:1.5rem}.my-8{margin-bottom:2rem;margin-top:2rem}.my-10{margin-bottom:2.5rem;margin-top:2.5rem}.my-12{margin-bottom:3rem;margin-top:3rem}.my-16{margin-bottom:4rem;margin-top:4rem}.my-20{margin-bottom:5rem;margin-top:5rem}.my-24{margin-bottom:6rem;margin-top:6rem}.my-auto{margin-bottom:auto;margin-top:auto}.p-0{padding:0}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.p-10{padding:2.5rem}.p-12{padding:3rem}.p-16{padding:4rem}.p-20{padding:5rem}.p-24{padding:6rem}.pt-0{padding-top:0}.pt-1{padding-top:.25rem}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-5{padding-top:1.25rem}.pt-6{padding-top:1.5rem}.pt-8{padding-top:2rem}.pt-10{padding-top:2.5rem}.pt-12{padding-top:3rem}.pt-16{padding-top:4rem}.pt-20{padding-top:5rem}.pt-24{padding-top:6rem}.pr-0{padding-right:0}.pr-1{padding-right:.25rem}.pr-2{padding-right:.5rem}.pr-3{padding-right:.75rem}.pr-4{padding-right:1rem}.pr-5{padding-right:1.25rem}.pr-6{padding-right:1.5rem}.pr-8{padding-right:2rem}.pr-10{padding-right:2.5rem}.pr-12{padding-right:3rem}.pr-16{padding-right:4rem}.pr-20{padding-right:5rem}.pr-24{padding-right:6rem}.pb-0{padding-bottom:0}.pb-1{padding-bottom:.25rem}.pb-2{padding-bottom:.5rem}.pb-3{padding-bottom:.75rem}.pb-4{padding-bottom:1rem}.pb-5{padding-bottom:1.25rem}.pb-6{padding-bottom:1.5rem}.pb-8{padding-bottom:2rem}.pb-10{padding-bottom:2.5rem}.pb-12{padding-bottom:3rem}.pb-16{padding-bottom:4rem}.pb-20{padding-bottom:5rem}.pb-24{padding-bottom:6rem}.pl-0{padding-left:0}.pl-1{padding-left:.25rem}.pl-2{padding-left:.5rem}.pl-3{padding-left:.75rem}.pl-4{padding-left:1rem}.pl-5{padding-left:1.25rem}.pl-6{padding-left:1.5rem}.pl-8{padding-left:2rem}.pl-10{padding-left:2.5rem}.pl-12{padding-left:3rem}.pl-16{padding-left:4rem}.pl-20{padding-left:5rem}.pl-24{padding-left:6rem}.px-0{padding-left:0;padding-right:0}.px-1{padding-left:.25rem;padding-right:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.px-10{padding-left:2.5rem;padding-right:2.5rem}.px-12{padding-left:3rem;padding-right:3rem}.px-16{padding-left:4rem;padding-right:4rem}.px-20{padding-left:5rem;padding-right:5rem}.px-24{padding-left:6rem;padding-right:6rem}.py-0{padding-bottom:0;padding-top:0}.py-1{padding-bottom:.25rem;padding-top:.25rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.py-4{padding-bottom:1rem;padding-top:1rem}.py-5{padding-bottom:1.25rem;padding-top:1.25rem}.py-6{padding-bottom:1.5rem;padding-top:1.5rem}.py-8{padding-bottom:2rem;padding-top:2rem}.py-10{padding-bottom:2.5rem;padding-top:2.5rem}.py-12{padding-bottom:3rem;padding-top:3rem}.py-16{padding-bottom:4rem;padding-top:4rem}.py-20{padding-bottom:5rem;padding-top:5rem}.py-24{padding-bottom:6rem;padding-top:6rem}.mis-0{margin-inline-start:0}.mis-1{margin-inline-start:.25rem}.mis-2{margin-inline-start:.5rem}.mis-3{margin-inline-start:.75rem}.mis-4{margin-inline-start:1rem}.mis-5{margin-inline-start:1.25rem}.mis-6{margin-inline-start:1.5rem}.mis-8{margin-inline-start:2rem}.mis-10{margin-inline-start:2.5rem}.mis-12{margin-inline-start:3rem}.mis-16{margin-inline-start:4rem}.mis-20{margin-inline-start:5rem}.mis-24{margin-inline-start:6rem}.mis-auto{margin-inline-start:auto}.mie-0{margin-inline-end:0}.mie-1{margin-inline-end:.25rem}.mie-2{margin-inline-end:.5rem}.mie-3{margin-inline-end:.75rem}.mie-4{margin-inline-end:1rem}.mie-5{margin-inline-end:1.25rem}.mie-6{margin-inline-end:1.5rem}.mie-8{margin-inline-end:2rem}.mie-10{margin-inline-end:2.5rem}.mie-12{margin-inline-end:3rem}.mie-16{margin-inline-end:4rem}.mie-20{margin-inline-end:5rem}.mie-24{margin-inline-end:6rem}.mie-auto{margin-inline-end:auto}.pis-0{padding-inline-start:0}.pis-1{padding-inline-start:.25rem}.pis-2{padding-inline-start:.5rem}.pis-3{padding-inline-start:.75rem}.pis-4{padding-inline-start:1rem}.pis-5{padding-inline-start:1.25rem}.pis-6{padding-inline-start:1.5rem}.pis-8{padding-inline-start:2rem}.pis-10{padding-inline-start:2.5rem}.pis-12{padding-inline-start:3rem}.pis-16{padding-inline-start:4rem}.pis-20{padding-inline-start:5rem}.pis-24{padding-inline-start:6rem}.pie-0{padding-inline-end:0}.pie-1{padding-inline-end:.25rem}.pie-2{padding-inline-end:.5rem}.pie-3{padding-inline-end:.75rem}.pie-4{padding-inline-end:1rem}.pie-5{padding-inline-end:1.25rem}.pie-6{padding-inline-end:1.5rem}.pie-8{padding-inline-end:2rem}.pie-10{padding-inline-end:2.5rem}.pie-12{padding-inline-end:3rem}.pie-16{padding-inline-end:4rem}.pie-20{padding-inline-end:5rem}.pie-24{padding-inline-end:6rem}.container-sm{max-width:640px}.container-md,.container-sm{margin-left:auto;margin-right:auto;padding-left:var(--spacing-4);padding-right:var(--spacing-4)}.container-md{max-width:768px}.container-lg{max-width:1024px}.container-lg,.container-xl{margin-left:auto;margin-right:auto;padding-left:var(--spacing-4);padding-right:var(--spacing-4)}.container-xl{max-width:1280px}.container-2xl{max-width:1536px}.container-2xl,.container-full{margin-left:auto;margin-right:auto;padding-left:var(--spacing-4);padding-right:var(--spacing-4)}.container-full{max-width:100%}.w-auto{width:auto}.w-full{width:100%}.w-screen{width:100vw}.w-fit{width:-moz-fit-content;width:fit-content}.w-max{width:-moz-max-content;width:max-content}.w-min{width:-moz-min-content;width:min-content}.w-0{width:0}.w-1{width:.25rem}.w-2{width:.5rem}.w-3{width:.75rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-8{width:2rem}.w-10{width:2.5rem}.w-12{width:3rem}.w-16{width:4rem}.w-20{width:5rem}.w-24{width:6rem}.w-32{width:8rem}.w-40{width:10rem}.w-48{width:12rem}.w-56{width:14rem}.w-64{width:16rem}.h-auto{height:auto}.h-full{height:100%}.h-screen{height:100vh}.h-fit{height:-moz-fit-content;height:fit-content}.h-max{height:-moz-max-content;height:max-content}.h-min{height:-moz-min-content;height:min-content}.h-0{height:0}.h-1{height:.25rem}.h-2{height:.5rem}.h-3{height:.75rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-16{height:4rem}.h-20{height:5rem}.h-24{height:6rem}.h-32{height:8rem}.h-40{height:10rem}.h-48{height:12rem}.h-56{height:14rem}.h-64{height:16rem}.min-w-0{min-width:0}.min-w-full{min-width:100%}.min-w-min{min-width:-moz-min-content;min-width:min-content}.min-w-max{min-width:-moz-max-content;min-width:max-content}.min-w-fit{min-width:-moz-fit-content;min-width:fit-content}.min-h-0{min-height:0}.min-h-full{min-height:100%}.min-h-screen{min-height:100vh}.min-h-fit{min-height:-moz-fit-content;min-height:fit-content}.min-h-max{min-height:-moz-max-content;min-height:max-content}.min-h-min{min-height:-moz-min-content;min-height:min-content}.max-w-none{max-width:none}.max-w-xs{max-width:20rem}.max-w-sm{max-width:24rem}.max-w-md{max-width:28rem}.max-w-lg{max-width:32rem}.max-w-xl{max-width:36rem}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-5xl{max-width:64rem}.max-w-6xl{max-width:72rem}.max-w-7xl{max-width:80rem}.max-w-full{max-width:100%}.max-w-screen-sm{max-width:640px}.max-w-screen-md{max-width:768px}.max-w-screen-lg{max-width:1024px}.max-w-screen-xl{max-width:1280px}.max-w-screen-2xl{max-width:1536px}.max-h-none{max-height:none}.max-h-full{max-height:100%}.max-h-screen{max-height:100vh}.max-h-fit{max-height:-moz-fit-content;max-height:fit-content}.max-h-max{max-height:-moz-max-content;max-height:max-content}.max-h-min{max-height:-moz-min-content;max-height:min-content}.max-h-0{max-height:0}.max-h-1{max-height:.25rem}.max-h-2{max-height:.5rem}.max-h-3{max-height:.75rem}.max-h-4{max-height:1rem}.max-h-5{max-height:1.25rem}.max-h-6{max-height:1.5rem}.max-h-8{max-height:2rem}.max-h-10{max-height:2.5rem}.max-h-12{max-height:3rem}.max-h-16{max-height:4rem}.max-h-20{max-height:5rem}.max-h-24{max-height:6rem}.max-h-32{max-height:8rem}.max-h-40{max-height:10rem}.max-h-48{max-height:12rem}.max-h-56{max-height:14rem}.max-h-64{max-height:16rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.inline-grid{display:inline-grid}.table{display:table}.table-row{display:table-row}.table-cell{display:table-cell}.contents{display:contents}.list-item{display:list-item}.hidden{display:none}@media (width >= 640px){.sm\:block{display:block}.sm\:inline-block{display:inline-block}.sm\:inline{display:inline}.sm\:flex{display:flex}.sm\:inline-flex{display:inline-flex}.sm\:grid{display:grid}.sm\:inline-grid{display:inline-grid}.sm\:hidden{display:none}}@media (width >= 768px){.md\:block{display:block}.md\:inline-block{display:inline-block}.md\:inline{display:inline}.md\:flex{display:flex}.md\:inline-flex{display:inline-flex}.md\:grid{display:grid}.md\:inline-grid{display:inline-grid}.md\:hidden{display:none}}@media (width >= 1024px){.lg\:block{display:block}.lg\:inline-block{display:inline-block}.lg\:inline{display:inline}.lg\:flex{display:flex}.lg\:inline-flex{display:inline-flex}.lg\:grid{display:grid}.lg\:inline-grid{display:inline-grid}.lg\:hidden{display:none}}@media (width >= 1280px){.xl\:block{display:block}.xl\:inline-block{display:inline-block}.xl\:inline{display:inline}.xl\:flex{display:flex}.xl\:inline-flex{display:inline-flex}.xl\:grid{display:grid}.xl\:inline-grid{display:inline-grid}.xl\:hidden{display:none}}@media (width >= 1536px){.xxl\:block{display:block}.xxl\:inline-block{display:inline-block}.xxl\:inline{display:inline}.xxl\:flex{display:flex}.xxl\:inline-flex{display:inline-flex}.xxl\:grid{display:grid}.xxl\:inline-grid{display:inline-grid}.xxl\:hidden{display:none}}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-auto{z-index:auto}.z-dropdown{z-index:1000}.z-dropdown-submenu{z-index:1001}.z-modal{z-index:2000}.z-modal-backdrop{z-index:1999}.z-tooltip{z-index:3000}.z-toast{z-index:4000}.z-navbar{z-index:5000}.rounded-none{border-radius:0}.rounded-sm{border-radius:.125rem}.rounded{border-radius:.25rem}.rounded-md{border-radius:.375rem}.rounded-lg{border-radius:.5rem}.rounded-xl{border-radius:.75rem}.rounded-2xl{border-radius:1rem}.rounded-3xl{border-radius:1.5rem}.rounded-full{border-radius:9999px}.rounded-t-none{border-top-left-radius:0;border-top-right-radius:0}.rounded-t-sm{border-top-left-radius:.125rem;border-top-right-radius:.125rem}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.rounded-t-md{border-top-left-radius:.375rem;border-top-right-radius:.375rem}.rounded-t-lg{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.rounded-t-xl{border-top-left-radius:.75rem;border-top-right-radius:.75rem}.rounded-t-2xl{border-top-left-radius:1rem;border-top-right-radius:1rem}.rounded-t-full{border-top-left-radius:9999px;border-top-right-radius:9999px}.rounded-r-none{border-bottom-right-radius:0;border-top-right-radius:0}.rounded-r-sm{border-bottom-right-radius:.125rem;border-top-right-radius:.125rem}.rounded-r{border-bottom-right-radius:.25rem;border-top-right-radius:.25rem}.rounded-r-md{border-bottom-right-radius:.375rem;border-top-right-radius:.375rem}.rounded-r-lg{border-bottom-right-radius:.5rem;border-top-right-radius:.5rem}.rounded-r-xl{border-bottom-right-radius:.75rem;border-top-right-radius:.75rem}.rounded-r-2xl{border-bottom-right-radius:1rem;border-top-right-radius:1rem}.rounded-r-full{border-bottom-right-radius:9999px;border-top-right-radius:9999px}.rounded-b-none{border-bottom-left-radius:0;border-bottom-right-radius:0}.rounded-b-sm{border-bottom-left-radius:.125rem;border-bottom-right-radius:.125rem}.rounded-b{border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}.rounded-b-md{border-bottom-left-radius:.375rem;border-bottom-right-radius:.375rem}.rounded-b-lg{border-bottom-left-radius:.5rem;border-bottom-right-radius:.5rem}.rounded-b-xl{border-bottom-left-radius:.75rem;border-bottom-right-radius:.75rem}.rounded-b-2xl{border-bottom-left-radius:1rem;border-bottom-right-radius:1rem}.rounded-b-full{border-bottom-left-radius:9999px;border-bottom-right-radius:9999px}.rounded-l-none{border-bottom-left-radius:0;border-top-left-radius:0}.rounded-l-sm{border-bottom-left-radius:.125rem;border-top-left-radius:.125rem}.rounded-l{border-bottom-left-radius:.25rem;border-top-left-radius:.25rem}.rounded-l-md{border-bottom-left-radius:.375rem;border-top-left-radius:.375rem}.rounded-l-lg{border-bottom-left-radius:.5rem;border-top-left-radius:.5rem}.rounded-l-xl{border-bottom-left-radius:.75rem;border-top-left-radius:.75rem}.rounded-l-2xl{border-bottom-left-radius:1rem;border-top-left-radius:1rem}.rounded-l-full{border-bottom-left-radius:9999px;border-top-left-radius:9999px}.border-0{border-width:0}.border{border-width:1px}.border-2{border-width:2px}.border-4{border-width:4px}.border-8{border-width:8px}.border-t-0{border-top-width:0}.border-t{border-top-width:1px}.border-t-2{border-top-width:2px}.border-t-4{border-top-width:4px}.border-t-8{border-top-width:8px}.border-r-0{border-right-width:0}.border-r{border-right-width:1px}.border-r-2{border-right-width:2px}.border-r-4{border-right-width:4px}.border-r-8{border-right-width:8px}.border-b-0{border-bottom-width:0}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-b-4{border-bottom-width:4px}.border-b-8{border-bottom-width:8px}.border-l-0{border-left-width:0}.border-l{border-left-width:1px}.border-l-2{border-left-width:2px}.border-l-4{border-left-width:4px}.border-l-8{border-left-width:8px}.border-transparent{border-color:transparent}.border-color{border-color:var(--border)}.border-accent{border-color:var(--accent)}.border-success{border-color:var(--success)}.border-warning{border-color:var(--warning)}.border-error{border-color:var(--error)}.border-info{border-color:var(--info)}.flex-row{flex-direction:row}.flex-row-reverse{flex-direction:row-reverse}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.flex-wrap-reverse{flex-wrap:wrap-reverse}.flex-nowrap{flex-wrap:nowrap}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.justify-evenly{justify-content:space-evenly}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}.self-auto{align-self:auto}.self-start{align-self:flex-start}.self-end{align-self:flex-end}.self-center{align-self:center}.self-stretch{align-self:stretch}.self-baseline{align-self:baseline}.flex-1{flex:1 1 0%}.flex-auto{flex:1 1 auto}.flex-initial{flex:0 1 auto}.flex-none{flex:none}.grow{flex-grow:1}.grow-0{flex-grow:0}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.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))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.grid-cols-none{grid-template-columns:none}.grid-rows-1{grid-template-rows:repeat(1,minmax(0,1fr))}.grid-rows-2{grid-template-rows:repeat(2,minmax(0,1fr))}.grid-rows-3{grid-template-rows:repeat(3,minmax(0,1fr))}.grid-rows-4{grid-template-rows:repeat(4,minmax(0,1fr))}.grid-rows-5{grid-template-rows:repeat(5,minmax(0,1fr))}.grid-rows-6{grid-template-rows:repeat(6,minmax(0,1fr))}.grid-rows-none{grid-template-rows:none}.col-auto{grid-column:auto}.col-span-1{grid-column:span 1/span 1}.col-span-2{grid-column:span 2/span 2}.col-span-3{grid-column:span 3/span 3}.col-span-4{grid-column:span 4/span 4}.col-span-5{grid-column:span 5/span 5}.col-span-6{grid-column:span 6/span 6}.col-span-full{grid-column:1/-1}.row-auto{grid-row:auto}.row-span-1{grid-row:span 1/span 1}.row-span-2{grid-row:span 2/span 2}.row-span-3{grid-row:span 3/span 3}.row-span-4{grid-row:span 4/span 4}.row-span-5{grid-row:span 5/span 5}.row-span-6{grid-row:span 6/span 6}.row-span-full{grid-row:1/-1}.gap-0{gap:0}.gap-1{gap:var(--spacing-1)}.gap-2{gap:var(--spacing-2)}.gap-3{gap:var(--spacing-3)}.gap-4{gap:var(--spacing-4)}.gap-5{gap:var(--spacing-5)}.gap-6{gap:var(--spacing-6)}.gap-8{gap:var(--spacing-8)}.gap-10{gap:var(--spacing-10)}.gap-12{gap:var(--spacing-12)}.gap-16{gap:var(--spacing-16)}.gap-20{gap:var(--spacing-20)}.gap-24{gap:var(--spacing-24)}.gap-x-0{-moz-column-gap:0;column-gap:0}.gap-x-1{-moz-column-gap:var(--spacing-1);column-gap:var(--spacing-1)}.gap-x-2{-moz-column-gap:var(--spacing-2);column-gap:var(--spacing-2)}.gap-x-3{-moz-column-gap:var(--spacing-3);column-gap:var(--spacing-3)}.gap-x-4{-moz-column-gap:var(--spacing-4);column-gap:var(--spacing-4)}.gap-x-5{-moz-column-gap:var(--spacing-5);column-gap:var(--spacing-5)}.gap-x-6{-moz-column-gap:var(--spacing-6);column-gap:var(--spacing-6)}.gap-x-8{-moz-column-gap:var(--spacing-8);column-gap:var(--spacing-8)}.gap-x-10{-moz-column-gap:var(--spacing-10);column-gap:var(--spacing-10)}.gap-x-12{-moz-column-gap:var(--spacing-12);column-gap:var(--spacing-12)}.gap-x-16{-moz-column-gap:var(--spacing-16);column-gap:var(--spacing-16)}.gap-x-20{-moz-column-gap:var(--spacing-20);column-gap:var(--spacing-20)}.gap-x-24{-moz-column-gap:var(--spacing-24);column-gap:var(--spacing-24)}.gap-y-0{row-gap:0}.gap-y-1{row-gap:var(--spacing-1)}.gap-y-2{row-gap:var(--spacing-2)}.gap-y-3{row-gap:var(--spacing-3)}.gap-y-4{row-gap:var(--spacing-4)}.gap-y-5{row-gap:var(--spacing-5)}.gap-y-6{row-gap:var(--spacing-6)}.gap-y-8{row-gap:var(--spacing-8)}.gap-y-10{row-gap:var(--spacing-10)}.gap-y-12{row-gap:var(--spacing-12)}.gap-y-16{row-gap:var(--spacing-16)}.gap-y-20{row-gap:var(--spacing-20)}.gap-y-24{row-gap:var(--spacing-24)}.transition-none{transition-property:none}.transition-all{transition-property:all}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke}.transition-opacity{transition-property:opacity}.transition-shadow{transition-property:box-shadow}.transition-transform{transition-property:transform}.duration-75{transition-duration:75ms}.duration-100{transition-duration:.1s}.duration-150{transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.duration-700{transition-duration:.7s}.duration-1000{transition-duration:1s}.ease-linear{transition-timing-function:linear}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.delay-75{transition-delay:75ms}.delay-100{transition-delay:.1s}.delay-150{transition-delay:.15s}.delay-200{transition-delay:.2s}.delay-300{transition-delay:.3s}.delay-500{transition-delay:.5s}.delay-700{transition-delay:.7s}.delay-1000{transition-delay:1s}.transition-fast{transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-base{transition-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-slow{transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1)}@media (prefers-reduced-motion:reduce){
|
|
97
104
|
.transition,
|
|
98
105
|
.transition-all,
|
|
99
106
|
.transition-base,
|
|
@@ -196,7 +203,14 @@ div.navbar__link{background:none;border:none;color:inherit;cursor:pointer;font:i
|
|
|
196
203
|
.toggle[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.toggle-group{display:inline-flex;flex-direction:row;gap:0}.toggle-group--vertical{flex-direction:column}.toggle-group :global(.toggle){border-radius:0}.toggle-group :global(.toggle:first-child){border-radius:var(--radius) 0 0 var(--radius)}.toggle-group :global(.toggle:last-child){border-radius:0 var(--radius) var(--radius) 0}.toggle-group--vertical :global(.toggle:first-child){border-radius:var(--radius) var(--radius) 0 0}.toggle-group--vertical :global(.toggle:last-child){border-radius:0 0 var(--radius) var(--radius)}.tabs{width:100%}.tabs__list{border-bottom:var(--outline-width) solid var(--border);display:flex;gap:var(--spacing-1);margin-bottom:var(--spacing-6);overflow-x:auto;scrollbar-width:thin;-webkit-overflow-scrolling:touch}.tabs__list::-webkit-scrollbar{height:var(--spacing-0-125)}.tabs__list::-webkit-scrollbar-track{background:var(--background-alt)}.tabs__list::-webkit-scrollbar-thumb{background:var(--border);border-radius:var(--radius)}.tabs__tab{align-items:center;background:transparent;border:none;border-bottom:calc(var(--outline-width)*2) solid transparent;border-radius:var(--radius-md) var(--radius-md) 0 0;color:var(--text-dim);cursor:pointer;display:inline-flex;font-family:var(--font-family);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);gap:var(--spacing-2);justify-content:center;margin-bottom:calc(var(--outline-width)*-1*2);min-height:var(--touch-target-min);outline:none;padding:var(--spacing-3) var(--spacing-5);position:relative;transition:color var(--transition-base),border-color var(--transition-base),background-color var(--transition-base);white-space:nowrap}.tabs__tab-icon{flex-shrink:0;vertical-align:middle}.tabs__tab:hover:not(.tabs__tab--active){background-color:var(--background-alt);color:var(--text)}.tabs__tab:focus-visible{border-radius:var(--radius-md) var(--radius-md) 0 0;outline:var(--outline-width) solid var(--accent);outline-offset:var(--outline-offset)}.tabs__tab--active{border-bottom-color:var(--accent-fg);border-bottom-width:calc(var(--outline-width)*3);font-weight:var(--font-weight-semibold)}.tabs__tab--active,.tabs__tab--active:hover{background-color:var(--background-alt);color:var(--accent-fg)}.tabs__tab--active:hover{border-bottom-color:var(--accent-fg)}.tabs__panels-wrapper{width:100%}.tabs__panel{display:none;min-height:var(--spacing-20);padding:var(--spacing-6) 0;width:100%}.tabs__panel--active{animation:fadeIn var(--transition-base);display:block}.tabs__panel-content{width:100%}@keyframes fade-in{from{opacity:0;transform:translateY(var(--spacing-1))}to{opacity:1;transform:translateY(0)}}.tabs__slot-content{display:none}.tabs--pills .tabs__list{border-bottom:none;gap:var(--spacing-2)}.tabs--pills .tabs__tab{border-bottom:none;border-radius:var(--radius-md);margin-bottom:0}.tabs--pills .tabs__tab--active{background-color:var(--accent);border-bottom-color:transparent;color:var(--accent-text)}.tabs--pills .tabs__tab--active:hover{background-color:var(--accent-hover);color:var(--accent-text)}.tabs--underline .tabs__list{border-bottom:var(--outline-width) solid var(--border)}.tabs--underline .tabs__tab{border-bottom:var(--outline-width) solid transparent;padding-bottom:var(--spacing-3)}.tabs--underline .tabs__tab--active{border-bottom-color:var(--accent-fg);border-bottom-width:calc(var(--outline-width)*2)}@media (width <= 640px){.tabs__list{gap:var(--spacing-1)}.tabs__tab{font-size:var(--font-size-sm);padding:var(--spacing-2) var(--spacing-3)}.tabs__panel{padding:var(--spacing-3) 0}}@media (prefers-reduced-motion:reduce){.tabs__tab{transition:none}.tabs__panel--active{animation:none}}.progress{display:flex;flex-direction:column;gap:var(--spacing-2);width:100%}.progress__track{background-color:var(--background-alt);border:var(--border-width) solid var(--border);overflow:hidden;width:100%}.progress__bar,.progress__track{border-radius:var(--radius-full)}.progress__bar{flex-shrink:0;height:100%;min-height:var(--spacing-2);transition:width var(--transition-slow) var(--ease-in-out-cubic)}.progress--sm .progress__track{height:var(--spacing-1)}.progress--sm .progress__bar{min-height:var(--spacing-1)}.progress--md .progress__track{height:var(--spacing-2)}.progress--md .progress__bar{min-height:var(--spacing-2)}.progress--lg .progress__track{height:var(--spacing-3)}.progress--lg .progress__bar{min-height:var(--spacing-3)}.progress--primary .progress__bar{background-color:var(--accent)}.progress--success .progress__bar{background-color:var(--success)}.progress--warning .progress__bar{background-color:var(--warning)}.progress--error .progress__bar{background-color:var(--error)}.progress--info .progress__bar{background-color:var(--info)}.progress__label{color:var(--text-dim);font-size:var(--font-size-sm);text-align:right}.progress--indeterminate .progress__bar{animation:progress-indeterminate 1.5s ease-in-out infinite;min-width:30%;width:30%!important}@keyframes progress-indeterminate{0%{transform:translateX(-100%)}100%{transform:translateX(233.333%)}}@media (prefers-reduced-motion:reduce){.progress__bar{transition:none}.progress--indeterminate .progress__bar{animation:none;opacity:.7;width:50%!important}}.spinner{align-items:center;display:inline-flex;justify-content:center;vertical-align:middle}.spinner__ring{animation:spinner-rotate .8s linear infinite;border-color:var(--border);border-radius:var(--radius-full);border-style:solid;border-top-color:currentcolor;display:block}.spinner--sm .spinner__ring{border-width:var(--border-width-2);height:var(--spacing-4);width:var(--spacing-4)}.spinner--md .spinner__ring{border-width:var(--border-width-3);height:var(--spacing-6);width:var(--spacing-6)}.spinner--lg .spinner__ring{border-width:var(--border-width-4);height:var(--spacing-8);width:var(--spacing-8)}.spinner--primary{color:var(--accent)}.spinner--success{color:var(--success)}.spinner--warning{color:var(--warning)}.spinner--error{color:var(--error)}.spinner--info{color:var(--info)}@keyframes spinner-rotate{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.spinner__ring{animation:none;border-bottom-color:transparent;border-left-color:transparent;border-right-color:transparent}}.avatar{align-items:center;background-color:var(--background-alt);border:var(--border-width) solid var(--border);color:var(--text-dim);display:inline-flex;flex-shrink:0;font-size:inherit;font-weight:var(--font-weight-semibold);justify-content:center;line-height:1;overflow:hidden}.avatar__img{display:block;height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.avatar__initials{align-items:center;display:flex;height:100%;justify-content:center;width:100%}.avatar--sm{font-size:var(--font-size-xs);height:var(--spacing-8);width:var(--spacing-8)}.avatar--md{font-size:var(--font-size-sm);height:var(--spacing-10);width:var(--spacing-10)}.avatar--lg{font-size:var(--font-size-base);height:var(--spacing-12);width:var(--spacing-12)}.avatar--circle{border-radius:var(--radius-full)}.avatar--square{border-radius:var(--radius-md)}.divider{align-items:center;color:var(--text-dim);display:flex;font-size:var(--font-size-sm);gap:var(--spacing-3)}.divider__line{border:none;border-left:none;border-top:var(--border-width) solid var(--border);flex:1;min-height:0;min-width:0}.divider__label{flex-shrink:0;padding:0 var(--spacing-2);white-space:nowrap}.divider--horizontal{width:100%}.divider--horizontal .divider__line{border-left:none;border-top:var(--border-width) solid var(--border)}.divider--vertical{flex-direction:column;height:100%;min-height:var(--spacing-8);width:auto}.divider--vertical .divider__line{border-left:var(--border-width) solid var(--border);border-top:none;flex:1;min-height:var(--spacing-4);width:0}.footer{background-color:var(--background-alt);border-top:var(--border-width) solid var(--border);color:var(--text-dim);font-size:var(--font-size-sm);margin-top:auto;padding:var(--spacing-6) 0}.footer__container{box-sizing:border-box;margin-left:auto;margin-right:auto;max-width:var(--container-default);padding-left:var(--content-padding-x);padding-right:var(--content-padding-x);width:100%}.footer__inner{align-items:center;display:flex;flex-wrap:wrap;gap:var(--spacing-4);justify-content:space-between}.footer__copyright{color:var(--text-dim);margin:0}.footer__site-name{color:var(--text);font-weight:var(--font-weight-medium)}.footer__nav{margin:0}.footer__links{align-items:center;display:flex;flex-wrap:wrap;gap:var(--spacing-2) var(--spacing-4);list-style:none;margin:0;padding:0}.footer__link-item{margin:0}.footer__link{color:var(--text);text-decoration:none;transition:color var(--transition-base)}.footer__link:hover{color:var(--accent-fg)}.footer__link:focus-visible{outline:var(--outline-width) solid var(--accent);outline-offset:var(--outline-offset)}.footer__version{font-size:var(--font-size-sm);margin:0}.footer__version,.footer__version .footer__link{color:var(--text-dim)}.footer__version .footer__link:hover{color:var(--accent-fg)}@media (width <= 1024px){.footer{padding-bottom:calc(var(--spacing-6) + var(--spacing-10) + var(--spacing-6))}}.table{display:flex;flex-direction:column;gap:var(--spacing-3);width:100%}.table__filter-wrap{align-items:center;display:flex;flex-shrink:0;position:relative}.table__filter-icon{align-items:center;color:var(--icon-dim);display:flex;justify-content:center;left:var(--spacing-3);pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.table__filter-icon-svg{color:currentcolor;height:var(--table-filter-icon-size,1.25rem);width:var(--table-filter-icon-size,1.25rem)}.table__filter-wrap:focus-within .table__filter-icon{color:var(--accent)}.table__filter-wrap .table__filter{background-color:var(--background);border:var(--border-width) solid var(--border);border-radius:var(--radius-md);color:var(--text);font-family:var(--font-family);font-size:var(--font-size-base);max-width:var(--spacing-80);padding-bottom:var(--spacing-2);padding-left:3.5rem;padding-right:var(--spacing-3);padding-top:var(--spacing-2);width:100%}.table__filter-wrap .table__filter::-moz-placeholder{color:var(--text-dim)}.table__filter-wrap .table__filter::placeholder{color:var(--text-dim)}.table__filter-wrap .table__filter:focus{outline:var(--outline-width) solid var(--accent);outline-offset:var(--outline-offset)}.table__wrapper{min-width:0;overflow-x:auto;width:100%;-webkit-overflow-scrolling:touch}.table__table{border-collapse:collapse;border-spacing:0;font-size:var(--font-size-sm);width:100%}.table__caption{color:var(--text);font-weight:var(--font-weight-semibold);padding:var(--spacing-2) 0;text-align:left}.table__head .table__row{border-bottom:var(--border-width-2) solid var(--border)}.table__cell{border-bottom:var(--border-width) solid var(--border);color:var(--text);padding:var(--spacing-3) var(--spacing-4);text-align:left}.table__cell--head{color:var(--text);font-weight:var(--font-weight-semibold);white-space:nowrap}.table__sort-trigger{align-items:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:none;border-radius:var(--radius-md);color:var(--text);cursor:pointer;display:inline-flex;font:inherit;font-weight:var(--font-weight-semibold);padding:0;text-align:left;transition:background-color var(--transition-fast),color var(--transition-fast);width:100%}.table__sort-trigger:hover{background-color:var(--background-alt);color:var(--text)}.table__sort-trigger:hover .table__sort-icon-svg{color:var(--accent)}.table__sort-trigger:focus-visible{outline:var(--outline-width) solid var(--accent);outline-offset:var(--outline-offset)}.table--sortable .table__cell--head{padding:0}.table--sortable .table__cell--head .table__sort-trigger{padding:var(--spacing-3) var(--spacing-4)}.table__cell-content{display:inline-block}.table__sort-icon{align-items:center;display:inline-flex;flex-shrink:0;justify-content:center;margin-left:var(--spacing-2)}.table__sort-icon-svg{color:var(--icon-dim);height:var(--table-sort-icon-size,1.25rem);transition:color var(--transition-fast);width:var(--table-sort-icon-size,1.25rem)}.table__body .table__row:hover{background-color:var(--background-alt)}.table__body .table__row:hover .table__cell{color:var(--text)}.table--striped .table__body .table__row:nth-child(even){background-color:var(--background-alt)}.table--striped .table__body .table__row:nth-child(even):hover{background-color:var(--background)}.table--striped .table__body .table__row:nth-child(even):hover .table__cell{color:var(--text)}.table__body .table__row[hidden]{display:none}@media (prefers-reduced-motion:reduce){.table__sort-icon-svg,.table__sort-trigger{transition:none}}.skeleton{background-color:var(--background-alt);border-radius:var(--radius);display:block;overflow:hidden}.skeleton::after{animation:skeleton-shimmer 1.2s ease-in-out infinite;background:linear-gradient(90deg,transparent 0,oklch(from var(--background-alt) calc(l + .08) .01 264deg) 50%,transparent 100%);background-size:200% 100%;content:"";display:block;height:100%;min-height:1rem;width:100%}@media (prefers-reduced-motion:reduce){.skeleton::after{animation:none;background:none}}@keyframes skeleton-shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}.skeleton--text{height:1em}.skeleton--circle{aspect-ratio:1;border-radius:var(--radius-full)}.skeleton--rect{aspect-ratio:16/9}.switch{align-items:center;color:var(--text);cursor:pointer;display:inline-flex;font-family:var(--font-family);font-size:var(--font-size-base);gap:var(--spacing-2)}.switch__input{border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.switch__track{align-items:center;background-color:var(--background-alt);border:var(--border-width) solid var(--border);display:inline-flex;flex-shrink:0;height:var(--spacing-6);padding:var(--spacing-0-125);position:relative;transition:background-color var(--transition-base),border-color var(--transition-base);width:2.75rem}.switch__thumb,.switch__track{border-radius:var(--radius-full)}.switch__thumb{background-color:var(--text);height:calc(var(--spacing-6) - var(--spacing-0-375));transition:transform var(--transition-base);width:calc(var(--spacing-6) - var(--spacing-0-375))}.switch:has(.switch__input:checked) .switch__track{background-color:var(--accent);border-color:var(--accent)}.switch:has(.switch__input:checked) .switch__thumb{background-color:var(--accent-text);transform:translateX(calc(2.75rem - 100% - var(--spacing-0-375)))}.switch:focus-within .switch__track{outline:var(--outline-width) solid var(--accent-fg);outline-offset:var(--outline-offset)}.switch:has(.switch__input:disabled){cursor:not-allowed;opacity:var(--opacity-60)}.switch:has(.switch__input:disabled) .switch__track{cursor:not-allowed}.reduced-motion .switch__thumb,
|
|
197
204
|
.reduced-motion .switch__track{transition:none}.scroll-area{overflow:hidden;position:relative}.scroll-area__viewport{height:100%;overflow:auto;scrollbar-width:thin;width:100%}.scroll-area__viewport::-webkit-scrollbar{height:var(--spacing-2);width:var(--spacing-2)}.scroll-area__viewport::-webkit-scrollbar-track{background:var(--background-alt);border-radius:var(--radius)}.scroll-area__viewport::-webkit-scrollbar-thumb{background:var(--border);border-radius:var(--radius)}.scroll-area__viewport::-webkit-scrollbar-thumb:hover{background:var(--text-dim)}.scroll-area--horizontal .scroll-area__viewport{overflow-x:auto;overflow-y:hidden}.hover-card{display:inline-block;position:relative}.hover-card__content{background:var(--background);border:var(--border-width) solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);margin-top:var(--spacing-1);min-width:var(--spacing-56);opacity:0;padding:var(--spacing-4);pointer-events:none;position:absolute;transition:opacity var(--transition-fast),visibility var(--transition-fast);visibility:hidden;z-index:var(--z-popover,100)}.hover-card__content--open{opacity:1;pointer-events:auto;visibility:visible}.context-menu{display:inline-block;position:relative}.context-menu__content{background:var(--background);border:var(--border-width) solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);min-width:var(--spacing-48);opacity:0;padding:var(--spacing-1);position:fixed;visibility:hidden;z-index:var(--z-context-menu,200)}.context-menu__content--open{opacity:1;visibility:visible}.context-menu__item{align-items:center;background:transparent;border:none;border-radius:var(--radius);color:var(--text);cursor:pointer;display:flex;font-family:var(--font-family);font-size:var(--font-size-sm);gap:var(--spacing-4);justify-content:space-between;padding:var(--spacing-2) var(--spacing-3);text-align:left;transition:background-color var(--transition-fast);width:100%}
|
|
198
205
|
.context-menu__item:focus-visible,.context-menu__item:hover:not(:disabled){background:var(--background-alt);outline:none}.context-menu__item:disabled{cursor:not-allowed;opacity:var(--opacity-60)}.context-menu__separator{background:var(--border);height:var(--border-width);margin:var(--spacing-1) 0}.resizable__pane-group{display:flex;height:100%;width:100%}.resizable__pane-group--horizontal{flex-direction:row}.resizable__pane-group--vertical{flex-direction:column}.resizable__pane{min-height:0;min-width:0;overflow:auto}.resizable__handle{background:var(--border);cursor:col-resize;flex-shrink:0;position:relative}.resizable__pane-group--horizontal > .resizable__handle{cursor:col-resize;width:var(--spacing-1)}.resizable__pane-group--vertical > .resizable__handle{cursor:row-resize;height:var(--spacing-1)}
|
|
199
|
-
.resizable__handle:active,.resizable__handle:hover{background:var(--accent)}.resizable__handle--with-handle::after{background:var(--text-dim);border-radius:var(--radius);content:"";height:var(--spacing-4);left:50%;opacity:.5;position:absolute;top:50%;transform:translate(-50%,-50%);width:var(--spacing-4)}.resizable__pane-group--vertical > .resizable__handle--with-handle::after{height:var(--spacing-1);width:var(--spacing-4)}.resizable__pane-group--horizontal > .resizable__handle--with-handle::after{height:var(--spacing-4);width:var(--spacing-1)}.
|
|
206
|
+
.resizable__handle:active,.resizable__handle:hover{background:var(--accent)}.resizable__handle--with-handle::after{background:var(--text-dim);border-radius:var(--radius);content:"";height:var(--spacing-4);left:50%;opacity:.5;position:absolute;top:50%;transform:translate(-50%,-50%);width:var(--spacing-4)}.resizable__pane-group--vertical > .resizable__handle--with-handle::after{height:var(--spacing-1);width:var(--spacing-4)}.resizable__pane-group--horizontal > .resizable__handle--with-handle::after{height:var(--spacing-4);width:var(--spacing-1)}.carousel{position:relative;width:100%}.carousel__viewport{background:var(--background-alt);border-radius:var(--radius-lg);overflow:hidden;width:100%}.carousel__track{display:flex;transition:transform var(--transition-base) var(--ease-in-out-cubic);will-change:transform}@media (prefers-reduced-motion:reduce){.carousel__track{transition:none}}.carousel__slide{box-sizing:border-box;flex:0 0 100%;min-width:0;padding:var(--spacing-6)}.carousel__controls{align-items:center;display:flex;gap:var(--spacing-4);justify-content:center;margin-top:var(--spacing-4)}
|
|
207
|
+
.carousel__next,.carousel__prev{align-items:center;background:var(--background-alt);border:var(--border-width) solid var(--border);border-radius:var(--radius);color:var(--text);cursor:pointer;display:inline-flex;height:var(--touch-target-min);justify-content:center;padding:0;transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast);width:var(--touch-target-min)}
|
|
208
|
+
.carousel__next:hover,.carousel__prev:hover{background:var(--border);border-color:var(--text-dim)}
|
|
209
|
+
.carousel__next:focus-visible,.carousel__prev:focus-visible{outline:var(--outline-width) solid var(--accent);outline-offset:var(--outline-offset)}
|
|
210
|
+
.carousel__next:disabled,.carousel__prev:disabled{cursor:not-allowed;opacity:.5}
|
|
211
|
+
.carousel__next svg,.carousel__prev svg{height:24px;width:24px}.carousel__indicators{display:flex;gap:var(--spacing-2);margin:0;padding:0}.carousel__indicator{background:var(--border);border:none;border-radius:var(--radius-full);cursor:pointer;height:var(--spacing-2);padding:0;transition:background var(--transition-fast);width:var(--spacing-2)}.carousel__indicator:hover{background:var(--text-dim)}.carousel__indicator[aria-selected="true"]{background:var(--accent)}.calendar{background:var(--background);border:1px solid var(--border);border-radius:var(--radius-md);display:inline-block;min-width:280px;padding:var(--spacing-4)}.calendar__header{align-items:center;display:flex;gap:var(--spacing-2);justify-content:space-between;margin-bottom:var(--spacing-3)}
|
|
212
|
+
.calendar__next,.calendar__prev{align-items:center;background:transparent;border:none;border-radius:var(--radius-md);color:var(--text);cursor:pointer;display:inline-flex;height:36px;justify-content:center;padding:0;transition:background var(--transition-fast);width:36px}
|
|
213
|
+
.calendar__next:hover,.calendar__prev:hover{background:var(--border)}.calendar__month{color:var(--text);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold)}.calendar__grid{display:flex;flex-direction:column;gap:0}.calendar__row{display:grid;gap:0;grid-template-columns:repeat(7,1fr)}.calendar__weekday{color:var(--text-dim);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);padding:var(--spacing-1) var(--spacing-2);text-align:center}.calendar__day{align-items:center;background:transparent;border:none;border-radius:var(--radius-md);color:var(--text);cursor:pointer;display:inline-flex;font-size:var(--font-size-sm);height:36px;justify-content:center;margin:2px;min-width:36px;padding:0;transition:background var(--transition-fast)}.calendar__day:hover{background:var(--border)}.calendar__day--today{font-weight:var(--font-weight-semibold);outline:2px solid var(--accent);outline-offset:-2px}.calendar__day--selected{background:var(--accent);color:var(--background)}.calendar__day--selected:hover{background:var(--accent-hover);color:var(--background)}.calendar__day--other-month{color:var(--text-dim);opacity:.7}.home{padding:var(--content-padding-y) 0}.home__container{box-sizing:border-box;margin-left:auto;margin-right:auto;max-width:var(--container-default);min-width:0;padding-left:var(--content-padding-x);padding-right:var(--content-padding-x);width:100%}.home__announcement{align-items:center;background-color:oklch(from var(--accent-fg) l c h/8%);border:var(--border-width) solid oklch(from var(--accent-fg) l c h/14%);border-radius:var(--radius-lg);color:var(--text);display:flex;flex-wrap:wrap;font-size:var(--font-size-sm);gap:var(--spacing-2);justify-content:center;margin-bottom:var(--section-spacing);padding:var(--spacing-3) var(--spacing-4);text-decoration:none;transition:background-color var(--transition-base),border-color var(--transition-base)}.home__announcement:hover{background-color:oklch(from var(--accent-fg) l c h/12%);border-color:oklch(from var(--accent-fg) l c h/20%)}.home__announcement-label{color:var(--accent-fg);font-weight:var(--font-weight-semibold)}.home__announcement-text{color:var(--text-dim)}.home__announcement-arrow{color:var(--text-dim);transition:transform var(--transition-base)}.home__announcement:hover .home__announcement-arrow{transform:translateX(var(--spacing-0-5))}.home__hero{margin-bottom:var(--section-spacing-lg);padding:var(--spacing-14) 0 var(--spacing-16);text-align:center}.home__title{color:var(--text);font-size:var(--font-size-5xl);font-weight:var(--font-weight-extrabold);line-height:var(--line-height-tight);margin:0 0 var(--spacing-6) 0}.home__subtitle{color:var(--text-dim);font-size:var(--font-size-xl);line-height:var(--line-height-relaxed);margin:0 auto var(--spacing-8) auto;max-width:var(--spacing-175)}.home__hero-ctas{display:flex;flex-wrap:wrap;gap:var(--spacing-4);justify-content:center;margin-top:var(--spacing-6)}.home__hero-cta{text-decoration:none}.home__examples-row{display:flex;flex-wrap:wrap;gap:var(--spacing-3);justify-content:center;margin-top:var(--spacing-10)}.home__example-pill{background-color:var(--background-alt);border:var(--border-width) solid var(--border);border-radius:var(--radius-full);color:var(--text);display:inline-block;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);padding:var(--spacing-2) var(--spacing-4);text-decoration:none;transition:background-color var(--transition-base),border-color var(--transition-base),color var(--transition-base)}.home__example-pill:hover{background-color:var(--background);border-color:var(--accent);color:var(--accent-fg)}.home__example-pill:focus-visible{outline:var(--outline-width) solid var(--accent);outline-offset:var(--outline-offset)}.home__showcase{margin-bottom:var(--section-spacing-lg)}.home__showcase-grid{display:grid;gap:var(--spacing-8);grid-template-columns:1fr;margin:0 auto;max-width:var(--spacing-150)}@media (width >= 768px){.home__showcase-grid{grid-template-columns:1fr 1fr;max-width:100%}}.home__showcase .home__example{margin-bottom:0}.home__showcase .home__example:last-child{grid-column:1/-1;justify-self:center;max-width:var(--spacing-80)}@media (width >= 768px){.home__showcase .home__example:last-child{grid-column:auto;max-width:100%}}.home__section-title{color:var(--text);font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);margin-bottom:var(--page-header-margin-bottom);text-align:center}.home__install{align-items:center;display:flex;flex-direction:column;justify-content:center;margin-bottom:var(--section-spacing-lg);max-width:100%;min-width:0}.home__install-grid{display:grid;gap:0;grid-template-columns:1fr;margin:0 auto;max-width:var(--spacing-150);min-width:0;width:100%}@media (width >= 768px){.home__install-grid{grid-template-columns:1fr auto 1fr;max-width:100%}}.home__install-block{align-items:stretch;background-color:var(--background-alt);border:var(--border-width) solid var(--border);border-radius:var(--radius-lg);box-sizing:border-box;display:flex;flex-direction:column;justify-content:center;min-height:var(--spacing-24);min-width:0;overflow:hidden;padding:var(--spacing-6);width:100%}.home__install-or{align-items:center;color:var(--text-dim);display:flex;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);gap:var(--spacing-4);justify-content:center;letter-spacing:var(--letter-spacing-wider);padding:var(--spacing-4) 0}
|
|
200
214
|
.home__install-or::after,.home__install-or::before{border-top:var(--border-width) solid var(--border);content:"";flex:1;height:0}@media (width >= 768px){.home__install-or{flex-direction:column;gap:var(--spacing-4);padding:0 var(--spacing-4)}
|
|
201
215
|
.home__install-or::after,.home__install-or::before{border-left:var(--border-width) solid var(--border);border-top:none;flex:1;min-height:var(--spacing-8);width:0}}.home__install-title{color:var(--text);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);margin:0 0 var(--spacing-2) 0;text-align:center}.home__install-label{color:var(--text-dim);font-size:var(--font-size-sm);margin:0 0 var(--spacing-4) 0;text-align:center}.home__install-copy{align-items:center;display:flex;justify-content:center;width:100%}.home__install-copy .copy-to-clipboard{justify-content:space-between;width:100%}.home__install-copy .copy-to-clipboard__text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.home__cli-tabs{margin-top:var(--spacing-1)}.home__cli-tabs .cli-command-tabs__tabs,
|
|
202
216
|
.home__cli-tabs .package-install-tabs__tabs{margin-top:0}.home__cli-tabs .tabs__list{margin-bottom:var(--spacing-2);overflow-x:visible;overflow-y:visible;scrollbar-width:none}.home__cli-tabs .tabs__list::-webkit-scrollbar{display:none}.home__cli-tabs .tabs__panel{min-height:0;padding:0}.home__cli-tabs .cli-command-tabs__panel .code-block__header{padding:var(--spacing-1) var(--spacing-2)}.home__cli-tabs .cli-command-tabs__panel .code-block pre{padding:var(--spacing-2)}.home__cli-tabs .cli-command-tabs__panel .code-block,
|
|
@@ -221,7 +235,17 @@ div.navbar__link{background:none;border:none;color:inherit;cursor:pointer;font:i
|
|
|
221
235
|
#themes-preview .themes-page__preview-dropdown-menu .dropdown__item[aria-current="true"] span,
|
|
222
236
|
#themes-preview .themes-page__preview-dropdown-menu .dropdown__item[aria-current="true"]:focus-visible span,
|
|
223
237
|
#themes-preview .themes-page__preview-dropdown-menu .dropdown__item[aria-current="true"]:hover span{color:var(--accent)!important}.block-preview-wrapper{border:1px solid var(--border);border-radius:var(--radius-lg);margin:var(--spacing-6) 0;overflow:hidden}.block-preview-wrapper--hero{background:var(--background-alt);padding:var(--spacing-16) var(--spacing-6);text-align:center}.block-preview-wrapper--pricing{background:var(--background-alt);padding:var(--spacing-6)}.block-preview-wrapper--docs{min-height:16rem}.block-preview-wrapper--dashboard{min-height:24rem}.docs-dim{color:var(--text-dim);font-size:var(--font-size-sm);margin-top:0}.landing-hero__title{color:var(--text);font-size:var(--font-size-4xl);font-weight:var(--font-weight-extrabold);line-height:var(--line-height-tight);margin:0 0 var(--spacing-4)}.landing-hero__subtitle{color:var(--text-dim);font-size:var(--font-size-xl);line-height:var(--line-height-relaxed);margin:0 auto var(--spacing-8);max-width:var(--spacing-175)}.landing-hero__ctas{display:flex;flex-wrap:wrap;gap:var(--spacing-3);justify-content:center}.pricing-grid{display:grid;gap:var(--spacing-6);grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr));margin:0 auto;max-width:56rem}.pricing-card{display:flex;flex-direction:column}.pricing-card .card__body{display:flex;flex:1;flex-direction:column}.pricing-card--featured{border-color:var(--accent);box-shadow:0 0 0 2px oklch(from var(--accent) l c h/20%)}.pricing-card__badge{align-self:flex-start;margin-bottom:var(--spacing-2)}.pricing-card__name{color:var(--text);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);margin:0 0 var(--spacing-2)}.pricing-card__price{color:var(--text);font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);margin:0 0 var(--spacing-0-5)}.pricing-card__currency,
|
|
224
|
-
.pricing-card__period-inline{color:var(--text-dim);font-size:var(--font-size-lg);font-weight:var(--font-weight-normal)}.pricing-card__period{color:var(--text-dim);font-size:var(--font-size-sm);margin:0 0 var(--spacing-4)}.pricing-card__features{color:var(--text);flex:1;font-size:var(--font-size-sm);list-style:none;margin:0 0 var(--spacing-6);padding:0}.pricing-card__features li{padding:var(--spacing-1) 0;padding-left:var(--spacing-4);position:relative}.pricing-card__features li::before{background:var(--accent);border-radius:50%;content:"";height:.35em;left:0;position:absolute;top:.65em;width:.35em}.pricing-card__cta{justify-content:center;width:100%}.dashboard-page__header{margin-bottom:var(--spacing-6)}.dashboard-page__title{color:var(--text);font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);margin:0 0 var(--spacing-1)}.dashboard-page__subtitle{color:var(--text-dim);font-size:var(--font-size-sm);margin:0}.dashboard-page__stats-grid{display:grid;gap:var(--spacing-4);grid-template-columns:repeat(auto-fill,minmax(10rem,1fr));margin-bottom:var(--spacing-8)}.dashboard-page__stat .card__body{display:flex;flex-direction:column;gap:var(--spacing-1)}.dashboard-page__stat .card__label{color:var(--text-dim);font-size:var(--font-size-sm)}.dashboard-page__stat .card__value{color:var(--text);font-size:var(--font-size-xl);font-weight:var(--font-weight-bold)}.dashboard-page__section-title{color:var(--text);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);margin:0 0 var(--spacing-4)}.docs-layout-demo{display:flex;min-height:16rem}.docs-layout-demo__sidebar{background:var(--background-alt);border-right:1px solid var(--border);flex-shrink:0;padding:var(--spacing-4);width:12rem}.docs-layout-demo__nav{display:flex;flex-direction:column;gap:var(--spacing-1)}.docs-layout-demo__nav-link{border-radius:var(--radius-md);color:var(--text);display:block;font-size:var(--font-size-sm);padding:var(--spacing-2) var(--spacing-3);text-decoration:none}.docs-layout-demo__nav-link:hover{background:var(--background)}.docs-layout-demo__nav-link--active{background:var(--accent);color:var(--accent-text)}.docs-layout-demo__main{flex:1;overflow:auto;padding:var(--spacing-6)}.docs-layout-demo__header{margin-bottom:var(--spacing-4)}.docs-layout-demo__title{color:var(--text);font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);margin:0 0 var(--spacing-1)}.docs-layout-demo__desc{color:var(--text-dim);margin:0}.docs-layout-demo__content{margin-top:var(--spacing-4)}
|
|
238
|
+
.pricing-card__period-inline{color:var(--text-dim);font-size:var(--font-size-lg);font-weight:var(--font-weight-normal)}.pricing-card__period{color:var(--text-dim);font-size:var(--font-size-sm);margin:0 0 var(--spacing-4)}.pricing-card__features{color:var(--text);flex:1;font-size:var(--font-size-sm);list-style:none;margin:0 0 var(--spacing-6);padding:0}.pricing-card__features li{padding:var(--spacing-1) 0;padding-left:var(--spacing-4);position:relative}.pricing-card__features li::before{background:var(--accent);border-radius:50%;content:"";height:.35em;left:0;position:absolute;top:.65em;width:.35em}.pricing-card__cta{justify-content:center;width:100%}.dashboard-page__header{margin-bottom:var(--spacing-6)}.dashboard-page__title{color:var(--text);font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);margin:0 0 var(--spacing-1)}.dashboard-page__subtitle{color:var(--text-dim);font-size:var(--font-size-sm);margin:0}.dashboard-page__stats-grid{display:grid;gap:var(--spacing-4);grid-template-columns:repeat(auto-fill,minmax(10rem,1fr));margin-bottom:var(--spacing-8)}.dashboard-page__stat .card__body{display:flex;flex-direction:column;gap:var(--spacing-1)}.dashboard-page__stat .card__label{color:var(--text-dim);font-size:var(--font-size-sm)}.dashboard-page__stat .card__value{color:var(--text);font-size:var(--font-size-xl);font-weight:var(--font-weight-bold)}.dashboard-page__section-title{color:var(--text);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);margin:0 0 var(--spacing-4)}.docs-layout-demo{display:flex;min-height:16rem}.docs-layout-demo__sidebar{background:var(--background-alt);border-right:1px solid var(--border);flex-shrink:0;padding:var(--spacing-4);width:12rem}.docs-layout-demo__nav{display:flex;flex-direction:column;gap:var(--spacing-1)}.docs-layout-demo__nav-link{border-radius:var(--radius-md);color:var(--text);display:block;font-size:var(--font-size-sm);padding:var(--spacing-2) var(--spacing-3);text-decoration:none}.docs-layout-demo__nav-link:hover{background:var(--background)}.docs-layout-demo__nav-link--active{background:var(--accent);color:var(--accent-text)}.docs-layout-demo__main{flex:1;overflow:auto;padding:var(--spacing-6)}.docs-layout-demo__header{margin-bottom:var(--spacing-4)}.docs-layout-demo__title{color:var(--text);font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);margin:0 0 var(--spacing-1)}.docs-layout-demo__desc{color:var(--text-dim);margin:0}.docs-layout-demo__content{margin-top:var(--spacing-4)}.block-preview-wrapper--login,
|
|
239
|
+
.block-preview-wrapper--signup{align-items:center;background:var(--background-alt);display:flex;justify-content:center;min-height:20rem;padding:var(--spacing-16) var(--spacing-6)}.login-block,
|
|
240
|
+
.signup-block{display:flex;flex-direction:column;gap:var(--spacing-6);max-width:24rem;width:100%}.login-block__brand,
|
|
241
|
+
.signup-block__brand{align-items:center;color:var(--text);display:flex;font-weight:var(--font-weight-semibold);gap:var(--spacing-2);justify-content:center;text-decoration:none}.login-block__brand:hover,
|
|
242
|
+
.signup-block__brand:hover{color:var(--accent-fg);text-decoration:none}.login-block__brand-icon,
|
|
243
|
+
.signup-block__brand-icon{align-items:center;background:var(--accent);border-radius:var(--radius);color:var(--accent-text);display:flex;font-size:var(--font-size-sm);height:1.5rem;justify-content:center;width:1.5rem}.login-block__form,
|
|
244
|
+
.signup-block__form{background:var(--background);border:1px solid var(--border);border-radius:var(--radius-lg);display:flex;flex-direction:column;gap:var(--spacing-4);padding:var(--spacing-6)}.login-block__title,
|
|
245
|
+
.signup-block__title{color:var(--text);font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);margin:0 0 var(--spacing-1)}.login-block__footer,
|
|
246
|
+
.signup-block__footer{color:var(--text-dim);font-size:var(--font-size-sm);text-align:center}.login-block__footer a,
|
|
247
|
+
.signup-block__footer a{color:var(--accent-fg);text-decoration:underline;text-underline-offset:.15em}.login-block__footer a:hover,
|
|
248
|
+
.signup-block__footer a:hover{color:var(--accent-fg-hover)}[data-theme="github-dark-classic"]{--bg:oklch(18% 0.012 264deg);--bg-alt:oklch(15% 0.01 264deg);--current-line:oklch(20% 0.012 264deg);--selection:oklch(28% 0.08 255deg);--fg:oklch(91% 0.004 264deg);--fg-dim:oklch(66% 0.01 264deg);--comment:oklch(52% 0.015 264deg);--cyan:oklch(72% 0.12 250deg);--green:oklch(72% 0.19 145deg);--orange:oklch(78% 0.12 55deg);--pink:oklch(68% 0.14 15deg);--purple:oklch(68% 0.14 300deg);--red:oklch(68% 0.16 15deg);--yellow:oklch(88% 0.12 95deg);--background:var(--bg);--background-alt:var(--bg-alt);--text:var(--fg);--text-dim:var(--fg-dim);--icon:var(--fg);--icon-dim:oklch(75% 0.01 264deg);--border:oklch(13% 0.01 264deg);--accent:oklch(45% 0.18 250deg);--accent-hover:oklch(48% 0.18 250deg);--accent-text:oklch(100% 0 0deg);--accent-text-on-hover:var(--accent-text);--accent-fg:var(--cyan);--accent-fg-hover:oklch(78% 0.12 250deg);--success:var(--green);--success-hover:oklch(78% 0.16 145deg);--success-text:oklch(100% 0 0deg);--success-text-on-solid:oklch(22% 0.03 145deg);--warning:var(--orange);--warning-hover:oklch(85% 0.1 55deg);--warning-text:oklch(100% 0 0deg);--warning-text-on-solid:oklch(22% 0.02 55deg);--error:var(--red);--error-hover:oklch(75% 0.14 15deg);--error-text:oklch(100% 0 0deg);--error-text-on-solid:oklch(22% 0.03 25deg);--info:var(--cyan);--info-hover:oklch(78% 0.1 250deg);--info-text:oklch(100% 0 0deg);--info-text-on-solid:oklch(22% 0.03 250deg);--scrollbar-thumb:oklch(42% 0.02 264deg);--scrollbar-thumb-hover:oklch(52% 0.03 264deg);--scrollbar-thumb-active:oklch(58% 0.04 264deg);.card .card__body h2,
|
|
225
249
|
.card .card__body h3,
|
|
226
250
|
.card .card__body h4,.footer__link{color:var(--fg)}}@supports (color:oklch(from red l c h)){[data-theme="github-dark-classic"]{--color-accent-50:oklch(from var(--accent) 0.97deg 0.03 h);--color-accent-100:oklch(from var(--accent) 0.93deg 0.06 h);--color-accent-200:oklch(from var(--accent) 0.88deg 0.1 h);--color-accent-300:oklch(from var(--accent) 0.78deg 0.14 h);--color-accent-400:oklch(from var(--accent) 0.65deg 0.16 h);--color-accent-500:var(--accent);--color-accent-600:oklch(from var(--accent) 0.45deg 0.18 h);--color-accent-700:oklch(from var(--accent) 0.38deg 0.16 h);--color-accent-800:oklch(from var(--accent) 0.3deg 0.12 h);--color-accent-900:oklch(from var(--accent) 0.22deg 0.08 h);--color-accent-950:oklch(from var(--accent) 0.15deg 0.05 h);--color-success-50:oklch(from var(--success) 0.97deg 0.03 h);--color-success-100:oklch(from var(--success) 0.93deg 0.06 h);--color-success-200:oklch(from var(--success) 0.88deg 0.1 h);--color-success-300:oklch(from var(--success) 0.78deg 0.14 h);--color-success-400:oklch(from var(--success) 0.65deg 0.16 h);--color-success-500:var(--success);--color-success-600:oklch(from var(--success) 0.45deg 0.18 h);--color-success-700:oklch(from var(--success) 0.38deg 0.16 h);--color-success-800:oklch(from var(--success) 0.3deg 0.12 h);--color-success-900:oklch(from var(--success) 0.22deg 0.08 h);--color-success-950:oklch(from var(--success) 0.15deg 0.05 h);--color-warning-50:oklch(from var(--warning) 0.97deg 0.03 h);--color-warning-100:oklch(from var(--warning) 0.93deg 0.06 h);--color-warning-200:oklch(from var(--warning) 0.88deg 0.1 h);--color-warning-300:oklch(from var(--warning) 0.82deg 0.12 h);--color-warning-400:oklch(from var(--warning) 0.75deg 0.14 h);--color-warning-500:var(--warning);--color-warning-600:oklch(from var(--warning) 0.55deg 0.14 h);--color-warning-700:oklch(from var(--warning) 0.45deg 0.12 h);--color-warning-800:oklch(from var(--warning) 0.35deg 0.1 h);--color-warning-900:oklch(from var(--warning) 0.25deg 0.06 h);--color-warning-950:oklch(from var(--warning) 0.18deg 0.04 h);--color-error-50:oklch(from var(--error) 0.97deg 0.03 h);--color-error-100:oklch(from var(--error) 0.93deg 0.06 h);--color-error-200:oklch(from var(--error) 0.88deg 0.1 h);--color-error-300:oklch(from var(--error) 0.78deg 0.14 h);--color-error-400:oklch(from var(--error) 0.65deg 0.18 h);--color-error-500:var(--error);--color-error-600:oklch(from var(--error) 0.45deg 0.2 h);--color-error-700:oklch(from var(--error) 0.38deg 0.18 h);--color-error-800:oklch(from var(--error) 0.3deg 0.14 h);--color-error-900:oklch(from var(--error) 0.22deg 0.1 h);--color-error-950:oklch(from var(--error) 0.15deg 0.06 h);--color-info-50:oklch(from var(--info) 0.97deg 0.03 h);--color-info-100:oklch(from var(--info) 0.93deg 0.06 h);--color-info-200:oklch(from var(--info) 0.88deg 0.08 h);--color-info-300:oklch(from var(--info) 0.78deg 0.1 h);--color-info-400:oklch(from var(--info) 0.65deg 0.12 h);--color-info-500:var(--info);--color-info-600:oklch(from var(--info) 0.45deg 0.12 h);--color-info-700:oklch(from var(--info) 0.38deg 0.1 h);--color-info-800:oklch(from var(--info) 0.3deg 0.08 h);--color-info-900:oklch(from var(--info) 0.22deg 0.06 h);--color-info-950:oklch(from var(--info) 0.15deg 0.04 h)}}
|
|
227
251
|
[data-theme="github-dark-classic"] ::-webkit-scrollbar-thumb,[data-theme="github-dark-classic"]::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb)}
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "rizzo-css",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.68",
|
|
4
4
|
"engines": {
|
|
5
5
|
"node": ">=18"
|
|
6
6
|
},
|
|
7
7
|
"scripts": {
|
|
8
8
|
"prepublishOnly": "cd ../.. && pnpm run lint:css:fix && pnpm run build:css && node scripts/copy-scaffold.js && node scripts/prepare-vanilla-scaffold.js"
|
|
9
9
|
},
|
|
10
|
-
"description": "A modern CSS design system with semantic theming, 14 themes, accessible components (BEM), and pre-built blocks. Same CSS and components for Vanilla JS, Astro, Svelte, React, and Vue; CLI scaffolds all five; blocks include Landing hero, Pricing, Dashboard, Docs layout.",
|
|
10
|
+
"description": "A modern CSS design system with semantic theming, 14 themes, accessible components (BEM), and pre-built blocks. Same CSS and components for Vanilla JS, Astro, Svelte, React, and Vue; CLI scaffolds all five; blocks include Landing hero, Pricing, Dashboard, Docs layout, Login, Sign up.",
|
|
11
11
|
"style": "dist/rizzo.min.css",
|
|
12
12
|
"main": "dist/rizzo.min.css",
|
|
13
13
|
"unpkg": "dist/rizzo.min.css",
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
---
|
|
2
|
+
interface Props {
|
|
3
|
+
id?: string;
|
|
4
|
+
/** Initial month as YYYY-MM (default: current month) */
|
|
5
|
+
initialMonth?: string;
|
|
6
|
+
/** Selected date as YYYY-MM-DD (optional) */
|
|
7
|
+
selected?: string;
|
|
8
|
+
/** Accessible label for the calendar (default: "Calendar") */
|
|
9
|
+
label?: string;
|
|
10
|
+
class?: string;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
const {
|
|
14
|
+
id,
|
|
15
|
+
initialMonth,
|
|
16
|
+
selected,
|
|
17
|
+
label = 'Calendar',
|
|
18
|
+
class: className = '',
|
|
19
|
+
} = Astro.props;
|
|
20
|
+
|
|
21
|
+
const calendarId = id || `calendar-${Math.random().toString(36).substr(2, 9)}`;
|
|
22
|
+
const classes = `calendar ${className}`.trim();
|
|
23
|
+
const WEEKDAYS = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
<div
|
|
27
|
+
class={classes}
|
|
28
|
+
id={calendarId}
|
|
29
|
+
role="group"
|
|
30
|
+
aria-label={label}
|
|
31
|
+
data-calendar
|
|
32
|
+
data-initial-month={initialMonth ?? undefined}
|
|
33
|
+
data-selected={selected ?? undefined}
|
|
34
|
+
>
|
|
35
|
+
<div class="calendar__header">
|
|
36
|
+
<button type="button" class="calendar__prev" aria-label="Previous month" data-calendar-prev>
|
|
37
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="m15 18-6-6 6-6"/></svg>
|
|
38
|
+
</button>
|
|
39
|
+
<div class="calendar__month" aria-live="polite" data-calendar-month-label>—</div>
|
|
40
|
+
<button type="button" class="calendar__next" aria-label="Next month" data-calendar-next>
|
|
41
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="m9 18 6-6-6-6"/></svg>
|
|
42
|
+
</button>
|
|
43
|
+
</div>
|
|
44
|
+
<div class="calendar__grid" role="grid" aria-label="Month" data-calendar-grid>
|
|
45
|
+
<div class="calendar__row" role="row">
|
|
46
|
+
{WEEKDAYS.map((day) => (
|
|
47
|
+
<div class="calendar__weekday" role="columnheader" aria-label={day}>{day}</div>
|
|
48
|
+
))}
|
|
49
|
+
</div>
|
|
50
|
+
<div class="calendar__body" data-calendar-body role="presentation">
|
|
51
|
+
<!-- Rows filled by script -->
|
|
52
|
+
</div>
|
|
53
|
+
</div>
|
|
54
|
+
</div>
|
|
55
|
+
|
|
56
|
+
<script define:vars={{ calendarId }}>
|
|
57
|
+
(function initCalendar() {
|
|
58
|
+
const MONTHS = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
|
|
59
|
+
const WEEKDAYS = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];
|
|
60
|
+
|
|
61
|
+
function parseYYYYMM(str) {
|
|
62
|
+
if (!str) return null;
|
|
63
|
+
const [y, m] = str.split('-').map(Number);
|
|
64
|
+
if (!y || !m || m < 1 || m > 12) return null;
|
|
65
|
+
return { year: y, month: m - 1 };
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
function toYYYYMM(year, month) {
|
|
69
|
+
return `${year}-${String(month + 1).padStart(2, '0')}`;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
function toYYYYMMDD(year, month, day) {
|
|
73
|
+
return `${year}-${String(month + 1).padStart(2, '0')}-${String(day).padStart(2, '0')}`;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
function getMonthGrid(year, month) {
|
|
77
|
+
const first = new Date(year, month, 1);
|
|
78
|
+
const last = new Date(year, month + 1, 0);
|
|
79
|
+
const startDay = first.getDay();
|
|
80
|
+
const daysInMonth = last.getDate();
|
|
81
|
+
const weeks = [];
|
|
82
|
+
let week = [];
|
|
83
|
+
const pad = startDay;
|
|
84
|
+
for (let i = 0; i < pad; i++) {
|
|
85
|
+
const prevMonth = month === 0 ? 11 : month - 1;
|
|
86
|
+
const prevYear = month === 0 ? year - 1 : year;
|
|
87
|
+
const prevLast = new Date(prevYear, prevMonth + 1, 0).getDate();
|
|
88
|
+
week.push({ day: prevLast - pad + i + 1, year: prevYear, month: prevMonth, currentMonth: false });
|
|
89
|
+
}
|
|
90
|
+
for (let d = 1; d <= daysInMonth; d++) {
|
|
91
|
+
week.push({ day: d, year, month, currentMonth: true });
|
|
92
|
+
if (week.length === 7) {
|
|
93
|
+
weeks.push(week);
|
|
94
|
+
week = [];
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
const today = new Date();
|
|
98
|
+
const endPad = 7 - week.length;
|
|
99
|
+
for (let i = 0; i < endPad; i++) {
|
|
100
|
+
const nextMonth = month === 11 ? 0 : month + 1;
|
|
101
|
+
const nextYear = month === 11 ? year + 1 : year;
|
|
102
|
+
week.push({ day: i + 1, year: nextYear, month: nextMonth, currentMonth: false });
|
|
103
|
+
}
|
|
104
|
+
if (week.length) weeks.push(week);
|
|
105
|
+
return weeks;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
function render(root) {
|
|
109
|
+
const body = root.querySelector('[data-calendar-body]');
|
|
110
|
+
const labelEl = root.querySelector('[data-calendar-month-label]');
|
|
111
|
+
const gridEl = root.querySelector('[data-calendar-grid]');
|
|
112
|
+
if (!body || !labelEl || !gridEl) return;
|
|
113
|
+
|
|
114
|
+
const state = root._calendarState || { year: new Date().getFullYear(), month: new Date().getMonth(), selected: null };
|
|
115
|
+
const initial = parseYYYYMM(root.dataset.initialMonth);
|
|
116
|
+
if (initial && !root._calendarState) {
|
|
117
|
+
state.year = initial.year;
|
|
118
|
+
state.month = initial.month;
|
|
119
|
+
}
|
|
120
|
+
if (root.dataset.selected) state.selected = root.dataset.selected;
|
|
121
|
+
root._calendarState = state;
|
|
122
|
+
|
|
123
|
+
const today = new Date();
|
|
124
|
+
const todayStr = toYYYYMMDD(today.getFullYear(), today.getMonth(), today.getDate());
|
|
125
|
+
|
|
126
|
+
labelEl.textContent = `${MONTHS[state.month]} ${state.year}`;
|
|
127
|
+
gridEl.setAttribute('aria-label', `${MONTHS[state.month]} ${state.year}`);
|
|
128
|
+
|
|
129
|
+
const weeks = getMonthGrid(state.year, state.month);
|
|
130
|
+
body.innerHTML = '';
|
|
131
|
+
weeks.forEach((week) => {
|
|
132
|
+
const row = document.createElement('div');
|
|
133
|
+
row.className = 'calendar__row';
|
|
134
|
+
row.setAttribute('role', 'row');
|
|
135
|
+
week.forEach(({ day, year, month, currentMonth }) => {
|
|
136
|
+
const cell = document.createElement('div');
|
|
137
|
+
cell.setAttribute('role', 'gridcell');
|
|
138
|
+
const dateStr = toYYYYMMDD(year, month, day);
|
|
139
|
+
const isToday = dateStr === todayStr;
|
|
140
|
+
const isSelected = state.selected === dateStr;
|
|
141
|
+
const btn = document.createElement('button');
|
|
142
|
+
btn.type = 'button';
|
|
143
|
+
btn.className = 'calendar__day';
|
|
144
|
+
if (!currentMonth) btn.classList.add('calendar__day--other-month');
|
|
145
|
+
if (isToday) btn.classList.add('calendar__day--today');
|
|
146
|
+
if (isSelected) btn.classList.add('calendar__day--selected');
|
|
147
|
+
btn.setAttribute('aria-label', `Choose ${MONTHS[month]} ${day}, ${year}`);
|
|
148
|
+
btn.textContent = String(day);
|
|
149
|
+
btn.dataset.date = dateStr;
|
|
150
|
+
btn.addEventListener('click', () => {
|
|
151
|
+
state.selected = dateStr;
|
|
152
|
+
root.dispatchEvent(new CustomEvent('calendar-select', { detail: { date: dateStr }, bubbles: true }));
|
|
153
|
+
render(root);
|
|
154
|
+
});
|
|
155
|
+
cell.appendChild(btn);
|
|
156
|
+
row.appendChild(cell);
|
|
157
|
+
});
|
|
158
|
+
body.appendChild(row);
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
function init() {
|
|
163
|
+
const root = document.getElementById(calendarId);
|
|
164
|
+
if (!root) return;
|
|
165
|
+
root.querySelector('[data-calendar-prev]')?.addEventListener('click', () => {
|
|
166
|
+
const s = root._calendarState || { year: new Date().getFullYear(), month: new Date().getMonth() };
|
|
167
|
+
if (s.month === 0) { s.month = 11; s.year--; } else s.month--;
|
|
168
|
+
root._calendarState = s;
|
|
169
|
+
render(root);
|
|
170
|
+
});
|
|
171
|
+
root.querySelector('[data-calendar-next]')?.addEventListener('click', () => {
|
|
172
|
+
const s = root._calendarState || { year: new Date().getFullYear(), month: new Date().getMonth() };
|
|
173
|
+
if (s.month === 11) { s.month = 0; s.year++; } else s.month++;
|
|
174
|
+
root._calendarState = s;
|
|
175
|
+
render(root);
|
|
176
|
+
});
|
|
177
|
+
render(root);
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', init);
|
|
181
|
+
else init();
|
|
182
|
+
})();
|
|
183
|
+
</script>
|