@tundralibs/ui 0.1.2 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -16,8 +16,8 @@ that plug straight into `Application.initialize`.
16
16
  <!-- x-release-please-start-version -->
17
17
 
18
18
  ```html
19
- <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@tundralibs/ui@0.1.2/dist/ui.css">
20
- <script src="https://cdn.jsdelivr.net/npm/@tundralibs/ui@0.1.2/dist/ui.js" defer></script>
19
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@tundralibs/ui@0.2.0/dist/ui.css">
20
+ <script src="https://cdn.jsdelivr.net/npm/@tundralibs/ui@0.2.0/dist/ui.js" defer></script>
21
21
  ```
22
22
 
23
23
  <!-- x-release-please-end -->
@@ -57,6 +57,8 @@ validated forms, toasts) speaks rAPId's `data-*` swap contract and needs no clie
57
57
  Also browsable on the [wiki](https://github.com/TundraSoft/ui/wiki), synced from `docs/` on every push.
58
58
 
59
59
  - [Getting started](docs/UI-Getting-Started.md) — install (CDN, self-host, JSR), a first page, how the bundle is built.
60
+ - [Recipes](docs/UI-Recipes.md) — real pages as rAPId routes and as plain HTML: app shell, sign-in, dashboard, invoices
61
+ with bulk actions, uploads with progress, search, notifications.
60
62
  - [Components](docs/UI-Components.md) — a tour of every component with usage.
61
63
  - [Layouts](docs/UI-Layouts.md) — the eight page frames and how they respond.
62
64
  - [rAPId integration](docs/UI-Rapid.md) — the shell, swaps, forms, history, the example app.
package/dist/ui.css CHANGED
@@ -1,2 +1,2 @@
1
1
  /*! @tundralibs/ui — MIT — https://github.com/TundraSoft/ui */
2
- @layer tokens,reset,base,layouts,components;@layer tokens{:root{--color-primary: #1a1917;--color-primary-strong: #000000;--color-primary-contrast: #fdfcfb;--color-accent: #a8521f;--color-accent-strong: #8e4419;--color-accent-contrast: #fffdfb;--color-accent-inverse: #e8a87c;--color-secondary: #6e6a64;--color-secondary-strong: #4a4742;--color-secondary-contrast: #fdfcfb;--color-success: #1f7a4d;--color-success-contrast: #fffdfb;--color-warning: #9a6200;--color-warning-contrast: #fffdfb;--color-danger: #b8342a;--color-danger-contrast: #fffdfb;--color-info: #1f6a84;--color-info-contrast: #fffdfb;--color-success-soft: #e4f2e9;--color-success-soft-text: #14543a;--color-warning-soft: #fbf0da;--color-warning-soft-text: #6e4600;--color-danger-soft: #fae7e4;--color-danger-soft-text: #7d2620;--color-info-soft: #e2eff4;--color-info-soft-text: #114a5e;--color-canvas: #faf9f7;--color-surface: #ffffff;--color-surface-alt: #faf9f7;--color-surface-sunken: #f4f2ef;--color-surface-inverse: #1a1917;--color-overlay: rgb(26 25 23 / .45);--color-border-subtle: #f0ede9;--color-border: #e6e3df;--color-border-strong: #d3cfc9;--color-border-control: #8a8580;--color-media-scrim: rgb(0 0 0 / .6);--color-on-media: #ffffff;--color-text: #1a1917;--color-text-muted: #6e6a64;--color-text-subtle: #77726b;--color-text-inverse: #fdfcfb;--color-disabled: #f4f2ef;--color-disabled-text: #6e6a64;--space-0: 0;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--space-8: 3rem;--space-10: 4rem;--space-12: 5rem;--space-16: 6rem;--radius-sm: 5px;--radius-md: 9px;--radius-lg: 14px;--radius-full: 9999px;--shadow-color: 26 25 23;--shadow-sm: 0 1px 2px rgb(var(--shadow-color) / .05);--shadow-md: 0 1px 2px rgb(var(--shadow-color) / .04), 0 6px 16px -4px rgb(var(--shadow-color) / .1);--shadow-lg: 0 2px 4px rgb(var(--shadow-color) / .04), 0 16px 32px -8px rgb(var(--shadow-color) / .14);--shadow-xl: 0 4px 8px rgb(var(--shadow-color) / .05), 0 28px 64px -12px rgb(var(--shadow-color) / .22);--shadow-inset-top: inset 0 1px 0 rgb(255 255 255 / .12);--font-family-base: "Instrument Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--font-family-display: var(--font-family-base);--font-family-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--font-size-2xs: .6875rem;--font-size-xs: .75rem;--font-size-sm: .8125rem;--font-size-base: .9375rem;--font-size-lg: 1.0625rem;--font-size-xl: 1.1875rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.5rem;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--letter-spacing-tight: -.015em;--letter-spacing-tighter: -.025em;--letter-spacing-caps: .07em;--line-height-tight: 1.25;--line-height-base: 1.5;--line-height-relaxed: 1.75;--border-width: 1px;--border-width-thick: 2px;--control-height-sm: 30px;--control-height-md: 36px;--control-height-lg: 44px;--ring-color: var(--color-accent, var(--color-primary));--ring-width: 2px;--ring-offset: 2px;--focus-ring-color: var(--ring-color);--focus-ring-width: var(--ring-width);--focus-ring-offset: var(--ring-offset);--container-max-width: 1200px;--scroll-padding-top: 4.5rem;--layout-max-width: 1400px;--layout-measure: 70ch;--layout-focus-width: 40rem;--layout-sidebar-width: 16rem;--layout-rail-width: 4.5rem;--layout-aside-width: 18rem;--layout-pane-width: 22rem;--layout-gutter: clamp(var(--space-4), 3vw, var(--space-8));--transition-fast: .12s ease;--transition-base: .2s ease;--transition-slow: .32s ease;--z-dropdown: 1000;--z-sticky: 1020;--z-overlay: 1030;--z-modal: 1040;--z-popover: 1050;--z-toast: 1060}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--color-primary: #f2efe9;--color-primary-strong: #ffffff;--color-primary-contrast: #14130f;--color-accent: #e8a87c;--color-accent-strong: #f0bd9b;--color-accent-contrast: #1c1b17;--color-accent-inverse: #a8521f;--color-secondary: #8b857c;--color-secondary-strong: #a9a29a;--color-secondary-contrast: #14130f;--color-border-control: #6b665f;--color-canvas: #14130f;--color-surface: #1c1b17;--color-surface-alt: #232118;--color-surface-sunken: #232118;--color-surface-inverse: #f2efe9;--color-overlay: rgb(0 0 0 / .6);--color-border-subtle: #232118;--color-border: #2a2823;--color-border-strong: #3a3730;--color-text: #f2efe9;--color-text-muted: #a9a29a;--color-text-subtle: #969088;--color-text-inverse: #14130f;--color-disabled: #232118;--color-disabled-text: #969088;--color-success: #4eae76;--color-success-contrast: #1c1b17;--color-warning: #c99a3e;--color-warning-contrast: #1c1b17;--color-danger: #d1655a;--color-danger-contrast: #1c1b17;--color-info: #5aa2c4;--color-info-contrast: #1c1b17;--color-success-soft: #16321f;--color-success-soft-text: #8fd4a8;--color-warning-soft: #33260d;--color-warning-soft-text: #e5bf78;--color-danger-soft: #351a16;--color-danger-soft-text: #f0a49b;--color-info-soft: #122a33;--color-info-soft-text: #8fc6d8;--shadow-color: 0 0 0;--shadow-inset-top: inset 0 1px 0 rgb(255 255 255 / .06)}}:root[data-theme=dark]{--color-primary: #f2efe9;--color-primary-strong: #ffffff;--color-primary-contrast: #14130f;--color-accent: #e8a87c;--color-accent-strong: #f0bd9b;--color-accent-contrast: #1c1b17;--color-accent-inverse: #a8521f;--color-secondary: #8b857c;--color-secondary-strong: #a9a29a;--color-secondary-contrast: #14130f;--color-border-control: #6b665f;--color-canvas: #14130f;--color-surface: #1c1b17;--color-surface-alt: #232118;--color-surface-sunken: #232118;--color-surface-inverse: #f2efe9;--color-overlay: rgb(0 0 0 / .6);--color-border-subtle: #232118;--color-border: #2a2823;--color-border-strong: #3a3730;--color-text: #f2efe9;--color-text-muted: #a9a29a;--color-text-subtle: #969088;--color-text-inverse: #14130f;--color-disabled: #232118;--color-disabled-text: #969088;--color-success: #4eae76;--color-success-contrast: #1c1b17;--color-warning: #c99a3e;--color-warning-contrast: #1c1b17;--color-danger: #d1655a;--color-danger-contrast: #1c1b17;--color-info: #5aa2c4;--color-info-contrast: #1c1b17;--color-success-soft: #16321f;--color-success-soft-text: #8fd4a8;--color-warning-soft: #33260d;--color-warning-soft-text: #e5bf78;--color-danger-soft: #351a16;--color-danger-soft-text: #f0a49b;--color-info-soft: #122a33;--color-info-soft-text: #8fc6d8;--shadow-color: 0 0 0;--shadow-inset-top: inset 0 1px 0 rgb(255 255 255 / .06)}}@layer reset{*,*:before,*:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;font-family:var(--font-family-base);line-height:var(--line-height-base);scroll-padding-top:var(--scroll-padding-top)}html:focus-within{scroll-behavior:smooth}body{min-height:100vh;font-size:var(--font-size-base);color:var(--color-text);background:var(--color-canvas)}ul[class],ol[class]{list-style:none;padding:0}img,picture,svg,video{display:block;max-width:100%}input,button,textarea,select{font:inherit;color:inherit}button{cursor:pointer;background:none;border:none}a{color:inherit;text-decoration:none}table{border-collapse:collapse}fieldset{border:none;padding:0;margin:0;min-width:0}legend{padding:0}hr{border:none;border-top:var(--border-width) solid var(--color-border)}dialog{border:none;padding:0;background:none;color:inherit;max-width:min(100%,calc(100vw - 2 * var(--space-4)));max-height:min(100%,calc(100vh - 2 * var(--space-4)));margin:auto}dialog::backdrop{background:var(--color-overlay)}[hidden]{display:none!important}:disabled,[aria-disabled=true]{cursor:not-allowed}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.spinner,.btn--loading:after{animation-duration:1.5s!important;animation-iteration-count:infinite!important}}}@layer base{.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.container{width:100%;max-width:var(--container-max-width);margin-inline:auto;padding-inline:var(--space-4)}.skip-link{position:absolute;top:-3rem;left:0;z-index:var(--z-toast);background:var(--color-primary);color:var(--color-primary-contrast);padding:var(--space-2) var(--space-4);border-radius:0 0 var(--radius-sm) 0;transition:top var(--transition-fast)}.skip-link:focus{top:0}.js-only{display:none}.js .js-only{display:inline-flex}.mt-1{margin-top:var(--space-1)}.mt-2{margin-top:var(--space-2)}.mt-3{margin-top:var(--space-3)}.mt-4{margin-top:var(--space-4)}@media screen and (max-width:575px){.hide-sm{display:none!important}}.stack{display:flex;flex-direction:column;gap:var(--space-4)}.stack--sm{gap:var(--space-3)}.stack--lg{gap:var(--space-6)}}@layer base{h1,h2,h3,h4,h5,h6{font-family:var(--font-family-display);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);letter-spacing:var(--letter-spacing-tight);color:var(--color-text);text-wrap:pretty}h1{font-size:var(--font-size-4xl);letter-spacing:var(--letter-spacing-tighter);line-height:1.05}h2{font-size:var(--font-size-3xl)}h3{font-size:var(--font-size-2xl)}h4{font-size:var(--font-size-xl)}h5{font-size:var(--font-size-lg)}h6{font-size:var(--font-size-base)}:where(h1,h2,h3,h4,h5,h6,p,ul,ol,blockquote,pre,table,hr):not([class]){margin-block:0 var(--space-3)}:where(h1,h2,h3,h4):not([class]){margin-block:var(--space-6) var(--space-3)}:where(h1):not([class]){margin-block-end:var(--space-4)}:where(h1,h2,h3,h4,h5,h6,p,ul,ol,blockquote,pre,table,hr):not([class]):first-child{margin-block-start:0}:where(h1,h2,h3,h4,h5,h6,p,ul,ol,blockquote,pre,table,hr):not([class]):last-child{margin-block-end:0}small,.text-sm{font-size:var(--font-size-sm)}.text-xs{font-size:var(--font-size-xs)}.text-2xs{font-size:var(--font-size-2xs)}.text-muted{color:var(--color-text-muted)}.text-subtle{color:var(--color-text-subtle)}.text-mono{font-family:var(--font-family-mono)}.text-caps{font-family:var(--font-family-mono);font-size:var(--font-size-2xs);font-weight:var(--font-weight-medium);letter-spacing:var(--letter-spacing-caps);text-transform:uppercase;color:var(--color-text-subtle)}.text-nums{font-variant-numeric:tabular-nums}a:not([class]){color:var(--color-accent, var(--color-primary));text-decoration:underline;text-underline-offset:.2em}a:not([class]):hover{color:var(--color-accent-strong, var(--color-primary-strong))}a:not([class]):focus-visible{outline:var(--ring-width) solid var(--ring-color);outline-offset:var(--ring-offset)}.link{color:var(--color-accent, var(--color-primary));text-decoration:none;cursor:pointer}.link:hover{text-decoration:underline;text-underline-offset:.2em}.link:focus-visible{outline:var(--ring-width) solid var(--ring-color);outline-offset:var(--ring-offset)}.text-medium{font-weight:var(--font-weight-medium)}.text-semibold{font-weight:var(--font-weight-semibold)}.text-bold{font-weight:var(--font-weight-bold)}}@layer layouts{.layout{display:flex;flex-direction:column;min-height:100vh;background:var(--color-canvas)}.layout__header{position:sticky;top:0;z-index:var(--z-sticky);display:flex;align-items:center;background:var(--color-surface)}.layout__header>.navbar{flex:1 1 auto;min-width:0;position:static}.layout--static-header .layout__header{position:static}.layout__body{display:flex;flex:1 1 auto;min-height:0}.layout__content{flex:1 1 auto;min-width:0;padding:var(--layout-gutter)}.layout__footer{padding:var(--space-6) var(--layout-gutter);border-top:var(--border-width) solid var(--color-border);color:var(--color-text-muted);font-size:var(--font-size-sm)}.layout--boxed .layout__content,.layout--boxed .layout__footer{width:100%;max-width:var(--layout-max-width);margin-inline:auto}.layout__backdrop{display:none}@media screen and (max-width:991px){.js .sidebar.is-open~.layout__backdrop{display:block;position:fixed;inset:0;z-index:calc(var(--z-overlay) - 1);background:var(--color-overlay)}}.layout__drawer-toggle{margin-inline-start:var(--space-3)}}@layer layouts{.layout--stacked .layout__content{display:flex;flex-direction:column;gap:var(--space-6)}@media screen and (min-width:1400px){.layout--stacked:not(.layout--boxed) .layout__content{padding-inline:max(var(--layout-gutter),calc((100% - var(--layout-max-width)) / 2))}}}@layer layouts{.layout--sidebar .layout__body>.sidebar{width:var(--layout-sidebar-width)}.layout--sidebar-end .layout__body{flex-direction:row-reverse}.layout__aside{flex:0 0 var(--layout-aside-width);padding:var(--layout-gutter);padding-inline-start:0}@media screen and (max-width:1199px){.layout--sidebar .layout__body{flex-wrap:wrap}.layout__aside{flex:1 1 100%;padding-inline-start:var(--layout-gutter);padding-top:0}}@media screen and (min-width:992px){.layout--sidebar .layout__body>.sidebar{position:sticky;top:var(--scroll-padding-top);align-self:flex-start;height:calc(100vh - var(--scroll-padding-top))}.layout--static-header .layout__body>.sidebar{top:0;height:100vh}}}@layer layouts{.layout--rail .layout__body{flex-direction:row}.layout__rail{flex:0 0 var(--layout-rail-width);position:sticky;top:0;align-self:flex-start;height:100vh;display:flex;flex-direction:column;align-items:center;gap:var(--space-1);padding-block:var(--space-3);background:var(--color-surface);border-inline-end:var(--border-width) solid var(--color-border)}.layout--rail .layout__header~.layout__body .layout__rail{top:var(--scroll-padding-top);height:calc(100vh - var(--scroll-padding-top))}.layout__rail-brand{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;margin-bottom:var(--space-2);border-radius:var(--radius-md);background:var(--color-primary);color:var(--color-primary-contrast);font-weight:var(--font-weight-bold)}.layout__rail-link{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--radius-md);color:var(--color-text-subtle)}.layout__rail-link:hover{color:var(--color-text);background:var(--color-surface-sunken)}.layout__rail-link[aria-current=page]{background:var(--color-surface-sunken);color:var(--color-primary)}.layout__rail-link:focus-visible{outline:var(--ring-width) solid var(--ring-color);outline-offset:var(--ring-offset)}.layout__rail-end{margin-top:auto}@media screen and (max-width:767px){.layout--rail .layout__body{flex-direction:column}.layout__rail{position:fixed;inset-inline:0;bottom:0;top:auto;height:auto;flex-direction:row;justify-content:space-around;padding:var(--space-2) var(--space-3);border-inline-end:none;border-top:var(--border-width) solid var(--color-border);z-index:var(--z-sticky)}.layout__rail-brand,.layout__rail-end{display:none}.layout__rail-link{width:44px;height:44px}.layout--rail .layout__content{padding-bottom:calc(var(--layout-gutter) + 60px)}}}@layer layouts{.layout--split .layout__body{flex-direction:row}.layout__pane{flex:0 0 var(--layout-pane-width);min-width:0;border-inline-end:var(--border-width) solid var(--color-border);background:var(--color-surface);overflow-y:auto}.layout--split .layout__content{flex:1 1 auto;overflow-y:auto}@media screen and (min-width:768px){.layout--split .layout__body{height:calc(100vh - var(--scroll-padding-top));position:sticky;top:var(--scroll-padding-top)}.layout--split.layout--static-header .layout__body,.layout--split:not(:has(.layout__header)) .layout__body{height:100vh;top:0}}@media screen and (min-width:768px)and (max-width:991px){.layout__pane{flex-basis:min(var(--layout-pane-width),40%)}}@media screen and (max-width:767px){.layout__pane{flex:1 1 100%;border-inline-end:none}.layout--split .layout__content,.layout--show-detail .layout__pane{display:none}.layout--show-detail .layout__content{display:block}}}@layer layouts{.layout--article .layout__content{display:grid;grid-template-columns:minmax(0,var(--layout-measure));justify-content:center;gap:var(--space-8)}.layout--article-wide .layout__content{grid-template-columns:minmax(0,var(--layout-max-width))}.layout__article{min-width:0}.layout--article .layout__aside{flex:none;padding:0}@media screen and (min-width:992px){.layout--article.layout--has-aside .layout__content{grid-template-columns:minmax(0,var(--layout-measure)) var(--layout-aside-width)}.layout--article-wide.layout--has-aside .layout__content{grid-template-columns:minmax(0,1fr) var(--layout-aside-width);max-width:var(--layout-max-width);margin-inline:auto}.layout--aside-start .layout__content{direction:rtl}.layout--aside-start .layout__content>*{direction:ltr}.layout--article .layout__aside{position:sticky;top:calc(var(--scroll-padding-top) + var(--space-4));align-self:start}}.layout--article .layout__footer{text-align:center}}@layer layouts{.layout--docs .layout__body>.sidebar{width:var(--layout-sidebar-width)}.layout--docs .layout__content{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-6);max-width:calc(var(--layout-measure) + var(--layout-aside-width) + var(--space-8))}.layout__toc-toggle{display:inline-flex;align-items:center;gap:var(--space-2);min-height:var(--control-height-md);padding-inline:var(--space-3);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer}.layout__toc-toggle:focus-visible{outline:var(--ring-width) solid var(--ring-color);outline-offset:var(--ring-offset)}.layout__toc-title{font-family:var(--font-family-mono);font-size:var(--font-size-2xs);letter-spacing:var(--letter-spacing-caps);text-transform:uppercase;color:var(--color-text-subtle);margin-bottom:var(--space-2)}@media screen and (max-width:1199px){.layout__toc{order:-1}.js .layout__toc-body{display:none;padding:var(--space-3) 0 0}.js .layout__toc-body.is-open{display:block}.layout__toc-title{display:none}}@media screen and (min-width:992px){.layout--docs .layout__body>.sidebar{position:sticky;top:var(--scroll-padding-top);align-self:flex-start;height:calc(100vh - var(--scroll-padding-top))}}@media screen and (min-width:1200px){.layout--docs .layout__content{grid-template-columns:minmax(0,var(--layout-measure)) var(--layout-aside-width)}.layout__toc{position:sticky;top:calc(var(--scroll-padding-top) + var(--space-4));align-self:start}.layout__toc-toggle{display:none}}}@layer layouts{.layout--auth{display:flex;align-items:center;justify-content:center;padding:var(--layout-gutter)}.layout__auth-panel{width:100%;max-width:24rem}.layout__auth-brand{display:flex;align-items:center;justify-content:center;gap:var(--space-2);margin-bottom:var(--space-6);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold)}.layout__auth-narrative{display:none}@media screen and (min-width:992px){.layout--auth-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:stretch;padding:0}.layout--auth-split .layout__auth-narrative{display:flex;flex-direction:column;justify-content:center;gap:var(--space-6);padding:var(--space-10) var(--space-8);background:var(--color-surface-inverse);color:var(--color-text-inverse)}.layout--auth-split .layout__auth-form{display:flex;align-items:center;justify-content:center;padding:var(--space-10) var(--space-8)}}@media screen and (min-width:1400px){.layout--auth-split .layout__auth-narrative>*{max-width:32rem;margin-inline:auto;width:100%}}}@layer layouts{.layout--focus .layout__header{justify-content:center;padding:var(--space-4) var(--layout-gutter);background:transparent}.layout--focus .layout__content{width:100%;max-width:var(--layout-focus-width);margin-inline:auto;padding-block:var(--space-8)}.layout--focus-wide .layout__content{max-width:var(--layout-measure)}.layout--focus .layout__footer{border-top:none;text-align:center}}@layer components{.card{position:relative;display:flex;flex-direction:column;background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md)}.card--elevated{border-color:transparent;box-shadow:var(--shadow-md)}.card--flat{border-color:transparent;background:var(--color-surface-alt)}.card--horizontal{flex-direction:row}.card--horizontal>.card__media{flex:0 0 35%;aspect-ratio:auto;align-self:stretch}.card--horizontal>.card__content{min-width:0}.card--clickable{cursor:pointer;text-align:inherit;transition:box-shadow var(--transition-fast),border-color var(--transition-fast),transform var(--transition-fast)}.card--clickable:hover,.card--clickable:focus-within{box-shadow:var(--shadow-md);transform:translateY(-2px)}.card--clickable:focus-visible{outline:var(--ring-width) solid var(--ring-color);outline-offset:var(--ring-offset)}.card--selected{border-color:var(--color-primary);box-shadow:0 0 0 1px var(--color-primary)}.card__content{display:flex;flex-direction:column;flex:1 1 auto;min-width:0}.card__media{position:relative;overflow:hidden;aspect-ratio:16 / 9;background:var(--color-surface-alt)}.card__media>img,.card__media>video,.card__media>svg{display:block;width:100%;height:100%;object-fit:cover}.card__media:first-child{border-start-start-radius:inherit;border-start-end-radius:inherit}.card--horizontal>.card__media:first-child{border-start-end-radius:0;border-end-start-radius:inherit}.card__media--square{aspect-ratio:1 / 1}.card__media--tall{aspect-ratio:3 / 4}.card__media--banner{aspect-ratio:21 / 9}.card__media-overlay{position:absolute;inset:0;display:flex;align-items:flex-end;padding:var(--space-4);background:linear-gradient(to top,var(--color-media-scrim),transparent);color:var(--color-on-media)}.card__header{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4);border-bottom:var(--border-width) solid var(--color-border)}.card__avatar{flex:0 0 auto;width:2.5rem;height:2.5rem;border-radius:var(--radius-full);overflow:hidden}.card__avatar>img{width:100%;height:100%;object-fit:cover}.card__heading{flex:1 1 auto;min-width:0}.card__title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight)}.card__title-link{color:inherit;text-decoration:none}.card__title-link:after{content:"";position:absolute;inset:0;z-index:1}.card__title-link:hover,.card__title-link:focus-visible{text-decoration:underline}.card__stretch-link{position:absolute;inset:0;z-index:1}.card__subtitle{font-size:var(--font-size-sm);color:var(--color-text-muted)}.card__actions{position:relative;z-index:2;display:flex;align-items:center;gap:var(--space-2);margin-inline-start:auto}.card__body{padding:var(--space-4);flex:1 1 auto;color:var(--color-text);font-size:var(--font-size-base)}.card__body>:not(:last-child){margin-bottom:var(--space-3)}.card__footer{position:relative;z-index:2;display:flex;align-items:center;gap:var(--space-2);padding:var(--space-4);border-top:var(--border-width) solid var(--color-border);justify-content:flex-end}.card__footer--split{justify-content:space-between}.card__meta{font-size:var(--font-size-sm);color:var(--color-text-muted)}.card--danger{border-color:var(--color-danger-soft-text)}}@layer components{.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);height:var(--control-height-md);padding-inline:var(--space-4);border:var(--border-width) solid var(--color-primary);border-radius:var(--radius-md);font-family:inherit;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);line-height:1;white-space:nowrap;flex-shrink:0;background:var(--color-primary);color:var(--color-primary-contrast);box-shadow:var(--shadow-inset-top),var(--shadow-sm);cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast),box-shadow var(--transition-fast)}.btn:hover{background:var(--color-primary-strong);border-color:var(--color-primary-strong)}.btn:focus-visible{outline:var(--ring-width) solid var(--ring-color);outline-offset:var(--ring-offset)}.btn:disabled,.btn[aria-disabled=true]{background:var(--color-disabled);border-color:transparent;color:var(--color-disabled-text);box-shadow:none;cursor:not-allowed}.btn--secondary{background:var(--color-secondary);border-color:var(--color-secondary);color:var(--color-secondary-contrast)}.btn--secondary:hover{background:var(--color-secondary-strong, var(--color-secondary));border-color:var(--color-secondary-strong, var(--color-secondary))}.btn--outline{background:var(--color-surface);border-color:var(--color-border);color:var(--color-text);box-shadow:var(--shadow-sm)}.btn--outline:hover{background:var(--color-surface-alt);border-color:var(--color-border-strong)}.btn--subtle{background:var(--color-surface-sunken);border-color:transparent;color:var(--color-text);box-shadow:none}.btn--subtle:hover{background:var(--color-border);border-color:transparent}.btn--ghost{background:transparent;border-color:transparent;color:var(--color-text-muted);box-shadow:none}.btn--ghost:hover{background:var(--color-surface-sunken);border-color:transparent;color:var(--color-text)}.btn--accent{background:var(--color-accent, var(--color-primary));border-color:var(--color-accent, var(--color-primary));color:var(--color-accent-contrast, var(--color-primary-contrast))}.btn--accent:hover{background:var(--color-accent-strong, var(--color-primary-strong));border-color:var(--color-accent-strong, var(--color-primary-strong))}.btn--danger{background:var(--color-danger);border-color:var(--color-danger);color:var(--color-danger-contrast)}.btn--danger:hover{filter:brightness(.92)}.btn--sm{height:var(--control-height-sm);padding-inline:var(--space-3);border-radius:var(--radius-sm);font-size:var(--font-size-sm)}.btn--lg{height:var(--control-height-lg);padding-inline:var(--space-5);font-size:var(--font-size-base)}.btn--icon{width:var(--control-height-md);padding-inline:0}.btn--sm.btn--icon{width:var(--control-height-sm)}.btn--lg.btn--icon{width:var(--control-height-lg)}.btn--block{display:flex;width:100%}.btn--loading{position:relative;color:transparent;pointer-events:none}.btn--loading:after{content:"";position:absolute;width:1em;height:1em;border:var(--border-width-thick) solid var(--btn-loading-color, var(--color-primary-contrast));border-inline-end-color:transparent;border-radius:var(--radius-full);animation:btn-spin .6s linear infinite}.btn--outline,.btn--subtle,.btn--ghost{--btn-loading-color: var(--color-text)}.btn--secondary{--btn-loading-color: var(--color-secondary-contrast)}.btn--accent{--btn-loading-color: var(--color-accent-contrast)}.btn--danger{--btn-loading-color: var(--color-danger-contrast)}.btn-group{display:inline-flex;border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.btn-group>.btn{box-shadow:none;border-radius:0}.btn-group>.btn:first-child{border-start-start-radius:var(--radius-md);border-end-start-radius:var(--radius-md)}.btn-group>.btn:last-child{border-start-end-radius:var(--radius-md);border-end-end-radius:var(--radius-md)}.btn-group>.btn+.btn{margin-inline-start:calc(var(--border-width) * -1)}.btn-group>.btn:focus-visible,.btn-group>.dropdown>.btn:focus-visible{position:relative;z-index:1}.btn-group>.dropdown>.btn{box-shadow:none;border-radius:0}.btn-group>.dropdown:last-child>.btn{border-start-end-radius:var(--radius-md);border-end-end-radius:var(--radius-md)}.btn-group>.btn+.dropdown{margin-inline-start:calc(var(--border-width) * -1)}@keyframes btn-spin{to{transform:rotate(360deg)}}}@layer components{.switch{display:inline-flex;align-items:flex-start;gap:var(--space-3);cursor:pointer}.switch__input{position:absolute;opacity:0;width:1px;height:1px}.switch__track{position:relative;flex:0 0 auto;width:38px;height:22px;margin-top:1px;background:var(--color-border-strong);border-radius:var(--radius-full);box-shadow:inset 0 1px 2px rgb(var(--shadow-color) / .18);transition:background var(--transition-fast)}.switch__thumb{position:absolute;top:2px;inset-inline-start:2px;width:18px;height:18px;background:var(--color-surface);border-radius:var(--radius-full);box-shadow:var(--shadow-sm);transition:transform var(--transition-fast)}.switch__input:checked~.switch__track{background:var(--color-primary)}.switch__input:checked~.switch__track .switch__thumb{transform:translate(16px)}.switch__input:focus-visible~.switch__track{outline:var(--ring-width) solid var(--ring-color);outline-offset:var(--ring-offset)}.switch__input:disabled~.switch__track{opacity:.5;cursor:not-allowed}.switch__text{display:flex;flex-direction:column;gap:1px}.switch__label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text)}.switch__hint{font-size:var(--font-size-xs);color:var(--color-text-muted)}}@layer components{.choice{display:inline-flex;align-items:center;gap:var(--space-2);cursor:pointer}.choice__input{width:1.125rem;height:1.125rem;accent-color:var(--color-primary);cursor:pointer}.choice__input:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}.choice__input:disabled{cursor:not-allowed}.choice__input:disabled~.choice__label{opacity:.5;cursor:not-allowed}.choice__label{font-size:var(--font-size-base);color:var(--color-text)}.choice-group{display:flex;flex-direction:column;gap:var(--space-2)}.choice-group--inline{flex-direction:row;flex-wrap:wrap;gap:var(--space-4)}}@layer components{.input{display:block;width:100%;height:var(--control-height-md);padding-inline:var(--space-3);border:var(--border-width) solid var(--color-border-control, var(--color-border-strong));border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);font-family:inherit;font-size:var(--font-size-base);box-shadow:inset 0 1px 2px rgb(var(--shadow-color) / .04);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.input::placeholder{color:var(--color-text-subtle)}.input:focus-visible{outline:var(--ring-width) solid var(--ring-color);outline-offset:1px;border-color:var(--color-primary)}.input:disabled{background:var(--color-surface-sunken);border-color:var(--color-border);color:var(--color-disabled-text);box-shadow:none;cursor:not-allowed}.input--invalid{border-color:var(--color-danger)}.input--sm{height:var(--control-height-sm);padding-inline:var(--space-2);border-radius:var(--radius-sm);font-size:var(--font-size-sm)}.input--lg{height:var(--control-height-lg);padding-inline:var(--space-4);font-size:var(--font-size-lg)}.input--multiline{height:auto;padding-block:var(--space-2);line-height:var(--line-height-base);resize:vertical}.input-icon{position:relative;display:flex;align-items:center}.input-icon__glyph{position:absolute;inset-inline-start:var(--space-3);display:inline-flex;color:var(--color-text-subtle);pointer-events:none}.input-icon--end .input-icon__glyph{inset-inline-start:auto;inset-inline-end:var(--space-3)}.input-icon .input{padding-inline-start:var(--space-8)}.input-icon--end .input{padding-inline-start:var(--space-3);padding-inline-end:var(--space-8)}.input-float{position:relative}.input-float .input{height:var(--control-height-lg);padding-top:var(--space-4);padding-bottom:0}.input-float__label{position:absolute;inset-inline-start:var(--space-3);top:50%;transform:translateY(-50%);font-size:var(--font-size-base);color:var(--color-text-muted);pointer-events:none;transition:top var(--transition-fast),font-size var(--transition-fast),color var(--transition-fast)}.input-float .input:focus~.input-float__label,.input-float .input:not(:placeholder-shown)~.input-float__label{top:var(--space-3);font-size:var(--font-size-2xs);color:var(--color-text-subtle)}.input-group{display:flex;align-items:stretch;border:var(--border-width) solid var(--color-border-control, var(--color-border-strong));border-radius:var(--radius-md);background:var(--color-surface);box-shadow:inset 0 1px 2px rgb(var(--shadow-color) / .04)}.input-group>:first-child{border-start-start-radius:inherit;border-end-start-radius:inherit}.input-group>:last-child{border-start-end-radius:inherit;border-end-end-radius:inherit}.input-group:focus-within{outline:var(--ring-width) solid var(--ring-color);outline-offset:1px;border-color:var(--color-primary)}.input-group>.input,.input-group .select .select__native,.input-group .select .combobox__field{height:100%;border:none;border-radius:0;background:transparent;box-shadow:none}.input-group>.input{height:auto}.input-group .select{width:auto}.input-group__addon>.select{margin-inline:calc(var(--space-3) * -1)}.input-group .select .combobox__input{width:5ch;flex:0 0 auto;padding-inline-start:var(--space-3)}.input-group .select .combobox__list{inset-inline-end:auto;min-width:12rem;width:max-content;max-width:calc(100vw - 2 * var(--space-4));border-top:var(--border-width) solid var(--ring-color);border-radius:var(--radius-md)}.input-group>.input:focus-visible,.input-group .select .select__native:focus-visible,.input-group .select .combobox__field:focus-within{outline:none}.input-group__control{flex:1 1 auto;min-width:0}.input-group__addon{display:flex;align-items:center;flex:0 0 auto;padding-inline:var(--space-3);background:var(--color-surface-sunken);color:var(--color-text-muted);font-size:var(--font-size-sm);white-space:nowrap}.input-group__addon:first-child{border-inline-end:var(--border-width) solid var(--color-border)}.input-group__addon:last-child{border-inline-start:var(--border-width) solid var(--color-border)}}@layer components{.textarea{resize:vertical;min-height:6rem}}@layer components{.select{position:relative;display:inline-block;width:100%}.select__native{appearance:none;width:100%;height:var(--control-height-md);padding-block:0;padding-inline:var(--space-3) calc(var(--space-3) * 2 + 15px);border:var(--border-width) solid var(--color-border-control, var(--color-border-strong));border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);font-size:var(--font-size-base)}.select__native:focus-visible{outline:var(--ring-width) solid var(--ring-color);outline-offset:1px;border-color:var(--color-primary)}.select__native:disabled{background:var(--color-surface-alt);color:var(--color-disabled-text);cursor:not-allowed}.js .select__native{display:none}html:not(.js) .select__ui{display:none}.select__ui .combobox__field{cursor:pointer}.select__ui .combobox__input{cursor:pointer;caret-color:transparent}.select__ui .combobox__input:disabled{cursor:not-allowed}.select--disabled .combobox__field{background:var(--color-surface-alt);color:var(--color-disabled-text)}.select--invalid .select__native,.select--invalid .combobox__field{border-color:var(--color-danger)}.select__ui .combobox__hints{display:none}}@layer components{.alert{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);border-inline-start:var(--border-width-thick) solid var(--color-border-strong);background:var(--color-surface-sunken);color:var(--color-text)}.alert__icon{flex:0 0 auto;margin-top:1px}.alert__body{flex:1 1 auto;min-width:0}.alert__title{font-weight:var(--font-weight-semibold)}.alert__text{font-size:var(--font-size-sm);line-height:var(--line-height-base)}.alert__list{margin-top:var(--space-1);padding:0;list-style:none;display:flex;flex-direction:column;gap:3px;font-size:var(--font-size-sm)}.alert__field{display:flex;gap:var(--space-2)}.alert__field-name{font-family:var(--font-family-mono);font-size:var(--font-size-xs);opacity:.85}.alert__close{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;min-width:24px;min-height:24px;margin:-4px;background:none;border:none;border-radius:var(--radius-sm);padding:0;cursor:pointer;color:inherit;opacity:.55}.alert__close:hover{opacity:1}.alert__close:focus-visible{outline:var(--ring-width) solid currentColor;outline-offset:var(--ring-offset)}.alert--success{background:var(--color-success-soft);border-inline-start-color:var(--color-success);color:var(--color-success-soft-text)}.alert--warning{background:var(--color-warning-soft);border-inline-start-color:var(--color-warning);color:var(--color-warning-soft-text)}.alert--danger{background:var(--color-danger-soft);border-inline-start-color:var(--color-danger);color:var(--color-danger-soft-text)}.alert--info{background:var(--color-info-soft);border-inline-start-color:var(--color-info);color:var(--color-info-soft-text)}}@layer components{.form-field{display:flex;flex-direction:column;gap:var(--space-1)}.form-field__label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text)}.form-field__required{color:var(--color-danger);margin-left:var(--space-1)}.form-field__help{font-size:var(--font-size-xs);color:var(--color-text-muted)}.form-field__error{font-size:var(--font-size-xs);color:var(--color-danger)}.form-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:var(--space-4)}.form-grid>*{grid-column:span 12}@media screen and (min-width:768px){.form-grid>.form-grid__col-6{grid-column:span 6}.form-grid>.form-grid__col-4{grid-column:span 4}.form-grid>.form-grid__col-3{grid-column:span 3}}.form-actions{display:flex;justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-2)}}@layer components{.form{display:flex;flex-direction:column;gap:var(--space-4)}}@layer components{.menu__list,.menu__sublist{display:flex;flex-direction:column;gap:var(--space-1);list-style:none}.menu__sublist{padding-inline-start:var(--space-4);margin-top:var(--space-1)}.menu__link{display:flex;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:none;border:none;color:var(--color-text);font:inherit;text-align:start;cursor:pointer}.menu__link:hover{background:var(--color-surface-alt)}.menu__link:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:-2px}.menu__link--active{background:var(--color-surface-alt);color:var(--color-primary);font-weight:var(--font-weight-medium)}.menu__icon{flex:0 0 auto;width:1.1em;height:1.1em}.menu__caret{margin-inline-start:auto;flex:0 0 auto;transition:transform var(--transition-fast)}.menu__link[aria-expanded=true] .menu__caret{transform:rotate(90deg)}}@layer components{.navbar{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);background:var(--color-surface);border-bottom:var(--border-width) solid var(--color-border);position:sticky;top:0;z-index:var(--z-sticky)}.navbar__brand{display:flex;align-items:center;gap:var(--space-2);min-width:0;font-weight:var(--font-weight-semibold);font-size:var(--font-size-lg);color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.navbar__nav{display:flex;align-items:center;gap:var(--space-4);margin-inline-start:var(--space-4)}.navbar__link{color:var(--color-text-muted);font-weight:var(--font-weight-medium);padding-block:var(--space-2)}.navbar__link:hover{color:var(--color-primary)}.navbar__link:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}.navbar__link--active{color:var(--color-primary)}.navbar__spacer{flex:1 1 auto}.navbar__actions{display:flex;align-items:center;gap:var(--space-3);margin-inline-start:auto;flex-shrink:0}.navbar__toggle{display:none;align-items:center;justify-content:center;min-width:var(--control-height-md);min-height:var(--control-height-md);background:none;border:none;border-radius:var(--radius-md);cursor:pointer;padding:var(--space-2);color:var(--color-text)}.navbar__toggle:focus-visible{outline:var(--ring-width) solid var(--ring-color);outline-offset:var(--ring-offset)}.navbar__toggle--sidebar{display:inline-flex}@media screen and (min-width:992px){.navbar__toggle--sidebar{display:none}}@media screen and (max-width:767px){.navbar__nav{position:absolute;top:100%;inset-inline:0;flex-direction:column;align-items:stretch;gap:0;margin-inline-start:0;background:var(--color-surface);border-bottom:var(--border-width) solid var(--color-border);padding:var(--space-2) var(--space-4)}.js .navbar__nav{display:none}.js .navbar__nav.is-open{display:flex}.navbar__link{padding-block:var(--space-3)}.navbar__toggle{display:inline-flex}}}@layer components{.sidebar{display:flex;flex-direction:column;gap:var(--space-4);width:16rem;flex:0 0 auto;padding:var(--space-4);background:var(--color-surface);color:var(--color-text);border-inline-end:var(--border-width) solid var(--color-border);overflow-y:auto}.sidebar__brand{display:flex;align-items:center;gap:var(--space-2);font-weight:var(--font-weight-semibold);font-size:var(--font-size-lg);padding:0 var(--space-2)}.sidebar__brand-mark{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:2rem;height:2rem;border-radius:var(--radius-md);background:var(--color-primary);color:var(--color-primary-contrast)}.sidebar__collapse-toggle{margin-top:auto;display:flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-2);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);background:none;color:var(--color-text-muted);cursor:pointer}.sidebar__collapse-toggle:hover{background:var(--color-surface-alt)}.sidebar__collapse-toggle:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:-2px}.sidebar__collapse-icon{transition:transform var(--transition-base)}@media screen and (min-width:992px){.sidebar{transition:width var(--transition-base)}.sidebar--collapsed{width:4.5rem}.sidebar--collapsed .sidebar__brand-label,.sidebar--collapsed .menu__link-label,.sidebar--collapsed .menu__caret,.sidebar--collapsed .menu__sublist,.sidebar--collapsed .sidebar__collapse-label{display:none}.sidebar--collapsed .menu__link{justify-content:center}.sidebar--collapsed .sidebar__collapse-icon{transform:rotate(180deg)}}@media screen and (max-width:991px){.js .sidebar{position:fixed;inset-block:0;inset-inline-start:0;z-index:var(--z-overlay);transform:translate(-100%);visibility:hidden;transition:transform var(--transition-base),visibility 0s var(--transition-base);box-shadow:var(--shadow-xl)}[dir=rtl] .js .sidebar{transform:translate(100%)}.js .sidebar.is-open{transform:translate(0);visibility:visible;transition:transform var(--transition-base)}}}@layer components{.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:var(--space-4)}.grid>*{grid-column:span 12}@media screen and (min-width:768px){.grid>.col-1{grid-column:span 1}.grid>.col-2{grid-column:span 2}.grid>.col-3{grid-column:span 3}.grid>.col-4{grid-column:span 4}.grid>.col-5{grid-column:span 5}.grid>.col-6{grid-column:span 6}.grid>.col-7{grid-column:span 7}.grid>.col-8{grid-column:span 8}.grid>.col-9{grid-column:span 9}.grid>.col-10{grid-column:span 10}.grid>.col-11{grid-column:span 11}.grid>.col-12{grid-column:span 12}}}@layer components{.tabs__list{display:flex;gap:var(--space-1);box-shadow:inset 0 calc(var(--border-width) * -1) 0 var(--color-border);overflow-x:auto;overflow-y:hidden;scrollbar-width:thin}.tabs__tab{padding:var(--space-2) var(--space-4);background:none;border:none;border-bottom:var(--border-width-thick) solid transparent;color:var(--color-text-muted);font-weight:var(--font-weight-medium);white-space:nowrap;cursor:pointer}.tabs__tab:hover{color:var(--color-text)}.tabs__tab:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:-2px}.tabs__tab[aria-selected=true]{color:var(--color-primary);border-bottom-color:var(--color-primary)}.tabs__panel{padding-top:var(--space-4)}}@layer components{.collapsible{border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md)}.collapsible__trigger{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);width:100%;padding:var(--space-3) var(--space-4);background:var(--color-surface);border:none;border-radius:inherit;font:inherit;font-weight:var(--font-weight-medium);text-align:left;cursor:pointer}.collapsible__trigger:hover{background:var(--color-surface-alt)}.collapsible__trigger:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:-2px}.collapsible__icon{flex:0 0 auto;transition:transform var(--transition-fast)}.collapsible__trigger[aria-expanded=true] .collapsible__icon{transform:rotate(180deg)}.collapsible__panel{padding:var(--space-4);border-top:var(--border-width) solid var(--color-border)}.accordion>.collapsible{border-radius:0}.accordion>.collapsible+.collapsible{border-top:none}.accordion>.collapsible:first-child{border-top-left-radius:var(--radius-md);border-top-right-radius:var(--radius-md)}.accordion>.collapsible:last-child{border-bottom-left-radius:var(--radius-md);border-bottom-right-radius:var(--radius-md)}.collapsible__heading{margin:0}}@layer components{.dropdown{position:relative;display:inline-block}.dropdown__trigger{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-width:24px;min-height:24px;border-radius:var(--radius-sm)}.dropdown__trigger:focus-visible{outline:var(--ring-width) solid var(--ring-color);outline-offset:var(--ring-offset)}.dropdown__panel{position:absolute;top:100%;inset-inline-start:0;margin-top:var(--space-1);width:max-content;min-width:10rem;max-width:min(24rem,calc(100vw - 2 * var(--space-4)));background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:var(--z-dropdown);padding:var(--space-2)}.dropdown__panel--end{inset-inline-start:auto;inset-inline-end:0}.dropdown__panel--fixed{position:fixed;inset-inline:auto;margin-top:0}}@layer components{.wizard__steps{display:flex;list-style:none;margin-bottom:var(--space-6)}.wizard__step{flex:1 1 0;display:flex;align-items:center;gap:var(--space-2);color:var(--color-text-muted);font-size:var(--font-size-sm)}.wizard__step:not(:last-child):after{content:"";flex:1 1 auto;height:var(--border-width);background:var(--color-border);margin-inline:var(--space-2)}.wizard__step-index{flex:0 0 auto;width:1.75rem;height:1.75rem;border-radius:var(--radius-full);border:var(--border-width-thick) solid var(--color-border);display:flex;align-items:center;justify-content:center;font-weight:var(--font-weight-semibold)}.wizard__step-label{white-space:nowrap}.wizard__step--active{color:var(--color-text)}.wizard__step--active .wizard__step-index{border-color:var(--color-primary);color:var(--color-primary)}.wizard__step--done .wizard__step-index{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-primary-contrast)}@media screen and (max-width:575px){.wizard__step-label{display:none}}}@layer components{.pagination{display:flex;align-items:center;gap:var(--space-1);list-style:none}.pagination__link{display:inline-flex;align-items:center;justify-content:center;min-width:2rem;height:2rem;padding-inline:var(--space-2);border-radius:var(--radius-sm);color:var(--color-text);font-size:var(--font-size-sm)}.pagination__link:hover{background:var(--color-surface-alt)}.pagination__link:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:-2px}.pagination__link[aria-current=page]{background:var(--color-primary);color:var(--color-primary-contrast)}.pagination__link--disabled{color:var(--color-disabled-text);pointer-events:none}.pagination__ellipsis{padding-inline:var(--space-2);color:var(--color-text-muted)}}@layer components{.modal{border:none;border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);padding:0;width:100%;max-width:32rem;background:var(--color-surface);color:var(--color-text)}.modal::backdrop{background:var(--color-overlay)}.modal__header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-4);border-bottom:var(--border-width) solid var(--color-border)}.modal__title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold)}.modal__close{background:none;border:none;cursor:pointer;color:var(--color-text-muted);font-size:var(--font-size-xl);line-height:1}.modal__close:hover{color:var(--color-text)}.modal__close:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}.modal__body{padding:var(--space-4)}.modal__footer{display:flex;justify-content:flex-end;gap:var(--space-2);padding:var(--space-4);border-top:var(--border-width) solid var(--color-border)}}@layer components{.toast-region{position:fixed;bottom:var(--space-4);inset-inline-end:var(--space-4);z-index:var(--z-toast);display:flex;flex-direction:column;gap:var(--space-2);max-width:min(24rem,calc(100vw - 2 * var(--space-4)));max-height:50vh;overflow:hidden;pointer-events:none}.toast-region>*{pointer-events:auto}.toast{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);box-shadow:var(--shadow-lg);animation:toast-in var(--transition-base)}.toast__icon{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:var(--radius-full);background:var(--color-surface-sunken);color:var(--color-text-muted)}.toast__body{flex:1 1 auto;min-width:0;font-size:var(--font-size-sm)}.toast__meta{font-size:var(--font-size-xs);color:var(--color-text-muted);margin-top:1px}.toast__action{flex:0 0 auto;min-height:24px;background:none;border:none;border-radius:var(--radius-sm);padding:0 var(--space-1);font:inherit;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-accent, var(--color-primary));cursor:pointer}.toast__close{flex:0 0 auto;align-self:center;display:inline-flex;align-items:center;justify-content:center;min-width:24px;min-height:24px;margin:-4px;background:none;border:none;border-radius:var(--radius-sm);padding:0;color:var(--color-text-subtle);cursor:pointer}.toast__close:hover{color:var(--color-text)}.toast__close:focus-visible{outline:var(--ring-width) solid var(--ring-color);outline-offset:var(--ring-offset)}.toast--ink{align-items:center;background:var(--color-surface-inverse);border-color:transparent;color:var(--color-text-inverse)}.toast--ink .toast__meta,.toast--ink .toast__close{color:var(--color-text-inverse);color:color-mix(in oklab,var(--color-text-inverse) 60%,transparent)}.toast--ink .toast__action{color:var(--color-accent-inverse, var(--color-primary-contrast))}.toast--success .toast__icon{background:var(--color-success-soft);color:var(--color-success)}.toast--warning .toast__icon{background:var(--color-warning-soft);color:var(--color-warning)}.toast--danger .toast__icon{background:var(--color-danger-soft);color:var(--color-danger)}.toast--info .toast__icon{background:var(--color-info-soft);color:var(--color-info)}@keyframes toast-in{0%{transform:translateY(var(--space-2));opacity:0}to{transform:translateY(0);opacity:1}}}@layer components{.badge{display:inline-flex;align-items:center;gap:var(--space-1);padding:2px var(--space-2);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);line-height:var(--line-height-tight);background:var(--color-surface-sunken);color:var(--color-text-muted);border:var(--border-width) solid transparent}.badge__dot{flex:0 0 auto;width:6px;height:6px;border-radius:var(--radius-full);background:currentColor}.badge--primary{background:var(--color-primary);color:var(--color-primary-contrast)}.badge--accent{background:var(--color-accent, var(--color-primary));color:var(--color-accent-contrast, var(--color-primary-contrast))}.badge--neutral{background:var(--color-surface-sunken);border-color:var(--color-border);color:var(--color-text-muted)}.badge--success{background:var(--color-success-soft);color:var(--color-success-soft-text)}.badge--warning{background:var(--color-warning-soft);color:var(--color-warning-soft-text)}.badge--danger{background:var(--color-danger-soft);color:var(--color-danger-soft-text)}.badge--info{background:var(--color-info-soft);color:var(--color-info-soft-text)}.badge--code{border-radius:var(--radius-sm);padding:1px var(--space-2);font-family:var(--font-family-mono);font-size:var(--font-size-2xs);color:var(--color-text-muted)}.chip{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);background:var(--color-surface);border:var(--border-width) solid var(--color-border);font-size:var(--font-size-sm);color:var(--color-text)}.chip--removable{padding-inline-end:var(--space-1)}.chip__remove{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;margin-block:-3px;padding:0;background:var(--color-surface-sunken);border:none;border-radius:var(--radius-full);cursor:pointer;color:var(--color-text-muted)}.chip__remove:hover{background:var(--color-danger-soft);color:var(--color-danger-soft-text)}.chip__remove:focus-visible{outline:var(--ring-width) solid var(--ring-color);outline-offset:1px}}@layer components{.avatar{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:2.5rem;height:2.5rem;border-radius:var(--radius-full);background:var(--color-secondary);color:var(--color-secondary-contrast);font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);overflow:hidden}.avatar>img{width:100%;height:100%;object-fit:cover}.avatar--sm{width:2rem;height:2rem;font-size:var(--font-size-xs)}.avatar--lg{width:3.5rem;height:3.5rem;font-size:var(--font-size-xl)}.avatar-group{display:flex}.avatar-group .avatar{margin-left:-.5rem;border:2px solid var(--color-surface)}.avatar-group .avatar:first-child{margin-left:0}}@layer components{.breadcrumb{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2);font-size:var(--font-size-sm);color:var(--color-text-muted);list-style:none}.breadcrumb__item{display:flex;align-items:center;gap:var(--space-2)}.breadcrumb__item:not(:last-child):after{content:"/";color:var(--color-border-strong)}.breadcrumb__link{color:var(--color-text-muted)}.breadcrumb__link:hover{color:var(--color-primary)}.breadcrumb__item[aria-current=page]{color:var(--color-text);font-weight:var(--font-weight-medium)}}@layer components{.tooltip{position:relative;display:inline-block}.tooltip__content{position:absolute;bottom:100%;left:50%;transform:translate(-50%) translateY(-.25rem);background:var(--color-surface-inverse);color:var(--color-text-inverse);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-size:var(--font-size-xs);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity var(--transition-fast);z-index:var(--z-popover)}.tooltip:hover .tooltip__content,.tooltip:focus-within .tooltip__content{opacity:1}}@layer components{.progress{appearance:none;display:block;width:100%;height:.5rem;border:none;border-radius:var(--radius-full);overflow:hidden;background:var(--color-surface-alt)}.progress::-webkit-progress-bar{background:var(--color-surface-alt)}.progress::-webkit-progress-value{background:var(--color-primary);border-radius:var(--radius-full)}.progress::-moz-progress-bar{background:var(--color-primary);border-radius:var(--radius-full)}.spinner{display:inline-block;width:1.5rem;height:1.5rem;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:var(--radius-full);animation:spinner-spin .7s linear infinite}@keyframes spinner-spin{to{transform:rotate(360deg)}}}@layer components{:root{--apx-accent: var(--color-accent, var(--color-primary));--apx-fore: var(--color-text);--apx-grid: var(--color-border);--apx-surface: var(--color-surface);--apx-bg: transparent;--apx-series-1: var(--color-accent, var(--color-primary));--apx-series-2: var(--color-info);--apx-series-3: var(--color-success);--apx-series-4: var(--color-warning);--apx-series-5: var(--color-danger);--apx-series-6: var(--color-secondary, var(--color-text-muted))}.chart{position:relative;width:100%;min-width:0;color:var(--color-text)}.chart .apexcharts-tooltip,.chart .apexcharts-menu{background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);color:var(--color-text);font-family:var(--font-family-base)}.chart .apexcharts-tooltip-title{background:var(--color-surface-sunken, var(--color-surface-alt));border-bottom:var(--border-width) solid var(--color-border)}.chart .apexcharts-xaxistooltip,.chart .apexcharts-yaxistooltip{background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text)}.chart .apexcharts-menu-item:hover{background:var(--color-surface-sunken, var(--color-surface-alt))}}@layer components{.error-page{padding-block:var(--space-16)}.error-page__meta{font-size:var(--font-size-xs);letter-spacing:.05em;color:var(--color-text-muted);text-transform:uppercase}.error-page h1{margin:var(--space-2) 0 var(--space-4)}.error-page__details{margin-top:var(--space-4);border-collapse:collapse;font-size:var(--font-size-sm)}.error-page__details th,.error-page__details td{padding:var(--space-1) var(--space-3);text-align:left;border-bottom:var(--border-width) solid var(--color-border)}.error-page__debug{margin-top:var(--space-4);padding:var(--space-4);border-radius:var(--radius-md);background:var(--color-surface-inverse);color:var(--color-danger-soft);overflow:auto;font-size:var(--font-size-xs);font-family:var(--font-family-mono)}.error-page__actions{margin-top:var(--space-6)}.error-page__request-id{margin-top:var(--space-6);font-size:var(--font-size-xs);color:var(--color-text-muted)}}@layer components{.data-table{display:flex;flex-direction:column;border:var(--border-width) solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface)}.data-table>:first-child{border-start-start-radius:inherit;border-start-end-radius:inherit}.data-table>:last-child{border-end-start-radius:inherit;border-end-end-radius:inherit}.data-table__toolbar{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap;padding:var(--space-3) var(--space-4);border-bottom:var(--border-width) solid var(--color-border-subtle)}.data-table__title{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.data-table__bulk{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap;padding:var(--space-2) var(--space-4);background:var(--color-surface-inverse);color:var(--color-text-inverse);font-size:var(--font-size-sm)}.data-table__bulk[hidden]{display:none}.data-table__bulk-count{font-weight:var(--font-weight-medium)}.data-table__bulk-sep{width:var(--border-width);height:16px;background:var(--color-text-muted);background:color-mix(in oklab,var(--color-text-inverse) 20%,transparent)}.data-table__bulk .btn{height:26px;padding-inline:var(--space-2);font-size:var(--font-size-xs);background:transparent;border-color:var(--color-text-muted);border-color:color-mix(in oklab,var(--color-text-inverse) 22%,transparent);color:var(--color-text-inverse);box-shadow:none}.data-table__bulk .btn:hover{background:#80808040;background:color-mix(in oklab,var(--color-text-inverse) 10%,transparent)}.data-table__bulk .btn--danger{background:var(--color-danger);border-color:var(--color-danger);color:var(--color-danger-contrast)}.data-table__scroll{position:relative;overflow:auto;max-height:var(--data-table-max-height, none)}.data-table__scroll--sm{--data-table-max-height: 240px}.data-table__scroll--md{--data-table-max-height: 400px}.data-table__scroll--lg{--data-table-max-height: 600px}.data-table__table{width:100%;border-collapse:separate;border-spacing:0;font-size:var(--font-size-sm)}.data-table__table th{position:sticky;top:0;z-index:3;height:34px;padding-inline:var(--space-4);text-align:start;white-space:nowrap;background:var(--color-surface-alt);border-bottom:var(--border-width) solid var(--color-border);font-family:var(--font-family-mono);font-size:var(--font-size-2xs);font-weight:var(--font-weight-medium);letter-spacing:var(--letter-spacing-caps);text-transform:uppercase;color:var(--color-text-subtle)}.data-table__table td{height:34px;padding-inline:var(--space-4);white-space:nowrap;border-bottom:var(--border-width) solid var(--color-border-subtle);background:var(--color-surface)}.data-table__table tbody tr:hover td{background:var(--color-surface-alt)}.data-table__row--selected td{background:var(--color-surface-sunken, var(--color-surface-alt));background:color-mix(in oklab,var(--color-accent, var(--color-primary)) 5%,var(--color-surface))}.data-table__select{width:38px;padding-inline:0 0;padding-inline-start:var(--space-4)}.data-table__cell--pinned{position:sticky;inset-inline-start:0;z-index:1;border-inline-end:var(--border-width) solid var(--color-border-subtle)}th.data-table__cell--pinned{z-index:4}.data-table__mono{font-family:var(--font-family-mono);font-size:var(--font-size-xs)}.data-table__num{text-align:end;font-variant-numeric:tabular-nums}.data-table__select input{width:16px;height:16px;margin:0;accent-color:var(--color-accent, var(--color-primary));cursor:pointer}.data-table__select input:focus-visible{outline:var(--ring-width) solid var(--ring-color);outline-offset:var(--ring-offset)}.data-table__actions{width:40px;text-align:center}.data-table__footer{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap;padding:var(--space-2) var(--space-4);border-top:var(--border-width) solid var(--color-border);background:var(--color-surface-alt);font-size:var(--font-size-xs);color:var(--color-text-muted)}.data-table__sort{display:inline-flex;align-items:center;gap:var(--space-1);min-height:24px;padding:0;border:none;border-radius:var(--radius-sm);background:none;color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer}th[aria-sort] .data-table__sort{color:var(--color-text)}.data-table__sort:focus-visible{outline:var(--ring-width) solid var(--ring-color);outline-offset:var(--ring-offset)}.data-table__empty{padding:var(--space-8);text-align:center;color:var(--color-text-muted)}.data-table__empty>.empty{justify-content:center;margin-inline:auto}}@layer components{.combobox,.combobox__anchor{position:relative}.combobox--open>.form-field__help,.combobox[aria-expanded=true]>.form-field__help{visibility:hidden}.combobox__field{display:flex;align-items:center;height:var(--control-height-md);padding-inline:var(--space-2) var(--space-3);border:var(--border-width) solid var(--color-border-control, var(--color-border-strong));border-radius:var(--radius-md);background:var(--color-surface)}.combobox__field:focus-within{outline:var(--ring-width) solid var(--ring-color);outline-offset:1px;border-color:var(--color-primary)}.combobox[aria-expanded=true] .combobox__field,.combobox--open .combobox__field{border-end-start-radius:0;border-end-end-radius:0;border-color:var(--ring-color);box-shadow:0 0 0 1px var(--ring-color)}.combobox--open .combobox__field:focus-within{outline:none;border-color:var(--ring-color)}.combobox--open .combobox__list{border-color:var(--ring-color);box-shadow:0 0 0 1px var(--ring-color),var(--shadow-lg)}.combobox__input{flex:1 1 auto;min-width:0;height:100%;padding-inline-start:var(--space-2);border:none;outline:none;background:transparent;font:inherit;font-size:var(--font-size-base);color:var(--color-text)}.combobox__input::placeholder{color:var(--color-text-subtle)}.combobox__caret{flex:0 0 auto;display:inline-flex;color:var(--color-text-muted);cursor:pointer}.combobox__list{position:absolute;inset-inline:0;top:100%;z-index:var(--z-dropdown);border:var(--border-width) solid var(--color-primary);border-top:none;border-end-start-radius:var(--radius-md);border-end-end-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-lg);overflow:hidden}.combobox__list[hidden]{display:none}.combobox__group{padding:var(--space-2) var(--space-3) var(--space-1);border-top:var(--border-width) solid var(--color-border-subtle);font-family:var(--font-family-mono);font-size:var(--font-size-2xs);letter-spacing:var(--letter-spacing-caps);text-transform:uppercase;color:var(--color-text-subtle)}.combobox__group:first-child{border-top:none}.combobox__option{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);cursor:pointer}.combobox__option:hover,.combobox__option[data-active]{background:var(--color-surface-sunken)}.combobox__option-label{flex:1 1 auto;min-width:0;font-size:var(--font-size-sm)}.combobox__match{font-weight:var(--font-weight-semibold);background:var(--color-warning-soft);background:color-mix(in oklab,var(--color-accent, var(--color-primary)) 22%,var(--color-surface));border-radius:2px}.combobox__option-meta{flex:0 0 auto;font-size:var(--font-size-2xs);color:var(--color-text-subtle)}.combobox__check{flex:0 0 auto;display:inline-flex;color:var(--color-text)}.combobox__empty{padding:var(--space-4) var(--space-3);font-size:var(--font-size-sm);color:var(--color-text-muted)}.combobox__hints{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-top:var(--border-width) solid var(--color-border-subtle);background:var(--color-surface-alt);font-size:var(--font-size-2xs);color:var(--color-text-subtle)}.combobox__count{margin-inline-start:auto;font-family:var(--font-family-mono)}.combobox--multi .combobox__field{height:auto;min-height:var(--control-height-md);flex-wrap:wrap;gap:var(--space-1);padding:var(--space-1) var(--space-2)}.combobox__token{display:inline-flex;align-items:center;gap:var(--space-1);padding:2px var(--space-1) 2px var(--space-2);border-radius:var(--radius-sm);background:var(--color-surface-sunken);font-size:var(--font-size-sm)}.combobox__token-remove{display:inline-flex;align-items:center;justify-content:center;min-width:24px;min-height:24px;margin-block:-6px;padding:0;background:none;border:none;color:var(--color-text-muted);cursor:pointer}.combobox__token-remove:hover{color:var(--color-danger)}.combobox__token-remove:focus-visible{outline:var(--ring-width) solid var(--ring-color);outline-offset:1px}.combobox__option[aria-disabled=true]{color:var(--color-disabled-text);cursor:not-allowed}}@layer components{.datepicker{position:relative;display:flex;flex-direction:column}.datepicker--open:not(.datepicker--inline){z-index:var(--z-popover)}.datepicker--inline .datepicker__panel{position:static;z-index:auto;margin-top:var(--space-3)}.datepicker--end .datepicker__panel{inset-inline-start:auto;inset-inline-end:0}.datepicker__trigger:disabled{color:var(--color-disabled-text);background:var(--color-surface-alt);cursor:not-allowed}.datepicker__trigger{display:inline-flex;align-items:center;gap:var(--space-2);height:var(--control-height-md);padding-inline:var(--space-3);border:var(--border-width) solid var(--color-border-control, var(--color-border-strong));border-radius:var(--radius-md);background:var(--color-surface);font:inherit;font-size:var(--font-size-sm);font-variant-numeric:tabular-nums;color:var(--color-text);cursor:pointer}.datepicker__trigger[aria-expanded=true]{border-color:var(--color-primary)}.datepicker__trigger-icon{display:inline-flex;color:var(--color-text-muted)}.datepicker__panel{position:absolute;top:calc(100% + var(--space-1));inset-inline-start:0;z-index:var(--z-popover);max-width:calc(100vw - 2 * var(--space-4));border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-lg);overflow:hidden;width:max-content}.datepicker__header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-bottom:var(--border-width) solid var(--color-border-subtle)}.datepicker__nav-group{display:inline-flex;gap:var(--space-1)}.datepicker__nav{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:var(--border-width) solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text-muted);cursor:pointer}.datepicker__nav:hover{background:var(--color-surface-sunken);color:var(--color-text)}.datepicker__nav:focus-visible{outline:var(--ring-width) solid var(--ring-color);outline-offset:1px}.datepicker__month{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.datepicker__grid{padding:var(--space-2) var(--space-3)}.datepicker__weekdays,.datepicker__days{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.datepicker__weekdays{margin-bottom:var(--space-1)}.datepicker__weekday{padding-block:3px;text-align:center;font-family:var(--font-family-mono);font-size:var(--font-size-2xs);color:var(--color-text-subtle)}.datepicker__day{display:flex;align-items:center;justify-content:center;height:30px;border:none;border-radius:var(--radius-sm);background:transparent;font:inherit;font-size:var(--font-size-sm);font-variant-numeric:tabular-nums;color:var(--color-text);cursor:pointer}.datepicker__day:hover{background:var(--color-surface-sunken)}.datepicker__day:focus-visible{outline:var(--ring-width) solid var(--ring-color);outline-offset:-1px}.datepicker__day--outside{color:var(--color-text-subtle)}.datepicker__day--today{box-shadow:inset 0 0 0 1.5px var(--color-accent, var(--color-primary))}.datepicker__day--in-range{background:var(--color-surface-sunken, var(--color-surface-alt));background:color-mix(in oklab,var(--color-accent, var(--color-primary)) 8%,var(--color-surface));border-radius:0}.datepicker__day--start,.datepicker__day--end{background:var(--color-primary);color:var(--color-primary-contrast)}.datepicker__day--start{border-start-end-radius:0;border-end-end-radius:0}.datepicker__day--end{border-start-start-radius:0;border-end-start-radius:0}.datepicker__day--start.datepicker__day--end{border-radius:var(--radius-sm)}.datepicker__day:disabled{color:var(--color-disabled-text);cursor:not-allowed}.datepicker__footer{display:flex;align-items:center;gap:var(--space-1);flex-wrap:wrap;padding:var(--space-2) var(--space-3);border-top:var(--border-width) solid var(--color-border-subtle);background:var(--color-surface-alt)}.datepicker__preset{height:28px;padding-inline:var(--space-2);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);font:inherit;font-size:var(--font-size-2xs);color:var(--color-text-muted);cursor:pointer}.datepicker__preset:hover{border-color:var(--color-primary);color:var(--color-text)}.datepicker__apply{margin-inline-start:auto;height:28px;padding-inline:var(--space-3);border:none;border-radius:var(--radius-sm);background:var(--color-primary);color:var(--color-primary-contrast);font:inherit;font-size:var(--font-size-2xs);font-weight:var(--font-weight-medium);cursor:pointer}}@layer components{.command{position:fixed;inset:0;z-index:var(--z-modal);display:flex;justify-content:center;padding:min(12vh,var(--space-8)) var(--space-4) var(--space-4);background:var(--color-overlay);overflow-y:auto}.command__search:focus-within{box-shadow:inset 0 calc(var(--ring-width) * -1) 0 var(--ring-color)}.command__esc:focus-visible,.command__item:focus-visible{outline:var(--ring-width) solid var(--ring-color);outline-offset:-2px}.command[hidden]{display:none}.command--inline{position:static;inset:auto;padding:0;background:none;display:block}.command__sheet{width:100%;max-width:34rem;align-self:flex-start;border:var(--border-width) solid var(--color-border-strong);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-xl);overflow:hidden}.command--inline .command__sheet{max-width:none}.command__search{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:var(--border-width) solid var(--color-border-subtle)}.command__search-icon{flex:0 0 auto;display:inline-flex;color:var(--color-text-subtle)}.command__input{flex:1 1 auto;min-width:0;border:none;outline:none;background:transparent;font:inherit;font-size:var(--font-size-lg);color:var(--color-text)}.command__input::placeholder{color:var(--color-text-subtle)}.command__list{padding:var(--space-1);max-height:min(22rem,55vh);overflow-y:auto}.command__group{padding:var(--space-2) var(--space-2) var(--space-1);font-family:var(--font-family-mono);font-size:var(--font-size-2xs);letter-spacing:var(--letter-spacing-caps);text-transform:uppercase;color:var(--color-text-subtle)}.command__item{display:flex;align-items:center;gap:var(--space-3);width:100%;padding:var(--space-2);border:none;border-radius:var(--radius-sm);background:transparent;font:inherit;text-align:left;color:var(--color-text);cursor:pointer}.command__item:hover{background:var(--color-surface-sunken)}.command__item[data-active]{background:var(--color-primary);color:var(--color-primary-contrast)}.command__item-icon{flex:0 0 auto;display:inline-flex;opacity:.75}.command__item-badge{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:var(--radius-sm);background:var(--color-surface-sunken);color:var(--color-text-muted);font-family:var(--font-family-mono);font-size:var(--font-size-2xs)}.command__item-label{flex:1 1 auto;min-width:0;font-size:var(--font-size-sm)}.command__match{font-weight:var(--font-weight-semibold)}.command__item-meta{flex:0 0 auto;font-size:var(--font-size-xs);color:var(--color-text-subtle)}.command__item[data-active] .command__item-meta,.command__item[data-active] .command__item-badge{color:var(--color-primary-contrast);color:color-mix(in oklab,var(--color-primary-contrast) 70%,transparent);background:transparent}.command__kbd{display:inline-flex;align-items:center;padding:1px var(--space-2);border-radius:var(--radius-sm);background:var(--color-surface-sunken);font-family:var(--font-family-mono);font-size:var(--font-size-2xs);color:var(--color-text-muted)}.command__item[data-active] .command__kbd{background:#8080804d;background:color-mix(in oklab,var(--color-primary-contrast) 16%,transparent);color:var(--color-primary-contrast)}.command__esc{flex:0 0 auto;border:var(--border-width) solid transparent;cursor:pointer}.command__esc:hover{border-color:var(--color-border-strong);color:var(--color-text)}.command__empty{padding:var(--space-5) var(--space-2);text-align:center;font-size:var(--font-size-sm);color:var(--color-text-muted)}.command__footer{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-2) var(--space-4);border-top:var(--border-width) solid var(--color-border-subtle);background:var(--color-surface-alt);font-size:var(--font-size-2xs);color:var(--color-text-subtle)}.command__count{margin-inline-start:auto;font-family:var(--font-family-mono)}.command__trigger{color:var(--color-text-muted);font-weight:var(--font-weight-normal)}@media screen and (min-width:576px){.command__trigger{min-width:14rem;justify-content:flex-start}.command__trigger .command__kbd{margin-inline-start:auto}}}@layer components{.dropzone{display:flex;flex-direction:column;gap:var(--space-3)}.dropzone__area{position:relative;display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-6) var(--space-4);border:1.5px dashed var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface-alt);text-align:center;transition:border-color var(--transition-fast),background var(--transition-fast)}.dropzone__area:focus-within,.dropzone__area--over{border-color:var(--color-accent, var(--color-primary));background:var(--color-surface);background:color-mix(in oklab,var(--color-accent, var(--color-primary)) 5%,var(--color-surface))}.dropzone__input{position:absolute;inset:0;opacity:0;cursor:pointer}.dropzone__icon{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:var(--radius-md);background:var(--color-surface);border:var(--border-width) solid var(--color-border);color:var(--color-text-muted)}.dropzone__area--over .dropzone__icon,.dropzone__area:focus-within .dropzone__icon{color:var(--color-accent, var(--color-primary))}.dropzone__label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.dropzone__browse{color:var(--color-accent, var(--color-primary));text-decoration:underline;text-underline-offset:.18em}.dropzone__hint{font-size:var(--font-size-xs);color:var(--color-text-muted)}.dropzone__files{display:flex;flex-direction:column;gap:var(--space-2)}.dropzone__file{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md)}.dropzone__file--error{border-color:var(--color-danger-soft-text);border-color:color-mix(in oklab,var(--color-danger) 25%,var(--color-border));background:var(--color-danger-soft);background:color-mix(in oklab,var(--color-danger) 3%,var(--color-surface))}.dropzone__file-icon{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:var(--radius-sm);background:var(--color-surface-sunken);color:var(--color-text-muted);font-family:var(--font-family-mono);font-size:9px;text-transform:uppercase}.dropzone__file--done .dropzone__file-icon{background:var(--color-success-soft);color:var(--color-success)}.dropzone__file--error .dropzone__file-icon{background:var(--color-danger-soft);color:var(--color-danger)}.dropzone__file-body{display:flex;flex-direction:column;gap:3px;flex:1 1 auto;min-width:0}.dropzone__file-row{display:flex;align-items:baseline;gap:var(--space-2)}.dropzone__file-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropzone__file-size{margin-inline-start:auto;font-size:var(--font-size-2xs);color:var(--color-text-subtle);font-variant-numeric:tabular-nums}.dropzone__file-error{font-size:var(--font-size-2xs);color:var(--color-danger)}.dropzone__bar{appearance:none;display:block;width:100%;height:4px;border:none;border-radius:var(--radius-full);background:var(--color-border-subtle);overflow:hidden}.dropzone__bar::-webkit-progress-bar{background:var(--color-border-subtle)}.dropzone__bar::-webkit-progress-value{background:var(--color-primary);border-radius:var(--radius-full)}.dropzone__bar::-moz-progress-bar{background:var(--color-primary);border-radius:var(--radius-full)}.dropzone__remove{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;min-width:24px;min-height:24px;border-radius:var(--radius-sm);padding:0;background:none;border:none;color:var(--color-text-subtle);cursor:pointer}.dropzone__remove:hover{color:var(--color-danger)}.dropzone__remove:focus-visible{outline:var(--ring-width) solid var(--ring-color);outline-offset:2px}}@layer components{.slider{display:flex;flex-direction:column;gap:var(--space-2)}.slider__track,.slider__fill,.slider__ticks,.slider__thumb{display:none}.js .slider__track,.js .slider__fill,.js .slider__ticks,.js .slider__thumb{display:block}.js .slider__input{opacity:0}.slider__head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3)}.slider__label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.slider__value{font-family:var(--font-family-mono);font-size:var(--font-size-sm);font-variant-numeric:tabular-nums;color:var(--color-text-muted)}.slider__control{position:relative;height:20px;display:flex;align-items:center}.slider__input{position:absolute;inset:0;width:100%;height:100%;margin:0;cursor:pointer}.slider__track{position:absolute;inset-inline:0;height:5px;border-radius:var(--radius-full);background:var(--color-border-subtle);pointer-events:none}.slider__fill{position:absolute;inset-inline-start:0;width:var(--slider-pct, 0%);height:5px;border-radius:var(--radius-full);background:var(--color-primary);pointer-events:none}.slider__thumb{position:absolute;inset-inline-start:var(--slider-pct, 0%);margin-inline-start:-8.5px;width:17px;height:17px;border-radius:var(--radius-full);background:var(--color-surface);border:1.5px solid var(--color-primary);box-shadow:var(--shadow-sm);pointer-events:none}.slider__input:focus-visible~.slider__thumb{outline:var(--ring-width) solid var(--ring-color);outline-offset:var(--ring-offset)}.slider__scale{display:flex;justify-content:space-between;font-family:var(--font-family-mono);font-size:var(--font-size-2xs);color:var(--color-text-subtle)}.slider--range .slider__fill{inset-inline-start:var(--slider-from, 0%);width:calc(var(--slider-to, 100%) - var(--slider-from, 0%));border-radius:0}.slider__thumb--from{inset-inline-start:var(--slider-from, 0%)}.slider__thumb--to{inset-inline-start:var(--slider-to, 100%)}.slider--stepped .slider__fill{background:var(--color-accent, var(--color-primary))}.slider--stepped .slider__thumb{background:var(--color-accent, var(--color-primary));border-color:var(--color-accent, var(--color-primary))}.slider__ticks{position:absolute;inset-inline:0;display:flex;justify-content:space-between;align-items:center;pointer-events:none}.slider__tick{width:3px;height:3px;border-radius:var(--radius-full);background:var(--color-surface)}.slider__scale-item--active{color:var(--color-accent, var(--color-primary));font-weight:var(--font-weight-medium)}}@layer components{.segmented{position:relative;display:inline-flex;gap:2px;padding:3px;border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-sunken)}.js .segmented:before{content:"";position:absolute;top:3px;bottom:3px;inset-inline-start:3px;width:var(--segmented-w, 0px);border-radius:var(--radius-sm);background:var(--color-surface);box-shadow:var(--shadow-sm);transform:translate(var(--segmented-x, 0px));transition:transform var(--transition-base),width var(--transition-base);pointer-events:none}.js .segmented:not([data-segmented-ready]):before{display:none}@media(prefers-reduced-motion:reduce){.js .segmented:before{transition:none}}.segmented__item{position:relative;display:inline-flex}.segmented__input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer}.segmented__label{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);height:28px;padding-inline:var(--space-4);border-radius:var(--radius-sm);background:transparent;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-muted);white-space:nowrap;cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.segmented__input:checked+.segmented__label{background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-sm)}.js .segmented[data-segmented-ready] .segmented__input:checked+.segmented__label{background:transparent;box-shadow:none}.segmented__item{z-index:1}.segmented__input:focus-visible+.segmented__label{outline:var(--ring-width) solid var(--ring-color);outline-offset:1px}.segmented__input:disabled+.segmented__label{color:var(--color-disabled-text);cursor:not-allowed}.segmented--sm .segmented__label{height:24px;padding-inline:var(--space-3);font-size:var(--font-size-2xs)}.segmented--icon .segmented__label{width:28px;padding-inline:0}.segmented--block{display:flex}.segmented--block .segmented__item,.segmented--block .segmented__label{flex:1 1 0}}@layer components{.popover{position:relative;display:inline-block}.popover__panel{position:absolute;top:calc(100% + var(--space-2));inset-inline-start:50%;transform:translate(-50%);z-index:var(--z-popover);width:max-content;max-width:min(18rem,calc(100vw - 2 * var(--space-4)));border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-lg)}.popover__panel[hidden]{display:none}.popover__arrow{position:absolute;top:-5px;inset-inline-start:50%;transform:translate(-50%) rotate(45deg);width:9px;height:9px;background:var(--color-surface);border-inline-start:var(--border-width) solid var(--color-border);border-top:var(--border-width) solid var(--color-border)}.popover--start .popover__panel{inset-inline-start:0;transform:none}.popover--start .popover__arrow{inset-inline-start:var(--space-4);transform:rotate(45deg)}.popover--end .popover__panel{inset-inline-start:auto;inset-inline-end:0;transform:none}.popover--end .popover__arrow{inset-inline-start:auto;inset-inline-end:var(--space-4);transform:rotate(45deg)}.popover__header{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-3) var(--space-2)}.popover__title{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.popover__subtitle{font-size:var(--font-size-xs);color:var(--color-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.popover__body{padding:0 var(--space-3) var(--space-3);font-size:var(--font-size-sm);line-height:var(--line-height-base)}.popover__stats{display:flex;gap:var(--space-4);padding:0 var(--space-3) var(--space-3)}.popover__stat{display:flex;flex-direction:column}.popover__stat-value{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums}.popover__stat-label{font-size:var(--font-size-2xs);color:var(--color-text-subtle)}.popover__footer{display:flex;gap:var(--space-2);padding:var(--space-3);border-top:var(--border-width) solid var(--color-border-subtle)}.popover__footer .btn{flex:1 1 0}}@layer components{.timeline{display:flex;flex-direction:column;list-style:none;margin:0;padding:0}.timeline__item{display:flex;gap:var(--space-3)}.timeline__rail{display:flex;flex-direction:column;align-items:center;flex:0 0 auto}.timeline__marker{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:var(--radius-full);background:var(--color-surface-sunken);color:var(--color-text-muted)}.timeline__line{flex:1 1 auto;width:1.5px;margin-block:var(--space-1);background:var(--color-border)}.timeline__item:last-child .timeline__line{display:none}.timeline__body{display:flex;flex-direction:column;gap:1px;padding-bottom:var(--space-4)}.timeline__item:last-child .timeline__body{padding-bottom:0}.timeline__title{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.timeline__meta{font-size:var(--font-size-xs);color:var(--color-text-muted)}.timeline__item--done .timeline__marker{background:var(--color-success-soft);color:var(--color-success)}.timeline__item--current .timeline__marker{background:var(--color-warning-soft);color:var(--color-warning)}.timeline__item--pending .timeline__marker{background:var(--color-surface-sunken);border:1.5px dashed var(--color-border-strong)}.timeline__item--pending .timeline__line{background:none;border-inline-start:1.5px dashed var(--color-border)}.timeline__item--pending .timeline__title{color:var(--color-text-subtle)}}@layer components{.empty{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-8) var(--space-5);border:var(--border-width) solid var(--color-border-subtle);border-radius:var(--radius-md);background:var(--color-surface-alt);text-align:center}.empty__icon{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:var(--radius-md);background:var(--color-surface);border:var(--border-width) solid var(--color-border);box-shadow:var(--shadow-sm);color:var(--color-text-muted)}.empty__title{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);letter-spacing:var(--letter-spacing-tight)}.empty__text{max-width:34ch;font-size:var(--font-size-sm);line-height:var(--line-height-base);color:var(--color-text-muted);text-wrap:pretty}.empty__actions{display:flex;gap:var(--space-2);margin-top:var(--space-1)}.empty--inline{flex-direction:row;align-items:center;gap:var(--space-3);padding:var(--space-4);border-style:dashed;border-color:var(--color-border);background:var(--color-surface);text-align:start}.empty--inline .empty__icon{width:30px;height:30px;border:none;border-radius:var(--radius-sm);background:var(--color-surface-sunken);box-shadow:none;color:var(--color-text-subtle)}.empty--inline .empty__body{display:flex;flex-direction:column;gap:1px;flex:1 1 auto;min-width:0}.empty--inline .empty__title{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.empty--inline .empty__text{max-width:none;font-size:var(--font-size-xs)}.empty--inline .empty__actions{margin-top:0}.empty--error{border-style:solid;border-color:var(--color-danger-soft-text);border-color:color-mix(in oklab,var(--color-danger) 25%,var(--color-border));background:var(--color-danger-soft);background:color-mix(in oklab,var(--color-danger) 3%,var(--color-surface))}.empty--error .empty__icon{background:var(--color-danger-soft);color:var(--color-danger)}.empty__code{font-family:var(--font-family-mono);font-size:var(--font-size-xs);color:var(--color-text-muted)}.empty--page{min-height:60vh;justify-content:center;border:none;background:none}.empty--page .empty__title{font-size:var(--font-size-2xl)}}@layer components{.skeleton{position:relative;display:block;overflow:hidden;border-radius:var(--radius-full);background:var(--color-border-subtle)}.skeleton:after{content:"";position:absolute;inset:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,var(--color-surface-alt),transparent);background:linear-gradient(90deg,transparent,color-mix(in oklab,var(--color-border-subtle) 45%,var(--color-surface)),transparent);animation:skeleton-shimmer 1.3s linear infinite}.skeleton--w-xs{width:48px}.skeleton--w-sm{width:72px}.skeleton--w-md{width:104px}.skeleton--w-lg{width:144px}.skeleton--w-xl{width:200px}.skeleton--w-half{width:50%}.skeleton--w-full{width:100%}.skeleton--text{height:10px}.skeleton--title{height:12px;width:60%}.skeleton--block{height:104px;border-radius:var(--radius-sm)}.skeleton--avatar{width:40px;height:40px;flex:0 0 auto}.skeleton--circle{border-radius:var(--radius-full);aspect-ratio:1}.skeleton-stack{display:flex;flex-direction:column;gap:var(--space-2)}.skeleton-row{display:flex;align-items:center;gap:var(--space-3)}.skeleton-card{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-4);border:var(--border-width) solid var(--color-border-subtle);border-radius:var(--radius-md)}.skeleton-table{border:var(--border-width) solid var(--color-border-subtle);border-radius:var(--radius-md);overflow:hidden}.skeleton-table__head,.skeleton-table__row{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4)}.skeleton-table__head{background:var(--color-surface-alt);border-bottom:var(--border-width) solid var(--color-border-subtle)}.skeleton-table__head .skeleton{background:var(--color-border);height:8px}.skeleton-table__head .skeleton:after{display:none}.skeleton-table__row+.skeleton-table__row{border-top:var(--border-width) solid var(--color-border-subtle)}.skeleton[aria-hidden=true]{pointer-events:none}@keyframes skeleton-shimmer{to{transform:translate(100%)}}@media(prefers-reduced-motion:reduce){.skeleton:after{display:none}}[data-busy]{position:relative;pointer-events:none}[data-busy]:after{content:"";position:absolute;inset:0;z-index:1;border-radius:inherit;background:var(--color-surface);opacity:.55}[data-busy]:before{content:"";position:absolute;inset:0;z-index:2;transform:translate(-100%);background:linear-gradient(90deg,transparent,var(--color-surface-alt),transparent);background:linear-gradient(90deg,transparent,color-mix(in oklab,var(--color-border-subtle) 45%,var(--color-surface)),transparent);animation:skeleton-shimmer 1.3s linear infinite}@media(prefers-reduced-motion:reduce){[data-busy]:before{display:none}}}@layer components{.page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap;margin-bottom:var(--space-6)}.page-header__heading{min-width:0}.page-header__title{font-size:var(--font-size-3xl);letter-spacing:var(--letter-spacing-tighter);line-height:var(--line-height-tight)}.page-header__subtitle{margin-top:var(--space-1);color:var(--color-text-muted)}.page-header__actions{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}}@layer components{.stat{display:flex;flex-direction:column;gap:var(--space-1)}.stat__icon{display:inline-flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;margin-bottom:var(--space-2);border-radius:var(--radius-md);background:var(--color-surface-sunken);color:var(--color-text-muted)}.stat--primary .stat__icon{background:var(--color-surface-sunken);color:var(--color-accent, var(--color-primary))}.stat--success .stat__icon{background:var(--color-success-soft);color:var(--color-success-soft-text)}.stat--warning .stat__icon{background:var(--color-warning-soft);color:var(--color-warning-soft-text)}.stat--danger .stat__icon{background:var(--color-danger-soft);color:var(--color-danger-soft-text)}.stat--info .stat__icon{background:var(--color-info-soft);color:var(--color-info-soft-text)}.stat__label{font-size:var(--font-size-sm);color:var(--color-text-muted)}.stat__value{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);letter-spacing:var(--letter-spacing-tight);line-height:var(--line-height-tight);font-variant-numeric:tabular-nums}.stat__trend{margin-top:var(--space-1)}}@layer components{.toolbar{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap;margin-bottom:var(--space-4)}.toolbar__end{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap;margin-inline-start:auto}.toolbar .input-icon{flex:1 1 12rem;max-width:20rem}.toolbar .select{width:auto;min-width:11rem}.toolbar .datepicker{width:auto}.toolbar .datepicker__trigger{width:auto;min-width:15rem}.data-table__toolbar>.toolbar{display:contents}@media screen and (max-width:575px){.toolbar .input-icon,.toolbar .datepicker__trigger,.toolbar .select{flex-basis:100%;max-width:none;min-width:0;width:100%}.toolbar__end{margin-inline-start:0;width:100%}}}@layer components{.otp{display:flex;flex-direction:column;gap:var(--space-2)}.otp__value{height:var(--control-height-lg);padding-inline:var(--space-3);border:var(--border-width) solid var(--color-border-control, var(--color-border-strong));border-radius:var(--radius-md);background:var(--color-surface);font-family:var(--font-family-mono);font-size:var(--font-size-xl);letter-spacing:.3em;color:var(--color-text)}.otp__value:focus-visible{outline:var(--ring-width) solid var(--ring-color);outline-offset:1px;border-color:var(--color-primary)}.otp__cells{display:none;align-items:center;gap:var(--space-2)}.js .otp__cells{display:flex}.js .otp__value{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.otp__cell{width:var(--control-height-lg);height:calc(var(--control-height-lg) + 4px);padding:0;border:var(--border-width) solid var(--color-border-control, var(--color-border-strong));border-radius:var(--radius-md);background:var(--color-surface);text-align:center;font-family:var(--font-family-mono);font-size:var(--font-size-xl);font-weight:var(--font-weight-medium);color:var(--color-text);caret-color:var(--color-accent, var(--color-primary));transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.otp__cell:focus{outline:none;border-color:var(--color-accent, var(--color-primary));box-shadow:0 0 0 var(--ring-width) var(--ring-color)}.otp__cell[data-filled]{border-color:var(--color-border-strong);background:var(--color-surface-alt)}.otp__cell:disabled{background:var(--color-disabled);color:var(--color-disabled-text);cursor:not-allowed}.otp__sep{width:8px;height:var(--border-width-thick);border-radius:var(--radius-full);background:var(--color-border-strong)}.otp--invalid .otp__cell,.otp--invalid .otp__value{border-color:var(--color-danger)}.otp--invalid .otp__cell:focus{box-shadow:0 0 0 var(--ring-width) var(--color-danger)}@media screen and (max-width:575px){.otp__cells{gap:var(--space-1)}.otp__cell{width:clamp(2rem,10vw,var(--control-height-lg));font-size:var(--font-size-lg)}}}@layer components{.editor{display:flex;flex-direction:column;border:var(--border-width) solid var(--color-border-control, var(--color-border-strong));border-radius:var(--radius-md);background:var(--color-surface);overflow:hidden}.editor:focus-within{outline:var(--ring-width) solid var(--ring-color);outline-offset:1px;border-color:var(--color-primary)}.editor--invalid{border-color:var(--color-danger)}.editor--disabled{background:var(--color-surface-alt)}.editor__toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:2px;padding:var(--space-1) var(--space-2);border-bottom:var(--border-width) solid var(--color-border-subtle);background:var(--color-surface-sunken, var(--color-surface-alt))}.editor__tool,.editor__view{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:28px;padding-inline:var(--space-2);border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-muted);font:inherit;font-size:var(--font-size-sm);cursor:pointer}.editor__tool:hover,.editor__view:hover{background:var(--color-surface);color:var(--color-text)}.editor__tool[aria-pressed=true],.editor__view[aria-pressed=true]{background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-sm)}.editor__tool:focus-visible,.editor__view:focus-visible{outline:var(--ring-width) solid var(--ring-color);outline-offset:-2px}.editor__tool:disabled{color:var(--color-disabled-text);cursor:not-allowed}.editor__spacer{flex:1 1 auto}.editor__views{display:inline-flex;gap:2px}.editor .editor__source,.editor .editor__surface{border:none;border-radius:0;box-shadow:none;outline:none;resize:vertical}.editor__surface{min-height:8rem;padding:var(--space-3);overflow:auto}.editor__surface:empty:before{content:attr(data-placeholder);color:var(--color-text-subtle);pointer-events:none}.editor__preview{min-height:8rem;padding:var(--space-3)}.editor__preview[hidden]{display:none}html:not(.js) .editor__toolbar,html:not(.js) .editor__surface{display:none}.js .editor--html .editor__source,.js .editor[data-editor-view=preview] .editor__source,.js .editor[data-editor-view=preview] .editor__surface{display:none}.editor__preview-note{margin:0 0 var(--space-2);font-size:var(--font-size-xs);color:var(--color-text-muted)}.editor__preview-raw{margin:0;white-space:pre-wrap;font-family:var(--font-family-mono);font-size:var(--font-size-sm)}}
2
+ @layer tokens,reset,base,layouts,components;@layer tokens{:root{--color-primary: #1a1917;--color-primary-strong: #000000;--color-primary-contrast: #fdfcfb;--color-accent: #a8521f;--color-accent-strong: #8e4419;--color-accent-contrast: #fffdfb;--color-accent-inverse: #e8a87c;--color-secondary: #6e6a64;--color-secondary-strong: #4a4742;--color-secondary-contrast: #fdfcfb;--color-success: #1f7a4d;--color-success-contrast: #fffdfb;--color-warning: #9a6200;--color-warning-contrast: #fffdfb;--color-danger: #b8342a;--color-danger-contrast: #fffdfb;--color-info: #1f6a84;--color-info-contrast: #fffdfb;--color-success-soft: #e4f2e9;--color-success-soft-text: #14543a;--color-warning-soft: #fbf0da;--color-warning-soft-text: #6e4600;--color-danger-soft: #fae7e4;--color-danger-soft-text: #7d2620;--color-info-soft: #e2eff4;--color-info-soft-text: #114a5e;--color-canvas: #faf9f7;--color-surface: #ffffff;--color-surface-alt: #faf9f7;--color-surface-sunken: #f4f2ef;--color-surface-inverse: #1a1917;--color-overlay: rgb(26 25 23 / .45);--color-border-subtle: #f0ede9;--color-border: #e6e3df;--color-border-strong: #d3cfc9;--color-border-control: #8a8580;--color-media-scrim: rgb(0 0 0 / .6);--color-on-media: #ffffff;--color-text: #1a1917;--color-text-muted: #6e6a64;--color-text-subtle: #77726b;--color-text-inverse: #fdfcfb;--color-disabled: #f4f2ef;--color-disabled-text: #6e6a64;--space-0: 0;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--space-8: 3rem;--space-10: 4rem;--space-12: 5rem;--space-16: 6rem;--radius-sm: 5px;--radius-md: 9px;--radius-lg: 14px;--radius-full: 9999px;--shadow-color: 26 25 23;--shadow-sm: 0 1px 2px rgb(var(--shadow-color) / .05);--shadow-md: 0 1px 2px rgb(var(--shadow-color) / .04), 0 6px 16px -4px rgb(var(--shadow-color) / .1);--shadow-lg: 0 2px 4px rgb(var(--shadow-color) / .04), 0 16px 32px -8px rgb(var(--shadow-color) / .14);--shadow-xl: 0 4px 8px rgb(var(--shadow-color) / .05), 0 28px 64px -12px rgb(var(--shadow-color) / .22);--shadow-inset-top: inset 0 1px 0 rgb(255 255 255 / .12);--font-family-base: "Instrument Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--font-family-display: var(--font-family-base);--font-family-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--font-size-2xs: .6875rem;--font-size-xs: .75rem;--font-size-sm: .8125rem;--font-size-base: .9375rem;--font-size-lg: 1.0625rem;--font-size-xl: 1.1875rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.5rem;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--letter-spacing-tight: -.015em;--letter-spacing-tighter: -.025em;--letter-spacing-caps: .07em;--line-height-tight: 1.25;--line-height-base: 1.5;--line-height-relaxed: 1.75;--border-width: 1px;--border-width-thick: 2px;--control-height-sm: 30px;--control-height-md: 36px;--control-height-lg: 44px;--ring-color: var(--color-accent, var(--color-primary));--ring-width: 2px;--ring-offset: 2px;--focus-ring-color: var(--ring-color);--focus-ring-width: var(--ring-width);--focus-ring-offset: var(--ring-offset);--container-max-width: 1200px;--scroll-padding-top: 4.5rem;--layout-max-width: 1400px;--layout-measure: 70ch;--layout-focus-width: 40rem;--layout-sidebar-width: 16rem;--layout-rail-width: 4.5rem;--layout-aside-width: 18rem;--layout-pane-width: 22rem;--layout-gutter: clamp(var(--space-4), 3vw, var(--space-8));--transition-fast: .12s ease;--transition-base: .2s ease;--transition-slow: .32s ease;--z-dropdown: 1000;--z-sticky: 1020;--z-overlay: 1030;--z-modal: 1040;--z-popover: 1050;--z-toast: 1060}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--color-primary: #f2efe9;--color-primary-strong: #ffffff;--color-primary-contrast: #14130f;--color-accent: #e8a87c;--color-accent-strong: #f0bd9b;--color-accent-contrast: #1c1b17;--color-accent-inverse: #a8521f;--color-secondary: #8b857c;--color-secondary-strong: #a9a29a;--color-secondary-contrast: #14130f;--color-border-control: #6b665f;--color-canvas: #14130f;--color-surface: #1c1b17;--color-surface-alt: #232118;--color-surface-sunken: #232118;--color-surface-inverse: #f2efe9;--color-overlay: rgb(0 0 0 / .6);--color-border-subtle: #232118;--color-border: #2a2823;--color-border-strong: #3a3730;--color-text: #f2efe9;--color-text-muted: #a9a29a;--color-text-subtle: #969088;--color-text-inverse: #14130f;--color-disabled: #232118;--color-disabled-text: #969088;--color-success: #4eae76;--color-success-contrast: #1c1b17;--color-warning: #c99a3e;--color-warning-contrast: #1c1b17;--color-danger: #d1655a;--color-danger-contrast: #1c1b17;--color-info: #5aa2c4;--color-info-contrast: #1c1b17;--color-success-soft: #16321f;--color-success-soft-text: #8fd4a8;--color-warning-soft: #33260d;--color-warning-soft-text: #e5bf78;--color-danger-soft: #351a16;--color-danger-soft-text: #f0a49b;--color-info-soft: #122a33;--color-info-soft-text: #8fc6d8;--shadow-color: 0 0 0;--shadow-inset-top: inset 0 1px 0 rgb(255 255 255 / .06)}}:root[data-theme=dark]{--color-primary: #f2efe9;--color-primary-strong: #ffffff;--color-primary-contrast: #14130f;--color-accent: #e8a87c;--color-accent-strong: #f0bd9b;--color-accent-contrast: #1c1b17;--color-accent-inverse: #a8521f;--color-secondary: #8b857c;--color-secondary-strong: #a9a29a;--color-secondary-contrast: #14130f;--color-border-control: #6b665f;--color-canvas: #14130f;--color-surface: #1c1b17;--color-surface-alt: #232118;--color-surface-sunken: #232118;--color-surface-inverse: #f2efe9;--color-overlay: rgb(0 0 0 / .6);--color-border-subtle: #232118;--color-border: #2a2823;--color-border-strong: #3a3730;--color-text: #f2efe9;--color-text-muted: #a9a29a;--color-text-subtle: #969088;--color-text-inverse: #14130f;--color-disabled: #232118;--color-disabled-text: #969088;--color-success: #4eae76;--color-success-contrast: #1c1b17;--color-warning: #c99a3e;--color-warning-contrast: #1c1b17;--color-danger: #d1655a;--color-danger-contrast: #1c1b17;--color-info: #5aa2c4;--color-info-contrast: #1c1b17;--color-success-soft: #16321f;--color-success-soft-text: #8fd4a8;--color-warning-soft: #33260d;--color-warning-soft-text: #e5bf78;--color-danger-soft: #351a16;--color-danger-soft-text: #f0a49b;--color-info-soft: #122a33;--color-info-soft-text: #8fc6d8;--shadow-color: 0 0 0;--shadow-inset-top: inset 0 1px 0 rgb(255 255 255 / .06)}}@layer reset{*,*:before,*:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;font-family:var(--font-family-base);line-height:var(--line-height-base);scroll-padding-top:var(--scroll-padding-top)}html:focus-within{scroll-behavior:smooth}body{min-height:100vh;font-size:var(--font-size-base);color:var(--color-text);background:var(--color-canvas)}ul[class],ol[class]{list-style:none;padding:0}img,picture,svg,video{display:block;max-width:100%}input,button,textarea,select{font:inherit;color:inherit}button{cursor:pointer;background:none;border:none}a{color:inherit;text-decoration:none}table{border-collapse:collapse}fieldset{border:none;padding:0;margin:0;min-width:0}legend{padding:0}hr{border:none;border-top:var(--border-width) solid var(--color-border)}dialog{border:none;padding:0;background:none;color:inherit;max-width:min(100%,calc(100vw - 2 * var(--space-4)));max-height:min(100%,calc(100vh - 2 * var(--space-4)));margin:auto}dialog::backdrop{background:var(--color-overlay)}[hidden]{display:none!important}:disabled,[aria-disabled=true]{cursor:not-allowed}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.spinner,.btn--loading:after{animation-duration:1.5s!important;animation-iteration-count:infinite!important}}}@layer base{.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.container{width:100%;max-width:var(--container-max-width);margin-inline:auto;padding-inline:var(--space-4)}.skip-link{position:absolute;top:-3rem;left:0;z-index:var(--z-toast);background:var(--color-primary);color:var(--color-primary-contrast);padding:var(--space-2) var(--space-4);border-radius:0 0 var(--radius-sm) 0;transition:top var(--transition-fast)}.skip-link:focus{top:0}.js-only{display:none}.js .js-only{display:inline-flex}.mt-1{margin-top:var(--space-1)}.mt-2{margin-top:var(--space-2)}.mt-3{margin-top:var(--space-3)}.mt-4{margin-top:var(--space-4)}@media screen and (max-width:575px){.hide-sm{display:none!important}}.stack{display:flex;flex-direction:column;gap:var(--space-4)}.stack--sm{gap:var(--space-3)}.stack--lg{gap:var(--space-6)}}@layer base{h1,h2,h3,h4,h5,h6{font-family:var(--font-family-display);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);letter-spacing:var(--letter-spacing-tight);color:var(--color-text);text-wrap:pretty}h1{font-size:var(--font-size-4xl);letter-spacing:var(--letter-spacing-tighter);line-height:1.05}h2{font-size:var(--font-size-3xl)}h3{font-size:var(--font-size-2xl)}h4{font-size:var(--font-size-xl)}h5{font-size:var(--font-size-lg)}h6{font-size:var(--font-size-base)}:where(h1,h2,h3,h4,h5,h6,p,ul,ol,blockquote,pre,table,hr):not([class]){margin-block:0 var(--space-3)}:where(h1,h2,h3,h4):not([class]){margin-block:var(--space-6) var(--space-3)}:where(h1):not([class]){margin-block-end:var(--space-4)}:where(h1,h2,h3,h4,h5,h6,p,ul,ol,blockquote,pre,table,hr):not([class]):first-child{margin-block-start:0}:where(h1,h2,h3,h4,h5,h6,p,ul,ol,blockquote,pre,table,hr):not([class]):last-child{margin-block-end:0}small,.text-sm{font-size:var(--font-size-sm)}.text-xs{font-size:var(--font-size-xs)}.text-2xs{font-size:var(--font-size-2xs)}.text-muted{color:var(--color-text-muted)}.text-subtle{color:var(--color-text-subtle)}.text-mono{font-family:var(--font-family-mono)}.text-caps{font-family:var(--font-family-mono);font-size:var(--font-size-2xs);font-weight:var(--font-weight-medium);letter-spacing:var(--letter-spacing-caps);text-transform:uppercase;color:var(--color-text-subtle)}.text-nums{font-variant-numeric:tabular-nums}a:not([class]){color:var(--color-accent, var(--color-primary));text-decoration:underline;text-underline-offset:.2em}a:not([class]):hover{color:var(--color-accent-strong, var(--color-primary-strong))}a:not([class]):focus-visible{outline:var(--ring-width) solid var(--ring-color);outline-offset:var(--ring-offset)}.link{color:var(--color-accent, var(--color-primary));text-decoration:none;cursor:pointer}.link:hover{text-decoration:underline;text-underline-offset:.2em}.link:focus-visible{outline:var(--ring-width) solid var(--ring-color);outline-offset:var(--ring-offset)}.text-medium{font-weight:var(--font-weight-medium)}.text-semibold{font-weight:var(--font-weight-semibold)}.text-bold{font-weight:var(--font-weight-bold)}}@layer layouts{.layout{display:flex;flex-direction:column;min-height:100vh;background:var(--color-canvas)}.layout__header{position:sticky;top:0;z-index:var(--z-sticky);display:flex;align-items:center;background:var(--color-surface)}.layout__header>.navbar{flex:1 1 auto;min-width:0;position:static}.layout--static-header .layout__header{position:static}.layout__body{display:flex;flex:1 1 auto;min-height:0}.layout__content{flex:1 1 auto;min-width:0;padding:var(--layout-gutter)}.layout__footer{padding:var(--space-6) var(--layout-gutter);border-top:var(--border-width) solid var(--color-border);color:var(--color-text-muted);font-size:var(--font-size-sm)}.layout--boxed .layout__content,.layout--boxed .layout__footer{width:100%;max-width:var(--layout-max-width);margin-inline:auto}.layout__backdrop{display:none}@media screen and (max-width:991px){.js .sidebar.is-open~.layout__backdrop{display:block;position:fixed;inset:0;z-index:calc(var(--z-overlay) - 1);background:var(--color-overlay)}}.layout__drawer-toggle{margin-inline-start:var(--space-3)}}@layer layouts{.layout--stacked .layout__content{display:flex;flex-direction:column;gap:var(--space-6)}@media screen and (min-width:1400px){.layout--stacked:not(.layout--boxed) .layout__content{padding-inline:max(var(--layout-gutter),calc((100% - var(--layout-max-width)) / 2))}}}@layer layouts{.layout--sidebar .layout__body>.sidebar{width:var(--layout-sidebar-width)}.layout--sidebar-end .layout__body{flex-direction:row-reverse}.layout__aside{flex:0 0 var(--layout-aside-width);padding:var(--layout-gutter);padding-inline-start:0}@media screen and (max-width:1199px){.layout--sidebar .layout__body{flex-wrap:wrap}.layout__aside{flex:1 1 100%;padding-inline-start:var(--layout-gutter);padding-top:0}}@media screen and (min-width:992px){.layout--sidebar .layout__body>.sidebar{position:sticky;top:var(--scroll-padding-top);align-self:flex-start;height:calc(100vh - var(--scroll-padding-top))}.layout--static-header .layout__body>.sidebar{top:0;height:100vh}}}@layer layouts{.layout--rail .layout__body{flex-direction:row}.layout__rail{flex:0 0 var(--layout-rail-width);position:sticky;top:0;align-self:flex-start;height:100vh;display:flex;flex-direction:column;align-items:center;gap:var(--space-1);padding-block:var(--space-3);background:var(--color-surface);border-inline-end:var(--border-width) solid var(--color-border)}.layout--rail .layout__header~.layout__body .layout__rail{top:var(--scroll-padding-top);height:calc(100vh - var(--scroll-padding-top))}.layout__rail-brand{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;margin-bottom:var(--space-2);border-radius:var(--radius-md);background:var(--color-primary);color:var(--color-primary-contrast);font-weight:var(--font-weight-bold)}.layout__rail-link{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--radius-md);color:var(--color-text-subtle)}.layout__rail-link:hover{color:var(--color-text);background:var(--color-surface-sunken)}.layout__rail-link[aria-current=page]{background:var(--color-surface-sunken);color:var(--color-primary)}.layout__rail-link:focus-visible{outline:var(--ring-width) solid var(--ring-color);outline-offset:var(--ring-offset)}.layout__rail-end{margin-top:auto}@media screen and (max-width:767px){.layout--rail .layout__body{flex-direction:column}.layout__rail{position:fixed;inset-inline:0;bottom:0;top:auto;height:auto;flex-direction:row;justify-content:space-around;padding:var(--space-2) var(--space-3);border-inline-end:none;border-top:var(--border-width) solid var(--color-border);z-index:var(--z-sticky)}.layout__rail-brand,.layout__rail-end{display:none}.layout__rail-link{width:44px;height:44px}.layout--rail .layout__content{padding-bottom:calc(var(--layout-gutter) + 60px)}}}@layer layouts{.layout--split .layout__body{flex-direction:row}.layout__pane{flex:0 0 var(--layout-pane-width);min-width:0;border-inline-end:var(--border-width) solid var(--color-border);background:var(--color-surface);overflow-y:auto}.layout--split .layout__content{flex:1 1 auto;overflow-y:auto}@media screen and (min-width:768px){.layout--split .layout__body{height:calc(100vh - var(--scroll-padding-top));position:sticky;top:var(--scroll-padding-top)}.layout--split.layout--static-header .layout__body,.layout--split:not(:has(.layout__header)) .layout__body{height:100vh;top:0}}@media screen and (min-width:768px)and (max-width:991px){.layout__pane{flex-basis:min(var(--layout-pane-width),40%)}}@media screen and (max-width:767px){.layout__pane{flex:1 1 100%;border-inline-end:none}.layout--split .layout__content,.layout--show-detail .layout__pane{display:none}.layout--show-detail .layout__content{display:block}}}@layer layouts{.layout--article .layout__content{display:grid;grid-template-columns:minmax(0,var(--layout-measure));justify-content:center;gap:var(--space-8)}.layout--article-wide .layout__content{grid-template-columns:minmax(0,var(--layout-max-width))}.layout__article{min-width:0}.layout--article .layout__aside{flex:none;padding:0}@media screen and (min-width:992px){.layout--article.layout--has-aside .layout__content{grid-template-columns:minmax(0,var(--layout-measure)) var(--layout-aside-width)}.layout--article-wide.layout--has-aside .layout__content{grid-template-columns:minmax(0,1fr) var(--layout-aside-width);max-width:var(--layout-max-width);margin-inline:auto}.layout--aside-start .layout__content{direction:rtl}.layout--aside-start .layout__content>*{direction:ltr}.layout--article .layout__aside{position:sticky;top:calc(var(--scroll-padding-top) + var(--space-4));align-self:start}}.layout--article .layout__footer{text-align:center}}@layer layouts{.layout--docs .layout__body>.sidebar{width:var(--layout-sidebar-width)}.layout--docs .layout__content{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-6);max-width:calc(var(--layout-measure) + var(--layout-aside-width) + var(--space-8))}.layout__toc-toggle{display:inline-flex;align-items:center;gap:var(--space-2);min-height:var(--control-height-md);padding-inline:var(--space-3);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer}.layout__toc-toggle:focus-visible{outline:var(--ring-width) solid var(--ring-color);outline-offset:var(--ring-offset)}.layout__toc-title{font-family:var(--font-family-mono);font-size:var(--font-size-2xs);letter-spacing:var(--letter-spacing-caps);text-transform:uppercase;color:var(--color-text-subtle);margin-bottom:var(--space-2)}@media screen and (max-width:1199px){.layout__toc{order:-1}.js .layout__toc-body{display:none;padding:var(--space-3) 0 0}.js .layout__toc-body.is-open{display:block}.layout__toc-title{display:none}}@media screen and (min-width:992px){.layout--docs .layout__body>.sidebar{position:sticky;top:var(--scroll-padding-top);align-self:flex-start;height:calc(100vh - var(--scroll-padding-top))}}@media screen and (min-width:1200px){.layout--docs .layout__content{grid-template-columns:minmax(0,var(--layout-measure)) var(--layout-aside-width)}.layout__toc{position:sticky;top:calc(var(--scroll-padding-top) + var(--space-4));align-self:start}.layout__toc-toggle{display:none}}}@layer layouts{.layout--auth{display:flex;align-items:center;justify-content:center;padding:var(--layout-gutter)}.layout__auth-panel{width:100%;max-width:24rem}.layout__auth-brand{display:flex;align-items:center;justify-content:center;gap:var(--space-2);margin-bottom:var(--space-6);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold)}.layout__auth-narrative{display:none}@media screen and (min-width:992px){.layout--auth-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:stretch;padding:0}.layout--auth-split .layout__auth-narrative{display:flex;flex-direction:column;justify-content:center;gap:var(--space-6);padding:var(--space-10) var(--space-8);background:var(--color-surface-inverse);color:var(--color-text-inverse)}.layout--auth-split .layout__auth-form{display:flex;align-items:center;justify-content:center;padding:var(--space-10) var(--space-8)}}@media screen and (min-width:1400px){.layout--auth-split .layout__auth-narrative>*{max-width:32rem;margin-inline:auto;width:100%}}}@layer layouts{.layout--focus .layout__header{justify-content:center;padding:var(--space-4) var(--layout-gutter);background:transparent}.layout--focus .layout__content{width:100%;max-width:var(--layout-focus-width);margin-inline:auto;padding-block:var(--space-8)}.layout--focus-wide .layout__content{max-width:var(--layout-measure)}.layout--focus .layout__footer{border-top:none;text-align:center}}@layer components{.card{position:relative;display:flex;flex-direction:column;background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md)}.card--elevated{border-color:transparent;box-shadow:var(--shadow-md)}.card--flat{border-color:transparent;background:var(--color-surface-alt)}.card--horizontal{flex-direction:row}.card--horizontal>.card__media{flex:0 0 35%;aspect-ratio:auto;align-self:stretch}.card--horizontal>.card__content{min-width:0}.card--clickable{cursor:pointer;text-align:inherit;transition:box-shadow var(--transition-fast),border-color var(--transition-fast),transform var(--transition-fast)}.card--clickable:hover,.card--clickable:focus-within{box-shadow:var(--shadow-md);transform:translateY(-2px)}.card--clickable:focus-visible{outline:var(--ring-width) solid var(--ring-color);outline-offset:var(--ring-offset)}.card--selected{border-color:var(--color-primary);box-shadow:0 0 0 1px var(--color-primary)}.card__content{display:flex;flex-direction:column;flex:1 1 auto;min-width:0}.card__media{position:relative;overflow:hidden;aspect-ratio:16 / 9;background:var(--color-surface-alt)}.card__media>img,.card__media>video,.card__media>svg{display:block;width:100%;height:100%;object-fit:cover}.card__media:first-child{border-start-start-radius:inherit;border-start-end-radius:inherit}.card--horizontal>.card__media:first-child{border-start-end-radius:0;border-end-start-radius:inherit}.card__media--square{aspect-ratio:1 / 1}.card__media--tall{aspect-ratio:3 / 4}.card__media--banner{aspect-ratio:21 / 9}.card__media-overlay{position:absolute;inset:0;display:flex;align-items:flex-end;padding:var(--space-4);background:linear-gradient(to top,var(--color-media-scrim),transparent);color:var(--color-on-media)}.card__header{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4);border-bottom:var(--border-width) solid var(--color-border)}.card__avatar{flex:0 0 auto;width:2.5rem;height:2.5rem;border-radius:var(--radius-full);overflow:hidden}.card__avatar>img{width:100%;height:100%;object-fit:cover}.card__heading{flex:1 1 auto;min-width:0}.card__title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight)}.card__title-link{color:inherit;text-decoration:none}.card__title-link:after{content:"";position:absolute;inset:0;z-index:1}.card__title-link:hover,.card__title-link:focus-visible{text-decoration:underline}.card__stretch-link{position:absolute;inset:0;z-index:1}.card__subtitle{font-size:var(--font-size-sm);color:var(--color-text-muted)}.card__actions{position:relative;z-index:2;display:flex;align-items:center;gap:var(--space-2);margin-inline-start:auto}.card__body{padding:var(--space-4);flex:1 1 auto;color:var(--color-text);font-size:var(--font-size-base)}.card__body>:not(:last-child){margin-bottom:var(--space-3)}.card__footer{position:relative;z-index:2;display:flex;align-items:center;gap:var(--space-2);padding:var(--space-4);border-top:var(--border-width) solid var(--color-border);justify-content:flex-end}.card__footer--split{justify-content:space-between}.card__meta{font-size:var(--font-size-sm);color:var(--color-text-muted)}.card--danger{border-color:var(--color-danger-soft-text)}}@layer components{.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);height:var(--control-height-md);padding-inline:var(--space-4);border:var(--border-width) solid var(--color-primary);border-radius:var(--radius-md);font-family:inherit;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);line-height:1;white-space:nowrap;flex-shrink:0;background:var(--color-primary);color:var(--color-primary-contrast);box-shadow:var(--shadow-inset-top),var(--shadow-sm);cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast),box-shadow var(--transition-fast)}.btn:hover{background:var(--color-primary-strong);border-color:var(--color-primary-strong)}.btn:focus-visible{outline:var(--ring-width) solid var(--ring-color);outline-offset:var(--ring-offset)}.btn:disabled,.btn[aria-disabled=true]{background:var(--color-disabled);border-color:transparent;color:var(--color-disabled-text);box-shadow:none;cursor:not-allowed}.btn--secondary{background:var(--color-secondary);border-color:var(--color-secondary);color:var(--color-secondary-contrast)}.btn--secondary:hover{background:var(--color-secondary-strong, var(--color-secondary));border-color:var(--color-secondary-strong, var(--color-secondary))}.btn--outline{background:var(--color-surface);border-color:var(--color-border);color:var(--color-text);box-shadow:var(--shadow-sm)}.btn--outline:hover{background:var(--color-surface-alt);border-color:var(--color-border-strong)}.btn--subtle{background:var(--color-surface-sunken);border-color:transparent;color:var(--color-text);box-shadow:none}.btn--subtle:hover{background:var(--color-border);border-color:transparent}.btn--ghost{background:transparent;border-color:transparent;color:var(--color-text-muted);box-shadow:none}.btn--ghost:hover{background:var(--color-surface-sunken);border-color:transparent;color:var(--color-text)}.btn--accent{background:var(--color-accent, var(--color-primary));border-color:var(--color-accent, var(--color-primary));color:var(--color-accent-contrast, var(--color-primary-contrast))}.btn--accent:hover{background:var(--color-accent-strong, var(--color-primary-strong));border-color:var(--color-accent-strong, var(--color-primary-strong))}.btn--danger{background:var(--color-danger);border-color:var(--color-danger);color:var(--color-danger-contrast)}.btn--danger:hover{filter:brightness(.92)}.btn--sm{height:var(--control-height-sm);padding-inline:var(--space-3);border-radius:var(--radius-sm);font-size:var(--font-size-sm)}.btn--lg{height:var(--control-height-lg);padding-inline:var(--space-5);font-size:var(--font-size-base)}.btn--icon{width:var(--control-height-md);padding-inline:0}.btn--sm.btn--icon{width:var(--control-height-sm)}.btn--lg.btn--icon{width:var(--control-height-lg)}.btn--block{display:flex;width:100%}.btn--loading{position:relative;color:transparent;pointer-events:none}.btn--loading:after{content:"";position:absolute;width:1em;height:1em;border:var(--border-width-thick) solid var(--btn-loading-color, var(--color-primary-contrast));border-inline-end-color:transparent;border-radius:var(--radius-full);animation:btn-spin .6s linear infinite}.btn--outline,.btn--subtle,.btn--ghost{--btn-loading-color: var(--color-text)}.btn--secondary{--btn-loading-color: var(--color-secondary-contrast)}.btn--accent{--btn-loading-color: var(--color-accent-contrast)}.btn--danger{--btn-loading-color: var(--color-danger-contrast)}.btn-group{display:inline-flex;border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.btn-group>.btn{box-shadow:none;border-radius:0}.btn-group>.btn:first-child{border-start-start-radius:var(--radius-md);border-end-start-radius:var(--radius-md)}.btn-group>.btn:last-child{border-start-end-radius:var(--radius-md);border-end-end-radius:var(--radius-md)}.btn-group>.btn+.btn{margin-inline-start:calc(var(--border-width) * -1)}.btn-group>.btn:focus-visible,.btn-group>.dropdown>.btn:focus-visible{position:relative;z-index:1}.btn-group>.dropdown>.btn{box-shadow:none;border-radius:0}.btn-group>.dropdown:last-child>.btn{border-start-end-radius:var(--radius-md);border-end-end-radius:var(--radius-md)}.btn-group>.btn+.dropdown{margin-inline-start:calc(var(--border-width) * -1)}@keyframes btn-spin{to{transform:rotate(360deg)}}}@layer components{.switch{display:inline-flex;align-items:flex-start;gap:var(--space-3);cursor:pointer}.switch__input{position:absolute;opacity:0;width:1px;height:1px}.switch__track{position:relative;flex:0 0 auto;width:38px;height:22px;margin-top:1px;background:var(--color-border-strong);border-radius:var(--radius-full);box-shadow:inset 0 1px 2px rgb(var(--shadow-color) / .18);transition:background var(--transition-fast)}.switch__thumb{position:absolute;top:2px;inset-inline-start:2px;width:18px;height:18px;background:var(--color-surface);border-radius:var(--radius-full);box-shadow:var(--shadow-sm);transition:transform var(--transition-fast)}.switch__input:checked~.switch__track{background:var(--color-primary)}.switch__input:checked~.switch__track .switch__thumb{transform:translate(16px)}.switch__input:focus-visible~.switch__track{outline:var(--ring-width) solid var(--ring-color);outline-offset:var(--ring-offset)}.switch__input:disabled~.switch__track{opacity:.5;cursor:not-allowed}.switch__text{display:flex;flex-direction:column;gap:1px}.switch__label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text)}.switch__hint{font-size:var(--font-size-xs);color:var(--color-text-muted)}}@layer components{.choice{display:inline-flex;align-items:center;gap:var(--space-2);cursor:pointer}.choice__input{width:1.125rem;height:1.125rem;accent-color:var(--color-primary);cursor:pointer}.choice__input:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}.choice__input:disabled{cursor:not-allowed}.choice__input:disabled~.choice__label{opacity:.5;cursor:not-allowed}.choice__label{font-size:var(--font-size-base);color:var(--color-text)}.choice-group{display:flex;flex-direction:column;gap:var(--space-2)}.choice-group--inline{flex-direction:row;flex-wrap:wrap;gap:var(--space-4)}}@layer components{.input{display:block;width:100%;height:var(--control-height-md);padding-inline:var(--space-3);border:var(--border-width) solid var(--color-border-control, var(--color-border-strong));border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);font-family:inherit;font-size:var(--font-size-base);box-shadow:inset 0 1px 2px rgb(var(--shadow-color) / .04);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.input::placeholder{color:var(--color-text-subtle)}.input:focus-visible{outline:var(--ring-width) solid var(--ring-color);outline-offset:1px;border-color:var(--color-primary)}.input:disabled{background:var(--color-surface-sunken);border-color:var(--color-border);color:var(--color-disabled-text);box-shadow:none;cursor:not-allowed}.input--invalid{border-color:var(--color-danger)}.input--sm{height:var(--control-height-sm);padding-inline:var(--space-2);border-radius:var(--radius-sm);font-size:var(--font-size-sm)}.input--lg{height:var(--control-height-lg);padding-inline:var(--space-4);font-size:var(--font-size-lg)}.input--multiline{height:auto;padding-block:var(--space-2);line-height:var(--line-height-base);resize:vertical}.input-icon{position:relative;display:flex;align-items:center}.input-icon__glyph{position:absolute;inset-inline-start:var(--space-3);display:inline-flex;color:var(--color-text-subtle);pointer-events:none}.input-icon--end .input-icon__glyph{inset-inline-start:auto;inset-inline-end:var(--space-3)}.input-icon .input{padding-inline-start:var(--space-8)}.input-icon--end .input{padding-inline-start:var(--space-3);padding-inline-end:var(--space-8)}.input-float{position:relative}.input-float .input{height:var(--control-height-lg);padding-top:var(--space-4);padding-bottom:0}.input-float__label{position:absolute;inset-inline-start:var(--space-3);top:50%;transform:translateY(-50%);font-size:var(--font-size-base);color:var(--color-text-muted);pointer-events:none;transition:top var(--transition-fast),font-size var(--transition-fast),color var(--transition-fast)}.input-float .input:focus~.input-float__label,.input-float .input:not(:placeholder-shown)~.input-float__label{top:var(--space-3);font-size:var(--font-size-2xs);color:var(--color-text-subtle)}.input-group{display:flex;align-items:stretch;border:var(--border-width) solid var(--color-border-control, var(--color-border-strong));border-radius:var(--radius-md);background:var(--color-surface);box-shadow:inset 0 1px 2px rgb(var(--shadow-color) / .04)}.input-group>:first-child{border-start-start-radius:inherit;border-end-start-radius:inherit}.input-group>:last-child{border-start-end-radius:inherit;border-end-end-radius:inherit}.input-group:focus-within{outline:var(--ring-width) solid var(--ring-color);outline-offset:1px;border-color:var(--color-primary)}.input-group>.input,.input-group .select .select__native,.input-group .select .combobox__field{height:100%;border:none;border-radius:0;background:transparent;box-shadow:none}.input-group>.input{height:auto}.input-group .select{width:auto}.input-group__addon>.select{margin-inline:calc(var(--space-3) * -1)}.input-group .select .combobox__input{width:5ch;flex:0 0 auto;padding-inline-start:var(--space-3)}.input-group .select .combobox__list{inset-inline-end:auto;min-width:12rem;width:max-content;max-width:calc(100vw - 2 * var(--space-4));border-top:var(--border-width) solid var(--ring-color);border-radius:var(--radius-md)}.input-group>.input:focus-visible,.input-group .select .select__native:focus-visible,.input-group .select .combobox__field:focus-within{outline:none}.input-group__control{flex:1 1 auto;min-width:0}.input-group__addon{display:flex;align-items:center;flex:0 0 auto;padding-inline:var(--space-3);background:var(--color-surface-sunken);color:var(--color-text-muted);font-size:var(--font-size-sm);white-space:nowrap}.input-group__addon:first-child{border-inline-end:var(--border-width) solid var(--color-border)}.input-group__addon:last-child{border-inline-start:var(--border-width) solid var(--color-border)}}@layer components{.textarea{resize:vertical;min-height:6rem}}@layer components{.select{position:relative;display:inline-block;width:100%}.select__native{appearance:none;width:100%;height:var(--control-height-md);padding-block:0;padding-inline:var(--space-3) calc(var(--space-3) * 2 + 15px);border:var(--border-width) solid var(--color-border-control, var(--color-border-strong));border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);font-size:var(--font-size-base)}.select__native:focus-visible{outline:var(--ring-width) solid var(--ring-color);outline-offset:1px;border-color:var(--color-primary)}.select__native:disabled{background:var(--color-surface-alt);color:var(--color-disabled-text);cursor:not-allowed}.js .select__native{display:none}html:not(.js) .select__ui{display:none}.select__ui .combobox__field{cursor:pointer}.select__ui .combobox__input{cursor:pointer;caret-color:transparent}.select__ui .combobox__input:disabled{cursor:not-allowed}.select--disabled .combobox__field{background:var(--color-surface-alt);color:var(--color-disabled-text)}.select--invalid .select__native,.select--invalid .combobox__field{border-color:var(--color-danger)}.select__ui .combobox__hints{display:none}}@layer components{.alert{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);border-inline-start:var(--border-width-thick) solid var(--color-border-strong);background:var(--color-surface-sunken);color:var(--color-text)}.alert__icon{flex:0 0 auto;margin-top:1px}.alert__body{flex:1 1 auto;min-width:0}.alert__title{font-weight:var(--font-weight-semibold)}.alert__text{font-size:var(--font-size-sm);line-height:var(--line-height-base)}.alert__list{margin-top:var(--space-1);padding:0;list-style:none;display:flex;flex-direction:column;gap:3px;font-size:var(--font-size-sm)}.alert__field{display:flex;gap:var(--space-2)}.alert__field-name{font-family:var(--font-family-mono);font-size:var(--font-size-xs);opacity:.85}.alert__close{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;min-width:24px;min-height:24px;margin:-4px;background:none;border:none;border-radius:var(--radius-sm);padding:0;cursor:pointer;color:inherit;opacity:.55}.alert__close:hover{opacity:1}.alert__close:focus-visible{outline:var(--ring-width) solid currentColor;outline-offset:var(--ring-offset)}.alert--success{background:var(--color-success-soft);border-inline-start-color:var(--color-success);color:var(--color-success-soft-text)}.alert--warning{background:var(--color-warning-soft);border-inline-start-color:var(--color-warning);color:var(--color-warning-soft-text)}.alert--danger{background:var(--color-danger-soft);border-inline-start-color:var(--color-danger);color:var(--color-danger-soft-text)}.alert--info{background:var(--color-info-soft);border-inline-start-color:var(--color-info);color:var(--color-info-soft-text)}}@layer components{.form-field{display:flex;flex-direction:column;gap:var(--space-1)}.form-field__label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text)}.form-field__required{color:var(--color-danger);margin-left:var(--space-1)}.form-field__help{font-size:var(--font-size-xs);color:var(--color-text-muted)}.form-field__error{font-size:var(--font-size-xs);color:var(--color-danger)}.form-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:var(--space-4)}.form-grid>*{grid-column:span 12}@media screen and (min-width:768px){.form-grid>.form-grid__col-6{grid-column:span 6}.form-grid>.form-grid__col-4{grid-column:span 4}.form-grid>.form-grid__col-3{grid-column:span 3}}.form-actions{display:flex;justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-2)}}@layer components{.form{display:flex;flex-direction:column;gap:var(--space-4)}}@layer components{.menu__list,.menu__sublist{display:flex;flex-direction:column;gap:var(--space-1);list-style:none}.menu__sublist{padding-inline-start:var(--space-4);margin-top:var(--space-1)}.menu__link{display:flex;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:none;border:none;color:var(--color-text);font:inherit;text-align:start;cursor:pointer}.menu__link:hover{background:var(--color-surface-alt)}.menu__link:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:-2px}.menu__link--active{background:var(--color-surface-alt);color:var(--color-primary);font-weight:var(--font-weight-medium)}.menu__icon{flex:0 0 auto;width:1.1em;height:1.1em}.menu__caret{margin-inline-start:auto;flex:0 0 auto;transition:transform var(--transition-fast)}.menu__link[aria-expanded=true] .menu__caret{transform:rotate(90deg)}}@layer components{.navbar{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);background:var(--color-surface);border-bottom:var(--border-width) solid var(--color-border);position:sticky;top:0;z-index:var(--z-sticky)}.navbar__brand{display:flex;align-items:center;gap:var(--space-2);min-width:0;font-weight:var(--font-weight-semibold);font-size:var(--font-size-lg);color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.navbar__nav{display:flex;align-items:center;gap:var(--space-4);margin-inline-start:var(--space-4)}.navbar__link{color:var(--color-text-muted);font-weight:var(--font-weight-medium);padding-block:var(--space-2)}.navbar__link:hover{color:var(--color-primary)}.navbar__link:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}.navbar__link--active{color:var(--color-primary)}.navbar__spacer{flex:1 1 auto}.navbar__actions{display:flex;align-items:center;gap:var(--space-3);margin-inline-start:auto;flex-shrink:0}.navbar__toggle{display:none;align-items:center;justify-content:center;min-width:var(--control-height-md);min-height:var(--control-height-md);background:none;border:none;border-radius:var(--radius-md);cursor:pointer;padding:var(--space-2);color:var(--color-text)}.navbar__toggle:focus-visible{outline:var(--ring-width) solid var(--ring-color);outline-offset:var(--ring-offset)}.navbar__toggle--sidebar{display:inline-flex}@media screen and (min-width:992px){.navbar__toggle--sidebar{display:none}}@media screen and (max-width:767px){.navbar__nav{position:absolute;top:100%;inset-inline:0;flex-direction:column;align-items:stretch;gap:0;margin-inline-start:0;background:var(--color-surface);border-bottom:var(--border-width) solid var(--color-border);padding:var(--space-2) var(--space-4)}.js .navbar__nav{display:none}.js .navbar__nav.is-open{display:flex}.navbar__link{padding-block:var(--space-3)}.navbar__toggle{display:inline-flex}}}@layer components{.sidebar{display:flex;flex-direction:column;gap:var(--space-4);width:16rem;flex:0 0 auto;padding:var(--space-4);background:var(--color-surface);color:var(--color-text);border-inline-end:var(--border-width) solid var(--color-border);overflow-y:auto}.sidebar__brand{display:flex;align-items:center;gap:var(--space-2);font-weight:var(--font-weight-semibold);font-size:var(--font-size-lg);padding:0 var(--space-2)}.sidebar__brand-mark{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:2rem;height:2rem;border-radius:var(--radius-md);background:var(--color-primary);color:var(--color-primary-contrast)}.sidebar__collapse-toggle{margin-top:auto;display:flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-2);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);background:none;color:var(--color-text-muted);cursor:pointer}.sidebar__collapse-toggle:hover{background:var(--color-surface-alt)}.sidebar__collapse-toggle:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:-2px}.sidebar__collapse-icon{transition:transform var(--transition-base)}@media screen and (min-width:992px){.sidebar{transition:width var(--transition-base)}.sidebar--collapsed{width:4.5rem}.sidebar--collapsed .sidebar__brand-label,.sidebar--collapsed .menu__link-label,.sidebar--collapsed .menu__caret,.sidebar--collapsed .menu__sublist,.sidebar--collapsed .sidebar__collapse-label{display:none}.sidebar--collapsed .menu__link{justify-content:center}.sidebar--collapsed .sidebar__collapse-icon{transform:rotate(180deg)}}@media screen and (max-width:991px){.js .sidebar{position:fixed;inset-block:0;inset-inline-start:0;z-index:var(--z-overlay);transform:translate(-100%);visibility:hidden;transition:transform var(--transition-base),visibility 0s var(--transition-base);box-shadow:var(--shadow-xl)}[dir=rtl] .js .sidebar{transform:translate(100%)}.js .sidebar.is-open{transform:translate(0);visibility:visible;transition:transform var(--transition-base)}}}@layer components{.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:var(--space-4)}.grid>*{grid-column:span 12}@media screen and (min-width:768px){.grid>.col-1{grid-column:span 1}.grid>.col-2{grid-column:span 2}.grid>.col-3{grid-column:span 3}.grid>.col-4{grid-column:span 4}.grid>.col-5{grid-column:span 5}.grid>.col-6{grid-column:span 6}.grid>.col-7{grid-column:span 7}.grid>.col-8{grid-column:span 8}.grid>.col-9{grid-column:span 9}.grid>.col-10{grid-column:span 10}.grid>.col-11{grid-column:span 11}.grid>.col-12{grid-column:span 12}}}@layer components{.tabs__list{display:flex;gap:var(--space-1);box-shadow:inset 0 calc(var(--border-width) * -1) 0 var(--color-border);overflow-x:auto;overflow-y:hidden;scrollbar-width:thin}.tabs__tab{padding:var(--space-2) var(--space-4);background:none;border:none;border-bottom:var(--border-width-thick) solid transparent;color:var(--color-text-muted);font-weight:var(--font-weight-medium);white-space:nowrap;cursor:pointer}.tabs__tab:hover{color:var(--color-text)}.tabs__tab:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:-2px}.tabs__tab[aria-selected=true]{color:var(--color-primary);border-bottom-color:var(--color-primary)}.tabs__panel{padding-top:var(--space-4)}}@layer components{.collapsible{border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md)}.collapsible__trigger{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);width:100%;padding:var(--space-3) var(--space-4);background:var(--color-surface);border:none;border-radius:inherit;font:inherit;font-weight:var(--font-weight-medium);text-align:left;cursor:pointer}.collapsible__trigger:hover{background:var(--color-surface-alt)}.collapsible__trigger:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:-2px}.collapsible__icon{flex:0 0 auto;transition:transform var(--transition-fast)}.collapsible__trigger[aria-expanded=true] .collapsible__icon{transform:rotate(180deg)}.collapsible__panel{padding:var(--space-4);border-top:var(--border-width) solid var(--color-border)}.accordion>.collapsible{border-radius:0}.accordion>.collapsible+.collapsible{border-top:none}.accordion>.collapsible:first-child{border-top-left-radius:var(--radius-md);border-top-right-radius:var(--radius-md)}.accordion>.collapsible:last-child{border-bottom-left-radius:var(--radius-md);border-bottom-right-radius:var(--radius-md)}.collapsible__heading{margin:0}}@layer components{.dropdown{position:relative;display:inline-block}.dropdown__trigger{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-width:24px;min-height:24px;border-radius:var(--radius-sm)}.dropdown__trigger:focus-visible{outline:var(--ring-width) solid var(--ring-color);outline-offset:var(--ring-offset)}.dropdown__panel{position:absolute;top:100%;inset-inline-start:0;margin-top:var(--space-1);width:max-content;min-width:10rem;max-width:min(24rem,calc(100vw - 2 * var(--space-4)));background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:var(--z-dropdown);padding:var(--space-2)}.dropdown__panel--end{inset-inline-start:auto;inset-inline-end:0}.dropdown__panel--fixed{position:fixed;inset-inline:auto;margin-top:0}}@layer components{.wizard__steps{display:flex;list-style:none;margin-bottom:var(--space-6)}.wizard__step{flex:1 1 0;display:flex;align-items:center;gap:var(--space-2);color:var(--color-text-muted);font-size:var(--font-size-sm)}.wizard__step:not(:last-child):after{content:"";flex:1 1 auto;height:var(--border-width);background:var(--color-border);margin-inline:var(--space-2)}.wizard__step-index{flex:0 0 auto;width:1.75rem;height:1.75rem;border-radius:var(--radius-full);border:var(--border-width-thick) solid var(--color-border);display:flex;align-items:center;justify-content:center;font-weight:var(--font-weight-semibold)}.wizard__step-label{white-space:nowrap}.wizard__step--active{color:var(--color-text)}.wizard__step--active .wizard__step-index{border-color:var(--color-primary);color:var(--color-primary)}.wizard__step--done .wizard__step-index{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-primary-contrast)}@media screen and (max-width:575px){.wizard__step-label{display:none}}}@layer components{.pagination{display:flex;align-items:center;gap:var(--space-1);list-style:none}.pagination__link{display:inline-flex;align-items:center;justify-content:center;min-width:2rem;height:2rem;padding-inline:var(--space-2);border-radius:var(--radius-sm);color:var(--color-text);font-size:var(--font-size-sm)}.pagination__link:hover{background:var(--color-surface-alt)}.pagination__link:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:-2px}.pagination__link[aria-current=page]{background:var(--color-primary);color:var(--color-primary-contrast)}.pagination__link--disabled{color:var(--color-disabled-text);pointer-events:none}.pagination__ellipsis{padding-inline:var(--space-2);color:var(--color-text-muted)}}@layer components{.modal{border:none;border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);padding:0;width:100%;max-width:32rem;background:var(--color-surface);color:var(--color-text)}.modal::backdrop{background:var(--color-overlay)}.modal__header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-4);border-bottom:var(--border-width) solid var(--color-border)}.modal__title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold)}.modal__close{background:none;border:none;cursor:pointer;color:var(--color-text-muted);font-size:var(--font-size-xl);line-height:1}.modal__close:hover{color:var(--color-text)}.modal__close:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}.modal__body{padding:var(--space-4)}.modal__footer{display:flex;justify-content:flex-end;gap:var(--space-2);padding:var(--space-4);border-top:var(--border-width) solid var(--color-border)}}@layer components{.toast-region{position:fixed;bottom:var(--space-4);inset-inline-end:var(--space-4);z-index:var(--z-toast);display:flex;flex-direction:column;gap:var(--space-2);max-width:min(24rem,calc(100vw - 2 * var(--space-4)));max-height:50vh;overflow:hidden;pointer-events:none}.toast-region>*{pointer-events:auto}.toast{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);box-shadow:var(--shadow-lg);animation:toast-in var(--transition-base)}.toast__icon{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:var(--radius-full);background:var(--color-surface-sunken);color:var(--color-text-muted)}.toast__body{flex:1 1 auto;min-width:0;font-size:var(--font-size-sm)}.toast__meta{font-size:var(--font-size-xs);color:var(--color-text-muted);margin-top:1px}.toast__action{flex:0 0 auto;min-height:24px;background:none;border:none;border-radius:var(--radius-sm);padding:0 var(--space-1);font:inherit;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-accent, var(--color-primary));cursor:pointer}.toast__close{flex:0 0 auto;align-self:center;display:inline-flex;align-items:center;justify-content:center;min-width:24px;min-height:24px;margin:-4px;background:none;border:none;border-radius:var(--radius-sm);padding:0;color:var(--color-text-subtle);cursor:pointer}.toast__close:hover{color:var(--color-text)}.toast__close:focus-visible{outline:var(--ring-width) solid var(--ring-color);outline-offset:var(--ring-offset)}.toast--ink{align-items:center;background:var(--color-surface-inverse);border-color:transparent;color:var(--color-text-inverse)}.toast--ink .toast__meta,.toast--ink .toast__close{color:var(--color-text-inverse);color:color-mix(in oklab,var(--color-text-inverse) 60%,transparent)}.toast--ink .toast__action{color:var(--color-accent-inverse, var(--color-primary-contrast))}.toast--success .toast__icon{background:var(--color-success-soft);color:var(--color-success)}.toast--warning .toast__icon{background:var(--color-warning-soft);color:var(--color-warning)}.toast--danger .toast__icon{background:var(--color-danger-soft);color:var(--color-danger)}.toast--info .toast__icon{background:var(--color-info-soft);color:var(--color-info)}@keyframes toast-in{0%{transform:translateY(var(--space-2));opacity:0}to{transform:translateY(0);opacity:1}}}@layer components{.badge{display:inline-flex;align-items:center;gap:var(--space-1);padding:2px var(--space-2);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);line-height:var(--line-height-tight);background:var(--color-surface-sunken);color:var(--color-text-muted);border:var(--border-width) solid transparent}.badge__dot{flex:0 0 auto;width:6px;height:6px;border-radius:var(--radius-full);background:currentColor}.badge--primary{background:var(--color-primary);color:var(--color-primary-contrast)}.badge--accent{background:var(--color-accent, var(--color-primary));color:var(--color-accent-contrast, var(--color-primary-contrast))}.badge--neutral{background:var(--color-surface-sunken);border-color:var(--color-border);color:var(--color-text-muted)}.badge--success{background:var(--color-success-soft);color:var(--color-success-soft-text)}.badge--warning{background:var(--color-warning-soft);color:var(--color-warning-soft-text)}.badge--danger{background:var(--color-danger-soft);color:var(--color-danger-soft-text)}.badge--info{background:var(--color-info-soft);color:var(--color-info-soft-text)}.badge--code{border-radius:var(--radius-sm);padding:1px var(--space-2);font-family:var(--font-family-mono);font-size:var(--font-size-2xs);color:var(--color-text-muted)}.chip{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);background:var(--color-surface);border:var(--border-width) solid var(--color-border);font-size:var(--font-size-sm);color:var(--color-text)}.chip--removable{padding-inline-end:var(--space-1)}.chip__remove{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;margin-block:-3px;padding:0;background:var(--color-surface-sunken);border:none;border-radius:var(--radius-full);cursor:pointer;color:var(--color-text-muted)}.chip__remove:hover{background:var(--color-danger-soft);color:var(--color-danger-soft-text)}.chip__remove:focus-visible{outline:var(--ring-width) solid var(--ring-color);outline-offset:1px}}@layer components{.avatar{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:2.5rem;height:2.5rem;border-radius:var(--radius-full);background:var(--color-secondary);color:var(--color-secondary-contrast);font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);overflow:hidden}.avatar>img{width:100%;height:100%;object-fit:cover}.avatar--sm{width:2rem;height:2rem;font-size:var(--font-size-xs)}.avatar--lg{width:3.5rem;height:3.5rem;font-size:var(--font-size-xl)}.avatar-group{display:flex}.avatar-group .avatar{margin-left:-.5rem;border:2px solid var(--color-surface)}.avatar-group .avatar:first-child{margin-left:0}}@layer components{.breadcrumb{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2);font-size:var(--font-size-sm);color:var(--color-text-muted);list-style:none}.breadcrumb__item{display:flex;align-items:center;gap:var(--space-2)}.breadcrumb__item:not(:last-child):after{content:"/";color:var(--color-border-strong)}.breadcrumb__link{color:var(--color-text-muted)}.breadcrumb__link:hover{color:var(--color-primary)}.breadcrumb__item[aria-current=page]{color:var(--color-text);font-weight:var(--font-weight-medium)}}@layer components{.tooltip{position:relative;display:inline-block}.tooltip__content{position:absolute;bottom:100%;left:50%;transform:translate(-50%) translateY(-.25rem);background:var(--color-surface-inverse);color:var(--color-text-inverse);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-size:var(--font-size-xs);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity var(--transition-fast);z-index:var(--z-popover)}.tooltip:hover .tooltip__content,.tooltip:focus-within .tooltip__content{opacity:1}}@layer components{.progress{appearance:none;display:block;width:100%;height:.5rem;border:none;border-radius:var(--radius-full);overflow:hidden;background:var(--color-surface-alt)}.progress::-webkit-progress-bar{background:var(--color-surface-alt)}.progress::-webkit-progress-value{background:var(--color-primary);border-radius:var(--radius-full)}.progress::-moz-progress-bar{background:var(--color-primary);border-radius:var(--radius-full)}.spinner{display:inline-block;width:1.5rem;height:1.5rem;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:var(--radius-full);animation:spinner-spin .7s linear infinite}@keyframes spinner-spin{to{transform:rotate(360deg)}}}@layer components{:root{--apx-accent: var(--color-accent, var(--color-primary));--apx-fore: var(--color-text);--apx-grid: var(--color-border);--apx-surface: var(--color-surface);--apx-bg: transparent;--apx-series-1: var(--color-accent, var(--color-primary));--apx-series-2: var(--color-info);--apx-series-3: var(--color-success);--apx-series-4: var(--color-warning);--apx-series-5: var(--color-danger);--apx-series-6: var(--color-secondary, var(--color-text-muted))}.chart{position:relative;width:100%;min-width:0;color:var(--color-text)}.chart .apexcharts-tooltip,.chart .apexcharts-menu{background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);color:var(--color-text);font-family:var(--font-family-base)}.chart .apexcharts-tooltip-title{background:var(--color-surface-sunken, var(--color-surface-alt));border-bottom:var(--border-width) solid var(--color-border)}.chart .apexcharts-xaxistooltip,.chart .apexcharts-yaxistooltip{background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text)}.chart .apexcharts-menu-item:hover{background:var(--color-surface-sunken, var(--color-surface-alt))}}@layer components{.error-page{padding-block:var(--space-16)}.error-page__meta{font-size:var(--font-size-xs);letter-spacing:.05em;color:var(--color-text-muted);text-transform:uppercase}.error-page h1{margin:var(--space-2) 0 var(--space-4)}.error-page__details{margin-top:var(--space-4);border-collapse:collapse;font-size:var(--font-size-sm)}.error-page__details th,.error-page__details td{padding:var(--space-1) var(--space-3);text-align:left;border-bottom:var(--border-width) solid var(--color-border)}.error-page__debug{margin-top:var(--space-4);padding:var(--space-4);border-radius:var(--radius-md);background:var(--color-surface-inverse);color:var(--color-danger-soft);overflow:auto;font-size:var(--font-size-xs);font-family:var(--font-family-mono)}.error-page__actions{margin-top:var(--space-6)}.error-page__request-id{margin-top:var(--space-6);font-size:var(--font-size-xs);color:var(--color-text-muted)}}@layer components{.data-table{--data-table-header-height: 34px;--data-table-select-width: 48px;display:flex;flex-direction:column;border:var(--border-width) solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface)}.data-table>:first-child{border-start-start-radius:inherit;border-start-end-radius:inherit}.data-table>:last-child{border-end-start-radius:inherit;border-end-end-radius:inherit}.data-table__form{display:flex;flex-direction:column;min-height:0}.data-table__form>:first-child{border-start-start-radius:inherit;border-start-end-radius:inherit}.data-table__form>:last-child{border-end-start-radius:inherit;border-end-end-radius:inherit}.data-table__toolbar{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap;padding:var(--space-3) var(--space-4);border-bottom:var(--border-width) solid var(--color-border-subtle)}.data-table__title{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.data-table__bulk{position:sticky;top:0;inset-inline-start:0;z-index:5;display:flex;align-items:center;gap:var(--space-2);box-sizing:border-box;height:var(--data-table-header-height);margin-block-end:calc(-1 * var(--data-table-header-height));width:100%;padding:0 var(--space-4) 0 calc(var(--data-table-select-width) + var(--space-4));overflow-x:auto;overflow-y:hidden;white-space:nowrap;background:var(--color-surface-inverse);color:var(--color-text-inverse);font-size:var(--font-size-sm)}.data-table__bulk[hidden]{display:none}.data-table__bulk-count{flex:none;font-weight:var(--font-weight-medium)}.data-table__bulk-sep{flex:none;width:var(--border-width);height:16px;background:var(--color-text-muted);background:color-mix(in oklab,var(--color-text-inverse) 20%,transparent)}.data-table__bulk .btn{flex:none;height:26px;padding-inline:var(--space-2);font-size:var(--font-size-xs);background:transparent;border-color:var(--color-text-muted);border-color:color-mix(in oklab,var(--color-text-inverse) 22%,transparent);color:var(--color-text-inverse);box-shadow:none}.data-table__bulk .btn:hover{background:#80808040;background:color-mix(in oklab,var(--color-text-inverse) 10%,transparent)}.data-table__bulk .btn--danger{background:var(--color-danger);border-color:var(--color-danger);color:var(--color-danger-contrast)}.data-table__scroll{position:relative;overflow:auto;max-height:var(--data-table-max-height, none)}.data-table__scroll--sm{--data-table-max-height: 240px}.data-table__scroll--md{--data-table-max-height: 400px}.data-table__scroll--lg{--data-table-max-height: 600px}.data-table__table{width:100%;border-collapse:separate;border-spacing:0;font-size:var(--font-size-sm)}.data-table__table th{position:sticky;top:0;z-index:3;height:var(--data-table-header-height);box-sizing:border-box;padding-inline:var(--space-4);text-align:start;white-space:nowrap;background:var(--color-surface-alt);border-bottom:var(--border-width) solid var(--color-border);font-family:var(--font-family-mono);font-size:var(--font-size-2xs);font-weight:var(--font-weight-medium);letter-spacing:var(--letter-spacing-caps);text-transform:uppercase;color:var(--color-text-subtle)}.data-table__table td{height:34px;padding-inline:var(--space-4);white-space:nowrap;border-bottom:var(--border-width) solid var(--color-border-subtle);background:var(--color-surface)}.data-table__table tbody tr:hover td{background:var(--color-surface-alt)}.data-table__row--selected td{background:var(--color-surface-sunken, var(--color-surface-alt));background:color-mix(in oklab,var(--color-accent, var(--color-primary)) 5%,var(--color-surface))}.data-table__select{position:sticky;inset-inline-start:0;z-index:1;box-sizing:border-box;width:var(--data-table-select-width);min-width:var(--data-table-select-width);padding-inline:0 0;padding-inline-start:var(--space-4)}th.data-table__select{z-index:6}.data-table__select+.data-table__cell--pinned{inset-inline-start:var(--data-table-select-width)}.data-table__cell--pinned{position:sticky;inset-inline-start:0;z-index:1;border-inline-end:var(--border-width) solid var(--color-border-subtle)}th.data-table__cell--pinned{z-index:4}.data-table__mono{font-family:var(--font-family-mono);font-size:var(--font-size-xs)}.data-table__num{text-align:end;font-variant-numeric:tabular-nums}.data-table__select input{width:16px;height:16px;margin:0;accent-color:var(--color-accent, var(--color-primary));cursor:pointer}.data-table__select input:focus-visible{outline:var(--ring-width) solid var(--ring-color);outline-offset:var(--ring-offset)}.data-table__actions{width:40px;text-align:center}td.data-table__actions{position:sticky;inset-inline-end:0;background:var(--color-surface)}td.data-table__select,td.data-table__cell--pinned{z-index:2}.data-table__row-actions{position:absolute;inset-block:0;inset-inline-end:0;z-index:1;display:flex;align-items:center;gap:var(--space-2);width:max-content;padding-inline:var(--space-3);overflow-x:auto;overflow-y:hidden;white-space:nowrap;background:var(--color-surface-inverse);color:var(--color-text-inverse);font-size:var(--font-size-sm)}.data-table__row-actions .btn{flex:none;height:26px;padding-inline:var(--space-2);font-size:var(--font-size-xs);background:transparent;border-color:var(--color-text-muted);border-color:color-mix(in oklab,var(--color-text-inverse) 22%,transparent);color:var(--color-text-inverse);box-shadow:none}.data-table__row-actions .btn:hover{background:var(--color-surface-alt);background:color-mix(in oklab,var(--color-text-inverse) 12%,transparent)}.data-table__row-actions .btn--danger{border-color:var(--color-danger);background:var(--color-danger);color:var(--color-danger-contrast)}.data-table__row-actions .btn--icon{border-color:transparent}@keyframes data-table-row-actions-in{0%{clip-path:inset(0 0 0 100%)}to{clip-path:inset(0)}}@keyframes data-table-row-actions-out{0%{clip-path:inset(0)}to{clip-path:inset(0 0 0 100%)}}.data-table__row-actions:not([hidden]){animation:data-table-row-actions-in var(--transition-base)}.data-table__row-actions.is-closing{animation-name:data-table-row-actions-out;animation-fill-mode:forwards;pointer-events:none}@media(prefers-reduced-motion:reduce){.data-table__row-actions:not([hidden]),.data-table__row-actions.is-closing{animation:none}}.data-table__row-actions-sep{flex:none;width:var(--border-width);height:16px;background:var(--color-text-muted);background:color-mix(in oklab,var(--color-text-inverse) 20%,transparent)}.data-table__footer{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap;padding:var(--space-2) var(--space-4);border-top:var(--border-width) solid var(--color-border);background:var(--color-surface-alt);font-size:var(--font-size-xs);color:var(--color-text-muted)}.data-table__sort{display:inline-flex;align-items:center;gap:var(--space-1);min-height:24px;padding:0;border:none;border-radius:var(--radius-sm);background:none;color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer}th[aria-sort] .data-table__sort{color:var(--color-text)}.data-table__sort:focus-visible{outline:var(--ring-width) solid var(--ring-color);outline-offset:var(--ring-offset)}.data-table__empty{padding:var(--space-8);text-align:center;color:var(--color-text-muted)}.data-table__empty>.empty{justify-content:center;margin-inline:auto}}@layer components{.combobox,.combobox__anchor{position:relative}.combobox--open>.form-field__help,.combobox[aria-expanded=true]>.form-field__help{visibility:hidden}.combobox__field{display:flex;align-items:center;height:var(--control-height-md);padding-inline:var(--space-2) var(--space-3);border:var(--border-width) solid var(--color-border-control, var(--color-border-strong));border-radius:var(--radius-md);background:var(--color-surface)}.combobox__field:focus-within{outline:var(--ring-width) solid var(--ring-color);outline-offset:1px;border-color:var(--color-primary)}.combobox[aria-expanded=true] .combobox__field,.combobox--open .combobox__field{border-end-start-radius:0;border-end-end-radius:0;border-color:var(--ring-color);box-shadow:0 0 0 1px var(--ring-color)}.combobox--open .combobox__field:focus-within{outline:none;border-color:var(--ring-color)}.combobox--open .combobox__list{border-color:var(--ring-color);box-shadow:0 0 0 1px var(--ring-color),var(--shadow-lg)}.combobox__input{flex:1 1 auto;min-width:0;height:100%;padding-inline-start:var(--space-2);border:none;outline:none;background:transparent;font:inherit;font-size:var(--font-size-base);color:var(--color-text)}.combobox__input::placeholder{color:var(--color-text-subtle)}.combobox__caret{flex:0 0 auto;display:inline-flex;color:var(--color-text-muted);cursor:pointer}.combobox__list{position:absolute;inset-inline:0;top:100%;z-index:var(--z-dropdown);border:var(--border-width) solid var(--color-primary);border-top:none;border-end-start-radius:var(--radius-md);border-end-end-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-lg);overflow:hidden}.combobox__list[hidden]{display:none}.combobox__group{padding:var(--space-2) var(--space-3) var(--space-1);border-top:var(--border-width) solid var(--color-border-subtle);font-family:var(--font-family-mono);font-size:var(--font-size-2xs);letter-spacing:var(--letter-spacing-caps);text-transform:uppercase;color:var(--color-text-subtle)}.combobox__group:first-child{border-top:none}.combobox__option{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);cursor:pointer}.combobox__option:hover,.combobox__option[data-active]{background:var(--color-surface-sunken)}.combobox__option-label{flex:1 1 auto;min-width:0;font-size:var(--font-size-sm)}.combobox__match{font-weight:var(--font-weight-semibold);background:var(--color-warning-soft);background:color-mix(in oklab,var(--color-accent, var(--color-primary)) 22%,var(--color-surface));border-radius:2px}.combobox__option-meta{flex:0 0 auto;font-size:var(--font-size-2xs);color:var(--color-text-subtle)}.combobox__check{flex:0 0 auto;display:inline-flex;color:var(--color-text)}.combobox__empty{padding:var(--space-4) var(--space-3);font-size:var(--font-size-sm);color:var(--color-text-muted)}.combobox__hints{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-top:var(--border-width) solid var(--color-border-subtle);background:var(--color-surface-alt);font-size:var(--font-size-2xs);color:var(--color-text-subtle)}.combobox__count{margin-inline-start:auto;font-family:var(--font-family-mono)}.combobox--multi .combobox__field{height:auto;min-height:var(--control-height-md);flex-wrap:wrap;gap:var(--space-1);padding:var(--space-1) var(--space-2)}.combobox__token{display:inline-flex;align-items:center;gap:var(--space-1);padding:2px var(--space-1) 2px var(--space-2);border-radius:var(--radius-sm);background:var(--color-surface-sunken);font-size:var(--font-size-sm)}.combobox__token-remove{display:inline-flex;align-items:center;justify-content:center;min-width:24px;min-height:24px;margin-block:-6px;padding:0;background:none;border:none;color:var(--color-text-muted);cursor:pointer}.combobox__token-remove:hover{color:var(--color-danger)}.combobox__token-remove:focus-visible{outline:var(--ring-width) solid var(--ring-color);outline-offset:1px}.combobox__option[aria-disabled=true]{color:var(--color-disabled-text);cursor:not-allowed}}@layer components{.datepicker{position:relative;display:flex;flex-direction:column}.datepicker--open:not(.datepicker--inline){z-index:var(--z-popover)}.datepicker--inline .datepicker__panel{position:static;z-index:auto;margin-top:var(--space-3)}.datepicker--end .datepicker__panel{inset-inline-start:auto;inset-inline-end:0}.datepicker__trigger:disabled{color:var(--color-disabled-text);background:var(--color-surface-alt);cursor:not-allowed}.datepicker__trigger{display:inline-flex;align-items:center;gap:var(--space-2);height:var(--control-height-md);padding-inline:var(--space-3);border:var(--border-width) solid var(--color-border-control, var(--color-border-strong));border-radius:var(--radius-md);background:var(--color-surface);font:inherit;font-size:var(--font-size-sm);font-variant-numeric:tabular-nums;color:var(--color-text);cursor:pointer}.datepicker__trigger[aria-expanded=true]{border-color:var(--color-primary)}.datepicker__trigger-icon{display:inline-flex;color:var(--color-text-muted)}.datepicker__panel{position:absolute;top:calc(100% + var(--space-1));inset-inline-start:0;z-index:var(--z-popover);max-width:calc(100vw - 2 * var(--space-4));border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-lg);overflow:hidden;width:max-content}.datepicker__header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-bottom:var(--border-width) solid var(--color-border-subtle)}.datepicker__nav-group{display:inline-flex;gap:var(--space-1)}.datepicker__nav{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:var(--border-width) solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text-muted);cursor:pointer}.datepicker__nav:hover{background:var(--color-surface-sunken);color:var(--color-text)}.datepicker__nav:focus-visible{outline:var(--ring-width) solid var(--ring-color);outline-offset:1px}.datepicker__month{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.datepicker__grid{padding:var(--space-2) var(--space-3)}.datepicker__weekdays,.datepicker__days{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.datepicker__weekdays{margin-bottom:var(--space-1)}.datepicker__weekday{padding-block:3px;text-align:center;font-family:var(--font-family-mono);font-size:var(--font-size-2xs);color:var(--color-text-subtle)}.datepicker__day{display:flex;align-items:center;justify-content:center;height:30px;border:none;border-radius:var(--radius-sm);background:transparent;font:inherit;font-size:var(--font-size-sm);font-variant-numeric:tabular-nums;color:var(--color-text);cursor:pointer}.datepicker__day:hover{background:var(--color-surface-sunken)}.datepicker__day:focus-visible{outline:var(--ring-width) solid var(--ring-color);outline-offset:-1px}.datepicker__day--outside{color:var(--color-text-subtle)}.datepicker__day--today{box-shadow:inset 0 0 0 1.5px var(--color-accent, var(--color-primary))}.datepicker__day--in-range{background:var(--color-surface-sunken, var(--color-surface-alt));background:color-mix(in oklab,var(--color-accent, var(--color-primary)) 8%,var(--color-surface));border-radius:0}.datepicker__day--start,.datepicker__day--end{background:var(--color-primary);color:var(--color-primary-contrast)}.datepicker__day--start{border-start-end-radius:0;border-end-end-radius:0}.datepicker__day--end{border-start-start-radius:0;border-end-start-radius:0}.datepicker__day--start.datepicker__day--end{border-radius:var(--radius-sm)}.datepicker__day:disabled{color:var(--color-disabled-text);cursor:not-allowed}.datepicker__footer{display:flex;align-items:center;gap:var(--space-1);flex-wrap:wrap;padding:var(--space-2) var(--space-3);border-top:var(--border-width) solid var(--color-border-subtle);background:var(--color-surface-alt)}.datepicker__preset{height:28px;padding-inline:var(--space-2);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);font:inherit;font-size:var(--font-size-2xs);color:var(--color-text-muted);cursor:pointer}.datepicker__preset:hover{border-color:var(--color-primary);color:var(--color-text)}.datepicker__apply{margin-inline-start:auto;height:28px;padding-inline:var(--space-3);border:none;border-radius:var(--radius-sm);background:var(--color-primary);color:var(--color-primary-contrast);font:inherit;font-size:var(--font-size-2xs);font-weight:var(--font-weight-medium);cursor:pointer}}@layer components{.command{position:fixed;inset:0;z-index:var(--z-modal);display:flex;justify-content:center;padding:min(12vh,var(--space-8)) var(--space-4) var(--space-4);background:var(--color-overlay);overflow-y:auto}.command__search:focus-within{box-shadow:inset 0 calc(var(--ring-width) * -1) 0 var(--ring-color)}.command__esc:focus-visible,.command__item:focus-visible{outline:var(--ring-width) solid var(--ring-color);outline-offset:-2px}.command[hidden]{display:none}.command--inline{position:static;inset:auto;padding:0;background:none;display:block}.command__sheet{width:100%;max-width:34rem;align-self:flex-start;border:var(--border-width) solid var(--color-border-strong);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-xl);overflow:hidden}.command--inline .command__sheet{max-width:none}.command__search{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:var(--border-width) solid var(--color-border-subtle)}.command__search-icon{flex:0 0 auto;display:inline-flex;color:var(--color-text-subtle)}.command__input{flex:1 1 auto;min-width:0;border:none;outline:none;background:transparent;font:inherit;font-size:var(--font-size-lg);color:var(--color-text)}.command__input::placeholder{color:var(--color-text-subtle)}.command__list{padding:var(--space-1);max-height:min(22rem,55vh);overflow-y:auto}.command__group{padding:var(--space-2) var(--space-2) var(--space-1);font-family:var(--font-family-mono);font-size:var(--font-size-2xs);letter-spacing:var(--letter-spacing-caps);text-transform:uppercase;color:var(--color-text-subtle)}.command__item{display:flex;align-items:center;gap:var(--space-3);width:100%;padding:var(--space-2);border:none;border-radius:var(--radius-sm);background:transparent;font:inherit;text-align:left;color:var(--color-text);cursor:pointer}.command__item:hover{background:var(--color-surface-sunken)}.command__item[data-active]{background:var(--color-primary);color:var(--color-primary-contrast)}.command__item-icon{flex:0 0 auto;display:inline-flex;opacity:.75}.command__item-badge{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:var(--radius-sm);background:var(--color-surface-sunken);color:var(--color-text-muted);font-family:var(--font-family-mono);font-size:var(--font-size-2xs)}.command__item-label{flex:1 1 auto;min-width:0;font-size:var(--font-size-sm)}.command__match{font-weight:var(--font-weight-semibold)}.command__item-meta{flex:0 0 auto;font-size:var(--font-size-xs);color:var(--color-text-subtle)}.command__item[data-active] .command__item-meta,.command__item[data-active] .command__item-badge{color:var(--color-primary-contrast);color:color-mix(in oklab,var(--color-primary-contrast) 70%,transparent);background:transparent}.command__kbd{display:inline-flex;align-items:center;padding:1px var(--space-2);border-radius:var(--radius-sm);background:var(--color-surface-sunken);font-family:var(--font-family-mono);font-size:var(--font-size-2xs);color:var(--color-text-muted)}.command__item[data-active] .command__kbd{background:#8080804d;background:color-mix(in oklab,var(--color-primary-contrast) 16%,transparent);color:var(--color-primary-contrast)}.command__esc{flex:0 0 auto;border:var(--border-width) solid transparent;cursor:pointer}.command__esc:hover{border-color:var(--color-border-strong);color:var(--color-text)}.command__empty{padding:var(--space-5) var(--space-2);text-align:center;font-size:var(--font-size-sm);color:var(--color-text-muted)}.command__footer{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-2) var(--space-4);border-top:var(--border-width) solid var(--color-border-subtle);background:var(--color-surface-alt);font-size:var(--font-size-2xs);color:var(--color-text-subtle)}.command__count{margin-inline-start:auto;font-family:var(--font-family-mono)}.command__trigger{color:var(--color-text-muted);font-weight:var(--font-weight-normal)}@media screen and (min-width:576px){.command__trigger{min-width:14rem;justify-content:flex-start}.command__trigger .command__kbd{margin-inline-start:auto}}}@layer components{.dropzone{display:flex;flex-direction:column;gap:var(--space-3)}.dropzone__area{position:relative;display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-6) var(--space-4);border:1.5px dashed var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface-alt);text-align:center;transition:border-color var(--transition-fast),background var(--transition-fast)}.dropzone__area:focus-within,.dropzone__area--over{border-color:var(--color-accent, var(--color-primary));background:var(--color-surface);background:color-mix(in oklab,var(--color-accent, var(--color-primary)) 5%,var(--color-surface))}.dropzone__input{position:absolute;inset:0;opacity:0;cursor:pointer}.dropzone__icon{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:var(--radius-md);background:var(--color-surface);border:var(--border-width) solid var(--color-border);color:var(--color-text-muted)}.dropzone__area--over .dropzone__icon,.dropzone__area:focus-within .dropzone__icon{color:var(--color-accent, var(--color-primary))}.dropzone__label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.dropzone__browse{color:var(--color-accent, var(--color-primary));text-decoration:underline;text-underline-offset:.18em}.dropzone__hint{font-size:var(--font-size-xs);color:var(--color-text-muted)}.dropzone__files{display:flex;flex-direction:column;gap:var(--space-2)}.dropzone__file{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md)}.dropzone__file--error{border-color:var(--color-danger-soft-text);border-color:color-mix(in oklab,var(--color-danger) 25%,var(--color-border));background:var(--color-danger-soft);background:color-mix(in oklab,var(--color-danger) 3%,var(--color-surface))}.dropzone__file-icon{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:var(--radius-sm);background:var(--color-surface-sunken);color:var(--color-text-muted);font-family:var(--font-family-mono);font-size:9px;text-transform:uppercase}.dropzone__file--done .dropzone__file-icon{background:var(--color-success-soft);color:var(--color-success)}.dropzone__file--error .dropzone__file-icon{background:var(--color-danger-soft);color:var(--color-danger)}.dropzone__file-body{display:flex;flex-direction:column;gap:3px;flex:1 1 auto;min-width:0}.dropzone__file-row{display:flex;align-items:baseline;gap:var(--space-2)}.dropzone__file-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropzone__file-size{margin-inline-start:auto;font-size:var(--font-size-2xs);color:var(--color-text-subtle);font-variant-numeric:tabular-nums}.dropzone__file-error{font-size:var(--font-size-2xs);color:var(--color-danger)}.dropzone__bar{appearance:none;display:block;width:100%;height:4px;border:none;border-radius:var(--radius-full);background:var(--color-border-subtle);overflow:hidden}.dropzone__bar::-webkit-progress-bar{background:var(--color-border-subtle)}.dropzone__bar::-webkit-progress-value{background:var(--color-primary);border-radius:var(--radius-full)}.dropzone__bar::-moz-progress-bar{background:var(--color-primary);border-radius:var(--radius-full)}.dropzone__remove{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;min-width:24px;min-height:24px;border-radius:var(--radius-sm);padding:0;background:none;border:none;color:var(--color-text-subtle);cursor:pointer}.dropzone__remove:hover{color:var(--color-danger)}.dropzone__remove:focus-visible{outline:var(--ring-width) solid var(--ring-color);outline-offset:2px}}@layer components{.slider{display:flex;flex-direction:column;gap:var(--space-2)}.slider__track,.slider__fill,.slider__ticks,.slider__thumb{display:none}.js .slider__track,.js .slider__fill,.js .slider__ticks,.js .slider__thumb{display:block}.js .slider__input{opacity:0}.slider__head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3)}.slider__label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.slider__value{font-family:var(--font-family-mono);font-size:var(--font-size-sm);font-variant-numeric:tabular-nums;color:var(--color-text-muted)}.slider__control{position:relative;height:20px;display:flex;align-items:center}.slider__input{position:absolute;inset:0;width:100%;height:100%;margin:0;cursor:pointer}.slider__track{position:absolute;inset-inline:0;height:5px;border-radius:var(--radius-full);background:var(--color-border-subtle);pointer-events:none}.slider__fill{position:absolute;inset-inline-start:0;width:var(--slider-pct, 0%);height:5px;border-radius:var(--radius-full);background:var(--color-primary);pointer-events:none}.slider__thumb{position:absolute;inset-inline-start:var(--slider-pct, 0%);margin-inline-start:-8.5px;width:17px;height:17px;border-radius:var(--radius-full);background:var(--color-surface);border:1.5px solid var(--color-primary);box-shadow:var(--shadow-sm);pointer-events:none}.slider__input:focus-visible~.slider__thumb{outline:var(--ring-width) solid var(--ring-color);outline-offset:var(--ring-offset)}.slider__scale{display:flex;justify-content:space-between;font-family:var(--font-family-mono);font-size:var(--font-size-2xs);color:var(--color-text-subtle)}.slider--range .slider__fill{inset-inline-start:var(--slider-from, 0%);width:calc(var(--slider-to, 100%) - var(--slider-from, 0%));border-radius:0}.slider__thumb--from{inset-inline-start:var(--slider-from, 0%)}.slider__thumb--to{inset-inline-start:var(--slider-to, 100%)}.slider--stepped .slider__fill{background:var(--color-accent, var(--color-primary))}.slider--stepped .slider__thumb{background:var(--color-accent, var(--color-primary));border-color:var(--color-accent, var(--color-primary))}.slider__ticks{position:absolute;inset-inline:0;display:flex;justify-content:space-between;align-items:center;pointer-events:none}.slider__tick{width:3px;height:3px;border-radius:var(--radius-full);background:var(--color-surface)}.slider__scale-item--active{color:var(--color-accent, var(--color-primary));font-weight:var(--font-weight-medium)}}@layer components{.segmented{position:relative;display:inline-flex;gap:2px;padding:3px;border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-sunken)}.js .segmented:before{content:"";position:absolute;top:3px;bottom:3px;inset-inline-start:3px;width:var(--segmented-w, 0px);border-radius:var(--radius-sm);background:var(--color-surface);box-shadow:var(--shadow-sm);transform:translate(var(--segmented-x, 0px));transition:transform var(--transition-base),width var(--transition-base);pointer-events:none}.js .segmented:not([data-segmented-ready]):before{display:none}@media(prefers-reduced-motion:reduce){.js .segmented:before{transition:none}}.segmented__item{position:relative;display:inline-flex}.segmented__input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer}.segmented__label{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);height:28px;padding-inline:var(--space-4);border-radius:var(--radius-sm);background:transparent;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-muted);white-space:nowrap;cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.segmented__input:checked+.segmented__label{background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-sm)}.js .segmented[data-segmented-ready] .segmented__input:checked+.segmented__label{background:transparent;box-shadow:none}.segmented__item{z-index:1}.segmented__input:focus-visible+.segmented__label{outline:var(--ring-width) solid var(--ring-color);outline-offset:1px}.segmented__input:disabled+.segmented__label{color:var(--color-disabled-text);cursor:not-allowed}.segmented--sm .segmented__label{height:24px;padding-inline:var(--space-3);font-size:var(--font-size-2xs)}.segmented--icon .segmented__label{width:28px;padding-inline:0}.segmented--block{display:flex}.segmented--block .segmented__item,.segmented--block .segmented__label{flex:1 1 0}}@layer components{.popover{position:relative;display:inline-block}.popover__panel{position:absolute;top:calc(100% + var(--space-2));inset-inline-start:50%;transform:translate(-50%);z-index:var(--z-popover);width:max-content;max-width:min(18rem,calc(100vw - 2 * var(--space-4)));border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-lg)}.popover__panel[hidden]{display:none}.popover__arrow{position:absolute;top:-5px;inset-inline-start:50%;transform:translate(-50%) rotate(45deg);width:9px;height:9px;background:var(--color-surface);border-inline-start:var(--border-width) solid var(--color-border);border-top:var(--border-width) solid var(--color-border)}.popover--start .popover__panel{inset-inline-start:0;transform:none}.popover--start .popover__arrow{inset-inline-start:var(--space-4);transform:rotate(45deg)}.popover--end .popover__panel{inset-inline-start:auto;inset-inline-end:0;transform:none}.popover--end .popover__arrow{inset-inline-start:auto;inset-inline-end:var(--space-4);transform:rotate(45deg)}.popover__header{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-3) var(--space-2)}.popover__title{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.popover__subtitle{font-size:var(--font-size-xs);color:var(--color-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.popover__body{padding:0 var(--space-3) var(--space-3);font-size:var(--font-size-sm);line-height:var(--line-height-base)}.popover__stats{display:flex;gap:var(--space-4);padding:0 var(--space-3) var(--space-3)}.popover__stat{display:flex;flex-direction:column}.popover__stat-value{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums}.popover__stat-label{font-size:var(--font-size-2xs);color:var(--color-text-subtle)}.popover__footer{display:flex;gap:var(--space-2);padding:var(--space-3);border-top:var(--border-width) solid var(--color-border-subtle)}.popover__footer .btn{flex:1 1 0}}@layer components{.timeline{display:flex;flex-direction:column;list-style:none;margin:0;padding:0}.timeline__item{display:flex;gap:var(--space-3)}.timeline__rail{display:flex;flex-direction:column;align-items:center;flex:0 0 auto}.timeline__marker{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:var(--radius-full);background:var(--color-surface-sunken);color:var(--color-text-muted)}.timeline__line{flex:1 1 auto;width:1.5px;margin-block:var(--space-1);background:var(--color-border)}.timeline__item:last-child .timeline__line{display:none}.timeline__body{display:flex;flex-direction:column;gap:1px;padding-bottom:var(--space-4)}.timeline__item:last-child .timeline__body{padding-bottom:0}.timeline__title{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.timeline__meta{font-size:var(--font-size-xs);color:var(--color-text-muted)}.timeline__item--done .timeline__marker{background:var(--color-success-soft);color:var(--color-success)}.timeline__item--current .timeline__marker{background:var(--color-warning-soft);color:var(--color-warning)}.timeline__item--pending .timeline__marker{background:var(--color-surface-sunken);border:1.5px dashed var(--color-border-strong)}.timeline__item--pending .timeline__line{background:none;border-inline-start:1.5px dashed var(--color-border)}.timeline__item--pending .timeline__title{color:var(--color-text-subtle)}}@layer components{.empty{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-8) var(--space-5);border:var(--border-width) solid var(--color-border-subtle);border-radius:var(--radius-md);background:var(--color-surface-alt);text-align:center}.empty__icon{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:var(--radius-md);background:var(--color-surface);border:var(--border-width) solid var(--color-border);box-shadow:var(--shadow-sm);color:var(--color-text-muted)}.empty__title{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);letter-spacing:var(--letter-spacing-tight)}.empty__text{max-width:34ch;font-size:var(--font-size-sm);line-height:var(--line-height-base);color:var(--color-text-muted);text-wrap:pretty}.empty__actions{display:flex;gap:var(--space-2);margin-top:var(--space-1)}.empty--inline{flex-direction:row;align-items:center;gap:var(--space-3);padding:var(--space-4);border-style:dashed;border-color:var(--color-border);background:var(--color-surface);text-align:start}.empty--inline .empty__icon{width:30px;height:30px;border:none;border-radius:var(--radius-sm);background:var(--color-surface-sunken);box-shadow:none;color:var(--color-text-subtle)}.empty--inline .empty__body{display:flex;flex-direction:column;gap:1px;flex:1 1 auto;min-width:0}.empty--inline .empty__title{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.empty--inline .empty__text{max-width:none;font-size:var(--font-size-xs)}.empty--inline .empty__actions{margin-top:0}.empty--error{border-style:solid;border-color:var(--color-danger-soft-text);border-color:color-mix(in oklab,var(--color-danger) 25%,var(--color-border));background:var(--color-danger-soft);background:color-mix(in oklab,var(--color-danger) 3%,var(--color-surface))}.empty--error .empty__icon{background:var(--color-danger-soft);color:var(--color-danger)}.empty__code{font-family:var(--font-family-mono);font-size:var(--font-size-xs);color:var(--color-text-muted)}.empty--page{min-height:60vh;justify-content:center;border:none;background:none}.empty--page .empty__title{font-size:var(--font-size-2xl)}}@layer components{.skeleton{position:relative;display:block;overflow:hidden;border-radius:var(--radius-full);background:var(--color-border-subtle)}.skeleton:after{content:"";position:absolute;inset:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,var(--color-surface-alt),transparent);background:linear-gradient(90deg,transparent,color-mix(in oklab,var(--color-border-subtle) 45%,var(--color-surface)),transparent);animation:skeleton-shimmer 1.3s linear infinite}.skeleton--w-xs{width:48px}.skeleton--w-sm{width:72px}.skeleton--w-md{width:104px}.skeleton--w-lg{width:144px}.skeleton--w-xl{width:200px}.skeleton--w-half{width:50%}.skeleton--w-full{width:100%}.skeleton--text{height:10px}.skeleton--title{height:12px;width:60%}.skeleton--block{height:104px;border-radius:var(--radius-sm)}.skeleton--avatar{width:40px;height:40px;flex:0 0 auto}.skeleton--circle{border-radius:var(--radius-full);aspect-ratio:1}.skeleton-stack{display:flex;flex-direction:column;gap:var(--space-2)}.skeleton-row{display:flex;align-items:center;gap:var(--space-3)}.skeleton-card{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-4);border:var(--border-width) solid var(--color-border-subtle);border-radius:var(--radius-md)}.skeleton-table{border:var(--border-width) solid var(--color-border-subtle);border-radius:var(--radius-md);overflow:hidden}.skeleton-table__head,.skeleton-table__row{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4)}.skeleton-table__head{background:var(--color-surface-alt);border-bottom:var(--border-width) solid var(--color-border-subtle)}.skeleton-table__head .skeleton{background:var(--color-border);height:8px}.skeleton-table__head .skeleton:after{display:none}.skeleton-table__row+.skeleton-table__row{border-top:var(--border-width) solid var(--color-border-subtle)}.skeleton[aria-hidden=true]{pointer-events:none}@keyframes skeleton-shimmer{to{transform:translate(100%)}}@media(prefers-reduced-motion:reduce){.skeleton:after{display:none}}[data-busy]{position:relative;pointer-events:none}[data-busy]:after{content:"";position:absolute;inset:0;z-index:1;border-radius:inherit;background:var(--color-surface);opacity:.55}[data-busy]:before{content:"";position:absolute;inset:0;z-index:2;transform:translate(-100%);background:linear-gradient(90deg,transparent,var(--color-surface-alt),transparent);background:linear-gradient(90deg,transparent,color-mix(in oklab,var(--color-border-subtle) 45%,var(--color-surface)),transparent);animation:skeleton-shimmer 1.3s linear infinite}@media(prefers-reduced-motion:reduce){[data-busy]:before{display:none}}}@layer components{.page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap;margin-bottom:var(--space-6)}.page-header__heading{min-width:0}.page-header__title{font-size:var(--font-size-3xl);letter-spacing:var(--letter-spacing-tighter);line-height:var(--line-height-tight)}.page-header__subtitle{margin-top:var(--space-1);color:var(--color-text-muted)}.page-header__actions{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}}@layer components{.stat{display:flex;flex-direction:column;gap:var(--space-1)}.stat__icon{display:inline-flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;margin-bottom:var(--space-2);border-radius:var(--radius-md);background:var(--color-surface-sunken);color:var(--color-text-muted)}.stat--primary .stat__icon{background:var(--color-surface-sunken);color:var(--color-accent, var(--color-primary))}.stat--success .stat__icon{background:var(--color-success-soft);color:var(--color-success-soft-text)}.stat--warning .stat__icon{background:var(--color-warning-soft);color:var(--color-warning-soft-text)}.stat--danger .stat__icon{background:var(--color-danger-soft);color:var(--color-danger-soft-text)}.stat--info .stat__icon{background:var(--color-info-soft);color:var(--color-info-soft-text)}.stat__label{font-size:var(--font-size-sm);color:var(--color-text-muted)}.stat__value{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);letter-spacing:var(--letter-spacing-tight);line-height:var(--line-height-tight);font-variant-numeric:tabular-nums}.stat__trend{margin-top:var(--space-1)}}@layer components{.toolbar{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap;margin-bottom:var(--space-4)}.toolbar__end{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap;margin-inline-start:auto}.toolbar .input-icon{flex:1 1 12rem;max-width:20rem}.toolbar .select{width:auto;min-width:11rem}.toolbar .datepicker{width:auto}.toolbar .datepicker__trigger{width:auto;min-width:15rem}.data-table__toolbar>.toolbar{display:contents}@media screen and (max-width:575px){.toolbar .input-icon,.toolbar .datepicker__trigger,.toolbar .select{flex-basis:100%;max-width:none;min-width:0;width:100%}.toolbar__end{margin-inline-start:0;width:100%}}}@layer components{.otp{display:flex;flex-direction:column;gap:var(--space-2)}.otp__value{height:var(--control-height-lg);padding-inline:var(--space-3);border:var(--border-width) solid var(--color-border-control, var(--color-border-strong));border-radius:var(--radius-md);background:var(--color-surface);font-family:var(--font-family-mono);font-size:var(--font-size-xl);letter-spacing:.3em;color:var(--color-text)}.otp__value:focus-visible{outline:var(--ring-width) solid var(--ring-color);outline-offset:1px;border-color:var(--color-primary)}.otp__cells{display:none;align-items:center;gap:var(--space-2)}.js .otp__cells{display:flex}.js .otp__value{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.otp__cell{width:var(--control-height-lg);height:calc(var(--control-height-lg) + 4px);padding:0;border:var(--border-width) solid var(--color-border-control, var(--color-border-strong));border-radius:var(--radius-md);background:var(--color-surface);text-align:center;font-family:var(--font-family-mono);font-size:var(--font-size-xl);font-weight:var(--font-weight-medium);color:var(--color-text);caret-color:var(--color-accent, var(--color-primary));transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.otp__cell:focus{outline:none;border-color:var(--color-accent, var(--color-primary));box-shadow:0 0 0 var(--ring-width) var(--ring-color)}.otp__cell[data-filled]{border-color:var(--color-border-strong);background:var(--color-surface-alt)}.otp__cell:disabled{background:var(--color-disabled);color:var(--color-disabled-text);cursor:not-allowed}.otp__sep{width:8px;height:var(--border-width-thick);border-radius:var(--radius-full);background:var(--color-border-strong)}.otp--invalid .otp__cell,.otp--invalid .otp__value{border-color:var(--color-danger)}.otp--invalid .otp__cell:focus{box-shadow:0 0 0 var(--ring-width) var(--color-danger)}@media screen and (max-width:575px){.otp__cells{gap:var(--space-1)}.otp__cell{width:clamp(2rem,10vw,var(--control-height-lg));font-size:var(--font-size-lg)}}}@layer components{.editor{display:flex;flex-direction:column;border:var(--border-width) solid var(--color-border-control, var(--color-border-strong));border-radius:var(--radius-md);background:var(--color-surface);overflow:hidden}.editor:focus-within{outline:var(--ring-width) solid var(--ring-color);outline-offset:1px;border-color:var(--color-primary)}.editor--invalid{border-color:var(--color-danger)}.editor--disabled{background:var(--color-surface-alt)}.editor__toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:2px;padding:var(--space-1) var(--space-2);border-bottom:var(--border-width) solid var(--color-border-subtle);background:var(--color-surface-sunken, var(--color-surface-alt))}.editor__tool,.editor__view{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:28px;padding-inline:var(--space-2);border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-muted);font:inherit;font-size:var(--font-size-sm);cursor:pointer}.editor__tool:hover,.editor__view:hover{background:var(--color-surface);color:var(--color-text)}.editor__tool[aria-pressed=true],.editor__view[aria-pressed=true]{background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-sm)}.editor__tool:focus-visible,.editor__view:focus-visible{outline:var(--ring-width) solid var(--ring-color);outline-offset:-2px}.editor__tool:disabled{color:var(--color-disabled-text);cursor:not-allowed}.editor__spacer{flex:1 1 auto}.editor__views{display:inline-flex;gap:2px}.editor .editor__source,.editor .editor__surface{border:none;border-radius:0;box-shadow:none;outline:none;resize:vertical}.editor__surface{min-height:8rem;padding:var(--space-3);overflow:auto}.editor__surface:empty:before{content:attr(data-placeholder);color:var(--color-text-subtle);pointer-events:none}.editor__preview{min-height:8rem;padding:var(--space-3)}.editor__preview[hidden]{display:none}html:not(.js) .editor__toolbar,html:not(.js) .editor__surface{display:none}.js .editor--html .editor__source,.js .editor[data-editor-view=preview] .editor__source,.js .editor[data-editor-view=preview] .editor__surface{display:none}.editor__preview-note{margin:0 0 var(--space-2);font-size:var(--font-size-xs);color:var(--color-text-muted)}.editor__preview-raw{margin:0;white-space:pre-wrap;font-family:var(--font-family-mono);font-size:var(--font-size-sm)}}
package/dist/ui.js CHANGED
@@ -1,14 +1,14 @@
1
1
  /*! @tundralibs/ui — MIT — https://github.com/TundraSoft/ui */
2
- (()=>{const u=new WeakMap;function n(a){const e=a.getAttribute("data-target");if(!e)return a;try{return document.querySelector(e)}catch{return null}}function t(a){if(!a||a.nodeType!==1)return;a.removeAttribute("aria-busy"),delete a.dataset.busy;const e=u.get(a);e&&clearTimeout(e)}function o(a){const e=n(a);!e||e.hasAttribute("data-load")||(e.setAttribute("aria-busy","true"),e.dataset.busy="",u.set(e,setTimeout(()=>t(e),15e3)))}document.addEventListener("click",a=>{if(a.button!==0||a.metaKey||a.ctrlKey||a.shiftKey||a.altKey)return;const e=a.target.closest?.("[data-action]");if(!e||e.tagName==="FORM")return;const d=a.target.closest("a[href]");d&&d!==e&&e.contains(d)||o(e)}),document.addEventListener("submit",a=>{const e=a.target;e?.matches?.("form[data-action]")&&o(e)}),document.addEventListener("rapid:swapped",a=>t(a.target)),document.addEventListener("rapid:error",a=>{t(a.target),document.querySelectorAll("[data-busy]").forEach(t)})})(),(()=>{const p="ui-sidebar-collapsed";try{localStorage.getItem(p)==="1"&&document.querySelectorAll(".sidebar").forEach(u=>{u.classList.add("sidebar--collapsed")})}catch{}document.addEventListener("click",u=>{const n=u.target.closest?.("[data-collapse]");if(!n)return;const t=n.getAttribute("data-collapse");if(!t||t==="#")return;const o=document.querySelector(t);if(!o)return;const a=o.classList.toggle("sidebar--collapsed");n.setAttribute("aria-expanded",String(!a));try{localStorage.setItem(p,a?"1":"0")}catch{}})})(),document.addEventListener("click",p=>{const u=p.target.closest("[data-dismiss]");u&&u.closest("[data-dismissible]")?.remove()}),document.documentElement.classList.add("js"),(()=>{function p(n){const t=n.querySelector("table");return t?[...t.querySelectorAll("tbody tr")]:[...n.querySelectorAll("[data-filter-item]")]}function u(n){const o=(n.querySelector("[data-table-search]")?.value||"").trim().toLowerCase(),a=[...n.querySelectorAll("[data-table-filter]")].filter(g=>!(g.type==="radio"||g.type==="checkbox")||g.checked).map(g=>g.value).filter(Boolean).map(g=>g.toLowerCase());let e=0;p(n).forEach(g=>{const b=g.textContent.toLowerCase(),S=(!o||b.includes(o))&&a.every(m=>b.includes(m));g.hidden=!S,S&&e++});const d=n.querySelector("[data-filter-empty]");d&&(d.hidden=e>0)}document.addEventListener("input",n=>{if(!n.target.matches("[data-table-search]"))return;const t=n.target.closest("[data-filter-scope]");t&&u(t)}),document.addEventListener("change",n=>{if(!n.target.matches("[data-table-filter]"))return;const t=n.target.closest("[data-filter-scope]");t&&u(t)})})(),(()=>{const p="ui-theme",u=document.documentElement;try{const n=localStorage.getItem(p);(n==="dark"||n==="light")&&(u.dataset.theme=n)}catch{}document.addEventListener("click",n=>{if(!n.target.closest("[data-theme-toggle]"))return;const o=matchMedia("(prefers-color-scheme: dark)").matches,e=(u.dataset.theme==="dark"||u.dataset.theme!=="light"&&o?"dark":"light")==="dark"?"light":"dark";u.dataset.theme=e;try{localStorage.setItem(p,e)}catch{}})})(),(()=>{const p=n=>n.hasAttribute("data-toggle-class");document.addEventListener("click",n=>{const t=n.target.closest?.("[data-toggle]");if(!t)return;const o=t.getAttribute("data-toggle"),a=o&&o!=="#"&&document.querySelector(o);if(!a)return;const e=t.getAttribute("aria-expanded")==="true";t.setAttribute("aria-expanded",String(!e)),p(t)||a.toggleAttribute("hidden",e),a.classList.toggle("is-open",!e)}),document.addEventListener("click",n=>{const t=n.target.closest?.("[data-toggle-close]");if(!t)return;const o=t.getAttribute("data-toggle-close"),a=o?document.querySelector(o):t.closest("[data-toggle-panel]");a&&u(a)}),document.addEventListener("keydown",n=>{n.key!=="Escape"||n.defaultPrevented||document.querySelectorAll("[data-toggle-class][aria-expanded='true']").forEach(t=>{const o=document.querySelector(t.getAttribute("data-toggle")??"");o&&(u(o),t.focus(),n.preventDefault())})});function u(n){n.classList.remove("is-open"),document.querySelectorAll('[data-toggle][aria-expanded="true"]').forEach(t=>{const o=t.getAttribute("data-toggle");o&&document.querySelector(o)===n&&(t.setAttribute("aria-expanded","false"),p(t)||n.setAttribute("hidden",""))})}})(),document.addEventListener("change",p=>{const u=p.target.closest?.("[data-view-target]");if(!u||u.type==="radio"&&!u.checked)return;const n=document.querySelector(u.getAttribute("data-view-target")??"");n&&n.setAttribute("data-view",u.value)}),(()=>{const p="[data-chart]",u=new Set,n=globalThis.matchMedia?.("(prefers-color-scheme: dark)");function t(){const b=document.documentElement.dataset.theme;return b==="dark"||b==="light"?b:n?.matches?"dark":"light"}function o(){const b=getComputedStyle(document.documentElement).getPropertyValue("--font-family-base").trim();return{theme:{mode:t(),tokens:!0},chart:b?{fontFamily:b,background:"transparent"}:{background:"transparent"}}}function a(b){if(b.dataset.chartInitialized||typeof globalThis.ApexCharts>"u")return;const S=JSON.parse(b.dataset.chart||"{}"),m=o(),A={...S,theme:{...m.theme,...S.theme||{}},chart:{...m.chart,...S.chart||{}}},E=new globalThis.ApexCharts(b,A);b.dataset.chartInitialized="true",b.chart=E,u.add(b),E.render()}function e(b){b.chart&&(b.chart.destroy(),delete b.chart,delete b.dataset.chartInitialized,u.delete(b))}function d(){for(const b of u){if(!b.isConnected){e(b);continue}b.chart.refreshTokens?.(),b.chart.updateOptions(o(),!1,!0)}}const g=()=>document.querySelectorAll(p).forEach(a);g(),addEventListener("load",g),document.addEventListener("rapid:swapped",g),new MutationObserver(b=>{for(const S of b){for(const m of S.addedNodes)m.nodeType===1&&(m.matches?.(p)&&a(m),m.querySelectorAll?.(p).forEach(a));for(const m of S.removedNodes)m.nodeType===1&&(m.matches?.(p)&&e(m),m.querySelectorAll?.(p).forEach(e))}}).observe(document.documentElement,{childList:!0,subtree:!0}),new MutationObserver(d).observe(document.documentElement,{attributes:!0,attributeFilter:["data-theme"]}),n?.addEventListener?.("change",d)})(),document.addEventListener("click",p=>{const u=p.target.closest("[data-toggle]");if(!u)return;const n=u.closest("[data-accordion-group]");n&&n.querySelectorAll('[data-toggle][aria-expanded="true"]').forEach(t=>{if(t===u)return;const o=t.getAttribute("data-toggle"),a=o&&document.querySelector(o);t.setAttribute("aria-expanded","false"),a?.setAttribute("hidden",""),a?.classList.remove("is-open")})}),(()=>{const p="data-active",u='<svg width="11" height="11" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg>',n=c=>c.querySelector("input[role='combobox']"),t=c=>Array.from(c.querySelectorAll('[role="option"]')).filter(i=>!i.hidden);function o(c){return t(c).findIndex(i=>i.hasAttribute(p))}function a(c){c.querySelectorAll(`[${p}]`).forEach(i=>i.removeAttribute(p)),n(c)?.removeAttribute("aria-activedescendant")}function e(c,i){const f=t(c);if(!f.length)return;const v=(i+f.length)%f.length;a(c),f[v].setAttribute(p,"");const r=n(c);r&&f[v].id&&r.setAttribute("aria-activedescendant",f[v].id);const l=f[v].closest(".combobox__list");if(!l)return;const h=f[v].offsetTop;h<l.scrollTop&&(l.scrollTop=h);const y=h+f[v].offsetHeight;y>l.scrollTop+l.clientHeight&&(l.scrollTop=y-l.clientHeight)}const d=c=>c.classList.contains("combobox--open");function g(c,i){const f=c.querySelector(".combobox__list"),v=n(c);f&&(f.hidden=!i),v&&v.setAttribute("aria-expanded",i?"true":"false"),c.classList.toggle("combobox--open",!!i),i||a(c)}function b(c){const i=n(c),f=c.querySelector(".combobox__list");if(!i||!f)return;const v=i.value.trim().toLowerCase();let r=0;c.querySelectorAll('[role="option"]').forEach(y=>{const _=y.querySelector(".combobox__option-label")?.textContent??y.textContent,k=!v||_.toLowerCase().includes(v);y.hidden=!k,k&&r++}),a(c),c.querySelectorAll(".combobox__group").forEach(y=>{let _=y.nextElementSibling,k=!1;for(;_&&!_.classList.contains("combobox__group")&&!_.classList.contains("combobox__hints");){if(_.matches('[role="option"]')&&!_.hidden){k=!0;break}_=_.nextElementSibling}y.hidden=!k});const l=c.querySelector(".combobox__count");l&&(l.textContent=r===1?"1 match":`${r} matches`);let h=f.querySelector(".combobox__empty");h||(h=document.createElement("div"),h.className="combobox__empty",h.textContent="No matches.",f.insertBefore(h,f.querySelector(".combobox__hints"))),h.hidden=r>0}const S=new WeakMap;function m(c){const i=n(c),f=i?.getAttribute("data-combobox-action"),v=i?.getAttribute("data-combobox-target");if(f&&v&&globalThis.rapid?.swap){clearTimeout(S.get(c)),S.set(c,setTimeout(()=>{const r=`${f}${f.includes("?")?"&":"?"}q=${encodeURIComponent(i.value.trim())}`;globalThis.rapid.swap(r,v).then(()=>a(c))},150));return}b(c)}function A(c,i){const f=n(c),v=c.querySelector("[data-combobox-value]"),r=(i.querySelector(".combobox__option-label")?.textContent??i.textContent).trim();f&&(f.value=r),v&&(v.value=i.getAttribute("data-value")??r),c.querySelectorAll('[role="option"]').forEach(l=>l.setAttribute("aria-selected",String(l===i))),g(c,!1),c.dispatchEvent(new CustomEvent("combobox:pick",{bubbles:!0,detail:{value:v?.value??r,label:r}}))}function E(c,i){const f=c.querySelector(".combobox__field"),v=n(c),r=i.getAttribute("data-value")??"",l=(i.querySelector(".combobox__option-label")?.textContent??i.textContent).trim(),h=c.getAttribute("data-combobox-name")??"";if(!f||!v||Array.from(f.querySelectorAll(".combobox__token input")).some(w=>w.value===r))return;const y=document.createElement("span");y.className="combobox__token",y.append(l);const _=document.createElement("button");_.type="button",_.className="combobox__token-remove",_.setAttribute("aria-label",`Remove ${l}`),_.setAttribute("data-combobox-remove",r),_.innerHTML=u;const k=document.createElement("input");k.type="hidden",k.name=h,k.value=r,y.append(_,k),f.insertBefore(y,v),i.setAttribute("aria-selected","true"),v.value="",m(c),v.focus()}function s(c,i){c.querySelectorAll(".combobox__token").forEach(f=>{f.querySelector("input")?.value===i&&f.remove()}),c.querySelectorAll(`[role="option"][data-value="${CSS.escape(i)}"]`).forEach(f=>f.setAttribute("aria-selected","false"))}document.addEventListener("keydown",c=>{const i=c.target.closest?.("[data-combobox]");if(i){if(c.key==="ArrowDown"||c.key==="ArrowUp")c.preventDefault(),g(i,!0),e(i,o(i)+(c.key==="ArrowDown"?1:-1));else if(c.key==="Enter"){const f=o(i),v=t(i);f>=0&&v[f]&&(c.preventDefault(),v[f].click())}else if(c.key==="Escape"){if(!d(i))return;c.preventDefault(),c.stopPropagation(),g(i,!1)}else if(c.key==="Backspace"&&i.classList.contains("combobox--multi")&&c.target.matches("input[role='combobox']")&&!c.target.value){const f=i.querySelector(".combobox__field .combobox__token:last-of-type input");f&&s(i,f.value)}}}),document.addEventListener("input",c=>{const i=c.target.closest?.("[data-combobox]");if(!i||!c.target.matches("input[role='combobox']"))return;const f=i.querySelector("[data-combobox-value]");f&&(f.value=""),m(i),g(i,!0)}),document.addEventListener("focusin",c=>{const i=c.target.closest?.("[data-combobox]");i&&c.target.matches("input[role='combobox']")&&g(i,!0)}),document.addEventListener("click",c=>{const i=c.target.closest?.("[data-combobox] .combobox__field");if(i&&!c.target.closest("input, button")){const r=i.closest("[data-combobox]"),l=n(r);l&&!l.disabled&&(d(r)?g(r,!1):(l.focus(),g(r,!0)));return}const f=c.target.closest?.("[data-combobox] [role='option']");if(f){if(f.getAttribute("aria-disabled")==="true")return;const r=f.closest("[data-combobox]");r.classList.contains("combobox--multi")?E(r,f):A(r,f);return}const v=c.target.closest?.("[data-combobox-remove]");if(v){const r=v.closest("[data-combobox]");r&&s(r,v.getAttribute("data-combobox-remove")??"");return}document.querySelectorAll("[data-combobox].combobox--open").forEach(r=>{c.target.closest?.("[data-combobox]")!==r&&g(r,!1)})})})(),(()=>{const p="data-active",u=new WeakMap,n=s=>s.querySelector(".command__input"),t=s=>Array.from(s.querySelectorAll('[role="option"]')).filter(c=>!c.hidden);function o(s){return t(s).findIndex(c=>c.hasAttribute(p))}function a(s){s.querySelectorAll(`[${p}]`).forEach(c=>c.removeAttribute(p)),n(s)?.removeAttribute("aria-activedescendant")}function e(s,c){const i=t(s);if(!i.length)return;const f=(c+i.length)%i.length;a(s),i[f].setAttribute(p,"");const v=n(s);v&&i[f].id&&v.setAttribute("aria-activedescendant",i[f].id);const r=i[f].closest(".command__list");if(!r)return;const l=i[f].offsetTop;l<r.scrollTop&&(r.scrollTop=l);const h=l+i[f].offsetHeight;h>r.scrollTop+r.clientHeight&&(r.scrollTop=h-r.clientHeight)}function d(s){const c=n(s),i=s.querySelector(".command__list");if(!c||!i)return;const f=c.value.trim().toLowerCase();let v=0;s.querySelectorAll('[role="option"]').forEach(h=>{const y=h.querySelector(".command__item-label")?.textContent??h.textContent,_=!f||y.toLowerCase().includes(f);h.hidden=!_,_&&v++}),a(s),s.querySelectorAll(".command__group").forEach(h=>{let y=h.nextElementSibling,_=!1;for(;y&&!y.classList.contains("command__group");){if(y.matches('[role="option"]')&&!y.hidden){_=!0;break}y=y.nextElementSibling}h.hidden=!_});const r=s.querySelector(".command__count");r&&(r.textContent=v===1?"1 result":`${v} results`);let l=i.querySelector(".command__empty");l||(l=document.createElement("div"),l.className="command__empty",l.textContent="Nothing matches that.",i.append(l)),l.hidden=v>0,v&&e(s,0)}const g=new WeakMap;function b(s){const c=n(s),i=c?.getAttribute("data-command-action"),f=c?.getAttribute("data-command-target");if(i&&f&&globalThis.rapid?.swap){clearTimeout(g.get(s)),g.set(s,setTimeout(()=>{const v=`${i}${i.includes("?")?"&":"?"}q=${encodeURIComponent(c.value.trim())}`;globalThis.rapid.swap(v,f).then(()=>{a(s),t(s).length&&e(s,0)})},150));return}d(s)}const S=s=>!s.classList.contains("command--inline");function m(s){if(!S(s))return;s.hidden=!0;const c=u.get(s);u.delete(s),c?.isConnected&&c.focus()}function A(s){const c=n(s);c&&c.value?(c.value="",c.dispatchEvent(new Event("input",{bubbles:!0}))):m(s)}function E(s,c){u.set(s,c??document.activeElement),s.hidden=!1,n(s)?.focus()}document.addEventListener("keydown",s=>{if(s.key==="k"&&(s.metaKey||s.ctrlKey)){const i=document.querySelector("[data-command]:not(.command--inline)");if(!i)return;s.preventDefault(),E(i);return}const c=s.target.closest?.("[data-command]");if(c){if(s.key==="ArrowDown"||s.key==="ArrowUp")s.preventDefault(),e(c,o(c)+(s.key==="ArrowDown"?1:-1));else if(s.key==="Enter"){const i=o(c),f=t(c);i>=0&&f[i]&&(s.preventDefault(),f[i].click())}else if(s.key==="Escape"){if(!S(c)&&!n(c)?.value)return;s.preventDefault(),s.stopPropagation(),A(c)}else if(s.key==="Tab"&&S(c)){const i=Array.from(c.querySelectorAll("input, button, a[href], [tabindex]:not([tabindex='-1'])")).filter(r=>!r.hidden&&r.offsetParent!==null);if(!i.length)return;const f=i[0],v=i[i.length-1];s.shiftKey&&document.activeElement===f?(s.preventDefault(),v.focus()):!s.shiftKey&&document.activeElement===v&&(s.preventDefault(),f.focus())}}}),document.addEventListener("input",s=>{const c=s.target.closest?.("[data-command]");c&&s.target.matches(".command__input")&&b(c)}),document.addEventListener("click",s=>{const c=s.target.closest?.("[data-command-open]");if(c){const r=c.getAttribute("data-command-open"),l=r?document.querySelector(r):document.querySelector("[data-command]:not(.command--inline)");l&&(s.preventDefault(),E(l,c));return}const i=s.target.closest?.("[data-command-dismiss]");if(i){const r=i.closest("[data-command]");r&&A(r);return}const f=s.target.closest?.("[data-command] [role='option']");if(f){const r=f.closest("[data-command]");r&&S(r)&&m(r);return}const v=s.target.closest?.("[data-command]:not(.command--inline)");v&&!s.target.closest(".command__sheet")&&m(v)})})(),(()=>{function p(t){const o=t.querySelector("[data-bulk-bar]"),a=t.querySelectorAll("[data-select-row]"),e=t.querySelectorAll("[data-select-row]:checked").length;if(o){o.hidden=e===0;const g=o.querySelector("[data-bulk-count]");g&&(g.textContent=e===1?"1 row selected":`${e} rows selected`)}const d=t.querySelector("[data-select-all]");d&&(d.checked=e>0&&e===a.length,d.indeterminate=e>0&&e<a.length)}function u(t,o){t.checked=o,t.closest("tr")?.classList.toggle("data-table__row--selected",o)}document.addEventListener("change",t=>{const o=t.target.closest?.(".data-table");if(o){if(t.target.matches("[data-select-all]"))o.querySelectorAll("[data-select-row]").forEach(a=>u(a,t.target.checked));else if(t.target.matches("[data-select-row]"))u(t.target,t.target.checked);else return;p(o)}}),document.addEventListener("click",t=>{const o=t.target.closest?.("[data-bulk-clear]");if(!o)return;const a=o.closest(".data-table");a&&(a.querySelectorAll("[data-select-row]").forEach(e=>u(e,!1)),p(a))});function n(){document.querySelectorAll(".data-table").forEach(p)}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",n):n(),document.addEventListener("rapid:swapped",n)})(),(()=>{const p=["January","February","March","April","May","June","July","August","September","October","November","December"],u=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],n=m=>String(m).padStart(2,"0"),t=(m,A,E)=>`${m}-${n(A+1)}-${n(E)}`,o=m=>{const A=/^(\d{4})-(\d{2})-(\d{2})$/.exec(m??"");return A?`${Number(A[3])} ${u[Number(A[2])-1]} ${A[1]}`:""},a=()=>{const m=new Date;return t(m.getFullYear(),m.getMonth(),m.getDate())};function e(m,A,E){const s=m.querySelector(".datepicker__panel"),c=m.querySelector("[data-datepicker-trigger]");s&&(s.hidden=!A),m.classList.toggle("datepicker--open",!!A),c&&(c.setAttribute("aria-expanded",A?"true":"false"),!A&&E&&c.focus())}function d(m){return{range:m.hasAttribute("data-datepicker-range"),min:m.getAttribute("data-datepicker-min")||"",max:m.getAttribute("data-datepicker-max")||"",today:m.getAttribute("data-datepicker-today")||a(),start:m.querySelector("[data-datepicker-start]")?.value||"",end:m.querySelector("[data-datepicker-end]")?.value||""}}function g(m,A,E){const s=d(m),c=m.querySelector(".datepicker__days"),i=m.querySelector(".datepicker__month");if(!c)return;c.replaceChildren(),i&&(i.textContent=`${p[E]} ${A}`),m.setAttribute("data-datepicker-view",`${A}-${E}`);const f=new Date(A,E+1,0).getDate(),v=(new Date(A,E,1).getDay()+6)%7,r=new Date(A,E,0).getDate(),l=Math.ceil((v+f)/7)*7;for(let h=0;h<l;h++){const y=h-v+1;let _=A,k=E,w=y;y<1?(k=E-1,w=r+y,k<0&&(k=11,_--)):y>f&&(k=E+1,w=y-f,k>11&&(k=0,_++));const q=t(_,k,w),x=document.createElement("button");x.type="button",x.className="datepicker__day",(y<1||y>f)&&x.classList.add("datepicker__day--outside"),q===s.today&&(x.classList.add("datepicker__day--today"),x.setAttribute("aria-current","date")),s.start&&s.end&&q>s.start&&q<s.end&&x.classList.add("datepicker__day--in-range"),q===s.start&&x.classList.add("datepicker__day--start"),q===s.end&&x.classList.add("datepicker__day--end"),(q===s.start||q===s.end)&&x.setAttribute("aria-pressed","true"),(s.min&&q<s.min||s.max&&q>s.max)&&(x.disabled=!0),x.setAttribute("data-day",q),x.setAttribute("aria-label",`${w} ${p[k]} ${_}`),x.textContent=String(w),c.append(x)}}function b(m){const A=m.getAttribute("data-datepicker-view");if(A){const[c,i]=A.split("-").map(Number);return[c,i]}const E=d(m),s=E.start||E.today;return[Number(s.slice(0,4)),Number(s.slice(5,7))-1]}function S(m,A){const E=d(m),s=m.querySelector("[data-datepicker-start]"),c=m.querySelector("[data-datepicker-end]"),i=m.querySelector("[data-datepicker-label]");let f=A,v="";E.range&&E.start&&!E.end&&A>=E.start&&(f=E.start,v=A),s&&(s.value=f),c&&(c.value=v),i&&(i.textContent=E.range?`${o(f)||"Start date"} \u2013 ${o(v)||"End date"}`:o(f)),s?.dispatchEvent(new Event("change",{bubbles:!0}));const[r,l]=b(m);g(m,r,l),(!E.range||v)&&e(m,!1,!0)}document.addEventListener("click",m=>{const A=m.target.closest?.("[data-datepicker-trigger]");if(A){const s=A.closest("[data-datepicker]"),c=s?.querySelector(".datepicker__panel");c&&e(s,c.hidden);return}const E=m.target.closest?.("[data-datepicker]");if(E&&!E.hasAttribute("data-datepicker-server")){const s=m.target.closest("button[data-day]");if(s&&!s.disabled){S(E,s.getAttribute("data-day"));return}const c=m.target.closest("button[data-month]");if(c){const[i,f]=c.getAttribute("data-month").split("-").map(Number);g(E,i,f);const v={"prev-year":[i-1,f],prev:f===0?[i-1,11]:[i,f-1],next:f===11?[i+1,0]:[i,f+1],"next-year":[i+1,f]};E.querySelectorAll("button[data-month][data-nav]").forEach(r=>{const l=v[r.getAttribute("data-nav")];l&&r.setAttribute("data-month",`${l[0]}-${l[1]}`)});return}}document.querySelectorAll("[data-datepicker]:not(.datepicker--inline) .datepicker__panel:not([hidden])").forEach(s=>{const c=s.closest("[data-datepicker]");c!==E&&e(c,!1)})}),document.addEventListener("keydown",m=>{if(m.key!=="Escape"||m.defaultPrevented)return;const A=m.target.closest?.("[data-datepicker]"),E=A?.querySelector(".datepicker__panel");!E||E.hidden||A.classList.contains("datepicker--inline")||(m.preventDefault(),e(A,!1,!0))})})(),(()=>{const p=()=>document.querySelectorAll(".dropdown__panel.is-open"),u=e=>document.querySelector(`[data-toggle="#${CSS.escape(e.id)}"]`),n=".data-table__scroll, [data-dropdown-clip]";function t(e,d){if(!d?.closest(n))return;const g=d.getBoundingClientRect();e.classList.add("dropdown__panel--fixed");const b=e.offsetWidth;let m=e.classList.contains("dropdown__panel--end")?g.right-b:g.left;m=Math.max(8,Math.min(m,innerWidth-b-8));let A=g.bottom+4;A+e.offsetHeight>innerHeight-8&&(A=Math.max(8,g.top-e.offsetHeight-4)),e.style.left=`${m}px`,e.style.top=`${A}px`}function o(e,d){e.setAttribute("hidden",""),e.classList.remove("is-open","dropdown__panel--fixed"),e.style.removeProperty("left"),e.style.removeProperty("top"),d?.setAttribute("aria-expanded","false")}document.addEventListener("click",e=>{p().forEach(d=>{const g=u(d);if(g?.contains(e.target)){d.classList.contains("dropdown__panel--fixed")||t(d,g);return}if(d.contains(e.target)){const b=e.target.closest("a[href], button, [data-action]");if(!b||b.hasAttribute("data-toggle"))return}o(d,g)})}),document.addEventListener("keydown",e=>{if(e.key!=="Escape"||e.defaultPrevented)return;const d=e.target.closest?.(".dropdown"),g=d?d.querySelectorAll(".dropdown__panel.is-open"):p();let b=!1;g.forEach(S=>{const m=u(S);o(S,m),m?.focus(),b=!0}),b&&e.preventDefault()});const a=()=>{document.querySelectorAll(".dropdown__panel--fixed.is-open").forEach(e=>o(e,u(e)))};addEventListener("scroll",a,{capture:!0,passive:!0}),addEventListener("resize",a,{passive:!0})})(),(()=>{for(const p of["dragenter","dragover"])document.addEventListener(p,u=>{const n=u.target.closest?.(".dropzone__area");n&&(u.preventDefault(),n.classList.add("dropzone__area--over"))});for(const p of["dragleave","drop"])document.addEventListener(p,u=>{u.target.closest?.(".dropzone__area")?.classList.remove("dropzone__area--over")});document.addEventListener("click",p=>{const u=p.target.closest?.("[data-dropzone-remove]");u&&u.closest(".dropzone__file")?.remove()})})(),(()=>{const p={bold:["**","**"],italic:["_","_"],strike:["~~","~~"],code:["`","`"]},u={heading:"## ",quote:"> ",ul:"- ",ol:"1. "},n={heading:"h2",quote:"blockquote",code:"pre"},t={bold:"bold",italic:"italic",underline:"underline",strike:"strikeThrough"},o={ul:"insertUnorderedList",ol:"insertOrderedList"},a=r=>r.querySelector(".editor__source"),e=r=>r.querySelector("[data-editor-surface]"),d=r=>r.getAttribute("data-editor-mode")==="html";function g(r,l,h,y,_,k){r.value=r.value.slice(0,l)+y+r.value.slice(h),r.setSelectionRange(l+_,l+k),r.focus(),r.dispatchEvent(new Event("input",{bubbles:!0}))}function b(r){const l=r.value.lastIndexOf(`
3
- `,r.selectionStart-1)+1,h=r.value.indexOf(`
4
- `,Math.max(r.selectionEnd,l)),y=r.selectionEnd>r.selectionStart&&r.value[r.selectionEnd-1]===`
5
- `?r.selectionEnd-1:h===-1?r.value.length:h;return[l,y]}const S=/^(#{1,6} |> |- |\* |\d+\. )+/;function m(r,l){const h=r.selectionStart,y=r.selectionEnd,_=r.value.slice(h,y);if(p[l]){const[L,C]=p[l],$=l==="code"&&_.includes(`
6
- `),T=$?"```\n":L,D=$?"\n```":C;if(_.startsWith(T)&&_.endsWith(D)&&_.length>=T.length+D.length){const N=_.slice(T.length,_.length-D.length);g(r,h,y,N,0,N.length);return}if(r.value.slice(h-T.length,h)===T&&r.value.slice(y,y+D.length)===D){g(r,h-T.length,y+D.length,_,0,_.length);return}const M=_||l;g(r,h,y,T+M+D,T.length,T.length+M.length);return}if(l==="link"||l==="image"){const C=`${l==="image"?"!":""}[${_||(l==="image"?"alt text":"text")}](url)`;g(r,h,y,C,C.length-4,C.length-1);return}if(l==="hr"){const C=`${h===0||r.value[h-1]===`
2
+ (()=>{const b=new WeakMap;function o(n){const t=n.getAttribute("data-target");if(!t)return n;try{return document.querySelector(t)}catch{return null}}function a(n){if(!n||n.nodeType!==1)return;n.removeAttribute("aria-busy"),delete n.dataset.busy;const t=b.get(n);t&&clearTimeout(t)}function e(n){const t=o(n);!t||t.hasAttribute("data-load")||(t.setAttribute("aria-busy","true"),t.dataset.busy="",b.set(t,setTimeout(()=>a(t),15e3)))}document.addEventListener("click",n=>{if(n.button!==0||n.metaKey||n.ctrlKey||n.shiftKey||n.altKey)return;const t=n.target.closest?.("[data-action]");if(!t||t.tagName==="FORM")return;const i=n.target.closest("a[href]");i&&i!==t&&t.contains(i)||e(t)}),document.addEventListener("submit",n=>{const t=n.target;t?.matches?.("form[data-action]")&&e(t)}),document.addEventListener("rapid:swapped",n=>a(n.target)),document.addEventListener("rapid:error",n=>{a(n.target),document.querySelectorAll("[data-busy]").forEach(a)})})(),(()=>{const y="ui-sidebar-collapsed";try{localStorage.getItem(y)==="1"&&document.querySelectorAll(".sidebar").forEach(b=>{b.classList.add("sidebar--collapsed")})}catch{}document.addEventListener("click",b=>{const o=b.target.closest?.("[data-collapse]");if(!o)return;const a=o.getAttribute("data-collapse");if(!a||a==="#")return;const e=document.querySelector(a);if(!e)return;const n=e.classList.toggle("sidebar--collapsed");o.setAttribute("aria-expanded",String(!n));try{localStorage.setItem(y,n?"1":"0")}catch{}})})(),document.addEventListener("click",y=>{const b=y.target.closest("[data-dismiss]");b&&b.closest("[data-dismissible]")?.remove()}),document.documentElement.classList.add("js"),(()=>{function y(o){const a=o.querySelector("table");return a?[...a.querySelectorAll("tbody tr")]:[...o.querySelectorAll("[data-filter-item]")]}function b(o){const e=(o.querySelector("[data-table-search]")?.value||"").trim().toLowerCase(),n=[...o.querySelectorAll("[data-table-filter]")].filter(d=>!(d.type==="radio"||d.type==="checkbox")||d.checked).map(d=>d.value).filter(Boolean).map(d=>d.toLowerCase());let t=0;y(o).forEach(d=>{const m=d.textContent.toLowerCase(),u=(!e||m.includes(e))&&n.every(c=>m.includes(c));d.hidden=!u,u&&t++});const i=o.querySelector("[data-filter-empty]");i&&(i.hidden=t>0)}document.addEventListener("input",o=>{if(!o.target.matches("[data-table-search]"))return;const a=o.target.closest("[data-filter-scope]");a&&b(a)}),document.addEventListener("change",o=>{if(!o.target.matches("[data-table-filter]"))return;const a=o.target.closest("[data-filter-scope]");a&&b(a)})})(),(()=>{const y="ui-theme",b=document.documentElement;try{const o=localStorage.getItem(y);(o==="dark"||o==="light")&&(b.dataset.theme=o)}catch{}document.addEventListener("click",o=>{if(!o.target.closest("[data-theme-toggle]"))return;const e=matchMedia("(prefers-color-scheme: dark)").matches,t=(b.dataset.theme==="dark"||b.dataset.theme!=="light"&&e?"dark":"light")==="dark"?"light":"dark";b.dataset.theme=t;try{localStorage.setItem(y,t)}catch{}})})(),(()=>{const y=o=>o.hasAttribute("data-toggle-class");document.addEventListener("click",o=>{const a=o.target.closest?.("[data-toggle]");if(!a)return;const e=a.getAttribute("data-toggle"),n=e&&e!=="#"&&document.querySelector(e);if(!n)return;const t=a.getAttribute("aria-expanded")==="true";a.setAttribute("aria-expanded",String(!t)),y(a)||n.toggleAttribute("hidden",t),n.classList.toggle("is-open",!t)}),document.addEventListener("click",o=>{const a=o.target.closest?.("[data-toggle-close]");if(!a)return;const e=a.getAttribute("data-toggle-close"),n=e?document.querySelector(e):a.closest("[data-toggle-panel]");n&&b(n)}),document.addEventListener("keydown",o=>{o.key!=="Escape"||o.defaultPrevented||document.querySelectorAll("[data-toggle-class][aria-expanded='true']").forEach(a=>{const e=document.querySelector(a.getAttribute("data-toggle")??"");e&&(b(e),a.focus(),o.preventDefault())})});function b(o){o.classList.remove("is-open"),document.querySelectorAll('[data-toggle][aria-expanded="true"]').forEach(a=>{const e=a.getAttribute("data-toggle");e&&document.querySelector(e)===o&&(a.setAttribute("aria-expanded","false"),y(a)||o.setAttribute("hidden",""))})}})(),document.addEventListener("change",y=>{const b=y.target.closest?.("[data-view-target]");if(!b||b.type==="radio"&&!b.checked)return;const o=document.querySelector(b.getAttribute("data-view-target")??"");o&&o.setAttribute("data-view",b.value)}),(()=>{const y="[data-chart]",b=new Set,o=globalThis.matchMedia?.("(prefers-color-scheme: dark)");function a(){const m=document.documentElement.dataset.theme;return m==="dark"||m==="light"?m:o?.matches?"dark":"light"}function e(){const m=getComputedStyle(document.documentElement).getPropertyValue("--font-family-base").trim();return{theme:{mode:a(),tokens:!0},chart:m?{fontFamily:m,background:"transparent"}:{background:"transparent"}}}function n(m){if(m.dataset.chartInitialized||typeof globalThis.ApexCharts>"u")return;const u=JSON.parse(m.dataset.chart||"{}"),c=e(),h={...u,theme:{...c.theme,...u.theme||{}},chart:{...c.chart,...u.chart||{}}},_=new globalThis.ApexCharts(m,h);m.dataset.chartInitialized="true",m.chart=_,b.add(m),_.render()}function t(m){m.chart&&(m.chart.destroy(),delete m.chart,delete m.dataset.chartInitialized,b.delete(m))}function i(){for(const m of b){if(!m.isConnected){t(m);continue}m.chart.refreshTokens?.(),m.chart.updateOptions(e(),!1,!0)}}const d=()=>document.querySelectorAll(y).forEach(n);d(),addEventListener("load",d),document.addEventListener("rapid:swapped",d),new MutationObserver(m=>{for(const u of m){for(const c of u.addedNodes)c.nodeType===1&&(c.matches?.(y)&&n(c),c.querySelectorAll?.(y).forEach(n));for(const c of u.removedNodes)c.nodeType===1&&(c.matches?.(y)&&t(c),c.querySelectorAll?.(y).forEach(t))}}).observe(document.documentElement,{childList:!0,subtree:!0}),new MutationObserver(i).observe(document.documentElement,{attributes:!0,attributeFilter:["data-theme"]}),o?.addEventListener?.("change",i)})(),document.addEventListener("click",y=>{const b=y.target.closest("[data-toggle]");if(!b)return;const o=b.closest("[data-accordion-group]");o&&o.querySelectorAll('[data-toggle][aria-expanded="true"]').forEach(a=>{if(a===b)return;const e=a.getAttribute("data-toggle"),n=e&&document.querySelector(e);a.setAttribute("aria-expanded","false"),n?.setAttribute("hidden",""),n?.classList.remove("is-open")})}),(()=>{const y="data-active",b='<svg width="11" height="11" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg>',o=r=>r.querySelector("input[role='combobox']"),a=r=>Array.from(r.querySelectorAll('[role="option"]')).filter(f=>!f.hidden);function e(r){return a(r).findIndex(f=>f.hasAttribute(y))}function n(r){r.querySelectorAll(`[${y}]`).forEach(f=>f.removeAttribute(y)),o(r)?.removeAttribute("aria-activedescendant")}function t(r,f){const g=a(r);if(!g.length)return;const A=(f+g.length)%g.length;n(r),g[A].setAttribute(y,"");const s=o(r);s&&g[A].id&&s.setAttribute("aria-activedescendant",g[A].id);const p=g[A].closest(".combobox__list");if(!p)return;const v=g[A].offsetTop;v<p.scrollTop&&(p.scrollTop=v);const E=v+g[A].offsetHeight;E>p.scrollTop+p.clientHeight&&(p.scrollTop=E-p.clientHeight)}const i=r=>r.classList.contains("combobox--open");function d(r,f){const g=r.querySelector(".combobox__list"),A=o(r);g&&(g.hidden=!f),A&&A.setAttribute("aria-expanded",f?"true":"false"),r.classList.toggle("combobox--open",!!f),f||n(r)}function m(r){const f=o(r),g=r.querySelector(".combobox__list");if(!f||!g)return;const A=f.value.trim().toLowerCase();let s=0;r.querySelectorAll('[role="option"]').forEach(E=>{const S=E.querySelector(".combobox__option-label")?.textContent??E.textContent,x=!A||S.toLowerCase().includes(A);E.hidden=!x,x&&s++}),n(r),r.querySelectorAll(".combobox__group").forEach(E=>{let S=E.nextElementSibling,x=!1;for(;S&&!S.classList.contains("combobox__group")&&!S.classList.contains("combobox__hints");){if(S.matches('[role="option"]')&&!S.hidden){x=!0;break}S=S.nextElementSibling}E.hidden=!x});const p=r.querySelector(".combobox__count");p&&(p.textContent=s===1?"1 match":`${s} matches`);let v=g.querySelector(".combobox__empty");v||(v=document.createElement("div"),v.className="combobox__empty",v.textContent="No matches.",g.insertBefore(v,g.querySelector(".combobox__hints"))),v.hidden=s>0}const u=new WeakMap;function c(r){const f=o(r),g=f?.getAttribute("data-combobox-action"),A=f?.getAttribute("data-combobox-target");if(g&&A&&globalThis.rapid?.swap){clearTimeout(u.get(r)),u.set(r,setTimeout(()=>{const s=`${g}${g.includes("?")?"&":"?"}q=${encodeURIComponent(f.value.trim())}`;globalThis.rapid.swap(s,A).then(()=>n(r))},150));return}m(r)}function h(r,f){const g=o(r),A=r.querySelector("[data-combobox-value]"),s=(f.querySelector(".combobox__option-label")?.textContent??f.textContent).trim();g&&(g.value=s),A&&(A.value=f.getAttribute("data-value")??s),r.querySelectorAll('[role="option"]').forEach(p=>p.setAttribute("aria-selected",String(p===f))),d(r,!1),r.dispatchEvent(new CustomEvent("combobox:pick",{bubbles:!0,detail:{value:A?.value??s,label:s}}))}function _(r,f){const g=r.querySelector(".combobox__field"),A=o(r),s=f.getAttribute("data-value")??"",p=(f.querySelector(".combobox__option-label")?.textContent??f.textContent).trim(),v=r.getAttribute("data-combobox-name")??"";if(!g||!A||Array.from(g.querySelectorAll(".combobox__token input")).some(w=>w.value===s))return;const E=document.createElement("span");E.className="combobox__token",E.append(p);const S=document.createElement("button");S.type="button",S.className="combobox__token-remove",S.setAttribute("aria-label",`Remove ${p}`),S.setAttribute("data-combobox-remove",s),S.innerHTML=b;const x=document.createElement("input");x.type="hidden",x.name=v,x.value=s,E.append(S,x),g.insertBefore(E,A),f.setAttribute("aria-selected","true"),A.value="",c(r),A.focus()}function l(r,f){r.querySelectorAll(".combobox__token").forEach(g=>{g.querySelector("input")?.value===f&&g.remove()}),r.querySelectorAll(`[role="option"][data-value="${CSS.escape(f)}"]`).forEach(g=>g.setAttribute("aria-selected","false"))}document.addEventListener("keydown",r=>{const f=r.target.closest?.("[data-combobox]");if(f){if(r.key==="ArrowDown"||r.key==="ArrowUp")r.preventDefault(),d(f,!0),t(f,e(f)+(r.key==="ArrowDown"?1:-1));else if(r.key==="Enter"){const g=e(f),A=a(f);g>=0&&A[g]&&(r.preventDefault(),A[g].click())}else if(r.key==="Escape"){if(!i(f))return;r.preventDefault(),r.stopPropagation(),d(f,!1)}else if(r.key==="Backspace"&&f.classList.contains("combobox--multi")&&r.target.matches("input[role='combobox']")&&!r.target.value){const g=f.querySelector(".combobox__field .combobox__token:last-of-type input");g&&l(f,g.value)}}}),document.addEventListener("input",r=>{const f=r.target.closest?.("[data-combobox]");if(!f||!r.target.matches("input[role='combobox']"))return;const g=f.querySelector("[data-combobox-value]");g&&(g.value=""),c(f),d(f,!0)}),document.addEventListener("focusin",r=>{const f=r.target.closest?.("[data-combobox]");f&&r.target.matches("input[role='combobox']")&&d(f,!0)}),document.addEventListener("click",r=>{const f=r.target.closest?.("[data-combobox] .combobox__field");if(f&&!r.target.closest("input, button")){const s=f.closest("[data-combobox]"),p=o(s);p&&!p.disabled&&(i(s)?d(s,!1):(p.focus(),d(s,!0)));return}const g=r.target.closest?.("[data-combobox] [role='option']");if(g){if(g.getAttribute("aria-disabled")==="true")return;const s=g.closest("[data-combobox]");s.classList.contains("combobox--multi")?_(s,g):h(s,g);return}const A=r.target.closest?.("[data-combobox-remove]");if(A){const s=A.closest("[data-combobox]");s&&l(s,A.getAttribute("data-combobox-remove")??"");return}document.querySelectorAll("[data-combobox].combobox--open").forEach(s=>{r.target.closest?.("[data-combobox]")!==s&&d(s,!1)})})})(),(()=>{const y="data-active",b=new WeakMap,o=l=>l.querySelector(".command__input"),a=l=>Array.from(l.querySelectorAll('[role="option"]')).filter(r=>!r.hidden);function e(l){return a(l).findIndex(r=>r.hasAttribute(y))}function n(l){l.querySelectorAll(`[${y}]`).forEach(r=>r.removeAttribute(y)),o(l)?.removeAttribute("aria-activedescendant")}function t(l,r){const f=a(l);if(!f.length)return;const g=(r+f.length)%f.length;n(l),f[g].setAttribute(y,"");const A=o(l);A&&f[g].id&&A.setAttribute("aria-activedescendant",f[g].id);const s=f[g].closest(".command__list");if(!s)return;const p=f[g].offsetTop;p<s.scrollTop&&(s.scrollTop=p);const v=p+f[g].offsetHeight;v>s.scrollTop+s.clientHeight&&(s.scrollTop=v-s.clientHeight)}function i(l){const r=o(l),f=l.querySelector(".command__list");if(!r||!f)return;const g=r.value.trim().toLowerCase();let A=0;l.querySelectorAll('[role="option"]').forEach(v=>{const E=v.querySelector(".command__item-label")?.textContent??v.textContent,S=!g||E.toLowerCase().includes(g);v.hidden=!S,S&&A++}),n(l),l.querySelectorAll(".command__group").forEach(v=>{let E=v.nextElementSibling,S=!1;for(;E&&!E.classList.contains("command__group");){if(E.matches('[role="option"]')&&!E.hidden){S=!0;break}E=E.nextElementSibling}v.hidden=!S});const s=l.querySelector(".command__count");s&&(s.textContent=A===1?"1 result":`${A} results`);let p=f.querySelector(".command__empty");p||(p=document.createElement("div"),p.className="command__empty",p.textContent="Nothing matches that.",f.append(p)),p.hidden=A>0,A&&t(l,0)}const d=new WeakMap;function m(l){const r=o(l),f=r?.getAttribute("data-command-action"),g=r?.getAttribute("data-command-target");if(f&&g&&globalThis.rapid?.swap){clearTimeout(d.get(l)),d.set(l,setTimeout(()=>{const A=`${f}${f.includes("?")?"&":"?"}q=${encodeURIComponent(r.value.trim())}`;globalThis.rapid.swap(A,g).then(()=>{n(l),a(l).length&&t(l,0)})},150));return}i(l)}const u=l=>!l.classList.contains("command--inline");function c(l){if(!u(l))return;l.hidden=!0;const r=b.get(l);b.delete(l),r?.isConnected&&r.focus()}function h(l){const r=o(l);r&&r.value?(r.value="",r.dispatchEvent(new Event("input",{bubbles:!0}))):c(l)}function _(l,r){b.set(l,r??document.activeElement),l.hidden=!1,o(l)?.focus()}document.addEventListener("keydown",l=>{if(l.key==="k"&&(l.metaKey||l.ctrlKey)){const f=document.querySelector("[data-command]:not(.command--inline)");if(!f)return;l.preventDefault(),_(f);return}const r=l.target.closest?.("[data-command]");if(r){if(l.key==="ArrowDown"||l.key==="ArrowUp")l.preventDefault(),t(r,e(r)+(l.key==="ArrowDown"?1:-1));else if(l.key==="Enter"){const f=e(r),g=a(r);f>=0&&g[f]&&(l.preventDefault(),g[f].click())}else if(l.key==="Escape"){if(!u(r)&&!o(r)?.value)return;l.preventDefault(),l.stopPropagation(),h(r)}else if(l.key==="Tab"&&u(r)){const f=Array.from(r.querySelectorAll("input, button, a[href], [tabindex]:not([tabindex='-1'])")).filter(s=>!s.hidden&&s.offsetParent!==null);if(!f.length)return;const g=f[0],A=f[f.length-1];l.shiftKey&&document.activeElement===g?(l.preventDefault(),A.focus()):!l.shiftKey&&document.activeElement===A&&(l.preventDefault(),g.focus())}}}),document.addEventListener("input",l=>{const r=l.target.closest?.("[data-command]");r&&l.target.matches(".command__input")&&m(r)}),document.addEventListener("click",l=>{const r=l.target.closest?.("[data-command-open]");if(r){const s=r.getAttribute("data-command-open"),p=s?document.querySelector(s):document.querySelector("[data-command]:not(.command--inline)");p&&(l.preventDefault(),_(p,r));return}const f=l.target.closest?.("[data-command-dismiss]");if(f){const s=f.closest("[data-command]");s&&h(s);return}const g=l.target.closest?.("[data-command] [role='option']");if(g){const s=g.closest("[data-command]");s&&u(s)&&c(s);return}const A=l.target.closest?.("[data-command]:not(.command--inline)");A&&!l.target.closest(".command__sheet")&&c(A)})})(),(()=>{const y=new Map;function b(u){if(!u.id)return;const c=new Set;u.querySelectorAll("[data-select-row]:checked").forEach(h=>c.add(h.value)),y.set(u.id,c)}function o(u){const c=u.id&&y.get(u.id);c?.size&&u.querySelectorAll("[data-select-row]").forEach(h=>{c.has(h.value)&&e(h,!0)})}function a(u){const c=u.querySelector("[data-bulk-bar]"),h=u.querySelectorAll("[data-select-row]"),_=u.querySelectorAll("[data-select-row]:checked").length;if(c){c.hidden=_===0;const r=c.querySelector("[data-bulk-count]");r&&(r.textContent=_===1?"1 row selected":`${_} rows selected`)}const l=u.querySelector("[data-select-all]");l&&(l.checked=_>0&&_===h.length,l.indeterminate=_>0&&_<h.length)}function e(u,c){u.checked=c,u.closest("tr")?.classList.toggle("data-table__row--selected",c)}document.addEventListener("change",u=>{const c=u.target.closest?.(".data-table");if(c){if(u.target.matches("[data-select-all]"))c.querySelectorAll("[data-select-row]").forEach(h=>e(h,u.target.checked));else if(u.target.matches("[data-select-row]"))e(u.target,u.target.checked);else return;a(c),b(c)}}),document.addEventListener("click",u=>{const c=u.target.closest?.("[data-bulk-clear]");if(!c)return;const h=c.closest(".data-table");h&&(h.querySelectorAll("[data-select-row]").forEach(_=>e(_,!1)),a(h),b(h))});const n=()=>document.querySelectorAll(".data-table__row-actions:not([hidden])"),t=u=>document.querySelector(`[data-row-actions="#${CSS.escape(u.id)}"]`);function i(u){u.classList.remove("is-closing"),u.hidden=!0,u.style.removeProperty("max-width")}function d(u,c){const h=t(u);h?.setAttribute("aria-expanded","false"),c&&h?.focus(),!(u.hidden||u.classList.contains("is-closing"))&&(u.classList.add("is-closing"),getComputedStyle(u).animationName==="none"?i(u):u.addEventListener("animationend",()=>i(u),{once:!0}))}document.addEventListener("click",u=>{const c=u.target.closest?.("[data-row-actions]"),h=u.target.closest?.("[data-row-actions-close]");if(h){const _=h.closest(".data-table__row-actions");_&&d(_,!0);return}if(c){const _=document.querySelector(c.getAttribute("data-row-actions"));if(!_)return;_.classList.contains("is-closing")&&i(_);const l=_.hidden;if(n().forEach(r=>d(r,!1)),l){const r=_.closest(".data-table__scroll");if(r){const f=r.getBoundingClientRect().left,g=[..._.closest("tr").querySelectorAll("td.data-table__select, td.data-table__cell--pinned")].map(A=>A.getBoundingClientRect().right-f);_.style.maxWidth=`${r.clientWidth-Math.max(0,...g)}px`}_.hidden=!1,c.setAttribute("aria-expanded","true"),_.querySelector("a, button")?.focus()}return}n().forEach(_=>{_.contains(u.target)||d(_,!1)})}),document.addEventListener("keydown",u=>{if(u.key!=="Escape"||u.defaultPrevented)return;const c=u.target.closest?.(".data-table__row-actions");c&&(d(c,!0),u.preventDefault(),u.stopPropagation())});function m(u){document.querySelectorAll(".data-table").forEach(c=>{u&&o(c),a(c),b(c)})}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>m(!1)):m(!1),document.addEventListener("rapid:swapped",u=>{const c=String(u.detail?.method??"get").toLowerCase();m(c==="get")})})(),(()=>{const y=["January","February","March","April","May","June","July","August","September","October","November","December"],b=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],o=c=>String(c).padStart(2,"0"),a=(c,h,_)=>`${c}-${o(h+1)}-${o(_)}`,e=c=>{const h=/^(\d{4})-(\d{2})-(\d{2})$/.exec(c??"");return h?`${Number(h[3])} ${b[Number(h[2])-1]} ${h[1]}`:""},n=()=>{const c=new Date;return a(c.getFullYear(),c.getMonth(),c.getDate())};function t(c,h,_){const l=c.querySelector(".datepicker__panel"),r=c.querySelector("[data-datepicker-trigger]");l&&(l.hidden=!h),c.classList.toggle("datepicker--open",!!h),r&&(r.setAttribute("aria-expanded",h?"true":"false"),!h&&_&&r.focus())}function i(c){return{range:c.hasAttribute("data-datepicker-range"),min:c.getAttribute("data-datepicker-min")||"",max:c.getAttribute("data-datepicker-max")||"",today:c.getAttribute("data-datepicker-today")||n(),start:c.querySelector("[data-datepicker-start]")?.value||"",end:c.querySelector("[data-datepicker-end]")?.value||""}}function d(c,h,_){const l=i(c),r=c.querySelector(".datepicker__days"),f=c.querySelector(".datepicker__month");if(!r)return;r.replaceChildren(),f&&(f.textContent=`${y[_]} ${h}`),c.setAttribute("data-datepicker-view",`${h}-${_}`);const g=new Date(h,_+1,0).getDate(),A=(new Date(h,_,1).getDay()+6)%7,s=new Date(h,_,0).getDate(),p=Math.ceil((A+g)/7)*7;for(let v=0;v<p;v++){const E=v-A+1;let S=h,x=_,w=E;E<1?(x=_-1,w=s+E,x<0&&(x=11,S--)):E>g&&(x=_+1,w=E-g,x>11&&(x=0,S++));const q=a(S,x,w),k=document.createElement("button");k.type="button",k.className="datepicker__day",(E<1||E>g)&&k.classList.add("datepicker__day--outside"),q===l.today&&(k.classList.add("datepicker__day--today"),k.setAttribute("aria-current","date")),l.start&&l.end&&q>l.start&&q<l.end&&k.classList.add("datepicker__day--in-range"),q===l.start&&k.classList.add("datepicker__day--start"),q===l.end&&k.classList.add("datepicker__day--end"),(q===l.start||q===l.end)&&k.setAttribute("aria-pressed","true"),(l.min&&q<l.min||l.max&&q>l.max)&&(k.disabled=!0),k.setAttribute("data-day",q),k.setAttribute("aria-label",`${w} ${y[x]} ${S}`),k.textContent=String(w),r.append(k)}}function m(c){const h=c.getAttribute("data-datepicker-view");if(h){const[r,f]=h.split("-").map(Number);return[r,f]}const _=i(c),l=_.start||_.today;return[Number(l.slice(0,4)),Number(l.slice(5,7))-1]}function u(c,h){const _=i(c),l=c.querySelector("[data-datepicker-start]"),r=c.querySelector("[data-datepicker-end]"),f=c.querySelector("[data-datepicker-label]");let g=h,A="";_.range&&_.start&&!_.end&&h>=_.start&&(g=_.start,A=h),l&&(l.value=g),r&&(r.value=A),f&&(f.textContent=_.range?`${e(g)||"Start date"} \u2013 ${e(A)||"End date"}`:e(g)),l?.dispatchEvent(new Event("change",{bubbles:!0}));const[s,p]=m(c);d(c,s,p),(!_.range||A)&&t(c,!1,!0)}document.addEventListener("click",c=>{const h=c.target.closest?.("[data-datepicker-trigger]");if(h){const l=h.closest("[data-datepicker]"),r=l?.querySelector(".datepicker__panel");r&&t(l,r.hidden);return}const _=c.target.closest?.("[data-datepicker]");if(_&&!_.hasAttribute("data-datepicker-server")){const l=c.target.closest("button[data-day]");if(l&&!l.disabled){u(_,l.getAttribute("data-day"));return}const r=c.target.closest("button[data-month]");if(r){const[f,g]=r.getAttribute("data-month").split("-").map(Number);d(_,f,g);const A={"prev-year":[f-1,g],prev:g===0?[f-1,11]:[f,g-1],next:g===11?[f+1,0]:[f,g+1],"next-year":[f+1,g]};_.querySelectorAll("button[data-month][data-nav]").forEach(s=>{const p=A[s.getAttribute("data-nav")];p&&s.setAttribute("data-month",`${p[0]}-${p[1]}`)});return}}document.querySelectorAll("[data-datepicker]:not(.datepicker--inline) .datepicker__panel:not([hidden])").forEach(l=>{const r=l.closest("[data-datepicker]");r!==_&&t(r,!1)})}),document.addEventListener("keydown",c=>{if(c.key!=="Escape"||c.defaultPrevented)return;const h=c.target.closest?.("[data-datepicker]"),_=h?.querySelector(".datepicker__panel");!_||_.hidden||h.classList.contains("datepicker--inline")||(c.preventDefault(),t(h,!1,!0))})})(),(()=>{const y=()=>document.querySelectorAll(".dropdown__panel.is-open"),b=i=>document.querySelector(`[data-toggle="#${CSS.escape(i.id)}"]`),o=".data-table__scroll, [data-dropdown-clip]";function a(i,d){if(!d?.closest(o))return;const m=d.getBoundingClientRect();i.classList.add("dropdown__panel--fixed");const u=i.offsetWidth;let h=i.classList.contains("dropdown__panel--end")?m.right-u:m.left;h=Math.max(8,Math.min(h,innerWidth-u-8));let _=m.bottom+4;_+i.offsetHeight>innerHeight-8&&(_=Math.max(8,m.top-i.offsetHeight-4)),i.style.left=`${h}px`,i.style.top=`${_}px`}function e(i,d){i.setAttribute("hidden",""),i.classList.remove("is-open","dropdown__panel--fixed"),i.style.removeProperty("left"),i.style.removeProperty("top"),d?.setAttribute("aria-expanded","false")}document.addEventListener("click",i=>{y().forEach(d=>{const m=b(d);if(m?.contains(i.target)){d.classList.contains("dropdown__panel--fixed")||a(d,m);return}if(d.contains(i.target)){const u=i.target.closest("a[href], button, [data-action]");if(!u||u.hasAttribute("data-toggle"))return}e(d,m)})}),document.addEventListener("keydown",i=>{if(i.key!=="Escape"||i.defaultPrevented)return;const d=i.target.closest?.(".dropdown"),m=d?d.querySelectorAll(".dropdown__panel.is-open"):y();let u=!1;m.forEach(c=>{const h=b(c);e(c,h),h?.focus(),u=!0}),u&&i.preventDefault()});const n=i=>{const d=i.closest(o)?.getBoundingClientRect(),m=i.getBoundingClientRect();return!d||m.bottom>d.top&&m.top<d.bottom&&m.right>d.left&&m.left<d.right},t=()=>{document.querySelectorAll(".dropdown__panel--fixed.is-open").forEach(i=>{const d=b(i);d&&n(d)?a(i,d):e(i,d)})};addEventListener("scroll",t,{capture:!0,passive:!0}),addEventListener("resize",t,{passive:!0})})(),(()=>{for(const e of["dragenter","dragover"])document.addEventListener(e,n=>{const t=n.target.closest?.(".dropzone__area");t&&(n.preventDefault(),t.classList.add("dropzone__area--over"))});for(const e of["dragleave","drop"])document.addEventListener(e,n=>{n.target.closest?.(".dropzone__area")?.classList.remove("dropzone__area--over")});document.addEventListener("click",e=>{const n=e.target.closest?.("[data-dropzone-remove]");n&&n.closest(".dropzone__file")?.remove()});const y=e=>e<1024?`${e} B`:e<1024*1024?`${Math.round(e/1024)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`;function b(e){const n=document.createElement("div");n.className="dropzone__file dropzone__file--pending";const t=document.createElement("span");t.className="dropzone__file-icon",t.textContent=(e.name.split(".").pop()||"").slice(0,4).toLowerCase();const i=document.createElement("span");i.className="dropzone__file-body";const d=document.createElement("span");d.className="dropzone__file-row";const m=document.createElement("span");m.className="dropzone__file-name",m.textContent=e.name;const u=document.createElement("span");u.className="dropzone__file-size",u.textContent=y(e.size),d.append(m,u);const c=document.createElement("progress");return c.className="dropzone__bar",c.max=100,c.setAttribute("aria-label",`Uploading ${e.name}`),i.append(d,c),n.append(t,i),n}const o=new Map;document.addEventListener("submit",e=>{const n=e.target;if(!n?.matches?.("form[data-action]"))return;const t=n.querySelector("[data-dropzone]"),i=t?.querySelector("input[type=file]");if(!t||!i?.files?.length)return;let d=t.querySelector(".dropzone__files");d||(d=document.createElement("div"),d.className="dropzone__files",t.append(d));const m=[...i.files].map(u=>{const c=b(u);return d.append(c),c});o.set(n.getAttribute("data-action"),{zone:t,rows:m})}),document.addEventListener("rapid:progress",e=>{const n=o.get(e.detail?.url);if(!n)return;const{loaded:t,total:i}=e.detail;for(const d of n.rows){const m=d.querySelector("progress");m&&(i>0?m.value=Math.min(100,Math.round(t/i*100)):m.removeAttribute("value"))}});const a=(e,n)=>{const t=e.detail?.url,i=t?o.get(t):void 0;if(i&&(o.delete(t),!!n))for(const d of i.rows){if(!d.isConnected)continue;d.classList.remove("dropzone__file--pending"),d.classList.add("dropzone__file--error"),d.querySelector("progress")?.remove();const m=document.createElement("span");m.className="dropzone__file-error",m.textContent="Upload failed",d.querySelector(".dropzone__file-body")?.append(m)}};document.addEventListener("rapid:swapped",e=>a(e,!1)),document.addEventListener("rapid:error",e=>a(e,!0))})(),(()=>{const y={bold:["**","**"],italic:["_","_"],strike:["~~","~~"],code:["`","`"]},b={heading:"## ",quote:"> ",ul:"- ",ol:"1. "},o={heading:"h2",quote:"blockquote",code:"pre"},a={bold:"bold",italic:"italic",underline:"underline",strike:"strikeThrough"},e={ul:"insertUnorderedList",ol:"insertOrderedList"},n=s=>s.querySelector(".editor__source"),t=s=>s.querySelector("[data-editor-surface]"),i=s=>s.getAttribute("data-editor-mode")==="html";function d(s,p,v,E,S,x){s.value=s.value.slice(0,p)+E+s.value.slice(v),s.setSelectionRange(p+S,p+x),s.focus(),s.dispatchEvent(new Event("input",{bubbles:!0}))}function m(s){const p=s.value.lastIndexOf(`
3
+ `,s.selectionStart-1)+1,v=s.value.indexOf(`
4
+ `,Math.max(s.selectionEnd,p)),E=s.selectionEnd>s.selectionStart&&s.value[s.selectionEnd-1]===`
5
+ `?s.selectionEnd-1:v===-1?s.value.length:v;return[p,E]}const u=/^(#{1,6} |> |- |\* |\d+\. )+/;function c(s,p){const v=s.selectionStart,E=s.selectionEnd,S=s.value.slice(v,E);if(y[p]){const[L,C]=y[p],D=p==="code"&&S.includes(`
6
+ `),$=D?"```\n":L,T=D?"\n```":C;if(S.startsWith($)&&S.endsWith(T)&&S.length>=$.length+T.length){const O=S.slice($.length,S.length-T.length);d(s,v,E,O,0,O.length);return}if(s.value.slice(v-$.length,v)===$&&s.value.slice(E,E+T.length)===T){d(s,v-$.length,E+T.length,S,0,S.length);return}const N=S||p;d(s,v,E,$+N+T,$.length,$.length+N.length);return}if(p==="link"||p==="image"){const C=`${p==="image"?"!":""}[${S||(p==="image"?"alt text":"text")}](url)`;d(s,v,E,C,C.length-4,C.length-1);return}if(p==="hr"){const C=`${v===0||s.value[v-1]===`
7
7
  `?"":`
8
8
  `}
9
9
  ---
10
10
 
11
- `;g(r,h,y,C,C.length,C.length);return}const[k,w]=b(r),q=r.value.slice(k,w).split(`
12
- `);if(l==="clear"){const L=q.map(C=>C.replace(S,"")).join(`
13
- `).replace(/!\[(.*?)\]\(\S+?\)/g,"$1").replace(/\[(.+?)\]\(\S+?\)/g,"$1").replace(/(\*\*|__|~~|`)(.+?)\1/g,"$2").replace(/(^|[^\w])_(.+?)_(?=[^\w]|$)/g,"$1$2");g(r,k,w,L,0,L.length);return}const x=u[l];if(!x)return;const I=L=>l==="ol"?/^\d+\. /.test(L):L.startsWith(x),R=q.every(L=>L.trim()===""||I(L)),O=q.map((L,C)=>{const $=L.replace(S,"");return R?$:L.trim()===""?L:(l==="ol"?`${C+1}. `:x)+$}).join(`
14
- `);g(r,k,w,O,0,O.length)}function A(r,l){const h=r.querySelector("[data-editor-preview-panel]"),y=a(r);if(r.querySelectorAll("[data-editor-view]").forEach(k=>{k.setAttribute("aria-pressed",String(k.getAttribute("data-editor-view")===(l?"preview":"write")))}),!l){r.removeAttribute("data-editor-view"),h&&(h.hidden=!0),y?.focus();return}if(r.setAttribute("data-editor-view","preview"),!h)return;h.hidden=!1;const _=r.getAttribute("data-editor-preview");if(_&&globalThis.rapid?.swap)h.setAttribute("aria-busy","true"),globalThis.rapid.swap(_,h,{method:"post",body:new URLSearchParams({text:y?.value??""}).toString()}).finally(()=>h.removeAttribute("aria-busy"));else{h.replaceChildren();const k=document.createElement("p");k.className="editor__preview-note",k.textContent="No preview route on this page \u2014 showing the Markdown source.";const w=document.createElement("pre");w.className="editor__preview-raw",w.textContent=y?.value??"",h.append(k,w)}}function E(r){const l=a(r),h=e(r);l&&h&&(l.value=h.innerHTML)}const s=()=>String(document.queryCommandValue("formatBlock")||"").toLowerCase().replace(/[<>]/g,"");function c(r,l){const h=e(r);if(!(!h||h.getAttribute("contenteditable")!=="true")){if(h.focus(),t[l])document.execCommand(t[l]);else if(o[l])document.execCommand(o[l]);else if(n[l])document.execCommand("formatBlock",!1,s()===n[l]?"<p>":`<${n[l]}>`);else if(l==="link"){const y=globalThis.prompt?.("Link URL","https://");y&&document.execCommand("createLink",!1,y)}else if(l==="image"){const y=globalThis.prompt?.("Image URL","https://");y&&document.execCommand("insertImage",!1,y)}else l==="hr"?document.execCommand("insertHorizontalRule"):l==="clear"&&(document.execCommand("removeFormat"),document.execCommand("unlink"),document.queryCommandState("insertUnorderedList")&&document.execCommand("insertUnorderedList"),document.queryCommandState("insertOrderedList")&&document.execCommand("insertOrderedList"),s()!=="p"&&s()!=="div"&&document.execCommand("formatBlock",!1,"<p>"));E(r),i(r)}}function i(r){if(!d(r))return;const l=s();r.querySelectorAll("[data-editor-cmd]").forEach(h=>{const y=h.getAttribute("data-editor-cmd");let _=!1;t[y]||o[y]?_=document.queryCommandState(t[y]??o[y]):n[y]&&(_=l===n[y]),h.setAttribute("aria-pressed",String(_))})}function f(r){if(r.dataset.editorReady)return;r.dataset.editorReady="true";const l=a(r),h=e(r);h&&l&&(h.innerHTML=l.value,h.setAttribute("contenteditable",l.disabled?"false":"true"),document.execCommand("defaultParagraphSeparator",!1,"p"))}const v=()=>document.querySelectorAll("[data-editor]").forEach(f);document.readyState==="loading"?document.addEventListener("DOMContentLoaded",v):v(),document.addEventListener("rapid:swapped",v),document.addEventListener("click",r=>{const l=r.target.closest?.("[data-editor-cmd]");if(l){const y=l.closest("[data-editor]"),_=l.getAttribute("data-editor-cmd");if(d(y))c(y,_);else{const k=a(y);k&&!k.disabled&&m(k,_)}return}const h=r.target.closest?.("[data-editor-view]");h&&A(h.closest("[data-editor]"),h.getAttribute("data-editor-view")==="preview")}),document.addEventListener("input",r=>{const l=r.target.closest?.("[data-editor-surface]");l&&E(l.closest("[data-editor]"))}),document.addEventListener("selectionchange",()=>{const r=document.activeElement?.closest?.("[data-editor]");r&&i(r)}),document.addEventListener("keydown",r=>{if(!(r.metaKey||r.ctrlKey)||r.altKey)return;const l=r.target.closest?.("[data-editor]");if(!l)return;const h={b:"bold",i:"italic",u:"underline",k:"link"}[r.key.toLowerCase()];!h||h==="underline"&&!d(l)||(r.preventDefault(),d(l)?c(l,h):m(a(l),h))})})(),(()=>{function p(){const u=location.href;let n=null;if(document.querySelectorAll(".menu__link[href]").forEach(o=>{if(!o.getAttribute("href")?.includes("#"))return;new URL(o.getAttribute("href"),location.href).href===u&&(n=o)}),!n)return;n.closest(".menu__list")?.querySelectorAll(".menu__link").forEach(o=>{o!==n&&o.getAttribute("href")?.includes("#")&&(o.classList.remove("menu__link--active"),o.removeAttribute("aria-current"))}),n.classList.add("menu__link--active"),n.setAttribute("aria-current","page");const t=n.closest(".menu__sublist");t&&(t.hidden=!1,t.classList.add("is-open"),document.querySelector(`[data-toggle="#${CSS.escape(t.id)}"]`)?.setAttribute("aria-expanded","true"))}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",p):p(),addEventListener("hashchange",p),document.addEventListener("rapid:swapped",p)})(),(()=>{let p=!1;document.addEventListener("pointerdown",u=>{p=u.target instanceof HTMLDialogElement&&u.target.open}),document.addEventListener("click",u=>{const n=u.target.closest?.("[data-modal-open]");if(n){const o=document.querySelector(n.getAttribute("data-modal-open")??"");o instanceof HTMLDialogElement&&!o.open&&o.showModal();return}const t=u.target.closest?.("[data-modal-close]");if(t){t.closest("dialog")?.close();return}p&&u.target instanceof HTMLDialogElement&&u.target.open&&u.target.close(),p=!1})})(),(()=>{const p=e=>Array.from(e.querySelectorAll(".otp__cell")),u=e=>e.querySelector(".otp__value");function n(e,d){const g=e.getAttribute("data-otp-mode")!=="alphanumeric";return(d||"").replace(g?/[^0-9]/g:/[^0-9a-zA-Z]/g,"")}function t(e,{fromCarrier:d=!1}={}){const g=p(e),b=u(e);if(!g.length||!b)return;if(d){const A=n(e,b.value).slice(0,g.length);g.forEach((E,s)=>E.value=A[s]??"")}const S=g.map(A=>A.value).join("");b.value=S,b.setAttribute("tabindex","-1"),b.setAttribute("aria-hidden","true"),g.forEach(A=>A.toggleAttribute("data-filled",A.value!==""));const m=g.findIndex(A=>!A.value);g.forEach((A,E)=>A.setAttribute("tabindex",E===(m<0?0:m)?"0":"-1")),S.length===g.length&&!e.hasAttribute("data-otp-completed")?(e.setAttribute("data-otp-completed",""),e.dispatchEvent(new CustomEvent("otp:complete",{bubbles:!0,detail:{value:S}})),e.hasAttribute("data-otp-submit")&&e.closest("form")?.requestSubmit()):S.length<g.length&&e.removeAttribute("data-otp-completed")}function o(e,d,g){const b=p(e),S=n(e,g);if(!S){b[d].value="",t(e);return}let m=d;for(const A of S){if(m>=b.length)break;b[m].value=A,m++}t(e),b[Math.min(m,b.length-1)].focus()}document.addEventListener("input",e=>{const d=e.target.closest?.(".otp__cell");if(!d)return;const g=d.closest("[data-otp]"),b=p(g);o(g,b.indexOf(d),d.value)}),document.addEventListener("paste",e=>{const d=e.target.closest?.(".otp__cell");if(!d)return;e.preventDefault();const g=d.closest("[data-otp]");o(g,p(g).indexOf(d),e.clipboardData?.getData("text")??"")}),document.addEventListener("keydown",e=>{const d=e.target.closest?.(".otp__cell");if(!d)return;const g=d.closest("[data-otp]"),b=p(g),S=b.indexOf(d);e.key==="Backspace"?(e.preventDefault(),d.value?d.value="":S>0&&(b[S-1].value="",b[S-1].focus()),t(g)):e.key==="Delete"?(e.preventDefault(),d.value="",t(g)):e.key==="ArrowLeft"&&S>0?(e.preventDefault(),b[S-1].focus()):e.key==="ArrowRight"&&S<b.length-1&&(e.preventDefault(),b[S+1].focus())}),document.addEventListener("focusin",e=>{const d=e.target.closest?.(".otp__cell");d&&d.select()});function a(){document.querySelectorAll("[data-otp]").forEach(e=>t(e,{fromCarrier:!0}))}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",a):a(),document.addEventListener("rapid:swapped",a)})(),(()=>{function p(n,t){const o=n.querySelector(".popover__panel"),a=n.querySelector("[data-popover-trigger]");o&&(o.hidden=!t),a&&a.setAttribute("aria-expanded",t?"true":"false")}const u=()=>document.querySelectorAll("[data-popover] .popover__panel:not([hidden])");document.addEventListener("click",n=>{const t=n.target.closest?.("[data-popover-trigger]");if(t){const a=t.closest("[data-popover]"),e=a?.querySelector(".popover__panel");e&&p(a,e.hidden);return}const o=n.target.closest?.("[data-popover]");u().forEach(a=>{const e=a.closest("[data-popover]");e!==o&&p(e,!1)})}),document.addEventListener("keydown",n=>{if(n.key!=="Escape"||n.defaultPrevented)return;const t=n.target.closest?.("[data-popover]"),o=t?[t]:Array.from(u()).map(e=>e.closest("[data-popover]"));let a=!1;o.forEach(e=>{const d=e.querySelector(".popover__panel");!d||d.hidden||(p(e,!1),e.querySelector("[data-popover-trigger]")?.focus(),a=!0)}),a&&n.preventDefault()})})(),(()=>{function p(n){const o=n.querySelector(".segmented__input:checked")?.nextElementSibling;if(!o){n.style.setProperty("--segmented-w","0px");return}const a=n.getBoundingClientRect(),e=o.getBoundingClientRect(),d=getComputedStyle(n).direction==="rtl",g=d?a.right-n.clientLeft-3-e.right:e.left-a.left-n.clientLeft-3;n.style.setProperty("--segmented-x",`${d?-g:g}px`),n.style.setProperty("--segmented-w",`${e.width}px`),n.setAttribute("data-segmented-ready","")}const u=()=>document.querySelectorAll("[data-segmented]").forEach(p);document.readyState==="loading"?document.addEventListener("DOMContentLoaded",u):u(),addEventListener("load",u),addEventListener("resize",u),document.addEventListener("rapid:swapped",u),document.addEventListener("change",n=>{const t=n.target.closest?.("[data-segmented]");t&&p(t)})})(),(()=>{function p(t){const o=t.querySelector("[data-select-ui]");return o?{root:o,input:o.querySelector("input[role='combobox']"),hidden:o.querySelector("[data-combobox-value]"),options:Array.from(o.querySelectorAll("[role='option']"))}:null}document.addEventListener("combobox:pick",t=>{const a=t.target.closest?.("[data-select]")?.querySelector(".select__native");if(!a)return;const e=t.detail?.value??"";a.value!==e&&(a.value=e,a.dispatchEvent(new Event("change",{bubbles:!0})),a.dispatchEvent(new Event("input",{bubbles:!0})))}),document.addEventListener("change",t=>{if(!t.target.matches?.(".select__native"))return;const o=t.target.closest("[data-select]"),a=p(o);if(!a)return;const e=t.target.value,d=a.options.find(b=>b.getAttribute("data-value")===e),g=d?(d.querySelector(".combobox__option-label")?.textContent??d.textContent).trim():"";a.hidden&&(a.hidden.value=e),a.input&&a.input.value!==g&&(a.input.value=g),a.options.forEach(b=>b.setAttribute("aria-selected",String(b===d)))});let u="",n=0;document.addEventListener("keydown",t=>{const o=t.target;if(!o.matches?.("[data-select-ui] input[role='combobox']")||t.key.length!==1||t.metaKey||t.ctrlKey||t.altKey)return;const a=Date.now();u=a-n>600?t.key:u+t.key,n=a;const e=o.closest("[data-select]"),g=p(e)?.options.find(b=>b.getAttribute("aria-disabled")!=="true"&&(b.querySelector(".combobox__option-label")?.textContent??b.textContent).trim().toLowerCase().startsWith(u.toLowerCase()));g&&g.click(),t.preventDefault()})})(),(()=>{function p(t){const o=t.closest("[data-slider]");if(!o)return null;const a=Number(t.min||0),e=Number(t.max||100),d=e===a?0:(Number(t.value)-a)/(e-a)*100;return o.style.setProperty("--slider-pct",`${d.toFixed(2)}%`),o}function u(t,o){const a=t.querySelector("[data-slider-output]");if(!a)return;const e=Number(o.value),d=t.getAttribute("data-slider-labels");if(d){const S=Number(o.step||1),m=Math.round((e-Number(o.min||0))/S);let A=[];try{A=JSON.parse(d)}catch{}a.textContent=A[m]??o.value,t.querySelectorAll(".slider__scale-item").forEach((E,s)=>{E.classList.toggle("slider__scale-item--active",s===m)});return}const g=t.getAttribute("data-slider-unit"),b=t.getAttribute("data-slider-unit-one")||g;a.textContent=g?`${o.value} ${e===1?b:g}`:o.value}function n(){document.querySelectorAll("[data-slider] .slider__input").forEach(p)}document.addEventListener("input",t=>{if(!t.target.matches?.("[data-slider] .slider__input"))return;const o=p(t.target);o&&u(o,t.target)}),document.readyState==="loading"?document.addEventListener("DOMContentLoaded",n):n(),document.addEventListener("rapid:swapped",n)})(),(()=>{document.addEventListener("click",n=>{const t=n.target.closest?.(".tabs__tab");t&&u(t)}),document.addEventListener("keydown",n=>{if(!["ArrowRight","ArrowLeft","Home","End"].includes(n.key))return;const o=n.target.closest?.(".tabs__tab");if(!o)return;const a=[...o.parentElement.querySelectorAll(".tabs__tab")],e=a.indexOf(o);let d;n.key==="Home"?d=a[0]:n.key==="End"?d=a[a.length-1]:n.key==="ArrowRight"?d=a[(e+1)%a.length]:d=a[(e-1+a.length)%a.length],n.preventDefault(),d.focus(),u(d)});function p(){if(location.hash.length<2)return;const n=document.querySelector(`.tabs__tab#${CSS.escape(location.hash.slice(1))}`);if(!n)return;u(n);const t=()=>{document.activeElement===n&&n.blur()};t(),setTimeout(t,50)}p(),addEventListener("load",p),addEventListener("hashchange",p),document.addEventListener("rapid:swapped",p);function u(n){const t=n.closest(".tabs");t&&(t.querySelectorAll(":scope > .tabs__list > .tabs__tab").forEach(o=>{const a=o===n;o.setAttribute("aria-selected",String(a)),o.setAttribute("tabindex",a?"0":"-1")}),t.querySelectorAll(":scope > .tabs__panel").forEach(o=>{o.toggleAttribute("hidden",o.id!==n.getAttribute("aria-controls"))}))}})(),(()=>{const p=new WeakMap;function u(o){const a=Number(o.dataset.toastAutodismiss);!a||p.has(o)||p.set(o,setTimeout(()=>o.remove(),a))}function n(o){const a=Number(o.dataset.toastMax)||4,e=o.querySelectorAll(":scope > .toast");for(let d=0;d<e.length-a;d++)e[d].remove()}function t(o){o.querySelectorAll?.(".toast[data-toast-autodismiss]").forEach(u),o.matches?.(".toast[data-toast-autodismiss]")&&u(o),o.querySelectorAll?.(".toast-region").forEach(n),o.closest?.(".toast-region")&&n(o.closest(".toast-region"))}t(document),new MutationObserver(o=>{for(const a of o)for(const e of a.addedNodes)e.nodeType===1&&t(e)}).observe(document.documentElement,{childList:!0,subtree:!0}),document.addEventListener("click",o=>{const a=o.target.closest?.("[data-toast-open]");if(!a)return;const e=document.querySelector(a.getAttribute("data-toast-open")??""),d=document.querySelector(a.getAttribute("data-toast-region")??"#toast-region");!e?.content||!d||d.append(e.content.cloneNode(!0))})})();
11
+ `;d(s,v,E,C,C.length,C.length);return}const[x,w]=m(s),q=s.value.slice(x,w).split(`
12
+ `);if(p==="clear"){const L=q.map(C=>C.replace(u,"")).join(`
13
+ `).replace(/!\[(.*?)\]\(\S+?\)/g,"$1").replace(/\[(.+?)\]\(\S+?\)/g,"$1").replace(/(\*\*|__|~~|`)(.+?)\1/g,"$2").replace(/(^|[^\w])_(.+?)_(?=[^\w]|$)/g,"$1$2");d(s,x,w,L,0,L.length);return}const k=b[p];if(!k)return;const z=L=>p==="ol"?/^\d+\. /.test(L):L.startsWith(k),I=q.every(L=>L.trim()===""||z(L)),M=q.map((L,C)=>{const D=L.replace(u,"");return I?D:L.trim()===""?L:(p==="ol"?`${C+1}. `:k)+D}).join(`
14
+ `);d(s,x,w,M,0,M.length)}function h(s,p){const v=s.querySelector("[data-editor-preview-panel]"),E=n(s);if(s.querySelectorAll("[data-editor-view]").forEach(x=>{x.setAttribute("aria-pressed",String(x.getAttribute("data-editor-view")===(p?"preview":"write")))}),!p){s.removeAttribute("data-editor-view"),v&&(v.hidden=!0),E?.focus();return}if(s.setAttribute("data-editor-view","preview"),!v)return;v.hidden=!1;const S=s.getAttribute("data-editor-preview");if(S&&globalThis.rapid?.swap)v.setAttribute("aria-busy","true"),globalThis.rapid.swap(S,v,{method:"post",body:new URLSearchParams({text:E?.value??""}).toString()}).finally(()=>v.removeAttribute("aria-busy"));else{v.replaceChildren();const x=document.createElement("p");x.className="editor__preview-note",x.textContent="No preview route on this page \u2014 showing the Markdown source.";const w=document.createElement("pre");w.className="editor__preview-raw",w.textContent=E?.value??"",v.append(x,w)}}function _(s){const p=n(s),v=t(s);p&&v&&(p.value=v.innerHTML)}const l=()=>String(document.queryCommandValue("formatBlock")||"").toLowerCase().replace(/[<>]/g,"");function r(s,p){const v=t(s);if(!(!v||v.getAttribute("contenteditable")!=="true")){if(v.focus(),a[p])document.execCommand(a[p]);else if(e[p])document.execCommand(e[p]);else if(o[p])document.execCommand("formatBlock",!1,l()===o[p]?"<p>":`<${o[p]}>`);else if(p==="link"){const E=globalThis.prompt?.("Link URL","https://");E&&document.execCommand("createLink",!1,E)}else if(p==="image"){const E=globalThis.prompt?.("Image URL","https://");E&&document.execCommand("insertImage",!1,E)}else p==="hr"?document.execCommand("insertHorizontalRule"):p==="clear"&&(document.execCommand("removeFormat"),document.execCommand("unlink"),document.queryCommandState("insertUnorderedList")&&document.execCommand("insertUnorderedList"),document.queryCommandState("insertOrderedList")&&document.execCommand("insertOrderedList"),l()!=="p"&&l()!=="div"&&document.execCommand("formatBlock",!1,"<p>"));_(s),f(s)}}function f(s){if(!i(s))return;const p=l();s.querySelectorAll("[data-editor-cmd]").forEach(v=>{const E=v.getAttribute("data-editor-cmd");let S=!1;a[E]||e[E]?S=document.queryCommandState(a[E]??e[E]):o[E]&&(S=p===o[E]),v.setAttribute("aria-pressed",String(S))})}function g(s){if(s.dataset.editorReady)return;s.dataset.editorReady="true";const p=n(s),v=t(s);v&&p&&(v.innerHTML=p.value,v.setAttribute("contenteditable",p.disabled?"false":"true"),document.execCommand("defaultParagraphSeparator",!1,"p"))}const A=()=>document.querySelectorAll("[data-editor]").forEach(g);document.readyState==="loading"?document.addEventListener("DOMContentLoaded",A):A(),document.addEventListener("rapid:swapped",A),document.addEventListener("click",s=>{const p=s.target.closest?.("[data-editor-cmd]");if(p){const E=p.closest("[data-editor]"),S=p.getAttribute("data-editor-cmd");if(i(E))r(E,S);else{const x=n(E);x&&!x.disabled&&c(x,S)}return}const v=s.target.closest?.("[data-editor-view]");v&&h(v.closest("[data-editor]"),v.getAttribute("data-editor-view")==="preview")}),document.addEventListener("input",s=>{const p=s.target.closest?.("[data-editor-surface]");p&&_(p.closest("[data-editor]"))}),document.addEventListener("selectionchange",()=>{const s=document.activeElement?.closest?.("[data-editor]");s&&f(s)}),document.addEventListener("keydown",s=>{if(!(s.metaKey||s.ctrlKey)||s.altKey)return;const p=s.target.closest?.("[data-editor]");if(!p)return;const v={b:"bold",i:"italic",u:"underline",k:"link"}[s.key.toLowerCase()];!v||v==="underline"&&!i(p)||(s.preventDefault(),i(p)?r(p,v):c(n(p),v))})})(),(()=>{function y(){const b=location.href;let o=null;if(document.querySelectorAll(".menu__link[href]").forEach(e=>{if(!e.getAttribute("href")?.includes("#"))return;new URL(e.getAttribute("href"),location.href).href===b&&(o=e)}),!o)return;o.closest(".menu__list")?.querySelectorAll(".menu__link").forEach(e=>{e!==o&&e.getAttribute("href")?.includes("#")&&(e.classList.remove("menu__link--active"),e.removeAttribute("aria-current"))}),o.classList.add("menu__link--active"),o.setAttribute("aria-current","page");const a=o.closest(".menu__sublist");a&&(a.hidden=!1,a.classList.add("is-open"),document.querySelector(`[data-toggle="#${CSS.escape(a.id)}"]`)?.setAttribute("aria-expanded","true"))}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",y):y(),addEventListener("hashchange",y),document.addEventListener("rapid:swapped",y)})(),(()=>{let y=!1;document.addEventListener("pointerdown",b=>{y=b.target instanceof HTMLDialogElement&&b.target.open}),document.addEventListener("click",b=>{const o=b.target.closest?.("[data-modal-open]");if(o){const e=document.querySelector(o.getAttribute("data-modal-open")??"");e instanceof HTMLDialogElement&&!e.open&&e.showModal();return}const a=b.target.closest?.("[data-modal-close]");if(a){a.closest("dialog")?.close();return}y&&b.target instanceof HTMLDialogElement&&b.target.open&&b.target.close(),y=!1})})(),(()=>{const y=t=>Array.from(t.querySelectorAll(".otp__cell")),b=t=>t.querySelector(".otp__value");function o(t,i){const d=t.getAttribute("data-otp-mode")!=="alphanumeric";return(i||"").replace(d?/[^0-9]/g:/[^0-9a-zA-Z]/g,"")}function a(t,{fromCarrier:i=!1}={}){const d=y(t),m=b(t);if(!d.length||!m)return;if(i){const h=o(t,m.value).slice(0,d.length);d.forEach((_,l)=>_.value=h[l]??"")}const u=d.map(h=>h.value).join("");m.value=u,m.setAttribute("tabindex","-1"),m.setAttribute("aria-hidden","true"),d.forEach(h=>h.toggleAttribute("data-filled",h.value!==""));const c=d.findIndex(h=>!h.value);d.forEach((h,_)=>h.setAttribute("tabindex",_===(c<0?0:c)?"0":"-1")),u.length===d.length&&!t.hasAttribute("data-otp-completed")?(t.setAttribute("data-otp-completed",""),t.dispatchEvent(new CustomEvent("otp:complete",{bubbles:!0,detail:{value:u}})),t.hasAttribute("data-otp-submit")&&t.closest("form")?.requestSubmit()):u.length<d.length&&t.removeAttribute("data-otp-completed")}function e(t,i,d){const m=y(t),u=o(t,d);if(!u){m[i].value="",a(t);return}let c=i;for(const h of u){if(c>=m.length)break;m[c].value=h,c++}a(t),m[Math.min(c,m.length-1)].focus()}document.addEventListener("input",t=>{const i=t.target.closest?.(".otp__cell");if(!i)return;const d=i.closest("[data-otp]"),m=y(d);e(d,m.indexOf(i),i.value)}),document.addEventListener("paste",t=>{const i=t.target.closest?.(".otp__cell");if(!i)return;t.preventDefault();const d=i.closest("[data-otp]");e(d,y(d).indexOf(i),t.clipboardData?.getData("text")??"")}),document.addEventListener("keydown",t=>{const i=t.target.closest?.(".otp__cell");if(!i)return;const d=i.closest("[data-otp]"),m=y(d),u=m.indexOf(i);t.key==="Backspace"?(t.preventDefault(),i.value?i.value="":u>0&&(m[u-1].value="",m[u-1].focus()),a(d)):t.key==="Delete"?(t.preventDefault(),i.value="",a(d)):t.key==="ArrowLeft"&&u>0?(t.preventDefault(),m[u-1].focus()):t.key==="ArrowRight"&&u<m.length-1&&(t.preventDefault(),m[u+1].focus())}),document.addEventListener("focusin",t=>{const i=t.target.closest?.(".otp__cell");i&&i.select()});function n(){document.querySelectorAll("[data-otp]").forEach(t=>a(t,{fromCarrier:!0}))}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",n):n(),document.addEventListener("rapid:swapped",n)})(),(()=>{function y(o,a){const e=o.querySelector(".popover__panel"),n=o.querySelector("[data-popover-trigger]");e&&(e.hidden=!a),n&&n.setAttribute("aria-expanded",a?"true":"false")}const b=()=>document.querySelectorAll("[data-popover] .popover__panel:not([hidden])");document.addEventListener("click",o=>{const a=o.target.closest?.("[data-popover-trigger]");if(a){const n=a.closest("[data-popover]"),t=n?.querySelector(".popover__panel");t&&y(n,t.hidden);return}const e=o.target.closest?.("[data-popover]");b().forEach(n=>{const t=n.closest("[data-popover]");t!==e&&y(t,!1)})}),document.addEventListener("keydown",o=>{if(o.key!=="Escape"||o.defaultPrevented)return;const a=o.target.closest?.("[data-popover]"),e=a?[a]:Array.from(b()).map(t=>t.closest("[data-popover]"));let n=!1;e.forEach(t=>{const i=t.querySelector(".popover__panel");!i||i.hidden||(y(t,!1),t.querySelector("[data-popover-trigger]")?.focus(),n=!0)}),n&&o.preventDefault()})})(),(()=>{function y(o){const e=o.querySelector(".segmented__input:checked")?.nextElementSibling;if(!e){o.style.setProperty("--segmented-w","0px");return}const n=o.getBoundingClientRect(),t=e.getBoundingClientRect(),i=getComputedStyle(o).direction==="rtl",d=i?n.right-o.clientLeft-3-t.right:t.left-n.left-o.clientLeft-3;o.style.setProperty("--segmented-x",`${i?-d:d}px`),o.style.setProperty("--segmented-w",`${t.width}px`),o.setAttribute("data-segmented-ready","")}const b=()=>document.querySelectorAll("[data-segmented]").forEach(y);document.readyState==="loading"?document.addEventListener("DOMContentLoaded",b):b(),addEventListener("load",b),addEventListener("resize",b),document.addEventListener("rapid:swapped",b),document.addEventListener("change",o=>{const a=o.target.closest?.("[data-segmented]");a&&y(a)})})(),(()=>{function y(a){const e=a.querySelector("[data-select-ui]");return e?{root:e,input:e.querySelector("input[role='combobox']"),hidden:e.querySelector("[data-combobox-value]"),options:Array.from(e.querySelectorAll("[role='option']"))}:null}document.addEventListener("combobox:pick",a=>{const n=a.target.closest?.("[data-select]")?.querySelector(".select__native");if(!n)return;const t=a.detail?.value??"";n.value!==t&&(n.value=t,n.dispatchEvent(new Event("change",{bubbles:!0})),n.dispatchEvent(new Event("input",{bubbles:!0})))}),document.addEventListener("change",a=>{if(!a.target.matches?.(".select__native"))return;const e=a.target.closest("[data-select]"),n=y(e);if(!n)return;const t=a.target.value,i=n.options.find(m=>m.getAttribute("data-value")===t),d=i?(i.querySelector(".combobox__option-label")?.textContent??i.textContent).trim():"";n.hidden&&(n.hidden.value=t),n.input&&n.input.value!==d&&(n.input.value=d),n.options.forEach(m=>m.setAttribute("aria-selected",String(m===i)))});let b="",o=0;document.addEventListener("keydown",a=>{const e=a.target;if(!e.matches?.("[data-select-ui] input[role='combobox']")||a.key.length!==1||a.metaKey||a.ctrlKey||a.altKey)return;const n=Date.now();b=n-o>600?a.key:b+a.key,o=n;const t=e.closest("[data-select]"),d=y(t)?.options.find(m=>m.getAttribute("aria-disabled")!=="true"&&(m.querySelector(".combobox__option-label")?.textContent??m.textContent).trim().toLowerCase().startsWith(b.toLowerCase()));d&&d.click(),a.preventDefault()})})(),(()=>{function y(a){const e=a.closest("[data-slider]");if(!e)return null;const n=Number(a.min||0),t=Number(a.max||100),i=t===n?0:(Number(a.value)-n)/(t-n)*100;return e.style.setProperty("--slider-pct",`${i.toFixed(2)}%`),e}function b(a,e){const n=a.querySelector("[data-slider-output]");if(!n)return;const t=Number(e.value),i=a.getAttribute("data-slider-labels");if(i){const u=Number(e.step||1),c=Math.round((t-Number(e.min||0))/u);let h=[];try{h=JSON.parse(i)}catch{}n.textContent=h[c]??e.value,a.querySelectorAll(".slider__scale-item").forEach((_,l)=>{_.classList.toggle("slider__scale-item--active",l===c)});return}const d=a.getAttribute("data-slider-unit"),m=a.getAttribute("data-slider-unit-one")||d;n.textContent=d?`${e.value} ${t===1?m:d}`:e.value}function o(){document.querySelectorAll("[data-slider] .slider__input").forEach(y)}document.addEventListener("input",a=>{if(!a.target.matches?.("[data-slider] .slider__input"))return;const e=y(a.target);e&&b(e,a.target)}),document.readyState==="loading"?document.addEventListener("DOMContentLoaded",o):o(),document.addEventListener("rapid:swapped",o)})(),(()=>{document.addEventListener("click",o=>{const a=o.target.closest?.(".tabs__tab");a&&b(a)}),document.addEventListener("keydown",o=>{if(!["ArrowRight","ArrowLeft","Home","End"].includes(o.key))return;const e=o.target.closest?.(".tabs__tab");if(!e)return;const n=[...e.parentElement.querySelectorAll(".tabs__tab")],t=n.indexOf(e);let i;o.key==="Home"?i=n[0]:o.key==="End"?i=n[n.length-1]:o.key==="ArrowRight"?i=n[(t+1)%n.length]:i=n[(t-1+n.length)%n.length],o.preventDefault(),i.focus(),b(i)});function y(){if(location.hash.length<2)return;const o=document.querySelector(`.tabs__tab#${CSS.escape(location.hash.slice(1))}`);if(!o)return;b(o);const a=()=>{document.activeElement===o&&o.blur()};a(),setTimeout(a,50)}y(),addEventListener("load",y),addEventListener("hashchange",y),document.addEventListener("rapid:swapped",y);function b(o){const a=o.closest(".tabs");a&&(a.querySelectorAll(":scope > .tabs__list > .tabs__tab").forEach(e=>{const n=e===o;e.setAttribute("aria-selected",String(n)),e.setAttribute("tabindex",n?"0":"-1")}),a.querySelectorAll(":scope > .tabs__panel").forEach(e=>{e.toggleAttribute("hidden",e.id!==o.getAttribute("aria-controls"))}))}})(),(()=>{const y=new WeakMap;function b(e){const n=Number(e.dataset.toastAutodismiss);!n||y.has(e)||y.set(e,setTimeout(()=>e.remove(),n))}function o(e){const n=Number(e.dataset.toastMax)||4,t=e.querySelectorAll(":scope > .toast");for(let i=0;i<t.length-n;i++)t[i].remove()}function a(e){e.querySelectorAll?.(".toast[data-toast-autodismiss]").forEach(b),e.matches?.(".toast[data-toast-autodismiss]")&&b(e),e.querySelectorAll?.(".toast-region").forEach(o),e.closest?.(".toast-region")&&o(e.closest(".toast-region"))}a(document),new MutationObserver(e=>{for(const n of e)for(const t of n.addedNodes)t.nodeType===1&&a(t)}).observe(document.documentElement,{childList:!0,subtree:!0}),document.addEventListener("click",e=>{const n=e.target.closest?.("[data-toast-open]");if(!n)return;const t=document.querySelector(n.getAttribute("data-toast-open")??""),i=document.querySelector(n.getAttribute("data-toast-region")??"#toast-region");!t?.content||!i||i.append(t.content.cloneNode(!0))})})();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tundralibs/ui",
3
- "version": "0.1.2",
3
+ "version": "0.2.0",
4
4
  "description": "HTML + CSS + JS component and layout library; first-class UI layer for rAPId. The npm package carries the compiled dist/ bundle (served by jsDelivr); the TypeScript templates are published to JSR.",
5
5
  "license": "MIT",
6
6
  "type": "module",