@tundralibs/ui 0.9.0 → 0.10.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.9.0/dist/ui.css">
20
- <script src="https://cdn.jsdelivr.net/npm/@tundralibs/ui@0.9.0/dist/ui.js" defer></script>
19
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@tundralibs/ui@0.10.0/dist/ui.css">
20
+ <script src="https://cdn.jsdelivr.net/npm/@tundralibs/ui@0.10.0/dist/ui.js" defer></script>
21
21
  ```
22
22
 
23
23
  <!-- x-release-please-end -->
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:calc(var(--control-height-md) - 2 * var(--border-width))}.input-group>.input--sm{height:calc(var(--control-height-sm) - 2 * var(--border-width))}.input-group>.input--lg{height:calc(var(--control-height-lg) - 2 * var(--border-width))}.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)}.password{display:flex;flex-direction:column;gap:var(--space-2)}.password__field{position:relative}html.js .password__field .password__input{padding-inline-end:calc(var(--space-4) + 2em)}.password__reveal-icon{display:inline-flex}.password__reveal{position:absolute;inset-block:0;inset-inline-end:var(--space-2);margin-block:auto;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-muted);font:inherit;cursor:pointer}.password__reveal:hover{background:var(--color-surface-alt);color:var(--color-text)}.password__reveal:focus-visible{outline:var(--ring-width) solid var(--ring-color);outline-offset:var(--ring-offset)}.password__strength{display:flex;flex-direction:column;gap:var(--space-1)}.password__bar{display:flex;gap:var(--space-1)}.password__bar i{flex:1;height:4px;border-radius:var(--radius-full, 999px);background:var(--color-border);transition:background var(--transition-fast)}.password__strength-label{margin:0;font-size:var(--font-size-xs);color:var(--color-text-muted)}[data-strength-level="1"] .password__bar i:nth-child(-n+1){background:var(--color-danger)}[data-strength-level="2"] .password__bar i:nth-child(-n+2){background:var(--color-warning)}[data-strength-level="3"] .password__bar i:nth-child(-n+3){background:var(--color-accent, var(--color-primary))}[data-strength-level="4"] .password__bar i{background:var(--color-success)}[data-strength-level="1"] .password__strength-label{color:var(--color-danger)}[data-strength-level="4"] .password__strength-label{color:var(--color-success)}@media(prefers-reduced-motion:reduce){.password__bar i{transition:none}}.password__caps{margin:0;font-size:var(--font-size-xs);color:var(--color-warning)}.input__counter{display:block;margin-block-start:var(--space-1);font-size:var(--font-size-xs);font-variant-numeric:tabular-nums;color:var(--color-text-muted);text-align:end}.input__counter--near{color:var(--color-warning)}.input-clear{position:relative;display:block}.input-clear>input[type=search]::-webkit-search-cancel-button,.input-clear>input[type=search]::-webkit-search-decoration{-webkit-appearance:none;appearance:none}html.js .input-clear>.input{padding-inline-end:calc(var(--space-4) + 1.5em)}.input-clear__button{position:absolute;inset-block:0;inset-inline-end:var(--space-2);margin-block:auto;width:24px;height:24px;border:0;border-radius:var(--radius-full, 999px);background:transparent;color:var(--color-text-muted);font:inherit;font-size:var(--font-size-md);line-height:1;cursor:pointer}.input-clear__button:hover{background:var(--color-surface-alt);color:var(--color-text)}.input-clear__button:focus-visible{outline:var(--ring-width) solid var(--ring-color);outline-offset:var(--ring-offset)}.input-group--email>.input,.input-group--tel>.input,.input-group--url>.input{flex:1 1 auto;min-width:6ch}.input-group--email .select .combobox__input{width:var(--input-group-domain-width, 12ch)}.input-group--tel .select .combobox__input{width:var(--input-group-country-width, 8ch)}.input-group__at{padding-inline:var(--space-2)}.input.textarea--autosize{field-sizing:content;height:auto;min-height:0;resize:none;overflow:hidden}}@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}.select__lead{flex:0 0 auto;display:inline-flex;align-items:center;margin-inline-end:var(--space-2)}.select__lead:empty{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)}.sidebar--collapsed .menu__sublist.menu__sublist--flyout{display:flex;position:fixed;z-index:var(--z-popover);min-width:12rem;max-width:calc(100vw - 2 * var(--space-4));margin:0;padding:var(--space-2);background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md)}.sidebar--collapsed .menu__sublist--flyout .menu__link-label{display:inline}.sidebar--collapsed .menu__sublist--flyout .menu__link{justify-content:flex-start}.menu__flyout-title{padding:var(--space-1) var(--space-3) var(--space-2);font-size:var(--font-size-2xs);font-weight:var(--font-weight-semibold);letter-spacing:var(--letter-spacing-caps);text-transform:uppercase;color:var(--color-text-subtle)}}@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;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:var(--radius-full, 999px);background:var(--color-surface-alt);color:var(--color-text-muted);transition:transform var(--transition-fast),background var(--transition-fast)}.collapsible__trigger:hover .collapsible__icon{background:var(--color-surface-sunken, var(--color-border));color:var(--color-text)}.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-lead{flex:0 0 auto;display:inline-flex;align-items:center}.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{.card-fields__number{font-variant-numeric:tabular-nums;letter-spacing:.04em}.card-fields__brand{min-width:4.5em;justify-content:center;font-size:var(--font-size-2xs);font-weight:var(--font-weight-semibold);letter-spacing:var(--letter-spacing-caps);text-transform:uppercase;color:var(--color-text-subtle)}.card-fields__brand:empty{display:none}.card-fields[data-brand=visa] .card-fields__brand,.card-fields[data-brand=mastercard] .card-fields__brand,.card-fields[data-brand=amex] .card-fields__brand,.card-fields[data-brand=discover] .card-fields__brand{color:var(--color-text)}}@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:calc(var(--control-height-md) - 2 * var(--border-width))}.input-group>.input--sm{height:calc(var(--control-height-sm) - 2 * var(--border-width))}.input-group>.input--lg{height:calc(var(--control-height-lg) - 2 * var(--border-width))}.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)}.password{display:flex;flex-direction:column;gap:var(--space-2)}.password__field{position:relative}html.js .password__field .password__input{padding-inline-end:calc(var(--space-4) + 2em)}.password__reveal-icon{display:inline-flex}.password__reveal{position:absolute;inset-block:0;inset-inline-end:var(--space-2);margin-block:auto;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-muted);font:inherit;cursor:pointer}.password__reveal:hover{background:var(--color-surface-alt);color:var(--color-text)}.password__reveal:focus-visible{outline:var(--ring-width) solid var(--ring-color);outline-offset:var(--ring-offset)}.password__strength{display:flex;flex-direction:column;gap:var(--space-1)}.password__bar{display:flex;gap:var(--space-1)}.password__bar i{flex:1;height:4px;border-radius:var(--radius-full, 999px);background:var(--color-border);transition:background var(--transition-fast)}.password__strength-label{margin:0;font-size:var(--font-size-xs);color:var(--color-text-muted)}[data-strength-level="1"] .password__bar i:nth-child(-n+1){background:var(--color-danger)}[data-strength-level="2"] .password__bar i:nth-child(-n+2){background:var(--color-warning)}[data-strength-level="3"] .password__bar i:nth-child(-n+3){background:var(--color-accent, var(--color-primary))}[data-strength-level="4"] .password__bar i{background:var(--color-success)}[data-strength-level="1"] .password__strength-label{color:var(--color-danger)}[data-strength-level="4"] .password__strength-label{color:var(--color-success)}@media(prefers-reduced-motion:reduce){.password__bar i{transition:none}}.password__caps{margin:0;font-size:var(--font-size-xs);color:var(--color-warning)}.input__counter{display:block;margin-block-start:var(--space-1);font-size:var(--font-size-xs);font-variant-numeric:tabular-nums;color:var(--color-text-muted);text-align:end}.input__counter--near{color:var(--color-warning)}.input-clear{position:relative;display:block}.input-clear>input[type=search]::-webkit-search-cancel-button,.input-clear>input[type=search]::-webkit-search-decoration{-webkit-appearance:none;appearance:none}html.js .input-clear>.input{padding-inline-end:calc(var(--space-4) + 1.5em)}.input-clear__button{position:absolute;inset-block:0;inset-inline-end:var(--space-2);margin-block:auto;width:24px;height:24px;border:0;border-radius:var(--radius-full, 999px);background:transparent;color:var(--color-text-muted);font:inherit;font-size:var(--font-size-md);line-height:1;cursor:pointer}.input-clear__button:hover{background:var(--color-surface-alt);color:var(--color-text)}.input-clear__button:focus-visible{outline:var(--ring-width) solid var(--ring-color);outline-offset:var(--ring-offset)}.input-group--email>.input,.input-group--tel>.input,.input-group--url>.input{flex:1 1 auto;min-width:6ch}.input-group--email .select .combobox__input{width:var(--input-group-domain-width, 12ch)}.input-group--tel .select .combobox__input{width:var(--input-group-country-width, 8ch)}.input-group__at{padding-inline:var(--space-2)}.input.textarea--autosize{field-sizing:content;height:auto;min-height:0;resize:none;overflow:hidden}}@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}.select__lead{flex:0 0 auto;display:inline-flex;align-items:center;margin-inline-end:var(--space-2)}.select__lead:empty{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)}.sidebar--collapsed .menu__sublist.menu__sublist--flyout{display:flex;position:fixed;z-index:var(--z-popover);min-width:12rem;max-width:calc(100vw - 2 * var(--space-4));margin:0;padding:var(--space-2);background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md)}.sidebar--collapsed .menu__sublist--flyout .menu__link-label{display:inline}.sidebar--collapsed .menu__sublist--flyout .menu__link{justify-content:flex-start}.menu__flyout-title{padding:var(--space-1) var(--space-3) var(--space-2);font-size:var(--font-size-2xs);font-weight:var(--font-weight-semibold);letter-spacing:var(--letter-spacing-caps);text-transform:uppercase;color:var(--color-text-subtle)}}@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;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:var(--radius-full, 999px);background:var(--color-surface-alt);color:var(--color-text-muted);transition:transform var(--transition-fast),background var(--transition-fast)}.collapsible__trigger:hover .collapsible__icon{background:var(--color-surface-sunken, var(--color-border));color:var(--color-text)}.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:has(.combobox--open,.datepicker--open,.timepicker--open){overflow:visible}.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-lead{flex:0 0 auto;display:inline-flex;align-items:center}.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);visibility:hidden}.combobox__option[aria-selected=true] .combobox__check{visibility:visible}.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{.timepicker{position:relative;display:inline-flex;flex-direction:column;max-width:100%}.timepicker__native{width:auto}.js .timepicker__native,.timepicker__field{display:none}.js .timepicker__field{display:inline-flex;align-items:center;gap:var(--space-1);height:var(--control-height-md);padding-inline:var(--space-3) var(--space-1);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);font-variant-numeric:tabular-nums;box-shadow:inset 0 1px 2px rgb(var(--shadow-color) / .04);cursor:text;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.timepicker__field:focus-within,.timepicker--open .timepicker__field{outline:var(--ring-width) solid var(--ring-color);outline-offset:1px;border-color:var(--color-primary)}.timepicker--invalid .timepicker__field{border-color:var(--color-danger)}.timepicker__field:has(.timepicker__segment[aria-invalid=true]){border-color:var(--color-danger)}.timepicker--disabled .timepicker__field{background:var(--color-surface-sunken);border-color:var(--color-border);color:var(--color-disabled-text);box-shadow:none;cursor:not-allowed}.timepicker__icon{display:inline-flex;margin-inline-end:var(--space-1);color:var(--color-text-muted)}.timepicker__segment{width:2.4ch;height:calc(var(--control-height-md) - var(--space-3));padding:0;border:none;border-radius:var(--radius-sm);background:transparent;color:inherit;font:inherit;text-align:center;caret-color:transparent}.timepicker__segment::placeholder{color:var(--color-text-subtle)}.timepicker__segment:focus{outline:none;background:var(--color-surface-sunken);background:color-mix(in oklab,var(--color-accent, var(--color-primary)) 16%,var(--color-surface))}.timepicker__segment:disabled{cursor:not-allowed}.timepicker__segment--invalid{color:var(--color-danger)}.timepicker__sep{color:var(--color-text-muted)}.timepicker__zone{display:inline-flex;align-items:center;height:20px;margin-inline-start:var(--space-2);padding-inline:var(--space-2);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);letter-spacing:var(--letter-spacing-caps)}.timepicker__toggle{display:inline-flex;align-items:center;justify-content:center;min-width:28px;min-height:28px;margin-inline-start:auto;padding:0;border:none;border-radius:var(--radius-sm);background:none;color:var(--color-text-muted);cursor:pointer}.timepicker__toggle:hover{background:var(--color-surface-sunken);color:var(--color-text)}.timepicker__toggle:focus-visible{outline:var(--ring-width) solid var(--ring-color);outline-offset:-1px}.timepicker__toggle:disabled{cursor:not-allowed}.timepicker__list{position:absolute;top:calc(100% + var(--space-1));inset-inline-start:0;z-index:var(--z-popover);min-width:100%;max-height:16rem;overflow-y:auto;padding:var(--space-1);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-lg)}.timepicker__list:focus{outline:none}.timepicker__list:focus-visible{outline:var(--ring-width) solid var(--ring-color);outline-offset:1px}.timepicker--end .timepicker__list{inset-inline-start:auto;inset-inline-end:0}.timepicker--open{z-index:var(--z-popover)}.timepicker__slot{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-1) var(--space-2) var(--space-1) var(--space-3);border-radius:var(--radius-sm);font-size:var(--font-size-sm);font-variant-numeric:tabular-nums;cursor:pointer}.timepicker__slot:hover,.timepicker__slot[data-active]{background:var(--color-surface-sunken)}.timepicker__slot[aria-selected=true]{font-weight:var(--font-weight-semibold)}.timepicker__check{display:inline-flex;visibility:hidden}.timepicker__slot[aria-selected=true] .timepicker__check{visibility:visible}}@layer components{.datetimepicker{display:flex;flex-direction:column;gap:var(--space-2);max-width:100%}.datetimepicker__fields{display:flex;flex-wrap:wrap;align-items:flex-start;gap:var(--space-2)}.datetimepicker--invalid .datepicker__trigger{border-color:var(--color-danger)}.js .datetimepicker__presets{display:flex;flex-wrap:wrap;gap:var(--space-1)}.datetimepicker__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}.datetimepicker__preset:hover{border-color:var(--color-primary);color:var(--color-text)}.datetimepicker__preset:focus-visible{outline:var(--ring-width) solid var(--ring-color);outline-offset:1px}.datetimepicker__preset:disabled{color:var(--color-disabled-text);border-color:var(--color-border);cursor:not-allowed}}@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{.card-fields__number{font-variant-numeric:tabular-nums;letter-spacing:.04em}.card-fields__brand{min-width:4.5em;justify-content:center;font-size:var(--font-size-2xs);font-weight:var(--font-weight-semibold);letter-spacing:var(--letter-spacing-caps);text-transform:uppercase;color:var(--color-text-subtle)}.card-fields__brand:empty{display:none}.card-fields[data-brand=visa] .card-fields__brand,.card-fields[data-brand=mastercard] .card-fields__brand,.card-fields[data-brand=amex] .card-fields__brand,.card-fields[data-brand=discover] .card-fields__brand{color:var(--color-text)}}@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 y=new WeakMap;function u(l){const e=l.getAttribute("data-target");if(!e)return l;try{return document.querySelector(e)}catch{return null}}function m(l){if(!l||l.nodeType!==1)return;l.removeAttribute("aria-busy"),delete l.dataset.busy;const e=y.get(l);e&&clearTimeout(e)}function c(l){const e=u(l);!e||e.hasAttribute("data-load")||(e.setAttribute("aria-busy","true"),e.dataset.busy="",y.set(e,setTimeout(()=>m(e),15e3)))}document.addEventListener("click",l=>{if(l.button!==0||l.metaKey||l.ctrlKey||l.shiftKey||l.altKey)return;const e=l.target.closest?.("[data-action]");if(!e||e.tagName==="FORM")return;const a=l.target.closest("a[href]");a&&a!==e&&e.contains(a)||c(e)}),document.addEventListener("submit",l=>{const e=l.target;e?.matches?.("form[data-action]")&&c(e)}),document.addEventListener("rapid:swapped",l=>m(l.target)),document.addEventListener("rapid:error",l=>{m(l.target),document.querySelectorAll("[data-busy]").forEach(m)})})(),(()=>{const v="ui-sidebar-collapsed",y="menu__sublist--flyout",u=()=>document.querySelectorAll(`.${y}`);function m(e){e.classList.remove(y,"is-open"),e.hidden=!0,e.style.removeProperty("left"),e.style.removeProperty("top"),e.querySelector(".menu__flyout-title")?.remove(),document.querySelector(`[data-toggle="#${CSS.escape(e.id)}"]`)?.setAttribute("aria-expanded","false")}const c=()=>u().forEach(m);function l(e,a,i){if(u().forEach(g=>g!==e&&m(g)),!e.querySelector(".menu__flyout-title")){const g=document.createElement("li");g.className="menu__flyout-title",g.textContent=a.querySelector(".menu__link-label")?.textContent?.trim()??"",e.prepend(g)}e.classList.add(y);const r=a.getBoundingClientRect(),d=i.getBoundingClientRect();e.style.left=`${d.right+4}px`,e.style.top=`${r.top}px`;const s=e.offsetHeight;r.top+s>innerHeight-8&&(e.style.top=`${Math.max(8,innerHeight-8-s)}px`)}try{localStorage.getItem(v)==="1"&&document.querySelectorAll(".sidebar").forEach(e=>{e.classList.add("sidebar--collapsed")})}catch{}document.addEventListener("click",e=>{const a=e.target.closest?.(".sidebar--collapsed .menu__link[data-toggle]");if(a){const i=a.closest(".sidebar"),r=document.querySelector(a.getAttribute("data-toggle"));if(!r||!i)return;setTimeout(()=>{r.hidden?m(r):l(r,a,i)},0);return}e.target.closest?.(`.${y}`)||c()}),document.addEventListener("keydown",e=>{if(e.key!=="Escape"||e.defaultPrevented||!u().length)return;const a=[...u()];c(),document.querySelector(`[data-toggle="#${CSS.escape(a[0].id)}"]`)?.focus(),e.preventDefault()}),addEventListener("scroll",c,{capture:!0,passive:!0}),addEventListener("resize",c,{passive:!0});try{localStorage.getItem(v)==="1"&&document.querySelectorAll(".sidebar").forEach(e=>{e.classList.add("sidebar--collapsed")})}catch{}document.addEventListener("click",e=>{const a=e.target.closest?.("[data-collapse]");if(!a)return;const i=a.getAttribute("data-collapse");if(!i||i==="#")return;const r=document.querySelector(i);if(!r)return;c();const d=r.classList.toggle("sidebar--collapsed");a.setAttribute("aria-expanded",String(!d));try{localStorage.setItem(v,d?"1":"0")}catch{}})})(),document.addEventListener("click",v=>{const y=v.target.closest("[data-dismiss]");y&&y.closest("[data-dismissible]")?.remove()}),document.documentElement.classList.add("js"),(()=>{function v(u){const m=u.querySelector("table");return m?[...m.querySelectorAll("tbody tr")]:[...u.querySelectorAll("[data-filter-item]")]}function y(u){const c=(u.querySelector("[data-table-search]")?.value||"").trim().toLowerCase(),l=[...u.querySelectorAll("[data-table-filter]")].filter(i=>!(i.type==="radio"||i.type==="checkbox")||i.checked).map(i=>i.value).filter(Boolean).map(i=>i.toLowerCase());let e=0;v(u).forEach(i=>{const r=i.textContent.toLowerCase(),d=(!c||r.includes(c))&&l.every(s=>r.includes(s));i.hidden=!d,d&&e++});const a=u.querySelector("[data-filter-empty]");a&&(a.hidden=e>0)}document.addEventListener("input",u=>{if(!u.target.matches("[data-table-search]"))return;const m=u.target.closest("[data-filter-scope]");m&&y(m)}),document.addEventListener("change",u=>{if(!u.target.matches("[data-table-filter]"))return;const m=u.target.closest("[data-filter-scope]");m&&y(m)})})(),(()=>{const v="ui-theme",y=document.documentElement;try{const u=localStorage.getItem(v);(u==="dark"||u==="light")&&(y.dataset.theme=u)}catch{}document.addEventListener("click",u=>{if(!u.target.closest("[data-theme-toggle]"))return;const c=matchMedia("(prefers-color-scheme: dark)").matches,e=(y.dataset.theme==="dark"||y.dataset.theme!=="light"&&c?"dark":"light")==="dark"?"light":"dark";y.dataset.theme=e;try{localStorage.setItem(v,e)}catch{}})})(),(()=>{const v=u=>u.hasAttribute("data-toggle-class");document.addEventListener("click",u=>{const m=u.target.closest?.("[data-toggle]");if(!m)return;const c=m.getAttribute("data-toggle"),l=c&&c!=="#"&&document.querySelector(c);if(!l)return;const e=m.getAttribute("aria-expanded")==="true";m.setAttribute("aria-expanded",String(!e)),v(m)||l.toggleAttribute("hidden",e),l.classList.toggle("is-open",!e)}),document.addEventListener("click",u=>{const m=u.target.closest?.("[data-toggle-close]");if(!m)return;const c=m.getAttribute("data-toggle-close"),l=c?document.querySelector(c):m.closest("[data-toggle-panel]");l&&y(l)}),document.addEventListener("keydown",u=>{u.key!=="Escape"||u.defaultPrevented||document.querySelectorAll("[data-toggle-class][aria-expanded='true']").forEach(m=>{const c=document.querySelector(m.getAttribute("data-toggle")??"");c&&(y(c),m.focus(),u.preventDefault())})});function y(u){u.classList.remove("is-open"),document.querySelectorAll('[data-toggle][aria-expanded="true"]').forEach(m=>{const c=m.getAttribute("data-toggle");c&&document.querySelector(c)===u&&(m.setAttribute("aria-expanded","false"),v(m)||u.setAttribute("hidden",""))})}})(),document.addEventListener("change",v=>{const y=v.target.closest?.("[data-view-target]");if(!y||y.type==="radio"&&!y.checked)return;const u=document.querySelector(y.getAttribute("data-view-target")??"");u&&u.setAttribute("data-view",y.value)}),(()=>{const v=[["amex",/^3[47]/,"Amex"],["visa",/^4/,"Visa"],["mastercard",/^(5[1-5]|2[2-7])/,"Mastercard"],["discover",/^6(011|5)/,"Discover"],["diners",/^3(0[0-5]|[68])/,"Diners"],["jcb",/^35/,"JCB"]],y=a=>a.replace(/\D/g,"");function u(a,i){return i==="amex"?[a.slice(0,4),a.slice(4,10),a.slice(10,15)].filter(Boolean).join(" "):a.match(/.{1,4}/g)?.join(" ")??""}function m(a){let i=0,r=!1;for(let d=a.length-1;d>=0;d--){let s=Number(a[d]);r&&(s*=2,s>9&&(s-=9)),i+=s,r=!r}return i%10===0}function c(a){const i=a.closest("[data-card-fields]"),r=y(a.value).slice(0,19),d=v.find(([,g])=>g.test(r)),s=u(r,d?.[0]);if(a.value!==s){const g=a.selectionEnd===a.value.length;a.value=s,g||a.setSelectionRange(s.length,s.length)}if(i){i.dataset.brand=d?.[0]??"";const g=i.querySelector("[data-card-brand]");g&&(g.textContent=r.length>=2?d?.[2]??"":"");const t=i.querySelector("[data-card-cvc]");if(t){const p=d?.[0]==="amex"?4:3;t.setAttribute("maxlength",String(p)),t.setAttribute("pattern",`[0-9]{${p}}`)}const n=r.length>=13,o=i.hasAttribute("data-luhn")&&n&&!m(r);a.setCustomValidity(o?a.getAttribute("data-msg-luhn")||"Check the card number":"")}}function l(a){let i=y(a.value).slice(0,4);i.length===1&&Number(i)>1&&(i=`0${i}`);const r=i.length>2?`${i.slice(0,2)}/${i.slice(2)}`:i;a.value!==r&&!(a.value===`${i}/`&&i.length===2)&&(a.value=r);let d="";if(i.length===4){const s=Number(i.slice(0,2)),g=2e3+Number(i.slice(2)),t=new Date,n=g<t.getFullYear()||g===t.getFullYear()&&s<t.getMonth()+1;s<1||s>12?d=a.getAttribute("data-msg-pattern")||"Enter MM/YY":n&&(d=a.getAttribute("data-msg-expired")||"This card has expired")}a.setCustomValidity(d)}document.addEventListener("input",a=>{const i=a.target;i?.matches?.("[data-card-number]")?c(i):i?.matches?.("[data-card-expiry]")?l(i):i?.matches?.("[data-card-cvc]")&&(i.value=y(i.value).slice(0,Number(i.getAttribute("maxlength"))||4))},!0);function e(){document.querySelectorAll("[data-card-number]").forEach(a=>a.value&&c(a)),document.querySelectorAll("[data-card-expiry]").forEach(a=>a.value&&l(a))}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",e):e(),document.addEventListener("rapid:swapped",e)})(),(()=>{const v="[data-chart]",y=new Set,u=globalThis.matchMedia?.("(prefers-color-scheme: dark)");function m(){const r=document.documentElement.dataset.theme;return r==="dark"||r==="light"?r:u?.matches?"dark":"light"}function c(){const r=getComputedStyle(document.documentElement).getPropertyValue("--font-family-base").trim();return{theme:{mode:m(),tokens:!0},chart:r?{fontFamily:r,background:"transparent"}:{background:"transparent"}}}function l(r){if(r.dataset.chartInitialized||typeof globalThis.ApexCharts>"u")return;const d=JSON.parse(r.dataset.chart||"{}"),s=c(),g={...d,theme:{...s.theme,...d.theme||{}},chart:{...s.chart,...d.chart||{}}},t=new globalThis.ApexCharts(r,g);r.dataset.chartInitialized="true",r.chart=t,y.add(r),t.render()}function e(r){r.chart&&(r.chart.destroy(),delete r.chart,delete r.dataset.chartInitialized,y.delete(r))}function a(){for(const r of y){if(!r.isConnected){e(r);continue}r.chart.refreshTokens?.(),r.chart.updateOptions(c(),!1,!0)}}const i=()=>document.querySelectorAll(v).forEach(l);i(),addEventListener("load",i),document.addEventListener("rapid:swapped",i),new MutationObserver(r=>{for(const d of r){for(const s of d.addedNodes)s.nodeType===1&&(s.matches?.(v)&&l(s),s.querySelectorAll?.(v).forEach(l));for(const s of d.removedNodes)s.nodeType===1&&(s.matches?.(v)&&e(s),s.querySelectorAll?.(v).forEach(e))}}).observe(document.documentElement,{childList:!0,subtree:!0}),new MutationObserver(a).observe(document.documentElement,{attributes:!0,attributeFilter:["data-theme"]}),u?.addEventListener?.("change",a)})(),document.addEventListener("click",v=>{const y=v.target.closest("[data-toggle]");if(!y)return;const u=y.closest("[data-accordion-group]");u&&u.querySelectorAll('[data-toggle][aria-expanded="true"]').forEach(m=>{if(m===y)return;const c=m.getAttribute("data-toggle"),l=c&&document.querySelector(c);m.setAttribute("aria-expanded","false"),l?.setAttribute("hidden",""),l?.classList.remove("is-open")})}),(()=>{const v="data-active",y='<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>',u=o=>o.querySelector("input[role='combobox']"),m=o=>Array.from(o.querySelectorAll('[role="option"]')).filter(p=>!p.hidden);function c(o){return m(o).findIndex(p=>p.hasAttribute(v))}function l(o){o.querySelectorAll(`[${v}]`).forEach(p=>p.removeAttribute(v)),u(o)?.removeAttribute("aria-activedescendant")}function e(o,p){const h=m(o);if(!h.length)return;const S=(p+h.length)%h.length;l(o),h[S].setAttribute(v,"");const f=u(o);f&&h[S].id&&f.setAttribute("aria-activedescendant",h[S].id);const b=h[S].closest(".combobox__list");if(!b)return;const E=h[S].offsetTop;E<b.scrollTop&&(b.scrollTop=E);const A=E+h[S].offsetHeight;A>b.scrollTop+b.clientHeight&&(b.scrollTop=A-b.clientHeight)}const a=o=>o.classList.contains("combobox--open");function i(o,p){const h=o.querySelector(".combobox__list"),S=u(o);h&&(h.hidden=!p),S&&S.setAttribute("aria-expanded",p?"true":"false"),o.classList.toggle("combobox--open",!!p),p||l(o)}function r(o){const p=u(o),h=o.querySelector(".combobox__list");if(!p||!h)return;const S=p.value.trim().toLowerCase();let f=0;o.querySelectorAll('[role="option"]').forEach(A=>{const _=A.querySelector(".combobox__option-label")?.textContent??A.textContent,w=!S||_.toLowerCase().includes(S);A.hidden=!w,w&&f++}),l(o),o.querySelectorAll(".combobox__group").forEach(A=>{let _=A.nextElementSibling,w=!1;for(;_&&!_.classList.contains("combobox__group")&&!_.classList.contains("combobox__hints");){if(_.matches('[role="option"]')&&!_.hidden){w=!0;break}_=_.nextElementSibling}A.hidden=!w});const b=o.querySelector(".combobox__count");b&&(b.textContent=f===1?"1 match":`${f} matches`);let E=h.querySelector(".combobox__empty");E||(E=document.createElement("div"),E.className="combobox__empty",E.textContent="No matches.",h.insertBefore(E,h.querySelector(".combobox__hints"))),E.hidden=f>0}const d=new WeakMap;function s(o){const p=u(o),h=p?.getAttribute("data-combobox-action"),S=p?.getAttribute("data-combobox-target");if(h&&S&&globalThis.rapid?.swap){clearTimeout(d.get(o)),d.set(o,setTimeout(()=>{const f=`${h}${h.includes("?")?"&":"?"}q=${encodeURIComponent(p.value.trim())}`;globalThis.rapid.swap(f,S).then(()=>l(o))},150));return}r(o)}function g(o,p){const h=u(o),S=o.querySelector("[data-combobox-value]"),f=(p.querySelector(".combobox__option-label")?.textContent??p.textContent).trim();h&&(h.value=f),S&&(S.value=p.getAttribute("data-value")??f),o.querySelectorAll('[role="option"]').forEach(b=>b.setAttribute("aria-selected",String(b===p))),i(o,!1),o.dispatchEvent(new CustomEvent("combobox:pick",{bubbles:!0,detail:{value:S?.value??f,label:f}}))}function t(o,p){const h=o.querySelector(".combobox__field"),S=u(o),f=p.getAttribute("data-value")??"",b=(p.querySelector(".combobox__option-label")?.textContent??p.textContent).trim(),E=o.getAttribute("data-combobox-name")??"";if(!h||!S||Array.from(h.querySelectorAll(".combobox__token input")).some(k=>k.value===f))return;const A=document.createElement("span");A.className="combobox__token",A.append(b);const _=document.createElement("button");_.type="button",_.className="combobox__token-remove",_.setAttribute("aria-label",`Remove ${b}`),_.setAttribute("data-combobox-remove",f),_.innerHTML=y;const w=document.createElement("input");w.type="hidden",w.name=E,w.value=f,A.append(_,w),h.insertBefore(A,S),p.setAttribute("aria-selected","true"),S.value="",s(o),S.focus()}function n(o,p){o.querySelectorAll(".combobox__token").forEach(h=>{h.querySelector("input")?.value===p&&h.remove()}),o.querySelectorAll(`[role="option"][data-value="${CSS.escape(p)}"]`).forEach(h=>h.setAttribute("aria-selected","false"))}document.addEventListener("keydown",o=>{const p=o.target.closest?.("[data-combobox]");if(p){if(o.key==="ArrowDown"||o.key==="ArrowUp")o.preventDefault(),i(p,!0),e(p,c(p)+(o.key==="ArrowDown"?1:-1));else if(o.key==="Enter"){const h=c(p),S=m(p);h>=0&&S[h]&&(o.preventDefault(),S[h].click())}else if(o.key==="Escape"){if(!a(p))return;o.preventDefault(),o.stopPropagation(),i(p,!1)}else if(o.key==="Backspace"&&p.classList.contains("combobox--multi")&&o.target.matches("input[role='combobox']")&&!o.target.value){const h=p.querySelector(".combobox__field .combobox__token:last-of-type input");h&&n(p,h.value)}}}),document.addEventListener("input",o=>{const p=o.target.closest?.("[data-combobox]");if(!p||!o.target.matches("input[role='combobox']"))return;const h=p.querySelector("[data-combobox-value]");h&&(h.value=""),s(p),i(p,!0)}),document.addEventListener("focusin",o=>{const p=o.target.closest?.("[data-combobox]");p&&o.target.matches("input[role='combobox']")&&i(p,!0)}),document.addEventListener("click",o=>{const p=o.target.closest?.("[data-combobox] .combobox__field");if(p&&!o.target.closest("input, button")){const f=p.closest("[data-combobox]"),b=u(f);b&&!b.disabled&&(a(f)?i(f,!1):(b.focus(),i(f,!0)));return}const h=o.target.closest?.("[data-combobox] [role='option']");if(h){if(h.getAttribute("aria-disabled")==="true")return;const f=h.closest("[data-combobox]");f.classList.contains("combobox--multi")?t(f,h):g(f,h);return}const S=o.target.closest?.("[data-combobox-remove]");if(S){const f=S.closest("[data-combobox]");f&&n(f,S.getAttribute("data-combobox-remove")??"");return}document.querySelectorAll("[data-combobox].combobox--open").forEach(f=>{o.target.closest?.("[data-combobox]")!==f&&i(f,!1)})})})(),(()=>{const v="data-active",y=new WeakMap,u=n=>n.querySelector(".command__input"),m=n=>Array.from(n.querySelectorAll('[role="option"]')).filter(o=>!o.hidden);function c(n){return m(n).findIndex(o=>o.hasAttribute(v))}function l(n){n.querySelectorAll(`[${v}]`).forEach(o=>o.removeAttribute(v)),u(n)?.removeAttribute("aria-activedescendant")}function e(n,o){const p=m(n);if(!p.length)return;const h=(o+p.length)%p.length;l(n),p[h].setAttribute(v,"");const S=u(n);S&&p[h].id&&S.setAttribute("aria-activedescendant",p[h].id);const f=p[h].closest(".command__list");if(!f)return;const b=p[h].offsetTop;b<f.scrollTop&&(f.scrollTop=b);const E=b+p[h].offsetHeight;E>f.scrollTop+f.clientHeight&&(f.scrollTop=E-f.clientHeight)}function a(n){const o=u(n),p=n.querySelector(".command__list");if(!o||!p)return;const h=o.value.trim().toLowerCase();let S=0;n.querySelectorAll('[role="option"]').forEach(E=>{const A=E.querySelector(".command__item-label")?.textContent??E.textContent,_=!h||A.toLowerCase().includes(h);E.hidden=!_,_&&S++}),l(n),n.querySelectorAll(".command__group").forEach(E=>{let A=E.nextElementSibling,_=!1;for(;A&&!A.classList.contains("command__group");){if(A.matches('[role="option"]')&&!A.hidden){_=!0;break}A=A.nextElementSibling}E.hidden=!_});const f=n.querySelector(".command__count");f&&(f.textContent=S===1?"1 result":`${S} results`);let b=p.querySelector(".command__empty");b||(b=document.createElement("div"),b.className="command__empty",b.textContent="Nothing matches that.",p.append(b)),b.hidden=S>0,S&&e(n,0)}const i=new WeakMap;function r(n){const o=u(n),p=o?.getAttribute("data-command-action"),h=o?.getAttribute("data-command-target");if(p&&h&&globalThis.rapid?.swap){clearTimeout(i.get(n)),i.set(n,setTimeout(()=>{const S=`${p}${p.includes("?")?"&":"?"}q=${encodeURIComponent(o.value.trim())}`;globalThis.rapid.swap(S,h).then(()=>{l(n),m(n).length&&e(n,0)})},150));return}a(n)}const d=n=>!n.classList.contains("command--inline");function s(n){if(!d(n))return;n.hidden=!0;const o=y.get(n);y.delete(n),o?.isConnected&&o.focus()}function g(n){const o=u(n);o&&o.value?(o.value="",o.dispatchEvent(new Event("input",{bubbles:!0}))):s(n)}function t(n,o){y.set(n,o??document.activeElement),n.hidden=!1,u(n)?.focus()}document.addEventListener("keydown",n=>{if(n.key==="k"&&(n.metaKey||n.ctrlKey)){const p=document.querySelector("[data-command]:not(.command--inline)");if(!p)return;n.preventDefault(),t(p);return}const o=n.target.closest?.("[data-command]");if(o){if(n.key==="ArrowDown"||n.key==="ArrowUp")n.preventDefault(),e(o,c(o)+(n.key==="ArrowDown"?1:-1));else if(n.key==="Enter"){const p=c(o),h=m(o);p>=0&&h[p]&&(n.preventDefault(),h[p].click())}else if(n.key==="Escape"){if(!d(o)&&!u(o)?.value)return;n.preventDefault(),n.stopPropagation(),g(o)}else if(n.key==="Tab"&&d(o)){const p=Array.from(o.querySelectorAll("input, button, a[href], [tabindex]:not([tabindex='-1'])")).filter(f=>!f.hidden&&f.offsetParent!==null);if(!p.length)return;const h=p[0],S=p[p.length-1];n.shiftKey&&document.activeElement===h?(n.preventDefault(),S.focus()):!n.shiftKey&&document.activeElement===S&&(n.preventDefault(),h.focus())}}}),document.addEventListener("input",n=>{const o=n.target.closest?.("[data-command]");o&&n.target.matches(".command__input")&&r(o)}),document.addEventListener("click",n=>{const o=n.target.closest?.("[data-command-open]");if(o){const f=o.getAttribute("data-command-open"),b=f?document.querySelector(f):document.querySelector("[data-command]:not(.command--inline)");b&&(n.preventDefault(),t(b,o));return}const p=n.target.closest?.("[data-command-dismiss]");if(p){const f=p.closest("[data-command]");f&&g(f);return}const h=n.target.closest?.("[data-command] [role='option']");if(h){const f=h.closest("[data-command]");f&&d(f)&&s(f);return}const S=n.target.closest?.("[data-command]:not(.command--inline)");S&&!n.target.closest(".command__sheet")&&s(S)})})(),(()=>{const v=new Map;function y(d){if(!d.id)return;const s=new Set;d.querySelectorAll("[data-select-row]:checked").forEach(g=>s.add(g.value)),v.set(d.id,s)}function u(d){const s=d.id&&v.get(d.id);s?.size&&d.querySelectorAll("[data-select-row]").forEach(g=>{s.has(g.value)&&c(g,!0)})}function m(d){const s=d.querySelector("[data-bulk-bar]"),g=d.querySelectorAll("[data-select-row]"),t=d.querySelectorAll("[data-select-row]:checked").length;if(s){s.hidden=t===0;const o=s.querySelector("[data-bulk-count]");o&&(o.textContent=t===1?"1 row selected":`${t} rows selected`)}const n=d.querySelector("[data-select-all]");n&&(n.checked=t>0&&t===g.length,n.indeterminate=t>0&&t<g.length)}function c(d,s){d.checked=s,d.closest("tr")?.classList.toggle("data-table__row--selected",s)}document.addEventListener("change",d=>{const s=d.target.closest?.(".data-table");if(s){if(d.target.matches("[data-select-all]"))s.querySelectorAll("[data-select-row]").forEach(g=>c(g,d.target.checked));else if(d.target.matches("[data-select-row]"))c(d.target,d.target.checked);else return;m(s),y(s)}}),document.addEventListener("click",d=>{const s=d.target.closest?.("[data-bulk-clear]");if(!s)return;const g=s.closest(".data-table");g&&(g.querySelectorAll("[data-select-row]").forEach(t=>c(t,!1)),m(g),y(g))});const l=()=>document.querySelectorAll(".data-table__row-actions:not([hidden])"),e=d=>document.querySelector(`[data-row-actions="#${CSS.escape(d.id)}"]`);function a(d){d.classList.remove("is-closing"),d.hidden=!0,d.style.removeProperty("max-width")}function i(d,s){const g=e(d);g?.setAttribute("aria-expanded","false"),s&&g?.focus(),!(d.hidden||d.classList.contains("is-closing"))&&(d.classList.add("is-closing"),getComputedStyle(d).animationName==="none"?a(d):d.addEventListener("animationend",()=>a(d),{once:!0}))}document.addEventListener("click",d=>{const s=d.target.closest?.("[data-row-actions]"),g=d.target.closest?.("[data-row-actions-close]");if(g){const t=g.closest(".data-table__row-actions");t&&i(t,!0);return}if(s){const t=document.querySelector(s.getAttribute("data-row-actions"));if(!t)return;t.classList.contains("is-closing")&&a(t);const n=t.hidden;if(l().forEach(o=>i(o,!1)),n){const o=t.closest(".data-table__scroll");if(o){const p=o.getBoundingClientRect().left,h=[...t.closest("tr").querySelectorAll("td.data-table__select, td.data-table__cell--pinned")].map(S=>S.getBoundingClientRect().right-p);t.style.maxWidth=`${o.clientWidth-Math.max(0,...h)}px`}t.hidden=!1,s.setAttribute("aria-expanded","true"),t.querySelector("a, button")?.focus()}return}l().forEach(t=>{t.contains(d.target)||i(t,!1)})}),document.addEventListener("keydown",d=>{if(d.key!=="Escape"||d.defaultPrevented)return;const s=d.target.closest?.(".data-table__row-actions");s&&(i(s,!0),d.preventDefault(),d.stopPropagation())});function r(d){document.querySelectorAll(".data-table").forEach(s=>{d&&u(s),m(s),y(s)})}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>r(!1)):r(!1),document.addEventListener("rapid:swapped",d=>{const s=String(d.detail?.method??"get").toLowerCase();r(s==="get")})})(),(()=>{const v=["January","February","March","April","May","June","July","August","September","October","November","December"],y=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],u=s=>String(s).padStart(2,"0"),m=(s,g,t)=>`${s}-${u(g+1)}-${u(t)}`,c=s=>{const g=/^(\d{4})-(\d{2})-(\d{2})$/.exec(s??"");return g?`${Number(g[3])} ${y[Number(g[2])-1]} ${g[1]}`:""},l=()=>{const s=new Date;return m(s.getFullYear(),s.getMonth(),s.getDate())};function e(s,g,t){const n=s.querySelector(".datepicker__panel"),o=s.querySelector("[data-datepicker-trigger]");n&&(n.hidden=!g),s.classList.toggle("datepicker--open",!!g),o&&(o.setAttribute("aria-expanded",g?"true":"false"),!g&&t&&o.focus())}function a(s){return{range:s.hasAttribute("data-datepicker-range"),min:s.getAttribute("data-datepicker-min")||"",max:s.getAttribute("data-datepicker-max")||"",today:s.getAttribute("data-datepicker-today")||l(),start:s.querySelector("[data-datepicker-start]")?.value||"",end:s.querySelector("[data-datepicker-end]")?.value||""}}function i(s,g,t){const n=a(s),o=s.querySelector(".datepicker__days"),p=s.querySelector(".datepicker__month");if(!o)return;o.replaceChildren(),p&&(p.textContent=`${v[t]} ${g}`),s.setAttribute("data-datepicker-view",`${g}-${t}`);const h=new Date(g,t+1,0).getDate(),S=(new Date(g,t,1).getDay()+6)%7,f=new Date(g,t,0).getDate(),b=Math.ceil((S+h)/7)*7;for(let E=0;E<b;E++){const A=E-S+1;let _=g,w=t,k=A;A<1?(w=t-1,k=f+A,w<0&&(w=11,_--)):A>h&&(w=t+1,k=A-h,w>11&&(w=0,_++));const q=m(_,w,k),x=document.createElement("button");x.type="button",x.className="datepicker__day",(A<1||A>h)&&x.classList.add("datepicker__day--outside"),q===n.today&&(x.classList.add("datepicker__day--today"),x.setAttribute("aria-current","date")),n.start&&n.end&&q>n.start&&q<n.end&&x.classList.add("datepicker__day--in-range"),q===n.start&&x.classList.add("datepicker__day--start"),q===n.end&&x.classList.add("datepicker__day--end"),(q===n.start||q===n.end)&&x.setAttribute("aria-pressed","true"),(n.min&&q<n.min||n.max&&q>n.max)&&(x.disabled=!0),x.setAttribute("data-day",q),x.setAttribute("aria-label",`${k} ${v[w]} ${_}`),x.textContent=String(k),o.append(x)}}function r(s){const g=s.getAttribute("data-datepicker-view");if(g){const[o,p]=g.split("-").map(Number);return[o,p]}const t=a(s),n=t.start||t.today;return[Number(n.slice(0,4)),Number(n.slice(5,7))-1]}function d(s,g){const t=a(s),n=s.querySelector("[data-datepicker-start]"),o=s.querySelector("[data-datepicker-end]"),p=s.querySelector("[data-datepicker-label]");let h=g,S="";t.range&&t.start&&!t.end&&g>=t.start&&(h=t.start,S=g),n&&(n.value=h),o&&(o.value=S),p&&(p.textContent=t.range?`${c(h)||"Start date"} \u2013 ${c(S)||"End date"}`:c(h)),n?.dispatchEvent(new Event("change",{bubbles:!0}));const[f,b]=r(s);i(s,f,b),(!t.range||S)&&e(s,!1,!0)}document.addEventListener("click",s=>{const g=s.target.closest?.("[data-datepicker-trigger]");if(g){const n=g.closest("[data-datepicker]"),o=n?.querySelector(".datepicker__panel");o&&e(n,o.hidden);return}const t=s.target.closest?.("[data-datepicker]");if(t&&!t.hasAttribute("data-datepicker-server")){const n=s.target.closest("button[data-day]");if(n&&!n.disabled){d(t,n.getAttribute("data-day"));return}const o=s.target.closest("button[data-month]");if(o){const[p,h]=o.getAttribute("data-month").split("-").map(Number);i(t,p,h);const S={"prev-year":[p-1,h],prev:h===0?[p-1,11]:[p,h-1],next:h===11?[p+1,0]:[p,h+1],"next-year":[p+1,h]};t.querySelectorAll("button[data-month][data-nav]").forEach(f=>{const b=S[f.getAttribute("data-nav")];b&&f.setAttribute("data-month",`${b[0]}-${b[1]}`)});return}}document.querySelectorAll("[data-datepicker]:not(.datepicker--inline) .datepicker__panel:not([hidden])").forEach(n=>{const o=n.closest("[data-datepicker]");o!==t&&e(o,!1)})}),document.addEventListener("keydown",s=>{if(s.key!=="Escape"||s.defaultPrevented)return;const g=s.target.closest?.("[data-datepicker]"),t=g?.querySelector(".datepicker__panel");!t||t.hidden||g.classList.contains("datepicker--inline")||(s.preventDefault(),e(g,!1,!0))})})(),(()=>{const v=()=>document.querySelectorAll(".dropdown__panel.is-open"),y=a=>document.querySelector(`[data-toggle="#${CSS.escape(a.id)}"]`),u=".data-table__scroll, [data-dropdown-clip]";function m(a,i){if(!i?.closest(u))return;const r=i.getBoundingClientRect();a.classList.add("dropdown__panel--fixed");const d=a.offsetWidth;let g=a.classList.contains("dropdown__panel--end")?r.right-d:r.left;g=Math.max(8,Math.min(g,innerWidth-d-8));let t=r.bottom+4;t+a.offsetHeight>innerHeight-8&&(t=Math.max(8,r.top-a.offsetHeight-4)),a.style.left=`${g}px`,a.style.top=`${t}px`}function c(a,i){a.setAttribute("hidden",""),a.classList.remove("is-open","dropdown__panel--fixed"),a.style.removeProperty("left"),a.style.removeProperty("top"),i?.setAttribute("aria-expanded","false")}document.addEventListener("click",a=>{v().forEach(i=>{const r=y(i);if(r?.contains(a.target)){i.classList.contains("dropdown__panel--fixed")||m(i,r);return}if(i.contains(a.target)){const d=a.target.closest("a[href], button, [data-action]");if(!d||d.hasAttribute("data-toggle"))return}c(i,r)})}),document.addEventListener("keydown",a=>{if(a.key!=="Escape"||a.defaultPrevented)return;const i=a.target.closest?.(".dropdown"),r=i?i.querySelectorAll(".dropdown__panel.is-open"):v();let d=!1;r.forEach(s=>{const g=y(s);c(s,g),g?.focus(),d=!0}),d&&a.preventDefault()});const l=a=>{const i=a.closest(u)?.getBoundingClientRect(),r=a.getBoundingClientRect();return!i||r.bottom>i.top&&r.top<i.bottom&&r.right>i.left&&r.left<i.right},e=()=>{document.querySelectorAll(".dropdown__panel--fixed.is-open").forEach(a=>{const i=y(a);i&&l(i)?m(a,i):c(a,i)})};addEventListener("scroll",e,{capture:!0,passive:!0}),addEventListener("resize",e,{passive:!0})})(),(()=>{for(const c of["dragenter","dragover"])document.addEventListener(c,l=>{const e=l.target.closest?.(".dropzone__area");e&&(l.preventDefault(),e.classList.add("dropzone__area--over"))});for(const c of["dragleave","drop"])document.addEventListener(c,l=>{l.target.closest?.(".dropzone__area")?.classList.remove("dropzone__area--over")});document.addEventListener("click",c=>{const l=c.target.closest?.("[data-dropzone-remove]");l&&l.closest(".dropzone__file")?.remove()});const v=c=>c<1024?`${c} B`:c<1024*1024?`${Math.round(c/1024)} KB`:`${(c/(1024*1024)).toFixed(1)} MB`;function y(c){const l=document.createElement("div");l.className="dropzone__file dropzone__file--pending";const e=document.createElement("span");e.className="dropzone__file-icon",e.textContent=(c.name.split(".").pop()||"").slice(0,4).toLowerCase();const a=document.createElement("span");a.className="dropzone__file-body";const i=document.createElement("span");i.className="dropzone__file-row";const r=document.createElement("span");r.className="dropzone__file-name",r.textContent=c.name;const d=document.createElement("span");d.className="dropzone__file-size",d.textContent=v(c.size),i.append(r,d);const s=document.createElement("progress");return s.className="dropzone__bar",s.max=100,s.setAttribute("aria-label",`Uploading ${c.name}`),a.append(i,s),l.append(e,a),l}const u=new Map;document.addEventListener("submit",c=>{const l=c.target;if(!l?.matches?.("form[data-action]"))return;const e=l.querySelector("[data-dropzone]"),a=e?.querySelector("input[type=file]");if(!e||!a?.files?.length)return;let i=e.querySelector(".dropzone__files");i||(i=document.createElement("div"),i.className="dropzone__files",e.append(i));const r=[...a.files].map(d=>{const s=y(d);return i.append(s),s});u.set(l.getAttribute("data-action"),{zone:e,rows:r})}),document.addEventListener("rapid:progress",c=>{const l=u.get(c.detail?.url);if(!l)return;const{loaded:e,total:a}=c.detail;for(const i of l.rows){const r=i.querySelector("progress");r&&(a>0?r.value=Math.min(100,Math.round(e/a*100)):r.removeAttribute("value"))}});const m=(c,l)=>{const e=c.detail?.url,a=e?u.get(e):void 0;if(a&&(u.delete(e),!!l))for(const i of a.rows){if(!i.isConnected)continue;i.classList.remove("dropzone__file--pending"),i.classList.add("dropzone__file--error"),i.querySelector("progress")?.remove();const r=document.createElement("span");r.className="dropzone__file-error",r.textContent="Upload failed",i.querySelector(".dropzone__file-body")?.append(r)}};document.addEventListener("rapid:swapped",c=>m(c,!1)),document.addEventListener("rapid:error",c=>m(c,!0))})(),(()=>{const v={bold:["**","**"],italic:["_","_"],strike:["~~","~~"],code:["`","`"]},y={heading:"## ",quote:"> ",ul:"- ",ol:"1. "},u={heading:"h2",quote:"blockquote",code:"pre"},m={bold:"bold",italic:"italic",underline:"underline",strike:"strikeThrough"},c={ul:"insertUnorderedList",ol:"insertOrderedList"},l=f=>f.querySelector(".editor__source"),e=f=>f.querySelector("[data-editor-surface]"),a=f=>f.getAttribute("data-editor-mode")==="html";function i(f,b,E,A,_,w){f.value=f.value.slice(0,b)+A+f.value.slice(E),f.setSelectionRange(b+_,b+w),f.focus(),f.dispatchEvent(new Event("input",{bubbles:!0}))}function r(f){const b=f.value.lastIndexOf(`
3
- `,f.selectionStart-1)+1,E=f.value.indexOf(`
4
- `,Math.max(f.selectionEnd,b)),A=f.selectionEnd>f.selectionStart&&f.value[f.selectionEnd-1]===`
5
- `?f.selectionEnd-1:E===-1?f.value.length:E;return[b,A]}const d=/^(#{1,6} |> |- |\* |\d+\. )+/;function s(f,b){const E=f.selectionStart,A=f.selectionEnd,_=f.value.slice(E,A);if(v[b]){const[L,C]=v[b],D=b==="code"&&_.includes(`
6
- `),$=D?"```\n":L,M=D?"\n```":C;if(_.startsWith($)&&_.endsWith(M)&&_.length>=$.length+M.length){const O=_.slice($.length,_.length-M.length);i(f,E,A,O,0,O.length);return}if(f.value.slice(E-$.length,E)===$&&f.value.slice(A,A+M.length)===M){i(f,E-$.length,A+M.length,_,0,_.length);return}const T=_||b;i(f,E,A,$+T+M,$.length,$.length+T.length);return}if(b==="link"||b==="image"){const C=`${b==="image"?"!":""}[${_||(b==="image"?"alt text":"text")}](url)`;i(f,E,A,C,C.length-4,C.length-1);return}if(b==="hr"){const C=`${E===0||f.value[E-1]===`
2
+ (()=>{const E=new WeakMap;function p(f){const r=f.getAttribute("data-target");if(!r)return f;try{return document.querySelector(r)}catch{return null}}function m(f){if(!f||f.nodeType!==1)return;f.removeAttribute("aria-busy"),delete f.dataset.busy;const r=E.get(f);r&&clearTimeout(r)}function c(f){const r=p(f);!r||r.hasAttribute("data-load")||(r.setAttribute("aria-busy","true"),r.dataset.busy="",E.set(r,setTimeout(()=>m(r),15e3)))}document.addEventListener("click",f=>{if(f.button!==0||f.metaKey||f.ctrlKey||f.shiftKey||f.altKey)return;const r=f.target.closest?.("[data-action]");if(!r||r.tagName==="FORM")return;const o=f.target.closest("a[href]");o&&o!==r&&r.contains(o)||c(r)}),document.addEventListener("submit",f=>{const r=f.target;r?.matches?.("form[data-action]")&&c(r)}),document.addEventListener("rapid:swapped",f=>m(f.target)),document.addEventListener("rapid:error",f=>{m(f.target),document.querySelectorAll("[data-busy]").forEach(m)})})(),(()=>{const A="ui-sidebar-collapsed",E="menu__sublist--flyout",p=()=>document.querySelectorAll(`.${E}`);function m(r){r.classList.remove(E,"is-open"),r.hidden=!0,r.style.removeProperty("left"),r.style.removeProperty("top"),r.querySelector(".menu__flyout-title")?.remove(),document.querySelector(`[data-toggle="#${CSS.escape(r.id)}"]`)?.setAttribute("aria-expanded","false")}const c=()=>p().forEach(m);function f(r,o,l){if(p().forEach(u=>u!==r&&m(u)),!r.querySelector(".menu__flyout-title")){const u=document.createElement("li");u.className="menu__flyout-title",u.textContent=o.querySelector(".menu__link-label")?.textContent?.trim()??"",r.prepend(u)}r.classList.add(E);const s=o.getBoundingClientRect(),t=l.getBoundingClientRect();r.style.left=`${t.right+4}px`,r.style.top=`${s.top}px`;const d=r.offsetHeight;s.top+d>innerHeight-8&&(r.style.top=`${Math.max(8,innerHeight-8-d)}px`)}try{localStorage.getItem(A)==="1"&&document.querySelectorAll(".sidebar").forEach(r=>{r.classList.add("sidebar--collapsed")})}catch{}document.addEventListener("click",r=>{const o=r.target.closest?.(".sidebar--collapsed .menu__link[data-toggle]");if(o){const l=o.closest(".sidebar"),s=document.querySelector(o.getAttribute("data-toggle"));if(!s||!l)return;setTimeout(()=>{s.hidden?m(s):f(s,o,l)},0);return}r.target.closest?.(`.${E}`)||c()}),document.addEventListener("keydown",r=>{if(r.key!=="Escape"||r.defaultPrevented||!p().length)return;const o=[...p()];c(),document.querySelector(`[data-toggle="#${CSS.escape(o[0].id)}"]`)?.focus(),r.preventDefault()}),addEventListener("scroll",c,{capture:!0,passive:!0}),addEventListener("resize",c,{passive:!0});try{localStorage.getItem(A)==="1"&&document.querySelectorAll(".sidebar").forEach(r=>{r.classList.add("sidebar--collapsed")})}catch{}document.addEventListener("click",r=>{const o=r.target.closest?.("[data-collapse]");if(!o)return;const l=o.getAttribute("data-collapse");if(!l||l==="#")return;const s=document.querySelector(l);if(!s)return;c();const t=s.classList.toggle("sidebar--collapsed");o.setAttribute("aria-expanded",String(!t));try{localStorage.setItem(A,t?"1":"0")}catch{}})})(),document.addEventListener("click",A=>{const E=A.target.closest("[data-dismiss]");E&&E.closest("[data-dismissible]")?.remove()}),document.documentElement.classList.add("js"),(()=>{function A(p){const m=p.querySelector("table");return m?[...m.querySelectorAll("tbody tr")]:[...p.querySelectorAll("[data-filter-item]")]}function E(p){const c=(p.querySelector("[data-table-search]")?.value||"").trim().toLowerCase(),f=[...p.querySelectorAll("[data-table-filter]")].filter(l=>!(l.type==="radio"||l.type==="checkbox")||l.checked).map(l=>l.value).filter(Boolean).map(l=>l.toLowerCase());let r=0;A(p).forEach(l=>{const s=l.textContent.toLowerCase(),t=(!c||s.includes(c))&&f.every(d=>s.includes(d));l.hidden=!t,t&&r++});const o=p.querySelector("[data-filter-empty]");o&&(o.hidden=r>0)}document.addEventListener("input",p=>{if(!p.target.matches("[data-table-search]"))return;const m=p.target.closest("[data-filter-scope]");m&&E(m)}),document.addEventListener("change",p=>{if(!p.target.matches("[data-table-filter]"))return;const m=p.target.closest("[data-filter-scope]");m&&E(m)})})(),(()=>{const A="ui-theme",E=document.documentElement;try{const p=localStorage.getItem(A);(p==="dark"||p==="light")&&(E.dataset.theme=p)}catch{}document.addEventListener("click",p=>{if(!p.target.closest("[data-theme-toggle]"))return;const c=matchMedia("(prefers-color-scheme: dark)").matches,r=(E.dataset.theme==="dark"||E.dataset.theme!=="light"&&c?"dark":"light")==="dark"?"light":"dark";E.dataset.theme=r;try{localStorage.setItem(A,r)}catch{}})})(),(()=>{const A=p=>p.hasAttribute("data-toggle-class");document.addEventListener("click",p=>{const m=p.target.closest?.("[data-toggle]");if(!m)return;const c=m.getAttribute("data-toggle"),f=c&&c!=="#"&&document.querySelector(c);if(!f)return;const r=m.getAttribute("aria-expanded")==="true";m.setAttribute("aria-expanded",String(!r)),A(m)||f.toggleAttribute("hidden",r),f.classList.toggle("is-open",!r)}),document.addEventListener("click",p=>{const m=p.target.closest?.("[data-toggle-close]");if(!m)return;const c=m.getAttribute("data-toggle-close"),f=c?document.querySelector(c):m.closest("[data-toggle-panel]");f&&E(f)}),document.addEventListener("keydown",p=>{p.key!=="Escape"||p.defaultPrevented||document.querySelectorAll("[data-toggle-class][aria-expanded='true']").forEach(m=>{const c=document.querySelector(m.getAttribute("data-toggle")??"");c&&(E(c),m.focus(),p.preventDefault())})});function E(p){p.classList.remove("is-open"),document.querySelectorAll('[data-toggle][aria-expanded="true"]').forEach(m=>{const c=m.getAttribute("data-toggle");c&&document.querySelector(c)===p&&(m.setAttribute("aria-expanded","false"),A(m)||p.setAttribute("hidden",""))})}})(),document.addEventListener("change",A=>{const E=A.target.closest?.("[data-view-target]");if(!E||E.type==="radio"&&!E.checked)return;const p=document.querySelector(E.getAttribute("data-view-target")??"");p&&p.setAttribute("data-view",E.value)}),(()=>{const A=[["amex",/^3[47]/,"Amex"],["visa",/^4/,"Visa"],["mastercard",/^(5[1-5]|2[2-7])/,"Mastercard"],["discover",/^6(011|5)/,"Discover"],["diners",/^3(0[0-5]|[68])/,"Diners"],["jcb",/^35/,"JCB"]],E=o=>o.replace(/\D/g,"");function p(o,l){return l==="amex"?[o.slice(0,4),o.slice(4,10),o.slice(10,15)].filter(Boolean).join(" "):o.match(/.{1,4}/g)?.join(" ")??""}function m(o){let l=0,s=!1;for(let t=o.length-1;t>=0;t--){let d=Number(o[t]);s&&(d*=2,d>9&&(d-=9)),l+=d,s=!s}return l%10===0}function c(o){const l=o.closest("[data-card-fields]"),s=E(o.value).slice(0,19),t=A.find(([,u])=>u.test(s)),d=p(s,t?.[0]);if(o.value!==d){const u=o.selectionEnd===o.value.length;o.value=d,u||o.setSelectionRange(d.length,d.length)}if(l){l.dataset.brand=t?.[0]??"";const u=l.querySelector("[data-card-brand]");u&&(u.textContent=s.length>=2?t?.[2]??"":"");const e=l.querySelector("[data-card-cvc]");if(e){const g=t?.[0]==="amex"?4:3;e.setAttribute("maxlength",String(g)),e.setAttribute("pattern",`[0-9]{${g}}`)}const a=s.length>=13,n=l.hasAttribute("data-luhn")&&a&&!m(s);o.setCustomValidity(n?o.getAttribute("data-msg-luhn")||"Check the card number":"")}}function f(o){let l=E(o.value).slice(0,4);l.length===1&&Number(l)>1&&(l=`0${l}`);const s=l.length>2?`${l.slice(0,2)}/${l.slice(2)}`:l;o.value!==s&&!(o.value===`${l}/`&&l.length===2)&&(o.value=s);let t="";if(l.length===4){const d=Number(l.slice(0,2)),u=2e3+Number(l.slice(2)),e=new Date,a=u<e.getFullYear()||u===e.getFullYear()&&d<e.getMonth()+1;d<1||d>12?t=o.getAttribute("data-msg-pattern")||"Enter MM/YY":a&&(t=o.getAttribute("data-msg-expired")||"This card has expired")}o.setCustomValidity(t)}document.addEventListener("input",o=>{const l=o.target;l?.matches?.("[data-card-number]")?c(l):l?.matches?.("[data-card-expiry]")?f(l):l?.matches?.("[data-card-cvc]")&&(l.value=E(l.value).slice(0,Number(l.getAttribute("maxlength"))||4))},!0);function r(){document.querySelectorAll("[data-card-number]").forEach(o=>o.value&&c(o)),document.querySelectorAll("[data-card-expiry]").forEach(o=>o.value&&f(o))}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",r):r(),document.addEventListener("rapid:swapped",r)})(),(()=>{const A="[data-chart]",E=new Set,p=globalThis.matchMedia?.("(prefers-color-scheme: dark)");function m(){const s=document.documentElement.dataset.theme;return s==="dark"||s==="light"?s:p?.matches?"dark":"light"}function c(){const s=getComputedStyle(document.documentElement).getPropertyValue("--font-family-base").trim();return{theme:{mode:m(),tokens:!0},chart:s?{fontFamily:s,background:"transparent"}:{background:"transparent"}}}function f(s){if(s.dataset.chartInitialized||typeof globalThis.ApexCharts>"u")return;const t=JSON.parse(s.dataset.chart||"{}"),d=c(),u={...t,theme:{...d.theme,...t.theme||{}},chart:{...d.chart,...t.chart||{}}},e=new globalThis.ApexCharts(s,u);s.dataset.chartInitialized="true",s.chart=e,E.add(s),e.render()}function r(s){s.chart&&(s.chart.destroy(),delete s.chart,delete s.dataset.chartInitialized,E.delete(s))}function o(){for(const s of E){if(!s.isConnected){r(s);continue}s.chart.refreshTokens?.(),s.chart.updateOptions(c(),!1,!0)}}const l=()=>document.querySelectorAll(A).forEach(f);l(),addEventListener("load",l),document.addEventListener("rapid:swapped",l),new MutationObserver(s=>{for(const t of s){for(const d of t.addedNodes)d.nodeType===1&&(d.matches?.(A)&&f(d),d.querySelectorAll?.(A).forEach(f));for(const d of t.removedNodes)d.nodeType===1&&(d.matches?.(A)&&r(d),d.querySelectorAll?.(A).forEach(r))}}).observe(document.documentElement,{childList:!0,subtree:!0}),new MutationObserver(o).observe(document.documentElement,{attributes:!0,attributeFilter:["data-theme"]}),p?.addEventListener?.("change",o)})(),document.addEventListener("click",A=>{const E=A.target.closest("[data-toggle]");if(!E)return;const p=E.closest("[data-accordion-group]");p&&p.querySelectorAll('[data-toggle][aria-expanded="true"]').forEach(m=>{if(m===E)return;const c=m.getAttribute("data-toggle"),f=c&&document.querySelector(c);m.setAttribute("aria-expanded","false"),f?.setAttribute("hidden",""),f?.classList.remove("is-open")})}),(()=>{const A="data-active",E='<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>',p=n=>n.querySelector("input[role='combobox']"),m=n=>Array.from(n.querySelectorAll('[role="option"]')).filter(g=>!g.hidden);function c(n){return m(n).findIndex(g=>g.hasAttribute(A))}function f(n){n.querySelectorAll(`[${A}]`).forEach(g=>g.removeAttribute(A)),p(n)?.removeAttribute("aria-activedescendant")}function r(n,g){const y=m(n);if(!y.length)return;const S=(g+y.length)%y.length;f(n),y[S].setAttribute(A,"");const h=p(n);h&&y[S].id&&h.setAttribute("aria-activedescendant",y[S].id);const k=y[S].closest(".combobox__list");if(!k)return;const _=y[S].offsetTop;_<k.scrollTop&&(k.scrollTop=_);const i=_+y[S].offsetHeight;i>k.scrollTop+k.clientHeight&&(k.scrollTop=i-k.clientHeight)}const o=n=>n.classList.contains("combobox--open");function l(n,g){const y=n.querySelector(".combobox__list"),S=p(n);y&&(y.hidden=!g),S&&S.setAttribute("aria-expanded",g?"true":"false"),n.classList.toggle("combobox--open",!!g),g||f(n)}function s(n){const g=p(n),y=n.querySelector(".combobox__list");if(!g||!y)return;const S=g.value.trim().toLowerCase();let h=0;n.querySelectorAll('[role="option"]').forEach(i=>{const b=i.querySelector(".combobox__option-label")?.textContent??i.textContent,v=!S||b.toLowerCase().includes(S);i.hidden=!v,v&&h++}),f(n),n.querySelectorAll(".combobox__group").forEach(i=>{let b=i.nextElementSibling,v=!1;for(;b&&!b.classList.contains("combobox__group")&&!b.classList.contains("combobox__hints");){if(b.matches('[role="option"]')&&!b.hidden){v=!0;break}b=b.nextElementSibling}i.hidden=!v});const k=n.querySelector(".combobox__count");k&&(k.textContent=h===1?"1 match":`${h} matches`);let _=y.querySelector(".combobox__empty");_||(_=document.createElement("div"),_.className="combobox__empty",_.textContent="No matches.",y.insertBefore(_,y.querySelector(".combobox__hints"))),_.hidden=h>0}const t=new WeakMap;function d(n){const g=p(n),y=g?.getAttribute("data-combobox-action"),S=g?.getAttribute("data-combobox-target");if(y&&S&&globalThis.rapid?.swap){clearTimeout(t.get(n)),t.set(n,setTimeout(()=>{const h=`${y}${y.includes("?")?"&":"?"}q=${encodeURIComponent(g.value.trim())}`;globalThis.rapid.swap(h,S).then(()=>f(n))},150));return}s(n)}function u(n,g){const y=p(n),S=n.querySelector("[data-combobox-value]"),h=(g.querySelector(".combobox__option-label")?.textContent??g.textContent).trim();y&&(y.value=h),S&&(S.value=g.getAttribute("data-value")??h),n.querySelectorAll('[role="option"]').forEach(k=>k.setAttribute("aria-selected",String(k===g))),l(n,!1),n.dispatchEvent(new CustomEvent("combobox:pick",{bubbles:!0,detail:{value:S?.value??h,label:h}}))}function e(n,g){const y=n.querySelector(".combobox__field"),S=p(n),h=g.getAttribute("data-value")??"",k=(g.querySelector(".combobox__option-label")?.textContent??g.textContent).trim(),_=n.getAttribute("data-combobox-name")??"";if(!y||!S||Array.from(y.querySelectorAll(".combobox__token input")).some(w=>w.value===h))return;const i=document.createElement("span");i.className="combobox__token",i.append(k);const b=document.createElement("button");b.type="button",b.className="combobox__token-remove",b.setAttribute("aria-label",`Remove ${k}`),b.setAttribute("data-combobox-remove",h),b.innerHTML=E;const v=document.createElement("input");v.type="hidden",v.name=_,v.value=h,i.append(b,v),y.insertBefore(i,S),g.setAttribute("aria-selected","true"),S.value="",d(n),S.focus()}function a(n,g){n.querySelectorAll(".combobox__token").forEach(y=>{y.querySelector("input")?.value===g&&y.remove()}),n.querySelectorAll(`[role="option"][data-value="${CSS.escape(g)}"]`).forEach(y=>y.setAttribute("aria-selected","false"))}document.addEventListener("keydown",n=>{const g=n.target.closest?.("[data-combobox]");if(g){if(n.key==="ArrowDown"||n.key==="ArrowUp")n.preventDefault(),l(g,!0),r(g,c(g)+(n.key==="ArrowDown"?1:-1));else if(n.key==="Enter"){const y=c(g),S=m(g);y>=0&&S[y]&&(n.preventDefault(),S[y].click())}else if(n.key==="Escape"){if(!o(g))return;n.preventDefault(),n.stopPropagation(),l(g,!1)}else if(n.key==="Backspace"&&g.classList.contains("combobox--multi")&&n.target.matches("input[role='combobox']")&&!n.target.value){const y=g.querySelector(".combobox__field .combobox__token:last-of-type input");y&&a(g,y.value)}}}),document.addEventListener("input",n=>{const g=n.target.closest?.("[data-combobox]");if(!g||!n.target.matches("input[role='combobox']"))return;const y=g.querySelector("[data-combobox-value]");y&&(y.value=""),d(g),l(g,!0)}),document.addEventListener("focusin",n=>{const g=n.target.closest?.("[data-combobox]");g&&n.target.matches("input[role='combobox']")&&l(g,!0)}),document.addEventListener("click",n=>{const g=n.target.closest?.("[data-combobox] .combobox__field");if(g&&!n.target.closest("input, button")){const h=g.closest("[data-combobox]"),k=p(h);k&&!k.disabled&&(o(h)?l(h,!1):(k.focus(),l(h,!0)));return}const y=n.target.closest?.("[data-combobox] [role='option']");if(y){if(y.getAttribute("aria-disabled")==="true")return;const h=y.closest("[data-combobox]");h.classList.contains("combobox--multi")?e(h,y):u(h,y);return}const S=n.target.closest?.("[data-combobox-remove]");if(S){const h=S.closest("[data-combobox]");h&&a(h,S.getAttribute("data-combobox-remove")??"");return}document.querySelectorAll("[data-combobox].combobox--open").forEach(h=>{n.target.closest?.("[data-combobox]")!==h&&l(h,!1)})})})(),(()=>{const A="data-active",E=new WeakMap,p=a=>a.querySelector(".command__input"),m=a=>Array.from(a.querySelectorAll('[role="option"]')).filter(n=>!n.hidden);function c(a){return m(a).findIndex(n=>n.hasAttribute(A))}function f(a){a.querySelectorAll(`[${A}]`).forEach(n=>n.removeAttribute(A)),p(a)?.removeAttribute("aria-activedescendant")}function r(a,n){const g=m(a);if(!g.length)return;const y=(n+g.length)%g.length;f(a),g[y].setAttribute(A,"");const S=p(a);S&&g[y].id&&S.setAttribute("aria-activedescendant",g[y].id);const h=g[y].closest(".command__list");if(!h)return;const k=g[y].offsetTop;k<h.scrollTop&&(h.scrollTop=k);const _=k+g[y].offsetHeight;_>h.scrollTop+h.clientHeight&&(h.scrollTop=_-h.clientHeight)}function o(a){const n=p(a),g=a.querySelector(".command__list");if(!n||!g)return;const y=n.value.trim().toLowerCase();let S=0;a.querySelectorAll('[role="option"]').forEach(_=>{const i=_.querySelector(".command__item-label")?.textContent??_.textContent,b=!y||i.toLowerCase().includes(y);_.hidden=!b,b&&S++}),f(a),a.querySelectorAll(".command__group").forEach(_=>{let i=_.nextElementSibling,b=!1;for(;i&&!i.classList.contains("command__group");){if(i.matches('[role="option"]')&&!i.hidden){b=!0;break}i=i.nextElementSibling}_.hidden=!b});const h=a.querySelector(".command__count");h&&(h.textContent=S===1?"1 result":`${S} results`);let k=g.querySelector(".command__empty");k||(k=document.createElement("div"),k.className="command__empty",k.textContent="Nothing matches that.",g.append(k)),k.hidden=S>0,S&&r(a,0)}const l=new WeakMap;function s(a){const n=p(a),g=n?.getAttribute("data-command-action"),y=n?.getAttribute("data-command-target");if(g&&y&&globalThis.rapid?.swap){clearTimeout(l.get(a)),l.set(a,setTimeout(()=>{const S=`${g}${g.includes("?")?"&":"?"}q=${encodeURIComponent(n.value.trim())}`;globalThis.rapid.swap(S,y).then(()=>{f(a),m(a).length&&r(a,0)})},150));return}o(a)}const t=a=>!a.classList.contains("command--inline");function d(a){if(!t(a))return;a.hidden=!0;const n=E.get(a);E.delete(a),n?.isConnected&&n.focus()}function u(a){const n=p(a);n&&n.value?(n.value="",n.dispatchEvent(new Event("input",{bubbles:!0}))):d(a)}function e(a,n){E.set(a,n??document.activeElement),a.hidden=!1,p(a)?.focus()}document.addEventListener("keydown",a=>{if(a.key==="k"&&(a.metaKey||a.ctrlKey)){const g=document.querySelector("[data-command]:not(.command--inline)");if(!g)return;a.preventDefault(),e(g);return}const n=a.target.closest?.("[data-command]");if(n){if(a.key==="ArrowDown"||a.key==="ArrowUp")a.preventDefault(),r(n,c(n)+(a.key==="ArrowDown"?1:-1));else if(a.key==="Enter"){const g=c(n),y=m(n);g>=0&&y[g]&&(a.preventDefault(),y[g].click())}else if(a.key==="Escape"){if(!t(n)&&!p(n)?.value)return;a.preventDefault(),a.stopPropagation(),u(n)}else if(a.key==="Tab"&&t(n)){const g=Array.from(n.querySelectorAll("input, button, a[href], [tabindex]:not([tabindex='-1'])")).filter(h=>!h.hidden&&h.offsetParent!==null);if(!g.length)return;const y=g[0],S=g[g.length-1];a.shiftKey&&document.activeElement===y?(a.preventDefault(),S.focus()):!a.shiftKey&&document.activeElement===S&&(a.preventDefault(),y.focus())}}}),document.addEventListener("input",a=>{const n=a.target.closest?.("[data-command]");n&&a.target.matches(".command__input")&&s(n)}),document.addEventListener("click",a=>{const n=a.target.closest?.("[data-command-open]");if(n){const h=n.getAttribute("data-command-open"),k=h?document.querySelector(h):document.querySelector("[data-command]:not(.command--inline)");k&&(a.preventDefault(),e(k,n));return}const g=a.target.closest?.("[data-command-dismiss]");if(g){const h=g.closest("[data-command]");h&&u(h);return}const y=a.target.closest?.("[data-command] [role='option']");if(y){const h=y.closest("[data-command]");h&&t(h)&&d(h);return}const S=a.target.closest?.("[data-command]:not(.command--inline)");S&&!a.target.closest(".command__sheet")&&d(S)})})(),(()=>{const A=new Map;function E(t){if(!t.id)return;const d=new Set;t.querySelectorAll("[data-select-row]:checked").forEach(u=>d.add(u.value)),A.set(t.id,d)}function p(t){const d=t.id&&A.get(t.id);d?.size&&t.querySelectorAll("[data-select-row]").forEach(u=>{d.has(u.value)&&c(u,!0)})}function m(t){const d=t.querySelector("[data-bulk-bar]"),u=t.querySelectorAll("[data-select-row]"),e=t.querySelectorAll("[data-select-row]:checked").length;if(d){d.hidden=e===0;const n=d.querySelector("[data-bulk-count]");n&&(n.textContent=e===1?"1 row selected":`${e} rows selected`)}const a=t.querySelector("[data-select-all]");a&&(a.checked=e>0&&e===u.length,a.indeterminate=e>0&&e<u.length)}function c(t,d){t.checked=d,t.closest("tr")?.classList.toggle("data-table__row--selected",d)}document.addEventListener("change",t=>{const d=t.target.closest?.(".data-table");if(d){if(t.target.matches("[data-select-all]"))d.querySelectorAll("[data-select-row]").forEach(u=>c(u,t.target.checked));else if(t.target.matches("[data-select-row]"))c(t.target,t.target.checked);else return;m(d),E(d)}}),document.addEventListener("click",t=>{const d=t.target.closest?.("[data-bulk-clear]");if(!d)return;const u=d.closest(".data-table");u&&(u.querySelectorAll("[data-select-row]").forEach(e=>c(e,!1)),m(u),E(u))});const f=()=>document.querySelectorAll(".data-table__row-actions:not([hidden])"),r=t=>document.querySelector(`[data-row-actions="#${CSS.escape(t.id)}"]`);function o(t){t.classList.remove("is-closing"),t.hidden=!0,t.style.removeProperty("max-width")}function l(t,d){const u=r(t);u?.setAttribute("aria-expanded","false"),d&&u?.focus(),!(t.hidden||t.classList.contains("is-closing"))&&(t.classList.add("is-closing"),getComputedStyle(t).animationName==="none"?o(t):t.addEventListener("animationend",()=>o(t),{once:!0}))}document.addEventListener("click",t=>{const d=t.target.closest?.("[data-row-actions]"),u=t.target.closest?.("[data-row-actions-close]");if(u){const e=u.closest(".data-table__row-actions");e&&l(e,!0);return}if(d){const e=document.querySelector(d.getAttribute("data-row-actions"));if(!e)return;e.classList.contains("is-closing")&&o(e);const a=e.hidden;if(f().forEach(n=>l(n,!1)),a){const n=e.closest(".data-table__scroll");if(n){const g=n.getBoundingClientRect().left,y=[...e.closest("tr").querySelectorAll("td.data-table__select, td.data-table__cell--pinned")].map(S=>S.getBoundingClientRect().right-g);e.style.maxWidth=`${n.clientWidth-Math.max(0,...y)}px`}e.hidden=!1,d.setAttribute("aria-expanded","true"),e.querySelector("a, button")?.focus()}return}f().forEach(e=>{e.contains(t.target)||l(e,!1)})}),document.addEventListener("keydown",t=>{if(t.key!=="Escape"||t.defaultPrevented)return;const d=t.target.closest?.(".data-table__row-actions");d&&(l(d,!0),t.preventDefault(),t.stopPropagation())});function s(t){document.querySelectorAll(".data-table").forEach(d=>{t&&p(d),m(d),E(d)})}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>s(!1)):s(!1),document.addEventListener("rapid:swapped",t=>{const d=String(t.detail?.method??"get").toLowerCase();s(d==="get")})})(),(()=>{const A=["January","February","March","April","May","June","July","August","September","October","November","December"],E=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],p=u=>String(u).padStart(2,"0"),m=(u,e,a)=>`${u}-${p(e+1)}-${p(a)}`,c=u=>{const e=/^(\d{4})-(\d{2})-(\d{2})$/.exec(u??"");return e?`${Number(e[3])} ${E[Number(e[2])-1]} ${e[1]}`:""},f=()=>{const u=new Date;return m(u.getFullYear(),u.getMonth(),u.getDate())};function r(u,e,a){const n=u.querySelector(".datepicker__panel"),g=u.querySelector("[data-datepicker-trigger]");n&&(n.hidden=!e),u.classList.toggle("datepicker--open",!!e),g&&(g.setAttribute("aria-expanded",e?"true":"false"),!e&&a&&g.focus())}function o(u){return{range:u.hasAttribute("data-datepicker-range"),min:u.getAttribute("data-datepicker-min")||"",max:u.getAttribute("data-datepicker-max")||"",today:u.getAttribute("data-datepicker-today")||f(),start:u.querySelector("[data-datepicker-start]")?.value||"",end:u.querySelector("[data-datepicker-end]")?.value||""}}function l(u,e,a){const n=o(u),g=u.querySelector(".datepicker__days"),y=u.querySelector(".datepicker__month");if(!g)return;g.replaceChildren(),y&&(y.textContent=`${A[a]} ${e}`),u.setAttribute("data-datepicker-view",`${e}-${a}`);const S=new Date(e,a+1,0).getDate(),h=(new Date(e,a,1).getDay()+6)%7,k=new Date(e,a,0).getDate(),_=Math.ceil((h+S)/7)*7;for(let i=0;i<_;i++){const b=i-h+1;let v=e,w=a,x=b;b<1?(w=a-1,x=k+b,w<0&&(w=11,v--)):b>S&&(w=a+1,x=b-S,w>11&&(w=0,v++));const q=m(v,w,x),L=document.createElement("button");L.type="button",L.className="datepicker__day",(b<1||b>S)&&L.classList.add("datepicker__day--outside"),q===n.today&&(L.classList.add("datepicker__day--today"),L.setAttribute("aria-current","date")),n.start&&n.end&&q>n.start&&q<n.end&&L.classList.add("datepicker__day--in-range"),q===n.start&&L.classList.add("datepicker__day--start"),q===n.end&&L.classList.add("datepicker__day--end"),(q===n.start||q===n.end)&&L.setAttribute("aria-pressed","true"),(n.min&&q<n.min||n.max&&q>n.max)&&(L.disabled=!0),L.setAttribute("data-day",q),L.setAttribute("aria-label",`${x} ${A[w]} ${v}`),L.textContent=String(x),g.append(L)}}function s(u,e,a){const n={"prev-year":[e-1,a],prev:a===0?[e-1,11]:[e,a-1],next:a===11?[e+1,0]:[e,a+1],"next-year":[e+1,a]};u.querySelectorAll("button[data-month][data-nav]").forEach(g=>{const y=n[g.getAttribute("data-nav")];y&&g.setAttribute("data-month",`${y[0]}-${y[1]}`)})}function t(u){const e=u.getAttribute("data-datepicker-view");if(e){const[g,y]=e.split("-").map(Number);return[g,y]}const a=o(u),n=a.start||a.today;return[Number(n.slice(0,4)),Number(n.slice(5,7))-1]}function d(u,e){const a=o(u),n=u.querySelector("[data-datepicker-start]"),g=u.querySelector("[data-datepicker-end]"),y=u.querySelector("[data-datepicker-label]");let S=e,h="";a.range&&a.start&&!a.end&&e>=a.start&&(S=a.start,h=e),n&&(n.value=S),g&&(g.value=h),y&&(y.textContent=a.range?`${c(S)||"Start date"} \u2013 ${c(h)||"End date"}`:c(S)),n?.dispatchEvent(new Event("change",{bubbles:!0}));const[k,_]=t(u);l(u,k,_),(!a.range||h)&&r(u,!1,!0)}document.addEventListener("click",u=>{const e=u.target.closest?.("[data-datepicker-trigger]");if(e){const n=e.closest("[data-datepicker]"),g=n?.querySelector(".datepicker__panel");g&&r(n,g.hidden);return}const a=u.target.closest?.("[data-datepicker]");if(a&&!a.hasAttribute("data-datepicker-server")){const n=u.target.closest("button[data-day]");if(n&&!n.disabled){d(a,n.getAttribute("data-day"));return}const g=u.target.closest("button[data-month]");if(g){const[y,S]=g.getAttribute("data-month").split("-").map(Number);l(a,y,S),s(a,y,S);return}}document.querySelectorAll("[data-datepicker]:not(.datepicker--inline) .datepicker__panel:not([hidden])").forEach(n=>{const g=n.closest("[data-datepicker]");g!==a&&r(g,!1)})}),document.addEventListener("datepicker:refresh",u=>{const e=u.target?.closest?.("[data-datepicker]");if(!e||e.hasAttribute("data-datepicker-server"))return;const a=u.detail?.value;if(typeof a=="string"){const y=e.querySelector("[data-datepicker-start]"),S=e.querySelector("[data-datepicker-label]");y&&(y.value=a),S&&(S.textContent=c(a)||"Pick a date"),e.removeAttribute("data-datepicker-view")}const[n,g]=t(e);l(e,n,g),s(e,n,g)}),document.addEventListener("keydown",u=>{if(u.key!=="Escape"||u.defaultPrevented)return;const e=u.target.closest?.("[data-datepicker]"),a=e?.querySelector(".datepicker__panel");!a||a.hidden||e.classList.contains("datepicker--inline")||(u.preventDefault(),r(e,!1,!0))})})(),(()=>{const A=t=>String(t).padStart(2,"0");function E(t){const d=t.querySelector("[data-timepicker]");return{date:t.querySelector("[data-datepicker]"),dateInput:t.querySelector("[data-datepicker-start]"),time:d,timeValue:d?.querySelector("[data-timepicker-value]"),hour:d?.querySelector("[data-segment='hour']"),whole:t.querySelector("[data-datetime-value]")}}const p=t=>t.hasAttribute("data-datetimepicker-local");function m(t,d){const u=new Date(d||"");if(!(!d||Number.isNaN(u.getTime())))return p(t)?{date:`${u.getFullYear()}-${A(u.getMonth()+1)}-${A(u.getDate())}`,time:`${A(u.getHours())}:${A(u.getMinutes())}`}:{date:`${u.getUTCFullYear()}-${A(u.getUTCMonth()+1)}-${A(u.getUTCDate())}`,time:`${A(u.getUTCHours())}:${A(u.getUTCMinutes())}`}}function c(t,d,u){if(!d||!u)return"";const e=new Date(`${d}T${u}:00${p(t)?"":"Z"}`);return Number.isNaN(e.getTime())?"":`${e.toISOString().slice(0,16)}:00Z`}const f=(t,d,u)=>u?t.setAttribute(d,u):t.removeAttribute(d);function r(t){const d=E(t);if(!d.time||!d.whole)return;const u=d.dateInput?.value||"",e=d.timeValue?.value||"",a=m(t,t.getAttribute("data-datetimepicker-min")),n=m(t,t.getAttribute("data-datetimepicker-max"));f(d.time,"data-timepicker-min",a&&u===a.date?a.time:""),f(d.time,"data-timepicker-max",n&&u===n.date?n.time:"");const g=t.hasAttribute("data-datetimepicker-required");let y="";!u&&(e||g)?y=t.getAttribute("data-msg-date")||"Pick a date.":u&&!e&&!g&&(y=d.hour?.getAttribute("data-msg-required")||"Enter a time."),f(d.time,"data-timepicker-error",y),d.time.dispatchEvent(new CustomEvent("timepicker:refresh",{bubbles:!0}));const S=c(t,u,e);d.whole.value!==S&&(d.whole.value=S,d.whole.dispatchEvent(new Event("change",{bubbles:!0})))}function o(t,d){const u=E(t),e=m(t,d);e&&(u.date?.dispatchEvent(new CustomEvent("datepicker:refresh",{bubbles:!0,detail:{value:e.date}})),u.time?.dispatchEvent(new CustomEvent("timepicker:refresh",{bubbles:!0,detail:{value:e.time}})),r(t))}document.addEventListener("change",t=>{if(!t.target?.matches?.("[data-datepicker-start], [data-timepicker-value]"))return;const d=t.target.closest("[data-datetimepicker]");d&&r(d)}),document.addEventListener("click",t=>{const d=t.target?.closest?.("[data-datetime-preset]"),u=d?.closest("[data-datetimepicker]");!u||d.disabled||o(u,d.getAttribute("data-datetime-preset"))});function l(t){if(t.hasAttribute("data-datetimepicker-ready"))return;t.setAttribute("data-datetimepicker-ready","");const d=E(t);if(d.whole){if(d.whole.disabled=!!d.timeValue?.disabled,p(t)){const u=m(t,t.getAttribute("data-datetimepicker-min")),e=m(t,t.getAttribute("data-datetimepicker-max"));d.date&&(f(d.date,"data-datepicker-min",u?.date??""),f(d.date,"data-datepicker-max",e?.date??""));const a=t.querySelector(".timepicker__zone");if(a&&t.getAttribute("data-datetimepicker-zone")==="auto"){const n=d.whole.value?new Date(d.whole.value):new Date,g=new Intl.DateTimeFormat(void 0,{timeZoneName:"short"}).formatToParts(n).find(y=>y.type==="timeZoneName")?.value;g&&(a.textContent=g)}d.whole.value?o(t,d.whole.value):d.date?.dispatchEvent(new CustomEvent("datepicker:refresh",{bubbles:!0}))}r(t)}}const s=()=>queueMicrotask(()=>document.querySelectorAll("[data-datetimepicker]").forEach(l));document.readyState==="loading"?document.addEventListener("DOMContentLoaded",s):s(),document.addEventListener("rapid:swapped",s)})(),(()=>{const A=()=>document.querySelectorAll(".dropdown__panel.is-open"),E=o=>document.querySelector(`[data-toggle="#${CSS.escape(o.id)}"]`),p=".data-table__scroll, [data-dropdown-clip]";function m(o,l){if(!l?.closest(p))return;const s=l.getBoundingClientRect();o.classList.add("dropdown__panel--fixed");const t=o.offsetWidth;let u=o.classList.contains("dropdown__panel--end")?s.right-t:s.left;u=Math.max(8,Math.min(u,innerWidth-t-8));let e=s.bottom+4;e+o.offsetHeight>innerHeight-8&&(e=Math.max(8,s.top-o.offsetHeight-4)),o.style.left=`${u}px`,o.style.top=`${e}px`}function c(o,l){o.setAttribute("hidden",""),o.classList.remove("is-open","dropdown__panel--fixed"),o.style.removeProperty("left"),o.style.removeProperty("top"),l?.setAttribute("aria-expanded","false")}document.addEventListener("click",o=>{A().forEach(l=>{const s=E(l);if(s?.contains(o.target)){l.classList.contains("dropdown__panel--fixed")||m(l,s);return}if(l.contains(o.target)){const t=o.target.closest("a[href], button, [data-action]");if(!t||t.hasAttribute("data-toggle"))return}c(l,s)})}),document.addEventListener("keydown",o=>{if(o.key!=="Escape"||o.defaultPrevented)return;const l=o.target.closest?.(".dropdown"),s=l?l.querySelectorAll(".dropdown__panel.is-open"):A();let t=!1;s.forEach(d=>{const u=E(d);c(d,u),u?.focus(),t=!0}),t&&o.preventDefault()});const f=o=>{const l=o.closest(p)?.getBoundingClientRect(),s=o.getBoundingClientRect();return!l||s.bottom>l.top&&s.top<l.bottom&&s.right>l.left&&s.left<l.right},r=()=>{document.querySelectorAll(".dropdown__panel--fixed.is-open").forEach(o=>{const l=E(o);l&&f(l)?m(o,l):c(o,l)})};addEventListener("scroll",r,{capture:!0,passive:!0}),addEventListener("resize",r,{passive:!0})})(),(()=>{for(const c of["dragenter","dragover"])document.addEventListener(c,f=>{const r=f.target.closest?.(".dropzone__area");r&&(f.preventDefault(),r.classList.add("dropzone__area--over"))});for(const c of["dragleave","drop"])document.addEventListener(c,f=>{f.target.closest?.(".dropzone__area")?.classList.remove("dropzone__area--over")});document.addEventListener("click",c=>{const f=c.target.closest?.("[data-dropzone-remove]");f&&f.closest(".dropzone__file")?.remove()});const A=c=>c<1024?`${c} B`:c<1024*1024?`${Math.round(c/1024)} KB`:`${(c/(1024*1024)).toFixed(1)} MB`;function E(c){const f=document.createElement("div");f.className="dropzone__file dropzone__file--pending";const r=document.createElement("span");r.className="dropzone__file-icon",r.textContent=(c.name.split(".").pop()||"").slice(0,4).toLowerCase();const o=document.createElement("span");o.className="dropzone__file-body";const l=document.createElement("span");l.className="dropzone__file-row";const s=document.createElement("span");s.className="dropzone__file-name",s.textContent=c.name;const t=document.createElement("span");t.className="dropzone__file-size",t.textContent=A(c.size),l.append(s,t);const d=document.createElement("progress");return d.className="dropzone__bar",d.max=100,d.setAttribute("aria-label",`Uploading ${c.name}`),o.append(l,d),f.append(r,o),f}const p=new Map;document.addEventListener("submit",c=>{const f=c.target;if(!f?.matches?.("form[data-action]"))return;const r=f.querySelector("[data-dropzone]"),o=r?.querySelector("input[type=file]");if(!r||!o?.files?.length)return;let l=r.querySelector(".dropzone__files");l||(l=document.createElement("div"),l.className="dropzone__files",r.append(l));const s=[...o.files].map(t=>{const d=E(t);return l.append(d),d});p.set(f.getAttribute("data-action"),{zone:r,rows:s})}),document.addEventListener("rapid:progress",c=>{const f=p.get(c.detail?.url);if(!f)return;const{loaded:r,total:o}=c.detail;for(const l of f.rows){const s=l.querySelector("progress");s&&(o>0?s.value=Math.min(100,Math.round(r/o*100)):s.removeAttribute("value"))}});const m=(c,f)=>{const r=c.detail?.url,o=r?p.get(r):void 0;if(o&&(p.delete(r),!!f))for(const l of o.rows){if(!l.isConnected)continue;l.classList.remove("dropzone__file--pending"),l.classList.add("dropzone__file--error"),l.querySelector("progress")?.remove();const s=document.createElement("span");s.className="dropzone__file-error",s.textContent="Upload failed",l.querySelector(".dropzone__file-body")?.append(s)}};document.addEventListener("rapid:swapped",c=>m(c,!1)),document.addEventListener("rapid:error",c=>m(c,!0))})(),(()=>{const A={bold:["**","**"],italic:["_","_"],strike:["~~","~~"],code:["`","`"]},E={heading:"## ",quote:"> ",ul:"- ",ol:"1. "},p={heading:"h2",quote:"blockquote",code:"pre"},m={bold:"bold",italic:"italic",underline:"underline",strike:"strikeThrough"},c={ul:"insertUnorderedList",ol:"insertOrderedList"},f=h=>h.querySelector(".editor__source"),r=h=>h.querySelector("[data-editor-surface]"),o=h=>h.getAttribute("data-editor-mode")==="html";function l(h,k,_,i,b,v){h.value=h.value.slice(0,k)+i+h.value.slice(_),h.setSelectionRange(k+b,k+v),h.focus(),h.dispatchEvent(new Event("input",{bubbles:!0}))}function s(h){const k=h.value.lastIndexOf(`
3
+ `,h.selectionStart-1)+1,_=h.value.indexOf(`
4
+ `,Math.max(h.selectionEnd,k)),i=h.selectionEnd>h.selectionStart&&h.value[h.selectionEnd-1]===`
5
+ `?h.selectionEnd-1:_===-1?h.value.length:_;return[k,i]}const t=/^(#{1,6} |> |- |\* |\d+\. )+/;function d(h,k){const _=h.selectionStart,i=h.selectionEnd,b=h.value.slice(_,i);if(A[k]){const[$,M]=A[k],N=k==="code"&&b.includes(`
6
+ `),T=N?"```\n":$,O=N?"\n```":M;if(b.startsWith(T)&&b.endsWith(O)&&b.length>=T.length+O.length){const z=b.slice(T.length,b.length-O.length);l(h,_,i,z,0,z.length);return}if(h.value.slice(_-T.length,_)===T&&h.value.slice(i,i+O.length)===O){l(h,_-T.length,i+O.length,b,0,b.length);return}const I=b||k;l(h,_,i,T+I+O,T.length,T.length+I.length);return}if(k==="link"||k==="image"){const M=`${k==="image"?"!":""}[${b||(k==="image"?"alt text":"text")}](url)`;l(h,_,i,M,M.length-4,M.length-1);return}if(k==="hr"){const M=`${_===0||h.value[_-1]===`
7
7
  `?"":`
8
8
  `}
9
9
  ---
10
10
 
11
- `;i(f,E,A,C,C.length,C.length);return}const[w,k]=r(f),q=f.value.slice(w,k).split(`
12
- `);if(b==="clear"){const L=q.map(C=>C.replace(d,"")).join(`
13
- `).replace(/!\[(.*?)\]\(\S+?\)/g,"$1").replace(/\[(.+?)\]\(\S+?\)/g,"$1").replace(/(\*\*|__|~~|`)(.+?)\1/g,"$2").replace(/(^|[^\w])_(.+?)_(?=[^\w]|$)/g,"$1$2");i(f,w,k,L,0,L.length);return}const x=y[b];if(!x)return;const I=L=>b==="ol"?/^\d+\. /.test(L):L.startsWith(x),z=q.every(L=>L.trim()===""||I(L)),N=q.map((L,C)=>{const D=L.replace(d,"");return z?D:L.trim()===""?L:(b==="ol"?`${C+1}. `:x)+D}).join(`
14
- `);i(f,w,k,N,0,N.length)}function g(f,b){const E=f.querySelector("[data-editor-preview-panel]"),A=l(f);if(f.querySelectorAll("[data-editor-view]").forEach(w=>{w.setAttribute("aria-pressed",String(w.getAttribute("data-editor-view")===(b?"preview":"write")))}),!b){f.removeAttribute("data-editor-view"),E&&(E.hidden=!0),A?.focus();return}if(f.setAttribute("data-editor-view","preview"),!E)return;E.hidden=!1;const _=f.getAttribute("data-editor-preview");if(_&&globalThis.rapid?.swap)E.setAttribute("aria-busy","true"),globalThis.rapid.swap(_,E,{method:"post",body:new URLSearchParams({text:A?.value??""}).toString()}).finally(()=>E.removeAttribute("aria-busy"));else{E.replaceChildren();const w=document.createElement("p");w.className="editor__preview-note",w.textContent="No preview route on this page \u2014 showing the Markdown source.";const k=document.createElement("pre");k.className="editor__preview-raw",k.textContent=A?.value??"",E.append(w,k)}}function t(f){const b=l(f),E=e(f);b&&E&&(b.value=E.innerHTML)}const n=()=>String(document.queryCommandValue("formatBlock")||"").toLowerCase().replace(/[<>]/g,"");function o(f,b){const E=e(f);if(!(!E||E.getAttribute("contenteditable")!=="true")){if(E.focus(),m[b])document.execCommand(m[b]);else if(c[b])document.execCommand(c[b]);else if(u[b])document.execCommand("formatBlock",!1,n()===u[b]?"<p>":`<${u[b]}>`);else if(b==="link"){const A=globalThis.prompt?.("Link URL","https://");A&&document.execCommand("createLink",!1,A)}else if(b==="image"){const A=globalThis.prompt?.("Image URL","https://");A&&document.execCommand("insertImage",!1,A)}else b==="hr"?document.execCommand("insertHorizontalRule"):b==="clear"&&(document.execCommand("removeFormat"),document.execCommand("unlink"),document.queryCommandState("insertUnorderedList")&&document.execCommand("insertUnorderedList"),document.queryCommandState("insertOrderedList")&&document.execCommand("insertOrderedList"),n()!=="p"&&n()!=="div"&&document.execCommand("formatBlock",!1,"<p>"));t(f),p(f)}}function p(f){if(!a(f))return;const b=n();f.querySelectorAll("[data-editor-cmd]").forEach(E=>{const A=E.getAttribute("data-editor-cmd");let _=!1;m[A]||c[A]?_=document.queryCommandState(m[A]??c[A]):u[A]&&(_=b===u[A]),E.setAttribute("aria-pressed",String(_))})}function h(f){if(f.dataset.editorReady)return;f.dataset.editorReady="true";const b=l(f),E=e(f);E&&b&&(E.innerHTML=b.value,E.setAttribute("contenteditable",b.disabled?"false":"true"),document.execCommand("defaultParagraphSeparator",!1,"p"))}const S=()=>document.querySelectorAll("[data-editor]").forEach(h);document.readyState==="loading"?document.addEventListener("DOMContentLoaded",S):S(),document.addEventListener("rapid:swapped",S),document.addEventListener("click",f=>{const b=f.target.closest?.("[data-editor-cmd]");if(b){const A=b.closest("[data-editor]"),_=b.getAttribute("data-editor-cmd");if(a(A))o(A,_);else{const w=l(A);w&&!w.disabled&&s(w,_)}return}const E=f.target.closest?.("[data-editor-view]");E&&g(E.closest("[data-editor]"),E.getAttribute("data-editor-view")==="preview")}),document.addEventListener("input",f=>{const b=f.target.closest?.("[data-editor-surface]");b&&t(b.closest("[data-editor]"))}),document.addEventListener("selectionchange",()=>{const f=document.activeElement?.closest?.("[data-editor]");f&&p(f)}),document.addEventListener("keydown",f=>{if(!(f.metaKey||f.ctrlKey)||f.altKey)return;const b=f.target.closest?.("[data-editor]");if(!b)return;const E={b:"bold",i:"italic",u:"underline",k:"link"}[f.key.toLowerCase()];!E||E==="underline"&&!a(b)||(f.preventDefault(),a(b)?o(b,E):s(l(b),E))})})(),(()=>{const v="input:not([type=hidden]):not([type=submit]):not([type=button]):not([type=reset]), textarea, select",y=[["valueMissing","required"],["typeMismatch","type"],["badInput","type"],["patternMismatch","pattern"],["tooShort","min-length"],["tooLong","max-length"],["rangeUnderflow","min"],["rangeOverflow","max"],["stepMismatch","step"]],u=t=>t.closest?.("form[data-validate]"),m=t=>t.type==="checkbox"||t.type==="radio"||t.offsetParent!==null;function c(t){const n=t.getAttribute("data-match");if(n){const p=document.querySelector(n),h=p&&t.value!==""&&t.value!==p.value;t.setCustomValidity(h?t.getAttribute("data-msg-match")||"Does not match":"")}const o=t.validity;if(o.valid)return"";if(o.customError)return t.validationMessage;for(const[p,h]of y)if(o[p])return t.getAttribute(`data-msg-${h}`)||t.getAttribute("data-msg")||t.validationMessage;return t.validationMessage}const l=t=>t.id?`${t.id}-error`:"";function e(t,n){const o=t.closest(".form-field")??t.parentElement,p=t.classList[0]||"input";let h=o.querySelector(":scope > .form-field__error");const S=o.querySelector(":scope > .form-field__help");if(n){h||(h=document.createElement("p"),h.className="form-field__error",h.setAttribute("role","alert"),l(t)&&(h.id=l(t)),(S??o).insertAdjacentElement(S?"beforebegin":"beforeend",h)),h.textContent=n,S&&(S.hidden=!0),t.setAttribute("aria-invalid","true"),t.classList.add(`${p}--invalid`);const f=(t.getAttribute("aria-describedby")||"").split(/\s+/).filter(Boolean);h.id&&!f.includes(h.id)&&t.setAttribute("aria-describedby",[...f,h.id].join(" ")),t.dataset.validated="invalid"}else{h?.remove(),S&&(S.hidden=!1),t.removeAttribute("aria-invalid"),t.classList.remove(`${p}--invalid`);const f=(t.getAttribute("aria-describedby")||"").split(/\s+/).filter(b=>b&&b!==l(t));f.length?t.setAttribute("aria-describedby",f.join(" ")):t.removeAttribute("aria-describedby"),t.dataset.validated="valid"}}const a=t=>{if(!m(t)||t.disabled)return!0;const n=c(t);return e(t,n),!n};document.addEventListener("focusout",t=>{const n=t.target;!n?.matches?.(v)||!u(n)||(n.dataset.touched="",a(n))}),document.addEventListener("input",t=>{const n=t.target;if(!n?.matches?.(v))return;const o=u(n);o&&((n.dataset.touched!==void 0||n.dataset.validated||n.getAttribute("aria-invalid")==="true")&&(n.dataset.touched="",a(n)),n.id&&o.querySelectorAll(`[data-match="#${CSS.escape(n.id)}"]`).forEach(p=>{p.dataset.touched!==void 0&&a(p)}))}),document.addEventListener("change",t=>{const n=t.target;n?.matches?.(v)&&u(n)&&n.dataset.touched!==void 0&&a(n)});const i=new WeakMap,r=t=>{const n=document.cookie.match(new RegExp("(?:^|; )"+t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")+"=([^;]*)"));return n?decodeURIComponent(n[1]):void 0};async function d(t){const n=t.getAttribute("data-validate-action");if(!n||!t.value||!t.validity.valid)return;i.get(t)?.abort();const o=new AbortController;i.set(t,o),t.setAttribute("aria-busy","true");const p=document.body?.dataset??{},h={"content-type":"application/x-www-form-urlencoded",[p.swapHeader||"rapid-swap"]:"1"},S=r(p.csrfCookie||"csrf");S&&(h[p.csrfHeader||"x-csrf-token"]=S);const f=t.value;try{const b=await fetch(n,{method:"POST",headers:h,body:new URLSearchParams({[t.name||"value"]:f}).toString(),signal:o.signal,credentials:"same-origin"}),E=b.ok?await b.text():"",A=new DOMParser().parseFromString(E,"text/html").body.textContent.trim();if(t.value!==f)return;t.setCustomValidity(A),t.dataset.remoteValue=f,e(t,A)}catch{}finally{i.get(t)===o&&(i.delete(t),t.removeAttribute("aria-busy"))}}document.addEventListener("focusout",t=>{const n=t.target;n?.matches?.("[data-validate-action]")&&u(n)&&d(n)}),document.addEventListener("input",t=>{const n=t.target;n?.matches?.("[data-validate-action]")&&n.dataset.remoteValue!==void 0&&n.value!==n.dataset.remoteValue&&(delete n.dataset.remoteValue,n.setCustomValidity(""),n.dataset.touched!==void 0&&a(n))});const s=()=>document.querySelectorAll("form[data-guard][data-dirty]");for(const t of["input","change"])document.addEventListener(t,n=>{const o=n.target?.closest?.("form[data-guard]");o&&(o.dataset.dirty="")});document.addEventListener("reset",t=>{t.target?.matches?.("form[data-guard]")&&delete t.target.dataset.dirty}),addEventListener("beforeunload",t=>{s().length&&(t.preventDefault(),t.returnValue="")}),document.addEventListener("submit",t=>{const n=t.target;if(!n?.matches?.("form[data-validate]"))return;let o=null;for(const p of n.querySelectorAll(v))p.dataset.touched="",!a(p)&&!o&&(o=p);if(!o){delete n.dataset.dirty;return}t.preventDefault(),t.stopImmediatePropagation(),o.scrollIntoView({block:"center"}),o.focus()},!0),document.addEventListener("submit",t=>{const n=t.target;n?.matches?.("form[data-guard]:not([data-validate])")&&delete n.dataset.dirty},!0);function g(){document.querySelectorAll("form[data-validate]").forEach(t=>t.setAttribute("novalidate",""))}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",g):g(),document.addEventListener("rapid:swapped",g)})(),(()=>{const v=new Set(["password","password1","passw0rd","123456","1234567","12345678","123456789","1234567890","qwerty","qwerty123","abc123","111111","123123","000000","letmein","welcome","admin","iloveyou","monkey","dragon","login","princess","football","master","sunshine","shadow","superman","michael","baseball","trustno1"]),y=/(?:0123|1234|2345|3456|4567|5678|6789|abcd|bcde|cdef|defg|qwer|wert|asdf|sdfg|zxcv|xcvb)/i;function u(r,d){if(!r)return 0;const s=r.toLowerCase();if(v.has(s)||/^(.)\1+$/.test(r))return 1;const g=[/[a-z]/,/[A-Z]/,/[0-9]/,/[^A-Za-z0-9]/].filter(n=>n.test(r)).length;let t=0;return r.length>=d&&t++,r.length>=12&&t++,g>=3&&t++,(g===4||r.length>=16)&&t++,(y.test(s)||/(.)\1{2,}/.test(r))&&t--,Math.max(1,Math.min(4,t))}function m(r){const d=r.closest("[data-password]");if(!d)return;const s=d.querySelector("[data-password-strength]"),g=Number(r.getAttribute("minlength"))||8,t=u(r.value,g);if(d.dataset.strengthLevel=String(t),s){s.hidden=t===0;const o=s.querySelector("[data-password-label]");if(o){const p=(o.getAttribute("data-levels")||"Too weak|Weak|Good|Strong").split("|");o.textContent=t?p[t-1]:""}}const n=Number(r.getAttribute("data-strength-min"));if(n){const o=t>0&&t<n;r.setCustomValidity(o?r.getAttribute("data-msg-strength")||"Choose a stronger password":"")}}document.addEventListener("input",r=>{const d=r.target;d?.matches?.("[data-password] .password__input")&&m(d)},!0),document.addEventListener("click",r=>{const d=r.target.closest?.("[data-password-reveal]");if(!d)return;const s=document.getElementById(d.getAttribute("aria-controls"));if(!s)return;const g=s.type==="password";s.type=g?"text":"password",d.setAttribute("aria-pressed",String(g));const t=d.querySelector("[data-password-reveal-label]");t&&(t.textContent=g?d.getAttribute("data-label-hide")||"Hide":d.getAttribute("data-label-show")||"Show");const n=d.querySelector("[data-icon-show]"),o=d.querySelector("[data-icon-hide]");n&&(n.hidden=g),o&&(o.hidden=!g),s.focus()});const c=(r,d)=>{const s=r.closest("[data-password]")?.querySelector("[data-password-caps]");s&&(s.hidden=!d)};for(const r of["keydown","keyup"])document.addEventListener(r,d=>{const s=d.target;!s?.matches?.("[data-password] .password__input")||typeof d.getModifierState!="function"||c(s,d.getModifierState("CapsLock"))});document.addEventListener("focusout",r=>{r.target?.matches?.("[data-password] .password__input")&&c(r.target,!1)});function l(r){const d=r.id,s=d&&document.querySelector(`[data-counter-for="${CSS.escape(d)}"]`);if(!s)return;const g=Number(r.getAttribute("maxlength"))||0,t=r.value.length;s.textContent=`${t} / ${g}`,s.classList.toggle("input__counter--near",g>0&&t>=g*.9)}document.addEventListener("input",r=>{r.target?.matches?.("[data-counter]")&&l(r.target)});function e(r){const d=r.closest("[data-input-clear]")?.querySelector("[data-input-clear-button]");d&&(d.hidden=!r.value)}document.addEventListener("input",r=>{r.target?.closest?.("[data-input-clear]")&&e(r.target)}),document.addEventListener("click",r=>{const d=r.target.closest?.("[data-input-clear-button]");if(!d)return;const s=document.getElementById(d.getAttribute("aria-controls"))??d.closest("[data-input-clear]")?.querySelector("input");s&&(s.value="",s.dispatchEvent(new Event("input",{bubbles:!0})),s.focus())});function a(r){r.style.height="auto",r.style.height=`${r.scrollHeight}px`}document.addEventListener("input",r=>{r.target?.matches?.("[data-autosize]")&&a(r.target)});function i(){document.querySelectorAll("[data-password] .password__input").forEach(r=>{r.value&&m(r)}),document.querySelectorAll("[data-counter]").forEach(l),document.querySelectorAll("[data-input-clear] input").forEach(e),document.querySelectorAll("[data-autosize]").forEach(a)}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",i):i(),document.addEventListener("rapid:swapped",i)})(),(()=>{function v(){const y=location.href;let u=null;if(document.querySelectorAll(".menu__link[href]").forEach(c=>{if(!c.getAttribute("href")?.includes("#"))return;new URL(c.getAttribute("href"),location.href).href===y&&(u=c)}),!u)return;u.closest(".menu__list")?.querySelectorAll(".menu__link").forEach(c=>{c!==u&&c.getAttribute("href")?.includes("#")&&(c.classList.remove("menu__link--active"),c.removeAttribute("aria-current"))}),u.classList.add("menu__link--active"),u.setAttribute("aria-current","page");const m=u.closest(".menu__sublist");m&&(m.hidden=!1,m.classList.add("is-open"),document.querySelector(`[data-toggle="#${CSS.escape(m.id)}"]`)?.setAttribute("aria-expanded","true"))}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",v):v(),addEventListener("hashchange",v),document.addEventListener("rapid:swapped",v)})(),(()=>{let v=!1;document.addEventListener("pointerdown",y=>{v=y.target instanceof HTMLDialogElement&&y.target.open}),document.addEventListener("click",y=>{const u=y.target.closest?.("[data-modal-open]");if(u){const c=document.querySelector(u.getAttribute("data-modal-open")??"");c instanceof HTMLDialogElement&&!c.open&&c.showModal();return}const m=y.target.closest?.("[data-modal-close]");if(m){m.closest("dialog")?.close();return}v&&y.target instanceof HTMLDialogElement&&y.target.open&&y.target.close(),v=!1})})(),(()=>{const v=e=>Array.from(e.querySelectorAll(".otp__cell")),y=e=>e.querySelector(".otp__value");function u(e,a){const i=e.getAttribute("data-otp-mode")!=="alphanumeric";return(a||"").replace(i?/[^0-9]/g:/[^0-9a-zA-Z]/g,"")}function m(e,{fromCarrier:a=!1}={}){const i=v(e),r=y(e);if(!i.length||!r)return;if(a){const g=u(e,r.value).slice(0,i.length);i.forEach((t,n)=>t.value=g[n]??"")}const d=i.map(g=>g.value).join("");r.value=d,r.setAttribute("tabindex","-1"),r.setAttribute("aria-hidden","true"),i.forEach(g=>g.toggleAttribute("data-filled",g.value!==""));const s=i.findIndex(g=>!g.value);i.forEach((g,t)=>g.setAttribute("tabindex",t===(s<0?0:s)?"0":"-1")),d.length===i.length&&!e.hasAttribute("data-otp-completed")?(e.setAttribute("data-otp-completed",""),e.dispatchEvent(new CustomEvent("otp:complete",{bubbles:!0,detail:{value:d}})),e.hasAttribute("data-otp-submit")&&e.closest("form")?.requestSubmit()):d.length<i.length&&e.removeAttribute("data-otp-completed")}function c(e,a,i){const r=v(e),d=u(e,i);if(!d){r[a].value="",m(e);return}let s=a;for(const g of d){if(s>=r.length)break;r[s].value=g,s++}m(e),r[Math.min(s,r.length-1)].focus()}document.addEventListener("input",e=>{const a=e.target.closest?.(".otp__cell");if(!a)return;const i=a.closest("[data-otp]"),r=v(i);c(i,r.indexOf(a),a.value)}),document.addEventListener("paste",e=>{const a=e.target.closest?.(".otp__cell");if(!a)return;e.preventDefault();const i=a.closest("[data-otp]");c(i,v(i).indexOf(a),e.clipboardData?.getData("text")??"")}),document.addEventListener("keydown",e=>{const a=e.target.closest?.(".otp__cell");if(!a)return;const i=a.closest("[data-otp]"),r=v(i),d=r.indexOf(a);e.key==="Backspace"?(e.preventDefault(),a.value?a.value="":d>0&&(r[d-1].value="",r[d-1].focus()),m(i)):e.key==="Delete"?(e.preventDefault(),a.value="",m(i)):e.key==="ArrowLeft"&&d>0?(e.preventDefault(),r[d-1].focus()):e.key==="ArrowRight"&&d<r.length-1&&(e.preventDefault(),r[d+1].focus())}),document.addEventListener("focusin",e=>{const a=e.target.closest?.(".otp__cell");a&&a.select()});function l(){document.querySelectorAll("[data-otp]").forEach(e=>m(e,{fromCarrier:!0}))}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",l):l(),document.addEventListener("rapid:swapped",l)})(),(()=>{function v(u,m){const c=u.querySelector(".popover__panel"),l=u.querySelector("[data-popover-trigger]");c&&(c.hidden=!m),l&&l.setAttribute("aria-expanded",m?"true":"false")}const y=()=>document.querySelectorAll("[data-popover] .popover__panel:not([hidden])");document.addEventListener("click",u=>{const m=u.target.closest?.("[data-popover-trigger]");if(m){const l=m.closest("[data-popover]"),e=l?.querySelector(".popover__panel");e&&v(l,e.hidden);return}const c=u.target.closest?.("[data-popover]");y().forEach(l=>{const e=l.closest("[data-popover]");e!==c&&v(e,!1)})}),document.addEventListener("keydown",u=>{if(u.key!=="Escape"||u.defaultPrevented)return;const m=u.target.closest?.("[data-popover]"),c=m?[m]:Array.from(y()).map(e=>e.closest("[data-popover]"));let l=!1;c.forEach(e=>{const a=e.querySelector(".popover__panel");!a||a.hidden||(v(e,!1),e.querySelector("[data-popover-trigger]")?.focus(),l=!0)}),l&&u.preventDefault()})})(),(()=>{function v(u){const c=u.querySelector(".segmented__input:checked")?.nextElementSibling;if(!c){u.style.setProperty("--segmented-w","0px");return}const l=u.getBoundingClientRect(),e=c.getBoundingClientRect(),a=getComputedStyle(u).direction==="rtl",i=a?l.right-u.clientLeft-3-e.right:e.left-l.left-u.clientLeft-3;u.style.setProperty("--segmented-x",`${a?-i:i}px`),u.style.setProperty("--segmented-w",`${e.width}px`),u.setAttribute("data-segmented-ready","")}const y=()=>document.querySelectorAll("[data-segmented]").forEach(v);document.readyState==="loading"?document.addEventListener("DOMContentLoaded",y):y(),addEventListener("load",y),addEventListener("resize",y),document.addEventListener("rapid:swapped",y),document.addEventListener("change",u=>{const m=u.target.closest?.("[data-segmented]");m&&v(m)})})(),(()=>{function v(m){const c=m.querySelector("[data-select-ui]");return c?{root:c,input:c.querySelector("input[role='combobox']"),hidden:c.querySelector("[data-combobox-value]"),options:Array.from(c.querySelectorAll("[role='option']"))}:null}document.addEventListener("combobox:pick",m=>{const l=m.target.closest?.("[data-select]")?.querySelector(".select__native");if(!l)return;const e=m.detail?.value??"";l.value!==e&&(l.value=e,l.dispatchEvent(new Event("change",{bubbles:!0})),l.dispatchEvent(new Event("input",{bubbles:!0})))}),document.addEventListener("change",m=>{if(!m.target.matches?.(".select__native"))return;const c=m.target.closest("[data-select]"),l=v(c);if(!l)return;const e=m.target.value,a=l.options.find(d=>d.getAttribute("data-value")===e),i=a?(a.querySelector(".combobox__option-label")?.textContent??a.textContent).trim():"";l.hidden&&(l.hidden.value=e),l.input&&l.input.value!==i&&(l.input.value=i);const r=c.querySelector("[data-select-lead]");if(r){const d=a?.querySelector(".combobox__option-lead");r.replaceChildren(...d?[...d.cloneNode(!0).childNodes]:[])}l.options.forEach(d=>d.setAttribute("aria-selected",String(d===a)))});let y="",u=0;document.addEventListener("keydown",m=>{const c=m.target;if(!c.matches?.("[data-select-ui] input[role='combobox']")||m.key.length!==1||m.metaKey||m.ctrlKey||m.altKey)return;const l=Date.now();y=l-u>600?m.key:y+m.key,u=l;const e=c.closest("[data-select]"),i=v(e)?.options.find(r=>r.getAttribute("aria-disabled")!=="true"&&(r.querySelector(".combobox__option-label")?.textContent??r.textContent).trim().toLowerCase().startsWith(y.toLowerCase()));i&&i.click(),m.preventDefault()})})(),(()=>{function v(m){const c=m.closest("[data-slider]");if(!c)return null;const l=Number(m.min||0),e=Number(m.max||100),a=e===l?0:(Number(m.value)-l)/(e-l)*100;return c.style.setProperty("--slider-pct",`${a.toFixed(2)}%`),c}function y(m,c){const l=m.querySelector("[data-slider-output]");if(!l)return;const e=Number(c.value),a=m.getAttribute("data-slider-labels");if(a){const d=Number(c.step||1),s=Math.round((e-Number(c.min||0))/d);let g=[];try{g=JSON.parse(a)}catch{}l.textContent=g[s]??c.value,m.querySelectorAll(".slider__scale-item").forEach((t,n)=>{t.classList.toggle("slider__scale-item--active",n===s)});return}const i=m.getAttribute("data-slider-unit"),r=m.getAttribute("data-slider-unit-one")||i;l.textContent=i?`${c.value} ${e===1?r:i}`:c.value}function u(){document.querySelectorAll("[data-slider] .slider__input").forEach(v)}document.addEventListener("input",m=>{if(!m.target.matches?.("[data-slider] .slider__input"))return;const c=v(m.target);c&&y(c,m.target)}),document.readyState==="loading"?document.addEventListener("DOMContentLoaded",u):u(),document.addEventListener("rapid:swapped",u)})(),(()=>{document.addEventListener("click",u=>{const m=u.target.closest?.(".tabs__tab");m&&y(m)}),document.addEventListener("keydown",u=>{if(!["ArrowRight","ArrowLeft","Home","End"].includes(u.key))return;const c=u.target.closest?.(".tabs__tab");if(!c)return;const l=[...c.parentElement.querySelectorAll(".tabs__tab")],e=l.indexOf(c);let a;u.key==="Home"?a=l[0]:u.key==="End"?a=l[l.length-1]:u.key==="ArrowRight"?a=l[(e+1)%l.length]:a=l[(e-1+l.length)%l.length],u.preventDefault(),a.focus(),y(a)});function v(){if(location.hash.length<2)return;const u=document.querySelector(`.tabs__tab#${CSS.escape(location.hash.slice(1))}`);if(!u)return;y(u);const m=()=>{document.activeElement===u&&u.blur()};m(),setTimeout(m,50)}v(),addEventListener("load",v),addEventListener("hashchange",v),document.addEventListener("rapid:swapped",v);function y(u){const m=u.closest(".tabs");m&&(m.querySelectorAll(":scope > .tabs__list > .tabs__tab").forEach(c=>{const l=c===u;c.setAttribute("aria-selected",String(l)),c.setAttribute("tabindex",l?"0":"-1")}),m.querySelectorAll(":scope > .tabs__panel").forEach(c=>{c.toggleAttribute("hidden",c.id!==u.getAttribute("aria-controls"))}))}})(),(()=>{const v=new WeakMap;function y(c){const l=Number(c.dataset.toastAutodismiss);!l||v.has(c)||v.set(c,setTimeout(()=>c.remove(),l))}function u(c){const l=Number(c.dataset.toastMax)||4,e=c.querySelectorAll(":scope > .toast");for(let a=0;a<e.length-l;a++)e[a].remove()}function m(c){c.querySelectorAll?.(".toast[data-toast-autodismiss]").forEach(y),c.matches?.(".toast[data-toast-autodismiss]")&&y(c),c.querySelectorAll?.(".toast-region").forEach(u),c.closest?.(".toast-region")&&u(c.closest(".toast-region"))}m(document),new MutationObserver(c=>{for(const l of c)for(const e of l.addedNodes)e.nodeType===1&&m(e)}).observe(document.documentElement,{childList:!0,subtree:!0}),document.addEventListener("click",c=>{const l=c.target.closest?.("[data-toast-open]");if(!l)return;const e=document.querySelector(l.getAttribute("data-toast-open")??""),a=document.querySelector(l.getAttribute("data-toast-region")??"#toast-region");!e?.content||!a||a.append(e.content.cloneNode(!0))})})();
11
+ `;l(h,_,i,M,M.length,M.length);return}const[v,w]=s(h),x=h.value.slice(v,w).split(`
12
+ `);if(k==="clear"){const $=x.map(M=>M.replace(t,"")).join(`
13
+ `).replace(/!\[(.*?)\]\(\S+?\)/g,"$1").replace(/\[(.+?)\]\(\S+?\)/g,"$1").replace(/(\*\*|__|~~|`)(.+?)\1/g,"$2").replace(/(^|[^\w])_(.+?)_(?=[^\w]|$)/g,"$1$2");l(h,v,w,$,0,$.length);return}const q=E[k];if(!q)return;const L=$=>k==="ol"?/^\d+\. /.test($):$.startsWith(q),D=x.every($=>$.trim()===""||L($)),C=x.map(($,M)=>{const N=$.replace(t,"");return D?N:$.trim()===""?$:(k==="ol"?`${M+1}. `:q)+N}).join(`
14
+ `);l(h,v,w,C,0,C.length)}function u(h,k){const _=h.querySelector("[data-editor-preview-panel]"),i=f(h);if(h.querySelectorAll("[data-editor-view]").forEach(v=>{v.setAttribute("aria-pressed",String(v.getAttribute("data-editor-view")===(k?"preview":"write")))}),!k){h.removeAttribute("data-editor-view"),_&&(_.hidden=!0),i?.focus();return}if(h.setAttribute("data-editor-view","preview"),!_)return;_.hidden=!1;const b=h.getAttribute("data-editor-preview");if(b&&globalThis.rapid?.swap)_.setAttribute("aria-busy","true"),globalThis.rapid.swap(b,_,{method:"post",body:new URLSearchParams({text:i?.value??""}).toString()}).finally(()=>_.removeAttribute("aria-busy"));else{_.replaceChildren();const v=document.createElement("p");v.className="editor__preview-note",v.textContent="No preview route on this page \u2014 showing the Markdown source.";const w=document.createElement("pre");w.className="editor__preview-raw",w.textContent=i?.value??"",_.append(v,w)}}function e(h){const k=f(h),_=r(h);k&&_&&(k.value=_.innerHTML)}const a=()=>String(document.queryCommandValue("formatBlock")||"").toLowerCase().replace(/[<>]/g,"");function n(h,k){const _=r(h);if(!(!_||_.getAttribute("contenteditable")!=="true")){if(_.focus(),m[k])document.execCommand(m[k]);else if(c[k])document.execCommand(c[k]);else if(p[k])document.execCommand("formatBlock",!1,a()===p[k]?"<p>":`<${p[k]}>`);else if(k==="link"){const i=globalThis.prompt?.("Link URL","https://");i&&document.execCommand("createLink",!1,i)}else if(k==="image"){const i=globalThis.prompt?.("Image URL","https://");i&&document.execCommand("insertImage",!1,i)}else k==="hr"?document.execCommand("insertHorizontalRule"):k==="clear"&&(document.execCommand("removeFormat"),document.execCommand("unlink"),document.queryCommandState("insertUnorderedList")&&document.execCommand("insertUnorderedList"),document.queryCommandState("insertOrderedList")&&document.execCommand("insertOrderedList"),a()!=="p"&&a()!=="div"&&document.execCommand("formatBlock",!1,"<p>"));e(h),g(h)}}function g(h){if(!o(h))return;const k=a();h.querySelectorAll("[data-editor-cmd]").forEach(_=>{const i=_.getAttribute("data-editor-cmd");let b=!1;m[i]||c[i]?b=document.queryCommandState(m[i]??c[i]):p[i]&&(b=k===p[i]),_.setAttribute("aria-pressed",String(b))})}function y(h){if(h.dataset.editorReady)return;h.dataset.editorReady="true";const k=f(h),_=r(h);_&&k&&(_.innerHTML=k.value,_.setAttribute("contenteditable",k.disabled?"false":"true"),document.execCommand("defaultParagraphSeparator",!1,"p"))}const S=()=>document.querySelectorAll("[data-editor]").forEach(y);document.readyState==="loading"?document.addEventListener("DOMContentLoaded",S):S(),document.addEventListener("rapid:swapped",S),document.addEventListener("click",h=>{const k=h.target.closest?.("[data-editor-cmd]");if(k){const i=k.closest("[data-editor]"),b=k.getAttribute("data-editor-cmd");if(o(i))n(i,b);else{const v=f(i);v&&!v.disabled&&d(v,b)}return}const _=h.target.closest?.("[data-editor-view]");_&&u(_.closest("[data-editor]"),_.getAttribute("data-editor-view")==="preview")}),document.addEventListener("input",h=>{const k=h.target.closest?.("[data-editor-surface]");k&&e(k.closest("[data-editor]"))}),document.addEventListener("selectionchange",()=>{const h=document.activeElement?.closest?.("[data-editor]");h&&g(h)}),document.addEventListener("keydown",h=>{if(!(h.metaKey||h.ctrlKey)||h.altKey)return;const k=h.target.closest?.("[data-editor]");if(!k)return;const _={b:"bold",i:"italic",u:"underline",k:"link"}[h.key.toLowerCase()];!_||_==="underline"&&!o(k)||(h.preventDefault(),o(k)?n(k,_):d(f(k),_))})})(),(()=>{const A="input:not([type=hidden]):not([type=submit]):not([type=button]):not([type=reset]), textarea, select",E=[["valueMissing","required"],["typeMismatch","type"],["badInput","type"],["patternMismatch","pattern"],["tooShort","min-length"],["tooLong","max-length"],["rangeUnderflow","min"],["rangeOverflow","max"],["stepMismatch","step"]],p=e=>e.closest?.("form[data-validate]"),m=e=>e.type==="checkbox"||e.type==="radio"||e.offsetParent!==null;function c(e){const a=e.getAttribute("data-match");if(a){const g=document.querySelector(a),y=g&&e.value!==""&&e.value!==g.value;e.setCustomValidity(y?e.getAttribute("data-msg-match")||"Does not match":"")}const n=e.validity;if(n.valid)return"";if(n.customError)return e.validationMessage;for(const[g,y]of E)if(n[g])return e.getAttribute(`data-msg-${y}`)||e.getAttribute("data-msg")||e.validationMessage;return e.validationMessage}const f=e=>e.id?`${e.id}-error`:"";function r(e,a){const n=e.closest(".form-field")??e.parentElement,g=e.classList[0]||"input";let y=n.querySelector(":scope > .form-field__error");const S=n.querySelector(":scope > .form-field__help");if(a){y||(y=document.createElement("p"),y.className="form-field__error",y.setAttribute("role","alert"),f(e)&&(y.id=f(e)),(S??n).insertAdjacentElement(S?"beforebegin":"beforeend",y)),y.textContent=a,S&&(S.hidden=!0),e.setAttribute("aria-invalid","true"),e.classList.add(`${g}--invalid`);const h=(e.getAttribute("aria-describedby")||"").split(/\s+/).filter(Boolean);y.id&&!h.includes(y.id)&&e.setAttribute("aria-describedby",[...h,y.id].join(" ")),e.dataset.validated="invalid"}else{y?.remove(),S&&(S.hidden=!1),e.removeAttribute("aria-invalid"),e.classList.remove(`${g}--invalid`);const h=(e.getAttribute("aria-describedby")||"").split(/\s+/).filter(k=>k&&k!==f(e));h.length?e.setAttribute("aria-describedby",h.join(" ")):e.removeAttribute("aria-describedby"),e.dataset.validated="valid"}}const o=e=>{if(!m(e)||e.disabled||e.hasAttribute("data-validate-skip"))return!0;const a=c(e);return r(e,a),!a};document.addEventListener("focusout",e=>{const a=e.target;!a?.matches?.(A)||!p(a)||a.closest("[data-validate-group]")?.contains(e.relatedTarget)||(a.dataset.touched="",o(a))}),document.addEventListener("input",e=>{const a=e.target;if(!a?.matches?.(A))return;const n=p(a);n&&((a.dataset.touched!==void 0||a.dataset.validated||a.getAttribute("aria-invalid")==="true")&&(a.dataset.touched="",o(a)),a.id&&n.querySelectorAll(`[data-match="#${CSS.escape(a.id)}"]`).forEach(g=>{g.dataset.touched!==void 0&&o(g)}))}),document.addEventListener("change",e=>{const a=e.target;a?.matches?.(A)&&p(a)&&a.dataset.touched!==void 0&&o(a)});const l=new WeakMap,s=e=>{const a=document.cookie.match(new RegExp("(?:^|; )"+e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")+"=([^;]*)"));return a?decodeURIComponent(a[1]):void 0};async function t(e){const a=e.getAttribute("data-validate-action");if(!a||!e.value||!e.validity.valid)return;l.get(e)?.abort();const n=new AbortController;l.set(e,n),e.setAttribute("aria-busy","true");const g=document.body?.dataset??{},y={"content-type":"application/x-www-form-urlencoded",[g.swapHeader||"rapid-swap"]:"1"},S=s(g.csrfCookie||"csrf");S&&(y[g.csrfHeader||"x-csrf-token"]=S);const h=e.value;try{const k=await fetch(a,{method:"POST",headers:y,body:new URLSearchParams({[e.name||"value"]:h}).toString(),signal:n.signal,credentials:"same-origin"}),_=k.ok?await k.text():"",i=new DOMParser().parseFromString(_,"text/html").body.textContent.trim();if(e.value!==h)return;e.setCustomValidity(i),e.dataset.remoteValue=h,r(e,i)}catch{}finally{l.get(e)===n&&(l.delete(e),e.removeAttribute("aria-busy"))}}document.addEventListener("focusout",e=>{const a=e.target;a?.matches?.("[data-validate-action]")&&p(a)&&t(a)}),document.addEventListener("input",e=>{const a=e.target;a?.matches?.("[data-validate-action]")&&a.dataset.remoteValue!==void 0&&a.value!==a.dataset.remoteValue&&(delete a.dataset.remoteValue,a.setCustomValidity(""),a.dataset.touched!==void 0&&o(a))});const d=()=>document.querySelectorAll("form[data-guard][data-dirty]");for(const e of["input","change"])document.addEventListener(e,a=>{const n=a.target?.closest?.("form[data-guard]");n&&(n.dataset.dirty="")});document.addEventListener("reset",e=>{e.target?.matches?.("form[data-guard]")&&delete e.target.dataset.dirty}),addEventListener("beforeunload",e=>{d().length&&(e.preventDefault(),e.returnValue="")}),document.addEventListener("submit",e=>{const a=e.target;if(!a?.matches?.("form[data-validate]"))return;let n=null;for(const g of a.querySelectorAll(A))g.dataset.touched="",!o(g)&&!n&&(n=g);if(!n){delete a.dataset.dirty;return}e.preventDefault(),e.stopImmediatePropagation(),n.scrollIntoView({block:"center"}),n.focus()},!0),document.addEventListener("submit",e=>{const a=e.target;a?.matches?.("form[data-guard]:not([data-validate])")&&delete a.dataset.dirty},!0);function u(){document.querySelectorAll("form[data-validate]").forEach(e=>e.setAttribute("novalidate",""))}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",u):u(),document.addEventListener("rapid:swapped",u)})(),(()=>{const A=new Set(["password","password1","passw0rd","123456","1234567","12345678","123456789","1234567890","qwerty","qwerty123","abc123","111111","123123","000000","letmein","welcome","admin","iloveyou","monkey","dragon","login","princess","football","master","sunshine","shadow","superman","michael","baseball","trustno1"]),E=/(?:0123|1234|2345|3456|4567|5678|6789|abcd|bcde|cdef|defg|qwer|wert|asdf|sdfg|zxcv|xcvb)/i;function p(s,t){if(!s)return 0;const d=s.toLowerCase();if(A.has(d)||/^(.)\1+$/.test(s))return 1;const u=[/[a-z]/,/[A-Z]/,/[0-9]/,/[^A-Za-z0-9]/].filter(a=>a.test(s)).length;let e=0;return s.length>=t&&e++,s.length>=12&&e++,u>=3&&e++,(u===4||s.length>=16)&&e++,(E.test(d)||/(.)\1{2,}/.test(s))&&e--,Math.max(1,Math.min(4,e))}function m(s){const t=s.closest("[data-password]");if(!t)return;const d=t.querySelector("[data-password-strength]"),u=Number(s.getAttribute("minlength"))||8,e=p(s.value,u);if(t.dataset.strengthLevel=String(e),d){d.hidden=e===0;const n=d.querySelector("[data-password-label]");if(n){const g=(n.getAttribute("data-levels")||"Too weak|Weak|Good|Strong").split("|");n.textContent=e?g[e-1]:""}}const a=Number(s.getAttribute("data-strength-min"));if(a){const n=e>0&&e<a;s.setCustomValidity(n?s.getAttribute("data-msg-strength")||"Choose a stronger password":"")}}document.addEventListener("input",s=>{const t=s.target;t?.matches?.("[data-password] .password__input")&&m(t)},!0),document.addEventListener("click",s=>{const t=s.target.closest?.("[data-password-reveal]");if(!t)return;const d=document.getElementById(t.getAttribute("aria-controls"));if(!d)return;const u=d.type==="password";d.type=u?"text":"password",t.setAttribute("aria-pressed",String(u));const e=t.querySelector("[data-password-reveal-label]");e&&(e.textContent=u?t.getAttribute("data-label-hide")||"Hide":t.getAttribute("data-label-show")||"Show");const a=t.querySelector("[data-icon-show]"),n=t.querySelector("[data-icon-hide]");a&&(a.hidden=u),n&&(n.hidden=!u),d.focus()});const c=(s,t)=>{const d=s.closest("[data-password]")?.querySelector("[data-password-caps]");d&&(d.hidden=!t)};for(const s of["keydown","keyup"])document.addEventListener(s,t=>{const d=t.target;!d?.matches?.("[data-password] .password__input")||typeof t.getModifierState!="function"||c(d,t.getModifierState("CapsLock"))});document.addEventListener("focusout",s=>{s.target?.matches?.("[data-password] .password__input")&&c(s.target,!1)});function f(s){const t=s.id,d=t&&document.querySelector(`[data-counter-for="${CSS.escape(t)}"]`);if(!d)return;const u=Number(s.getAttribute("maxlength"))||0,e=s.value.length;d.textContent=`${e} / ${u}`,d.classList.toggle("input__counter--near",u>0&&e>=u*.9)}document.addEventListener("input",s=>{s.target?.matches?.("[data-counter]")&&f(s.target)});function r(s){const t=s.closest("[data-input-clear]")?.querySelector("[data-input-clear-button]");t&&(t.hidden=!s.value)}document.addEventListener("input",s=>{s.target?.closest?.("[data-input-clear]")&&r(s.target)}),document.addEventListener("click",s=>{const t=s.target.closest?.("[data-input-clear-button]");if(!t)return;const d=document.getElementById(t.getAttribute("aria-controls"))??t.closest("[data-input-clear]")?.querySelector("input");d&&(d.value="",d.dispatchEvent(new Event("input",{bubbles:!0})),d.focus())});function o(s){s.style.height="auto",s.style.height=`${s.scrollHeight}px`}document.addEventListener("input",s=>{s.target?.matches?.("[data-autosize]")&&o(s.target)});function l(){document.querySelectorAll("[data-password] .password__input").forEach(s=>{s.value&&m(s)}),document.querySelectorAll("[data-counter]").forEach(f),document.querySelectorAll("[data-input-clear] input").forEach(r),document.querySelectorAll("[data-autosize]").forEach(o)}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",l):l(),document.addEventListener("rapid:swapped",l)})(),(()=>{function A(){const E=location.href;let p=null;if(document.querySelectorAll(".menu__link[href]").forEach(c=>{if(!c.getAttribute("href")?.includes("#"))return;new URL(c.getAttribute("href"),location.href).href===E&&(p=c)}),!p)return;p.closest(".menu__list")?.querySelectorAll(".menu__link").forEach(c=>{c!==p&&c.getAttribute("href")?.includes("#")&&(c.classList.remove("menu__link--active"),c.removeAttribute("aria-current"))}),p.classList.add("menu__link--active"),p.setAttribute("aria-current","page");const m=p.closest(".menu__sublist");m&&(m.hidden=!1,m.classList.add("is-open"),document.querySelector(`[data-toggle="#${CSS.escape(m.id)}"]`)?.setAttribute("aria-expanded","true"))}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",A):A(),addEventListener("hashchange",A),document.addEventListener("rapid:swapped",A)})(),(()=>{let A=!1;document.addEventListener("pointerdown",E=>{A=E.target instanceof HTMLDialogElement&&E.target.open}),document.addEventListener("click",E=>{const p=E.target.closest?.("[data-modal-open]");if(p){const c=document.querySelector(p.getAttribute("data-modal-open")??"");c instanceof HTMLDialogElement&&!c.open&&c.showModal();return}const m=E.target.closest?.("[data-modal-close]");if(m){m.closest("dialog")?.close();return}A&&E.target instanceof HTMLDialogElement&&E.target.open&&E.target.close(),A=!1})})(),(()=>{const A=r=>Array.from(r.querySelectorAll(".otp__cell")),E=r=>r.querySelector(".otp__value");function p(r,o){const l=r.getAttribute("data-otp-mode")!=="alphanumeric";return(o||"").replace(l?/[^0-9]/g:/[^0-9a-zA-Z]/g,"")}function m(r,{fromCarrier:o=!1}={}){const l=A(r),s=E(r);if(!l.length||!s)return;if(o){const u=p(r,s.value).slice(0,l.length);l.forEach((e,a)=>e.value=u[a]??"")}const t=l.map(u=>u.value).join("");s.value=t,s.setAttribute("tabindex","-1"),s.setAttribute("aria-hidden","true"),l.forEach(u=>u.toggleAttribute("data-filled",u.value!==""));const d=l.findIndex(u=>!u.value);l.forEach((u,e)=>u.setAttribute("tabindex",e===(d<0?0:d)?"0":"-1")),t.length===l.length&&!r.hasAttribute("data-otp-completed")?(r.setAttribute("data-otp-completed",""),r.dispatchEvent(new CustomEvent("otp:complete",{bubbles:!0,detail:{value:t}})),r.hasAttribute("data-otp-submit")&&r.closest("form")?.requestSubmit()):t.length<l.length&&r.removeAttribute("data-otp-completed")}function c(r,o,l){const s=A(r),t=p(r,l);if(!t){s[o].value="",m(r);return}let d=o;for(const u of t){if(d>=s.length)break;s[d].value=u,d++}m(r),s[Math.min(d,s.length-1)].focus()}document.addEventListener("input",r=>{const o=r.target.closest?.(".otp__cell");if(!o)return;const l=o.closest("[data-otp]"),s=A(l);c(l,s.indexOf(o),o.value)}),document.addEventListener("paste",r=>{const o=r.target.closest?.(".otp__cell");if(!o)return;r.preventDefault();const l=o.closest("[data-otp]");c(l,A(l).indexOf(o),r.clipboardData?.getData("text")??"")}),document.addEventListener("keydown",r=>{const o=r.target.closest?.(".otp__cell");if(!o)return;const l=o.closest("[data-otp]"),s=A(l),t=s.indexOf(o);r.key==="Backspace"?(r.preventDefault(),o.value?o.value="":t>0&&(s[t-1].value="",s[t-1].focus()),m(l)):r.key==="Delete"?(r.preventDefault(),o.value="",m(l)):r.key==="ArrowLeft"&&t>0?(r.preventDefault(),s[t-1].focus()):r.key==="ArrowRight"&&t<s.length-1&&(r.preventDefault(),s[t+1].focus())}),document.addEventListener("focusin",r=>{const o=r.target.closest?.(".otp__cell");o&&o.select()});function f(){document.querySelectorAll("[data-otp]").forEach(r=>m(r,{fromCarrier:!0}))}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",f):f(),document.addEventListener("rapid:swapped",f)})(),(()=>{function A(p,m){const c=p.querySelector(".popover__panel"),f=p.querySelector("[data-popover-trigger]");c&&(c.hidden=!m),f&&f.setAttribute("aria-expanded",m?"true":"false")}const E=()=>document.querySelectorAll("[data-popover] .popover__panel:not([hidden])");document.addEventListener("click",p=>{const m=p.target.closest?.("[data-popover-trigger]");if(m){const f=m.closest("[data-popover]"),r=f?.querySelector(".popover__panel");r&&A(f,r.hidden);return}const c=p.target.closest?.("[data-popover]");E().forEach(f=>{const r=f.closest("[data-popover]");r!==c&&A(r,!1)})}),document.addEventListener("keydown",p=>{if(p.key!=="Escape"||p.defaultPrevented)return;const m=p.target.closest?.("[data-popover]"),c=m?[m]:Array.from(E()).map(r=>r.closest("[data-popover]"));let f=!1;c.forEach(r=>{const o=r.querySelector(".popover__panel");!o||o.hidden||(A(r,!1),r.querySelector("[data-popover-trigger]")?.focus(),f=!0)}),f&&p.preventDefault()})})(),(()=>{function A(p){const c=p.querySelector(".segmented__input:checked")?.nextElementSibling;if(!c){p.style.setProperty("--segmented-w","0px");return}const f=p.getBoundingClientRect(),r=c.getBoundingClientRect(),o=getComputedStyle(p).direction==="rtl",l=o?f.right-p.clientLeft-3-r.right:r.left-f.left-p.clientLeft-3;p.style.setProperty("--segmented-x",`${o?-l:l}px`),p.style.setProperty("--segmented-w",`${r.width}px`),p.setAttribute("data-segmented-ready","")}const E=()=>document.querySelectorAll("[data-segmented]").forEach(A);document.readyState==="loading"?document.addEventListener("DOMContentLoaded",E):E(),addEventListener("load",E),addEventListener("resize",E),document.addEventListener("rapid:swapped",E),document.addEventListener("change",p=>{const m=p.target.closest?.("[data-segmented]");m&&A(m)})})(),(()=>{function A(m){const c=m.querySelector("[data-select-ui]");return c?{root:c,input:c.querySelector("input[role='combobox']"),hidden:c.querySelector("[data-combobox-value]"),options:Array.from(c.querySelectorAll("[role='option']"))}:null}document.addEventListener("combobox:pick",m=>{const f=m.target.closest?.("[data-select]")?.querySelector(".select__native");if(!f)return;const r=m.detail?.value??"";f.value!==r&&(f.value=r,f.dispatchEvent(new Event("change",{bubbles:!0})),f.dispatchEvent(new Event("input",{bubbles:!0})))}),document.addEventListener("change",m=>{if(!m.target.matches?.(".select__native"))return;const c=m.target.closest("[data-select]"),f=A(c);if(!f)return;const r=m.target.value,o=f.options.find(t=>t.getAttribute("data-value")===r),l=o?(o.querySelector(".combobox__option-label")?.textContent??o.textContent).trim():"";f.hidden&&(f.hidden.value=r),f.input&&f.input.value!==l&&(f.input.value=l);const s=c.querySelector("[data-select-lead]");if(s){const t=o?.querySelector(".combobox__option-lead");s.replaceChildren(...t?[...t.cloneNode(!0).childNodes]:[])}f.options.forEach(t=>t.setAttribute("aria-selected",String(t===o)))});let E="",p=0;document.addEventListener("keydown",m=>{const c=m.target;if(!c.matches?.("[data-select-ui] input[role='combobox']")||m.key.length!==1||m.metaKey||m.ctrlKey||m.altKey)return;const f=Date.now();E=f-p>600?m.key:E+m.key,p=f;const r=c.closest("[data-select]"),l=A(r)?.options.find(s=>s.getAttribute("aria-disabled")!=="true"&&(s.querySelector(".combobox__option-label")?.textContent??s.textContent).trim().toLowerCase().startsWith(E.toLowerCase()));l&&l.click(),m.preventDefault()})})(),(()=>{function A(m){const c=m.closest("[data-slider]");if(!c)return null;const f=Number(m.min||0),r=Number(m.max||100),o=r===f?0:(Number(m.value)-f)/(r-f)*100;return c.style.setProperty("--slider-pct",`${o.toFixed(2)}%`),c}function E(m,c){const f=m.querySelector("[data-slider-output]");if(!f)return;const r=Number(c.value),o=m.getAttribute("data-slider-labels");if(o){const t=Number(c.step||1),d=Math.round((r-Number(c.min||0))/t);let u=[];try{u=JSON.parse(o)}catch{}f.textContent=u[d]??c.value,m.querySelectorAll(".slider__scale-item").forEach((e,a)=>{e.classList.toggle("slider__scale-item--active",a===d)});return}const l=m.getAttribute("data-slider-unit"),s=m.getAttribute("data-slider-unit-one")||l;f.textContent=l?`${c.value} ${r===1?s:l}`:c.value}function p(){document.querySelectorAll("[data-slider] .slider__input").forEach(A)}document.addEventListener("input",m=>{if(!m.target.matches?.("[data-slider] .slider__input"))return;const c=A(m.target);c&&E(c,m.target)}),document.readyState==="loading"?document.addEventListener("DOMContentLoaded",p):p(),document.addEventListener("rapid:swapped",p)})(),(()=>{document.addEventListener("click",p=>{const m=p.target.closest?.(".tabs__tab");m&&E(m)}),document.addEventListener("keydown",p=>{if(!["ArrowRight","ArrowLeft","Home","End"].includes(p.key))return;const c=p.target.closest?.(".tabs__tab");if(!c)return;const f=[...c.parentElement.querySelectorAll(".tabs__tab")],r=f.indexOf(c);let o;p.key==="Home"?o=f[0]:p.key==="End"?o=f[f.length-1]:p.key==="ArrowRight"?o=f[(r+1)%f.length]:o=f[(r-1+f.length)%f.length],p.preventDefault(),o.focus(),E(o)});function A(){if(location.hash.length<2)return;const p=document.querySelector(`.tabs__tab#${CSS.escape(location.hash.slice(1))}`);if(!p)return;E(p);const m=()=>{document.activeElement===p&&p.blur()};m(),setTimeout(m,50)}A(),addEventListener("load",A),addEventListener("hashchange",A),document.addEventListener("rapid:swapped",A);function E(p){const m=p.closest(".tabs");m&&(m.querySelectorAll(":scope > .tabs__list > .tabs__tab").forEach(c=>{const f=c===p;c.setAttribute("aria-selected",String(f)),c.setAttribute("tabindex",f?"0":"-1")}),m.querySelectorAll(":scope > .tabs__panel").forEach(c=>{c.toggleAttribute("hidden",c.id!==p.getAttribute("aria-controls"))}))}})(),(()=>{const A=i=>String(i).padStart(2,"0"),E=i=>{const b=/^([01]\d|2[0-3]):([0-5]\d)$/.exec(i||"");return b?Number(b[1])*60+Number(b[2]):void 0},p=i=>{const b=(i%1440+1440)%1440;return`${A(Math.floor(b/60))}:${A(b%60)}`};function m(i){return{hour:i.querySelector("[data-segment='hour']"),minute:i.querySelector("[data-segment='minute']"),carrier:i.querySelector("[data-timepicker-value]"),list:i.querySelector(".timepicker__list"),toggle:i.querySelector("[data-timepicker-toggle]")}}const c=i=>({lo:E(i.getAttribute("data-timepicker-min")),hi:E(i.getAttribute("data-timepicker-max"))});function f(i){const{hour:b,minute:v}=m(i);if(!b?.value||!v?.value)return;const w=Number(b.value),x=Number(v.value);return w<=23&&x<=59?w*60+x:void 0}function r(i){const{hour:b,minute:v}=m(i);if(!b)return;const w=f(i),{lo:x,hi:q}=c(i),L=(C,$,M,N)=>(b.getAttribute(`data-msg-${C}`)||$).replace(M,N??"");let D="";!b.value&&!v.value?i.hasAttribute("data-timepicker-required")&&(D=L("required","Enter a time.")):w===void 0?D=L("incomplete","Enter hours and minutes."):x!==void 0&&w<x?D=L("min","Pick {min} or later.","{min}",p(x)):q!==void 0&&w>q&&(D=L("max","Pick {max} or earlier.","{max}",p(q))),b.setCustomValidity(i.getAttribute("data-timepicker-error")||D)}function o(i,b=!0){const{hour:v,minute:w,carrier:x,list:q}=m(i);if(!v||!w||!x)return;for(const C of[v,w])C.value===""?C.removeAttribute("aria-valuenow"):C.setAttribute("aria-valuenow",String(Number(C.value)));const L=f(i),D=L===void 0?"":p(L);q?.querySelectorAll("[role='option']").forEach(C=>C.setAttribute("aria-selected",String(C.getAttribute("data-value")===D))),r(i),x.value!==D&&(x.value=D,b&&x.dispatchEvent(new Event("change",{bubbles:!0})))}function l(i,b){const{hour:v,minute:w}=m(i),x=p(b);v.value=x.slice(0,2),w.value=x.slice(3),o(i)}function s(i){const{hour:b,minute:v}=m(i);let w=!1;for(const[x,q]of[[b,23],[v,59]])x&&x.value.length===1&&(x.value=A(Math.min(Number(x.value),q)),w=!0);w&&o(i)}function t(i){!i||i.disabled||(i.focus(),i.select())}const d=i=>Array.from(i.querySelectorAll(".timepicker__slot")).filter(b=>!b.hidden),u=i=>i.classList.contains("timepicker--open");function e(i,b){const{list:v}=m(i);if(i.querySelectorAll(".timepicker__slot[data-active]").forEach(x=>x.removeAttribute("data-active")),!b||!v){v?.removeAttribute("aria-activedescendant");return}b.setAttribute("data-active",""),v.setAttribute("aria-activedescendant",b.id);const w=b.offsetTop;w<v.scrollTop?v.scrollTop=w:w+b.offsetHeight>v.scrollTop+v.clientHeight&&(v.scrollTop=w+b.offsetHeight-v.clientHeight)}function a(i){const{list:b,toggle:v}=m(i);if(!b||v?.disabled)return;const{lo:w,hi:x}=c(i);i.querySelectorAll(".timepicker__slot").forEach(C=>{const $=E(C.getAttribute("data-value"));C.hidden=w!==void 0&&$<w||x!==void 0&&$>x}),b.hidden=!1,i.classList.add("timepicker--open"),v?.setAttribute("aria-expanded","true");const q=d(i),L=f(i),D=q.find(C=>C.getAttribute("aria-selected")==="true")??(L===void 0?void 0:q.find(C=>E(C.getAttribute("data-value"))>=L))??q[0];b.focus({preventScroll:!0}),e(i,D),D&&(b.scrollTop=D.offsetTop-(b.clientHeight-D.offsetHeight)/2)}function n(i,b){const{list:v,toggle:w,hour:x}=m(i);v&&(v.hidden=!0,i.classList.remove("timepicker--open"),w?.setAttribute("aria-expanded","false"),e(i,null),b&&t(x))}function g(i,b){const v=E(b?.getAttribute("data-value"));v!==void 0&&(l(i,v),n(i,!0))}let y="",S=0;function h(i,b){const v=Date.now();y=v-S>800?b:y+b,S=v;const w=d(i),x=L=>L.getAttribute("data-value").replace(":",""),q=w.find(L=>x(L).startsWith(y))??w.find(L=>x(L).replace(/^0/,"").startsWith(y));q&&e(i,q)}document.addEventListener("input",i=>{const b=i.target;if(!b?.matches?.(".timepicker__segment"))return;const v=b.closest("[data-timepicker]"),{minute:w}=m(v),x=b.value.replace(/\D/g,"").slice(0,2);b.value!==x&&(b.value=x);const q=b.getAttribute("data-segment")==="hour";if(x){const L=Number(x);if((x.length===2||L>(q?2:5))&&(b.value=A(Math.min(L,q?23:59)),q)){o(v),t(w);return}}o(v)},!0),document.addEventListener("paste",i=>{const b=i.target;if(!b?.matches?.(".timepicker__segment"))return;const v=i.clipboardData?.getData("text")??"",w=/^\s*(\d{1,2})\s*[:.h]\s*(\d{2})\s*$/.exec(v)??/^\s*(\d{1,2})(\d{2})\s*$/.exec(v);if(!w)return;i.preventDefault();const x=b.closest("[data-timepicker]");l(x,Math.min(Number(w[1]),23)*60+Math.min(Number(w[2]),59)),t(m(x).minute)}),document.addEventListener("keydown",i=>{const b=i.target,v=b?.closest?.("[data-timepicker]");if(!v)return;const{hour:w,minute:x,list:q}=m(v);if(b===q){const C=d(v),$=v.querySelector(".timepicker__slot[data-active]"),M=C.indexOf($);if(i.key==="ArrowDown"||i.key==="ArrowUp"){i.preventDefault();const N=M<0?0:M+(i.key==="ArrowDown"?1:-1);e(v,C[Math.max(0,Math.min(C.length-1,N))])}else i.key==="Home"||i.key==="End"?(i.preventDefault(),e(v,i.key==="Home"?C[0]:C[C.length-1])):i.key==="Enter"||i.key===" "?(i.preventDefault(),$&&g(v,$)):i.key==="Escape"?(i.preventDefault(),i.stopPropagation(),n(v,!0)):i.key==="Tab"?n(v,!1):/^\d$/.test(i.key)&&(i.preventDefault(),h(v,i.key));return}if(!b.matches(".timepicker__segment"))return;const L=b===w,D=L?23:59;if(i.altKey&&i.key==="ArrowDown"||i.key==="F4")i.preventDefault(),a(v);else if(i.key==="ArrowUp"||i.key==="ArrowDown"){i.preventDefault();const C=i.key==="ArrowUp"?1:-1,{lo:$}=c(v),M=L?Math.floor(($??0)/60):0,N=b.value===""?M:(Number(b.value)+C+D+1)%(D+1);b.value=A(N),o(v),b.select()}else if(i.key==="PageUp"||i.key==="PageDown"){i.preventDefault();const C=Number(q?.getAttribute("data-step"))||15,$=(Number(w.value)||0)*60+(Number(x.value)||0);l(v,$+(i.key==="PageUp"?C:-C)),b.select()}else i.key==="Home"||i.key==="End"?(i.preventDefault(),b.value=i.key==="Home"?"00":A(D),o(v),b.select()):L&&(i.key===":"||i.key==="."||i.key===" "||i.key==="ArrowRight")?(i.preventDefault(),s(v),t(x)):!L&&i.key==="ArrowLeft"||!L&&i.key==="Backspace"&&b.value===""?(i.preventDefault(),t(w)):i.key==="Escape"&&u(v)&&(i.preventDefault(),i.stopPropagation(),n(v,!0))}),document.addEventListener("focusin",i=>{i.target?.matches?.(".timepicker__segment")&&i.target.select()}),document.addEventListener("focusout",i=>{const b=i.target?.closest?.("[data-timepicker]");if(!b||b.contains(i.relatedTarget))return;s(b),u(b)&&n(b,!1);const{hour:v}=m(b);v?.closest("form[data-validate]")&&(v.dataset.touched="",v.dispatchEvent(new Event("change",{bubbles:!0})))}),document.addEventListener("click",i=>{const b=i.target,v=b?.closest?.("[data-timepicker]");if(v){if(b.closest("[data-timepicker-toggle]")){u(v)?n(v,!0):a(v);return}const w=b.closest(".timepicker__slot");if(w){g(v,w);return}b.matches(".timepicker__segment")?b.select():b.closest(".timepicker__field")&&t(m(v).hour)}document.querySelectorAll("[data-timepicker].timepicker--open").forEach(w=>{w!==v&&n(w,!1)})}),document.addEventListener("timepicker:refresh",i=>{const b=i.target?.closest?.("[data-timepicker]");if(!b)return;const v=i.detail?.value;if(typeof v=="string"){const{hour:w,minute:x}=m(b),q=E(v);w.value=q===void 0?"":v.slice(0,2),x.value=q===void 0?"":v.slice(3)}o(b)});function k(i){const{carrier:b}=m(i);if(!b||b.type==="hidden")return;const v=b.value;b.type="hidden",b.value=v,b.removeAttribute("aria-invalid"),o(i,!1)}function _(){document.querySelectorAll("[data-timepicker]").forEach(k)}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",_):_(),document.addEventListener("rapid:swapped",_)})(),(()=>{const A=new WeakMap;function E(c){const f=Number(c.dataset.toastAutodismiss);!f||A.has(c)||A.set(c,setTimeout(()=>c.remove(),f))}function p(c){const f=Number(c.dataset.toastMax)||4,r=c.querySelectorAll(":scope > .toast");for(let o=0;o<r.length-f;o++)r[o].remove()}function m(c){c.querySelectorAll?.(".toast[data-toast-autodismiss]").forEach(E),c.matches?.(".toast[data-toast-autodismiss]")&&E(c),c.querySelectorAll?.(".toast-region").forEach(p),c.closest?.(".toast-region")&&p(c.closest(".toast-region"))}m(document),new MutationObserver(c=>{for(const f of c)for(const r of f.addedNodes)r.nodeType===1&&m(r)}).observe(document.documentElement,{childList:!0,subtree:!0}),document.addEventListener("click",c=>{const f=c.target.closest?.("[data-toast-open]");if(!f)return;const r=document.querySelector(f.getAttribute("data-toast-open")??""),o=document.querySelector(f.getAttribute("data-toast-region")??"#toast-region");!r?.content||!o||o.append(r.content.cloneNode(!0))})})();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tundralibs/ui",
3
- "version": "0.9.0",
3
+ "version": "0.10.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
  "keywords": [
6
6
  "ui",