diff --git a/CHANGELOG.md b/CHANGELOG.md index 501da6bf6..f8ae6344f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -141,6 +141,19 @@ mosaic and tree list modes, global search, the tab menu and four dashboard block ### Added +- Help in a box (2026-10-28): the new `help_style` form option, `plain` (the default, the small + grey `adm-help` line under the control) or `box`, draws a field's help as a lighter box under the + control (`adm-help-box`) in the form's own text size — the label's and the control's 14px rather + than 12px — for forms whose help is part of the reading. Help given as markup (`help_html`) gets + its headings, paragraphs, lists and `code` styled in the box. The option is inherited, so an admin + sets it once in `configureFormOptions()` and its fields, sub-forms and collection entries (the + prototype too) follow; a field can pick the other style for itself. The new + `options.help_style` (default `plain`) is the default of every form. The help keeps its place, + its id and the `adminata-field-help` hook in both styles. The option comes from the new + `HelpStyleTypeExtension` (`adminata.admin.form.extension.help_style`); `form_help` reads its + `help_style` view variable. Moved here from recomaty-panel#682, whose prototype drew the box + with a form theme and a stylesheet of its own. + - The sidebar keeps its place across page loads (2026-10-22): a click on an entry of a scrolled menu no longer throws the menu back to the top. The next page shows the menu where the last one left it, then scrolls it by the least distance that shows the current screen's entry (all that diff --git a/UPGRADE-1.0.md b/UPGRADE-1.0.md index dec9dec8b..4a10ec076 100644 --- a/UPGRADE-1.0.md +++ b/UPGRADE-1.0.md @@ -46,6 +46,7 @@ New nodes: |---|---|---| | `options.theme.mode` | `system` | `light`, `dark` or `system`; resolved server-side from the `adminata_theme` cookie, so a page never paints the wrong theme first | | `options.list_row_link` | `true` | clicking a list row opens the object | +| `options.help_style` | `plain` | how a form field's help is drawn: `plain` (a small line under the control) or `box` (a lighter box in the form's text size); a form or a field picks its own with the `help_style` form option | | `options.sidebar_logout` | `true` | sign-out in the toolbar above the sidebar menu, asking first; `false` drops it | | `options.released_version` | `null` | the application's released version, a badge at the foot of the sidebar; pass it from the deploy (`'%env(default::RELEASED_VERSION)%'`), empty shows nothing | diff --git a/assets/css/components/misc.css b/assets/css/components/misc.css index ad77b5816..d87a11f2a 100644 --- a/assets/css/components/misc.css +++ b/assets/css/components/misc.css @@ -56,6 +56,31 @@ } } +/* + * `help_style: box` (Form\Extension\HelpStyleTypeExtension): the help under the control as a + * lighter box in the form's own reading size — the label's and the control's 14px, never + * `adm-help`'s 12px — for forms whose help is part of the reading. The dark card is white at 3% + * over the page; the box is a step lighter than the card. Its markup (`help_html`) is styled in + * the components layer below. + */ +@utility adm-help-box { + margin-top: 0.5rem; + padding: 0.75rem 1rem; + border: 1px solid var(--color-gray-100); + border-radius: var(--radius-control); + background-color: var(--color-gray-50); + color: var(--color-gray-600); + font-size: var(--text-theme-sm); + line-height: var(--text-theme-sm--line-height); + overflow-wrap: anywhere; + + @variant dark { + border-color: var(--color-gray-800); + background-color: rgb(255 255 255 / 5%); + color: var(--color-gray-400); + } +} + @utility adm-error { margin-top: 0.375rem; color: var(--color-error-500); @@ -222,4 +247,67 @@ transform: rotate(360deg); } } + + /* + * Help given as markup (`help_html`) in an `adm-help-box`: headings, paragraphs, lists of + * placeholders and code, which the preflight leaves unstyled — a list without its bullets + * reads as one run-on line. + */ + .adm-help-box h3, + .adm-help-box h4 { + margin: 0.75rem 0 0.25rem; + color: var(--color-gray-700); + font-weight: 600; + } + + .adm-help-box h3:first-child, + .adm-help-box h4:first-child { + margin-top: 0; + } + + .adm-help-box p + p { + margin-top: 0.5rem; + } + + .adm-help-box ul, + .adm-help-box ol { + margin-block: 0.25rem; + padding-inline-start: 1.25rem; + } + + .adm-help-box ul { + list-style: disc; + } + + .adm-help-box ol { + list-style: decimal; + } + + .adm-help-box li + li { + margin-top: 0.125rem; + } + + .adm-help-box b, + .adm-help-box strong { + color: var(--color-gray-700); + font-weight: 600; + } + + .adm-help-box code { + padding-inline: 0.25rem; + border-radius: 0.25rem; + background-color: var(--color-gray-100); + font-size: 0.9em; + } + + .dark .adm-help-box h3, + .dark .adm-help-box h4, + .dark .adm-help-box b, + .dark .adm-help-box strong { + color: var(--color-gray-300); + } + + .dark .adm-help-box code { + background-color: rgb(255 255 255 / 8%); + } } diff --git a/assets/css/contract.json b/assets/css/contract.json index ff8b81f6f..0185d10a4 100644 --- a/assets/css/contract.json +++ b/assets/css/contract.json @@ -85,6 +85,7 @@ ".adm-form-row", ".adm-header", ".adm-help", + ".adm-help-box", ".adm-icon-enum", ".adm-icon-enum__label", ".adm-input", diff --git a/assets/css/safelist.css b/assets/css/safelist.css index 2ea68b7da..47d42c7e0 100644 --- a/assets/css/safelist.css +++ b/assets/css/safelist.css @@ -5,7 +5,7 @@ * grid classes the PHP layer produces at runtime. */ -@source inline("{adm-actions,adm-alert,adm-alert-error,adm-alert-info,adm-alert-success,adm-alert-warning,adm-badge,adm-badge-brand,adm-badge-error,adm-badge-icon,adm-badge-info,adm-badge-success,adm-badge-warning,adm-breadcrumb,adm-btn,adm-btn-block,adm-btn-danger,adm-btn-ghost,adm-btn-icon,adm-btn-icon-delete,adm-btn-icon-edit,adm-btn-icon-history,adm-btn-icon-round,adm-btn-icon-show,adm-btn-primary,adm-btn-secondary,adm-btn-sm,adm-btn-success,adm-btn-warning,adm-callout,adm-callout-danger,adm-callout-info,adm-callout-success,adm-callout-warning,adm-card,adm-card-body,adm-card-error,adm-card-flush,adm-card-footer,adm-card-header,adm-card-info,adm-card-subtitle,adm-card-success,adm-card-title,adm-card-warning,adm-checkbox,adm-checkbox-label,adm-chip,adm-chip__remove,adm-choice-list,adm-collection,adm-collection-row,adm-combobox,adm-combobox__chips,adm-combobox__listbox,adm-combobox__option,adm-combobox__status,adm-content,adm-dialog,adm-dialog-lg,adm-dialog-list,adm-dialog-sm,adm-dialog__body,adm-dialog__footer,adm-dialog__header,adm-dropdown,adm-dropdown__divider,adm-dropdown__item,adm-dropdown__menu,adm-dropdown__menu-start,adm-empty-layout,adm-error,adm-error-list,adm-file,adm-filters,adm-form-row,adm-header,adm-help,adm-icon-enum,adm-icon-enum__label,adm-input,adm-input-affix,adm-input-error,adm-input-group,adm-label,adm-list-empty,adm-list-footer,adm-list-legend,adm-list-legend__group,adm-list-legend__item,adm-list-legend__term,adm-menu,adm-menu-group-title,adm-menu-popup-title,adm-overlay,adm-page-header,adm-page-title,adm-pagination,adm-radio,adm-radio-label,adm-required,adm-select,adm-select-multiple,adm-shell,adm-show-table,adm-sidebar,adm-sidebar-filter,adm-sidebar-header,adm-sidebar-nav,adm-sidebar-release,adm-sidebar-toolbar,adm-skip-link,adm-spinner,adm-tab,adm-tab-errors,adm-table,adm-table-scroll,adm-table-wrap,adm-tablist,adm-tabs,adm-textarea,custom-scrollbar,menu-dropdown,menu-dropdown-item,menu-dropdown-item-active,menu-dropdown-item-inactive,menu-item,menu-item-active,menu-item-inactive,no-scrollbar}"); +@source inline("{adm-actions,adm-alert,adm-alert-error,adm-alert-info,adm-alert-success,adm-alert-warning,adm-badge,adm-badge-brand,adm-badge-error,adm-badge-icon,adm-badge-info,adm-badge-success,adm-badge-warning,adm-breadcrumb,adm-btn,adm-btn-block,adm-btn-danger,adm-btn-ghost,adm-btn-icon,adm-btn-icon-delete,adm-btn-icon-edit,adm-btn-icon-history,adm-btn-icon-round,adm-btn-icon-show,adm-btn-primary,adm-btn-secondary,adm-btn-sm,adm-btn-success,adm-btn-warning,adm-callout,adm-callout-danger,adm-callout-info,adm-callout-success,adm-callout-warning,adm-card,adm-card-body,adm-card-error,adm-card-flush,adm-card-footer,adm-card-header,adm-card-info,adm-card-subtitle,adm-card-success,adm-card-title,adm-card-warning,adm-checkbox,adm-checkbox-label,adm-chip,adm-chip__remove,adm-choice-list,adm-collection,adm-collection-row,adm-combobox,adm-combobox__chips,adm-combobox__listbox,adm-combobox__option,adm-combobox__status,adm-content,adm-dialog,adm-dialog-lg,adm-dialog-list,adm-dialog-sm,adm-dialog__body,adm-dialog__footer,adm-dialog__header,adm-dropdown,adm-dropdown__divider,adm-dropdown__item,adm-dropdown__menu,adm-dropdown__menu-start,adm-empty-layout,adm-error,adm-error-list,adm-file,adm-filters,adm-form-row,adm-header,adm-help,adm-help-box,adm-icon-enum,adm-icon-enum__label,adm-input,adm-input-affix,adm-input-error,adm-input-group,adm-label,adm-list-empty,adm-list-footer,adm-list-legend,adm-list-legend__group,adm-list-legend__item,adm-list-legend__term,adm-menu,adm-menu-group-title,adm-menu-popup-title,adm-overlay,adm-page-header,adm-page-title,adm-pagination,adm-radio,adm-radio-label,adm-required,adm-select,adm-select-multiple,adm-shell,adm-show-table,adm-sidebar,adm-sidebar-filter,adm-sidebar-header,adm-sidebar-nav,adm-sidebar-release,adm-sidebar-toolbar,adm-skip-link,adm-spinner,adm-tab,adm-tab-errors,adm-table,adm-table-scroll,adm-table-wrap,adm-tablist,adm-tabs,adm-textarea,custom-scrollbar,menu-dropdown,menu-dropdown-item,menu-dropdown-item-active,menu-dropdown-item-inactive,menu-item,menu-item-active,menu-item-inactive,no-scrollbar}"); /* The add block's column count, composed from `dropdown_number_groups_per_colums`. */ @source inline("grid-cols-{1..6}"); diff --git a/docs/admin-bundle/reference/action_create_edit.rst b/docs/admin-bundle/reference/action_create_edit.rst index 1e86837fc..1093babf8 100644 --- a/docs/admin-bundle/reference/action_create_edit.rst +++ b/docs/admin-bundle/reference/action_create_edit.rst @@ -20,6 +20,7 @@ Adminata Options that may affect the create or edit view: js_debug: false # enable or disable to show javascript debug messages use_stickyforms: true # enable or disable the floating buttons form_type: standard # can also be 'horizontal' + help_style: plain # can also be 'box', see "Help in a box" below templates: edit: '@Adminata/CRUD/edit.html.twig' @@ -198,6 +199,35 @@ under all the columns, and a hook for ``adminata-reveal`` keeps working. Without the tab is an ordinary grid of that many columns, one card per cell. The show page's tabs take the same two options. +.. _form_help_box: + +Help in a box +------------- + +A field's ``help`` is a small grey line under the control (``adm-help``, 12px). For a form whose +help is part of the reading — long explanations, a list of the placeholders a template takes — +``help_style: box`` draws every help as a lighter box under the control instead +(``adm-help-box``), in the form's own text size, the label's and the control's. Help given as +markup (``help_html``) gets its headings, paragraphs, lists and ``code`` styled in the box. + +The ``help_style`` form option is ``plain`` or ``box``, and it is inherited: a field or sub-form +that names none takes its parent's, so one admin sets it once for its whole form, collection +entries included:: + + final class DeviceSettingsAdmin extends AbstractAdmin + { + protected function configureFormOptions(array &$formOptions): void + { + $formOptions['help_style'] = 'box'; + } + } + +A single field can still pick the other style +(``->add('code', TextType::class, ['help' => '…', 'help_style' => 'plain'])``), and +``adminata.options.help_style: box`` makes the box the default of every form. In both styles the +help keeps its place under the control and its errors, its id and the ``adminata-field-help`` +hook. + .. _form_tabs: Tabs diff --git a/docs/admin-bundle/reference/configuration.rst b/docs/admin-bundle/reference/configuration.rst index e6f395a55..2c95d0130 100644 --- a/docs/admin-bundle/reference/configuration.rst +++ b/docs/admin-bundle/reference/configuration.rst @@ -139,6 +139,9 @@ is a container build error rather than a warning: ``options.skin``, ``options.us # Open the object when a list row is clicked, using the route named by default_admin_route list_row_link: true + # How a form field's help is drawn: plain, a small line under the control, or box, a lighter box in the form's text size; a form or a field picks its own with the help_style form option + help_style: plain # One of "plain"; "box" + # Offer sign-out in the toolbar above the sidebar menu, behind a firewall that configures a logout; it asks before it signs out sidebar_logout: true diff --git a/src/AdminataConfiguration.php b/src/AdminataConfiguration.php index d84245d06..ee1874ce4 100644 --- a/src/AdminataConfiguration.php +++ b/src/AdminataConfiguration.php @@ -22,6 +22,7 @@ * default_translation_domain: string, * dropdown_number_groups_per_colums: int, * form_type: 'standard'|'horizontal', + * help_style: 'plain'|'box', * html5_validate: bool, * javascripts: list, * js_debug: bool, diff --git a/src/DependencyInjection/AdminataExtension.php b/src/DependencyInjection/AdminataExtension.php index 1422eab22..d1c7cd91a 100644 --- a/src/DependencyInjection/AdminataExtension.php +++ b/src/DependencyInjection/AdminataExtension.php @@ -208,6 +208,9 @@ public function load(array $configs, ContainerBuilder $container): void ->replaceArgument(0, $classes) ->replaceArgument(1, $config['options']); + $container->getDefinition('adminata.admin.form.extension.help_style') + ->replaceArgument(0, $config['options']['help_style']); + // remove non-Mopa compatibility layer if (isset($bundles['MopaBootstrapBundle'])) { $container->removeDefinition('adminata.admin.form.extension.field.mopa'); diff --git a/src/DependencyInjection/Configuration.php b/src/DependencyInjection/Configuration.php index 8710e71df..58ee070b2 100644 --- a/src/DependencyInjection/Configuration.php +++ b/src/DependencyInjection/Configuration.php @@ -41,6 +41,7 @@ * default_label_catalogue: string, * dropdown_number_groups_per_colums: int, * form_type: 'standard'|'horizontal', + * help_style: 'plain'|'box', * html5_validate: bool, * js_debug: bool, * list_action_button_content: 'text'|'icon'|'all', @@ -379,6 +380,11 @@ public function getConfigTreeBuilder(): TreeBuilder ->defaultTrue() ->info('Open the object when a list row is clicked, using the route named by default_admin_route') ->end() + ->enumNode('help_style') + ->values(['plain', 'box']) + ->defaultValue('plain') + ->info('How a form field\'s help is drawn: plain, a small line under the control, or box, a lighter box in the form\'s text size; a form or a field picks its own with the help_style form option') + ->end() ->booleanNode('sidebar_logout') ->defaultTrue() ->info('Offer sign-out in the toolbar above the sidebar menu, behind a firewall that configures a logout; it asks before it signs out') diff --git a/src/Form/Extension/HelpStyleTypeExtension.php b/src/Form/Extension/HelpStyleTypeExtension.php new file mode 100644 index 000000000..eb254887e --- /dev/null +++ b/src/Form/Extension/HelpStyleTypeExtension.php @@ -0,0 +1,101 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace IDCT\Adminata\Form\Extension; + +use Symfony\Component\Form\AbstractTypeExtension; +use Symfony\Component\Form\Extension\Core\Type\FormType; +use Symfony\Component\Form\FormInterface; +use Symfony\Component\Form\FormTypeInterface; +use Symfony\Component\Form\FormView; +use Symfony\Component\OptionsResolver\OptionsResolver; + +/** + * How a field's help is drawn: `plain`, the small grey line under the control, or `box`, a + * lighter box under the control set in the form's own text size, for forms whose help is + * part of the reading (recomaty/recomaty-panel#682). + * + * The `help_style` option is inherited. A form or field without one of its own takes its + * parent's, so an admin sets it once for its whole form — the root form's options, from + * `configureFormOptions()` — and its sub-forms and collection entries (the prototype too) + * follow; a field can still pick the other style for itself. A form at the top with none + * takes `adminata.options.help_style`. + * + * The resolved style is the view variable `help_style`, which `form_help` of + * `@Adminata/Form/form_admin_fields.html.twig` reads to pick `adm-help` or `adm-help-box`. + */ +final class HelpStyleTypeExtension extends AbstractTypeExtension +{ + public const string PLAIN = 'plain'; + + public const string BOX = 'box'; + + /** + * @var list + */ + public const array STYLES = [self::PLAIN, self::BOX]; + + /** + * @param string $default the style of a form at the top that names none, `adminata.options.help_style` + */ + public function __construct( + private readonly string $default = self::PLAIN, + ) { + if (!\in_array($default, self::STYLES, true)) { + throw new \InvalidArgumentException(\sprintf( + 'The default help style must be one of "%s", got "%s".', + implode('", "', self::STYLES), + $default, + )); + } + } + + public function configureOptions(OptionsResolver $resolver): void + { + $resolver + ->setDefault('help_style', null) + ->setAllowedValues('help_style', [null, ...self::STYLES]) + ->setInfo('help_style', 'How the help is drawn: "plain" or "box"; null takes the parent form\'s, and the top form\'s default is adminata.options.help_style.'); + } + + /** + * @param array $options + */ + public function buildView(FormView $view, FormInterface $form, array $options): void + { + $own = $options['help_style'] ?? null; + + $view->vars['help_style'] = \is_string($own) ? $own : $this->inherited($view); + } + + /** + * @return string[] + * + * @phpstan-return class-string[] + */ + public static function getExtendedTypes(): iterable + { + return [FormType::class]; + } + + /** + * The parent's resolved style. A parent's `buildView()` has run before its children's + * views are created, the collection prototype's included, so the variable is there. + */ + private function inherited(FormView $view): string + { + $parentStyle = $view->parent?->vars['help_style'] ?? null; + + return \is_string($parentStyle) ? $parentStyle : $this->default; + } +} diff --git a/src/Resources/config/form_types.php b/src/Resources/config/form_types.php index 5576ea464..b9493e3c2 100644 --- a/src/Resources/config/form_types.php +++ b/src/Resources/config/form_types.php @@ -18,6 +18,7 @@ use IDCT\Adminata\Form\Extension\ChoiceTypeExtension; use IDCT\Adminata\Form\Extension\Field\Type\FormTypeFieldExtension; use IDCT\Adminata\Form\Extension\Field\Type\MopaCompatibilityTypeFieldExtension; +use IDCT\Adminata\Form\Extension\HelpStyleTypeExtension; use IDCT\Adminata\Form\Type\AdminType; use IDCT\Adminata\Form\Type\ChoiceFieldMaskType; use IDCT\Adminata\Form\Type\Filter\ChoiceType; @@ -91,6 +92,15 @@ 'extended_type' => SymfonyChoiceType::class, ]) + // The `help_style` form option; its default is `adminata.options.help_style`. + ->set('adminata.admin.form.extension.help_style', HelpStyleTypeExtension::class) + ->tag('form.type_extension', [ + 'extended_type' => FormType::class, + ]) + ->args([ + abstract_arg('default help style'), + ]) + // NEXT_MAJOR: Remove this service definition. ->set('adminata.admin.form.filter.type.number', NumberType::class) ->tag('form.type', ['alias' => 'adminata_type_filter_number']) diff --git a/src/Resources/public/app.css b/src/Resources/public/app.css index 60f0e1c00..e3a363d6f 100644 --- a/src/Resources/public/app.css +++ b/src/Resources/public/app.css @@ -1,2 +1,2 @@ /*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */ -@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-orange-50:#fff6ed;--color-orange-100:#ffead5;--color-orange-200:#fddcab;--color-orange-300:#feb273;--color-orange-400:#fd853a;--color-orange-500:#fb6514;--color-orange-600:#ec4a0a;--color-orange-700:#c4320a;--color-orange-800:#9c2a10;--color-orange-900:#7e2410;--color-orange-950:#511c10;--color-gray-50:#f9fafb;--color-gray-100:#f2f4f7;--color-gray-200:#e4e7ec;--color-gray-300:#d0d5dd;--color-gray-400:#98a2b3;--color-gray-500:#667085;--color-gray-600:#475467;--color-gray-700:#344054;--color-gray-800:#1d2939;--color-gray-900:#101828;--color-gray-950:#0c111d;--color-black:#101828;--color-white:#fff;--spacing:.25rem;--breakpoint-sm:640px;--breakpoint-md:768px;--breakpoint-lg:1024px;--breakpoint-xl:1280px;--breakpoint-2xl:1536px;--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--font-weight-medium:500;--font-weight-semibold:600;--radius-md:.375rem;--radius-lg:.5rem;--radius-2xl:1rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--font-outfit:"Outfit Variable", Outfit, ui-sans-serif, system-ui, sans-serif;--breakpoint-2xsm:375px;--breakpoint-xsm:425px;--breakpoint-3xl:2000px;--text-title-2xl:72px;--text-title-2xl--line-height:90px;--text-title-xl:60px;--text-title-xl--line-height:72px;--text-title-lg:48px;--text-title-lg--line-height:60px;--text-title-md:36px;--text-title-md--line-height:44px;--text-title-sm:30px;--text-title-sm--line-height:38px;--text-theme-xl:20px;--text-theme-xl--line-height:30px;--text-theme-sm:14px;--text-theme-sm--line-height:20px;--text-theme-xs:12px;--text-theme-xs--line-height:18px;--color-current:currentColor;--color-transparent:transparent;--color-brand-25:#f2f7ff;--color-brand-50:#ecf3ff;--color-brand-100:#dde9ff;--color-brand-200:#c2d6ff;--color-brand-300:#9cb9ff;--color-brand-400:#7592ff;--color-brand-500:#465fff;--color-brand-600:#3641f5;--color-brand-700:#2a31d8;--color-brand-800:#252dae;--color-brand-900:#262e89;--color-brand-950:#161950;--color-blue-light-25:#f5fbff;--color-blue-light-50:#f0f9ff;--color-blue-light-100:#e0f2fe;--color-blue-light-200:#b9e6fe;--color-blue-light-300:#7cd4fd;--color-blue-light-400:#36bffa;--color-blue-light-500:#0ba5ec;--color-blue-light-600:#0086c9;--color-blue-light-700:#026aa2;--color-blue-light-800:#065986;--color-blue-light-900:#0b4a6f;--color-blue-light-950:#062c41;--color-gray-25:#fcfcfd;--color-gray-dark:#1a2231;--color-orange-25:#fffaf5;--color-success-25:#f6fef9;--color-success-50:#ecfdf3;--color-success-100:#d1fadf;--color-success-200:#a6f4c5;--color-success-300:#6ce9a6;--color-success-400:#32d583;--color-success-500:#12b76a;--color-success-600:#039855;--color-success-700:#027a48;--color-success-800:#05603a;--color-success-900:#054f31;--color-success-950:#053321;--color-error-25:#fffbfa;--color-error-50:#fef3f2;--color-error-100:#fee4e2;--color-error-200:#fecdca;--color-error-300:#fda29b;--color-error-400:#f97066;--color-error-500:#f04438;--color-error-600:#d92d20;--color-error-700:#b42318;--color-error-800:#912018;--color-error-900:#7a271a;--color-error-950:#55160c;--color-warning-25:#fffcf5;--color-warning-50:#fffaeb;--color-warning-100:#fef0c7;--color-warning-200:#fedf89;--color-warning-300:#fec84b;--color-warning-400:#fdb022;--color-warning-500:#f79009;--color-warning-600:#dc6803;--color-warning-700:#b54708;--color-warning-800:#93370d;--color-warning-900:#7a2e0e;--color-warning-950:#4e1d09;--color-theme-pink-500:#ee46bc;--color-theme-purple-500:#7a5af8;--shadow-theme-md:0px 4px 8px -2px #1018281a, 0px 2px 4px -2px #1018280f;--shadow-theme-lg:0px 12px 16px -4px #10182814, 0px 4px 6px -2px #10182808;--shadow-theme-sm:0px 1px 3px 0px #1018281a, 0px 1px 2px 0px #1018280f;--shadow-theme-xs:0px 1px 2px 0px #1018280d;--shadow-theme-xl:0px 20px 24px -4px #10182814, 0px 8px 8px -4px #10182808;--shadow-datepicker:-5px 0 0 #262d3c, 5px 0 0 #262d3c;--shadow-focus-ring:0px 0px 0px 4px #465fff1f;--shadow-slider-navigation:0px 1px 2px 0px #1018281a, 0px 1px 3px 0px #1018281a;--shadow-tooltip:0px 4px 6px -2px #1018280d, -8px 0px 20px 8px #1018280d;--drop-shadow-4xl:0 35px 35px #00000040, 0 45px 65px #00000026;--z-index-1:1;--z-index-9:9;--z-index-99:99;--z-index-999:999;--z-index-9999:9999;--z-index-99999:99999;--z-index-999999:999999;--radius-control:.5rem;--radius-card:1rem;--radius-panel:.75rem;--radius-modal:1rem;--z-index-base:1;--z-index-overlay:10;--z-index-sticky:20;--z-index-dropdown:30;--z-index-sidebar:40;--z-index-skip-link:100000;--z-index-header:50;--z-index-modal:60;--z-index-popover:70;--z-index-toast:80;--z-index-loader:90}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*,:after,:before,::backdrop{border-color:var(--color-gray-200,currentcolor)}::file-selector-button{border-color:var(--color-gray-200,currentcolor)}.dark *,.dark :after,.dark :before,.dark ::backdrop{border-color:var(--color-gray-800,currentcolor)}.dark ::file-selector-button{border-color:var(--color-gray-800,currentcolor)}button:not(:disabled),[role=button]:not(:disabled){cursor:pointer}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}.dark{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{background-color:var(--color-gray-50);color:var(--color-gray-700);font-family:var(--font-outfit);font-size:var(--text-theme-sm);line-height:var(--text-theme-sm--line-height);-webkit-font-smoothing:antialiased}.dark body{background-color:var(--color-gray-900);color:var(--color-gray-400)}}@layer components{.dark .adm-select option{background-color:var(--color-gray-900);color:#ffffffe6}.dark .adm-select[multiple] option:checked{background-color:revert;color:revert}.adm-alert__body{flex:auto;min-width:0}.adm-alert__dismiss{color:inherit;opacity:.6;flex-shrink:0;margin-inline-start:auto}.adm-alert__dismiss:hover{opacity:1}.adm-alert__more{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.adm-alert__more~.adm-alert__body{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.adm-alert__more:checked~.adm-alert__body{display:block;overflow:visible}.adm-alert__more-label{cursor:pointer;align-items:center;gap:.5rem;margin-top:.5rem;font-weight:500;display:inline-flex}.adm-alert__more~* .adm-alert__more-less,.adm-alert__more:checked~* .adm-alert__more-more{display:none}.adm-alert__more:checked~* .adm-alert__more-less{display:inline}.adm-dropdown__menu ul>li>a{border-radius:var(--radius-control);color:var(--color-gray-700);font-size:var(--text-theme-sm);align-items:center;gap:.75rem;padding-block:.5rem;padding-inline:.75rem;font-weight:500;display:flex}.adm-dropdown__menu ul>li>a:hover{background-color:var(--color-gray-100)}.dark .adm-dropdown__menu ul>li>a{color:var(--color-gray-400)}.dark .adm-dropdown__menu ul>li>a:hover{color:var(--color-gray-300);background-color:#ffffff0d}.adm-table thead th{padding-inline:var(--adm-cell-px);border-bottom:1px solid var(--color-gray-100);color:var(--color-gray-500);font-size:var(--text-theme-xs);line-height:var(--text-theme-xs--line-height);text-align:start;white-space:nowrap;padding-block:.75rem;font-weight:500}.adm-table tbody tr{border-top:1px solid var(--color-gray-100)}.adm-table tbody tr:hover{background-color:var(--color-gray-50)}.adm-table tbody td{padding-inline:var(--adm-cell-px);padding-block:var(--adm-cell-py);color:var(--color-gray-700);font-size:var(--text-theme-sm);line-height:var(--text-theme-sm--line-height);vertical-align:middle}.adm-table tbody tr.adminata-list-row-selected{background-color:var(--color-brand-50)}.dark .adm-table thead th{border-bottom-color:var(--color-gray-800);color:var(--color-gray-400)}.dark .adm-table tbody tr{border-top-color:var(--color-gray-800)}.dark .adm-table tbody tr:hover{background-color:#ffffff08}.dark .adm-table tbody td{color:var(--color-gray-300)}.dark .adm-table tbody tr.adminata-list-row-selected{background-color:#465fff1f}.adm-pagination>li>a,.adm-pagination>li>span{border-radius:var(--radius-control);min-width:2.25rem;height:2.25rem;color:var(--color-gray-600);font-size:var(--text-theme-sm);justify-content:center;align-items:center;padding-inline:.5rem;font-weight:500;display:inline-flex}.adm-pagination>li>a:hover{background-color:var(--color-gray-100);color:var(--color-gray-800)}.adm-pagination>li.active>a,.adm-pagination>li.active>span{background-color:var(--color-brand-500);color:var(--color-white)}.adm-pagination>li.disabled>a,.adm-pagination>li.disabled>span{cursor:not-allowed;opacity:.5}.dark .adm-pagination>li>a,.dark .adm-pagination>li>span{color:var(--color-gray-400)}.dark .adm-pagination>li>a:hover{color:var(--color-gray-200);background-color:#ffffff0d}.menu-item-arrow{margin-inline-start:auto;transition:transform .15s ease-out}.menu-item[aria-expanded=true] .menu-item-arrow{transform:rotate(180deg)}.menu-item-text{white-space:nowrap;text-overflow:ellipsis;flex:auto;min-width:0;overflow:hidden}@media (width>=1024px){.adm-shell[data-sidebar=collapsed] .menu-item-text{display:none}.adm-shell[data-sidebar=collapsed] .menu-dropdown .menu-item-text{display:block}.adm-shell[data-sidebar=collapsed] .adm-menu>li>.menu-item>.menu-item-text{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;display:block;position:absolute;overflow:hidden}.adm-shell[data-sidebar=collapsed] .adm-menu>li>.menu-item>.menu-item-arrow{display:none}}.adm-sidebar a:focus-visible,.adm-sidebar button:focus-visible{outline:2px solid var(--color-brand-500);outline-offset:-2px}@media (width>=1024px){.adm-main{margin-inline-start:var(--adm-sidebar-w);transition:margin-inline-start .2s ease-out}.adm-shell[data-sidebar=collapsed] .adm-main{margin-inline-start:var(--adm-sidebar-collapsed-w)}}@media (prefers-reduced-motion:reduce){.adm-main{transition:none}}.adm-breadcrumb li+li:before{content:"";border-top:1.5px solid var(--color-gray-400);border-inline-end:1.5px solid var(--color-gray-400);width:.375rem;height:.375rem;margin-inline:.375rem;transform:rotate(45deg)}[dir=rtl] .adm-breadcrumb li+li:before{transform:rotate(-135deg)}.adm-breadcrumb li{align-items:center;display:flex}.adm-breadcrumb a{color:var(--color-gray-500);font-size:var(--text-theme-sm)}.adm-breadcrumb a:hover{color:var(--color-gray-700)}.adm-breadcrumb .active{color:var(--color-gray-800);font-size:var(--text-theme-sm)}.adm-sticky.stuck{z-index:var(--z-index-sticky);border-top:1px solid var(--color-gray-200);background-color:var(--color-white);box-shadow:var(--shadow-theme-lg);position:sticky;bottom:0}.dark .adm-breadcrumb .active{color:#ffffffe6}.dark .adm-breadcrumb a{color:var(--color-gray-400)}.dark .adm-breadcrumb a:hover{color:var(--color-gray-200)}.dark .adm-sticky.stuck{border-top-color:var(--color-gray-800);background-color:var(--color-gray-900)}.adminata-list-field-readmore{max-width:100%;display:inline-block}.adminata-readmore-content{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.adminata-readmore-content[data-expanded=true]{display:block;overflow:visible}.adminata-list-field-actions .adm-btn-icon{border:1px solid var(--color-gray-200);background-color:var(--color-white)}.adminata-list-field-actions .adm-btn-icon:disabled{cursor:not-allowed;opacity:.5}.dark .adminata-list-field-actions .adm-btn-icon{border-color:var(--color-gray-700);background-color:#ffffff08}.adm-table th.adminata-list-field-header-batch,.adm-table td.adminata-list-field-batch,.adm-table th.adminata-list-field-header-select,.adm-table td.adminata-list-field-select,.adm-table th.adminata-list-field-header-actions,.adm-table td.adminata-list-field-actions{white-space:nowrap;width:1%}.adm-table th.adminata-list-field-header-id,.adm-table td.adminata-list-field-id{box-sizing:content-box;white-space:nowrap;width:6ch;min-width:6ch}.adm-table tbody tr.adminata-list-row-link{cursor:pointer}.adm-show-table tr{border-top:1px solid var(--color-gray-100)}.adm-show-table tr:first-child{border-top:0}.adm-show-table th{width:30%;padding-inline:var(--adm-cell-px);padding-block:var(--adm-cell-py);color:var(--color-gray-500);font-size:var(--text-theme-sm);text-align:start;vertical-align:top;font-weight:500}.adm-show-table td{padding-inline:var(--adm-cell-px);padding-block:var(--adm-cell-py);color:var(--color-gray-800);font-size:var(--text-theme-sm);vertical-align:top}.dark .adm-show-table tr{border-top-color:var(--color-gray-800)}.dark .adm-show-table th{color:var(--color-gray-400)}.dark .adm-show-table td{color:#ffffffe6}@keyframes adm-spin{to{transform:rotate(360deg)}}}@layer utilities{.adm-sidebar-filter{margin-bottom:1rem;position:relative}.adm-sidebar-filter>.adm-input{padding-inline-start:2.5rem}.adm-sidebar-filter>.fa-magnifying-glass{inset-inline-start:.875rem;top:calc(var(--adm-control-h) / 2);color:var(--color-gray-400);pointer-events:none;position:absolute;translate:0 -50%}.adm-sidebar-filter>[role=status]>span{color:var(--color-gray-500);font-size:var(--text-theme-sm);line-height:var(--text-theme-sm--line-height);margin-top:.75rem;padding-inline:.75rem;display:block}.adm-sidebar-filter>[role=status]>span:where(.dark,.dark *){color:var(--color-gray-400)}@media (width>=1024px){.adm-shell[data-sidebar=collapsed] .adm-sidebar-filter{display:none}}.collapse{visibility:collapse}.visible{visibility:visible}.adm-overlay{z-index:var(--z-index-overlay);background-color:#10182880;position:fixed;inset:0}.adm-shell[data-sidebar-mobile=open] .adm-overlay{z-index:calc(var(--z-index-modal) - 1)}.adm-combobox__listbox{z-index:var(--z-index-popover);border:1px solid var(--color-gray-200);border-radius:var(--radius-control);background-color:var(--color-white);max-height:16rem;box-shadow:var(--shadow-theme-lg);margin-top:.25rem;padding:.25rem;position:absolute;inset-inline:0;overflow-y:auto}.adm-combobox__listbox:where(.dark,.dark *){border-color:var(--color-gray-800);background-color:var(--color-gray-dark)}.adm-sidebar{z-index:var(--z-index-sidebar);width:var(--adm-sidebar-w);border-inline-end:1px solid var(--color-gray-200);background-color:var(--color-white);flex-direction:column;padding-inline:1.25rem;transition:transform .2s ease-out,width .2s ease-out;display:flex;position:fixed;inset-block:0;inset-inline-start:0}@media (prefers-reduced-motion:reduce){.adm-shell .adm-sidebar{transition:none}}.adm-sidebar:where(.dark,.dark *){border-inline-end-color:var(--color-gray-800);background-color:var(--color-black)}@media not all and (width>=1024px){.adm-shell .adm-sidebar{transform:translate(-100%)}[dir=rtl] .adm-shell .adm-sidebar{transform:translate(100%)}.adm-shell[data-sidebar-mobile=open] .adm-sidebar{z-index:var(--z-index-modal);transform:translate(0)}}@media (width>=1024px){.adm-shell[data-sidebar=collapsed] .adm-sidebar{width:var(--adm-sidebar-collapsed-w)}.adm-shell[data-sidebar=collapsed] .adm-sidebar:has([data-adminata-menu-rail]>.adm-menu>li>.menu-item[aria-expanded=true]){z-index:calc(var(--z-index-header) + 1)}}.adm-skip-link{z-index:var(--z-index-skip-link);border-radius:var(--radius-control);background-color:var(--color-brand-600);color:var(--color-white);font-size:var(--text-theme-sm);inset-inline-start:-9999px;padding:.75rem 1rem;font-weight:500;position:absolute;top:0}.adm-skip-link:focus{inset-inline-start:.5rem;top:.5rem}@media (width>=1024px){.adm-shell[data-sidebar=collapsed] .adm-menu>li>.menu-dropdown{display:none}}.menu-dropdown{flex-direction:column;gap:.25rem;margin-top:.5rem;padding-inline-start:2.25rem;display:flex}.menu-item[aria-expanded=false]+.menu-dropdown{display:none}.menu-dropdown[data-sliding]{transition:height .5s ease-in-out;overflow:hidden}@media (prefers-reduced-motion:reduce){.menu-dropdown[data-sliding]{transition:none}}@media (width>=1024px){.adm-shell[data-sidebar=collapsed] [data-adminata-menu-rail]>.adm-menu>li>.menu-item[aria-expanded=true]+.menu-dropdown{top:var(--adm-menu-popup-top,.5rem);width:max-content;min-width:12rem;max-width:var(--adm-sidebar-w);border:1px solid var(--color-gray-200);border-radius:var(--radius-card);background-color:var(--color-white);max-height:calc(100vh - 1rem);box-shadow:var(--shadow-theme-lg);margin:0;padding:.5rem;display:flex;position:fixed;inset-inline-start:calc(var(--adm-menu-popup-start,var(--adm-sidebar-collapsed-w)) + .5rem);overflow-y:auto}.adm-shell[data-sidebar=collapsed] [data-adminata-menu-rail]>.adm-menu>li>.menu-item[aria-expanded=true]+.menu-dropdown:where(.dark,.dark *){border-color:var(--color-gray-800);background-color:var(--color-gray-dark)}}.adm-dropdown__menu{z-index:var(--z-index-dropdown);border:1px solid var(--color-gray-200);border-radius:var(--radius-card);background-color:var(--color-white);width:max-content;min-width:12rem;max-width:min(92vw,60rem);box-shadow:var(--shadow-theme-lg);margin-top:.5rem;padding:.5rem;position:absolute;inset-inline-end:0}.adm-dropdown__menu:where(.dark,.dark *){border-color:var(--color-gray-800);background-color:var(--color-gray-dark)}.adm-header{z-index:var(--z-index-header);width:100%;height:var(--adm-header-h);border-bottom:1px solid var(--color-gray-200);background-color:var(--color-white);align-items:center;gap:1rem;padding-inline:1rem;display:flex;position:sticky;top:0}.adm-header:where(.dark,.dark *){border-bottom-color:var(--color-gray-800);background-color:var(--color-gray-900)}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.menu-item{border-radius:var(--radius-control);width:100%;font-size:var(--text-theme-sm);line-height:var(--text-theme-sm--line-height);text-align:start;align-items:center;gap:.75rem;padding-block:.5rem;padding-inline:.75rem;font-weight:500;display:flex;position:relative}@media (width>=1024px){.adm-shell[data-sidebar=collapsed] .adm-menu>li>.menu-item{justify-content:center}}.adm-table-scroll{max-width:100%;position:relative;overflow-x:auto}.adm-table-wrap{border-radius:calc(var(--radius-card) - 1px);position:relative;overflow:hidden}.absolute{position:absolute}.adm-combobox,.adm-dropdown{position:relative}.static{position:static}.adm-dropdown__menu-start{inset-inline:0 auto}.col-span-1{grid-column:span 1/span 1}.col-span-2{grid-column:span 2/span 2}.col-span-3{grid-column:span 3/span 3}.col-span-4{grid-column:span 4/span 4}.col-span-5{grid-column:span 5/span 5}.col-span-6{grid-column:span 6/span 6}.col-span-7{grid-column:span 7/span 7}.col-span-8{grid-column:span 8/span 8}.col-span-9{grid-column:span 9/span 9}.col-span-10{grid-column:span 10/span 10}.col-span-11{grid-column:span 11/span 11}.col-span-12{grid-column:span 12/span 12}.col-span-full{grid-column:1/-1}.container{width:100%}@media (width>=375px){.container{max-width:375px}}@media (width>=425px){.container{max-width:425px}}@media (width>=640px){.container{max-width:640px}}@media (width>=768px){.container{max-width:768px}}@media (width>=1024px){.container{max-width:1024px}}@media (width>=1280px){.container{max-width:1280px}}@media (width>=1536px){.container{max-width:1536px}}@media (width>=2000px){.container{max-width:2000px}}.adm-list-legend{border-top:1px solid var(--color-gray-100);font-size:var(--text-theme-xs);line-height:var(--text-theme-xs--line-height);color:var(--color-gray-500);flex-wrap:wrap;gap:.75rem 2rem;margin:0;padding:.75rem 1.5rem;display:flex}.adm-list-legend:where(.dark,.dark *){border-top-color:var(--color-gray-800);color:var(--color-gray-400)}.adm-list-legend__item{margin:0}.adm-dropdown__divider{border-top:1px solid var(--color-gray-200);margin-block:.5rem}.adm-dropdown__divider:where(.dark,.dark *){border-top-color:var(--color-gray-800)}.adm-empty-layout .adm-main{margin-inline-start:0}.adm-empty-layout .adm-content{padding:0}.adm-required{color:var(--color-error-500);margin-inline-start:.125rem}.ms-auto{margin-inline-start:auto}.adm-file{border:1px solid var(--color-gray-300);border-radius:var(--radius-control);width:100%;color:var(--color-gray-500);font-size:var(--text-theme-sm);box-shadow:var(--shadow-theme-xs);padding:0;display:block}.adm-file::file-selector-button{padding-inline:var(--adm-control-px);padding-block:var(--adm-control-py);border:0;border-inline-end:1px solid var(--color-gray-300);background-color:var(--color-gray-50);color:var(--color-gray-700);font-size:var(--text-theme-sm);cursor:pointer;border-start-start-radius:var(--radius-control);border-end-start-radius:var(--radius-control);margin-inline-end:.75rem}.adm-file:focus-within{border-color:var(--color-brand-300);box-shadow:var(--shadow-focus-ring);outline:none}.adm-file:where(.dark,.dark *){border-color:var(--color-gray-700);color:var(--color-gray-400)}.adm-file:where(.dark,.dark *)::file-selector-button{border-inline-end-color:var(--color-gray-700);background-color:var(--color-gray-800);color:var(--color-gray-400)}.adm-sidebar-release{text-align:center;margin-top:auto;padding-top:1rem}@media (width>=1024px){.adm-shell[data-sidebar=collapsed] .adm-sidebar-release{display:none}}.adm-combobox__status{color:var(--color-gray-500);font-size:var(--text-theme-xs);line-height:var(--text-theme-xs--line-height);margin-top:.375rem}.adm-combobox__status:where(.dark,.dark *){color:var(--color-gray-400)}.adm-combobox__status:empty{display:none}.adm-help{color:var(--color-gray-500);font-size:var(--text-theme-xs);line-height:var(--text-theme-xs--line-height);margin-top:.375rem}.adm-help:where(.dark,.dark *){color:var(--color-gray-400)}.adm-error{color:var(--color-error-500);font-size:var(--text-theme-xs);line-height:var(--text-theme-xs--line-height);margin-top:.375rem}.adm-card-subtitle{font-size:var(--text-theme-sm);color:var(--color-gray-500);margin-top:.25rem}.adm-card-subtitle:where(.dark,.dark *){color:var(--color-gray-400)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-auto{margin-top:auto}.adm-tab{color:var(--color-gray-500);font-size:var(--text-theme-sm);line-height:var(--text-theme-sm--line-height);white-space:nowrap;cursor:pointer;border-bottom:2px solid #0000;align-items:center;gap:.5rem;margin-bottom:-1px;padding:.625rem 1rem;font-weight:500;transition:border-color .15s,color .15s;display:inline-flex}.adm-tab:hover{color:var(--color-gray-700)}.adm-tab[aria-selected=true]{border-bottom-color:var(--color-brand-500);color:var(--color-brand-500)}.adm-tab:focus-visible{outline:2px solid var(--color-brand-500);outline-offset:-2px;border-radius:var(--radius-control)}.adm-tab:where(.dark,.dark *){color:var(--color-gray-400)}.adm-tab:where(.dark,.dark *):hover{color:var(--color-gray-200)}.adm-tab:where(.dark,.dark *)[aria-selected=true]{border-bottom-color:var(--color-brand-400);color:var(--color-brand-400)}.adm-page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1.5rem;display:flex}.adm-combobox__chips{flex-wrap:wrap;gap:.375rem;display:flex}.adm-combobox__chips:not(:empty){margin-bottom:.375rem}.adm-sidebar-toolbar{border-bottom:1px solid var(--color-gray-200);justify-content:space-between;align-items:center;gap:.25rem;margin-bottom:1rem;padding-bottom:1rem;display:flex}.adm-sidebar-toolbar:where(.dark,.dark *){border-bottom-color:var(--color-gray-800)}@media (width>=1024px){.adm-shell[data-sidebar=collapsed] .adm-sidebar-toolbar{display:none}}.adm-menu-popup-title{border-bottom:1px solid var(--color-gray-200);color:var(--color-gray-800);font-size:var(--text-theme-sm);line-height:var(--text-theme-sm--line-height);white-space:nowrap;text-overflow:ellipsis;margin-bottom:.25rem;padding-block:.5rem;padding-inline:.75rem;font-weight:600;display:none;overflow:hidden}@media (width>=1024px){.adm-shell[data-sidebar=collapsed] [data-adminata-menu-rail]>.adm-menu>li>.menu-item[aria-expanded=true]+.menu-dropdown>.adm-menu-popup-title{display:block}}.adm-menu-popup-title:where(.dark,.dark *){border-bottom-color:var(--color-gray-800);color:#ffffffe6}.adm-label{color:var(--color-gray-700);font-size:var(--text-theme-sm);line-height:var(--text-theme-sm--line-height);margin-bottom:.375rem;font-weight:500;display:block}.adm-label:where(.dark,.dark *){color:var(--color-gray-400)}.adm-form-row{margin-bottom:1.25rem}.adm-form-row:last-child,.mb-0{margin-bottom:0}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.box-content{box-sizing:content-box}.adm-spinner{border:2px solid var(--color-brand-500);border-top-color:#0000;border-radius:9999px;width:1.25rem;height:1.25rem;animation:.7s linear infinite adm-spin;display:inline-block}.adm-select{width:100%;height:var(--adm-control-h);padding-inline:var(--adm-control-px) 2.5rem;padding-block:var(--adm-control-py);border:1px solid var(--color-gray-300);border-radius:var(--radius-control);color:var(--color-gray-800);font-size:var(--text-theme-sm);line-height:var(--text-theme-sm--line-height);box-shadow:var(--shadow-theme-xs);appearance:none;background-color:#0000;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%23667085' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m5 7.5 5 5 5-5'/%3E%3C/svg%3E");background-position:right .75rem center;background-repeat:no-repeat;display:block}.adm-select:focus{border-color:var(--color-brand-300);box-shadow:var(--shadow-focus-ring);outline:none}.adm-select:disabled{cursor:not-allowed;background-color:var(--color-gray-50);color:var(--color-gray-500)}.adm-select:where(.dark,.dark *){border-color:var(--color-gray-700);color:#ffffffe6;background-color:#ffffff08}.adm-input{width:100%;height:var(--adm-control-h);padding-inline:var(--adm-control-px);padding-block:var(--adm-control-py);border:1px solid var(--color-gray-300);border-radius:var(--radius-control);color:var(--color-gray-800);font-size:var(--text-theme-sm);line-height:var(--text-theme-sm--line-height);box-shadow:var(--shadow-theme-xs);background-color:#0000;transition:border-color .15s,box-shadow .15s;display:block}.adm-input::placeholder{color:var(--color-gray-400)}.adm-input:focus{border-color:var(--color-brand-300);box-shadow:var(--shadow-focus-ring);outline:none}.adm-input:disabled{cursor:not-allowed;background-color:var(--color-gray-50);color:var(--color-gray-500)}.adm-input:where(.dark,.dark *){border-color:var(--color-gray-700);color:#ffffffe6;background-color:#ffffff08}.adm-input:where(.dark,.dark *)::placeholder{color:#ffffff4d}.adm-input:where(.dark,.dark *):focus{border-color:var(--color-brand-800)}.adm-input:where(.dark,.dark *):disabled{background-color:var(--color-gray-800)}.adm-input::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.6}.adm-input::-webkit-calendar-picker-indicator:hover{opacity:1}.adm-chip__remove{width:1rem;height:1rem;color:var(--color-gray-500);border-radius:9999px;justify-content:center;align-items:center;line-height:1;display:inline-flex}.adm-chip__remove:hover{background-color:var(--color-gray-200);color:var(--color-gray-700)}.adm-chip__remove:focus-visible{outline:2px solid var(--color-brand-500);outline-offset:1px}.adm-chip__remove:where(.dark,.dark *){color:var(--color-gray-400)}.adm-chip__remove:where(.dark,.dark *):hover{color:var(--color-gray-200);background-color:#ffffff1a}.adm-btn-icon{border-radius:var(--radius-control);width:2.25rem;height:2.25rem;color:var(--color-gray-500);justify-content:center;align-items:center;transition:background-color .15s,color .15s;display:inline-flex}.adm-btn-icon:hover{background-color:var(--color-gray-100);color:var(--color-gray-700)}.adm-btn-icon:where(.dark,.dark *){color:var(--color-gray-400)}.adm-btn-icon:focus-visible{outline:2px solid var(--color-brand-500);outline-offset:2px}.adm-btn-icon:where(.dark,.dark *):hover{color:var(--color-gray-200);background-color:#ffffff0d}.adm-btn{height:var(--adm-control-h);padding-inline:var(--adm-control-px);border-radius:var(--radius-control);font-size:var(--text-theme-sm);line-height:var(--text-theme-sm--line-height);white-space:nowrap;justify-content:center;align-items:center;gap:.5rem;font-weight:500;transition:background-color .15s,border-color .15s,color .15s;display:inline-flex}.adm-btn:disabled,.adm-btn[aria-disabled=true]{cursor:not-allowed;opacity:.5}.adm-btn:focus-visible{outline:2px solid var(--color-brand-500);outline-offset:2px}.adm-textarea{width:100%;min-height:6rem;padding-inline:var(--adm-control-px);padding-block:var(--adm-control-py);border:1px solid var(--color-gray-300);border-radius:var(--radius-control);color:var(--color-gray-800);font-size:var(--text-theme-sm);line-height:var(--text-theme-sm--line-height);box-shadow:var(--shadow-theme-xs);background-color:#0000;display:block}.adm-textarea::placeholder{color:var(--color-gray-400)}.adm-textarea:focus{border-color:var(--color-brand-300);box-shadow:var(--shadow-focus-ring);outline:none}.adm-textarea:where(.dark,.dark *){border-color:var(--color-gray-700);color:#ffffffe6;background-color:#ffffff08}.adm-textarea:where(.dark,.dark *)::placeholder{color:#ffffff4d}.adm-sidebar-nav{flex-direction:column;flex:auto;min-height:0;padding-bottom:1.5rem;display:flex;overflow-y:auto}.adm-dialog{border:1px solid var(--color-gray-200);border-radius:var(--radius-modal);background-color:var(--color-white);width:100%;max-width:32rem;color:var(--color-gray-700);box-shadow:var(--shadow-theme-xl);padding:0}.adm-dialog:where(.dark,.dark *){border-color:var(--color-gray-800);background-color:var(--color-gray-dark);color:var(--color-gray-300)}.adm-dialog::backdrop{background-color:#10182880}.adm-dialog:not([open]){display:none}.adm-dropdown__item{border-radius:var(--radius-control);width:100%;color:var(--color-gray-700);font-size:var(--text-theme-sm);line-height:var(--text-theme-sm--line-height);text-align:start;align-items:center;gap:.75rem;padding-block:.5rem;padding-inline:.75rem;font-weight:500;display:flex}.adm-dropdown__item:hover{background-color:var(--color-gray-100)}.adm-dropdown__item:where(.dark,.dark *){color:var(--color-gray-400)}.adm-dropdown__item:where(.dark,.dark *):hover{color:var(--color-gray-300);background-color:#ffffff0d}.adm-dropdown__item:focus-visible{outline:2px solid var(--color-brand-500);outline-offset:-2px}.adm-btn-block{width:100%;display:flex}.adm-sidebar-header{align-items:center;gap:.5rem;min-width:0;padding-block:2rem 1.75rem;display:flex;overflow:hidden}.adm-sidebar-header img{max-width:calc(var(--adm-sidebar-w) - 2.5rem);object-fit:contain}.adm-input-group{align-items:stretch;display:flex}.adm-input-group>.adm-input{flex:auto;min-width:0}.adm-input-group>.adm-input:not(:first-child){border-start-start-radius:0;border-end-start-radius:0}.adm-input-group>.adm-input:not(:last-child){border-start-end-radius:0;border-end-end-radius:0}.adm-tablist{border-bottom:1px solid var(--color-gray-200);scrollbar-width:none;gap:.25rem;display:flex;overflow-x:auto}.adm-tablist:where(.dark,.dark *){border-bottom-color:var(--color-gray-800)}.no-scrollbar{scrollbar-width:none}.no-scrollbar::-webkit-scrollbar{display:none}.adm-filters{grid-template-columns:repeat(12,minmax(0,1fr));gap:.75rem;display:grid}.adm-list-empty{font-size:var(--text-theme-sm);color:var(--color-gray-500);text-align:center;flex-direction:column;align-items:center;gap:.75rem;padding-block:3rem;display:flex}.adm-list-empty:where(.dark,.dark *){color:var(--color-gray-400)}.adm-error-list{color:var(--color-error-500);font-size:var(--text-theme-xs);line-height:var(--text-theme-xs--line-height);flex-direction:column;gap:.25rem;display:flex}.adm-error-list>li{align-items:baseline;gap:.375rem;display:flex}.adm-collection{flex-direction:column;align-items:flex-start;gap:.75rem;display:flex}.adm-list-footer{border-top:1px solid var(--color-gray-100);flex-direction:column;gap:1rem;padding:1rem 1.5rem;display:flex}.adm-list-footer:where(.dark,.dark *){border-top-color:var(--color-gray-800)}.adm-choice-list{flex-direction:column;gap:.5rem;list-style:none;display:flex}.adm-menu{flex-direction:column;gap:1rem;display:flex}.adm-tabs{flex-direction:column;gap:1.5rem;display:flex}.adm-card-footer{padding-inline:var(--adm-card-p);border-top:1px solid var(--color-gray-100);flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.75rem;padding-block:1rem;display:flex}.adm-card-footer:where(.dark,.dark *){border-top-color:var(--color-gray-800)}.adm-card-success .adm-card-footer{border-top-color:var(--color-success-200)}.adm-card-error .adm-card-footer{border-top-color:var(--color-error-200)}.adm-card-warning .adm-card-footer{border-top-color:var(--color-warning-200)}.adm-card-info .adm-card-footer{border-top-color:var(--color-blue-light-200)}.adm-card-success .adm-card-footer:where(.dark,.dark *){border-top-color:#12b76a4d}.adm-card-error .adm-card-footer:where(.dark,.dark *){border-top-color:#f044384d}.adm-card-warning .adm-card-footer:where(.dark,.dark *){border-top-color:#f790094d}.adm-card-info .adm-card-footer:where(.dark,.dark *){border-top-color:#0ba5ec4d}.adm-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.75rem;display:flex}.adm-list-legend__group{flex-wrap:wrap;align-items:center;gap:.5rem 1rem;display:inline-flex}.adm-dialog__footer{border-top:1px solid var(--color-gray-100);justify-content:flex-end;align-items:center;gap:.75rem;padding:1rem 1.5rem;display:flex}.adm-dialog__footer:where(.dark,.dark *){border-color:var(--color-gray-800)}.adm-dialog__header{border-bottom:1px solid var(--color-gray-100);justify-content:space-between;align-items:center;gap:1rem;padding:1.25rem 1.5rem;display:flex}.adm-dialog__header:where(.dark,.dark *){border-color:var(--color-gray-800)}.adm-card-header{padding-inline:var(--adm-card-p);justify-content:space-between;align-items:center;gap:1rem;padding-block:1.25rem;display:flex}.adm-alert{border:1px solid var(--color-gray-200);border-radius:var(--radius-control);background-color:var(--color-white);color:var(--color-gray-700);font-size:var(--text-theme-sm);line-height:var(--text-theme-sm--line-height);align-items:flex-start;gap:.75rem;padding:1rem;display:flex}.adm-alert:where(.dark,.dark *){border-color:var(--color-gray-800);color:var(--color-gray-300);background-color:#ffffff08}.adm-badge{font-size:var(--text-theme-xs);line-height:var(--text-theme-xs--line-height);background-color:var(--color-gray-100);color:var(--color-gray-700);border-radius:9999px;align-items:center;gap:.25rem;padding-block:.125rem;padding-inline:.5rem;font-weight:500;display:inline-flex}.adm-badge:where(.dark,.dark *){color:var(--color-gray-300);background-color:#ffffff0d}.adm-chip{border-radius:var(--radius-control);background-color:var(--color-gray-100);color:var(--color-gray-700);font-size:var(--text-theme-xs);align-items:center;gap:.375rem;padding-block:.125rem;padding-inline:.5rem;display:inline-flex}.adm-chip:where(.dark,.dark *){color:var(--color-gray-300);background-color:#ffffff0d}.menu-dropdown-item{border-radius:var(--radius-control);font-size:var(--text-theme-sm);align-items:center;gap:.75rem;padding-block:.375rem;padding-inline:.75rem;font-weight:500;display:flex}.adm-checkbox-label{font-size:var(--text-theme-sm);line-height:var(--text-theme-sm--line-height);color:var(--color-gray-700);align-items:center;gap:.75rem;display:inline-flex}.adm-checkbox-label:where(.dark,.dark *){color:var(--color-gray-400)}.adm-radio-label{font-size:var(--text-theme-sm);line-height:var(--text-theme-sm--line-height);color:var(--color-gray-700);align-items:center;gap:.75rem;display:inline-flex}.adm-radio-label:where(.dark,.dark *){color:var(--color-gray-400)}.adm-breadcrumb{align-items:center;gap:.375rem;list-style:none;display:flex}.adm-pagination{align-items:center;gap:.25rem;list-style:none;display:flex}.adm-icon-enum{align-items:center;gap:.5rem;display:inline-flex}.adm-input-affix{padding-inline:var(--adm-control-px);border:1px solid var(--color-gray-300);background-color:var(--color-gray-50);color:var(--color-gray-500);font-size:var(--text-theme-sm);white-space:nowrap;align-items:center;display:inline-flex}.adm-input-affix:first-child{border-inline-end:0;border-start-start-radius:var(--radius-control);border-end-start-radius:var(--radius-control)}.adm-input-affix:last-child{border-inline-start:0;border-start-end-radius:var(--radius-control);border-end-end-radius:var(--radius-control)}.adm-input-affix:where(.dark,.dark *){border-color:var(--color-gray-700);color:var(--color-gray-400);background-color:#ffffff08}@media (width>=1024px){.adm-shell[data-sidebar=collapsed] .adm-menu-group-title{display:none}}.adm-menu-group-title{color:var(--color-gray-500);font-size:var(--text-theme-xs);text-transform:uppercase;line-height:20px}.adm-menu-group-title:where(.dark,.dark *){color:var(--color-gray-400)}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.adm-select-multiple{height:auto;min-height:8rem;padding-right:var(--adm-control-px);background-image:none}.adm-radio{border:1px solid var(--color-gray-300);background-color:var(--color-white);appearance:none;border-radius:9999px;flex-shrink:0;width:1.25rem;height:1.25rem;transition:background-color .15s,border-color .15s}.adm-radio:checked{border-width:6px;border-color:var(--color-brand-500);background-color:var(--color-white)}.adm-radio:focus-visible{outline:2px solid var(--color-brand-500);outline-offset:2px}.adm-radio:disabled{cursor:not-allowed;background-color:var(--color-gray-100)}.adm-radio:where(.dark,.dark *){border-color:var(--color-gray-700);background-color:#0000}.adm-radio:where(.dark,.dark *):checked{background-color:var(--color-gray-900)}.adm-checkbox{border:1px solid var(--color-gray-300);background-color:var(--color-white);appearance:none;border-radius:.25rem;flex-shrink:0;width:1.25rem;height:1.25rem;transition:background-color .15s,border-color .15s}.adm-checkbox:checked,.adm-checkbox:indeterminate{border-color:var(--color-brand-500);background-color:var(--color-brand-500);background-position:50%;background-repeat:no-repeat}.adm-checkbox:checked{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='none' viewBox='0 0 14 14'%3E%3Cpath stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m11.667 3.5-6.417 6.417L2.333 7'/%3E%3C/svg%3E")}.adm-checkbox:indeterminate{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='none' viewBox='0 0 14 14'%3E%3Cpath stroke='%23fff' stroke-linecap='round' stroke-width='2' d='M3.5 7h7'/%3E%3C/svg%3E")}.adm-checkbox:focus-visible{outline:2px solid var(--color-brand-500);outline-offset:2px}.adm-checkbox:disabled{cursor:not-allowed;background-color:var(--color-gray-100)}.adm-checkbox:where(.dark,.dark *){border-color:var(--color-gray-700);background-color:#0000}.adm-checkbox:where(.dark,.dark *):checked,.adm-checkbox:where(.dark,.dark *):indeterminate{border-color:var(--color-brand-500);background-color:var(--color-brand-500)}.adm-badge-icon{border-radius:var(--radius-control);width:2.25rem;height:2.25rem;font-size:inherit;justify-content:center;gap:0;padding:0;line-height:1;text-decoration:none}.adm-btn-icon-round{border:1px solid var(--color-gray-200);background-color:var(--color-white);border-radius:9999px;width:2.75rem;height:2.75rem}.adm-btn-icon-round:where(.dark,.dark *){border-color:var(--color-gray-800);background-color:var(--color-gray-900)}.adm-btn-sm{height:2.25rem;font-size:var(--text-theme-xs);padding-inline:.75rem}.h-8{height:calc(var(--spacing) * 8)}.max-h-\[75vh\]{max-height:75vh}.adm-shell{min-height:100vh}.adm-show-table{border-collapse:collapse;width:100%}.adm-collection-row{border:1px solid var(--color-gray-200);border-radius:var(--radius-control);background-color:var(--color-gray-50);width:100%;padding:.75rem}.adm-collection-row:where(.dark,.dark *){border-color:var(--color-gray-800);background-color:#ffffff08}.w-auto{width:auto}.adm-dialog-lg{max-width:48rem}.adm-dialog-list{max-width:64rem}.adm-dialog-sm{max-width:24rem}.adm-table{border-collapse:collapse;text-align:start;min-width:100%}.min-w-0{min-width:0}.min-w-20{min-width:calc(var(--spacing) * 20)}.min-w-24{min-width:calc(var(--spacing) * 24)}.min-w-32{min-width:calc(var(--spacing) * 32)}.min-w-40{min-width:calc(var(--spacing) * 40)}.flex-1{flex:1}.shrink{flex-shrink:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.adm-combobox__option{border-radius:var(--radius-control);color:var(--color-gray-700);font-size:var(--text-theme-sm);cursor:pointer;padding-block:.5rem;padding-inline:.75rem}.adm-combobox__option:where(.dark,.dark *){color:var(--color-gray-300)}.adm-combobox__option[aria-selected=true],.adm-combobox__option:hover{background-color:var(--color-brand-50);color:var(--color-brand-600)}.adm-combobox__option:where(.dark,.dark *)[aria-selected=true],.adm-combobox__option:where(.dark,.dark *):hover{color:var(--color-brand-400);background-color:#465fff1f}.resize{resize:both}.custom-scrollbar{scrollbar-width:thin;scrollbar-color:var(--color-gray-300) transparent}.list-none{list-style-type:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-x-3{column-gap:calc(var(--spacing) * 3)}.gap-y-1{row-gap:var(--spacing)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-gray-100>:not(:last-child)){border-color:var(--color-gray-100)}.adm-card{border:1px solid var(--color-gray-200);border-radius:var(--radius-card);background-color:var(--color-white);overflow:visible}.adm-card:where(.dark,.dark *){border-color:var(--color-gray-800);background-color:#ffffff08}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-y-auto{overflow-y:auto}.adm-callout{border-left:4px solid var(--color-gray-300);border-radius:var(--radius-control);background-color:var(--color-gray-50);color:var(--color-gray-700);font-size:var(--text-theme-sm);line-height:var(--text-theme-sm--line-height);padding:1rem}.adm-callout:where(.dark,.dark *){border-left-color:var(--color-gray-700);color:var(--color-gray-300);background-color:#ffffff08}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.border-none{--tw-border-style:none;border-style:none}.adm-btn-secondary{border:1px solid var(--color-gray-300);background-color:var(--color-white);color:var(--color-gray-700)}.adm-btn-secondary:hover:not(:disabled){background-color:var(--color-gray-50)}.adm-btn-secondary:where(.dark,.dark *){border-color:var(--color-gray-700);background-color:var(--color-gray-800);color:var(--color-gray-300)}.adm-btn-secondary:where(.dark,.dark *):hover:not(:disabled){background-color:var(--color-gray-700)}.adm-alert-error{border-color:var(--color-error-200);background-color:var(--color-error-50);color:var(--color-error-700)}.adm-alert-error:where(.dark,.dark *){color:var(--color-error-300);background-color:#f044381f;border-color:#f044384d}.adm-alert-info{border-color:var(--color-blue-light-200);background-color:var(--color-blue-light-50);color:var(--color-blue-light-700)}.adm-alert-info:where(.dark,.dark *){color:var(--color-blue-light-300);background-color:#0ba5ec1f;border-color:#0ba5ec4d}.adm-alert-success{border-color:var(--color-success-200);background-color:var(--color-success-50);color:var(--color-success-700)}.adm-alert-success:where(.dark,.dark *){color:var(--color-success-300);background-color:#12b76a1f;border-color:#12b76a4d}.adm-alert-warning{border-color:var(--color-warning-200);background-color:var(--color-warning-50);color:var(--color-warning-700)}.adm-alert-warning:where(.dark,.dark *){color:var(--color-warning-300);background-color:#f790091f;border-color:#f790094d}.adm-card-error{border-color:var(--color-error-200);background-color:var(--color-error-50)}.adm-card-error:where(.dark,.dark *){background-color:#f044381f;border-color:#f044384d}.adm-card-info{border-color:var(--color-blue-light-200);background-color:var(--color-blue-light-50)}.adm-card-info:where(.dark,.dark *){background-color:#0ba5ec1f;border-color:#0ba5ec4d}.adm-card-success{border-color:var(--color-success-200);background-color:var(--color-success-50)}.adm-card-success:where(.dark,.dark *){background-color:#12b76a1f;border-color:#12b76a4d}.adm-card-warning{border-color:var(--color-warning-200);background-color:var(--color-warning-50)}.adm-card-warning:where(.dark,.dark *){background-color:#f790091f;border-color:#f790094d}.adm-input-error{border-color:var(--color-error-500)}.adm-input-error:focus{border-color:var(--color-error-500);box-shadow:0 0 0 4px #f044381f}.border-error-200{border-color:var(--color-error-200)}.adm-card-body{padding:var(--adm-card-p);border-top:1px solid var(--color-gray-100)}.adm-card-body:where(.dark,.dark *){border-top-color:var(--color-gray-800)}.adm-card-body:first-child{border-top:0}.adm-card-success .adm-card-body{border-top-color:var(--color-success-200)}.adm-card-error .adm-card-body{border-top-color:var(--color-error-200)}.adm-card-warning .adm-card-body{border-top-color:var(--color-warning-200)}.adm-card-info .adm-card-body{border-top-color:var(--color-blue-light-200)}.adm-card-success .adm-card-body:where(.dark,.dark *){border-top-color:#12b76a4d}.adm-card-error .adm-card-body:where(.dark,.dark *){border-top-color:#f044384d}.adm-card-warning .adm-card-body:where(.dark,.dark *){border-top-color:#f790094d}.adm-card-info .adm-card-body:where(.dark,.dark *){border-top-color:#0ba5ec4d}.adm-callout-danger{border-left-color:var(--color-error-500);background-color:var(--color-error-50);color:var(--color-error-700)}.adm-callout-danger:where(.dark,.dark *){border-left-color:var(--color-error-500);color:var(--color-error-300);background-color:#f044381f}.adm-callout-info{border-left-color:var(--color-blue-light-500);background-color:var(--color-blue-light-50);color:var(--color-blue-light-700)}.adm-callout-info:where(.dark,.dark *){border-left-color:var(--color-blue-light-500);color:var(--color-blue-light-300);background-color:#0ba5ec1f}.adm-callout-success{border-left-color:var(--color-success-500);background-color:var(--color-success-50);color:var(--color-success-700)}.adm-callout-success:where(.dark,.dark *){border-left-color:var(--color-success-500);color:var(--color-success-300);background-color:#12b76a1f}.adm-callout-warning{border-left-color:var(--color-warning-500);background-color:var(--color-warning-50);color:var(--color-warning-700)}.adm-callout-warning:where(.dark,.dark *){border-left-color:var(--color-warning-500);color:var(--color-warning-300);background-color:#f790091f}.adm-btn-ghost{color:var(--color-gray-600)}.adm-btn-ghost:hover:not(:disabled){background-color:var(--color-gray-100);color:var(--color-gray-800)}.adm-btn-ghost:where(.dark,.dark *){color:var(--color-gray-400)}.adm-btn-ghost:where(.dark,.dark *):hover:not(:disabled){color:var(--color-gray-200);background-color:#ffffff0d}.menu-item-inactive{color:var(--color-gray-700)}.menu-item-inactive:hover{background-color:var(--color-gray-100)}.menu-item-inactive:where(.dark,.dark *){color:var(--color-gray-300)}.menu-item-inactive:where(.dark,.dark *):hover{background-color:#ffffff0d}@media (width>=1024px){.adm-shell[data-sidebar=collapsed] [data-adminata-menu-rail]>.adm-menu>li>.menu-item-inactive[aria-expanded=true]{background-color:var(--color-gray-100)}.adm-shell[data-sidebar=collapsed] [data-adminata-menu-rail]>.adm-menu>li>.menu-item-inactive[aria-expanded=true]:where(.dark,.dark *){background-color:#ffffff0d}}.adm-badge-brand{background-color:var(--color-brand-50);color:var(--color-brand-600)}.adm-badge-brand:where(.dark,.dark *){color:var(--color-brand-400);background-color:#465fff26}.adm-badge-error{background-color:var(--color-error-50);color:var(--color-error-700)}.adm-badge-error:where(.dark,.dark *){color:var(--color-error-400);background-color:#f0443826}.adm-badge-info{background-color:var(--color-blue-light-50);color:var(--color-blue-light-700)}.adm-badge-info:where(.dark,.dark *){color:var(--color-blue-light-400);background-color:#0ba5ec26}.adm-badge-success{background-color:var(--color-success-50);color:var(--color-success-700)}.adm-badge-success:where(.dark,.dark *){color:var(--color-success-400);background-color:#12b76a26}.adm-badge-warning{background-color:var(--color-warning-50);color:var(--color-warning-700)}.adm-badge-warning:where(.dark,.dark *){color:var(--color-orange-400);background-color:#f7900926}.menu-dropdown-item-active{background-color:var(--color-brand-50);color:var(--color-brand-600)}.menu-dropdown-item-active:where(.dark,.dark *){color:var(--color-brand-400);background-color:#465fff1f}.menu-dropdown-item-inactive{color:var(--color-gray-500)}.menu-dropdown-item-inactive:hover{background-color:var(--color-gray-100);color:var(--color-gray-700)}.menu-dropdown-item-inactive:where(.dark,.dark *){color:var(--color-gray-400)}.menu-item-active{background-color:var(--color-brand-50);color:var(--color-brand-600)}.menu-item-active:where(.dark,.dark *){color:var(--color-brand-400);background-color:#465fff1f}.adm-btn-danger{background-color:var(--color-error-600);color:var(--color-white)}.adm-btn-danger:hover:not(:disabled){background-color:var(--color-error-700)}.adm-btn-primary{background-color:var(--color-brand-500);color:var(--color-white)}.adm-btn-primary:hover:not(:disabled){background-color:var(--color-brand-600)}.adm-btn-success{background-color:var(--color-success-700);color:var(--color-white)}.adm-btn-success:hover:not(:disabled){background-color:var(--color-success-800)}.adm-btn-warning{background-color:var(--color-warning-700);color:var(--color-white)}.adm-btn-warning:hover:not(:disabled){background-color:var(--color-warning-800)}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-white{background-color:var(--color-white)}.adm-card-flush{border-top:0;padding:0}.adm-content{padding:1rem}@media (width>=768px){.adm-content{padding:1.5rem}}.adm-dialog__body{padding:1.5rem}.p-0{padding:0}.p-0\.5{padding:calc(var(--spacing) * .5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-5{padding-block:calc(var(--spacing) * 5)}.text-center{text-align:center}.text-right{text-align:right}.adm-icon-enum__label{font-size:var(--text-theme-sm);line-height:var(--text-theme-sm--line-height)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-theme-sm{font-size:var(--text-theme-sm);line-height:var(--tw-leading,var(--text-theme-sm--line-height))}.text-theme-xs{font-size:var(--text-theme-xs);line-height:var(--tw-leading,var(--text-theme-xs--line-height))}.adm-card-title{color:var(--color-gray-800);font-size:1rem;font-weight:500}.adm-card-title:where(.dark,.dark *){color:#ffffffe6}.adm-card-success .adm-card-title{color:var(--color-success-700)}.adm-card-error .adm-card-title{color:var(--color-error-700)}.adm-card-warning .adm-card-title{color:var(--color-warning-700)}.adm-card-info .adm-card-title{color:var(--color-blue-light-700)}.adm-card-success .adm-card-title:where(.dark,.dark *){color:var(--color-success-300)}.adm-card-error .adm-card-title:where(.dark,.dark *){color:var(--color-error-300)}.adm-card-warning .adm-card-title:where(.dark,.dark *){color:var(--color-warning-300)}.adm-card-info .adm-card-title:where(.dark,.dark *){color:var(--color-blue-light-300)}.adm-page-title{color:var(--color-gray-800);font-size:1.25rem;font-weight:600}.adm-page-title:where(.dark,.dark *){color:#ffffffe6}.adm-list-legend__term{text-transform:uppercase;letter-spacing:.02em;font-weight:500}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.adm-btn-icon-delete{color:var(--color-error-500)}.adm-btn-icon-edit{color:var(--color-brand-500)}.adm-btn-icon-history{color:var(--color-gray-500)}.adm-btn-icon-show{color:var(--color-blue-light-500)}.adm-tab-errors{color:var(--color-error-500)}.text-gray-500{color:var(--color-gray-500)}.text-gray-700{color:var(--color-gray-700)}.text-gray-800{color:var(--color-gray-800)}.text-gray-900{color:var(--color-gray-900)}.uppercase{text-transform:uppercase}.italic{font-style:italic}.underline{text-decoration-line:underline}.shadow-theme-xs{--tw-shadow:0px 1px 2px 0px var(--tw-shadow-color,#1018280d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}@media (hover:hover){.hover\:text-gray-700:hover{color:var(--color-gray-700)}}@media (width>=640px){.sm\:col-span-1{grid-column:span 1/span 1}.sm\:col-span-2{grid-column:span 2/span 2}.sm\:col-span-3{grid-column:span 3/span 3}.sm\:col-span-4{grid-column:span 4/span 4}.sm\:col-span-5{grid-column:span 5/span 5}.sm\:col-span-6{grid-column:span 6/span 6}.sm\:col-span-7{grid-column:span 7/span 7}.sm\:col-span-8{grid-column:span 8/span 8}.sm\:col-span-9{grid-column:span 9/span 9}.sm\:col-span-10{grid-column:span 10/span 10}.sm\:col-span-11{grid-column:span 11/span 11}.sm\:col-span-12{grid-column:span 12/span 12}.sm\:col-start-2{grid-column-start:2}.sm\:col-start-3{grid-column-start:3}.sm\:col-start-4{grid-column-start:4}.sm\:col-start-5{grid-column-start:5}.sm\:col-start-6{grid-column-start:6}.sm\:col-start-7{grid-column-start:7}.sm\:col-start-8{grid-column-start:8}.sm\:col-start-9{grid-column-start:9}.sm\:col-start-10{grid-column-start:10}.sm\:col-start-11{grid-column-start:11}.sm\:col-start-12{grid-column-start:12}.sm\:block{display:block}.sm\:hidden{display:none}}@media (width>=768px){.md\:col-span-1{grid-column:span 1/span 1}.md\:col-span-2{grid-column:span 2/span 2}.md\:col-span-3{grid-column:span 3/span 3}.md\:col-span-4{grid-column:span 4/span 4}.md\:col-span-5{grid-column:span 5/span 5}.md\:col-span-6{grid-column:span 6/span 6}.md\:col-span-7{grid-column:span 7/span 7}.md\:col-span-8{grid-column:span 8/span 8}.md\:col-span-9{grid-column:span 9/span 9}.md\:col-span-10{grid-column:span 10/span 10}.md\:col-span-11{grid-column:span 11/span 11}.md\:col-span-12{grid-column:span 12/span 12}.md\:col-start-2{grid-column-start:2}.md\:col-start-3{grid-column-start:3}.md\:col-start-4{grid-column-start:4}.md\:col-start-5{grid-column-start:5}.md\:col-start-6{grid-column-start:6}.md\:col-start-7{grid-column-start:7}.md\:col-start-8{grid-column-start:8}.md\:col-start-9{grid-column-start:9}.md\:col-start-10{grid-column-start:10}.md\:col-start-11{grid-column-start:11}.md\:col-start-12{grid-column-start:12}.md\:mb-6{margin-bottom:calc(var(--spacing) * 6)}.md\:block{display:block}.md\:hidden{display:none}.md\:gap-6{gap:calc(var(--spacing) * 6)}.md\:pt-2\.5{padding-top:calc(var(--spacing) * 2.5)}}@media (width>=1024px){.lg\:col-span-1{grid-column:span 1/span 1}.lg\:col-span-2{grid-column:span 2/span 2}.lg\:col-span-3{grid-column:span 3/span 3}.lg\:col-span-4{grid-column:span 4/span 4}.lg\:col-span-5{grid-column:span 5/span 5}.lg\:col-span-6{grid-column:span 6/span 6}.lg\:col-span-7{grid-column:span 7/span 7}.lg\:col-span-8{grid-column:span 8/span 8}.lg\:col-span-9{grid-column:span 9/span 9}.lg\:col-span-10{grid-column:span 10/span 10}.lg\:col-span-11{grid-column:span 11/span 11}.lg\:col-span-12{grid-column:span 12/span 12}.lg\:col-start-2{grid-column-start:2}.lg\:col-start-3{grid-column-start:3}.lg\:col-start-4{grid-column-start:4}.lg\:col-start-5{grid-column-start:5}.lg\:col-start-6{grid-column-start:6}.lg\:col-start-7{grid-column-start:7}.lg\:col-start-8{grid-column-start:8}.lg\:col-start-9{grid-column-start:9}.lg\:col-start-10{grid-column-start:10}.lg\:col-start-11{grid-column-start:11}.lg\:col-start-12{grid-column-start:12}.lg\:block{display:block}.lg\:hidden{display:none}.lg\:inline-flex{display:inline-flex}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=1280px){.xl\:col-span-1{grid-column:span 1/span 1}.xl\:col-span-2{grid-column:span 2/span 2}.xl\:col-span-3{grid-column:span 3/span 3}.xl\:col-span-4{grid-column:span 4/span 4}.xl\:col-span-5{grid-column:span 5/span 5}.xl\:col-span-6{grid-column:span 6/span 6}.xl\:col-span-7{grid-column:span 7/span 7}.xl\:col-span-8{grid-column:span 8/span 8}.xl\:col-span-9{grid-column:span 9/span 9}.xl\:col-span-10{grid-column:span 10/span 10}.xl\:col-span-11{grid-column:span 11/span 11}.xl\:col-span-12{grid-column:span 12/span 12}.xl\:col-start-2{grid-column-start:2}.xl\:col-start-3{grid-column-start:3}.xl\:col-start-4{grid-column-start:4}.xl\:col-start-5{grid-column-start:5}.xl\:col-start-6{grid-column-start:6}.xl\:col-start-7{grid-column-start:7}.xl\:col-start-8{grid-column-start:8}.xl\:col-start-9{grid-column-start:9}.xl\:col-start-10{grid-column-start:10}.xl\:col-start-11{grid-column-start:11}.xl\:col-start-12{grid-column-start:12}.xl\:w-\[430px\]{width:430px}.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}.dark\:hidden:where(.dark,.dark *){display:none}.dark\:inline-block:where(.dark,.dark *){display:inline-block}:where(.dark\:divide-gray-800:where(.dark,.dark *)>:not(:last-child)){border-color:var(--color-gray-800)}.dark\:border-error-500\/30:where(.dark,.dark *){border-color:#f044384d}@supports (color:color-mix(in lab, red, red)){.dark\:border-error-500\/30:where(.dark,.dark *){border-color:color-mix(in oklab, var(--color-error-500) 30%, transparent)}}.dark\:bg-gray-800:where(.dark,.dark *){background-color:var(--color-gray-800)}.dark\:bg-gray-900:where(.dark,.dark *){background-color:var(--color-gray-900)}.dark\:bg-white\/\[0\.03\]:where(.dark,.dark *){background-color:#ffffff08}@supports (color:color-mix(in lab, red, red)){.dark\:bg-white\/\[0\.03\]:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-white) 3%, transparent)}}.dark\:text-gray-300:where(.dark,.dark *){color:var(--color-gray-300)}.dark\:text-gray-400:where(.dark,.dark *){color:var(--color-gray-400)}.dark\:text-white:where(.dark,.dark *){color:var(--color-white)}.dark\:text-white\/90:where(.dark,.dark *){color:#ffffffe6}@supports (color:color-mix(in lab, red, red)){.dark\:text-white\/90:where(.dark,.dark *){color:color-mix(in oklab, var(--color-white) 90%, transparent)}}@media (hover:hover){.dark\:hover\:text-gray-200:where(.dark,.dark *):hover{color:var(--color-gray-200)}}}:root{--adm-control-h:2.75rem;--adm-control-px:1rem;--adm-control-py:.625rem;--adm-cell-px:1rem;--adm-cell-py:.75rem;--adm-card-p:1.5rem;--adm-sidebar-w:290px;--adm-sidebar-collapsed-w:90px;--adm-header-h:4rem}html[data-density=compact]{--adm-control-h:2.25rem;--adm-control-px:.75rem;--adm-control-py:.375rem;--adm-cell-px:.75rem;--adm-cell-py:.5rem;--adm-card-p:1rem;--adm-header-h:3.25rem}html.no-js [data-requires-js]{display:none}@font-face{font-family:Outfit Variable;font-style:normal;font-weight:100 900;font-display:swap;src:url(./fonts/outfit-latin-wght-normal.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Outfit Variable;font-style:normal;font-weight:100 900;font-display:swap;src:url(./fonts/outfit-latin-ext-wght-normal.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false} +@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-orange-50:#fff6ed;--color-orange-100:#ffead5;--color-orange-200:#fddcab;--color-orange-300:#feb273;--color-orange-400:#fd853a;--color-orange-500:#fb6514;--color-orange-600:#ec4a0a;--color-orange-700:#c4320a;--color-orange-800:#9c2a10;--color-orange-900:#7e2410;--color-orange-950:#511c10;--color-gray-50:#f9fafb;--color-gray-100:#f2f4f7;--color-gray-200:#e4e7ec;--color-gray-300:#d0d5dd;--color-gray-400:#98a2b3;--color-gray-500:#667085;--color-gray-600:#475467;--color-gray-700:#344054;--color-gray-800:#1d2939;--color-gray-900:#101828;--color-gray-950:#0c111d;--color-black:#101828;--color-white:#fff;--spacing:.25rem;--breakpoint-sm:640px;--breakpoint-md:768px;--breakpoint-lg:1024px;--breakpoint-xl:1280px;--breakpoint-2xl:1536px;--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--font-weight-medium:500;--font-weight-semibold:600;--radius-md:.375rem;--radius-lg:.5rem;--radius-2xl:1rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--font-outfit:"Outfit Variable", Outfit, ui-sans-serif, system-ui, sans-serif;--breakpoint-2xsm:375px;--breakpoint-xsm:425px;--breakpoint-3xl:2000px;--text-title-2xl:72px;--text-title-2xl--line-height:90px;--text-title-xl:60px;--text-title-xl--line-height:72px;--text-title-lg:48px;--text-title-lg--line-height:60px;--text-title-md:36px;--text-title-md--line-height:44px;--text-title-sm:30px;--text-title-sm--line-height:38px;--text-theme-xl:20px;--text-theme-xl--line-height:30px;--text-theme-sm:14px;--text-theme-sm--line-height:20px;--text-theme-xs:12px;--text-theme-xs--line-height:18px;--color-current:currentColor;--color-transparent:transparent;--color-brand-25:#f2f7ff;--color-brand-50:#ecf3ff;--color-brand-100:#dde9ff;--color-brand-200:#c2d6ff;--color-brand-300:#9cb9ff;--color-brand-400:#7592ff;--color-brand-500:#465fff;--color-brand-600:#3641f5;--color-brand-700:#2a31d8;--color-brand-800:#252dae;--color-brand-900:#262e89;--color-brand-950:#161950;--color-blue-light-25:#f5fbff;--color-blue-light-50:#f0f9ff;--color-blue-light-100:#e0f2fe;--color-blue-light-200:#b9e6fe;--color-blue-light-300:#7cd4fd;--color-blue-light-400:#36bffa;--color-blue-light-500:#0ba5ec;--color-blue-light-600:#0086c9;--color-blue-light-700:#026aa2;--color-blue-light-800:#065986;--color-blue-light-900:#0b4a6f;--color-blue-light-950:#062c41;--color-gray-25:#fcfcfd;--color-gray-dark:#1a2231;--color-orange-25:#fffaf5;--color-success-25:#f6fef9;--color-success-50:#ecfdf3;--color-success-100:#d1fadf;--color-success-200:#a6f4c5;--color-success-300:#6ce9a6;--color-success-400:#32d583;--color-success-500:#12b76a;--color-success-600:#039855;--color-success-700:#027a48;--color-success-800:#05603a;--color-success-900:#054f31;--color-success-950:#053321;--color-error-25:#fffbfa;--color-error-50:#fef3f2;--color-error-100:#fee4e2;--color-error-200:#fecdca;--color-error-300:#fda29b;--color-error-400:#f97066;--color-error-500:#f04438;--color-error-600:#d92d20;--color-error-700:#b42318;--color-error-800:#912018;--color-error-900:#7a271a;--color-error-950:#55160c;--color-warning-25:#fffcf5;--color-warning-50:#fffaeb;--color-warning-100:#fef0c7;--color-warning-200:#fedf89;--color-warning-300:#fec84b;--color-warning-400:#fdb022;--color-warning-500:#f79009;--color-warning-600:#dc6803;--color-warning-700:#b54708;--color-warning-800:#93370d;--color-warning-900:#7a2e0e;--color-warning-950:#4e1d09;--color-theme-pink-500:#ee46bc;--color-theme-purple-500:#7a5af8;--shadow-theme-md:0px 4px 8px -2px #1018281a, 0px 2px 4px -2px #1018280f;--shadow-theme-lg:0px 12px 16px -4px #10182814, 0px 4px 6px -2px #10182808;--shadow-theme-sm:0px 1px 3px 0px #1018281a, 0px 1px 2px 0px #1018280f;--shadow-theme-xs:0px 1px 2px 0px #1018280d;--shadow-theme-xl:0px 20px 24px -4px #10182814, 0px 8px 8px -4px #10182808;--shadow-datepicker:-5px 0 0 #262d3c, 5px 0 0 #262d3c;--shadow-focus-ring:0px 0px 0px 4px #465fff1f;--shadow-slider-navigation:0px 1px 2px 0px #1018281a, 0px 1px 3px 0px #1018281a;--shadow-tooltip:0px 4px 6px -2px #1018280d, -8px 0px 20px 8px #1018280d;--drop-shadow-4xl:0 35px 35px #00000040, 0 45px 65px #00000026;--z-index-1:1;--z-index-9:9;--z-index-99:99;--z-index-999:999;--z-index-9999:9999;--z-index-99999:99999;--z-index-999999:999999;--radius-control:.5rem;--radius-card:1rem;--radius-panel:.75rem;--radius-modal:1rem;--z-index-base:1;--z-index-overlay:10;--z-index-sticky:20;--z-index-dropdown:30;--z-index-sidebar:40;--z-index-skip-link:100000;--z-index-header:50;--z-index-modal:60;--z-index-popover:70;--z-index-toast:80;--z-index-loader:90}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*,:after,:before,::backdrop{border-color:var(--color-gray-200,currentcolor)}::file-selector-button{border-color:var(--color-gray-200,currentcolor)}.dark *,.dark :after,.dark :before,.dark ::backdrop{border-color:var(--color-gray-800,currentcolor)}.dark ::file-selector-button{border-color:var(--color-gray-800,currentcolor)}button:not(:disabled),[role=button]:not(:disabled){cursor:pointer}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}.dark{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{background-color:var(--color-gray-50);color:var(--color-gray-700);font-family:var(--font-outfit);font-size:var(--text-theme-sm);line-height:var(--text-theme-sm--line-height);-webkit-font-smoothing:antialiased}.dark body{background-color:var(--color-gray-900);color:var(--color-gray-400)}}@layer components{.dark .adm-select option{background-color:var(--color-gray-900);color:#ffffffe6}.dark .adm-select[multiple] option:checked{background-color:revert;color:revert}.adm-alert__body{flex:auto;min-width:0}.adm-alert__dismiss{color:inherit;opacity:.6;flex-shrink:0;margin-inline-start:auto}.adm-alert__dismiss:hover{opacity:1}.adm-alert__more{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.adm-alert__more~.adm-alert__body{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.adm-alert__more:checked~.adm-alert__body{display:block;overflow:visible}.adm-alert__more-label{cursor:pointer;align-items:center;gap:.5rem;margin-top:.5rem;font-weight:500;display:inline-flex}.adm-alert__more~* .adm-alert__more-less,.adm-alert__more:checked~* .adm-alert__more-more{display:none}.adm-alert__more:checked~* .adm-alert__more-less{display:inline}.adm-dropdown__menu ul>li>a{border-radius:var(--radius-control);color:var(--color-gray-700);font-size:var(--text-theme-sm);align-items:center;gap:.75rem;padding-block:.5rem;padding-inline:.75rem;font-weight:500;display:flex}.adm-dropdown__menu ul>li>a:hover{background-color:var(--color-gray-100)}.dark .adm-dropdown__menu ul>li>a{color:var(--color-gray-400)}.dark .adm-dropdown__menu ul>li>a:hover{color:var(--color-gray-300);background-color:#ffffff0d}.adm-table thead th{padding-inline:var(--adm-cell-px);border-bottom:1px solid var(--color-gray-100);color:var(--color-gray-500);font-size:var(--text-theme-xs);line-height:var(--text-theme-xs--line-height);text-align:start;white-space:nowrap;padding-block:.75rem;font-weight:500}.adm-table tbody tr{border-top:1px solid var(--color-gray-100)}.adm-table tbody tr:hover{background-color:var(--color-gray-50)}.adm-table tbody td{padding-inline:var(--adm-cell-px);padding-block:var(--adm-cell-py);color:var(--color-gray-700);font-size:var(--text-theme-sm);line-height:var(--text-theme-sm--line-height);vertical-align:middle}.adm-table tbody tr.adminata-list-row-selected{background-color:var(--color-brand-50)}.dark .adm-table thead th{border-bottom-color:var(--color-gray-800);color:var(--color-gray-400)}.dark .adm-table tbody tr{border-top-color:var(--color-gray-800)}.dark .adm-table tbody tr:hover{background-color:#ffffff08}.dark .adm-table tbody td{color:var(--color-gray-300)}.dark .adm-table tbody tr.adminata-list-row-selected{background-color:#465fff1f}.adm-pagination>li>a,.adm-pagination>li>span{border-radius:var(--radius-control);min-width:2.25rem;height:2.25rem;color:var(--color-gray-600);font-size:var(--text-theme-sm);justify-content:center;align-items:center;padding-inline:.5rem;font-weight:500;display:inline-flex}.adm-pagination>li>a:hover{background-color:var(--color-gray-100);color:var(--color-gray-800)}.adm-pagination>li.active>a,.adm-pagination>li.active>span{background-color:var(--color-brand-500);color:var(--color-white)}.adm-pagination>li.disabled>a,.adm-pagination>li.disabled>span{cursor:not-allowed;opacity:.5}.dark .adm-pagination>li>a,.dark .adm-pagination>li>span{color:var(--color-gray-400)}.dark .adm-pagination>li>a:hover{color:var(--color-gray-200);background-color:#ffffff0d}.menu-item-arrow{margin-inline-start:auto;transition:transform .15s ease-out}.menu-item[aria-expanded=true] .menu-item-arrow{transform:rotate(180deg)}.menu-item-text{white-space:nowrap;text-overflow:ellipsis;flex:auto;min-width:0;overflow:hidden}@media (width>=1024px){.adm-shell[data-sidebar=collapsed] .menu-item-text{display:none}.adm-shell[data-sidebar=collapsed] .menu-dropdown .menu-item-text{display:block}.adm-shell[data-sidebar=collapsed] .adm-menu>li>.menu-item>.menu-item-text{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;display:block;position:absolute;overflow:hidden}.adm-shell[data-sidebar=collapsed] .adm-menu>li>.menu-item>.menu-item-arrow{display:none}}.adm-sidebar a:focus-visible,.adm-sidebar button:focus-visible{outline:2px solid var(--color-brand-500);outline-offset:-2px}@media (width>=1024px){.adm-main{margin-inline-start:var(--adm-sidebar-w);transition:margin-inline-start .2s ease-out}.adm-shell[data-sidebar=collapsed] .adm-main{margin-inline-start:var(--adm-sidebar-collapsed-w)}}@media (prefers-reduced-motion:reduce){.adm-main{transition:none}}.adm-breadcrumb li+li:before{content:"";border-top:1.5px solid var(--color-gray-400);border-inline-end:1.5px solid var(--color-gray-400);width:.375rem;height:.375rem;margin-inline:.375rem;transform:rotate(45deg)}[dir=rtl] .adm-breadcrumb li+li:before{transform:rotate(-135deg)}.adm-breadcrumb li{align-items:center;display:flex}.adm-breadcrumb a{color:var(--color-gray-500);font-size:var(--text-theme-sm)}.adm-breadcrumb a:hover{color:var(--color-gray-700)}.adm-breadcrumb .active{color:var(--color-gray-800);font-size:var(--text-theme-sm)}.adm-sticky.stuck{z-index:var(--z-index-sticky);border-top:1px solid var(--color-gray-200);background-color:var(--color-white);box-shadow:var(--shadow-theme-lg);position:sticky;bottom:0}.dark .adm-breadcrumb .active{color:#ffffffe6}.dark .adm-breadcrumb a{color:var(--color-gray-400)}.dark .adm-breadcrumb a:hover{color:var(--color-gray-200)}.dark .adm-sticky.stuck{border-top-color:var(--color-gray-800);background-color:var(--color-gray-900)}.adminata-list-field-readmore{max-width:100%;display:inline-block}.adminata-readmore-content{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.adminata-readmore-content[data-expanded=true]{display:block;overflow:visible}.adminata-list-field-actions .adm-btn-icon{border:1px solid var(--color-gray-200);background-color:var(--color-white)}.adminata-list-field-actions .adm-btn-icon:disabled{cursor:not-allowed;opacity:.5}.dark .adminata-list-field-actions .adm-btn-icon{border-color:var(--color-gray-700);background-color:#ffffff08}.adm-table th.adminata-list-field-header-batch,.adm-table td.adminata-list-field-batch,.adm-table th.adminata-list-field-header-select,.adm-table td.adminata-list-field-select,.adm-table th.adminata-list-field-header-actions,.adm-table td.adminata-list-field-actions{white-space:nowrap;width:1%}.adm-table th.adminata-list-field-header-id,.adm-table td.adminata-list-field-id{box-sizing:content-box;white-space:nowrap;width:6ch;min-width:6ch}.adm-table tbody tr.adminata-list-row-link{cursor:pointer}.adm-show-table tr{border-top:1px solid var(--color-gray-100)}.adm-show-table tr:first-child{border-top:0}.adm-show-table th{width:30%;padding-inline:var(--adm-cell-px);padding-block:var(--adm-cell-py);color:var(--color-gray-500);font-size:var(--text-theme-sm);text-align:start;vertical-align:top;font-weight:500}.adm-show-table td{padding-inline:var(--adm-cell-px);padding-block:var(--adm-cell-py);color:var(--color-gray-800);font-size:var(--text-theme-sm);vertical-align:top}.dark .adm-show-table tr{border-top-color:var(--color-gray-800)}.dark .adm-show-table th{color:var(--color-gray-400)}.dark .adm-show-table td{color:#ffffffe6}@keyframes adm-spin{to{transform:rotate(360deg)}}.adm-help-box h3,.adm-help-box h4{color:var(--color-gray-700);margin:.75rem 0 .25rem;font-weight:600}.adm-help-box h3:first-child,.adm-help-box h4:first-child{margin-top:0}.adm-help-box p+p{margin-top:.5rem}.adm-help-box ul,.adm-help-box ol{margin-block:.25rem;padding-inline-start:1.25rem}.adm-help-box ul{list-style:outside}.adm-help-box ol{list-style:decimal}.adm-help-box li+li{margin-top:.125rem}.adm-help-box b,.adm-help-box strong{color:var(--color-gray-700);font-weight:600}.adm-help-box code{background-color:var(--color-gray-100);border-radius:.25rem;padding-inline:.25rem;font-size:.9em}.dark .adm-help-box h3,.dark .adm-help-box h4,.dark .adm-help-box b,.dark .adm-help-box strong{color:var(--color-gray-300)}.dark .adm-help-box code{background-color:#ffffff14}}@layer utilities{.adm-sidebar-filter{margin-bottom:1rem;position:relative}.adm-sidebar-filter>.adm-input{padding-inline-start:2.5rem}.adm-sidebar-filter>.fa-magnifying-glass{inset-inline-start:.875rem;top:calc(var(--adm-control-h) / 2);color:var(--color-gray-400);pointer-events:none;position:absolute;translate:0 -50%}.adm-sidebar-filter>[role=status]>span{color:var(--color-gray-500);font-size:var(--text-theme-sm);line-height:var(--text-theme-sm--line-height);margin-top:.75rem;padding-inline:.75rem;display:block}.adm-sidebar-filter>[role=status]>span:where(.dark,.dark *){color:var(--color-gray-400)}@media (width>=1024px){.adm-shell[data-sidebar=collapsed] .adm-sidebar-filter{display:none}}.collapse{visibility:collapse}.visible{visibility:visible}.adm-overlay{z-index:var(--z-index-overlay);background-color:#10182880;position:fixed;inset:0}.adm-shell[data-sidebar-mobile=open] .adm-overlay{z-index:calc(var(--z-index-modal) - 1)}.adm-combobox__listbox{z-index:var(--z-index-popover);border:1px solid var(--color-gray-200);border-radius:var(--radius-control);background-color:var(--color-white);max-height:16rem;box-shadow:var(--shadow-theme-lg);margin-top:.25rem;padding:.25rem;position:absolute;inset-inline:0;overflow-y:auto}.adm-combobox__listbox:where(.dark,.dark *){border-color:var(--color-gray-800);background-color:var(--color-gray-dark)}.adm-sidebar{z-index:var(--z-index-sidebar);width:var(--adm-sidebar-w);border-inline-end:1px solid var(--color-gray-200);background-color:var(--color-white);flex-direction:column;padding-inline:1.25rem;transition:transform .2s ease-out,width .2s ease-out;display:flex;position:fixed;inset-block:0;inset-inline-start:0}@media (prefers-reduced-motion:reduce){.adm-shell .adm-sidebar{transition:none}}.adm-sidebar:where(.dark,.dark *){border-inline-end-color:var(--color-gray-800);background-color:var(--color-black)}@media not all and (width>=1024px){.adm-shell .adm-sidebar{transform:translate(-100%)}[dir=rtl] .adm-shell .adm-sidebar{transform:translate(100%)}.adm-shell[data-sidebar-mobile=open] .adm-sidebar{z-index:var(--z-index-modal);transform:translate(0)}}@media (width>=1024px){.adm-shell[data-sidebar=collapsed] .adm-sidebar{width:var(--adm-sidebar-collapsed-w)}.adm-shell[data-sidebar=collapsed] .adm-sidebar:has([data-adminata-menu-rail]>.adm-menu>li>.menu-item[aria-expanded=true]){z-index:calc(var(--z-index-header) + 1)}}.adm-skip-link{z-index:var(--z-index-skip-link);border-radius:var(--radius-control);background-color:var(--color-brand-600);color:var(--color-white);font-size:var(--text-theme-sm);inset-inline-start:-9999px;padding:.75rem 1rem;font-weight:500;position:absolute;top:0}.adm-skip-link:focus{inset-inline-start:.5rem;top:.5rem}@media (width>=1024px){.adm-shell[data-sidebar=collapsed] .adm-menu>li>.menu-dropdown{display:none}}.menu-dropdown{flex-direction:column;gap:.25rem;margin-top:.5rem;padding-inline-start:2.25rem;display:flex}.menu-item[aria-expanded=false]+.menu-dropdown{display:none}.menu-dropdown[data-sliding]{transition:height .5s ease-in-out;overflow:hidden}@media (prefers-reduced-motion:reduce){.menu-dropdown[data-sliding]{transition:none}}@media (width>=1024px){.adm-shell[data-sidebar=collapsed] [data-adminata-menu-rail]>.adm-menu>li>.menu-item[aria-expanded=true]+.menu-dropdown{top:var(--adm-menu-popup-top,.5rem);width:max-content;min-width:12rem;max-width:var(--adm-sidebar-w);border:1px solid var(--color-gray-200);border-radius:var(--radius-card);background-color:var(--color-white);max-height:calc(100vh - 1rem);box-shadow:var(--shadow-theme-lg);margin:0;padding:.5rem;display:flex;position:fixed;inset-inline-start:calc(var(--adm-menu-popup-start,var(--adm-sidebar-collapsed-w)) + .5rem);overflow-y:auto}.adm-shell[data-sidebar=collapsed] [data-adminata-menu-rail]>.adm-menu>li>.menu-item[aria-expanded=true]+.menu-dropdown:where(.dark,.dark *){border-color:var(--color-gray-800);background-color:var(--color-gray-dark)}}.adm-dropdown__menu{z-index:var(--z-index-dropdown);border:1px solid var(--color-gray-200);border-radius:var(--radius-card);background-color:var(--color-white);width:max-content;min-width:12rem;max-width:min(92vw,60rem);box-shadow:var(--shadow-theme-lg);margin-top:.5rem;padding:.5rem;position:absolute;inset-inline-end:0}.adm-dropdown__menu:where(.dark,.dark *){border-color:var(--color-gray-800);background-color:var(--color-gray-dark)}.adm-header{z-index:var(--z-index-header);width:100%;height:var(--adm-header-h);border-bottom:1px solid var(--color-gray-200);background-color:var(--color-white);align-items:center;gap:1rem;padding-inline:1rem;display:flex;position:sticky;top:0}.adm-header:where(.dark,.dark *){border-bottom-color:var(--color-gray-800);background-color:var(--color-gray-900)}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.menu-item{border-radius:var(--radius-control);width:100%;font-size:var(--text-theme-sm);line-height:var(--text-theme-sm--line-height);text-align:start;align-items:center;gap:.75rem;padding-block:.5rem;padding-inline:.75rem;font-weight:500;display:flex;position:relative}@media (width>=1024px){.adm-shell[data-sidebar=collapsed] .adm-menu>li>.menu-item{justify-content:center}}.adm-table-scroll{max-width:100%;position:relative;overflow-x:auto}.adm-table-wrap{border-radius:calc(var(--radius-card) - 1px);position:relative;overflow:hidden}.absolute{position:absolute}.adm-combobox,.adm-dropdown{position:relative}.static{position:static}.adm-dropdown__menu-start{inset-inline:0 auto}.col-span-1{grid-column:span 1/span 1}.col-span-2{grid-column:span 2/span 2}.col-span-3{grid-column:span 3/span 3}.col-span-4{grid-column:span 4/span 4}.col-span-5{grid-column:span 5/span 5}.col-span-6{grid-column:span 6/span 6}.col-span-7{grid-column:span 7/span 7}.col-span-8{grid-column:span 8/span 8}.col-span-9{grid-column:span 9/span 9}.col-span-10{grid-column:span 10/span 10}.col-span-11{grid-column:span 11/span 11}.col-span-12{grid-column:span 12/span 12}.col-span-full{grid-column:1/-1}.container{width:100%}@media (width>=375px){.container{max-width:375px}}@media (width>=425px){.container{max-width:425px}}@media (width>=640px){.container{max-width:640px}}@media (width>=768px){.container{max-width:768px}}@media (width>=1024px){.container{max-width:1024px}}@media (width>=1280px){.container{max-width:1280px}}@media (width>=1536px){.container{max-width:1536px}}@media (width>=2000px){.container{max-width:2000px}}.adm-list-legend{border-top:1px solid var(--color-gray-100);font-size:var(--text-theme-xs);line-height:var(--text-theme-xs--line-height);color:var(--color-gray-500);flex-wrap:wrap;gap:.75rem 2rem;margin:0;padding:.75rem 1.5rem;display:flex}.adm-list-legend:where(.dark,.dark *){border-top-color:var(--color-gray-800);color:var(--color-gray-400)}.adm-list-legend__item{margin:0}.adm-dropdown__divider{border-top:1px solid var(--color-gray-200);margin-block:.5rem}.adm-dropdown__divider:where(.dark,.dark *){border-top-color:var(--color-gray-800)}.adm-empty-layout .adm-main{margin-inline-start:0}.adm-empty-layout .adm-content{padding:0}.adm-required{color:var(--color-error-500);margin-inline-start:.125rem}.ms-auto{margin-inline-start:auto}.adm-file{border:1px solid var(--color-gray-300);border-radius:var(--radius-control);width:100%;color:var(--color-gray-500);font-size:var(--text-theme-sm);box-shadow:var(--shadow-theme-xs);padding:0;display:block}.adm-file::file-selector-button{padding-inline:var(--adm-control-px);padding-block:var(--adm-control-py);border:0;border-inline-end:1px solid var(--color-gray-300);background-color:var(--color-gray-50);color:var(--color-gray-700);font-size:var(--text-theme-sm);cursor:pointer;border-start-start-radius:var(--radius-control);border-end-start-radius:var(--radius-control);margin-inline-end:.75rem}.adm-file:focus-within{border-color:var(--color-brand-300);box-shadow:var(--shadow-focus-ring);outline:none}.adm-file:where(.dark,.dark *){border-color:var(--color-gray-700);color:var(--color-gray-400)}.adm-file:where(.dark,.dark *)::file-selector-button{border-inline-end-color:var(--color-gray-700);background-color:var(--color-gray-800);color:var(--color-gray-400)}.adm-sidebar-release{text-align:center;margin-top:auto;padding-top:1rem}@media (width>=1024px){.adm-shell[data-sidebar=collapsed] .adm-sidebar-release{display:none}}.adm-combobox__status{color:var(--color-gray-500);font-size:var(--text-theme-xs);line-height:var(--text-theme-xs--line-height);margin-top:.375rem}.adm-combobox__status:where(.dark,.dark *){color:var(--color-gray-400)}.adm-combobox__status:empty{display:none}.adm-help-box{border:1px solid var(--color-gray-100);border-radius:var(--radius-control);background-color:var(--color-gray-50);color:var(--color-gray-600);font-size:var(--text-theme-sm);line-height:var(--text-theme-sm--line-height);overflow-wrap:anywhere;margin-top:.5rem;padding:.75rem 1rem}.adm-help-box:where(.dark,.dark *){border-color:var(--color-gray-800);color:var(--color-gray-400);background-color:#ffffff0d}.adm-help{color:var(--color-gray-500);font-size:var(--text-theme-xs);line-height:var(--text-theme-xs--line-height);margin-top:.375rem}.adm-help:where(.dark,.dark *){color:var(--color-gray-400)}.adm-error{color:var(--color-error-500);font-size:var(--text-theme-xs);line-height:var(--text-theme-xs--line-height);margin-top:.375rem}.adm-card-subtitle{font-size:var(--text-theme-sm);color:var(--color-gray-500);margin-top:.25rem}.adm-card-subtitle:where(.dark,.dark *){color:var(--color-gray-400)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-auto{margin-top:auto}.adm-tab{color:var(--color-gray-500);font-size:var(--text-theme-sm);line-height:var(--text-theme-sm--line-height);white-space:nowrap;cursor:pointer;border-bottom:2px solid #0000;align-items:center;gap:.5rem;margin-bottom:-1px;padding:.625rem 1rem;font-weight:500;transition:border-color .15s,color .15s;display:inline-flex}.adm-tab:hover{color:var(--color-gray-700)}.adm-tab[aria-selected=true]{border-bottom-color:var(--color-brand-500);color:var(--color-brand-500)}.adm-tab:focus-visible{outline:2px solid var(--color-brand-500);outline-offset:-2px;border-radius:var(--radius-control)}.adm-tab:where(.dark,.dark *){color:var(--color-gray-400)}.adm-tab:where(.dark,.dark *):hover{color:var(--color-gray-200)}.adm-tab:where(.dark,.dark *)[aria-selected=true]{border-bottom-color:var(--color-brand-400);color:var(--color-brand-400)}.adm-page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1.5rem;display:flex}.adm-combobox__chips{flex-wrap:wrap;gap:.375rem;display:flex}.adm-combobox__chips:not(:empty){margin-bottom:.375rem}.adm-sidebar-toolbar{border-bottom:1px solid var(--color-gray-200);justify-content:space-between;align-items:center;gap:.25rem;margin-bottom:1rem;padding-bottom:1rem;display:flex}.adm-sidebar-toolbar:where(.dark,.dark *){border-bottom-color:var(--color-gray-800)}@media (width>=1024px){.adm-shell[data-sidebar=collapsed] .adm-sidebar-toolbar{display:none}}.adm-menu-popup-title{border-bottom:1px solid var(--color-gray-200);color:var(--color-gray-800);font-size:var(--text-theme-sm);line-height:var(--text-theme-sm--line-height);white-space:nowrap;text-overflow:ellipsis;margin-bottom:.25rem;padding-block:.5rem;padding-inline:.75rem;font-weight:600;display:none;overflow:hidden}@media (width>=1024px){.adm-shell[data-sidebar=collapsed] [data-adminata-menu-rail]>.adm-menu>li>.menu-item[aria-expanded=true]+.menu-dropdown>.adm-menu-popup-title{display:block}}.adm-menu-popup-title:where(.dark,.dark *){border-bottom-color:var(--color-gray-800);color:#ffffffe6}.adm-label{color:var(--color-gray-700);font-size:var(--text-theme-sm);line-height:var(--text-theme-sm--line-height);margin-bottom:.375rem;font-weight:500;display:block}.adm-label:where(.dark,.dark *){color:var(--color-gray-400)}.adm-form-row{margin-bottom:1.25rem}.adm-form-row:last-child,.mb-0{margin-bottom:0}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.box-content{box-sizing:content-box}.adm-spinner{border:2px solid var(--color-brand-500);border-top-color:#0000;border-radius:9999px;width:1.25rem;height:1.25rem;animation:.7s linear infinite adm-spin;display:inline-block}.adm-select{width:100%;height:var(--adm-control-h);padding-inline:var(--adm-control-px) 2.5rem;padding-block:var(--adm-control-py);border:1px solid var(--color-gray-300);border-radius:var(--radius-control);color:var(--color-gray-800);font-size:var(--text-theme-sm);line-height:var(--text-theme-sm--line-height);box-shadow:var(--shadow-theme-xs);appearance:none;background-color:#0000;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%23667085' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m5 7.5 5 5 5-5'/%3E%3C/svg%3E");background-position:right .75rem center;background-repeat:no-repeat;display:block}.adm-select:focus{border-color:var(--color-brand-300);box-shadow:var(--shadow-focus-ring);outline:none}.adm-select:disabled{cursor:not-allowed;background-color:var(--color-gray-50);color:var(--color-gray-500)}.adm-select:where(.dark,.dark *){border-color:var(--color-gray-700);color:#ffffffe6;background-color:#ffffff08}.adm-input{width:100%;height:var(--adm-control-h);padding-inline:var(--adm-control-px);padding-block:var(--adm-control-py);border:1px solid var(--color-gray-300);border-radius:var(--radius-control);color:var(--color-gray-800);font-size:var(--text-theme-sm);line-height:var(--text-theme-sm--line-height);box-shadow:var(--shadow-theme-xs);background-color:#0000;transition:border-color .15s,box-shadow .15s;display:block}.adm-input::placeholder{color:var(--color-gray-400)}.adm-input:focus{border-color:var(--color-brand-300);box-shadow:var(--shadow-focus-ring);outline:none}.adm-input:disabled{cursor:not-allowed;background-color:var(--color-gray-50);color:var(--color-gray-500)}.adm-input:where(.dark,.dark *){border-color:var(--color-gray-700);color:#ffffffe6;background-color:#ffffff08}.adm-input:where(.dark,.dark *)::placeholder{color:#ffffff4d}.adm-input:where(.dark,.dark *):focus{border-color:var(--color-brand-800)}.adm-input:where(.dark,.dark *):disabled{background-color:var(--color-gray-800)}.adm-input::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.6}.adm-input::-webkit-calendar-picker-indicator:hover{opacity:1}.adm-chip__remove{width:1rem;height:1rem;color:var(--color-gray-500);border-radius:9999px;justify-content:center;align-items:center;line-height:1;display:inline-flex}.adm-chip__remove:hover{background-color:var(--color-gray-200);color:var(--color-gray-700)}.adm-chip__remove:focus-visible{outline:2px solid var(--color-brand-500);outline-offset:1px}.adm-chip__remove:where(.dark,.dark *){color:var(--color-gray-400)}.adm-chip__remove:where(.dark,.dark *):hover{color:var(--color-gray-200);background-color:#ffffff1a}.adm-btn-icon{border-radius:var(--radius-control);width:2.25rem;height:2.25rem;color:var(--color-gray-500);justify-content:center;align-items:center;transition:background-color .15s,color .15s;display:inline-flex}.adm-btn-icon:hover{background-color:var(--color-gray-100);color:var(--color-gray-700)}.adm-btn-icon:where(.dark,.dark *){color:var(--color-gray-400)}.adm-btn-icon:focus-visible{outline:2px solid var(--color-brand-500);outline-offset:2px}.adm-btn-icon:where(.dark,.dark *):hover{color:var(--color-gray-200);background-color:#ffffff0d}.adm-btn{height:var(--adm-control-h);padding-inline:var(--adm-control-px);border-radius:var(--radius-control);font-size:var(--text-theme-sm);line-height:var(--text-theme-sm--line-height);white-space:nowrap;justify-content:center;align-items:center;gap:.5rem;font-weight:500;transition:background-color .15s,border-color .15s,color .15s;display:inline-flex}.adm-btn:disabled,.adm-btn[aria-disabled=true]{cursor:not-allowed;opacity:.5}.adm-btn:focus-visible{outline:2px solid var(--color-brand-500);outline-offset:2px}.adm-textarea{width:100%;min-height:6rem;padding-inline:var(--adm-control-px);padding-block:var(--adm-control-py);border:1px solid var(--color-gray-300);border-radius:var(--radius-control);color:var(--color-gray-800);font-size:var(--text-theme-sm);line-height:var(--text-theme-sm--line-height);box-shadow:var(--shadow-theme-xs);background-color:#0000;display:block}.adm-textarea::placeholder{color:var(--color-gray-400)}.adm-textarea:focus{border-color:var(--color-brand-300);box-shadow:var(--shadow-focus-ring);outline:none}.adm-textarea:where(.dark,.dark *){border-color:var(--color-gray-700);color:#ffffffe6;background-color:#ffffff08}.adm-textarea:where(.dark,.dark *)::placeholder{color:#ffffff4d}.adm-sidebar-nav{flex-direction:column;flex:auto;min-height:0;padding-bottom:1.5rem;display:flex;overflow-y:auto}.adm-dialog{border:1px solid var(--color-gray-200);border-radius:var(--radius-modal);background-color:var(--color-white);width:100%;max-width:32rem;color:var(--color-gray-700);box-shadow:var(--shadow-theme-xl);padding:0}.adm-dialog:where(.dark,.dark *){border-color:var(--color-gray-800);background-color:var(--color-gray-dark);color:var(--color-gray-300)}.adm-dialog::backdrop{background-color:#10182880}.adm-dialog:not([open]){display:none}.adm-dropdown__item{border-radius:var(--radius-control);width:100%;color:var(--color-gray-700);font-size:var(--text-theme-sm);line-height:var(--text-theme-sm--line-height);text-align:start;align-items:center;gap:.75rem;padding-block:.5rem;padding-inline:.75rem;font-weight:500;display:flex}.adm-dropdown__item:hover{background-color:var(--color-gray-100)}.adm-dropdown__item:where(.dark,.dark *){color:var(--color-gray-400)}.adm-dropdown__item:where(.dark,.dark *):hover{color:var(--color-gray-300);background-color:#ffffff0d}.adm-dropdown__item:focus-visible{outline:2px solid var(--color-brand-500);outline-offset:-2px}.adm-btn-block{width:100%;display:flex}.adm-sidebar-header{align-items:center;gap:.5rem;min-width:0;padding-block:2rem 1.75rem;display:flex;overflow:hidden}.adm-sidebar-header img{max-width:calc(var(--adm-sidebar-w) - 2.5rem);object-fit:contain}.adm-input-group{align-items:stretch;display:flex}.adm-input-group>.adm-input{flex:auto;min-width:0}.adm-input-group>.adm-input:not(:first-child){border-start-start-radius:0;border-end-start-radius:0}.adm-input-group>.adm-input:not(:last-child){border-start-end-radius:0;border-end-end-radius:0}.adm-tablist{border-bottom:1px solid var(--color-gray-200);scrollbar-width:none;gap:.25rem;display:flex;overflow-x:auto}.adm-tablist:where(.dark,.dark *){border-bottom-color:var(--color-gray-800)}.no-scrollbar{scrollbar-width:none}.no-scrollbar::-webkit-scrollbar{display:none}.adm-filters{grid-template-columns:repeat(12,minmax(0,1fr));gap:.75rem;display:grid}.adm-list-empty{font-size:var(--text-theme-sm);color:var(--color-gray-500);text-align:center;flex-direction:column;align-items:center;gap:.75rem;padding-block:3rem;display:flex}.adm-list-empty:where(.dark,.dark *){color:var(--color-gray-400)}.adm-error-list{color:var(--color-error-500);font-size:var(--text-theme-xs);line-height:var(--text-theme-xs--line-height);flex-direction:column;gap:.25rem;display:flex}.adm-error-list>li{align-items:baseline;gap:.375rem;display:flex}.adm-collection{flex-direction:column;align-items:flex-start;gap:.75rem;display:flex}.adm-list-footer{border-top:1px solid var(--color-gray-100);flex-direction:column;gap:1rem;padding:1rem 1.5rem;display:flex}.adm-list-footer:where(.dark,.dark *){border-top-color:var(--color-gray-800)}.adm-choice-list{flex-direction:column;gap:.5rem;list-style:none;display:flex}.adm-menu{flex-direction:column;gap:1rem;display:flex}.adm-tabs{flex-direction:column;gap:1.5rem;display:flex}.adm-card-footer{padding-inline:var(--adm-card-p);border-top:1px solid var(--color-gray-100);flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.75rem;padding-block:1rem;display:flex}.adm-card-footer:where(.dark,.dark *){border-top-color:var(--color-gray-800)}.adm-card-success .adm-card-footer{border-top-color:var(--color-success-200)}.adm-card-error .adm-card-footer{border-top-color:var(--color-error-200)}.adm-card-warning .adm-card-footer{border-top-color:var(--color-warning-200)}.adm-card-info .adm-card-footer{border-top-color:var(--color-blue-light-200)}.adm-card-success .adm-card-footer:where(.dark,.dark *){border-top-color:#12b76a4d}.adm-card-error .adm-card-footer:where(.dark,.dark *){border-top-color:#f044384d}.adm-card-warning .adm-card-footer:where(.dark,.dark *){border-top-color:#f790094d}.adm-card-info .adm-card-footer:where(.dark,.dark *){border-top-color:#0ba5ec4d}.adm-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.75rem;display:flex}.adm-list-legend__group{flex-wrap:wrap;align-items:center;gap:.5rem 1rem;display:inline-flex}.adm-dialog__footer{border-top:1px solid var(--color-gray-100);justify-content:flex-end;align-items:center;gap:.75rem;padding:1rem 1.5rem;display:flex}.adm-dialog__footer:where(.dark,.dark *){border-color:var(--color-gray-800)}.adm-dialog__header{border-bottom:1px solid var(--color-gray-100);justify-content:space-between;align-items:center;gap:1rem;padding:1.25rem 1.5rem;display:flex}.adm-dialog__header:where(.dark,.dark *){border-color:var(--color-gray-800)}.adm-card-header{padding-inline:var(--adm-card-p);justify-content:space-between;align-items:center;gap:1rem;padding-block:1.25rem;display:flex}.adm-alert{border:1px solid var(--color-gray-200);border-radius:var(--radius-control);background-color:var(--color-white);color:var(--color-gray-700);font-size:var(--text-theme-sm);line-height:var(--text-theme-sm--line-height);align-items:flex-start;gap:.75rem;padding:1rem;display:flex}.adm-alert:where(.dark,.dark *){border-color:var(--color-gray-800);color:var(--color-gray-300);background-color:#ffffff08}.adm-badge{font-size:var(--text-theme-xs);line-height:var(--text-theme-xs--line-height);background-color:var(--color-gray-100);color:var(--color-gray-700);border-radius:9999px;align-items:center;gap:.25rem;padding-block:.125rem;padding-inline:.5rem;font-weight:500;display:inline-flex}.adm-badge:where(.dark,.dark *){color:var(--color-gray-300);background-color:#ffffff0d}.adm-chip{border-radius:var(--radius-control);background-color:var(--color-gray-100);color:var(--color-gray-700);font-size:var(--text-theme-xs);align-items:center;gap:.375rem;padding-block:.125rem;padding-inline:.5rem;display:inline-flex}.adm-chip:where(.dark,.dark *){color:var(--color-gray-300);background-color:#ffffff0d}.menu-dropdown-item{border-radius:var(--radius-control);font-size:var(--text-theme-sm);align-items:center;gap:.75rem;padding-block:.375rem;padding-inline:.75rem;font-weight:500;display:flex}.adm-checkbox-label{font-size:var(--text-theme-sm);line-height:var(--text-theme-sm--line-height);color:var(--color-gray-700);align-items:center;gap:.75rem;display:inline-flex}.adm-checkbox-label:where(.dark,.dark *){color:var(--color-gray-400)}.adm-radio-label{font-size:var(--text-theme-sm);line-height:var(--text-theme-sm--line-height);color:var(--color-gray-700);align-items:center;gap:.75rem;display:inline-flex}.adm-radio-label:where(.dark,.dark *){color:var(--color-gray-400)}.adm-breadcrumb{align-items:center;gap:.375rem;list-style:none;display:flex}.adm-pagination{align-items:center;gap:.25rem;list-style:none;display:flex}.adm-icon-enum{align-items:center;gap:.5rem;display:inline-flex}.adm-input-affix{padding-inline:var(--adm-control-px);border:1px solid var(--color-gray-300);background-color:var(--color-gray-50);color:var(--color-gray-500);font-size:var(--text-theme-sm);white-space:nowrap;align-items:center;display:inline-flex}.adm-input-affix:first-child{border-inline-end:0;border-start-start-radius:var(--radius-control);border-end-start-radius:var(--radius-control)}.adm-input-affix:last-child{border-inline-start:0;border-start-end-radius:var(--radius-control);border-end-end-radius:var(--radius-control)}.adm-input-affix:where(.dark,.dark *){border-color:var(--color-gray-700);color:var(--color-gray-400);background-color:#ffffff08}@media (width>=1024px){.adm-shell[data-sidebar=collapsed] .adm-menu-group-title{display:none}}.adm-menu-group-title{color:var(--color-gray-500);font-size:var(--text-theme-xs);text-transform:uppercase;line-height:20px}.adm-menu-group-title:where(.dark,.dark *){color:var(--color-gray-400)}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.adm-select-multiple{height:auto;min-height:8rem;padding-right:var(--adm-control-px);background-image:none}.adm-radio{border:1px solid var(--color-gray-300);background-color:var(--color-white);appearance:none;border-radius:9999px;flex-shrink:0;width:1.25rem;height:1.25rem;transition:background-color .15s,border-color .15s}.adm-radio:checked{border-width:6px;border-color:var(--color-brand-500);background-color:var(--color-white)}.adm-radio:focus-visible{outline:2px solid var(--color-brand-500);outline-offset:2px}.adm-radio:disabled{cursor:not-allowed;background-color:var(--color-gray-100)}.adm-radio:where(.dark,.dark *){border-color:var(--color-gray-700);background-color:#0000}.adm-radio:where(.dark,.dark *):checked{background-color:var(--color-gray-900)}.adm-checkbox{border:1px solid var(--color-gray-300);background-color:var(--color-white);appearance:none;border-radius:.25rem;flex-shrink:0;width:1.25rem;height:1.25rem;transition:background-color .15s,border-color .15s}.adm-checkbox:checked,.adm-checkbox:indeterminate{border-color:var(--color-brand-500);background-color:var(--color-brand-500);background-position:50%;background-repeat:no-repeat}.adm-checkbox:checked{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='none' viewBox='0 0 14 14'%3E%3Cpath stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m11.667 3.5-6.417 6.417L2.333 7'/%3E%3C/svg%3E")}.adm-checkbox:indeterminate{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='none' viewBox='0 0 14 14'%3E%3Cpath stroke='%23fff' stroke-linecap='round' stroke-width='2' d='M3.5 7h7'/%3E%3C/svg%3E")}.adm-checkbox:focus-visible{outline:2px solid var(--color-brand-500);outline-offset:2px}.adm-checkbox:disabled{cursor:not-allowed;background-color:var(--color-gray-100)}.adm-checkbox:where(.dark,.dark *){border-color:var(--color-gray-700);background-color:#0000}.adm-checkbox:where(.dark,.dark *):checked,.adm-checkbox:where(.dark,.dark *):indeterminate{border-color:var(--color-brand-500);background-color:var(--color-brand-500)}.adm-badge-icon{border-radius:var(--radius-control);width:2.25rem;height:2.25rem;font-size:inherit;justify-content:center;gap:0;padding:0;line-height:1;text-decoration:none}.adm-btn-icon-round{border:1px solid var(--color-gray-200);background-color:var(--color-white);border-radius:9999px;width:2.75rem;height:2.75rem}.adm-btn-icon-round:where(.dark,.dark *){border-color:var(--color-gray-800);background-color:var(--color-gray-900)}.adm-btn-sm{height:2.25rem;font-size:var(--text-theme-xs);padding-inline:.75rem}.h-8{height:calc(var(--spacing) * 8)}.max-h-\[75vh\]{max-height:75vh}.adm-shell{min-height:100vh}.adm-show-table{border-collapse:collapse;width:100%}.adm-collection-row{border:1px solid var(--color-gray-200);border-radius:var(--radius-control);background-color:var(--color-gray-50);width:100%;padding:.75rem}.adm-collection-row:where(.dark,.dark *){border-color:var(--color-gray-800);background-color:#ffffff08}.w-auto{width:auto}.adm-dialog-lg{max-width:48rem}.adm-dialog-list{max-width:64rem}.adm-dialog-sm{max-width:24rem}.adm-table{border-collapse:collapse;text-align:start;min-width:100%}.min-w-0{min-width:0}.min-w-20{min-width:calc(var(--spacing) * 20)}.min-w-24{min-width:calc(var(--spacing) * 24)}.min-w-32{min-width:calc(var(--spacing) * 32)}.min-w-40{min-width:calc(var(--spacing) * 40)}.flex-1{flex:1}.shrink{flex-shrink:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.adm-combobox__option{border-radius:var(--radius-control);color:var(--color-gray-700);font-size:var(--text-theme-sm);cursor:pointer;padding-block:.5rem;padding-inline:.75rem}.adm-combobox__option:where(.dark,.dark *){color:var(--color-gray-300)}.adm-combobox__option[aria-selected=true],.adm-combobox__option:hover{background-color:var(--color-brand-50);color:var(--color-brand-600)}.adm-combobox__option:where(.dark,.dark *)[aria-selected=true],.adm-combobox__option:where(.dark,.dark *):hover{color:var(--color-brand-400);background-color:#465fff1f}.resize{resize:both}.custom-scrollbar{scrollbar-width:thin;scrollbar-color:var(--color-gray-300) transparent}.list-none{list-style-type:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-x-3{column-gap:calc(var(--spacing) * 3)}.gap-y-1{row-gap:var(--spacing)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-gray-100>:not(:last-child)){border-color:var(--color-gray-100)}.adm-card{border:1px solid var(--color-gray-200);border-radius:var(--radius-card);background-color:var(--color-white);overflow:visible}.adm-card:where(.dark,.dark *){border-color:var(--color-gray-800);background-color:#ffffff08}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-y-auto{overflow-y:auto}.adm-callout{border-left:4px solid var(--color-gray-300);border-radius:var(--radius-control);background-color:var(--color-gray-50);color:var(--color-gray-700);font-size:var(--text-theme-sm);line-height:var(--text-theme-sm--line-height);padding:1rem}.adm-callout:where(.dark,.dark *){border-left-color:var(--color-gray-700);color:var(--color-gray-300);background-color:#ffffff08}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.border-none{--tw-border-style:none;border-style:none}.adm-btn-secondary{border:1px solid var(--color-gray-300);background-color:var(--color-white);color:var(--color-gray-700)}.adm-btn-secondary:hover:not(:disabled){background-color:var(--color-gray-50)}.adm-btn-secondary:where(.dark,.dark *){border-color:var(--color-gray-700);background-color:var(--color-gray-800);color:var(--color-gray-300)}.adm-btn-secondary:where(.dark,.dark *):hover:not(:disabled){background-color:var(--color-gray-700)}.adm-alert-error{border-color:var(--color-error-200);background-color:var(--color-error-50);color:var(--color-error-700)}.adm-alert-error:where(.dark,.dark *){color:var(--color-error-300);background-color:#f044381f;border-color:#f044384d}.adm-alert-info{border-color:var(--color-blue-light-200);background-color:var(--color-blue-light-50);color:var(--color-blue-light-700)}.adm-alert-info:where(.dark,.dark *){color:var(--color-blue-light-300);background-color:#0ba5ec1f;border-color:#0ba5ec4d}.adm-alert-success{border-color:var(--color-success-200);background-color:var(--color-success-50);color:var(--color-success-700)}.adm-alert-success:where(.dark,.dark *){color:var(--color-success-300);background-color:#12b76a1f;border-color:#12b76a4d}.adm-alert-warning{border-color:var(--color-warning-200);background-color:var(--color-warning-50);color:var(--color-warning-700)}.adm-alert-warning:where(.dark,.dark *){color:var(--color-warning-300);background-color:#f790091f;border-color:#f790094d}.adm-card-error{border-color:var(--color-error-200);background-color:var(--color-error-50)}.adm-card-error:where(.dark,.dark *){background-color:#f044381f;border-color:#f044384d}.adm-card-info{border-color:var(--color-blue-light-200);background-color:var(--color-blue-light-50)}.adm-card-info:where(.dark,.dark *){background-color:#0ba5ec1f;border-color:#0ba5ec4d}.adm-card-success{border-color:var(--color-success-200);background-color:var(--color-success-50)}.adm-card-success:where(.dark,.dark *){background-color:#12b76a1f;border-color:#12b76a4d}.adm-card-warning{border-color:var(--color-warning-200);background-color:var(--color-warning-50)}.adm-card-warning:where(.dark,.dark *){background-color:#f790091f;border-color:#f790094d}.adm-input-error{border-color:var(--color-error-500)}.adm-input-error:focus{border-color:var(--color-error-500);box-shadow:0 0 0 4px #f044381f}.border-error-200{border-color:var(--color-error-200)}.adm-card-body{padding:var(--adm-card-p);border-top:1px solid var(--color-gray-100)}.adm-card-body:where(.dark,.dark *){border-top-color:var(--color-gray-800)}.adm-card-body:first-child{border-top:0}.adm-card-success .adm-card-body{border-top-color:var(--color-success-200)}.adm-card-error .adm-card-body{border-top-color:var(--color-error-200)}.adm-card-warning .adm-card-body{border-top-color:var(--color-warning-200)}.adm-card-info .adm-card-body{border-top-color:var(--color-blue-light-200)}.adm-card-success .adm-card-body:where(.dark,.dark *){border-top-color:#12b76a4d}.adm-card-error .adm-card-body:where(.dark,.dark *){border-top-color:#f044384d}.adm-card-warning .adm-card-body:where(.dark,.dark *){border-top-color:#f790094d}.adm-card-info .adm-card-body:where(.dark,.dark *){border-top-color:#0ba5ec4d}.adm-callout-danger{border-left-color:var(--color-error-500);background-color:var(--color-error-50);color:var(--color-error-700)}.adm-callout-danger:where(.dark,.dark *){border-left-color:var(--color-error-500);color:var(--color-error-300);background-color:#f044381f}.adm-callout-info{border-left-color:var(--color-blue-light-500);background-color:var(--color-blue-light-50);color:var(--color-blue-light-700)}.adm-callout-info:where(.dark,.dark *){border-left-color:var(--color-blue-light-500);color:var(--color-blue-light-300);background-color:#0ba5ec1f}.adm-callout-success{border-left-color:var(--color-success-500);background-color:var(--color-success-50);color:var(--color-success-700)}.adm-callout-success:where(.dark,.dark *){border-left-color:var(--color-success-500);color:var(--color-success-300);background-color:#12b76a1f}.adm-callout-warning{border-left-color:var(--color-warning-500);background-color:var(--color-warning-50);color:var(--color-warning-700)}.adm-callout-warning:where(.dark,.dark *){border-left-color:var(--color-warning-500);color:var(--color-warning-300);background-color:#f790091f}.adm-btn-ghost{color:var(--color-gray-600)}.adm-btn-ghost:hover:not(:disabled){background-color:var(--color-gray-100);color:var(--color-gray-800)}.adm-btn-ghost:where(.dark,.dark *){color:var(--color-gray-400)}.adm-btn-ghost:where(.dark,.dark *):hover:not(:disabled){color:var(--color-gray-200);background-color:#ffffff0d}.menu-item-inactive{color:var(--color-gray-700)}.menu-item-inactive:hover{background-color:var(--color-gray-100)}.menu-item-inactive:where(.dark,.dark *){color:var(--color-gray-300)}.menu-item-inactive:where(.dark,.dark *):hover{background-color:#ffffff0d}@media (width>=1024px){.adm-shell[data-sidebar=collapsed] [data-adminata-menu-rail]>.adm-menu>li>.menu-item-inactive[aria-expanded=true]{background-color:var(--color-gray-100)}.adm-shell[data-sidebar=collapsed] [data-adminata-menu-rail]>.adm-menu>li>.menu-item-inactive[aria-expanded=true]:where(.dark,.dark *){background-color:#ffffff0d}}.adm-badge-brand{background-color:var(--color-brand-50);color:var(--color-brand-600)}.adm-badge-brand:where(.dark,.dark *){color:var(--color-brand-400);background-color:#465fff26}.adm-badge-error{background-color:var(--color-error-50);color:var(--color-error-700)}.adm-badge-error:where(.dark,.dark *){color:var(--color-error-400);background-color:#f0443826}.adm-badge-info{background-color:var(--color-blue-light-50);color:var(--color-blue-light-700)}.adm-badge-info:where(.dark,.dark *){color:var(--color-blue-light-400);background-color:#0ba5ec26}.adm-badge-success{background-color:var(--color-success-50);color:var(--color-success-700)}.adm-badge-success:where(.dark,.dark *){color:var(--color-success-400);background-color:#12b76a26}.adm-badge-warning{background-color:var(--color-warning-50);color:var(--color-warning-700)}.adm-badge-warning:where(.dark,.dark *){color:var(--color-orange-400);background-color:#f7900926}.menu-dropdown-item-active{background-color:var(--color-brand-50);color:var(--color-brand-600)}.menu-dropdown-item-active:where(.dark,.dark *){color:var(--color-brand-400);background-color:#465fff1f}.menu-dropdown-item-inactive{color:var(--color-gray-500)}.menu-dropdown-item-inactive:hover{background-color:var(--color-gray-100);color:var(--color-gray-700)}.menu-dropdown-item-inactive:where(.dark,.dark *){color:var(--color-gray-400)}.menu-item-active{background-color:var(--color-brand-50);color:var(--color-brand-600)}.menu-item-active:where(.dark,.dark *){color:var(--color-brand-400);background-color:#465fff1f}.adm-btn-danger{background-color:var(--color-error-600);color:var(--color-white)}.adm-btn-danger:hover:not(:disabled){background-color:var(--color-error-700)}.adm-btn-primary{background-color:var(--color-brand-500);color:var(--color-white)}.adm-btn-primary:hover:not(:disabled){background-color:var(--color-brand-600)}.adm-btn-success{background-color:var(--color-success-700);color:var(--color-white)}.adm-btn-success:hover:not(:disabled){background-color:var(--color-success-800)}.adm-btn-warning{background-color:var(--color-warning-700);color:var(--color-white)}.adm-btn-warning:hover:not(:disabled){background-color:var(--color-warning-800)}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-white{background-color:var(--color-white)}.adm-card-flush{border-top:0;padding:0}.adm-content{padding:1rem}@media (width>=768px){.adm-content{padding:1.5rem}}.adm-dialog__body{padding:1.5rem}.p-0{padding:0}.p-0\.5{padding:calc(var(--spacing) * .5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-5{padding-block:calc(var(--spacing) * 5)}.text-center{text-align:center}.text-right{text-align:right}.adm-icon-enum__label{font-size:var(--text-theme-sm);line-height:var(--text-theme-sm--line-height)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-theme-sm{font-size:var(--text-theme-sm);line-height:var(--tw-leading,var(--text-theme-sm--line-height))}.text-theme-xs{font-size:var(--text-theme-xs);line-height:var(--tw-leading,var(--text-theme-xs--line-height))}.adm-card-title{color:var(--color-gray-800);font-size:1rem;font-weight:500}.adm-card-title:where(.dark,.dark *){color:#ffffffe6}.adm-card-success .adm-card-title{color:var(--color-success-700)}.adm-card-error .adm-card-title{color:var(--color-error-700)}.adm-card-warning .adm-card-title{color:var(--color-warning-700)}.adm-card-info .adm-card-title{color:var(--color-blue-light-700)}.adm-card-success .adm-card-title:where(.dark,.dark *){color:var(--color-success-300)}.adm-card-error .adm-card-title:where(.dark,.dark *){color:var(--color-error-300)}.adm-card-warning .adm-card-title:where(.dark,.dark *){color:var(--color-warning-300)}.adm-card-info .adm-card-title:where(.dark,.dark *){color:var(--color-blue-light-300)}.adm-page-title{color:var(--color-gray-800);font-size:1.25rem;font-weight:600}.adm-page-title:where(.dark,.dark *){color:#ffffffe6}.adm-list-legend__term{text-transform:uppercase;letter-spacing:.02em;font-weight:500}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.adm-btn-icon-delete{color:var(--color-error-500)}.adm-btn-icon-edit{color:var(--color-brand-500)}.adm-btn-icon-history{color:var(--color-gray-500)}.adm-btn-icon-show{color:var(--color-blue-light-500)}.adm-tab-errors{color:var(--color-error-500)}.text-gray-500{color:var(--color-gray-500)}.text-gray-700{color:var(--color-gray-700)}.text-gray-800{color:var(--color-gray-800)}.text-gray-900{color:var(--color-gray-900)}.uppercase{text-transform:uppercase}.italic{font-style:italic}.underline{text-decoration-line:underline}.shadow-theme-xs{--tw-shadow:0px 1px 2px 0px var(--tw-shadow-color,#1018280d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}@media (hover:hover){.hover\:text-gray-700:hover{color:var(--color-gray-700)}}@media (width>=640px){.sm\:col-span-1{grid-column:span 1/span 1}.sm\:col-span-2{grid-column:span 2/span 2}.sm\:col-span-3{grid-column:span 3/span 3}.sm\:col-span-4{grid-column:span 4/span 4}.sm\:col-span-5{grid-column:span 5/span 5}.sm\:col-span-6{grid-column:span 6/span 6}.sm\:col-span-7{grid-column:span 7/span 7}.sm\:col-span-8{grid-column:span 8/span 8}.sm\:col-span-9{grid-column:span 9/span 9}.sm\:col-span-10{grid-column:span 10/span 10}.sm\:col-span-11{grid-column:span 11/span 11}.sm\:col-span-12{grid-column:span 12/span 12}.sm\:col-start-2{grid-column-start:2}.sm\:col-start-3{grid-column-start:3}.sm\:col-start-4{grid-column-start:4}.sm\:col-start-5{grid-column-start:5}.sm\:col-start-6{grid-column-start:6}.sm\:col-start-7{grid-column-start:7}.sm\:col-start-8{grid-column-start:8}.sm\:col-start-9{grid-column-start:9}.sm\:col-start-10{grid-column-start:10}.sm\:col-start-11{grid-column-start:11}.sm\:col-start-12{grid-column-start:12}.sm\:block{display:block}.sm\:hidden{display:none}}@media (width>=768px){.md\:col-span-1{grid-column:span 1/span 1}.md\:col-span-2{grid-column:span 2/span 2}.md\:col-span-3{grid-column:span 3/span 3}.md\:col-span-4{grid-column:span 4/span 4}.md\:col-span-5{grid-column:span 5/span 5}.md\:col-span-6{grid-column:span 6/span 6}.md\:col-span-7{grid-column:span 7/span 7}.md\:col-span-8{grid-column:span 8/span 8}.md\:col-span-9{grid-column:span 9/span 9}.md\:col-span-10{grid-column:span 10/span 10}.md\:col-span-11{grid-column:span 11/span 11}.md\:col-span-12{grid-column:span 12/span 12}.md\:col-start-2{grid-column-start:2}.md\:col-start-3{grid-column-start:3}.md\:col-start-4{grid-column-start:4}.md\:col-start-5{grid-column-start:5}.md\:col-start-6{grid-column-start:6}.md\:col-start-7{grid-column-start:7}.md\:col-start-8{grid-column-start:8}.md\:col-start-9{grid-column-start:9}.md\:col-start-10{grid-column-start:10}.md\:col-start-11{grid-column-start:11}.md\:col-start-12{grid-column-start:12}.md\:mb-6{margin-bottom:calc(var(--spacing) * 6)}.md\:block{display:block}.md\:hidden{display:none}.md\:gap-6{gap:calc(var(--spacing) * 6)}.md\:pt-2\.5{padding-top:calc(var(--spacing) * 2.5)}}@media (width>=1024px){.lg\:col-span-1{grid-column:span 1/span 1}.lg\:col-span-2{grid-column:span 2/span 2}.lg\:col-span-3{grid-column:span 3/span 3}.lg\:col-span-4{grid-column:span 4/span 4}.lg\:col-span-5{grid-column:span 5/span 5}.lg\:col-span-6{grid-column:span 6/span 6}.lg\:col-span-7{grid-column:span 7/span 7}.lg\:col-span-8{grid-column:span 8/span 8}.lg\:col-span-9{grid-column:span 9/span 9}.lg\:col-span-10{grid-column:span 10/span 10}.lg\:col-span-11{grid-column:span 11/span 11}.lg\:col-span-12{grid-column:span 12/span 12}.lg\:col-start-2{grid-column-start:2}.lg\:col-start-3{grid-column-start:3}.lg\:col-start-4{grid-column-start:4}.lg\:col-start-5{grid-column-start:5}.lg\:col-start-6{grid-column-start:6}.lg\:col-start-7{grid-column-start:7}.lg\:col-start-8{grid-column-start:8}.lg\:col-start-9{grid-column-start:9}.lg\:col-start-10{grid-column-start:10}.lg\:col-start-11{grid-column-start:11}.lg\:col-start-12{grid-column-start:12}.lg\:block{display:block}.lg\:hidden{display:none}.lg\:inline-flex{display:inline-flex}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=1280px){.xl\:col-span-1{grid-column:span 1/span 1}.xl\:col-span-2{grid-column:span 2/span 2}.xl\:col-span-3{grid-column:span 3/span 3}.xl\:col-span-4{grid-column:span 4/span 4}.xl\:col-span-5{grid-column:span 5/span 5}.xl\:col-span-6{grid-column:span 6/span 6}.xl\:col-span-7{grid-column:span 7/span 7}.xl\:col-span-8{grid-column:span 8/span 8}.xl\:col-span-9{grid-column:span 9/span 9}.xl\:col-span-10{grid-column:span 10/span 10}.xl\:col-span-11{grid-column:span 11/span 11}.xl\:col-span-12{grid-column:span 12/span 12}.xl\:col-start-2{grid-column-start:2}.xl\:col-start-3{grid-column-start:3}.xl\:col-start-4{grid-column-start:4}.xl\:col-start-5{grid-column-start:5}.xl\:col-start-6{grid-column-start:6}.xl\:col-start-7{grid-column-start:7}.xl\:col-start-8{grid-column-start:8}.xl\:col-start-9{grid-column-start:9}.xl\:col-start-10{grid-column-start:10}.xl\:col-start-11{grid-column-start:11}.xl\:col-start-12{grid-column-start:12}.xl\:w-\[430px\]{width:430px}.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}.dark\:hidden:where(.dark,.dark *){display:none}.dark\:inline-block:where(.dark,.dark *){display:inline-block}:where(.dark\:divide-gray-800:where(.dark,.dark *)>:not(:last-child)){border-color:var(--color-gray-800)}.dark\:border-error-500\/30:where(.dark,.dark *){border-color:#f044384d}@supports (color:color-mix(in lab, red, red)){.dark\:border-error-500\/30:where(.dark,.dark *){border-color:color-mix(in oklab, var(--color-error-500) 30%, transparent)}}.dark\:bg-gray-800:where(.dark,.dark *){background-color:var(--color-gray-800)}.dark\:bg-gray-900:where(.dark,.dark *){background-color:var(--color-gray-900)}.dark\:bg-white\/\[0\.03\]:where(.dark,.dark *){background-color:#ffffff08}@supports (color:color-mix(in lab, red, red)){.dark\:bg-white\/\[0\.03\]:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-white) 3%, transparent)}}.dark\:text-gray-300:where(.dark,.dark *){color:var(--color-gray-300)}.dark\:text-gray-400:where(.dark,.dark *){color:var(--color-gray-400)}.dark\:text-white:where(.dark,.dark *){color:var(--color-white)}.dark\:text-white\/90:where(.dark,.dark *){color:#ffffffe6}@supports (color:color-mix(in lab, red, red)){.dark\:text-white\/90:where(.dark,.dark *){color:color-mix(in oklab, var(--color-white) 90%, transparent)}}@media (hover:hover){.dark\:hover\:text-gray-200:where(.dark,.dark *):hover{color:var(--color-gray-200)}}}:root{--adm-control-h:2.75rem;--adm-control-px:1rem;--adm-control-py:.625rem;--adm-cell-px:1rem;--adm-cell-py:.75rem;--adm-card-p:1.5rem;--adm-sidebar-w:290px;--adm-sidebar-collapsed-w:90px;--adm-header-h:4rem}html[data-density=compact]{--adm-control-h:2.25rem;--adm-control-px:.75rem;--adm-control-py:.375rem;--adm-cell-px:.75rem;--adm-cell-py:.5rem;--adm-card-p:1rem;--adm-header-h:3.25rem}html.no-js [data-requires-js]{display:none}@font-face{font-family:Outfit Variable;font-style:normal;font-weight:100 900;font-display:swap;src:url(./fonts/outfit-latin-wght-normal.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Outfit Variable;font-style:normal;font-weight:100 900;font-display:swap;src:url(./fonts/outfit-latin-ext-wght-normal.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false} diff --git a/src/Resources/views/Form/form_admin_fields.html.twig b/src/Resources/views/Form/form_admin_fields.html.twig index 049ee062f..bd26bc571 100644 --- a/src/Resources/views/Form/form_admin_fields.html.twig +++ b/src/Resources/views/Form/form_admin_fields.html.twig @@ -21,7 +21,8 @@ file that was distributed with this source code. `attr` — `data-controller` included — reaches the page untouched. Five variables let a caller add to the recipes without overriding a block: - `row_class`, `label_class`, `widget_class`, `help_class` and `error_item_class`. + `row_class`, `label_class`, `widget_class`, `help_class` and `error_item_class`. The help's + own look is the `help_style` form option (`plain` or `box`), not a block override either. #} {% extends 'form_div_layout.html.twig' %} @@ -43,10 +44,15 @@ file that was distributed with this source code. {% set translation_domain = adminata_admin_translation_domain %} {% endif %} {% if help is not empty %} - {# `parent()` is what keeps `help_html` rendering as markup. #} + {# `help_style` (Form\Extension\HelpStyleTypeExtension, inherited from the parent form, + `adminata.options.help_style` at the top): `box` draws the help as a lighter box in + the form's own text size instead of `adm-help`'s small line. The hook + `adminata-field-help` is the same in both. `parent()` is what keeps `help_html` + rendering as markup. #} {% set help_attr = help_attr|merge({class: [ help_attr.class|default(''), - 'adm-help adminata-field-help', + 'box' == help_style|default('plain') ? 'adm-help-box' : 'adm-help', + 'adminata-field-help', help_class|default(''), ]|filter(part => part is not empty)|join(' ')}) %} {{ parent() }} diff --git a/tests-adminata/Contract/config-reference/adminata.yaml b/tests-adminata/Contract/config-reference/adminata.yaml index b66a5bfa4..829ddf648 100644 --- a/tests-adminata/Contract/config-reference/adminata.yaml +++ b/tests-adminata/Contract/config-reference/adminata.yaml @@ -96,6 +96,9 @@ adminata: # Open the object when a list row is clicked, using the route named by default_admin_route list_row_link: true + # How a form field's help is drawn: plain, a small line under the control, or box, a lighter box in the form's text size; a form or a field picks its own with the help_style form option + help_style: plain # One of "plain"; "box" + # Offer sign-out in the toolbar above the sidebar menu, behind a firewall that configures a logout; it asks before it signs out sidebar_logout: true diff --git a/tests/AdminataConfigurationTest.php b/tests/AdminataConfigurationTest.php index fee2807a2..05e2b14b6 100644 --- a/tests/AdminataConfigurationTest.php +++ b/tests/AdminataConfigurationTest.php @@ -30,6 +30,7 @@ protected function setUp(): void 'default_translation_domain' => 'AdminataBundle', 'dropdown_number_groups_per_colums' => 2, 'form_type' => 'standard', + 'help_style' => 'plain', 'html5_validate' => true, 'javascripts' => [], 'js_debug' => false, diff --git a/tests/DependencyInjection/AdminataExtensionTest.php b/tests/DependencyInjection/AdminataExtensionTest.php index c2f312d15..2d2a53fc7 100644 --- a/tests/DependencyInjection/AdminataExtensionTest.php +++ b/tests/DependencyInjection/AdminataExtensionTest.php @@ -25,6 +25,7 @@ use IDCT\Adminata\Doctrine\Mapper\ORM\DoctrineORMMapper; use IDCT\Adminata\Filter\FilterFactoryInterface; use IDCT\Adminata\Filter\Persister\FilterPersisterInterface; +use IDCT\Adminata\Form\Extension\HelpStyleTypeExtension; use IDCT\Adminata\Model\AuditManagerInterface; use IDCT\Adminata\Model\AuditReaderInterface; use IDCT\Adminata\Model\ModelManagerInterface; @@ -32,6 +33,7 @@ use Matthias\SymfonyDependencyInjectionTest\PhpUnit\AbstractExtensionTestCase; use Symfony\Component\Config\Definition\Exception\InvalidConfigurationException; use Symfony\Component\Config\Definition\Processor; +use Symfony\Component\Form\Extension\Core\Type\FormType; /** * @phpstan-import-type AdminataConfig from Configuration @@ -82,6 +84,24 @@ public function testNotHasServiceDefinitionForLockExtension(): void self::assertContainerBuilderNotHasService('adminata.admin.lock.extension'); } + /** + * The `help_style` form option is every form's, and a form at the top that names none takes + * `options.help_style`, plain unless the application says otherwise. + */ + public function testTheHelpStyleExtensionTakesItsDefaultFromTheOptions(): void + { + $this->container->setParameter('kernel.bundles', []); + $this->load(); + self::assertContainerBuilderHasService('adminata.admin.form.extension.help_style', HelpStyleTypeExtension::class); + self::assertContainerBuilderHasServiceDefinitionWithArgument('adminata.admin.form.extension.help_style', 0, 'plain'); + self::assertContainerBuilderHasServiceDefinitionWithTag('adminata.admin.form.extension.help_style', 'form.type_extension', [ + 'extended_type' => FormType::class, + ]); + + $this->load(['options' => ['help_style' => 'box']]); + self::assertContainerBuilderHasServiceDefinitionWithArgument('adminata.admin.form.extension.help_style', 0, 'box'); + } + /** * The exporter is part of this bundle, so the bridge to it is wired unconditionally: no * separate bundle has to be registered for "adminata.admin.admin_exporter" to exist. diff --git a/tests/DependencyInjection/ConfigurationTest.php b/tests/DependencyInjection/ConfigurationTest.php index b176476f6..3a35f339f 100644 --- a/tests/DependencyInjection/ConfigurationTest.php +++ b/tests/DependencyInjection/ConfigurationTest.php @@ -16,6 +16,7 @@ use IDCT\Adminata\DependencyInjection\Configuration; use IDCT\Adminata\Tests\Fixtures\Controller\FooAdminController; use PHPUnit\Framework\TestCase; +use Symfony\Component\Config\Definition\Exception\InvalidConfigurationException; use Symfony\Component\Config\Definition\Exception\InvalidTypeException; use Symfony\Component\Config\Definition\Processor; @@ -36,6 +37,20 @@ public function testOptions(): void static::assertSame('AdminataBundle', $config['options']['default_label_catalogue']); static::assertNull($config['options']['default_translation_domain']); static::assertSame('fas fa-folder', $config['options']['default_icon']); + static::assertSame('plain', $config['options']['help_style']); + } + + public function testHelpStyleIsPlainOrBox(): void + { + $config = $this->process([['options' => ['help_style' => 'box']]]); + + static::assertIsArray($config['options']); + static::assertSame('box', $config['options']['help_style']); + + $this->expectException(InvalidConfigurationException::class); + $this->expectExceptionMessage('"side" is not allowed for path "adminata.options.help_style"'); + + $this->process([['options' => ['help_style' => 'side']]]); } public function testBreadcrumbsChildRouteDefaultsToShow(): void diff --git a/tests/Form/AbstractLayoutTestCase.php b/tests/Form/AbstractLayoutTestCase.php index 9106eba63..b3d6d2107 100644 --- a/tests/Form/AbstractLayoutTestCase.php +++ b/tests/Form/AbstractLayoutTestCase.php @@ -14,6 +14,7 @@ namespace IDCT\Adminata\Tests\Form; use IDCT\Adminata\Form\Extension\Field\Type\FormTypeFieldExtension; +use IDCT\Adminata\Form\Extension\HelpStyleTypeExtension; use IDCT\Adminata\Tests\Fixtures\StubTranslator; use Symfony\Bridge\Twig\Extension\FormExtension; use Symfony\Bridge\Twig\Extension\HttpKernelExtension; @@ -22,6 +23,7 @@ use Symfony\Bridge\Twig\Form\TwigRendererEngine; use Symfony\Component\Form\FormRenderer; use Symfony\Component\Form\FormRendererInterface; +use Symfony\Component\Form\FormTypeExtensionInterface; use Symfony\Component\Form\FormView; use Symfony\Component\Form\Test\FormIntegrationTestCase; use Symfony\Component\Routing\Generator\UrlGeneratorInterface; @@ -111,7 +113,7 @@ final protected function assertMatchesXpath(string $html, string $expression, in } /** - * @return FormTypeFieldExtension[] + * @return FormTypeExtensionInterface[] */ protected function getTypeExtensions(): array { @@ -119,6 +121,7 @@ protected function getTypeExtensions(): array new FormTypeFieldExtension([], [ 'form_type' => 'horizontal', ]), + new HelpStyleTypeExtension(), ]; } diff --git a/tests/Form/AdminLayoutTest.php b/tests/Form/AdminLayoutTest.php index 6b718165e..9f0ebfdcb 100644 --- a/tests/Form/AdminLayoutTest.php +++ b/tests/Form/AdminLayoutTest.php @@ -16,6 +16,8 @@ use IDCT\Adminata\Admin\AdminInterface; use IDCT\Adminata\FieldDescription\FieldDescriptionInterface; use PHPUnit\Framework\MockObject\Stub; +use Symfony\Component\Form\Extension\Core\Type\FormType; +use Symfony\Component\Form\Extension\Core\Type\TextareaType; use Symfony\Component\Form\Extension\Core\Type\TextType; use Symfony\Component\Form\FormError; @@ -117,6 +119,60 @@ public function testHelp(): void self::assertMatchesXpath($html, $expression); } + /** + * Case: `help_style: box` draws the help with `adm-help-box` instead of `adm-help`; the hook + * `adminata-field-help` and Symfony's `help-text` stay, and so does the help's place under the + * control. + */ + public function testHelpInABox(): void + { + $form = $this->factory->createNamed('name', TextType::class, null, [ + 'help' => 'Help text test!', + 'help_style' => 'box', + ]); + $html = $this->renderHelp($form->createView()); + + $expression = <<<'EOD' + /div + [@id="name_help"] + [@class="adm-help-box adminata-field-help help-text"] + [.="[trans]Help text test![/trans]"] + EOD; + + self::assertMatchesXpath($html, $expression); + } + + /** + * Case: a field without a style of its own takes its form's box; a help given as markup stays + * markup in the box, and a `help_class` passed to the row is kept beside the box's class. + */ + public function testAFormsBoxReachesItsFieldsRows(): void + { + $form = $this->factory->createNamedBuilder('settings', FormType::class, null, ['help_style' => 'box']) + ->add('template', TextareaType::class, [ + 'help' => 'Use {{ total }}.', + 'help_html' => true, + ]) + ->add('bare', TextType::class) + ->getForm(); + $view = $form->createView(); + + $html = $this->renderRow($view['template'], ['help_class' => 'extra']); + + $expression = <<<'EOD' + /div[@id="adminata-field-container-settings_template"] + //div[contains(@class, "adminata-field")] + /div + [@id="settings_template_help"] + [@class="adm-help-box adminata-field-help extra help-text"] + [./code[.="{{ total }}"]] + EOD; + + self::assertMatchesXpath($html, $expression); + static::assertStringNotContainsString('adm-help ', $html); + static::assertStringNotContainsString('adm-help-box', $this->renderRow($view['bare'])); + } + public function testHelpWithAdminTranslationDomain(): void { $fieldDescription = $this->createFieldDescriptionWithTranslationDomain('adminata_translation_domain'); diff --git a/tests/Form/Extension/HelpStyleTypeExtensionTest.php b/tests/Form/Extension/HelpStyleTypeExtensionTest.php new file mode 100644 index 000000000..138c52e32 --- /dev/null +++ b/tests/Form/Extension/HelpStyleTypeExtensionTest.php @@ -0,0 +1,143 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace IDCT\Adminata\Tests\Form\Extension; + +use IDCT\Adminata\Form\Extension\HelpStyleTypeExtension; +use PHPUnit\Framework\TestCase; +use Symfony\Component\Form\Extension\Core\Type\CollectionType; +use Symfony\Component\Form\Extension\Core\Type\FormType; +use Symfony\Component\Form\Extension\Core\Type\TextType; +use Symfony\Component\Form\FormFactoryInterface; +use Symfony\Component\Form\Forms; +use Symfony\Component\Form\FormView; +use Symfony\Component\OptionsResolver\Exception\InvalidOptionsException; + +/** + * `help_style` is set once, on the form at the top (an admin's `configureFormOptions()`), and every + * field, sub-form and collection entry under it follows unless it names its own. + */ +final class HelpStyleTypeExtensionTest extends TestCase +{ + public function testAFormThatNamesNoStyleTakesTheDefault(): void + { + $view = $this->form(new HelpStyleTypeExtension()); + + static::assertSame('plain', $view->vars['help_style']); + static::assertSame('plain', $this->child($view, 'name')->vars['help_style']); + static::assertSame('plain', $this->child($this->child($view, 'address'), 'city')->vars['help_style']); + + $view = $this->form(new HelpStyleTypeExtension('box')); + + static::assertSame('box', $view->vars['help_style']); + static::assertSame('box', $this->child($this->child($view, 'address'), 'city')->vars['help_style']); + } + + /** + * Case: the top form's style reaches its fields, a sub-form's fields, the entries of a + * collection and the collection's prototype, which is created inside the collection's own + * `buildView()`. + */ + public function testTheTopFormsStyleIsInheritedAllTheWayDown(): void + { + $view = $this->form(new HelpStyleTypeExtension(), ['help_style' => 'box']); + + static::assertSame('box', $view->vars['help_style']); + static::assertSame('box', $this->child($view, 'name')->vars['help_style']); + static::assertSame('box', $this->child($this->child($view, 'address'), 'city')->vars['help_style']); + + $tags = $this->child($view, 'tags'); + static::assertSame('box', $tags->vars['help_style']); + static::assertSame('box', $this->child($tags, '0')->vars['help_style']); + + $prototype = $tags->vars['prototype']; + static::assertInstanceOf(FormView::class, $prototype); + static::assertSame('box', $prototype->vars['help_style']); + } + + /** + * Case: a field or a sub-form naming its own style keeps it, and passes it on to what is + * under it, whichever way round the two styles are. + */ + public function testAFieldOrSubFormCanPickTheOtherStyle(): void + { + $view = $this->form(new HelpStyleTypeExtension('box'), [], ['help_style' => 'plain'], ['help_style' => 'plain']); + + static::assertSame('box', $view->vars['help_style']); + static::assertSame('plain', $this->child($view, 'name')->vars['help_style']); + static::assertSame('plain', $this->child($view, 'address')->vars['help_style']); + static::assertSame('plain', $this->child($this->child($view, 'address'), 'city')->vars['help_style']); + static::assertSame('box', $this->child($view, 'tags')->vars['help_style']); + + $view = $this->form(new HelpStyleTypeExtension(), [], ['help_style' => 'box']); + + static::assertSame('plain', $view->vars['help_style']); + static::assertSame('box', $this->child($view, 'name')->vars['help_style']); + static::assertSame('plain', $this->child($this->child($view, 'address'), 'city')->vars['help_style']); + } + + public function testAStyleItDoesNotKnowIsRejected(): void + { + $this->expectException(InvalidOptionsException::class); + + $this->factory(new HelpStyleTypeExtension())->create(TextType::class, null, ['help_style' => 'side']); + } + + public function testADefaultItDoesNotKnowIsRejected(): void + { + $this->expectException(\InvalidArgumentException::class); + $this->expectExceptionMessage('The default help style must be one of "plain", "box", got "side".'); + + new HelpStyleTypeExtension('side'); + } + + private function factory(HelpStyleTypeExtension $extension): FormFactoryInterface + { + return Forms::createFormFactoryBuilder() + ->addTypeExtension($extension) + ->getFormFactory(); + } + + /** + * A form with a field, a sub-form holding one, and a collection with one entry. + * + * @param array $formOptions + * @param array $nameOptions + * @param array $addressOptions + */ + private function form(HelpStyleTypeExtension $extension, array $formOptions = [], array $nameOptions = [], array $addressOptions = []): FormView + { + $factory = $this->factory($extension); + + $builder = $factory->createBuilder(FormType::class, ['tags' => ['new']], $formOptions) + ->add('name', TextType::class, $nameOptions + ['help' => 'The name.']) + ->add( + $factory->createNamedBuilder('address', FormType::class, null, $addressOptions) + ->add('city', TextType::class, ['help' => 'The city.']) + ) + ->add('tags', CollectionType::class, [ + 'entry_type' => TextType::class, + 'entry_options' => ['help' => 'A tag.'], + 'allow_add' => true, + ]); + + return $builder->getForm()->createView(); + } + + private function child(FormView $view, string $name): FormView + { + static::assertArrayHasKey($name, $view->children); + + return $view->children[$name]; + } +} diff --git a/tests/Twig/Extension/RenderElementExtensionTest.php b/tests/Twig/Extension/RenderElementExtensionTest.php index a1b1e7e34..6a69dda88 100644 --- a/tests/Twig/Extension/RenderElementExtensionTest.php +++ b/tests/Twig/Extension/RenderElementExtensionTest.php @@ -124,6 +124,7 @@ protected function setUp(): void 'default_translation_domain' => 'AdminataBundle', 'dropdown_number_groups_per_colums' => 2, 'form_type' => 'standard', + 'help_style' => 'plain', 'html5_validate' => true, 'javascripts' => [], 'js_debug' => false, diff --git a/tests/Twig/RenderElementRuntimeTest.php b/tests/Twig/RenderElementRuntimeTest.php index c02283115..8d6561452 100644 --- a/tests/Twig/RenderElementRuntimeTest.php +++ b/tests/Twig/RenderElementRuntimeTest.php @@ -115,6 +115,7 @@ protected function setUp(): void 'default_translation_domain' => 'AdminataBundle', 'dropdown_number_groups_per_colums' => 2, 'form_type' => 'standard', + 'help_style' => 'plain', 'html5_validate' => true, 'javascripts' => [], 'js_debug' => false,