From 39e66e7a593a620c32c1cb0114892d1c682182bf Mon Sep 17 00:00:00 2001 From: jx <jx@jvxiang.com> Date: Thu, 27 Jan 2022 11:35:45 +0800 Subject: [PATCH 1/9] =?UTF-8?q?=E5=A2=9E=E5=8A=A0Card=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/BootstrapBlazor.Shared/Locales/zh.json | 8 +++++++- src/BootstrapBlazor.Shared/Samples/Cards.razor | 16 ++++++++++++++++ .../Samples/Cards.razor.cs | 14 ++++++++++++++ 3 files changed, 37 insertions(+), 1 deletion(-) diff --git a/src/BootstrapBlazor.Shared/Locales/zh.json b/src/BootstrapBlazor.Shared/Locales/zh.json index aca72df3e..e38fc9385 100644 --- a/src/BootstrapBlazor.Shared/Locales/zh.json +++ b/src/BootstrapBlazor.Shared/Locales/zh.json @@ -1936,12 +1936,18 @@ "IsCenterIntro": "通过设置,<code>IsCenter=true</code> 使内容居中", "ColorTitle": "带有边框颜色的卡片", "ColorIntro": "通过设置,<code>Color</code> 使border和Body具有相应的颜色", + "CollapsibleTitle": "可以伸缩的卡片", + "CollapsibleIntro": "通过设置,<code>IsCollapsibleIntro=true</code> 使Body可以伸缩", + "ShadowTitle": "带有阴影的卡片", + "ShadowIntro": "通过设置,<code>IsShadow=true</code> Card带有阴影", "CardBody": "获得/设置 CardBody", "CardFooter": "获得/设置 CardFooter", "CardHeader": "获得/设置 CardHeader", "Class": "样式", "Color": "设置卡片边框颜色", - "IsCenter": "通过设置,IsCenter=true 使内容居中" + "IsCenter": "通过设置,IsCenter=true 使内容居中", + "IsCollapsible": "通过设置,IsCollapsibleIntro=true 使CardBody可以收缩", + "IsShadow": "通过设置,IsShadow=true 使Card 具有阴影" }, "BootstrapBlazor.Shared.Samples.Calendars": { "Title": "Calendar 日历框", diff --git a/src/BootstrapBlazor.Shared/Samples/Cards.razor b/src/BootstrapBlazor.Shared/Samples/Cards.razor index 87d7eeff9..97a9ef323 100644 --- a/src/BootstrapBlazor.Shared/Samples/Cards.razor +++ b/src/BootstrapBlazor.Shared/Samples/Cards.razor @@ -129,6 +129,22 @@ </div> </DemoBlock> +<DemoBlock Title="@Localizer["CollapsibleTitle"]" Introduction="@Localizer["CollapsibleIntro"]" Name="Collapsible"> + <Card IsCollapsible="true" HeaderText="@Localizer["CollapsibleTitle"]"> + <CardBody> + @Localizer["CollapsibleIntro"] + </CardBody> + </Card> +</DemoBlock> + +<DemoBlock Title="@Localizer["ShadowTitle"]" Introduction="@Localizer["ShadowIntro"]" Name="Collapsible"> + <Card IsShadow="true" HeaderText="@Localizer["ShadowTitle"]"> + <CardBody> + @Localizer["ShadowIntro"] + </CardBody> + </Card> +</DemoBlock> + <AttributeTable Items="GetAttributes()" /> diff --git a/src/BootstrapBlazor.Shared/Samples/Cards.razor.cs b/src/BootstrapBlazor.Shared/Samples/Cards.razor.cs index aea279cbe..c82ee6227 100644 --- a/src/BootstrapBlazor.Shared/Samples/Cards.razor.cs +++ b/src/BootstrapBlazor.Shared/Samples/Cards.razor.cs @@ -60,6 +60,20 @@ public sealed partial class Cards ValueList = "true / false", DefaultValue = "false" }, + new AttributeItem{ + Name = "IsCollapsible", + Description = Localizer["IsCollapsible"], + Type = "boolean", + ValueList = "true / false", + DefaultValue = "false" + }, + new AttributeItem{ + Name = "IsShadow", + Description = Localizer["IsShadow"], + Type = "boolean", + ValueList = "true / false", + DefaultValue = "false" + }, }; } -- Gitee From 23f2f53501955aa03996ff8777954996b63a56e8 Mon Sep 17 00:00:00 2001 From: jx <jx@jvxiang.com> Date: Sat, 29 Jan 2022 09:24:11 +0800 Subject: [PATCH 2/9] =?UTF-8?q?=E7=AC=AC=E4=B8=80=E4=B8=AA=E7=89=88?= =?UTF-8?q?=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Samples/DragDrops.razor | 16 + .../Samples/DragDrops.razor.cs | 31 ++ .../Components/DragDrap/DragDrop.css | 92 ++++ .../Components/DragDrap/DragDropService.cs | 56 +++ .../Components/DragDrap/Dropzone.razor | 36 ++ .../Components/DragDrap/Dropzone.razor.cs | 443 ++++++++++++++++++ ...tstrapBlazorServiceCollectionExtensions.cs | 7 +- 7 files changed, 678 insertions(+), 3 deletions(-) create mode 100644 src/BootstrapBlazor.Shared/Samples/DragDrops.razor create mode 100644 src/BootstrapBlazor.Shared/Samples/DragDrops.razor.cs create mode 100644 src/BootstrapBlazor/Components/DragDrap/DragDrop.css create mode 100644 src/BootstrapBlazor/Components/DragDrap/DragDropService.cs create mode 100644 src/BootstrapBlazor/Components/DragDrap/Dropzone.razor create mode 100644 src/BootstrapBlazor/Components/DragDrap/Dropzone.razor.cs diff --git a/src/BootstrapBlazor.Shared/Samples/DragDrops.razor b/src/BootstrapBlazor.Shared/Samples/DragDrops.razor new file mode 100644 index 000000000..5be63efa7 --- /dev/null +++ b/src/BootstrapBlazor.Shared/Samples/DragDrops.razor @@ -0,0 +1,16 @@ +@page "/dragdrops" + +<h3>DragDrop 拖拽</h3> + +<h4>用于拖拽使用</h4> + +<DemoBlock Title="基本用法" Introduction="简单拖拽" Name="Normal"> + <Row ItemsPerRow="ItemsPerRow.Two"> + <Dropzone TItem="Foo" Items="@Foos1"> + <span>@context.Address</span> + </Dropzone> + <Dropzone TItem="Foo" Items="@Foos2"> + <span>@context.Address</span> + </Dropzone> + </Row> +</DemoBlock> diff --git a/src/BootstrapBlazor.Shared/Samples/DragDrops.razor.cs b/src/BootstrapBlazor.Shared/Samples/DragDrops.razor.cs new file mode 100644 index 000000000..86dafabc6 --- /dev/null +++ b/src/BootstrapBlazor.Shared/Samples/DragDrops.razor.cs @@ -0,0 +1,31 @@ +// Copyright (c) Argo Zhang (argo@163.com). All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +// Website: https://www.blazor.zone or https://argozhang.github.io/ + +using System.Collections.Generic; + +namespace BootstrapBlazor.Shared.Samples; + +/// <summary> +/// +/// </summary> +public partial class DragDrops +{ + private List<Foo> Foos1 { get; set; } + + private List<Foo> Foos2 { get; set; } + + protected override void OnInitialized() + { + base.OnInitialized(); + Foos1 = new List<Foo>() + { + new Foo() { Address = "1" }, new Foo() { Address = "2" }, new Foo() { Address = "3" }, + }; + Foos2 = new List<Foo>() + { + new Foo() { Address = "4" }, new Foo() { Address = "5" }, new Foo() { Address = "6" }, + }; + + } +} diff --git a/src/BootstrapBlazor/Components/DragDrap/DragDrop.css b/src/BootstrapBlazor/Components/DragDrap/DragDrop.css new file mode 100644 index 000000000..4796b93ac --- /dev/null +++ b/src/BootstrapBlazor/Components/DragDrap/DragDrop.css @@ -0,0 +1,92 @@ +/*add this to avoid flickering*/ +.bb-dd-inprogess > * { + pointer-events: none; +} + +/*dropzone style style*/ +.bb-dd-dropzone { + min-height: 50px; +} + +/*drag drop styles*/ + +.bb-dd-spacing { + height: 10px; +} + +.bb-dd-spacing-dragged-over { + padding: 25px; +} + +.bb-dd-dragged-over { + background-color: lightgray; + opacity: 0.6; + animation: blinker 1s linear infinite; +} + +.bb-dd-dragged-over > div { + background-color: lightgray; + opacity: 0.6; + animation: blinker 1s linear infinite; +} + +.bb-dd-dragged-over-denied { + background-color: red; + opacity: 0.6; + animation: blinker 1s linear infinite; +} + +.bb-dd-in-transit { + opacity: 0; +} + +.bb-dd-in-transit > div { + opacity: 0; +} + +@keyframes blinker { + 50% { + opacity: 0; + } +} + +.blink_me { + animation: blinker 1s linear infinite; +} + +/*for flex demo*/ + +.bb-flex .bb-dd-spacing { + width: 20px; + height: auto; +} + +.bb-flex .bb-dd-dragged-over { + background-color: lightgray; + opacity: 0.6; + animation: blinker 1s linear infinite; +} + +.bb-flex .bb-dd-dragged-over > div { + background-color: lightgray; + opacity: 0.9; + animation: blinker 1s linear infinite; +} + +.bb-flex .bb-dd-in-transit { + background-color: orangered; +} + +.bb-flex .bb-dd-in-transit > div { + background-color: orangered; +} + +.bb-dd-noselect { + -webkit-touch-callout: none; /* iOS Safari */ + -webkit-user-select: none; /* Safari */ + -khtml-user-select: none; /* Konqueror HTML */ + -moz-user-select: none; /* Old versions of Firefox */ + -ms-user-select: none; /* Internet Explorer/Edge */ + user-select: none; /* Non-prefixed version, currently + supported by Chrome, Edge, Opera and Firefox */ +} diff --git a/src/BootstrapBlazor/Components/DragDrap/DragDropService.cs b/src/BootstrapBlazor/Components/DragDrap/DragDropService.cs new file mode 100644 index 000000000..ee88b9cff --- /dev/null +++ b/src/BootstrapBlazor/Components/DragDrap/DragDropService.cs @@ -0,0 +1,56 @@ +// Copyright (c) Argo Zhang (argo@163.com). All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +// Website: https://www.blazor.zone or https://argozhang.github.io/ + +using System; +using System.Collections.Generic; + +namespace BootstrapBlazor.Components; + +/// <summary> +/// 拖拽服务 +/// </summary> +/// <typeparam name="T"></typeparam> +internal class DragDropService<T> +{ + /// <summary> + /// 活动的Item + /// </summary> + public T? ActiveItem { get; set; } + + /// <summary> + /// 悬停的项目 + /// </summary> + public T? DragTargetItem { get; set; } + + /// <summary> + /// 被拖拽的Items + /// </summary> + public IList<T>? Items { get; set; } + + /// <summary> + /// 活动的Id + /// </summary> + public int? ActiveSpacerId { get; set; } + + /// <summary> + /// 是否需要重新渲染 + /// </summary> + public bool ShouldRender { get; set; } = true; + + /// <summary> + /// 通知刷新 + /// </summary> + public EventHandler? StateHasChanged { get; set; } + + public void Reset() + { + ShouldRender = true; + ActiveItem = default; + ActiveSpacerId = null; + Items = null; + DragTargetItem = default; + + StateHasChanged?.Invoke(this, EventArgs.Empty); + } +} diff --git a/src/BootstrapBlazor/Components/DragDrap/Dropzone.razor b/src/BootstrapBlazor/Components/DragDrap/Dropzone.razor new file mode 100644 index 000000000..e12765496 --- /dev/null +++ b/src/BootstrapBlazor/Components/DragDrap/Dropzone.razor @@ -0,0 +1,36 @@ +@typeparam TItem +@inherits BootstrapComponentBase + +@namespace BootstrapBlazor.Components + +<div @attributes="@AdditionalAttributes" class="@ClassName" + @ondragover:preventDefault @ondragover="() => {}" + @ondragenter:preventDefault @ondragenter="() => {}" + @ondrop:preventDefault @ondrop="@OnDrop" + ondragstart="event.dataTransfer.setData('text', event.target.id);" + @ondrop:stopPropagation + @ondragenter:stopPropagation + @ondragend:stopPropagation + @ondragover:stopPropagation + @ondragleave:stopPropagation + @ondragstart:stopPropagation> + + <div @ondrop="()=>OnDropItemOnSpacing(0)" @ondrop:stopPropagation @ondragenter="()=>DragDropService.ActiveSpacerId = 0" @ondragleave="()=>DragDropService.ActiveSpacerId = null" class="@GetClassesForSpacing(0)"></div> + + @foreach (var item in Items) + { + <div draggable="@IsItemDragable(item)" + @ondragstart="() => OnDragStart(item)" + @ondragend="@OnDragEnd" + @ondragenter="() => OnDragEnter(item)" + @ondragleave="@OnDragLeave" + class="@GetItemClass(item) @ItemClass"> + @ChildContent?.Invoke(item) + </div> + + @if (MaxItems is null or > 1) + { + <div @ondrop="()=>OnDropItemOnSpacing(Items.IndexOf(item)+1)" @ondrop:stopPropagation @ondragenter="()=>DragDropService.ActiveSpacerId = Items.IndexOf(item)+1" @ondragleave="()=>DragDropService.ActiveSpacerId = null" class="@ItemClass @GetClassesForSpacing(Items.IndexOf(item)+1)"></div> + } + } +</div> diff --git a/src/BootstrapBlazor/Components/DragDrap/Dropzone.razor.cs b/src/BootstrapBlazor/Components/DragDrap/Dropzone.razor.cs new file mode 100644 index 000000000..f6c96f293 --- /dev/null +++ b/src/BootstrapBlazor/Components/DragDrap/Dropzone.razor.cs @@ -0,0 +1,443 @@ +// Copyright (c) Argo Zhang (argo@163.com). All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +// Website: https://www.blazor.zone or https://argozhang.github.io/ + +using Microsoft.AspNetCore.Components; +using Microsoft.AspNetCore.Components.Web; +using System; +using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; +using System.Text; + +namespace BootstrapBlazor.Components; + +/// <summary> +/// 拖拽容器 +/// </summary> +/// <typeparam name="TItem"></typeparam> +public partial class Dropzone<TItem> : BootstrapComponentBase +{ + /// <summary> + /// 获取/设置 拖拽列表 + /// </summary> + [Parameter] + [NotNull] + public IList<TItem>? Items { get; set; } + + /// <summary> + /// 获取/设置 最大数量,Null为不限制 + /// </summary> + [Parameter] + public int? MaxItems { get; set; } + + /// <summary> + /// 立即交换元素,默认为false,即当drop的时候才交换 + /// </summary> + [Parameter] + public bool InstantReplace { get; set; } = false; + + /// <summary> + /// 子组件 + /// </summary> + [Parameter] + public RenderFragment<TItem>? ChildContent { get; set; } + + /// <summary> + /// 每个Item的特殊class + /// </summary> + [Parameter] + public Func<TItem, string>? ItemWrapperClass { get; set; } + + /// <summary> + /// 复制内容 + /// </summary> + [Parameter] + public Func<TItem, TItem>? CopyItem { get; set; } + + /// <summary> + /// 是否允许拖拽释放 + /// </summary> + [Parameter] + public Func<TItem?, TItem?, bool>? Accepts { get; set; } + + /// <summary> + /// 当拖拽因为数量超限被禁止时调用 + /// </summary> + [Parameter] + public EventCallback<TItem>? OnItemDropRejectedByMaxItemLimit { get; set; } + + /// <summary> + /// 当拖拽被禁止时调用 + /// </summary> + [Parameter] + public EventCallback<TItem>? OnItemDropRejected { get; set; } + + /// <summary> + /// 返回被替换的Item + /// </summary> + [Parameter] + public EventCallback<TItem>? OnReplacedItemDrop { get; set; } + + /// <summary> + /// 返回替换的Item + /// </summary> + [Parameter] + public EventCallback<TItem>? OnItemDrop { get; set; } + + /// <summary> + /// 当前节点是否允许被拖拽 + /// </summary> + [Parameter] + public Func<TItem, bool>? AllowsDrag { get; set; } + + /// <summary> + /// 拖拽结束时触发 + /// </summary> + [Parameter] + public Action<TItem>? DragEnd { get; set; } + + /// <summary> + /// service + /// </summary> + [Inject] + [NotNull] + private DragDropService<TItem>? DragDropService { get; set; } + + /// <summary> + /// 获得 拖拽容器样式集合 + /// </summary> + /// <returns></returns> + protected string? ClassName => CssBuilder.Default("bb-dd-dropzone").Build(); + + + private string? ItemClass => + CssBuilder.Default("").AddClass("bb-dd-inprogess", DragDropService.ActiveItem != null).Build(); + + private string GetItemClass(TItem item) + { + var builder = new StringBuilder(); + builder.Append("bb-dd-draggable"); + if (ItemWrapperClass != null) + { + builder.Append($" {ItemWrapperClass(item)}"); + } + + var activeItem = DragDropService.ActiveItem; + if (activeItem == null || item == null) + { + return builder.ToString(); + } + + if (item.Equals(activeItem)) + { + builder.Append(" bb-dd-in-transit no-pointer-events"); + } + + if (!item.Equals(activeItem) && item.Equals(DragDropService.DragTargetItem)) + { + builder.Append(IsItemAccepted(DragDropService.DragTargetItem) + ? " bb-dd-dragged-over" + : " bb-dd-dragged-over-denied"); + } + + if (AllowsDrag != null && !AllowsDrag(item)) + { + builder.Append(" bb-dd-noselect"); + } + + return builder.ToString(); + } + + private string GetClassesForSpacing(int spacerId) + { + var builder = new StringBuilder(); + builder.Append("bb-dd-spacing"); + if (DragDropService.ActiveItem == null) + { + return builder.ToString(); + } + //if active space id and item is from another dropzone -> always create insert space + if (DragDropService.ActiveSpacerId == spacerId && Items.IndexOf(DragDropService.ActiveItem) == -1) + { + builder.Append(" bb-dd-spacing-dragged-over"); + } // else -> check if active space id and that it is an item that needs space + else if (DragDropService.ActiveSpacerId == spacerId && (spacerId != Items.IndexOf(DragDropService.ActiveItem)) && (spacerId != Items.IndexOf(DragDropService.ActiveItem) + 1)) + { + builder.Append(" bb-dd-spacing-dragged-over"); + } + + return builder.ToString(); + } + + private string IsItemDragable(TItem item) + { + if (AllowsDrag == null) + return "true"; + if (item == null) + return "false"; + return AllowsDrag(item).ToString(); + } + + private bool IsDropAllowed() + { + if (!IsValidItem()) + { + return false; + } + + var activeItem = DragDropService.ActiveItem; + + if (IsMaxItemLimitReached()) + { + OnItemDropRejectedByMaxItemLimit?.InvokeAsync(activeItem); + return false; + } + + if (IsItemAccepted(activeItem)) + { + OnItemDropRejected?.InvokeAsync(activeItem); + return false; + } + + return true; + } + + private bool IsItemAccepted(TItem? dragTargetItem) + { + if (Accepts == null) + return true; + return Accepts(DragDropService.ActiveItem, dragTargetItem); + } + + private bool IsMaxItemLimitReached() + { + var activeItem = DragDropService.ActiveItem; + if (activeItem == null) + { + return false; + } + return (!Items.Contains(activeItem) && MaxItems.HasValue && MaxItems == Items.Count); + } + + private bool IsValidItem() + { + return DragDropService.ActiveItem != null; + } + + private void OnDropItemOnSpacing(int newIndex) + { + if (!IsDropAllowed()) + { + DragDropService.Reset(); + return; + } + + var activeItem = DragDropService.ActiveItem; + if (activeItem == null) + { + DragDropService.Reset(); + return; + } + var oldIndex = Items.IndexOf(activeItem); + // 当从其他地方拖过来并且当前以达到最大限制,放弃 + if (IsMaxItemLimitReached()) + { + DragDropService.Reset(); + return; + } + var sameDropZone = false; + if (oldIndex == -1) // item not present in target dropzone + { + if (CopyItem == null) + { + DragDropService.Items?.Remove(activeItem); + } + } + else // same dropzone drop + { + sameDropZone = true; + Items.RemoveAt(oldIndex); + // the actual index could have shifted due to the removal + if (newIndex > oldIndex) + newIndex--; + } + + if (CopyItem == null) + { + Items.Insert(newIndex, activeItem); + } + else + { + // for the same zone - do not call CopyItem + Items.Insert(newIndex, sameDropZone ? activeItem : CopyItem(activeItem)); + } + + //Operation is finished + DragDropService.Reset(); + OnItemDrop?.InvokeAsync(activeItem); + } + + private void OnDragStart(TItem item) + { + DragDropService.ShouldRender = true; + DragDropService.ActiveItem = item; + DragDropService.Items = Items; + StateHasChanged(); + DragDropService.ShouldRender = false; + } + + private void OnDragEnd() + { + if (DragDropService.ActiveItem == null) + { + return; + } + + DragEnd?.Invoke(DragDropService.ActiveItem); + + //DragDropService.Reset(); + } + + private void OnDragEnter(TItem item) + { + if (item == null) + { + return; + } + var activeItem = DragDropService.ActiveItem; + if (activeItem == null) + { + return; + } + if (item.Equals(activeItem)) + return; + if (!IsValidItem()) + return; + if (IsMaxItemLimitReached()) + return; + if (!IsItemAccepted(item)) + return; + DragDropService.DragTargetItem = item; + if (InstantReplace) + { + Swap(DragDropService.DragTargetItem, activeItem); + } + + DragDropService.ShouldRender = true; + StateHasChanged(); + DragDropService.ShouldRender = false; + } + + private void OnDragLeave() + { + DragDropService.DragTargetItem = default; + DragDropService.ShouldRender = true; + StateHasChanged(); + DragDropService.ShouldRender = false; + } + + private void OnDrop() + { + DragDropService.ShouldRender = true; + if (!IsDropAllowed()) + { + DragDropService.Reset(); + return; + } + + var activeItem = DragDropService.ActiveItem; + if (activeItem == null) + { + return; + } + + // 如果没有释放在Item上,则添加到最后 + if (DragDropService.DragTargetItem == null) + { + // 当从其他位置拖拽过来的时候 + if (!Items.Contains(activeItem)) + { + if (CopyItem == null) + { + Items.Insert(Items.Count, activeItem); + DragDropService.Items?.Remove(activeItem); + } + else + { + Items.Insert(Items.Count, CopyItem(activeItem)); + } + } + } + else + { + if (!Items.Contains(activeItem) && CopyItem != null) + { + if (!InstantReplace) + { + Swap(DragDropService.DragTargetItem, CopyItem(activeItem)); + } + } + else + { + if (!InstantReplace) + { + Swap(DragDropService.DragTargetItem, activeItem); + } + } + } + + DragDropService.Reset(); + StateHasChanged(); + OnItemDrop?.InvokeAsync(activeItem); + } + + private void Swap(TItem draggedOverItem, TItem activeItem) + { + var indexDraggedOverItem = Items.IndexOf(draggedOverItem); + var indexActiveItem = Items.IndexOf(activeItem); + if (indexActiveItem == -1) // item is new to the dropzone + { + //insert into new zone + Items.Insert(indexDraggedOverItem + 1, activeItem); + //remove from old zone + DragDropService.Items?.Remove(activeItem); + } + else if (InstantReplace) //swap the items + { + if (indexDraggedOverItem == indexActiveItem) + return; + (Items[indexDraggedOverItem], Items[indexActiveItem]) = (Items[indexActiveItem], Items[indexDraggedOverItem]); + OnReplacedItemDrop?.InvokeAsync(Items[indexActiveItem]); + } + else //no instant replace, just insert it after + { + if (indexDraggedOverItem == indexActiveItem) + return; + var tmp = Items[indexActiveItem]; + Items.RemoveAt(indexActiveItem); + Items.Insert(indexDraggedOverItem, tmp); + } + } + + /// <summary> + /// + /// </summary> + protected override void OnInitialized() + { + base.OnInitialized(); + DragDropService.StateHasChanged += ForceRender; + } + + /// <summary> + /// + /// </summary> + public void Dispose() + { + DragDropService.StateHasChanged -= ForceRender; + } + + private void ForceRender(object? sender, EventArgs e) + { + StateHasChanged(); + } +} diff --git a/src/BootstrapBlazor/Extensions/BootstrapBlazorServiceCollectionExtensions.cs b/src/BootstrapBlazor/Extensions/BootstrapBlazorServiceCollectionExtensions.cs index a5654b3b5..14bb1ca91 100644 --- a/src/BootstrapBlazor/Extensions/BootstrapBlazorServiceCollectionExtensions.cs +++ b/src/BootstrapBlazor/Extensions/BootstrapBlazorServiceCollectionExtensions.cs @@ -49,6 +49,7 @@ public static class BootstrapBlazorServiceCollectionExtensions services.TryAddScoped<DownloadService>(); services.TryAddScoped<WebClientService>(); services.TryAddScoped<AjaxService>(); + services.TryAddScoped(typeof(DragDropService<>)); services.TryAddSingleton<IConfigureOptions<BootstrapBlazorOptions>, ConfigureOptions<BootstrapBlazorOptions>>(); services.ConfigureBootstrapBlazorOption(configureOptions); @@ -59,7 +60,7 @@ public static class BootstrapBlazorServiceCollectionExtensions } /// <summary> - /// + /// /// </summary> /// <param name="services"></param> /// <param name="locatorAction"></param> @@ -71,7 +72,7 @@ public static class BootstrapBlazorServiceCollectionExtensions } /// <summary> - /// + /// /// </summary> /// <param name="services"></param> /// <param name="options"></param> @@ -94,7 +95,7 @@ public static class BootstrapBlazorServiceCollectionExtensions } /// <summary> - /// + /// /// </summary> /// <param name="services"></param> /// <param name="localizationAction"></param> -- Gitee From 62e003abc52eac6e4ab861cea85271a154a72919 Mon Sep 17 00:00:00 2001 From: jx <jx@jvxiang.com> Date: Sat, 29 Jan 2022 22:47:50 +0800 Subject: [PATCH 3/9] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E4=B8=80=E4=BA=9Bbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Samples/DragDrops.razor | 74 +++++++++- .../Samples/DragDrops.razor.cs | 34 ++++- .../Components/DragDrap/DragDropService.cs | 14 +- .../Components/DragDrap/Dropzone.razor.cs | 137 +++++------------- .../css/bootstrap.blazor.bundle.min.css | 2 +- 5 files changed, 146 insertions(+), 115 deletions(-) diff --git a/src/BootstrapBlazor.Shared/Samples/DragDrops.razor b/src/BootstrapBlazor.Shared/Samples/DragDrops.razor index 5be63efa7..561354f63 100644 --- a/src/BootstrapBlazor.Shared/Samples/DragDrops.razor +++ b/src/BootstrapBlazor.Shared/Samples/DragDrops.razor @@ -6,11 +6,77 @@ <DemoBlock Title="基本用法" Introduction="简单拖拽" Name="Normal"> <Row ItemsPerRow="ItemsPerRow.Two"> - <Dropzone TItem="Foo" Items="@Foos1"> - <span>@context.Address</span> + <Dropzone TItem="string" Items="@StrList1"> + <Card IsShadow="true"> + <CardBody> + @context + </CardBody> + </Card> </Dropzone> - <Dropzone TItem="Foo" Items="@Foos2"> - <span>@context.Address</span> + <Dropzone TItem="string" Items="@StrList2"> + <Card IsShadow="true"> + <CardBody> + @context + </CardBody> + </Card> </Dropzone> </Row> </DemoBlock> + +<DemoBlock Title="复制到新容器" Introduction="使用<code>CopyItem</code>复制一份新的到新位置" Name="Normal"> + <Row ItemsPerRow="ItemsPerRow.Two"> + <Dropzone TItem="string" Items="@StrList1"> + <Card IsShadow="true"> + <CardBody> + @context + </CardBody> + </Card> + </Dropzone> + <Dropzone TItem="string" Items="@StrList2" CopyItem="s => new string(s)"> + <Card IsShadow="true"> + <CardBody> + @context + </CardBody> + </Card> + </Dropzone> + </Row> +</DemoBlock> + +<DemoBlock Title="限制拖入的内容" Introduction="使用<code>Accepts</code>只允许左侧拖入10并且使用<code>AllowsDrag</code>限制2不能被拖动,使用<code>MaxItems</code>限制右侧最多拥有6个节点" Name="Normal"> + <Row ItemsPerRow="ItemsPerRow.Two"> + <Dropzone TItem="string" Items="@StrList1" Accepts="@((s, s1) => s == "10")" AllowsDrag="@(s => s != "2")"> + <Card IsShadow="true"> + <CardBody> + @context + </CardBody> + </Card> + </Dropzone> + <Dropzone TItem="string" Items="@StrList2" MaxItems="6"> + <Card IsShadow="true"> + <CardBody> + @context + </CardBody> + </Card> + </Dropzone> + </Row> +</DemoBlock> + +<DemoBlock Title="各种事件" Introduction="当拖入数量超限时<code>OnItemDropRejectedByMaxItemLimit</code>,当拖拽被禁止时<code>OnItemDropRejected</code>,返回底下的Item<code>OnReplacedItemDrop</code>,返回放下的Item<code>OnItemDrop</code>" Name="Normal"> + <Row ItemsPerRow="ItemsPerRow.Two"> + <Dropzone TItem="string" Items="@StrList1" Accepts="@((s, s1) => s == "10")" OnItemDropRejected="@OnItemDropRejected" > + <Card IsShadow="true"> + <CardBody> + @context + </CardBody> + </Card> + </Dropzone> + <Dropzone TItem="string" Items="@StrList2" MaxItems="6"> + <Card IsShadow="true"> + <CardBody> + @context + </CardBody> + </Card> + </Dropzone> + </Row> + <BlockLogger @ref="Trace" class="mt-3" /> +</DemoBlock> diff --git a/src/BootstrapBlazor.Shared/Samples/DragDrops.razor.cs b/src/BootstrapBlazor.Shared/Samples/DragDrops.razor.cs index 86dafabc6..4c955d2db 100644 --- a/src/BootstrapBlazor.Shared/Samples/DragDrops.razor.cs +++ b/src/BootstrapBlazor.Shared/Samples/DragDrops.razor.cs @@ -2,7 +2,9 @@ // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. // Website: https://www.blazor.zone or https://argozhang.github.io/ +using BootstrapBlazor.Shared.Components; using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; namespace BootstrapBlazor.Shared.Samples; @@ -11,21 +13,41 @@ namespace BootstrapBlazor.Shared.Samples; /// </summary> public partial class DragDrops { - private List<Foo> Foos1 { get; set; } + [NotNull] + private List<string>? StrList1 { get; set; } - private List<Foo> Foos2 { get; set; } + [NotNull] + private List<string>? StrList2 { get; set; } + + [NotNull] + private BlockLogger? Trace { get; set; } protected override void OnInitialized() { base.OnInitialized(); - Foos1 = new List<Foo>() + StrList1 = new List<string>() { - new Foo() { Address = "1" }, new Foo() { Address = "2" }, new Foo() { Address = "3" }, + "1", "2", "3", "4", "5" }; - Foos2 = new List<Foo>() + StrList2 = new List<string>() { - new Foo() { Address = "4" }, new Foo() { Address = "5" }, new Foo() { Address = "6" }, + "6", "7", "8", "9", "10" }; } + + private void OnReplacedItemDrop(string item) + { + + } + + private void OnItemDrop(string item) + { + + } + + private void OnItemDropRejected(string item) + { + Trace?.Log($"{item}被拒绝"); + } } diff --git a/src/BootstrapBlazor/Components/DragDrap/DragDropService.cs b/src/BootstrapBlazor/Components/DragDrap/DragDropService.cs index ee88b9cff..ccc4cb550 100644 --- a/src/BootstrapBlazor/Components/DragDrap/DragDropService.cs +++ b/src/BootstrapBlazor/Components/DragDrap/DragDropService.cs @@ -34,9 +34,9 @@ internal class DragDropService<T> public int? ActiveSpacerId { get; set; } /// <summary> - /// 是否需要重新渲染 + /// 之前的位置 /// </summary> - public bool ShouldRender { get; set; } = true; + public int? OldIndex { get; set; } /// <summary> /// 通知刷新 @@ -45,7 +45,15 @@ internal class DragDropService<T> public void Reset() { - ShouldRender = true; + if (OldIndex is >= 0 && Items != null && ActiveItem != null) + { + Items.Insert(OldIndex.Value, ActiveItem); + } + Commit(); + } + + public void Commit() + { ActiveItem = default; ActiveSpacerId = null; Items = null; diff --git a/src/BootstrapBlazor/Components/DragDrap/Dropzone.razor.cs b/src/BootstrapBlazor/Components/DragDrap/Dropzone.razor.cs index f6c96f293..d4e5b6b52 100644 --- a/src/BootstrapBlazor/Components/DragDrap/Dropzone.razor.cs +++ b/src/BootstrapBlazor/Components/DragDrap/Dropzone.razor.cs @@ -30,12 +30,6 @@ public partial class Dropzone<TItem> : BootstrapComponentBase [Parameter] public int? MaxItems { get; set; } - /// <summary> - /// 立即交换元素,默认为false,即当drop的时候才交换 - /// </summary> - [Parameter] - public bool InstantReplace { get; set; } = false; - /// <summary> /// 子组件 /// </summary> @@ -70,19 +64,19 @@ public partial class Dropzone<TItem> : BootstrapComponentBase /// 当拖拽被禁止时调用 /// </summary> [Parameter] - public EventCallback<TItem>? OnItemDropRejected { get; set; } + public EventCallback<TItem> OnItemDropRejected { get; set; } /// <summary> /// 返回被替换的Item /// </summary> [Parameter] - public EventCallback<TItem>? OnReplacedItemDrop { get; set; } + public EventCallback<TItem> OnReplacedItemDrop { get; set; } /// <summary> - /// 返回替换的Item + /// 返回放下的Item /// </summary> [Parameter] - public EventCallback<TItem>? OnItemDrop { get; set; } + public EventCallback<TItem> OnItemDrop { get; set; } /// <summary> /// 当前节点是否允许被拖拽 @@ -90,12 +84,6 @@ public partial class Dropzone<TItem> : BootstrapComponentBase [Parameter] public Func<TItem, bool>? AllowsDrag { get; set; } - /// <summary> - /// 拖拽结束时触发 - /// </summary> - [Parameter] - public Action<TItem>? DragEnd { get; set; } - /// <summary> /// service /// </summary> @@ -130,7 +118,7 @@ public partial class Dropzone<TItem> : BootstrapComponentBase if (item.Equals(activeItem)) { - builder.Append(" bb-dd-in-transit no-pointer-events"); + builder.Append(" no-pointer-events"); } if (!item.Equals(activeItem) && item.Equals(DragDropService.DragTargetItem)) @@ -193,9 +181,9 @@ public partial class Dropzone<TItem> : BootstrapComponentBase return false; } - if (IsItemAccepted(activeItem)) + if (!IsItemAccepted(activeItem)) { - OnItemDropRejected?.InvokeAsync(activeItem); + OnItemDropRejected.InvokeAsync(activeItem); return false; } @@ -238,64 +226,46 @@ public partial class Dropzone<TItem> : BootstrapComponentBase DragDropService.Reset(); return; } - var oldIndex = Items.IndexOf(activeItem); // 当从其他地方拖过来并且当前以达到最大限制,放弃 if (IsMaxItemLimitReached()) { DragDropService.Reset(); return; } - var sameDropZone = false; - if (oldIndex == -1) // item not present in target dropzone - { - if (CopyItem == null) - { - DragDropService.Items?.Remove(activeItem); - } - } - else // same dropzone drop - { - sameDropZone = true; - Items.RemoveAt(oldIndex); - // the actual index could have shifted due to the removal - if (newIndex > oldIndex) - newIndex--; - } + bool sameDropZone = Equals(DragDropService.Items, Items); - if (CopyItem == null) + if (CopyItem == null || sameDropZone) { Items.Insert(newIndex, activeItem); + DragDropService.Commit(); } else { // for the same zone - do not call CopyItem - Items.Insert(newIndex, sameDropZone ? activeItem : CopyItem(activeItem)); + Items.Insert(newIndex, CopyItem(activeItem)); + DragDropService.Reset(); } //Operation is finished - DragDropService.Reset(); - OnItemDrop?.InvokeAsync(activeItem); + OnItemDrop.InvokeAsync(activeItem); } private void OnDragStart(TItem item) { - DragDropService.ShouldRender = true; + DragDropService.OldIndex = Items.IndexOf(item); + Items.Remove(item); DragDropService.ActiveItem = item; DragDropService.Items = Items; StateHasChanged(); - DragDropService.ShouldRender = false; } private void OnDragEnd() { - if (DragDropService.ActiveItem == null) + if (DragDropService.Items != null && DragDropService.OldIndex != null && DragDropService.ActiveItem != null) { - return; + DragDropService.Items.Insert(DragDropService.OldIndex.Value, DragDropService.ActiveItem); + StateHasChanged(); } - - DragEnd?.Invoke(DragDropService.ActiveItem); - - //DragDropService.Reset(); } private void OnDragEnter(TItem item) @@ -318,27 +288,18 @@ public partial class Dropzone<TItem> : BootstrapComponentBase if (!IsItemAccepted(item)) return; DragDropService.DragTargetItem = item; - if (InstantReplace) - { - Swap(DragDropService.DragTargetItem, activeItem); - } - DragDropService.ShouldRender = true; StateHasChanged(); - DragDropService.ShouldRender = false; } private void OnDragLeave() { DragDropService.DragTargetItem = default; - DragDropService.ShouldRender = true; StateHasChanged(); - DragDropService.ShouldRender = false; } private void OnDrop() { - DragDropService.ShouldRender = true; if (!IsDropAllowed()) { DragDropService.Reset(); @@ -355,68 +316,42 @@ public partial class Dropzone<TItem> : BootstrapComponentBase if (DragDropService.DragTargetItem == null) { // 当从其他位置拖拽过来的时候 - if (!Items.Contains(activeItem)) + if (!Equals(DragDropService.Items, Items) && CopyItem != null) + { + Items.Insert(Items.Count, CopyItem(activeItem)); + DragDropService.Reset(); + } + else { - if (CopyItem == null) - { - Items.Insert(Items.Count, activeItem); - DragDropService.Items?.Remove(activeItem); - } - else - { - Items.Insert(Items.Count, CopyItem(activeItem)); - } + Items.Insert(Items.Count, activeItem); + DragDropService.Commit(); } } else { - if (!Items.Contains(activeItem) && CopyItem != null) + if (!Equals(DragDropService.Items, Items) && CopyItem != null) { - if (!InstantReplace) - { - Swap(DragDropService.DragTargetItem, CopyItem(activeItem)); - } + Swap(DragDropService.DragTargetItem, CopyItem(activeItem)); + DragDropService.Reset(); } else { - if (!InstantReplace) - { - Swap(DragDropService.DragTargetItem, activeItem); - } + Swap(DragDropService.DragTargetItem, activeItem); + DragDropService.Commit(); } + + OnReplacedItemDrop.InvokeAsync(DragDropService.DragTargetItem); } - DragDropService.Reset(); StateHasChanged(); - OnItemDrop?.InvokeAsync(activeItem); + OnItemDrop.InvokeAsync(activeItem); } private void Swap(TItem draggedOverItem, TItem activeItem) { var indexDraggedOverItem = Items.IndexOf(draggedOverItem); - var indexActiveItem = Items.IndexOf(activeItem); - if (indexActiveItem == -1) // item is new to the dropzone - { - //insert into new zone - Items.Insert(indexDraggedOverItem + 1, activeItem); - //remove from old zone - DragDropService.Items?.Remove(activeItem); - } - else if (InstantReplace) //swap the items - { - if (indexDraggedOverItem == indexActiveItem) - return; - (Items[indexDraggedOverItem], Items[indexActiveItem]) = (Items[indexActiveItem], Items[indexDraggedOverItem]); - OnReplacedItemDrop?.InvokeAsync(Items[indexActiveItem]); - } - else //no instant replace, just insert it after - { - if (indexDraggedOverItem == indexActiveItem) - return; - var tmp = Items[indexActiveItem]; - Items.RemoveAt(indexActiveItem); - Items.Insert(indexDraggedOverItem, tmp); - } + //insert into new zone + Items.Insert(indexDraggedOverItem + 1, activeItem); } /// <summary> diff --git a/src/BootstrapBlazor/wwwroot/css/bootstrap.blazor.bundle.min.css b/src/BootstrapBlazor/wwwroot/css/bootstrap.blazor.bundle.min.css index 097406471..474a22ad1 100644 --- a/src/BootstrapBlazor/wwwroot/css/bootstrap.blazor.bundle.min.css +++ b/src/BootstrapBlazor/wwwroot/css/bootstrap.blazor.bundle.min.css @@ -19,4 +19,4 @@ * Copyright 2020-2021 The Longbow Argo (argo@163.com) * Licensed under MIT (https://github.com/dotnetcore/BootstrapBlazor/blob/main/LICENSE) */ -:root{--bs-border-radius:.25rem;--bs-bg-disabled:#ebeef5;--bs-border-color:#ebeef5}#components-reconnect-modal{z-index:2000 !important}:fullscreen{background-color:#fff}body,.form-control,.dropdown-menu,.form-select,.btn:not(.btn-xs):not(.btn-sm):not(.btn-md):not(.btn-lg):not(.btn-xl),.input-group-text{font-size:.875rem}.btn-close:focus{box-shadow:none}:focus,button:focus{outline:none}a{cursor:pointer}a,a:hover,a:focus{text-decoration:none;outline:none}.form-control.is-invalid,.was-validated .form-control:invalid,.form-control.is-valid,.was-validated .form-control:valid,.form-control.valid.modified:not([type=checkbox]){outline:none}.form-control.is-display{height:35px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.table-cell .form-control.is-display,form .form-control.is-display{background-color:var(--bs-bg-disabled)}[disabled],:disabled,.disabled,.disabled>*{cursor:not-allowed !important}.form-control:focus{border-color:#66afe9;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.control-label{margin-right:10px;width:90px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;display:block}.was-validated .form-control:invalid:focus,.form-control.is-invalid:focus,.was-validated .custom-select:invalid:focus,.custom-select.is-invalid:focus{border-color:#dc3545;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(220,53,69,.6)}.was-validated .form-control:valid:focus,.form-control.is-valid:focus,.was-validated .custom-select:valid:focus,.custom-select.is-valid:focus{border-color:#28a745;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(40,167,69,.6)}.arrow-primary{border-color:transparent transparent #0d6efd}.arrow-success{border-color:transparent transparent #198754}.arrow-info{border-color:transparent transparent #0dcaf0}.arrow-warning{border-color:transparent transparent #ffc107}.arrow-danger{border-color:transparent transparent #dc3545}.show .shadow-primary,.shadow-primary:hover,.shadow-primary:focus{box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(0,123,255,.5);border-color:#0d6efd !important}.show .shadow-success,.shadow-success:hover,.shadow-success:focus{box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(40,167,69,.5);border-color:#198754 !important}.show .shadow-info,.shadow-info:hover,.shadow-info:focus{box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(23,162,184,.5);border-color:#0dcaf0 !important}.show .shadow-warning,.shadow-warning:hover,.shadow-warning:focus{box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(255,193,7,.5);border-color:#ffc107 !important}.show .shadow-danger,.shadow-danger:hover,.shadow-danger:focus{box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(220,53,69,.5);border:1px solid #dc3545 !important}.show .shadow-secondary,.shadow-secondary:hover,.shadow-secondary:focus{box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px #c0c4cc;border:1px solid #6c757d !important}.show .shadow-dark,.shadow-dark:hover,.shadow-dark:focus{box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px #c0c4cc;border:1px solid #343a40 !important}.show .shadow-default,.shadow-default:hover,.shadow-default:focus{box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);border:1px solid #337ab7}.swal{position:fixed;z-index:1070}.swal .modal-header{display:none}.swal2-icon,.swal2-actions{display:flex}.swal2-actions{margin-bottom:1rem}.close{display:flex}.captcha{border-radius:4px;box-shadow:0 0 10px rgba(0,0,0,.125)}.captcha-refresh{float:right;cursor:pointer;padding-left:.5rem}.captcha-body{position:relative}.captcha-body .captcha-load{display:flex;align-items:center;justify-content:center}.captcha-body .captcha-body-bg,.captcha-body .captcha-body-bar{position:absolute;border-radius:2px;top:0;left:0}.captcha-footer{text-align:center;background:#f7f9fa;color:#45494c;border-radius:2px;margin-top:.5rem;position:relative}.captcha-footer,.captcha-bar-bg{line-height:40px;height:40px}.captcha-bar-bg{position:absolute;border-radius:4px}.captcha-bar{position:absolute;top:0;left:0;width:40px;height:40px;background:#fff;box-shadow:0 0 3px rgba(0,0,0,.3);cursor:pointer;border-radius:2px;display:flex;align-items:center;justify-content:center}.captcha-footer.is-move .captcha-bar-text{display:none}.captcha-footer.is-move .captcha-bar-bg{border:1px solid #1991fa;background-color:#d1e9fe}.captcha-footer.is-valid .captcha-bar .fa-arrow-right:before{content:""}.captcha-footer.is-invalid .captcha-bar{border:1px solid #f57a7a;background-color:#f57a7a}.captcha-footer.is-invalid .captcha-bar-bg{border:1px solid #f57a7a;background-color:#fce1e1;border-width:1px 0 1px 1px}.captcha-footer.is-invalid .captcha-bar .fa-arrow-right:before{content:""}.captcha-footer.is-valid .captcha-bar{border:1px solid #52ccba;background-color:#52ccba}.captcha-footer.is-valid .captcha-bar-bg{border:1px solid #52ccba;border-width:1px 0 1px 1px;background-color:#d2f4ef}.captcha-footer.is-valid .captcha-bar .fa-arrow-right:before{content:""}.avatar{border-radius:4px;width:50px;height:50px;overflow:hidden;display:inline-flex;justify-content:center;align-items:center;background:#c0c4cc;color:#fff}.avatar img{width:100%;object-fit:cover}.avatar.is-circle{border-radius:50%}.avatar.is-xl{width:70px;height:70px}.avatar.is-lg{width:60px;height:60px}.avatar.is-sm{width:40px;height:40px}.avatar.is-xs{width:30px;height:30px}.avatar i{font-size:1.4rem}.timeline{margin:0;padding:0;list-style:none}.timeline .time-line-item{position:relative;padding-bottom:1rem}.timeline .time-line-item:last-child{padding-bottom:0}.timeline .time-line-item .time-line-item-tail{position:absolute;left:4px;height:100%;border-left:2px solid #e4e7ed}.timeline .time-line-item:last-child .time-line-item-tail{display:none}.timeline .timeline-item-node-normal{left:-1px;width:12px;height:12px}.timeline .timeline-item-node{position:absolute;background-color:#e4e7ed;border-radius:50%;display:flex;justify-content:center;align-items:center}.timeline .timeline-item-node.is-icon{background-color:transparent}.timeline .timeline-item-wrapper{position:relative;padding-left:1.5rem;top:-4px}.timeline .timeline-item-content{color:#303133}.timeline .timeline-item-timestamp{margin-top:.5rem;color:#909399}.timeline.is-alternate .time-line-item-tail,.timeline.is-alternate .timeline-item-node{left:50%}.timeline.is-alternate .timeline-item-node{margin-left:-5px}.timeline.is-alternate .time-line-item:nth-child(odd) .timeline-item-wrapper{left:calc(50% - 5px);width:calc(50% - 1rem);text-align:left}.timeline.is-alternate .time-line-item:nth-child(even) .timeline-item-wrapper{width:calc(50% - 1rem);margin:0;text-align:right}.timeline.is-left .time-line-item-tail,.timeline.is-left .timeline-item-node{left:100%}.timeline.is-left .timeline-item-node{margin-left:-5px}.timeline.is-left .time-line-item .timeline-item-wrapper{width:calc(100% - 1rem);margin:0;text-align:right}.footer{background:#5b6e84;color:#fff;padding:10px 4px;height:40px;display:flex}.footer .footer-text{flex:1 1 auto;text-align:center}.circle{display:inline-block;position:relative}.circle-progress{transition:stroke-dashoffset .3s linear}.circle-primary{stroke:#1593ff}.circle-danger{stroke:#dc3545}.circle-success{stroke:#28a745}.circle-warning{stroke:#ffc107}.circle-info{stroke:#17a2b8}.circle-secondary{stroke:#6c757d}.circle-dark{stroke:#343a40}.circle-title{display:flex;justify-content:center;align-items:center;position:absolute;top:0;bottom:0;left:0;right:0}.input-number-fix::-webkit-outer-spin-button,.input-number-fix::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;-moz-appearance:textfield}@media(min-width:576px){.row.form-inline textarea.form-control{width:calc(100% - 100px)}}.ef-loading{display:flex;justify-content:center;align-items:center;border:1px solid #ddd;border-radius:4px;padding:2rem}form .form-label:before{content:"";position:relative;top:2px;margin-right:2px;display:inline-block;min-width:5px}form .form-label[required]:before{content:"*";color:#f00}.form-control.is-valid[type="number"],.form-control.is-invalid[type="number"]{padding-right:.75rem;background-image:none}.transfer-panel-empty{position:absolute;top:35%;width:100%}.pulse{position:relative}.pulse.pulse-white .pulse-ring{border-color:#fff}.pulse.pulse-light .pulse-ring{border-color:#f5f8fa}.pulse.pulse-primary .pulse-ring{border-color:#009ef7}.pulse.pulse-secondary .pulse-ring{border-color:#e4e6ef}.pulse.pulse-success .pulse-ring{border-color:#50cd89}.pulse.pulse-info .pulse-ring{border-color:#7239ea}.pulse.pulse-warning .pulse-ring{border-color:#ffc700}.pulse.pulse-danger .pulse-ring{border-color:#f1416c}.pulse.pulse-dark .pulse-ring{border-color:#181c32}.pulse-ring{display:block;border-radius:40px;height:40px;width:40px;position:absolute;animation:animation-pulse 3.5s ease-out;animation-iteration-count:infinite;opacity:0;border-width:3px;border-style:solid;border-color:#a1a5b7}@keyframes animation-pulse{0%{-webkit-transform:scale(.1,.1);opacity:0}60%{-webkit-transform:scale(.1,.1);opacity:0}65%{opacity:1}100%{-webkit-transform:scale(1.2,1.2);opacity:0}}.fs-on,.fs-open .fs{display:none}.fs-open .fs-on{display:block}.arrow-danger{border-color:transparent transparent var(--bs-danger)}.arrow-success{border-color:transparent transparent var(--bs-success)}.arrow-primary{border-color:transparent transparent var(--bs-primary)}.arrow-warning{border-color:transparent transparent var(--bs-warning)}.arrow-info{border-color:transparent transparent var(--bs-info)}.alert i{margin-right:.5rem}.alert .btn-close{position:absolute;top:22px;right:1rem;height:4px;width:4px}.alert.is-close .alert-content{margin-right:1rem}.alert.is-bar.alert-info{border-left:4px solid var(--bs-info);background-color:#ecf8ff}.alert.is-bar.alert-success{border-left:4px solid var(--bs-success);background-color:#c3e6cb}.alert.is-bar.alert-primary{border-left:4px solid var(--bs-primary);background-color:#daeafc}.alert.is-bar.alert-warning{border-left:4px solid var(--bs-warning);background-color:#fffcf2}.alert.is-bar.alert-danger{border-left:4px solid var(--bs-danger);background-color:#faeaec}.anchor-link{cursor:pointer;display:inline-block}.anchor-link>i{opacity:0;margin-left:.5rem;color:var(--bs-primary);transition:opacity .3s linear}.anchor-link:hover>i{opacity:1}.auto-complete{position:relative}.auto-complete input{padding-right:30px}.auto-complete .select-dropdown{position:absolute;top:40px;left:0;right:0;display:none;z-index:2}.auto-complete .select-dropdown .dropdown-list{max-height:300px;overflow:auto;padding:6px 0;list-style:none;margin:0;background-color:#fff;box-shadow:0 2px 8px rgba(0,0,0,.176);border:1px solid rgba(0,0,0,.15);border-radius:var(--bs-border-radius)}.auto-complete .select-dropdown .dropdown-list .dropdown-item{padding:6px 20px}.auto-complete.is-complete .select-dropdown{display:block}.auto-complete .fa-spin{position:absolute;top:10.5px;right:8px;display:none}.auto-complete.is-loading .fa-spin{display:inline-block}.search .auto-complete .fa-spin{position:unset;display:inline-block}.scanner .scanner-video video{width:300px;height:170px;border:1px solid #ddd;border-radius:var(--bs-border-radius)}.scanner .scanner-image{display:none}.btn:focus,.btn:active:focus,.show>.dropdown-toggle:focus{box-shadow:none !important}.btn-xs,.btn-group-xs>.btn{border-radius:.2rem;padding:.0625rem .3125rem;font-size:.75rem}.btn-xl,.btn-group-xl>.btn{padding:.8rem 1.25rem;font-size:1.35rem;border-radius:.4rem}.btn .badge,.btn i+span,.badge i+span{margin-left:4px}.btn.is-circle{border-radius:50%;width:45px;height:45px}.btn.is-round{border-radius:20px}.btn-block{width:100%}.calendar-header{display:flex;justify-content:space-between;padding:12px 20px;border-bottom:1px solid var(--bs-border-color)}.calendar-title{color:#000;align-self:center;font-size:1rem}.calendar-button-group .btn{line-height:1;white-space:nowrap;cursor:pointer;background:#fff;border:1px solid #dcdfe6;color:#606266;outline:none;margin:0;transition:.3s;padding:7px 15px;font-size:12px}.calendar-button-group .btn:focus,.calendar-button-group .btn:hover{color:#409eff;border-color:#c6e2ff;background-color:#ecf5ff}.calendar-button-group .btn:active{color:#3a8ee6;border-color:#3a8ee6;outline:none}.calendar-table{table-layout:fixed;width:100%}.calendar-table thead th{padding:12px 0;color:#606266;font-weight:400;text-align:center}.calendar-table:not(.is-range) td.next,.calendar-table:not(.is-range) td.prev{color:#c0c4cc}.calendar-table tr td:first-child{border-left:1px solid var(--bs-border-color)}.calendar-table tr:first-child td{border-top:1px solid var(--bs-border-color)}.calendar-table td{border-bottom:1px solid var(--bs-border-color);border-right:1px solid var(--bs-border-color);vertical-align:top;transition:background-color .2s ease;cursor:pointer}.calendar-table td.is-today{color:#409eff}.calendar-table td.is-selected{color:#1989fa}.calendar-table td.is-selected{background-color:#f2f8fe}.calendar-table .calendar-day{box-sizing:border-box;padding:8px;height:85px}.calendar-table .calendar-day:hover{cursor:pointer;background-color:#f2f8fe}.calendar-table:not(.is-range) td.next,.calendar-table:not(.is-range) td.prev{color:#c0c4cc}.calendar .table-week .week-header{border-radius:50%;border:1px solid transparent;padding:4px;display:inline-block;min-width:52px}.calendar .table-week .week-header.is-today{border:1px solid #409eff;color:#409eff}.calendar .table-week thead tr:last-child{border-bottom:2px solid #dee2e6}.calendar .table-week tbody tr{text-align:center}.calendar .table-week tbody td{padding:1rem 0;border-right:0;border-left:0;position:relative}.camera .camera-header{width:300px;height:170px;border:1px solid #ddd;border-radius:var(--bs-border-radius)}.camera canvas{display:none}.card .card-collapse{flex:1;display:flex;align-items:center;cursor:pointer}.card .card-title{margin:0 0 0 1rem}.card .card-collapse-arrow{transition:transform .3s linear}.card .is-open .card-collapse-arrow{transform:rotate(90deg)}.card-shadow{transition:box-shadow .3s linear;box-shadow:0 0 8px 0 #e8edfa99,0 2px 4px 0 #e8edfa80}.card-shadow:hover{box-shadow:0 1px 7px 0 #0000000d,0 2px 8px 0 #00000012,0 3px 9px 0 #0000000f,0 5px 10px 0 #00000008}.card-header .tag{line-height:21px}.carousel{overflow:hidden}.carousel [data-bs-slide]{outline:none;padding:0;margin:0 .5rem;height:36px;width:36px;cursor:pointer;transition:.3s;border-radius:50%;background-color:rgba(31,45,61,.5);border:solid 1px #e9ecef;color:#fff;top:50%;transform:translateY(-50%);text-align:center;font-size:1rem}.carousel:not(.hover) .carousel-control-prev{opacity:0;left:-10px}.carousel:not(.hover) .carousel-control-next{opacity:0;right:-10px}.carousel:not(.hover) .carousel-indicators{opacity:0;bottom:-10px}.carousel .carousel-indicators{opacity:1;transition:all .2s linear}.carousel .carousel-item img{display:block}.carousel-indicators [data-bs-target]{background-color:#606266}.carousel-item img{width:100%}.form-check{padding:0;margin:0;min-height:1rem}.form-check .form-check-input{width:1rem;height:1rem;float:none;margin:3px 0 1px 0;transition:background-color .15s ease-in-out,background-position .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}.form-check .form-check-input+.form-check-label{padding:0 .5rem;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;vertical-align:top}.form-label+.form-check{padding:7px 0}.form-check-input:active{filter:none}@media(prefers-reduced-motion:reduce){.form-check-input{transition:none}}.form-check-input:focus{border-color:#b5b5c3;box-shadow:none}.form-check-input:checked{background-color:#009ef7;border-color:#009ef7}.form-check-input:checked[type=checkbox]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 13 11' width='13' height='11' fill='none'%3e%3cpath d='M11.0426 1.02893C11.3258 0.695792 11.8254 0.655283 12.1585 0.938451C12.4917 1.22162 12.5322 1.72124 12.249 2.05437L5.51985 9.97104C5.23224 10.3094 4.72261 10.3451 4.3907 10.05L0.828197 6.88335C0.50141 6.59288 0.471975 6.09249 0.762452 5.7657C1.05293 5.43891 1.55332 5.40948 1.88011 5.69995L4.83765 8.32889L11.0426 1.02893Z' fill='%23FFFFFF'/%3e%3c/svg%3e")}.form-check-input:checked[type=radio]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23FFFFFF'/%3e%3c/svg%3e")}.form-check-input[type=checkbox]:indeterminate{background-color:#009ef7;border-color:#009ef7;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23FFFFFF' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e")}.form-check-input:disabled{pointer-events:none;filter:none;opacity:.5}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{opacity:.5}.form-check .form-check-label,.form-check .form-check-input{cursor:pointer}.form-check .form-check-input[type=checkbox]{background-size:60% 60%}.form-check.form-check-success .form-check-input:checked{background-color:var(--bs-success)}.form-check.form-check-danger .form-check-input:checked{background-color:var(--bs-danger)}.form-check.form-check-warning .form-check-input:checked{background-color:var(--bs-warning)}.form-check.form-check-info .form-check-input:checked{background-color:var(--bs-info)}.form-check.form-check-primary .form-check-input:checked{background-color:var(--bs-primary)}.form-check.form-check-secondary .form-check-input:checked{background-color:var(--bs-secondary)}.form-check.form-check-dark .form-check-input:checked{background-color:var(--bs-dark)}.form-check.form-check-sm .form-check-input{height:1.25rem;width:1.25rem;margin:0}.form-check.form-check-md{padding:4px 0 3px 0}.form-check.form-check-md .form-check-input{height:1.5rem;width:1.5rem}.form-check.form-check-lg{padding:2px 0 1px 0}.form-check.form-check-lg .form-check-input{height:1.75rem;width:1.75rem}.checkbox-list{min-height:35px;height:auto;display:flex;flex-flow:row wrap;padding-bottom:0;overflow:hidden;vertical-align:top}.checkbox-list.is-vertical{flex-direction:column}.checkbox-list .checkbox-item{display:inline-flex;width:120px;margin-bottom:.375rem}.checkbox-list .checkbox-item .form-check-label{max-width:104px}.checkbox-list.form-control.no-border{border-color:transparent}.checkbox-list.form-control:not(.is-invalid):focus{box-shadow:none}.checkbox-item .form-check-sm .form-check-input{margin:3px 0 2px 0}.accordion-button:not(.collapsed){box-shadow:inset 0 -1px 0 #00000020}.accordion .accordion-button-primary{color:#fff;background-color:var(--bs-primary);border-color:#0d6efd}.accordion .accordion-button-secondary{color:#fff;background-color:var(--bs-secondary);border-color:#6c757d}.accordion .accordion-button-success{color:#fff;background-color:var(--bs-success);border-color:#198754}.accordion .accordion-button-info{color:#fff;background-color:var(--bs-info);border-color:#0dcaf0}.accordion .accordion-button-warning{color:#fff;background-color:var(--bs-warning);border-color:#ffc107}.accordion .accordion-button-danger{color:#fff;background-color:var(--bs-danger);border-color:#dc3545}.accordion .accordion-button-light{background-color:var(--bs-light);border-color:#f8f9fa}.accordion .accordion-button-dark{color:#fff;background-color:var(--bs-dark);border-color:#212529}.accordion .accordion-button:after{width:.75rem;height:.75rem;background-size:.75rem}.accordion .accordion-button-primary:after,.accordion .accordion-button-secondary:after,.accordion .accordion-button-success:after,.accordion .accordion-button-danger:after .accordion .accordion-button-dark:after{color:#fff}.accordion .accordion-button-light:after,.accordion .accordion-button-warning:after,.accordion .accordion-button-info:after{color:#000}.accordion .accordion-button{border-radius:0}.color-picker .form-control-color{max-width:3rem}.console-body{padding:1rem;background-color:#174482;color:#fff;overflow:auto}.popover-datetime{max-width:unset}.popover-datetime .popover-body{padding:0}.popover-datetime .date-picker{border:none}.datetime-picker-bar{position:relative;color:#adb5bd}.datetime-picker-input{cursor:pointer;padding-left:2rem}.datetime-picker-input[readonly]:not([disabled]){background-color:#fff}.datetime-picker-input-icon{position:absolute;left:0;top:0;line-height:35px;cursor:pointer;padding:0 .75rem}.picker-panel-body-wrapper{display:flex}.picker-panel-sidebar{width:110px;border-right:1px solid #e4e4e4;padding:6px 0;overflow:auto}.picker-panel-sidebar .sidebar-item{line-height:28px;padding:0 12px;cursor:pointer;transition:color .3s linear}.date-picker-time-header{position:relative;border-bottom:1px solid #e4e4e4;font-size:12px;padding:8px 5px 5px;display:table;width:100%}.date-picker-time-header .date-picker-editor-wrap{position:relative;display:table-cell;padding:0 5px}.date-picker-time-header .date-picker-editor-wrap .input-inner{height:2rem;line-height:2rem;padding:0 1rem;cursor:pointer}.date-picker-time-header .date-picker-editor-wrap .input-inner[readonly]{background-color:#fff}.date-picker-editor-wrap .time-panel{position:absolute;z-index:-1;display:none;width:145px;margin-top:.25rem}.date-picker-editor-wrap .time-panel .time-spinner-item{height:28px;line-height:28px}.date-picker-editor-wrap .time-panel-content:after,.date-picker-editor-wrap .time-panel-content:before{margin-top:-32px;height:28px}.date-picker-editor-wrap .time-spinner-arrow.fa-angle-up{top:3px}.date-picker-editor-wrap .time-spinner-arrow.fa-angle-down{bottom:3px}.date-picker-editor-wrap .time-spinner-list-wrapper{height:84px;margin:36px 0}.is-open .date-picker-editor-wrap .time-panel{z-index:10;display:block}.picker-panel{color:#606266;border:1px solid #ced4da;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);background:#fff;border-radius:var(--bs-border-radius);line-height:30px}.picker-panel-body-wrapper:after,.picker-panel-body:after{content:"";display:table;clear:both}.picker-panel-body{width:320px}.date-picker-header{margin:12px;display:flex;align-items:center}.date-picker .picker-panel-content{width:292px}.picker-panel-content{position:relative;margin:15px}.picker-panel-content table{table-layout:fixed;width:100%;font-size:12px;user-select:none}.picker-panel-content table td{text-align:center}.picker-panel-content table td .cell{display:block;margin:0 auto;cursor:pointer}.picker-panel-content table td.today .cell{color:#409eff;font-weight:700}.picker-panel-content table td.current:not(.disabled) .cell,.picker-panel-content table td.start:not(.next-month):not(.prev-month):not(.disabled) .cell,.picker-panel-content table td.end:not(.next-month):not(.prev-month):not(.disabled) .cell{color:#fff;background-color:#409eff}.picker-panel-content table td.range div{background-color:#f2f6fc}.picker-panel-content table td.range.start div{margin-left:5px;border-top-left-radius:15px;border-bottom-left-radius:15px}.picker-panel-content table td.range.start div .cell{margin-left:4px}.picker-panel-content table td.range.end div{margin-right:5px;border-top-right-radius:15px;border-bottom-right-radius:15px}.picker-panel-content table td.range.end div .cell{margin-right:4px}.picker-panel-content table td.disabled .cell{cursor:not-allowed;color:#c0c4cc}.date-table th{padding:5px;font-weight:400;border-bottom:1px solid var(--bs-border-color);text-align:center}.date-table td.next-month,.date-table td.prev-month{color:#c0c4cc}.date-table td:not(.prev-month):not(.next-month):hover,.picker-panel-icon-btn:hover,.date-picker-header-label:hover,.sidebar-item:hover{color:#409eff}.date-table td div{margin:4px 0;padding:3px 0}.date-table td .cell{display:block;width:24px;height:24px;margin:0 auto;line-height:24px;border-radius:50%;cursor:pointer}.picker-panel-icon-btn{color:#303133;border:0;background:transparent;cursor:pointer;outline:none}.date-picker-header-label{font-size:16px;font-weight:500;padding:0 5px;text-align:center;cursor:pointer;user-select:none}.pick-panel-arrow-left,.pick-panel-arrow-right{margin:0 6px}.year-table,.month-table{margin-top:29px}.year-table tr,.month-table tr{border-top:1px solid var(--bs-border-color)}.year-table td div{padding:12px 0}.year-table td .cell{width:48px;height:24px;line-height:24px;border-radius:16px}.month-table td div{padding:26px 0}.month-table td .cell{width:60px;border-radius:18px}@media(min-width:576px){.input-group input.form-control{width:1%}}.picker-panel-footer{border-top:1px solid #e4e4e4;padding:4px;background-color:#fff;position:relative;display:flex;border-bottom-left-radius:var(--bs-border-radius);border-bottom-right-radius:var(--bs-border-radius)}.picker-panel-footer .picker-panel-link-btn{padding:7px 15px;font-size:.75rem;border-radius:var(--bs-border-radius);line-height:12px;color:#606266;transition:border-color .3s linear,color .3s linear}.picker-panel-footer .picker-panel-link-btn.is-confirm{border:1px solid #dcdfe6}.picker-panel-footer .picker-panel-link-btn.is-confirm:hover{border-color:#409eff;color:#409eff}.picker-panel-footer .picker-panel-link-btn.is-now{color:#409eff}.time-panel{border:1px solid #ced4da;background-color:#fff;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);border-radius:var(--bs-border-radius);width:180px;user-select:none}.time-panel-content{font-size:0;position:relative;overflow:hidden}.time-panel-content:before{padding-left:50%;margin-right:12%;margin-left:12%}.time-panel-content.has-seconds:before{padding-left:33.33333%}.time-panel-content:after,.time-panel-content:before{content:"";top:50%;position:absolute;margin-top:-36.6px;height:36.6px;left:0;right:0;border-top:1px solid #e4e7ed;border-bottom:1px solid #e4e7ed}.time-panel-content.has-seconds:after{left:66.66667%;pointer-events:none}.time-panel-content:after{left:50%;margin-left:12%;margin-right:12%}.time-spinner{width:100%;white-space:nowrap}.time-spinner.has-seconds .time-spinner-wrapper{width:33.3%}.time-spinner-wrapper.is-arrow{box-sizing:border-box;text-align:center;overflow:hidden}.time-spinner-wrapper{display:inline-flex;position:relative;align-items:center;justify-content:center}.time-spinner-wrapper.is-arrow .time-spinner-list{transition:transform .3s linear}.time-spinner-arrow{font-size:14px;color:#909399;position:absolute;left:0;width:100%;z-index:1;text-align:center;height:30px;line-height:30px;cursor:pointer}.time-spinner-arrow.fa-angle-up{top:10px}.time-spinner-arrow.fa-angle-down{bottom:10px}.time-spinner-list-wrapper{overflow:hidden;height:110px;margin:40px 0;width:100%}.time-spinner-list{margin:0;list-style:none}.time-spinner-input.input .input-inner,.time-spinner-list{padding:0;text-align:center}.time-spinner-item{height:36.6px;line-height:36.6px;font-size:12px;color:#606266;opacity:.6;cursor:pointer}.time-spinner-item.active:not(.disabled){font-weight:700;font-size:14px;opacity:1}.time-spinner-item.active:not(.disabled),.time-spinner-arrow:hover{color:#409eff}.time-spinner-item.prev,.time-spinner-item.next{opacity:.8;transform:scale(1,.8);line-height:30px}.time-panel-footer{border-top:1px solid #e4e4e4;padding:4px;height:36px;line-height:25px;text-align:right}.time-panel-btn{border:none;line-height:28px;padding:0 5px;margin:0 5px;cursor:pointer;background-color:transparent;outline:none;font-size:12px;color:#303133}.time-panel-btn.confirm{font-weight:800;color:#409eff}.datetime-range{background-color:#fff;background-image:none;border-radius:var(--bs-border-radius);border:1px solid #dcdfe6;color:#606266;display:inline-block;outline:none;transition:border-color .2s cubic-bezier(.645,.045,.355,1);padding:0 10px;position:relative}.datetime-range:hover{border-color:#c0c4cc}.datetime-range.active{border-color:#409eff}.datetime-range.disabled,.datetime-range.disabled input{background-color:#e9ecef}.datetime-range-bar{display:inline-flex;align-items:center}.datetime-range-bar .datetime-range-input{border:none;outline:none;display:inline-block;margin:0;padding:0;text-align:center;color:#606266;cursor:pointer;width:80px;padding:6px 0}.datetime-range-bar .datetime-range-input-icon{cursor:pointer}.datetime-range-bar .range-separator{padding:0 5px;color:#303133}.range-panel-body{display:flex}.range-panel-body .picker-panel{box-shadow:none;border:none}.range-panel-body .picker-panel:first-child{border-right:1px solid #ced4da;border-top-right-radius:0;border-bottom-right-radius:0}.range-panel-body .date-picker-header-label{cursor:unset}.range-panel-body .date-picker-header-label:hover{color:inherit}.range-panel-footer{padding:.5rem}.popover-datetime-range{max-width:unset}.popover-datetime-range .popover-body{padding:0}.range-clear{border-radius:50%;border:1px solid #9d9d9d;padding:1px;display:none;cursor:pointer;position:absolute;right:10px;top:11px}.datetime-range:hover:not(.disabled) .range-clear{display:flex}.form-inline>*>.datetime-range{display:block}.divider{background-color:transparent;position:relative}.divider .divider-text{position:absolute;background-color:#fff;padding:0 20px;font-weight:500;color:#303133;font-size:14px}.divider.divider-horizontal{display:block;width:100%}.divider.divider-horizontal .divider-text.is-left{left:20px;transform:translateY(-50%)}.divider.divider-horizontal .divider-text.is-center{left:50%;transform:translateX(-50%) translateY(-50%)}.divider.divider-horizontal .divider-text.is-right{right:20px;transform:translateY(-50%)}.divider .divider-wrap{height:1px;margin:1rem 0;background-color:#dcdfe6}.divider-vertical{width:1px;margin:0 1rem}.divider.divider-vertical .divider-text{padding:20px 0}.divider.divider-vertical .divider-text.is-left{top:20px;transform:translateX(-50%)}.divider.divider-vertical .divider-text.is-center{top:50%;transform:translateX(-50%) translateY(-50%)}.divider.divider-vertical .divider-text.is-right{bottom:20px;transform:translateX(-50%)}.drawer-wrapper{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden;margin:0;background-color:rgba(0,0,0,.5);transform:translateX(-100%);z-index:1050}.drawer-container{position:relative;left:0;right:0;top:0;bottom:0;height:100%;width:100%}.drawer{position:absolute;box-sizing:border-box;background-color:#fff;display:flex;flex-direction:column;box-shadow:0 8px 10px -5px rgba(0,0,0,.2),0 16px 24px 2px rgba(0,0,0,.14),0 6px 30px 5px rgba(0,0,0,.12);overflow:auto;transition:transform .3s linear;transform:translateX(-100%)}.drawer.left,.drawer.right{height:100%;top:0;bottom:0}.drawer.top,.drawer.bottom{width:100%;left:0;right:0}.drawer.right{right:0;transform:translateX(100%)}.drawer.top{top:0;transform:translateY(-100%)}.drawer.bottom{bottom:0;transform:translateY(100%)}.is-open .drawer,.is-open.drawer-wrapper,.is-close.drawer-wrapper{transform:translateX(0)}.is-close .drawer{transform:translateX(0)}.is-close .drawer{transform:translateX(-100%)}.is-close .drawer.right{transform:translateX(100%)}.is-close .drawer.top{transform:translateY(-100%)}.is-close .drawer.bottom{transform:translateY(100%)}.dropdown .dropdown-toggle:after,.dropup .dropdown-toggle:after,.dropright .dropdown-toggle:after,.btn-group .dropdown-toggle:not(:empty):after{margin-left:6px}.dropleft .dropdown-toggle:before{margin-right:6px}.dropdown-menu{border-radius:var(--bs-border-radius)}.dropdown-item{cursor:pointer}.widget .dropdown-toggle{color:#fff;padding:10px 16px;position:relative;display:inline-block}.widget .dropdown-toggle:after{content:unset}.widget .dropdown-toggle .badge{position:absolute;top:5px;font-size:9px}.widget .dropdown-menu{overflow:visible;width:235px;margin-left:-94px !important;padding:0;max-height:none;border:none}.widget .dropdown-menu .dropdown-arrow{border-style:solid;border-width:0 9px 9px;position:absolute;left:108px;top:-9px}.widget .dropdown-header{color:#fff;padding:.5rem .625rem;border-radius:var(--bs-border-radius) var(--bs-border-radius) 0 0}.widget .dropdown-body{overflow:auto;max-height:300px}.widget .dropdown-footer{padding:.5rem .625rem;background-color:#dcdfe6;border-radius:0 0 var(--bs-border-radius) var(--bs-border-radius)}.widget .dropdown-item{border-bottom:1px solid #dcdfe6}.widget .dropdown-item:nth-of-type(odd){background-color:#eef0f3}.editor .editor-body{cursor:pointer;min-height:50px;height:auto}.editor .editor-body:focus:before{content:none}.editor .editor-body:empty:before{content:attr(placeholder)}.editor .note-editor{background-color:#fff}.editor .note-editor .note-right{float:right}.editor .note-btn-close{background-image:-webkit-linear-gradient(top,#5bc0de 0%,#2aabd2 100%);background-image:-o-linear-gradient(top,#5bc0de 0%,#2aabd2 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5bc0de),to(#2aabd2));background-image:linear-gradient(to bottom,#5bc0de 0%,#2aabd2 100%);background-repeat:repeat-x;border-color:#28a4c9;color:#fff}.editor .dropdown-menu{overflow:unset;max-height:unset;max-width:unset}.editor .btn-light{border-color:#00000032}.editor .btn-light:hover{background-color:#e2e6ea;border-color:#dae0e5}.editor .btn-light:not(:disabled):not(.disabled).active,.editor .btn-light:not(:disabled):not(.disabled):active,.editor .show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.empty{text-align:center}.empty>.empty-image{margin-top:1rem;margin-bottom:8px}.empty-telemplate{margin:5px 0 0 0}.table-filter{position:absolute;left:0;top:0;width:100%;z-index:5}.table-filter .table-filter-item{min-width:220px;background-color:#fff;border:1px solid rgba(0,0,0,.125);position:absolute;display:none}.table-filter .table-filter-item.show{display:block}.table-filter .card-header{padding:.5rem 1rem}.table-filter .card-arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0;top:calc((.5rem + 1px)*-1);left:calc(50% - .5rem)}.table-filter .card-arrow:before,.table-filter .card-arrow:after{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.table-filter .card-arrow:before{border-bottom-color:#ced4da;top:0;border-width:0 .5rem .5rem .5rem}.table-filter .card-arrow:after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#f7f7f7}.table-filter .card-body{padding:1rem}.table-filter .card-body .is-condition{max-width:10rem}.table-filter .card-body>*:not(:first-child){margin-top:.5rem}.table-filter .card-body .select{display:block}.table-filter .card-footer{padding:.5rem;display:flex;white-space:nowrap}.table-filter .card-footer .btn:not(:first-child){margin-left:.5rem}.table-filter .card-footer .btn{padding:7px 15px;font-size:.875rem;line-height:12px;border:1px solid #dcdfe6;color:#606266;transition:border-color .3s linear,color .3s linear}.table-filter .card-footer .btn:not(.disabled):not(:disabled):hover{border-color:#409eff;color:#409eff}.filter-row{display:flex}.filter-row .btn-ban{display:none;padding-left:0}.filter-row input{min-width:50px}.filter-row.active .btn-ban{display:block}.btn-filter::after{content:none}.layout-gotop{background:rgba(255,255,255,.5);width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-right:4px;transition:background-color .3s linear;color:#606266}.layout-gotop:hover{background-color:#fff;color:#606266}.groupbox{border:1px solid #ddd;padding:1.5rem 1rem 1rem 1rem;border-radius:var(--bs-border-radius);position:relative;margin-top:.5rem}.groupbox .legend{position:absolute;top:-10px;left:30px;background-color:#fff;padding:0 .5rem}.handwritten .hw-body{height:300px;border:1px solid rgba(0,0,0,.125);border-radius:var(--bs-border-radius);overflow:hidden}.handwritten .hw-buttons{margin-top:1rem;text-align:right}#canvas{border:1px double #dedede;border-radius:10px;width:99%;height:300px;position:relative;overflow:hidden}#canvas canvas{display:block}#clearCanvas0{width:calc(50% - 5px);height:40px;line-height:40px;text-align:center;position:absolute;top:300px;left:5px;border:1px solid #dedede;z-index:1}#saveCanvas0{width:calc(50% - 5px);height:40px;line-height:40px;text-align:center;position:absolute;top:300px;right:5px;border:1px solid #dedede;z-index:1}.ipaddress{display:flex;flex-wrap:nowrap;min-width:138px}.ipaddress.disabled{background-color:#efefef;cursor:not-allowed}.ipaddress .ipv4-cell{border:none;max-width:26px}:root{--bb-layout-header-height:50px;--bb-layout-user-height:65px;--bb-layout-footer-height:90px;--bb-layout-side-width:214px;--bb-layout-sidebar-collapse-width:70px}.layout{display:flex;height:100%;width:100%;flex-direction:column}.layout .layout-main{flex:1}.has-sidebar{flex-direction:row;display:flex;flex:1}.layout-side{position:relative}.layout.is-page .layout-side{transform:translateX(-100%);position:fixed;top:0;bottom:0;left:0;right:0;width:auto;transition:transform .3s linear;z-index:1030}.layout.is-page .layout-side.is-collapsed{transform:translateX(0)}.layout.is-page .has-sidebar .layout-side{top:50px}.layout.is-page .layout-right,.layout.is-page .has-sidebar .layout-main{width:100%}.layout.is-page.is-fixed{position:fixed;top:0;bottom:0;left:0;right:0}.layout.is-page .layout-header{background-color:#17a2b8;height:50px;color:#fff;display:flex;align-items:center;padding:0 1rem}.layout.is-page .layout-side{background-color:#343a40;color:#c2c7d0}.layout-header-bar{padding:4px 12px;color:#fff;background-color:#1ab394;border-color:#1ab394;border-radius:var(--bs-border-radius)}.layout-header-bar .fa-bars{transition:transform .3s linear}.layout-header-bar.is-collapsed .fa-bars{transform:rotate(90deg)}.layout.is-page .layout-main{padding:1rem;position:relative;min-height:calc(100vh - var(--bb-layout-footer-height))}.layout.is-page .layout-main.is-collapsed,.layout.is-page .layout-footer.is-collapsed{display:none}.layout.is-page .layout-header{z-index:1035;position:sticky}.layout.is-page .layout-header.is-fixed{top:0}.layout.is-page .layout-header .layout-avatar-right{width:44px;height:44px}.layout.is-page .has-sidebar .layout-side .layout-banner{display:none}.layout.is-page .layout-side .layout-banner{display:flex;align-items:center;padding:0 .625rem;background-color:#367fa9;height:var(--bb-layout-header-height);font-size:1.5rem}.layout-banner-link{display:flex;align-items:center;color:inherit}.layout.is-page .layout-side .layout-banner .layout-logo{width:44px;border-radius:var(--bs-border-radius)}.layout.is-page .layout-side .layout-banner span{padding-left:1rem}.layout.is-page .layout-side .layout-user{border-bottom:1px solid #ddd;padding:.625rem;display:flex;flex-direction:row;align-items:center}.layout.is-page .layout-side .layout-user .layout-avatar{width:44px;height:44px;border-radius:50%}.layout.is-page .layout-side .layout-user span{padding-left:1rem}.layout.is-page .layout-side .layout-menu{overflow-x:hidden;padding:.5rem 0;height:calc(100vh - var(--bb-layout-header-height) - var(--bb-layout-user-height))}.layout.is-page .layout-user-state{width:8px;height:8px;background-color:#28a745;border-radius:50%;margin-left:1rem}.layout.is-page .layout-footer{height:40px;color:#fff;background-color:#5b6e84;display:flex;align-items:center;padding:0 1rem}.layout.is-page .layout-footer.is-fixed{position:sticky;bottom:0}.layout.is-page .has-sidebar .layout-side.is-fixed-header,.layout.is-page .layout-footer.is-fixed{z-index:1020}@media(min-width:768px){.layout.is-page .layout-side{transform:translateX(0);position:relative}.layout.is-page .has-sidebar .layout-side{top:0}.layout.is-page.has-sidebar .layout-side.is-fixed-header{top:0;height:calc(100vh)}.layout.is-page :not(.layout-right) .layout-main,.layout.is-page .layout-right{width:calc(100% - var(--bb-layout-side-width))}.layout.is-page .layout-side{width:var(--bb-layout-side-width);box-shadow:0 14px 28px rgba(0,0,0,.25),0 10px 10px rgba(0,0,0,.22)}.layout.is-page .layout-side .menu.is-vertical{width:var(--bb-layout-side-width)}.layout.is-page .layout-side.is-collapsed:not(:hover),.layout.is-page .layout-side:not(:hover) .menu.is-vertical.is-collapsed{width:var(--bb-layout-sidebar-collapse-width)}.layout.is-page .layout-side.is-fixed-header{position:sticky;top:var(--bb-layout-header-height);height:calc(100vh - var(--bb-layout-header-height))}.layout.is-page .layout-side.is-fixed-header.is-fixed-footer{height:calc(100vh - var(--bb-layout-footer-height))}.layout.is-page .layout-side .layout-menu{height:auto}.layout .layout-side,.layout.is-page .layout-side,.layout .menu.is-vertical{transition:width .3s linear}.layout-right{display:flex;flex-flow:column;flex:1}.layout.is-page .layout-footer.is-fixed,.layout.is-page .layout-header.is-fixed,.layout.is-page .layout-side.is-fixed-header{z-index:1025}.layout.is-page .layout-title{display:inline-block;overflow:hidden;white-space:nowrap;flex:1 1 auto;opacity:1;transition:opacity .3s linear;color:#e9ecef}.layout.is-page .is-collapsed .layout-title{opacity:0}.layout .is-collapsed .layout-user-state{display:none}.layout.is-page.has-sidebar .layout-side{min-height:calc(100vh)}.layout.is-page .has-sidebar .layout-side{min-height:calc(100vh - var(--bb-layout-footer-height))}.layout.is-page.has-sidebar .layout-side.is-fixed-header.is-fixed-footer .layout-menu,.layout.is-page .layout-side.is-fixed-header .layout-menu{height:calc(100vh - var(--bb-layout-header-height) - var(--bb-layout-user-height))}.layout.is-page .layout-side.is-fixed-header.is-fixed-footer .layout-menu{height:calc(100vh - var(--bb-layout-footer-height) - var(--bb-layout-user-height))}.layout.is-page .layout-main.is-collapsed{display:block}.layout.is-page .layout-footer.is-collapsed{display:flex}.layout.is-page .layout-menu .menu.is-vertical.is-collapsed .nav-link.active::before{opacity:1;background-color:#409eff}.layout.is-page .layout-side .layout-menu .slimScrollBar{opacity:1 !important;background-color:#c1c1c1 !important}}.light{background-image:radial-gradient(circle,#fff,#aaa,#333);cursor:pointer;width:20px;height:20px;display:inline-block;border-radius:50%}.light+span{display:none}.light-danger{background-image:radial-gradient(circle,#e17777,#892726,#700604)}.light-danger.flash{animation:danger .6s linear infinite}.light-danger:hover{background-image:radial-gradient(circle,#e17777,#b33332,#bf211e)}@keyframes danger{0%{background-image:radial-gradient(circle,#e17777,#892726,#700604)}55%{background-image:radial-gradient(circle,#e17777,#892726,#700604)}100%{background-image:radial-gradient(circle,#fff,#aaa,#333)}}.light-success{background-image:radial-gradient(circle,#5cb85c,#116811,#024702)}.light-success.flash{animation:success .6s linear infinite}.light-success:hover{background-image:radial-gradient(circle,#5cb85c,#0c980c,#087b08)}@keyframes success{0%{background-image:radial-gradient(circle,#5cb85c,#116811,#024702)}55%{background-image:radial-gradient(circle,#5cb85c,#116811,#024702)}100%{background-image:radial-gradient(circle,#fff,#aaa,#333)}}.light-info{background-image:radial-gradient(circle,#5bc0de,#1d7792,#085166)}.light-info.flash{animation:info .6s linear infinite}.light-info:hover{background-image:radial-gradient(circle,#5bc0de,#085166,#085166)}@keyframes info{0%{background-image:radial-gradient(circle,#5bc0de,#1d7792,#085166)}55%{background-image:radial-gradient(circle,#5bc0de,#1d7792,#085166)}100%{background-image:radial-gradient(circle,#fff,#aaa,#333)}}.light-warning{background-image:radial-gradient(circle,#ffc107,#cc9f18,#a28018)}.light-warning.flash{animation:warning .6s linear infinite}.light-warning:hover{background-image:radial-gradient(circle,#ffc107,#a28018,#a28018)}@keyframes warning{0%{background-image:radial-gradient(circle,#ffc107,#cc9f18,#a28018)}55%{background-image:radial-gradient(circle,#ffc107,#cc9f18,#a28018)}100%{background-image:radial-gradient(circle,#fff,#aaa,#333)}}.light-primary{background-image:radial-gradient(circle,#007bff,#0f5fb5,#104f94)}.light-primary.flash{animation:primary .6s linear infinite}.light-primary:hover{background-image:radial-gradient(circle,#007bff,#104f94,#104f94)}@keyframes primary{0%{background-image:radial-gradient(circle,#007bff,#0f5fb5,#104f94)}55%{background-image:radial-gradient(circle,#007bff,#0f5fb5,#104f94)}100%{background-image:radial-gradient(circle,#fff,#aaa,#333)}}.light-secondary{background-image:radial-gradient(circle,#6c757d,#4b5054,#3b3d40)}.light-secondary.flash{animation:secondary .6s linear infinite}.light-secondary:hover{background-image:radial-gradient(circle,#6c757d,#3b3d40,#3b3d40)}@keyframes secondary{0%{background-image:radial-gradient(circle,#6c757d,#4b5054,#3b3d40)}55%{background-image:radial-gradient(circle,#6c757d,#3b3d40,#3b3d40)}100%{background-image:radial-gradient(circle,#fff,#aaa,#333)}}.light-dark{background-image:radial-gradient(circle,#6061e2,#3232a0,#17177b)}.light-dark.flash{animation:dark .6s linear infinite}.light-dark:hover{background-image:radial-gradient(circle,#6061e2,#17177b,#17177b)}@keyframes dark{0%{background-image:radial-gradient(circle,#6061e2,#3232a0,#17177b)}55%{background-image:radial-gradient(circle,#6061e2,#3232a0,#17177b)}100%{background-image:radial-gradient(circle,#fff,#aaa,#333)}}.listview{border:1px solid rgba(0,0,0,.125);border-radius:.25rem;width:100%;height:100%;display:flex;flex-flow:column nowrap}.listview .listview-header{padding:1rem;border-bottom-color:inherit;border-bottom-width:1px;border-bottom-style:solid}.listview.is-vertical .listview-body{display:block}.listview .listview-body{padding:1rem 0 0 1rem;position:relative;overflow:auto;display:flex;flex-flow:row wrap;flex:1}.listview .listview-body .listview-item{margin:0 1rem 1rem 0}.listview .listview-body .listview-item:hover .card{cursor:pointer;border:1px solid #409eff}.listview .listview-body .listview-item .card{box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.listview .listview-body .listview-item-group{flex-basis:100%;margin:1rem 0;font-weight:bold;position:relative}.listview .listview-body .listview-item-group:after{content:"";position:absolute;top:calc(-50%);left:-1rem;right:0;background-color:rgba(0,0,0,.1);height:calc(200%)}.listview .listview-footer{padding:1rem;border-top-color:inherit;border-top-width:1px;border-top-style:solid}.dropdown-logout .dropdown-menu{padding:0;overflow:hidden;border-color:#3c8dbc}.dropdown-logout .dropdown-menu.show{animation:fade-in2 .2s cubic-bezier(.39,.575,.565,1) both}@keyframes fade-in2{0%{margin-top:-50px;visibility:hidden;opacity:0}100%{visibility:visible;opacity:1}}.dropdown-logout .dropdown-toggle{height:42px;display:block}.dropdown-logout .dropdown-toggle:after{content:none}.dropdown-logout .logout-avatar{width:42px;height:42px}.dropdown-logout .logout-text{color:#fff;font-weight:bold;max-width:110px;margin:0 .625rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropdown-logout .dropdown-user{background-color:#3c8dbc;color:#fff}.dropdown-logout .dropdown-user img{width:60px;height:60px;margin-right:1rem}.dropdown-logout .logout-un{margin-top:.25rem}.dropdown-logout .dropdown-item:not(.dropdown-user):focus,.dropdown-logout .dropdown-item:not(.dropdown-user):hover{background-color:transparent}.dropdown-logout .dropdown-item a{color:var(--bs-body-color);margin-bottom:.5rem;display:block;transition:color .3s linear}.dropdown-logout .dropdown-item a:first-child{margin-top:.5rem}.dropdown-logout .dropdown-item a:hover{color:#009ef7}.dropdown-logout .dropdown-item a .fa{margin-right:.5rem}.menu .nav{padding:0 1rem;border-bottom:1px solid #e6e6e6}.menu>.nav>li{position:relative;border-bottom:solid 2px transparent}.menu>.nav>li.active:after{width:100%;left:0}.menu>.nav>li:after{content:"";position:absolute;background-color:#1890ff;left:50%;height:2px;width:0;transition:width .3s linear,left .3s linear}.menu .nav .nav-link,.cascade .dropdown-item{padding:.5rem 1rem;color:rgba(0,0,0,.65);user-select:none;white-space:nowrap;position:relative}.menu .nav .nav-link.active,.menu .nav .nav-link:not(.disabled):hover{color:#1890ff}.menu .nav .dropdown-menu,.cascade .dropdown-menu{overflow:unset;max-height:unset;margin-top:10px}.menu .nav .dropdown-menu .nav-link:not(.disabled):hover,.menu .nav .dropdown-menu .nav-link.active,.menu .submenu .nav-link.active,.menu .submenu .nav-link:not(.disabled):hover,.cascade .dropdown-item:not(.disabled):hover,.cascade .dropdown-item.active,.cascade .nav .nav-link:not(.disabled):hover,.cascade .nav .nav-link.active{background-color:#60aff9;color:#16181b}.menu .nav .sub-menu,.cascade .has-leaf .sub-menu{display:none;background-color:#fff;white-space:nowrap;border:solid 1px #e6e6e6;border-radius:var(--bs-border-radius);padding:.5rem 0;position:absolute;left:100%;top:-9px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.menu .nav .dropdown-menu,.menu .nav .sub-menu,.cascade .sub-menu{width:160px}.menu .nav .nav-link:hover>.sub-menu,.cascade .dropdown-item:hover>.sub-menu{display:block}.menu .nav-item:hover>.nav-link>.sub-menu{left:calc(100% + 20px);top:-15px}.menu .has-leaf>.nav-link-right{transition:transform .3s linear;position:absolute;right:10px;top:10px}.menu .nav .sub-menu .has-leaf>.nav-link-right{right:12px;top:10px}.menu .has-leaf:hover>.nav-link-right{transform:rotate(-90deg)}.menu .text{overflow:hidden;vertical-align:top;display:inline-block;transition:width .3s linear}.menu .nav-link.disabled{color:#ddd}.menu .nav .nav-link .text{margin-left:4px}.menu .nav .dropdown-toggle[aria-expanded="true"]+.dropdown-menu-arrow,.cascade .show .dropdown-menu-arrow{display:block}.menu .nav .dropdown .dropdown-menu-arrow{left:calc(50% - 6px)}.menu .nav-link{display:flex;align-items:center;line-height:21px;color:inherit;transition:background-color .3s linear,color .3s linear}.menu .nav-link>div{white-space:nowrap}.menu .widget>.badge:not(:first-child){margin-left:4px}.menu.is-vertical{padding:0 .5rem;border:none}.menu .submenu{margin:0;padding:0;list-style:none}.menu .submenu li{margin-top:2px}.menu .submenu .nav-link{border-radius:var(--bs-border-radius);padding:.5rem 0 .5rem .25rem}.menu .submenu .nav-link .fa-angle-left{transition:transform .3s linear}.menu .submenu .nav-link[aria-expanded="true"]>.fa-angle-left{transform:rotate(-90deg)}.menu .submenu .nav-link .text,.menu .submenu .nav-link .widget{margin:0 4px}.cascade .dropdown-menu{right:0}.cascade .sub-menu{display:none}@media(min-width:768px){.layout-side.is-collapsed:not(:hover) .menu.is-collapsed .submenu .text{width:0}}.menu.is-bottom{position:absolute;bottom:0;left:0;right:0}.menu.is-bottom .nav{flex-wrap:nowrap;justify-content:space-around;border-bottom:none;border-top:1px solid var(--bs-gray-400)}.menu.is-bottom .nav .dropdown-toggle[aria-expanded="true"]+.dropdown-menu-arrow{display:none}.menu.is-bottom>.nav>li:after,.menu.is-bottom .dropdown-menu-arrow:after{content:none}.message{position:fixed;left:1rem;right:1rem;z-index:1090;pointer-events:none}.message .alert{display:block;min-width:160px;max-width:480px;white-space:normal;opacity:0;top:-20px;bottom:unset;margin:1rem auto 0 auto;transition:opacity .3s linear,top .3s linear,bottom .3s linear;pointer-events:auto}.message .alert.show{opacity:1;bottom:unset;top:20px}.message.is-bottom .alert{top:unset;bottom:-20px}.message.is-bottom .alert.show{top:unset;bottom:20px}.is-draggable .modal-header{cursor:pointer}.modal-header{padding:.5rem 1rem}.modal-header.is-drag{cursor:move}.modal-footer{padding:.25rem 1rem}.modal-header .btn-print{padding:3px 8px 4px 8px;margin:0 6px}.bb-printview{background-color:#fff;padding:1rem;min-height:calc(100vh)}@media screen{.bb-printview{display:none}}@media print{body.bb-printview-open{overflow:auto !important}body.bb-printview-open app,body.bb-printview-open .modal,body.bb-printview-open .modal-footer,body.bb-printview-open .modal-backdrop{display:none !important}}.nav-pages{justify-content:space-between;align-items:center;width:100%}.pagination{margin:0;flex:1 1 auto;justify-content:flex-end}.page-link:focus{box-shadow:none}.pagination-items{display:inline-block}.pagination-items .select{width:100px;margin:0 10px}.pagination-items .select .dropdown-menu{min-width:unset;text-align:center}.pagination-items .select .form-select{text-align:center}.page-item:hover .page-link-prev .fa-ellipsis-h:before{content:""}.page-item:hover .page-link-next .fa-ellipsis-h:before{content:""}.page-link{padding:.5rem .35rem;line-height:1}.page-link .fa{width:11px;text-align:center}@media(min-width:375px){.page-link{padding:.5rem .5rem}}@media(min-width:456px){.page-link{padding:.5rem .75rem}}.popover{min-width:240px}.popover-confirm-body{margin:14px 0}.popover-confirm-body .fa+span{margin-left:.25rem}.popover-confirm-buttons{display:flex;justify-content:flex-end;margin-bottom:4px}.popover-confirm-buttons .btn{padding:7px 15px;line-height:12px}.popover-confirm-buttons .btn:last-child{margin-left:.5rem}.bs-popover-auto[data-popper-placement^=bottom].has-header>.popover-arrow::after,.bs-popover-bottom.has-header>.popover-arrow::after{border-bottom-color:#f0f0f0}.qrcode .qrcode-img{width:128px;height:128px}.qrcode .qrcode-buttons{margin-top:1rem}.radio-list{display:flex;flex-wrap:wrap}.radio-list .form-check{width:120px}.radio-list.is-vertical{flex-direction:column;height:auto;line-height:unset}.radio-list.is-vertical .form-check:not(:last-child){margin-bottom:.5rem}.form-inline .radio-list .form-check{display:inline-block}.rate{height:18px;line-height:1;font-size:18px;cursor:pointer}.rate .rate-item{width:18px;height:100%;margin-right:6px}.rate .rate-item:last-child{margin-right:0}.rate .rate-item i{color:#c6d1de;transition:.3s}.rate .rate-item.is-on i{color:#c6d1de}.rate .rate-item.is-on i:before{content:""}.rate:not(.disabled) .rate-item.is-on i{color:#f7ba2a}:root{--bs-row-label-width:120px}@media(min-width:576px){.form-inline .form-label{padding:7px 0;margin-bottom:0;padding-right:10px;width:var(--bs-row-label-width);text-overflow:ellipsis;white-space:nowrap;overflow:hidden;vertical-align:top;display:inline-block}.form-inline .form-label+*{width:calc(100% - var(--bs-row-label-width))}.form-inline .form-label+*:not(.input-group):not(.switch){display:inline-block}.form-inline .form-label+.input-group{display:inline-flex}.form-inline .form-label+.switch,.form-inline .form-label+.form-checkbox{padding:7px 0}.form-inline.is-end>div>.form-label{text-align:right}.form-inline.is-center>div>.form-label{text-align:center}}.scroll{height:100%;scrollbar-color:rgba(0,0,0,.3) rgba(0,0,0,0);scrollbar-width:thin;overflow:auto}.scroll::-webkit-scrollbar{width:6px;height:6px}.scroll::-webkit-scrollbar-thumb{border-radius:3px;background-color:rgba(0,0,0,.2)}.scroll::-webkit-scrollbar-thumb:hover{background-color:rgba(0,0,0,.3)}@media(min-width:992px){.scroll{overflow:hidden}.scroll:hover{overflow-y:auto}}.multi-select{width:100%;position:relative}.multi-select .dropdown-menu-toggle{border:solid 1px #ddd;border-radius:var(--bs-border-radius);cursor:pointer;min-height:35px;max-height:70px;overflow:auto}.multi-select .dropdown-menu-toggle.disabled{background-color:#eee}.multi-select .dropdown-menu-toggle .clear{padding:7px .25rem;display:none;color:#adb5bd}.multi-select .dropdown-menu-toggle .clear:hover{background-color:#ddd;border-radius:var(--bs-border-radius)}.multi-select .dropdown-menu-toggle .dropdown{padding:7px .25rem;display:block}.multi-select .dropdown-menu-toggle.selected .clear{display:block}.multi-select .dropdown-menu-toggle.selected .dropdown,.multi-select .dropdown-menu-toggle.disabled .clear{display:none}.multi-select .dropdown-menu-toggle .append{position:absolute;height:100%;width:30px;right:0;top:0;color:#c0c4cc;display:flex;align-items:center;justify-content:center}.multi-select .dropdown-menu-toggle .append .dropdown{transition:all .3s;transform:rotate(180deg)}.multi-select.show .dropdown-menu-toggle .append .dropdown{transform:rotate(0)}.multi-select .dropdown-menu{max-height:300px;overflow:auto}.multi-select .multi-select-items{display:flex;flex-wrap:wrap;padding-top:3px;padding-left:3px;position:relative}.multi-select .multi-select-items span{border:solid 1px #ddd;border-radius:var(--bs-border-radius);padding:2px 6px;background-color:#e9ecef;margin-bottom:3px}.multi-select .multi-select-items .multi-select-item{display:inline-block;max-width:130px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;margin-right:3px;border-top-left-radius:0;border-bottom-left-radius:0}.multi-select .multi-select-items .multi-select-item-group{display:inline-flex;position:relative}.multi-select .multi-select-items .multi-select-item-group .multi-select-item{padding-left:9px}.multi-select .multi-select-items .multi-select-close{border-top-right-radius:0;border-bottom-right-radius:0;margin-right:-3px;z-index:2;transition:color .3s linear,background-color .3s linear}.multi-select :not(.disabled) .multi-select-items .multi-select-close:hover{color:#333;background-color:#ddd}.multi-select .dropdown-menu{margin-top:10px;padding:.25rem 0;width:100%}.multi-select .dropdown-menu .toolbar{padding:6px 10px;white-space:nowrap}.multi-select .dropdown-menu .toolbar .btn{line-height:12px;padding:7px 15px;border:1px solid #dee2e6;transition:border-color .3s linear,color .3s linear}.multi-select .dropdown-menu .toolbar .btn:hover{border-color:#409eff;color:#409eff}.multi-select .dropdown-menu .toolbar .btn:not(:last-child){margin-right:1rem}.multi-select .dropdown-menu .search{padding:7px 10px;position:relative}.multi-select .dropdown-menu .search .search-text{width:100%;padding-right:30px}.multi-select .dropdown-menu .search .fa-search{position:absolute;left:calc(100% - 34px);top:18px;color:#adb5bd}.multi-select .dropdown-item{display:flex;padding:0 10px;align-items:center;transition:all .3s linear}.multi-select .dropdown-item.active{background-color:#dee2e6;color:inherit}.multi-select .dropdown-item:hover{background-color:#6fd6e6}.multi-select .dropdown-item>span{padding:.375rem .75rem;overflow:hidden;text-overflow:ellipsis}.multi-select .dropdown-item .checkbox-label{display:none}.multi-select.show .dropdown-menu,.multi-select.show .dropdown-menu-arrow{display:block}.multi-select .multi-select-ph{padding:0 1rem;color:#c0c4cc;line-height:35px;position:absolute}.multi-select .dropdown-item .form-label{display:none}.multi-select .dropdown-item .form-check{width:auto}.multi-select .dropdown-item:hover{background-color:#f1faff}.form-select:focus{box-shadow:none}.form-select:hover,.form-select:focus{border-color:#c0c4cc}.form-select.border-primary:hover{box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-select.border-info:hover{box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(23,162,184,.5)}.form-select.border-warning:hover{box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(255,193,7,.5)}.form-select.border-danger:hover{box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(220,53,69,.5)}.form-select.is-valid,.form-select.is-invalid{background-image:none}[data-bs-toggle="lgbSelect"] .dropdown-toggle::after{content:none}[data-bs-toggle="lgbSelect"] .form-select{background-image:none;color:#606266;outline:none;padding-right:calc(1.5em + .75rem);cursor:pointer}[data-bs-toggle="lgbSelect"] .dropdown-menu{margin-top:8px !important;font-size:inherit;cursor:pointer}[data-bs-toggle="lgbSelect"] .dropdown-menu .dropdown-item.disabled{color:#c0c4cc;cursor:not-allowed}[data-bs-toggle="lgbSelect"] .dropdown-menu .dropdown-item.disabled:active{background-color:#f8f9fa}[data-bs-toggle="lgbSelect"] .form-select.is-valid:focus,[data-bs-toggle="lgbSelect"] .was-validated .form-select:valid:focus,.form-select.border-success:hover{box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(40,167,69,.5)}[data-bs-toggle="lgbSelect"] .form-select.is-invalid:focus,[data-bs-toggle="lgbSelect"] .was-validated .form-select:invalid:focus,.form-select.border-danger:hover{box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(220,53,69,.5)}.select .dropdown-menu{max-height:274px;overflow-x:hidden;width:100%}.dropdown-menu-arrow{width:0;height:0;border-width:0 6px 6px;border-style:solid;border-color:transparent transparent rgba(0,0,0,.15);position:absolute;left:20px;margin-top:4px;z-index:1001;display:none}.dropdown-menu-arrow:after{content:" ";width:0;height:0;border-width:0 6px 6px;border-style:solid;border-color:transparent transparent #fff;position:absolute;top:1px;left:-6px}.form-select.show+.form-select-append i{transform:rotate(0)}.dropdown-menu[data-popper-placement="bottom-start"].show+.dropdown-menu-arrow,.dropdown-menu[data-bs-popper="none"].show+.dropdown-menu-arrow{display:block}.dropdown-menu[data-bs-popper="none"].show+.dropdown-menu-arrow{margin-top:2px}.disabled .form-select{background-color:#f5f7fa;border-color:#e4e7ed;color:#c0c4cc;cursor:not-allowed}.disabled .form-select-append{color:#c0c4cc}.form-select-append{position:absolute;height:100%;width:30px;right:0;top:0;color:#c0c4cc;pointer-events:none;display:flex;align-items:center;justify-content:center}.form-select-append i{transition:all .3s;transform:rotate(180deg)}.select .search{padding:7px 10px;position:relative;border-bottom:1px solid #ddd;padding-bottom:.625rem;margin-bottom:.5rem}.select .search .search-text{width:100%;padding-right:30px}.select .search .fa-search{position:absolute;left:calc(100% - 34px);top:18px;color:#adb5bd}.form-select{width:100%}.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size="1"],.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size="1"],.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size="1"],.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size="1"]{background-position:right -1rem center,center right 1.5rem}.skeleton{width:100%;flex:1}.skeleton-content{position:relative}.skeleton-row{min-height:32px;background-color:#e9ecef}.skeleton-row:not(:last-child){margin-bottom:.5rem}.skeleton-content.round .skeleton-col{border-radius:var(--bs-border-radius)}.skeleton-content.active .skeleton-col,.skeleton-content.active .skeleton-avatar{background:-webkit-gradient(linear,left top,right top,color-stop(25%,#f2f2f2),color-stop(37%,#e6e6e6),color-stop(63%,#f2f2f2));background:linear-gradient(90deg,#f2f2f2 25%,#e6e6e6 37%,#f2f2f2 63%);background-size:400% 100%;-webkit-animation:skeleton-loading 1.4s ease infinite;animation:skeleton-loading 1.4s ease infinite}@-webkit-keyframes skeleton-loading{0%{background-position:100% 50%}to{background-position:0 50%}}@keyframes skeleton-loading{0%{background-position:100% 50%}to{background-position:0 50%}}@media(min-width:576px){.skeleton-content .control-label.skeleton-row{margin-bottom:0}}.skeleton-content .form-control.skeleton-row{flex:1}.skeleton-avatar{width:2rem;height:2rem}.skeleton-content.round .skeleton-avatar{border-radius:4px}.skeleton-content .skeleton-avatar.circle{border-radius:50%}.skeleton-table,.skeleton-buttons{border-radius:var(--bs-border-radius);border:1px solid #dee2e6;overflow:hidden}.skeleton-table .skeleton-content .skeleton-row{background:#fff;display:flex;height:39px;padding:.5rem;margin:0}.skeleton-table .skeleton-content .skeleton-row:nth-of-type(odd):not(:first-of-type){background:#f5f8fabf}.skeleton-table .skeleton-content .skeleton-row:first-of-type{border-bottom:2px solid var(--bs-secondary)}.skeleton-table .skeleton-content .skeleton-row .skeleton-col{flex:1;background-color:#e9ecef;margin:5px;height:12.5px}.skeleton-table .skeleton-row:first-of-type .skeleton-col{background:#ddd}.skeleton-toolbar{height:35px;display:flex;margin-bottom:.5rem}.skeleton-buttons{display:inline-flex;overflow:hidden}.skeleton-button{height:35px;width:70px;background-color:var(--bs-secondary);border-color:var(--bs-secondary)}.skeleton-button:not(:last-child){border-right:1px solid #ddd}.slider{flex:1 1 auto}.slider:after{clear:both}.slider:after,.slider:before{display:table;content:""}.slider-runway{width:100%;height:6px;margin:16px 0;background-color:#e4e7ed;border-radius:3px;position:relative;cursor:pointer}.slider-runway.disabled .slider-bar{background-color:#c0c4cc}.slider-runway.disabled .slider-button.dragging,.slider-runway.disabled .slider-button.hover,.slider-runway.disabled .slider-button:hover{transform:scale(1)}.slider-runway.disabled .slider-button{border-color:#c0c4cc}.slider-bar{height:6px;background-color:#409eff;border-top-left-radius:3px;border-bottom-left-radius:3px;position:absolute}.slider-button-wrapper{height:36px;width:36px;position:absolute;top:-15px;transform:translateX(-50%);background-color:transparent;user-select:none;line-height:normal;display:flex;align-items:center;justify-content:center}.slider-button-wrapper:focus{outline:none}.slider-button-wrapper.hover,.slider-button-wrapper:hover{cursor:grab}.slider-button-wrapper.dragging{cursor:grabbing}.slider-button{width:16px;height:16px;border:2px solid #409eff;background-color:#fff;border-radius:50%;transition:.2s;user-select:none;outline:none}.slider-button.dragging,.slider-button.hover,.slider-button:hover{transform:scale(1.3)}.split{display:block;height:100%;width:100%}.split .split-wrapper{display:flex;flex-direction:column;height:100%}.split .split-wrapper.is-horizontal{flex-direction:row}.split.dragging .split-wrapper{cursor:row-resize}.split.dragging .split-wrapper.is-horizontal{cursor:col-resize}.split .split-pane{height:100%;overflow:hidden}.split .split-bar{display:flex;justify-content:center;align-items:center;height:6px;width:100%;background:#f8f8f9;border:1px solid #dcdee2;border-left:none;border-right:none;cursor:row-resize;overflow:unset}.split .split-bar:hover,.split.dragging>.split-wrapper>.split-bar{background-color:#409eff}.split .split-bar:hover .split-trigger-bar,.split.dragging>.split-wrapper>.split-bar .split-trigger-bar{background-color:var(--bs-bg-disabled)}.split .split-trigger{font-size:0;display:inline-block}.split .split-bar .split-trigger-bar{width:1px;height:4px;background:rgba(23,35,61,.25);margin-left:3px;display:inline-block}.split .split-wrapper.is-horizontal>.split-bar{width:6px;height:100%;border:1px solid #dcdee2;border-top:none;border-bottom:none;cursor:col-resize}.split .split-wrapper.is-horizontal>.split-bar .split-trigger-bar{width:4px;height:1px;margin-left:0;margin-top:3px}.steps-header{display:flex}.steps-horizontal{white-space:nowrap}.step{position:relative;flex-shrink:1}.step.is-horizontal{display:inline-block}.step.is-center .step-head,.step.is-center .step-main{text-align:center}.step-head{position:relative;width:100%;line-height:1}.step-head.is-success{color:#67c23a;border-color:#67c23a}.step-head.is-process{color:#303133;border-color:#303133}.step-head.is-wait{color:#c0c4cc;border-color:#c0c4cc}.step-head.is-finish{color:#409eff;border-color:#409eff}.step-head.is-error{color:#f56c6c;border-color:#f56c6c}.step-main{white-space:normal;text-align:left}.step-title{font-size:14px;line-height:38px}.step-title.is-success{color:#67c23a}.step-title.is-finish{color:#409eff}.step-title.is-process{font-weight:700;color:#303133}.step-title.is-wait{color:#c0c4cc}.step-title.is-error{color:#f56c6c}.step-description{padding-right:10%;margin-top:-5px;font-size:12px;line-height:20px;font-weight:400}.step-description.is-success{color:#67c23a}.step-description.is-finish{color:#409eff}.step-description.is-process{color:#303133}.step-description.is-wait{color:#c0c4cc}.step.is-center .step-description{padding-left:20%;padding-right:20%}.step-line{position:absolute;border-color:inherit;background-color:#c0c4cc}.step.is-horizontal .step-line{height:2px;top:11px;left:0;right:0}.step.is-center .step-line{left:50%;right:-50%}.step-line-inner{display:block;border:1px solid;border-color:inherit;transition:.15s ease-out;box-sizing:border-box;width:0;height:0}.step:last-of-type .step-line{display:none}.step-icon{position:relative;z-index:1;display:inline-flex;justify-content:center;align-items:center;width:24px;height:24px;font-size:14px;box-sizing:border-box;background:#fff;transition:.15s ease-out}.step-icon.is-text{border-radius:50%;border:2px solid;border-color:inherit}.step-icon.is-icon{width:40px}.step-icon-inner{display:inline-block;user-select:none;text-align:center;font-weight:700;line-height:1;color:inherit;font-style:normal}.step-icon-inner[class*=fa]:not(.is-status){font-size:25px;font-weight:400}.step:last-of-type.is-flex{flex-basis:auto !important;flex-shrink:0;flex-grow:0}.switch{display:inline-flex;align-items:center;height:35px;width:100%}.switch .switch-core{margin:0;display:inline-block;position:relative;border:1px solid #dcdfe6;outline:none;border-radius:10px;box-sizing:border-box;background:#dcdfe6;cursor:pointer;transition:border-color .3s,background-color .3s;vertical-align:middle}.switch .switch-core:after{content:"";position:absolute;top:1px;left:1px;border-radius:50%;transition:all .3s;width:16px;height:16px;background-color:#fff}.switch .switch-core:before{content:attr(data-inner-text);position:absolute;top:1px;left:calc(100% - 17px);transition:all .3s;font-size:80%;color:#606266}.switch.is-checked .switch-core:after{left:100%;margin-left:-17px}.switch.is-checked .switch-core:before{left:5px;color:#fff}.switch .switch-label{margin-left:10px;cursor:pointer}.switch.disabled{opacity:.6}.switch .switch-inner-text{font-size:80%}td :not(.is-incell) .switch{height:auto}.tabs{display:flex}.tabs,.tabs-body,.tabs-body-content{height:100%}.tabs.tabs-top{flex-flow:column}.tabs.tabs-top.tabs-border-card .tabs-header{margin-bottom:0;border-top-left-radius:var(--bs-border-radius);border-top-right-radius:var(--bs-border-radius)}.tabs.tabs-right{flex-flow:row-reverse}.tabs.tabs-left{flex-flow:row}.tabs.tabs-bottom{flex-flow:column-reverse}.tabs.tabs-card.tabs-bottom .tabs-header{border-top:1px solid #e4e7ed;border-bottom:none}.tabs.tabs-border-card.tabs-bottom .tabs-header{margin-top:0}.tabs .tabs-nav-wrap{position:relative;display:flex}.tabs .tabs-nav-wrap:after{content:"";position:absolute;left:0;bottom:0;width:100%;height:2px;background-color:#e4e7ed}.tabs.tabs-top .tabs-nav-wrap{margin-bottom:-1px}.tabs.tabs-bottom .tabs-nav-wrap{margin-top:-1px}.tabs.tabs-left .tabs-nav-wrap{margin-right:-1px}.tabs.tabs-right .tabs-nav-wrap{margin-left:-1px}.tabs.tabs-top .tabs-nav-wrap,.tabs.tabs-bottom .tabs-nav-wrap{width:100%}.tabs.tabs-top .tabs-nav-wrap.is-scrollable:not(.extend),.tabs.tabs-bottom .tabs-nav-wrap.is-scrollable:not(.extend){padding:0 30px}.tabs.tabs-left .tabs-nav-wrap,.tabs.tabs-right .tabs-nav-wrap{height:100%}.tabs.tabs-left .tabs-nav-wrap:after,.tabs.tabs-right .tabs-nav-wrap:after{left:auto;right:0;width:2px;height:100%}.tabs.tabs-right .tabs-nav-wrap:after{left:0;right:auto}.tabs.tabs-left .tabs-nav-wrap.is-scrollable,.tabs.tabs-right .tabs-nav-wrap.is-scrollable{padding:30px 0}.tabs .tabs-nav-next,.tabs .tabs-nav-prev{position:absolute;cursor:pointer;line-height:40px;height:40px;font-size:16px;color:#909399;width:30px;justify-content:center;align-items:center;display:none}.tabs .tabs-nav-prev{left:0;top:0}.tabs .tabs-nav-next{right:0;top:0}.tabs .tabs-nav-next:hover,.tabs-nav-prev:hover{color:#409eff}.tabs.tabs-left .tabs-nav-prev,.tabs.tabs-right .tabs-nav-prev{top:0;left:calc(50% - 15px);height:30px}.tabs.tabs-left .tabs-nav-prev i:before,.tabs-right .tabs-nav-prev i:before{content:""}.tabs.tabs-left .tabs-nav-next,.tabs.tabs-right .tabs-nav-next{top:auto;bottom:0;left:calc(50% - 15px);height:30px}.tabs.tabs-left .tabs-nav-next i:before,.tabs.tabs-right .tabs-nav-next i:before{content:""}.tabs .tabs-nav-wrap .nav-link-bar{padding:.5rem 1rem;background-color:#fff;border:1px solid #dcdfe6;border-width:0 0 1px 1px;height:39px;cursor:pointer}.tabs .tabs-nav-wrap .nav-link-bar.left{border:1px solid #dcdfe6;border-width:0 1px 1px 0}.tabs .tabs-nav-wrap .nav-link-bar.right{border:1px solid #dcdfe6;border-width:0 0 1px 1px}.tabs .tabs-nav-wrap .dropdown-toggle:after{display:none}.tabs .tabs-nav-wrap .dropdown-item{transition:background-color .3s linear}.tabs .tabs-nav-wrap .dropdown-item:hover{background-color:#409eff}.tabs .tabs-nav-scroll{overflow:hidden;flex:1}.tabs.tabs-card.tabs-top .tabs-nav-scroll{border:solid 1px #ddd;border-radius:var(--bs-border-radius) var(--bs-border-radius) 0 0;border-bottom:none}.tabs.tabs-card.tabs-bottom .tabs-nav-scroll{border:solid 1px #ddd;border-radius:0 0 var(--bs-border-radius) var(--bs-border-radius);border-top:none}.tabs.tabs-card.tabs-left .tabs-nav-scroll{border:solid 1px #ddd;border-radius:var(--bs-border-radius) 0 0 var(--bs-border-radius);border-right:none}.tabs.tabs-card.tabs-right .tabs-nav-scroll{border:solid 1px #ddd;border-radius:0 var(--bs-border-radius) var(--bs-border-radius) 0;border-left:none}.tabs.tabs-left .tabs-nav-scroll,.tabs.tabs-right .tabs-nav-scroll{height:100%}.tabs.tabs-top .tabs-nav-scroll,.tabs.tabs-bottom .tabs-nav-scroll{width:100%}.tabs .tabs-nav{white-space:nowrap;position:relative;display:flex}.tabs.tabs-left .tabs-nav,.tabs.tabs-right .tabs-nav{flex-flow:column}.tabs.tabs-left .tabs-nav .tabs-active-bar,.tabs.tabs-right .tabs-nav .tabs-active-bar{width:2px;height:40px}.tabs.tabs-left .tabs-item{text-align:right}.tabs.tabs-left .tabs-nav .tabs-active-bar{left:auto;right:0;top:auto;bottom:auto}.tabs.tabs-right .tabs-nav .tabs-active-bar{right:auto;left:0;top:auto;bottom:auto}.tabs .tabs-body{padding:1rem}.tabs.tabs-card .tabs-body{border:1px solid #e4e7ed}.tabs.tabs-card.tabs-top .tabs-body{border-top-width:0;border-radius:0 0 4px 4px}.tabs.tabs-card.tabs-bottom .tabs-body{border-bottom-width:0;border-radius:var(--bs-border-radius) var(--bs-border-radius) 0 0}.tabs.tabs-card.tabs-left .tabs-body{border-left-width:0;border-radius:0 var(--bs-border-radius) var(--bs-border-radius) 0}.tabs.tabs-card.tabs-right .tabs-body{border-right-width:0;border-radius:var(--bs-border-radius) 0 0 var(--bs-border-radius)}.is-scrollable .tabs-nav-prev,.is-scrollable .tabs-nav-next{display:flex}.tabs-active-bar{position:absolute;bottom:0;left:0;height:2px;background-color:#409eff;z-index:1;transition:transform .3s cubic-bezier(.645,.045,.355,1);list-style:none}.tabs-item.active{color:#409eff}.tabs-item{padding:0 20px;height:40px;line-height:40px;display:flex;list-style:none;font-weight:500;color:#303133;cursor:pointer;align-items:center;position:relative;transition:color .3s linear,background-color .3s linear}.tabs-item:hover{color:#409eff}.tabs-item .tabs-item-text{padding:0 .25rem;flex:1 1 auto}.tabs-item.is-closeable .tabs-item-text{margin-right:1rem;margin-left:1rem}.tabs-item:hover .tabs-item-close{display:flex}.tabs-item .tabs-item-close{width:18px;height:18px;display:none;position:absolute;right:1rem;justify-content:center;align-items:center;transition:all .3s linear}.tabs-item .tabs-item-close:hover{background-color:#e4e7ed;border-radius:var(--bs-border-radius)}.tabs-content{overflow:hidden;position:relative}.tabs-card.tabs-top .tabs-header{border-bottom:1px solid #e4e7ed}.tabs-card .tabs-header .tabs-item.active{border-bottom-color:#fff}.tabs-card.tabs.tabs-left .tabs-header{border-right:1px solid #e4e7ed}.tabs-card.tabs.tabs-right .tabs-header{border-left:1px solid #e4e7ed}.tabs-card.tabs-bottom .tabs-header .tabs-item.active{border-top-color:#fff}.tabs-card.tabs-left .tabs-header .tabs-item.active{border-right-color:#fff}.tabs-card.tabs-right .tabs-header .tabs-item.active{border-left-color:#fff}.tabs-card .tabs-header .tabs-item:first-child{border-left:none}.tabs-card .tabs-header .tabs-item{border-bottom:1px solid transparent;border-left:1px solid #e4e7ed;transition:color .3s cubic-bezier(.645,.045,.355,1),padding .3s cubic-bezier(.645,.045,.355,1)}.tabs-card .tabs-header .tabs-item{border-bottom:1px solid transparent;border-left:1px solid #e4e7ed;transition:color .3s cubic-bezier(.645,.045,.355,1),padding .3s cubic-bezier(.645,.045,.355,1)}.tabs-card.tabs-top .tabs-header .tabs-item:last-child,.tabs-card.tabs-bottom .tabs-header .tabs-item:last-child{border-right:1px solid #e4e7ed}.tabs-card.tabs-bottom .tabs-header .tabs-item{border-top:1px solid transparent}.tabs-card.tabs-left .tabs-header .tabs-item{border-right:1px solid transparent;border-left:none;border-bottom:1px solid #e4e7ed}.tabs-card.tabs-right .tabs-header .tabs-item{border-left:1px solid transparent;border-right:none;border-bottom:1px solid #e4e7ed}.tabs-border-card{background:#fff;border:1px solid #dcdfe6;box-shadow:0 2px 4px 0 rgba(0,0,0,.12),0 0 6px 0 rgba(0,0,0,.04);border-radius:var(--bs-border-radius)}.tabs-border-card>.tabs-header{background-color:#f5f7fa;margin:0}.tabs-border-card>.tabs-header .tabs-item.active{color:#409eff;background-color:#fff;border-right-color:#dcdfe6;border-left-color:#dcdfe6}.tabs-border-card>.tabs-header .tabs-item{border:1px solid transparent}.tabs-border-card>.tabs-header .tabs-item:not(:hover):not(.active){color:#909399}.tabs-border-card>.tabs-header .tabs-item:not(.active):hover{background-color:#e9ecef}.tabs-border-card.tabs-top .tabs-header{border-bottom:1px solid #e4e7ed}.tabs-border-card.tabs-bottom .tabs-header{border-top:1px solid #e4e7ed}.tabs-border-card.tabs-top .tabs-header .tabs-item{margin-top:-1px}.tabs-border-card.tabs-top .tabs-header .tabs-item:first-child{border-top-left-radius:var(--bs-border-radius)}.tabs-border-card.tabs-left .tabs-header,.tabs-border-card.tabs-right .tabs-header{border-bottom-width:0}.tabs-border-card.tabs-top .tabs-header .tabs-nav-wrap:not(.is-scrollable) .tabs-item,.tabs-border-card.tabs-bottom .tabs-header .tabs-nav-wrap:not(.is-scrollable) .tabs-item{margin-left:-1px}.tabs-border-card.tabs-left .tabs-item.active,.tabs-border-card.tabs-right .tabs-item.active{border-top-color:#dcdfe6;border-bottom-color:#dcdfe6}.tabs-border-card.tabs-left .tabs-item{border-left:none}.tabs-border-card.tabs-right .tabs-item{border-right:none}.tabs-border-card.tabs-left .tabs-item.active{border-right-color:#fff}.tabs-border-card.tabs-right .tabs-item.active{border-left-color:#fff}.tabs-bottom.tabs-border-card>.tabs-header .tabs-item:nth-child(2),.tabs-bottom.tabs-card>.tabs-header .tabs-item:nth-child(2),.tabs-bottom .tabs-left>.tabs-header .tabs-item:nth-child(2),.tabs-bottom .tabs-right>.tabs-header .tabs-item:nth-child(2),.tabs-top.tabs-border-card>.tabs-header .tabs-item:nth-child(2),.tabs-top.tabs-card>.tabs-header .tabs-item:nth-child(2),.tabs-top .tabs-left>.tabs-header .tabs-item:nth-child(2),.tabs-top .tabs-right>.tabs-header .tabs-item:nth-child(2){padding-left:20px}.tabs-bottom.tabs-border-card>.tabs-header .tabs-item:last-child,.tabs-bottom.tabs-card>.tabs-header .tabs-item:last-child,.tabs-bottom .tabs-left>.tabs-header .tabs-item:last-child,.tabs-bottom .tabs-right>.tabs-header .tabs-item:last-child,.tabs-top.tabs-border-card>.tabs-header .tabs-item:last-child,.tabs-top.tabs-card>.tabs-header .tabs-item:last-child,.tabs-top .tabs-left>.tabs-header .tabs-item:last-child,.tabs-top .tabs-right>.tabs-header .tabs-item:last-child{padding-right:20px}.tabs-card>.tabs-header .tabs-nav-wrap:after,.tabs-border-card>.tabs-header .tabs-nav-wrap:after{content:none}.tabs-card .tabs-item.is-closeable .tabs-item-text,.tabs-border-card .tabs-item.is-closeable .tabs-item-text{margin-right:1rem;margin-left:0}.is-page .layout-main>.tabs{margin:-1rem;border:none;border-radius:unset;min-height:calc(100% + 2rem)}.table-container{position:relative}.table-wrapper{border-radius:var(--bs-border-radius);border:1px solid #dee2e6}.table-wrapper thead tr:first-child{border-top:none}.table-wrapper tbody tr:last-child{border-bottom:none}.table-wrapper th:first-child,.table-wrapper td:first-child,.table-wrapper th.fixed-scroll{border-left-width:0}.table-wrapper th:last-child,.table-wrapper td:last-child,.table-wrapper .table-fixed-header th:nth-last-of-type(2){border-right-width:0}.table-wrapper tr:last-child td{border-bottom-width:0}.table-wrapper .table-fixed-body td:last-child{border-right-width:1px}.table-th-checkbox{width:36px}.table-th-checkbox.show-text{width:80px}.table-th-button{width:130px}.table{margin-bottom:0;--bb-table-selected-bg:#9ec6ef}.table thead th,.table tbody td{border-top:none}.table thead th{white-space:nowrap;vertical-align:top}.table thead th.sortable:hover,.table thead th.filterable:hover{background-color:#e9ecef}.table thead th.sortable:hover>.fa{color:#999}.table thead.table-dark th.sortable:hover,.table thead.table-dark th.filterable:hover{background-color:#343a40}.table thead th .table-cell{justify-content:space-between;position:relative}.table thead th .table-cell .table-text{flex:1}.table thead th .table-cell>.fa{content:"";position:absolute;right:-8px;top:-8px;bottom:-8px;width:1.5rem;display:flex;align-items:center;justify-content:center;color:#ddd}.table thead th .table-cell>.fa:hover{background-color:#ddd;color:#606266}.table thead th .table-cell .fa-filter{cursor:pointer}.table thead th .table-cell .fa-filter.active{color:#409eff}.table thead.table-dark th .table-cell>.fa:hover{background-color:#6c757d;color:#fff}.table thead.table-light th .table-cell>.fa{color:#c0c4cc}.table thead.table-light th .table-cell>.fa:hover{color:#495057}.table thead th.sortable .fa-sort-asc,.table thead th.sortable .fa-sort-desc{color:inherit}.table thead th.sortable .table-cell .table-text,.table thead th.filterable .table-cell .table-text{padding-right:1rem}.table thead th.filterable .table-cell .fa-filter{right:-8px}.table thead th.sortable.filterable .table-cell .fa-filter{right:calc(1.5rem - 8px)}.table thead th.sortable.filterable .table-cell .table-text{padding-right:2.5rem;overflow:hidden;text-overflow:ellipsis}.table tfoot{font-weight:bold;border-top:2px solid #dee2e6}.table td,.table th{min-width:0;text-overflow:ellipsis}.table .is-editform .table-cell{overflow:hidden}.table-sm thead th .table-cell>.fa{right:-4px;top:-4px;bottom:-4px}.table-sm thead th.filterable .table-cell .fa-filter{right:-4px}.table-sm thead th.sortable.filterable .table-cell .fa-filter{right:calc(1.5rem - 4px)}.is-clickable tbody tr,.is-clickable .table-row{cursor:pointer}.table-cell{display:flex;align-items:center;word-break:break-all}.table-cell.is-sort{cursor:pointer}.table-cell.is-sort .fa-sort{color:#ddd}.table-cell .btn-group .btn{white-space:nowrap}.table-hover tbody tr.is-detail:hover,.table-hover tbody tr.is-editform,.table-hover tbody tr.is-editform:hover{--bs-table-accent-bg:unset}.table tbody tr.is-master td:first-child{padding-left:0;padding-right:0}.table-toolbar:after{content:"";display:block;clear:both}.table-toolbar .table-toolbar-button{margin-bottom:.5rem}.table-toolbar .table-toolbar-button .table-toolbar-search{border-top-left-radius:4px;border-bottom-left-radius:4px}.table-toolbar .dropdown-menu .dropdown-item span{margin-left:.5rem}.table-toolbar .dropdown-item.hover,.table-toolbar .dropdown-item:hover{color:#fff;background-color:#007bff}.table-pagination.is-top{margin-bottom:.5rem}.table-pagination:not(.is-top){margin-top:.5rem}.btn-gear .dropdown-menu{min-width:initial;padding:0}.btn-gear .dropdown-menu .dropdown-item{padding:6px 12px;display:table-cell;color:#504d4d}.btn-gear .dropdown-menu .dropdown-item:not(:first-child){border-left:solid 1px #aeb2b7}.table-column-right{margin-left:.3125rem}.search-input-tooltip{font-size:.75rem}.search-input-tooltip kbd{display:inline-block;background:#17a2b8;padding:1px 6px}.table-fixed{height:100%}.table-fixed .table{table-layout:fixed}.table-fixed-header{overflow:hidden;border-top-left-radius:var(--bs-border-radius);border-top-right-radius:var(--bs-border-radius)}.table-fixed-body{overflow-x:auto !important;overflow-y:scroll !important}.table-scroll{overflow:auto}.table-scroll .table tbody td .table-cell:not(.is-wrap){white-space:nowrap}.table-cell.is-ellips{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.table-cell.is-ellips.is-resizable{position:absolute;left:12px;right:12px}.table-loading,.table-loader,.form-loader{display:flex;justify-content:center;align-items:center;border:1px solid #ddd;border-radius:var(--bs-border-radius);padding:2rem;flex:1}.table-loader,.form-loader{display:none;opacity:.8;position:absolute;left:0;right:0;top:0;bottom:0;background-color:#f8f9fa;z-index:4}.table-loader.show,.form-loader.show{display:flex}.table-modal-footer{padding-top:1rem;border-top:1px solid #dee2e6;text-align:right}.table tbody tr.active:not(.is-edit),.table-row.active{background-color:var(--bb-table-selected-bg)}.table-hover>tbody>tr.is-detail:hover,.table-hover>tbody>tr.is-edit.active,.table-excel>tbody>tr:hover{--bs-table-accent-bg:none}.table-row{padding:.75rem}.table-row:not(:last-child){border-bottom:1px solid #dee2e6}.table-row:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.table-row:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px}.table-row .table-cell:not(:last-child){padding-bottom:.5rem}.table-row .table-cell label:not(.form-checkbox){font-weight:bold;width:30%;min-width:30%;margin-bottom:0;color:#212529;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-right:6px}.table-row .table-cell>span{display:inherit}.table-row.table-footer{display:flex}.table-row.table-footer .table-cell{padding-bottom:0}.table-row.table-footer .table-cell:first-child{font-weight:bold;width:30%;margin-bottom:0;color:#212529;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.table-fixed-column .table{table-layout:fixed;border-collapse:separate;border-spacing:0}.table-fixed-column .table .fixed,.table-fixed-column .table .fixed-scroll{background-color:#fff}.table-fixed-column .table tr .fixed{position:sticky;z-index:2}.table-fixed-column .table th,.table-fixed-column .table td{border-left-width:0;border-top-width:0}.table-fixed-column .table .table-light .fixed,.table-fixed-column .table .table-light .fixed-scroll,.table-fixed-column .table .table-dark .fixed,.table-fixed-column .table .table-dark .fixed-scroll{background-color:var(--bs-table-bg)}.table-fixed-column .table .fixed{border-right:1px solid #409eff}.table-fixed-column .table .fixed-right{border-right:inherit;border-left:1px solid #409eff}.table-fixed-column .fixed-scroll{position:sticky;right:0;background-color:var(--bs-table-bg)}.table .is-bar{padding:0;justify-content:center}.table .is-bar .fa-caret-right{width:20px;height:20px;border-radius:50%;display:inline-flex;justify-content:center;align-items:center;cursor:pointer;transition:background-color .3s linear,transform .3s linear}.table .is-bar .fa-caret-right:hover{background-color:#ddd}.table .is-detail{display:none}.table .is-detail.show{display:table-row}.table .table-cell .table-container,.table .table-cell .tabs,.table .table-cell form{flex:1}.table .table-cell .tabs .tabs-body{padding:1rem 0 0 0}.table-resize thead th,.table-resize tbody td{position:relative}.table-resize thead th .col-resizer{width:.25rem;display:block;position:absolute;top:0;right:0;bottom:0;cursor:col-resize}.table-resize .border-resize{border-right:1px solid #409eff}.table .table-cell.is-tree{cursor:pointer}.table-cell.is-incell{margin:-7px -6px}.table-cell.is-incell .switch{padding-left:6px}.table-cell.is-incell .select{width:100%}.table-cell .is-node .is-tree{transition:transform .3s linear}.table-sm .table-cell.is-incell{margin:-.25rem}.table-sm .table-cell.is-incell .form-control{height:calc(1.5em + .75rem - 3px)}.table-sm .table-cell.is-incell .switch{height:30px;padding-left:4px}.table-bordered thead tr:last-child>th{border-bottom-width:2px !important;border-bottom-color:var(--bs-secondary)}.table-striped>tbody>tr.is-master:nth-of-type(odd){--bs-table-accent-bg:#fff}.table-striped>tbody>tr.is-master:nth-of-type(odd).active{--bs-table-accent-bg:var(--bb-table-selected-bg)}.table-striped>tbody>tr.is-master:nth-of-type(4n+1){--bs-table-accent-bg:var(--bs-table-striped-bg);color:var(--bs-table-striped-color)}.table-wrapper .empty-text{padding:1rem}form .table .table-cell>.form-label{display:none}form .table .table-cell>textarea{width:100%}.table-search{margin-bottom:.5rem}.table-search .card-header{padding:0}.table-search .card-header .table-search-title{padding:.5rem 1rem;flex:1;cursor:pointer}.table-search .card-header .table-search-buttons{padding:.25rem 1rem}.table-search .card-header .table-search-buttons .btn{padding:.275rem .5rem}.table-search-collapse{flex:1;display:flex;align-items:center;padding:0 1rem}.table-search-collapse .table-search-collapse-arrow{cursor:pointer;transition:.3s transform linear;transform:rotate(0)}.table-search-collapse.is-open .table-search-collapse-arrow{transform:rotate(90deg)}.table-search-collapse .table-search-collapse-title{cursor:pointer;margin-left:.5rem;flex:1}.table-search .collapsed .card-header{border-bottom-color:transparent}.table-search .card-header .input-group,.table-search .collapsed .input-group+.table-search-buttons{display:none}.table-search .card-header .input-group{width:auto;padding:2px}.table-search .card-header .input-group .table-toolbar-search,.table-search .card-header .input-group .btn{height:34px}.table-search .collapsed .input-group{display:flex}.table-excel-toolbar{display:none;position:absolute}.table-excel.table>:not(caption):not(thead)>*>*{padding:0}.table-excel tbody .table-cell>.form-check{padding:6px 8px}.table-excel tbody .table-cell .switch{padding:.375rem .1875rem;justify-content:center}.table-excel .form-control,.table-excel .table-cell .select .form-select{border:none;border-radius:0;padding:.375rem .1875rem}.table-excel .table-cell .select{width:100%}.table-excel .table-cell>.disabled{background-color:var(--bs-bg-disabled);width:100%;padding:.375rem .1875rem}.table-excel .datetime-picker-input{padding-left:2rem}.table-excel .datetime-picker-input-icon{line-height:32px}.table-excel.table tbody tr.active{background-color:transparent}.table-cell.text-center,.table-cell.text-center .switch{justify-content:center}.table-cell.text-center input{text-align:center}.table-cell.text-end,.table-cell.text-end .switch{justify-content:end}.table-cell.text-end input{text-align:right}.table-cell>.progress{flex:1}.table-cell.is-ph{height:12.5px;background-color:#e9ecef;border-radius:var(--bs-border-radius);margin:5px 0}.table-cell .is-dbcell{display:flex;cursor:pointer;position:relative}.table-cell .is-dbcell:hover:before{content:"";position:absolute;bottom:-3px;height:1px;width:100%;background-color:var(--bs-primary)}.table-cell .is-node{width:18px}.table-cell .tag{line-height:22px}.table-cell .is-color{width:28px;height:21px;border-radius:.25rem}.tag{display:inline-flex;padding:0 10px;line-height:30px;font-size:12px;border-radius:var(--bs-border-radius);white-space:nowrap;align-items:center}.tag>i+.tag-text{margin-left:4px}.tag>.btn-close{margin-left:8px;width:4px;height:4px}.timer .time-panel-footer{display:flex;justify-content:space-between}.timer .time-panel-btn{border:1px solid transparent;border-radius:var(--bs-border-radius);transition:border .3s linear;padding:0 .65rem}.timer .time-panel-btn:hover{border-color:#ddd}.timer .time-panel-btn.confirm{color:#28a745}.timer .circle-title{flex-flow:column nowrap;bottom:66px}.timer .timer-body{font-size:3.5rem}.timer .timer-alert{font-size:1rem}.timer .timer-alert i{margin-right:.5rem}.timer .timer-buttons{display:flex;justify-content:space-between}.timer .timer-buttons .btn{border:5px double #949496;border-radius:50%;height:66px;width:66px;font-size:.75rem !important;padding:0}.toast-container{position:fixed;z-index:1090}.toast{overflow:hidden;width:246px;cursor:pointer;display:none;transition:transform .3s linear,opacity .3s linear;transform:translateX(100%);background-color:#fff}.toast.show{transform:translateX(0)}.toast.left{transform:translateX(-100%)}.toast.left.show{transform:translateX(0)}.toast:hover{box-shadow:0 1px .75rem rgba(0,0,0,.15)}.toast .toast-progress{position:absolute;right:0;bottom:0;height:4px;width:0}.toast.left .toast-progress{left:0;right:unset}.toast .btn-close{height:4px;width:4px;margin:0}@media(min-width:375px){.toast{min-width:300px}}@media(min-width:576px){.toast{min-width:320px}}.btn-toggle{position:relative;overflow:hidden;border:1px solid #c0c4cc;min-width:70px;min-height:35px}.btn-toggle.off .toggle-group{left:-100%}.btn-toggle .btn-default,.btn-toggle.btn-default{background-color:#e0e0e0;border-color:#ccc;box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075)}.btn-toggle .btn-default:hover{color:#333;background-color:#d4d4d4}.btn-toggle .toggle-group{position:absolute;width:200%;top:0;bottom:0;left:0;-webkit-transition:left .35s;-moz-user-select:none;-webkit-user-select:none;transition:left .35s}.btn-toggle .toggle-group label{display:flex;align-items:center;justify-content:center}.btn-toggle .toggle-group label,.btn-toggle .toggle-group span{cursor:pointer}.btn-toggle .toggle-group .toggle-on.bg-dark{color:#e4e7ed}.btn-toggle .btn-handle{position:relative;margin:0 auto;padding-top:0;padding-bottom:0;height:100%;width:0;border-width:0 1px;background-image:linear-gradient(to bottom,#fff 0%,#e0e0e0 100%);border-color:#ccc;box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075)}.btn-toggle .toggle-on{position:absolute;top:0;bottom:0;left:0;right:50%;margin:0;border:0;border-radius:0}.btn-toggle .toggle-on.btn{padding-right:24px}.btn-toggle .toggle-on.btn-lg{padding-right:31px}.btn-toggle.off .toggle-off{color:#333}.btn-toggle .toggle-off{position:absolute;top:0;bottom:0;left:50%;right:0;margin:0;border:0;border-radius:0;background-color:#e0e0e0}.btn-toggle .toggle-off.btn{padding-left:24px}.btn-toggle .toggle-off.btn-lg{padding-left:31px}.btn-toggle.btn-lg{min-width:79px;min-height:45px}.toggle-handle.btn-lg{width:40px}.btn-toggle.btn-sm{min-width:50px;min-height:30px}.toggle-on.btn-sm{padding-right:20px}.toggle-off.btn-sm{padding-left:20px}.btn-toggle.btn-xs{min-width:35px;min-height:22px}.toggle-on.btn-xs{padding-right:12px}.toggle-off.btn-xs{padding-left:12px}.tooltip-inner{max-width:768px}.is-invalid .tooltip-inner{background-color:#dc3545}.is-invalid.bs-tooltip-auto[x-placement^=top] .tooltip-arrow::before,.is-invalid.bs-tooltip-top .tooltip-arrow::before{border-top-color:#dc3545}.is-invalid.bs-tooltip-auto[x-placement^=bottom] .tooltip-arrow::before,.is-invalid.bs-tooltip-bottom .tooltip-arrow::before{border-bottom-color:#dc3545}.is-invalid.bs-tooltip-auto[x-placement^=left] .tooltip-arrow::before,.is-invalid.bs-tooltip-left .tooltip-arrow::before{border-left-color:#dc3545}.is-invalid.bs-tooltip-auto[x-placement^=right] .tooltip-arrow::before,.is-invalid.bs-tooltip-right .tooltip-arrow::before{border-right-color:#dc3545}.transfer{font-size:14px}.transfer-panel{border:1px solid var(--bs-border-color);border-radius:var(--bs-border-radius);overflow:hidden;background:#fff;display:inline-block;vertical-align:middle;width:200px;max-height:100%;box-sizing:border-box;position:relative}.transfer-panel.is-invalid{border:1px solid #dc3545}.transfer-panel.is-valid{border:1px solid #28a745}.transfer-panel .transfer-panel-header{height:40px;line-height:40px;background:#f5f7fa;margin:0;padding-left:15px;border-bottom:1px solid var(--bs-border-color);color:#000}.transfer-panel-body{height:246px}.transfer-panel-list{margin:0;padding:6px 0;list-style:none;height:246px}.transfer-panel-list.search{height:214px}.transfer-panel-item{height:30px;line-height:30px;padding-left:15px;display:block}.transfer-panel-item .form-check-input{margin:7px 0}.transfer-buttons{display:inline-block;vertical-align:middle;padding:0 30px}.transfer-buttons .btn{white-space:nowrap}.transfer-buttons .btn:not(:first-child){margin-left:10px}.transfer-buttons .disabled,.transfer-buttons .disabled:active,.transfer-buttons .disabled:focus,.transfer-buttons .disabled:hover,.transfer-buttons [disabled]{color:#fff;background-color:#a0cfff;border-color:#a0cfff}.transfer-panel-filter{text-align:center;margin:.5rem 1rem 0 1rem;display:block;width:auto;position:relative}.transfer-panel-filter .input-inner{height:32px;line-height:32px;width:100%;display:inline-block;border-radius:var(--bs-border-radius);padding-right:10px;padding-left:30px;border:1px solid #dcdfe6;transition:border-color .2s cubic-bezier(.645,.045,.355,1);color:#606266}.transfer-panel-filter .input-inner:focus{outline:none;border-color:#409eff}.transfer-panel-filter .input-prefix{height:100%;width:30px;transition:all .3s;position:absolute;left:4px;top:0;display:flex;align-items:center;justify-content:center;color:#c0c4cc}.transfer-panel-filter .input-prefix:not(.disabled):hover i:before,.transfer-panel-filter .input-prefix.is-on i:before{cursor:pointer;content:""}.transfer-panel-filter .input-prefix.disabled:hover i:before{cursor:not-allowed}.transfer-panel-header .form-check .form-check-input{margin:12px 0}.transfer-panel-body .form-check-label{max-width:160px}.tree{position:relative}.tree .tree-root{padding:0;margin:0}.tree .tree-ul{padding:0 0 0 20px;margin:0;display:none}.tree .tree-ul.show{display:block}.tree .tree-item{list-style:none;cursor:pointer;margin:1px 0}.tree .tree-item:before{content:"";position:absolute;left:0;width:100%;height:29px;transition:background-color .3s linear}.tree .tree-item.hover:before{background-color:#66a2e0a1}.tree .tree-item.active:before{background-color:#409effa1}.tree .tree-item .tree-content{position:relative;display:flex;padding:.25rem 0;align-items:center}.tree .tree-item .tree-content .fa-caret-right{width:18px;height:18px;transition:transform .3s linear;display:flex;align-items:center;justify-content:center}.tree .tree-item .tree-content .show .fa-caret-right{transform:rotate(90deg)}.tree .tree-node{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center}.tree .form-check{margin:0 4px}.tree-icon{width:18px}.upload .upload-body{margin-top:10px}.upload .upload-body.is-list{overflow:auto;max-height:240px}.upload .upload-body.is-list .upload-item{display:flex;align-items:center;padding:3px 5px;border-radius:var(--bs-border-radius);transition:background-color .3s linear;cursor:pointer;position:relative}.upload .upload-body.is-list .upload-item.is-invalid{color:#dc3545}.upload .upload-body.is-list .upload-item:hover{background-color:var(--bs-bg-disabled)}.upload .upload-body.is-list .upload-item:not(:last-child){margin-bottom:2px}.upload .upload-body.is-list .upload-item:hover .fa-trash-o{display:inline-block}.upload .upload-body.is-list .upload-item .fn{flex:1;padding:0 5px;display:flex;overflow:hidden}.upload .upload-body.is-list .upload-item .fn span:first-child{max-width:calc(100% - 4rem);overflow:hidden;text-overflow:ellipsis;display:block;white-space:nowrap;padding-right:.25rem}.upload .upload-body.is-list .upload-item .fa-trash-o,.upload .upload-body.is-list .upload-item:not(.disabled):hover .fa-check-circle-o,.upload .upload-body.is-list .upload-item:hover .fa-times-circle-o,.upload .upload-body.is-avatar .upload-item .upload-item-delete,.upload .upload-body.is-avatar .upload-item.is-invalid .upload-item-spin,.upload .upload-body.is-avatar .upload-item.is-valid .upload-item-spin,.upload .upload-item.is-invalid .fa-check,.upload .upload-item.is-valid .fa-times,.upload .upload-body.is-avatar .upload-item.disabled .upload-item-plus{display:none}.upload .upload-body.is-avatar,.upload .upload-body.is-card{margin:0;display:flex;flex-wrap:wrap}.upload .upload-body.is-avatar .upload-item{padding:0;position:relative;border:1px dashed #d9d9d9;border-radius:6px;margin-right:1rem;margin-bottom:1rem;overflow:hidden;cursor:pointer}.upload .upload-body.is-avatar .upload-item.is-invalid{border-color:#dc3545;border-style:solid}.upload .upload-body.is-avatar .upload-item.is-circle{border-radius:50%}.upload .upload-body.is-avatar .upload-item:not(.is-form):hover,.upload .upload-body.is-avatar .upload-item:not(.is-form).is-valid,.upload .upload-body.is-card .upload-item.is-valid,.upload .upload-body.is-card .upload-item:not(.disabled):hover{border-color:#409eff}.upload .upload-body.is-avatar .upload-item.is-valid{border-style:solid}.upload .upload-body.is-avatar .upload-item.is-invalid .avatar{color:#dc3545}.upload .upload-body.is-avatar .upload-item .avatar{width:100%;height:100%;background-color:#fff}.upload .upload-body.is-avatar .upload-item .upload-item-actions,.upload .upload-body.is-card .upload-item .upload-item-actions.btn-browser{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center}.upload .upload-body.is-avatar .upload-item .upload-item-actions .fa{font-size:1rem}.upload .upload-body.is-avatar .upload-item:hover .upload-item-actions .upload-item-delete{display:block}.upload .upload-body.is-card .upload-item{padding:1rem;box-shadow:0 0 10px 0 rgba(0,0,0,.2);border:1px solid #d9d9d9;border-radius:6px;width:240px;height:280px;position:relative;cursor:pointer;margin-right:1rem;margin-bottom:1rem;overflow:hidden}.upload .upload-body.is-card .upload-item .upload-item-actions{display:flex;justify-content:space-between}.upload .upload-body.is-card .upload-item.is-valid .upload-item-body img,.upload .upload-body .upload-item.is-valid .upload-item-label,.upload .upload-body .upload-item.is-invalid .upload-item-label{display:block}.upload .upload-body.is-card .is-invalid .upload-item-body{border-color:#dc3545}.upload .upload-body.is-card .upload-item-body{border-radius:var(--bs-border-radius);width:168px;height:168px;border:1px solid #d9d9d9;margin:0 auto;display:flex;align-items:center;justify-content:center;overflow:hidden}.upload .upload-body.is-card .upload-item-body img{width:100%;object-fit:cover;display:none}.upload .upload-body.is-card .upload-item-body .fa{font-size:1.5rem}.upload .upload-body.is-card .upload-item-size{margin:1rem auto;text-align:center;font-size:.625rem;display:flex;justify-content:center}.upload .upload-body.is-card .upload-item-size span{max-width:calc(100% - 4.5rem);overflow:hidden;text-overflow:ellipsis;display:block;white-space:nowrap;padding-right:.25rem}.upload .upload-item .upload-item-label{position:absolute;top:-2px;right:-14px;text-align:center;transform:rotate(45deg);color:#fff;width:46px;height:20px;background-color:#28a745;display:none}.upload .upload-item .upload-item-label .fa-check{transform:rotate(-45deg);font-size:12px}.upload .upload-item.is-invalid .upload-item-label{background-color:#dc3545}.upload .progress{position:absolute;left:0;right:0;bottom:0}.upload .upload-body.is-card .progress{left:1rem;right:1rem;bottom:56px}.upload .upload-item.is-valid .progress,.upload .upload-item.is-invalid .progress{display:none}.upload .upload-body.is-card.is-single .upload-item{margin:0} \ No newline at end of file +:root{--bs-border-radius:.25rem;--bs-bg-disabled:#ebeef5;--bs-border-color:#ebeef5}#components-reconnect-modal{z-index:2000 !important}:fullscreen{background-color:#fff}body,.form-control,.dropdown-menu,.form-select,.btn:not(.btn-xs):not(.btn-sm):not(.btn-md):not(.btn-lg):not(.btn-xl),.input-group-text{font-size:.875rem}.btn-close:focus{box-shadow:none}:focus,button:focus{outline:none}a{cursor:pointer}a,a:hover,a:focus{text-decoration:none;outline:none}.form-control.is-invalid,.was-validated .form-control:invalid,.form-control.is-valid,.was-validated .form-control:valid,.form-control.valid.modified:not([type=checkbox]){outline:none}.form-control.is-display{height:35px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.table-cell .form-control.is-display,form .form-control.is-display{background-color:var(--bs-bg-disabled)}[disabled],:disabled,.disabled,.disabled>*{cursor:not-allowed !important}.form-control:focus{border-color:#66afe9;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.control-label{margin-right:10px;width:90px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;display:block}.was-validated .form-control:invalid:focus,.form-control.is-invalid:focus,.was-validated .custom-select:invalid:focus,.custom-select.is-invalid:focus{border-color:#dc3545;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(220,53,69,.6)}.was-validated .form-control:valid:focus,.form-control.is-valid:focus,.was-validated .custom-select:valid:focus,.custom-select.is-valid:focus{border-color:#28a745;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(40,167,69,.6)}.arrow-primary{border-color:transparent transparent #0d6efd}.arrow-success{border-color:transparent transparent #198754}.arrow-info{border-color:transparent transparent #0dcaf0}.arrow-warning{border-color:transparent transparent #ffc107}.arrow-danger{border-color:transparent transparent #dc3545}.show .shadow-primary,.shadow-primary:hover,.shadow-primary:focus{box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(0,123,255,.5);border-color:#0d6efd !important}.show .shadow-success,.shadow-success:hover,.shadow-success:focus{box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(40,167,69,.5);border-color:#198754 !important}.show .shadow-info,.shadow-info:hover,.shadow-info:focus{box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(23,162,184,.5);border-color:#0dcaf0 !important}.show .shadow-warning,.shadow-warning:hover,.shadow-warning:focus{box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(255,193,7,.5);border-color:#ffc107 !important}.show .shadow-danger,.shadow-danger:hover,.shadow-danger:focus{box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(220,53,69,.5);border:1px solid #dc3545 !important}.show .shadow-secondary,.shadow-secondary:hover,.shadow-secondary:focus{box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px #c0c4cc;border:1px solid #6c757d !important}.show .shadow-dark,.shadow-dark:hover,.shadow-dark:focus{box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px #c0c4cc;border:1px solid #343a40 !important}.show .shadow-default,.shadow-default:hover,.shadow-default:focus{box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);border:1px solid #337ab7}.swal{position:fixed;z-index:1070}.swal .modal-header{display:none}.swal2-icon,.swal2-actions{display:flex}.swal2-actions{margin-bottom:1rem}.close{display:flex}.captcha{border-radius:4px;box-shadow:0 0 10px rgba(0,0,0,.125)}.captcha-refresh{float:right;cursor:pointer;padding-left:.5rem}.captcha-body{position:relative}.captcha-body .captcha-load{display:flex;align-items:center;justify-content:center}.captcha-body .captcha-body-bg,.captcha-body .captcha-body-bar{position:absolute;border-radius:2px;top:0;left:0}.captcha-footer{text-align:center;background:#f7f9fa;color:#45494c;border-radius:2px;margin-top:.5rem;position:relative}.captcha-footer,.captcha-bar-bg{line-height:40px;height:40px}.captcha-bar-bg{position:absolute;border-radius:4px}.captcha-bar{position:absolute;top:0;left:0;width:40px;height:40px;background:#fff;box-shadow:0 0 3px rgba(0,0,0,.3);cursor:pointer;border-radius:2px;display:flex;align-items:center;justify-content:center}.captcha-footer.is-move .captcha-bar-text{display:none}.captcha-footer.is-move .captcha-bar-bg{border:1px solid #1991fa;background-color:#d1e9fe}.captcha-footer.is-valid .captcha-bar .fa-arrow-right:before{content:""}.captcha-footer.is-invalid .captcha-bar{border:1px solid #f57a7a;background-color:#f57a7a}.captcha-footer.is-invalid .captcha-bar-bg{border:1px solid #f57a7a;background-color:#fce1e1;border-width:1px 0 1px 1px}.captcha-footer.is-invalid .captcha-bar .fa-arrow-right:before{content:""}.captcha-footer.is-valid .captcha-bar{border:1px solid #52ccba;background-color:#52ccba}.captcha-footer.is-valid .captcha-bar-bg{border:1px solid #52ccba;border-width:1px 0 1px 1px;background-color:#d2f4ef}.captcha-footer.is-valid .captcha-bar .fa-arrow-right:before{content:""}.avatar{border-radius:4px;width:50px;height:50px;overflow:hidden;display:inline-flex;justify-content:center;align-items:center;background:#c0c4cc;color:#fff}.avatar img{width:100%;object-fit:cover}.avatar.is-circle{border-radius:50%}.avatar.is-xl{width:70px;height:70px}.avatar.is-lg{width:60px;height:60px}.avatar.is-sm{width:40px;height:40px}.avatar.is-xs{width:30px;height:30px}.avatar i{font-size:1.4rem}.timeline{margin:0;padding:0;list-style:none}.timeline .time-line-item{position:relative;padding-bottom:1rem}.timeline .time-line-item:last-child{padding-bottom:0}.timeline .time-line-item .time-line-item-tail{position:absolute;left:4px;height:100%;border-left:2px solid #e4e7ed}.timeline .time-line-item:last-child .time-line-item-tail{display:none}.timeline .timeline-item-node-normal{left:-1px;width:12px;height:12px}.timeline .timeline-item-node{position:absolute;background-color:#e4e7ed;border-radius:50%;display:flex;justify-content:center;align-items:center}.timeline .timeline-item-node.is-icon{background-color:transparent}.timeline .timeline-item-wrapper{position:relative;padding-left:1.5rem;top:-4px}.timeline .timeline-item-content{color:#303133}.timeline .timeline-item-timestamp{margin-top:.5rem;color:#909399}.timeline.is-alternate .time-line-item-tail,.timeline.is-alternate .timeline-item-node{left:50%}.timeline.is-alternate .timeline-item-node{margin-left:-5px}.timeline.is-alternate .time-line-item:nth-child(odd) .timeline-item-wrapper{left:calc(50% - 5px);width:calc(50% - 1rem);text-align:left}.timeline.is-alternate .time-line-item:nth-child(even) .timeline-item-wrapper{width:calc(50% - 1rem);margin:0;text-align:right}.timeline.is-left .time-line-item-tail,.timeline.is-left .timeline-item-node{left:100%}.timeline.is-left .timeline-item-node{margin-left:-5px}.timeline.is-left .time-line-item .timeline-item-wrapper{width:calc(100% - 1rem);margin:0;text-align:right}.footer{background:#5b6e84;color:#fff;padding:10px 4px;height:40px;display:flex}.footer .footer-text{flex:1 1 auto;text-align:center}.circle{display:inline-block;position:relative}.circle-progress{transition:stroke-dashoffset .3s linear}.circle-primary{stroke:#1593ff}.circle-danger{stroke:#dc3545}.circle-success{stroke:#28a745}.circle-warning{stroke:#ffc107}.circle-info{stroke:#17a2b8}.circle-secondary{stroke:#6c757d}.circle-dark{stroke:#343a40}.circle-title{display:flex;justify-content:center;align-items:center;position:absolute;top:0;bottom:0;left:0;right:0}.input-number-fix::-webkit-outer-spin-button,.input-number-fix::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;-moz-appearance:textfield}@media(min-width:576px){.row.form-inline textarea.form-control{width:calc(100% - 100px)}}.ef-loading{display:flex;justify-content:center;align-items:center;border:1px solid #ddd;border-radius:4px;padding:2rem}form .form-label:before{content:"";position:relative;top:2px;margin-right:2px;display:inline-block;min-width:5px}form .form-label[required]:before{content:"*";color:#f00}.form-control.is-valid[type="number"],.form-control.is-invalid[type="number"]{padding-right:.75rem;background-image:none}.transfer-panel-empty{position:absolute;top:35%;width:100%}.pulse{position:relative}.pulse.pulse-white .pulse-ring{border-color:#fff}.pulse.pulse-light .pulse-ring{border-color:#f5f8fa}.pulse.pulse-primary .pulse-ring{border-color:#009ef7}.pulse.pulse-secondary .pulse-ring{border-color:#e4e6ef}.pulse.pulse-success .pulse-ring{border-color:#50cd89}.pulse.pulse-info .pulse-ring{border-color:#7239ea}.pulse.pulse-warning .pulse-ring{border-color:#ffc700}.pulse.pulse-danger .pulse-ring{border-color:#f1416c}.pulse.pulse-dark .pulse-ring{border-color:#181c32}.pulse-ring{display:block;border-radius:40px;height:40px;width:40px;position:absolute;animation:animation-pulse 3.5s ease-out;animation-iteration-count:infinite;opacity:0;border-width:3px;border-style:solid;border-color:#a1a5b7}@keyframes animation-pulse{0%{-webkit-transform:scale(.1,.1);opacity:0}60%{-webkit-transform:scale(.1,.1);opacity:0}65%{opacity:1}100%{-webkit-transform:scale(1.2,1.2);opacity:0}}.fs-on,.fs-open .fs{display:none}.fs-open .fs-on{display:block}.arrow-danger{border-color:transparent transparent var(--bs-danger)}.arrow-success{border-color:transparent transparent var(--bs-success)}.arrow-primary{border-color:transparent transparent var(--bs-primary)}.arrow-warning{border-color:transparent transparent var(--bs-warning)}.arrow-info{border-color:transparent transparent var(--bs-info)}.alert i{margin-right:.5rem}.alert .btn-close{position:absolute;top:22px;right:1rem;height:4px;width:4px}.alert.is-close .alert-content{margin-right:1rem}.alert.is-bar.alert-info{border-left:4px solid var(--bs-info);background-color:#ecf8ff}.alert.is-bar.alert-success{border-left:4px solid var(--bs-success);background-color:#c3e6cb}.alert.is-bar.alert-primary{border-left:4px solid var(--bs-primary);background-color:#daeafc}.alert.is-bar.alert-warning{border-left:4px solid var(--bs-warning);background-color:#fffcf2}.alert.is-bar.alert-danger{border-left:4px solid var(--bs-danger);background-color:#faeaec}.anchor-link{cursor:pointer;display:inline-block}.anchor-link>i{opacity:0;margin-left:.5rem;color:var(--bs-primary);transition:opacity .3s linear}.anchor-link:hover>i{opacity:1}.auto-complete{position:relative}.auto-complete input{padding-right:30px}.auto-complete .select-dropdown{position:absolute;top:40px;left:0;right:0;display:none;z-index:2}.auto-complete .select-dropdown .dropdown-list{max-height:300px;overflow:auto;padding:6px 0;list-style:none;margin:0;background-color:#fff;box-shadow:0 2px 8px rgba(0,0,0,.176);border:1px solid rgba(0,0,0,.15);border-radius:var(--bs-border-radius)}.auto-complete .select-dropdown .dropdown-list .dropdown-item{padding:6px 20px}.auto-complete.is-complete .select-dropdown{display:block}.auto-complete .fa-spin{position:absolute;top:10.5px;right:8px;display:none}.auto-complete.is-loading .fa-spin{display:inline-block}.search .auto-complete .fa-spin{position:unset;display:inline-block}.scanner .scanner-video video{width:300px;height:170px;border:1px solid #ddd;border-radius:var(--bs-border-radius)}.scanner .scanner-image{display:none}.btn:focus,.btn:active:focus,.show>.dropdown-toggle:focus{box-shadow:none !important}.btn-xs,.btn-group-xs>.btn{border-radius:.2rem;padding:.0625rem .3125rem;font-size:.75rem}.btn-xl,.btn-group-xl>.btn{padding:.8rem 1.25rem;font-size:1.35rem;border-radius:.4rem}.btn .badge,.btn i+span,.badge i+span{margin-left:4px}.btn.is-circle{border-radius:50%;width:45px;height:45px}.btn.is-round{border-radius:20px}.btn-block{width:100%}.calendar-header{display:flex;justify-content:space-between;padding:12px 20px;border-bottom:1px solid var(--bs-border-color)}.calendar-title{color:#000;align-self:center;font-size:1rem}.calendar-button-group .btn{line-height:1;white-space:nowrap;cursor:pointer;background:#fff;border:1px solid #dcdfe6;color:#606266;outline:none;margin:0;transition:.3s;padding:7px 15px;font-size:12px}.calendar-button-group .btn:focus,.calendar-button-group .btn:hover{color:#409eff;border-color:#c6e2ff;background-color:#ecf5ff}.calendar-button-group .btn:active{color:#3a8ee6;border-color:#3a8ee6;outline:none}.calendar-table{table-layout:fixed;width:100%}.calendar-table thead th{padding:12px 0;color:#606266;font-weight:400;text-align:center}.calendar-table:not(.is-range) td.next,.calendar-table:not(.is-range) td.prev{color:#c0c4cc}.calendar-table tr td:first-child{border-left:1px solid var(--bs-border-color)}.calendar-table tr:first-child td{border-top:1px solid var(--bs-border-color)}.calendar-table td{border-bottom:1px solid var(--bs-border-color);border-right:1px solid var(--bs-border-color);vertical-align:top;transition:background-color .2s ease;cursor:pointer}.calendar-table td.is-today{color:#409eff}.calendar-table td.is-selected{color:#1989fa}.calendar-table td.is-selected{background-color:#f2f8fe}.calendar-table .calendar-day{box-sizing:border-box;padding:8px;height:85px}.calendar-table .calendar-day:hover{cursor:pointer;background-color:#f2f8fe}.calendar-table:not(.is-range) td.next,.calendar-table:not(.is-range) td.prev{color:#c0c4cc}.calendar .table-week .week-header{border-radius:50%;border:1px solid transparent;padding:4px;display:inline-block;min-width:52px}.calendar .table-week .week-header.is-today{border:1px solid #409eff;color:#409eff}.calendar .table-week thead tr:last-child{border-bottom:2px solid #dee2e6}.calendar .table-week tbody tr{text-align:center}.calendar .table-week tbody td{padding:1rem 0;border-right:0;border-left:0;position:relative}.camera .camera-header{width:300px;height:170px;border:1px solid #ddd;border-radius:var(--bs-border-radius)}.camera canvas{display:none}.card .card-collapse{flex:1;display:flex;align-items:center;cursor:pointer}.card .card-title{margin:0 0 0 1rem}.card .card-collapse-arrow{transition:transform .3s linear}.card .is-open .card-collapse-arrow{transform:rotate(90deg)}.card-shadow{transition:box-shadow .3s linear;box-shadow:0 0 8px 0 #e8edfa99,0 2px 4px 0 #e8edfa80}.card-shadow:hover{box-shadow:0 1px 7px 0 #0000000d,0 2px 8px 0 #00000012,0 3px 9px 0 #0000000f,0 5px 10px 0 #00000008}.card-header .tag{line-height:21px}.carousel{overflow:hidden}.carousel [data-bs-slide]{outline:none;padding:0;margin:0 .5rem;height:36px;width:36px;cursor:pointer;transition:.3s;border-radius:50%;background-color:rgba(31,45,61,.5);border:solid 1px #e9ecef;color:#fff;top:50%;transform:translateY(-50%);text-align:center;font-size:1rem}.carousel:not(.hover) .carousel-control-prev{opacity:0;left:-10px}.carousel:not(.hover) .carousel-control-next{opacity:0;right:-10px}.carousel:not(.hover) .carousel-indicators{opacity:0;bottom:-10px}.carousel .carousel-indicators{opacity:1;transition:all .2s linear}.carousel .carousel-item img{display:block}.carousel-indicators [data-bs-target]{background-color:#606266}.carousel-item img{width:100%}.form-check{padding:0;margin:0;min-height:1rem}.form-check .form-check-input{width:1rem;height:1rem;float:none;margin:3px 0 1px 0;transition:background-color .15s ease-in-out,background-position .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}.form-check .form-check-input+.form-check-label{padding:0 .5rem;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;vertical-align:top}.form-label+.form-check{padding:7px 0}.form-check-input:active{filter:none}@media(prefers-reduced-motion:reduce){.form-check-input{transition:none}}.form-check-input:focus{border-color:#b5b5c3;box-shadow:none}.form-check-input:checked{background-color:#009ef7;border-color:#009ef7}.form-check-input:checked[type=checkbox]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 13 11' width='13' height='11' fill='none'%3e%3cpath d='M11.0426 1.02893C11.3258 0.695792 11.8254 0.655283 12.1585 0.938451C12.4917 1.22162 12.5322 1.72124 12.249 2.05437L5.51985 9.97104C5.23224 10.3094 4.72261 10.3451 4.3907 10.05L0.828197 6.88335C0.50141 6.59288 0.471975 6.09249 0.762452 5.7657C1.05293 5.43891 1.55332 5.40948 1.88011 5.69995L4.83765 8.32889L11.0426 1.02893Z' fill='%23FFFFFF'/%3e%3c/svg%3e")}.form-check-input:checked[type=radio]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23FFFFFF'/%3e%3c/svg%3e")}.form-check-input[type=checkbox]:indeterminate{background-color:#009ef7;border-color:#009ef7;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23FFFFFF' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e")}.form-check-input:disabled{pointer-events:none;filter:none;opacity:.5}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{opacity:.5}.form-check .form-check-label,.form-check .form-check-input{cursor:pointer}.form-check .form-check-input[type=checkbox]{background-size:60% 60%}.form-check.form-check-success .form-check-input:checked{background-color:var(--bs-success)}.form-check.form-check-danger .form-check-input:checked{background-color:var(--bs-danger)}.form-check.form-check-warning .form-check-input:checked{background-color:var(--bs-warning)}.form-check.form-check-info .form-check-input:checked{background-color:var(--bs-info)}.form-check.form-check-primary .form-check-input:checked{background-color:var(--bs-primary)}.form-check.form-check-secondary .form-check-input:checked{background-color:var(--bs-secondary)}.form-check.form-check-dark .form-check-input:checked{background-color:var(--bs-dark)}.form-check.form-check-sm .form-check-input{height:1.25rem;width:1.25rem;margin:0}.form-check.form-check-md{padding:4px 0 3px 0}.form-check.form-check-md .form-check-input{height:1.5rem;width:1.5rem}.form-check.form-check-lg{padding:2px 0 1px 0}.form-check.form-check-lg .form-check-input{height:1.75rem;width:1.75rem}.checkbox-list{min-height:35px;height:auto;display:flex;flex-flow:row wrap;padding-bottom:0;overflow:hidden;vertical-align:top}.checkbox-list.is-vertical{flex-direction:column}.checkbox-list .checkbox-item{display:inline-flex;width:120px;margin-bottom:.375rem}.checkbox-list .checkbox-item .form-check-label{max-width:104px}.checkbox-list.form-control.no-border{border-color:transparent}.checkbox-list.form-control:not(.is-invalid):focus{box-shadow:none}.checkbox-item .form-check-sm .form-check-input{margin:3px 0 2px 0}.accordion-button:not(.collapsed){box-shadow:inset 0 -1px 0 #00000020}.accordion .accordion-button-primary{color:#fff;background-color:var(--bs-primary);border-color:#0d6efd}.accordion .accordion-button-secondary{color:#fff;background-color:var(--bs-secondary);border-color:#6c757d}.accordion .accordion-button-success{color:#fff;background-color:var(--bs-success);border-color:#198754}.accordion .accordion-button-info{color:#fff;background-color:var(--bs-info);border-color:#0dcaf0}.accordion .accordion-button-warning{color:#fff;background-color:var(--bs-warning);border-color:#ffc107}.accordion .accordion-button-danger{color:#fff;background-color:var(--bs-danger);border-color:#dc3545}.accordion .accordion-button-light{background-color:var(--bs-light);border-color:#f8f9fa}.accordion .accordion-button-dark{color:#fff;background-color:var(--bs-dark);border-color:#212529}.accordion .accordion-button:after{width:.75rem;height:.75rem;background-size:.75rem}.accordion .accordion-button-primary:after,.accordion .accordion-button-secondary:after,.accordion .accordion-button-success:after,.accordion .accordion-button-danger:after .accordion .accordion-button-dark:after{color:#fff}.accordion .accordion-button-light:after,.accordion .accordion-button-warning:after,.accordion .accordion-button-info:after{color:#000}.accordion .accordion-button{border-radius:0}.color-picker .form-control-color{max-width:3rem}.console-body{padding:1rem;background-color:#174482;color:#fff;overflow:auto}.popover-datetime{max-width:unset}.popover-datetime .popover-body{padding:0}.popover-datetime .date-picker{border:none}.datetime-picker-bar{position:relative;color:#adb5bd}.datetime-picker-input{cursor:pointer;padding-left:2rem}.datetime-picker-input[readonly]:not([disabled]){background-color:#fff}.datetime-picker-input-icon{position:absolute;left:0;top:0;line-height:35px;cursor:pointer;padding:0 .75rem}.picker-panel-body-wrapper{display:flex}.picker-panel-sidebar{width:110px;border-right:1px solid #e4e4e4;padding:6px 0;overflow:auto}.picker-panel-sidebar .sidebar-item{line-height:28px;padding:0 12px;cursor:pointer;transition:color .3s linear}.date-picker-time-header{position:relative;border-bottom:1px solid #e4e4e4;font-size:12px;padding:8px 5px 5px;display:table;width:100%}.date-picker-time-header .date-picker-editor-wrap{position:relative;display:table-cell;padding:0 5px}.date-picker-time-header .date-picker-editor-wrap .input-inner{height:2rem;line-height:2rem;padding:0 1rem;cursor:pointer}.date-picker-time-header .date-picker-editor-wrap .input-inner[readonly]{background-color:#fff}.date-picker-editor-wrap .time-panel{position:absolute;z-index:-1;display:none;width:145px;margin-top:.25rem}.date-picker-editor-wrap .time-panel .time-spinner-item{height:28px;line-height:28px}.date-picker-editor-wrap .time-panel-content:after,.date-picker-editor-wrap .time-panel-content:before{margin-top:-32px;height:28px}.date-picker-editor-wrap .time-spinner-arrow.fa-angle-up{top:3px}.date-picker-editor-wrap .time-spinner-arrow.fa-angle-down{bottom:3px}.date-picker-editor-wrap .time-spinner-list-wrapper{height:84px;margin:36px 0}.is-open .date-picker-editor-wrap .time-panel{z-index:10;display:block}.picker-panel{color:#606266;border:1px solid #ced4da;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);background:#fff;border-radius:var(--bs-border-radius);line-height:30px}.picker-panel-body-wrapper:after,.picker-panel-body:after{content:"";display:table;clear:both}.picker-panel-body{width:320px}.date-picker-header{margin:12px;display:flex;align-items:center}.date-picker .picker-panel-content{width:292px}.picker-panel-content{position:relative;margin:15px}.picker-panel-content table{table-layout:fixed;width:100%;font-size:12px;user-select:none}.picker-panel-content table td{text-align:center}.picker-panel-content table td .cell{display:block;margin:0 auto;cursor:pointer}.picker-panel-content table td.today .cell{color:#409eff;font-weight:700}.picker-panel-content table td.current:not(.disabled) .cell,.picker-panel-content table td.start:not(.next-month):not(.prev-month):not(.disabled) .cell,.picker-panel-content table td.end:not(.next-month):not(.prev-month):not(.disabled) .cell{color:#fff;background-color:#409eff}.picker-panel-content table td.range div{background-color:#f2f6fc}.picker-panel-content table td.range.start div{margin-left:5px;border-top-left-radius:15px;border-bottom-left-radius:15px}.picker-panel-content table td.range.start div .cell{margin-left:4px}.picker-panel-content table td.range.end div{margin-right:5px;border-top-right-radius:15px;border-bottom-right-radius:15px}.picker-panel-content table td.range.end div .cell{margin-right:4px}.picker-panel-content table td.disabled .cell{cursor:not-allowed;color:#c0c4cc}.date-table th{padding:5px;font-weight:400;border-bottom:1px solid var(--bs-border-color);text-align:center}.date-table td.next-month,.date-table td.prev-month{color:#c0c4cc}.date-table td:not(.prev-month):not(.next-month):hover,.picker-panel-icon-btn:hover,.date-picker-header-label:hover,.sidebar-item:hover{color:#409eff}.date-table td div{margin:4px 0;padding:3px 0}.date-table td .cell{display:block;width:24px;height:24px;margin:0 auto;line-height:24px;border-radius:50%;cursor:pointer}.picker-panel-icon-btn{color:#303133;border:0;background:transparent;cursor:pointer;outline:none}.date-picker-header-label{font-size:16px;font-weight:500;padding:0 5px;text-align:center;cursor:pointer;user-select:none}.pick-panel-arrow-left,.pick-panel-arrow-right{margin:0 6px}.year-table,.month-table{margin-top:29px}.year-table tr,.month-table tr{border-top:1px solid var(--bs-border-color)}.year-table td div{padding:12px 0}.year-table td .cell{width:48px;height:24px;line-height:24px;border-radius:16px}.month-table td div{padding:26px 0}.month-table td .cell{width:60px;border-radius:18px}@media(min-width:576px){.input-group input.form-control{width:1%}}.picker-panel-footer{border-top:1px solid #e4e4e4;padding:4px;background-color:#fff;position:relative;display:flex;border-bottom-left-radius:var(--bs-border-radius);border-bottom-right-radius:var(--bs-border-radius)}.picker-panel-footer .picker-panel-link-btn{padding:7px 15px;font-size:.75rem;border-radius:var(--bs-border-radius);line-height:12px;color:#606266;transition:border-color .3s linear,color .3s linear}.picker-panel-footer .picker-panel-link-btn.is-confirm{border:1px solid #dcdfe6}.picker-panel-footer .picker-panel-link-btn.is-confirm:hover{border-color:#409eff;color:#409eff}.picker-panel-footer .picker-panel-link-btn.is-now{color:#409eff}.time-panel{border:1px solid #ced4da;background-color:#fff;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);border-radius:var(--bs-border-radius);width:180px;user-select:none}.time-panel-content{font-size:0;position:relative;overflow:hidden}.time-panel-content:before{padding-left:50%;margin-right:12%;margin-left:12%}.time-panel-content.has-seconds:before{padding-left:33.33333%}.time-panel-content:after,.time-panel-content:before{content:"";top:50%;position:absolute;margin-top:-36.6px;height:36.6px;left:0;right:0;border-top:1px solid #e4e7ed;border-bottom:1px solid #e4e7ed}.time-panel-content.has-seconds:after{left:66.66667%;pointer-events:none}.time-panel-content:after{left:50%;margin-left:12%;margin-right:12%}.time-spinner{width:100%;white-space:nowrap}.time-spinner.has-seconds .time-spinner-wrapper{width:33.3%}.time-spinner-wrapper.is-arrow{box-sizing:border-box;text-align:center;overflow:hidden}.time-spinner-wrapper{display:inline-flex;position:relative;align-items:center;justify-content:center}.time-spinner-wrapper.is-arrow .time-spinner-list{transition:transform .3s linear}.time-spinner-arrow{font-size:14px;color:#909399;position:absolute;left:0;width:100%;z-index:1;text-align:center;height:30px;line-height:30px;cursor:pointer}.time-spinner-arrow.fa-angle-up{top:10px}.time-spinner-arrow.fa-angle-down{bottom:10px}.time-spinner-list-wrapper{overflow:hidden;height:110px;margin:40px 0;width:100%}.time-spinner-list{margin:0;list-style:none}.time-spinner-input.input .input-inner,.time-spinner-list{padding:0;text-align:center}.time-spinner-item{height:36.6px;line-height:36.6px;font-size:12px;color:#606266;opacity:.6;cursor:pointer}.time-spinner-item.active:not(.disabled){font-weight:700;font-size:14px;opacity:1}.time-spinner-item.active:not(.disabled),.time-spinner-arrow:hover{color:#409eff}.time-spinner-item.prev,.time-spinner-item.next{opacity:.8;transform:scale(1,.8);line-height:30px}.time-panel-footer{border-top:1px solid #e4e4e4;padding:4px;height:36px;line-height:25px;text-align:right}.time-panel-btn{border:none;line-height:28px;padding:0 5px;margin:0 5px;cursor:pointer;background-color:transparent;outline:none;font-size:12px;color:#303133}.time-panel-btn.confirm{font-weight:800;color:#409eff}.datetime-range{background-color:#fff;background-image:none;border-radius:var(--bs-border-radius);border:1px solid #dcdfe6;color:#606266;display:inline-block;outline:none;transition:border-color .2s cubic-bezier(.645,.045,.355,1);padding:0 10px;position:relative}.datetime-range:hover{border-color:#c0c4cc}.datetime-range.active{border-color:#409eff}.datetime-range.disabled,.datetime-range.disabled input{background-color:#e9ecef}.datetime-range-bar{display:inline-flex;align-items:center}.datetime-range-bar .datetime-range-input{border:none;outline:none;display:inline-block;margin:0;padding:0;text-align:center;color:#606266;cursor:pointer;width:80px;padding:6px 0}.datetime-range-bar .datetime-range-input-icon{cursor:pointer}.datetime-range-bar .range-separator{padding:0 5px;color:#303133}.range-panel-body{display:flex}.range-panel-body .picker-panel{box-shadow:none;border:none}.range-panel-body .picker-panel:first-child{border-right:1px solid #ced4da;border-top-right-radius:0;border-bottom-right-radius:0}.range-panel-body .date-picker-header-label{cursor:unset}.range-panel-body .date-picker-header-label:hover{color:inherit}.range-panel-footer{padding:.5rem}.popover-datetime-range{max-width:unset}.popover-datetime-range .popover-body{padding:0}.range-clear{border-radius:50%;border:1px solid #9d9d9d;padding:1px;display:none;cursor:pointer;position:absolute;right:10px;top:11px}.datetime-range:hover:not(.disabled) .range-clear{display:flex}.form-inline>*>.datetime-range{display:block}.divider{background-color:transparent;position:relative}.divider .divider-text{position:absolute;background-color:#fff;padding:0 20px;font-weight:500;color:#303133;font-size:14px}.divider.divider-horizontal{display:block;width:100%}.divider.divider-horizontal .divider-text.is-left{left:20px;transform:translateY(-50%)}.divider.divider-horizontal .divider-text.is-center{left:50%;transform:translateX(-50%) translateY(-50%)}.divider.divider-horizontal .divider-text.is-right{right:20px;transform:translateY(-50%)}.divider .divider-wrap{height:1px;margin:1rem 0;background-color:#dcdfe6}.divider-vertical{width:1px;margin:0 1rem}.divider.divider-vertical .divider-text{padding:20px 0}.divider.divider-vertical .divider-text.is-left{top:20px;transform:translateX(-50%)}.divider.divider-vertical .divider-text.is-center{top:50%;transform:translateX(-50%) translateY(-50%)}.divider.divider-vertical .divider-text.is-right{bottom:20px;transform:translateX(-50%)}.bb-dd-inprogess>*{pointer-events:none}.bb-dd-dropzone{min-height:50px}.bb-dd-spacing{height:10px}.bb-dd-spacing-dragged-over{padding:25px}.bb-dd-dragged-over{background-color:#d3d3d3;opacity:.6;animation:blinker 1s linear infinite}.bb-dd-dragged-over>div{background-color:#d3d3d3;opacity:.6;animation:blinker 1s linear infinite}.bb-dd-dragged-over-denied{background-color:#f00;opacity:.6;animation:blinker 1s linear infinite}.bb-dd-in-transit{opacity:0}.bb-dd-in-transit>div{opacity:0}@keyframes blinker{50%{opacity:0}}.blink_me{animation:blinker 1s linear infinite}.bb-flex .bb-dd-spacing{width:20px;height:auto}.bb-flex .bb-dd-dragged-over{background-color:#d3d3d3;opacity:.6;animation:blinker 1s linear infinite}.bb-flex .bb-dd-dragged-over>div{background-color:#d3d3d3;opacity:.9;animation:blinker 1s linear infinite}.bb-flex .bb-dd-in-transit{background-color:#ff4500}.bb-flex .bb-dd-in-transit>div{background-color:#ff4500}.bb-dd-noselect{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.drawer-wrapper{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden;margin:0;background-color:rgba(0,0,0,.5);transform:translateX(-100%);z-index:1050}.drawer-container{position:relative;left:0;right:0;top:0;bottom:0;height:100%;width:100%}.drawer{position:absolute;box-sizing:border-box;background-color:#fff;display:flex;flex-direction:column;box-shadow:0 8px 10px -5px rgba(0,0,0,.2),0 16px 24px 2px rgba(0,0,0,.14),0 6px 30px 5px rgba(0,0,0,.12);overflow:auto;transition:transform .3s linear;transform:translateX(-100%)}.drawer.left,.drawer.right{height:100%;top:0;bottom:0}.drawer.top,.drawer.bottom{width:100%;left:0;right:0}.drawer.right{right:0;transform:translateX(100%)}.drawer.top{top:0;transform:translateY(-100%)}.drawer.bottom{bottom:0;transform:translateY(100%)}.is-open .drawer,.is-open.drawer-wrapper,.is-close.drawer-wrapper{transform:translateX(0)}.is-close .drawer{transform:translateX(0)}.is-close .drawer{transform:translateX(-100%)}.is-close .drawer.right{transform:translateX(100%)}.is-close .drawer.top{transform:translateY(-100%)}.is-close .drawer.bottom{transform:translateY(100%)}.dropdown .dropdown-toggle:after,.dropup .dropdown-toggle:after,.dropright .dropdown-toggle:after,.btn-group .dropdown-toggle:not(:empty):after{margin-left:6px}.dropleft .dropdown-toggle:before{margin-right:6px}.dropdown-menu{border-radius:var(--bs-border-radius)}.dropdown-item{cursor:pointer}.widget .dropdown-toggle{color:#fff;padding:10px 16px;position:relative;display:inline-block}.widget .dropdown-toggle:after{content:unset}.widget .dropdown-toggle .badge{position:absolute;top:5px;font-size:9px}.widget .dropdown-menu{overflow:visible;width:235px;margin-left:-94px !important;padding:0;max-height:none;border:none}.widget .dropdown-menu .dropdown-arrow{border-style:solid;border-width:0 9px 9px;position:absolute;left:108px;top:-9px}.widget .dropdown-header{color:#fff;padding:.5rem .625rem;border-radius:var(--bs-border-radius) var(--bs-border-radius) 0 0}.widget .dropdown-body{overflow:auto;max-height:300px}.widget .dropdown-footer{padding:.5rem .625rem;background-color:#dcdfe6;border-radius:0 0 var(--bs-border-radius) var(--bs-border-radius)}.widget .dropdown-item{border-bottom:1px solid #dcdfe6}.widget .dropdown-item:nth-of-type(odd){background-color:#eef0f3}.editor .editor-body{cursor:pointer;min-height:50px;height:auto}.editor .editor-body:focus:before{content:none}.editor .editor-body:empty:before{content:attr(placeholder)}.editor .note-editor{background-color:#fff}.editor .note-editor .note-right{float:right}.editor .note-btn-close{background-image:-webkit-linear-gradient(top,#5bc0de 0%,#2aabd2 100%);background-image:-o-linear-gradient(top,#5bc0de 0%,#2aabd2 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5bc0de),to(#2aabd2));background-image:linear-gradient(to bottom,#5bc0de 0%,#2aabd2 100%);background-repeat:repeat-x;border-color:#28a4c9;color:#fff}.editor .dropdown-menu{overflow:unset;max-height:unset;max-width:unset}.editor .btn-light{border-color:#00000032}.editor .btn-light:hover{background-color:#e2e6ea;border-color:#dae0e5}.editor .btn-light:not(:disabled):not(.disabled).active,.editor .btn-light:not(:disabled):not(.disabled):active,.editor .show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.empty{text-align:center}.empty>.empty-image{margin-top:1rem;margin-bottom:8px}.empty-telemplate{margin:5px 0 0 0}.table-filter{position:absolute;left:0;top:0;width:100%;z-index:5}.table-filter .table-filter-item{min-width:220px;background-color:#fff;border:1px solid rgba(0,0,0,.125);position:absolute;display:none}.table-filter .table-filter-item.show{display:block}.table-filter .card-header{padding:.5rem 1rem}.table-filter .card-arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0;top:calc((.5rem + 1px)*-1);left:calc(50% - .5rem)}.table-filter .card-arrow:before,.table-filter .card-arrow:after{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.table-filter .card-arrow:before{border-bottom-color:#ced4da;top:0;border-width:0 .5rem .5rem .5rem}.table-filter .card-arrow:after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#f7f7f7}.table-filter .card-body{padding:1rem}.table-filter .card-body .is-condition{max-width:10rem}.table-filter .card-body>*:not(:first-child){margin-top:.5rem}.table-filter .card-body .select{display:block}.table-filter .card-footer{padding:.5rem;display:flex;white-space:nowrap}.table-filter .card-footer .btn:not(:first-child){margin-left:.5rem}.table-filter .card-footer .btn{padding:7px 15px;font-size:.875rem;line-height:12px;border:1px solid #dcdfe6;color:#606266;transition:border-color .3s linear,color .3s linear}.table-filter .card-footer .btn:not(.disabled):not(:disabled):hover{border-color:#409eff;color:#409eff}.filter-row{display:flex}.filter-row .btn-ban{display:none;padding-left:0}.filter-row input{min-width:50px}.filter-row.active .btn-ban{display:block}.btn-filter::after{content:none}.layout-gotop{background:rgba(255,255,255,.5);width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-right:4px;transition:background-color .3s linear;color:#606266}.layout-gotop:hover{background-color:#fff;color:#606266}.groupbox{border:1px solid #ddd;padding:1.5rem 1rem 1rem 1rem;border-radius:var(--bs-border-radius);position:relative;margin-top:.5rem}.groupbox .legend{position:absolute;top:-10px;left:30px;background-color:#fff;padding:0 .5rem}.handwritten .hw-body{height:300px;border:1px solid rgba(0,0,0,.125);border-radius:var(--bs-border-radius);overflow:hidden}.handwritten .hw-buttons{margin-top:1rem;text-align:right}#canvas{border:1px double #dedede;border-radius:10px;width:99%;height:300px;position:relative;overflow:hidden}#canvas canvas{display:block}#clearCanvas0{width:calc(50% - 5px);height:40px;line-height:40px;text-align:center;position:absolute;top:300px;left:5px;border:1px solid #dedede;z-index:1}#saveCanvas0{width:calc(50% - 5px);height:40px;line-height:40px;text-align:center;position:absolute;top:300px;right:5px;border:1px solid #dedede;z-index:1}.ipaddress{display:flex;flex-wrap:nowrap;min-width:138px}.ipaddress.disabled{background-color:#efefef;cursor:not-allowed}.ipaddress .ipv4-cell{border:none;max-width:26px}:root{--bb-layout-header-height:50px;--bb-layout-user-height:65px;--bb-layout-footer-height:90px;--bb-layout-side-width:214px;--bb-layout-sidebar-collapse-width:70px}.layout{display:flex;height:100%;width:100%;flex-direction:column}.layout .layout-main{flex:1}.has-sidebar{flex-direction:row;display:flex;flex:1}.layout-side{position:relative}.layout.is-page .layout-side{transform:translateX(-100%);position:fixed;top:0;bottom:0;left:0;right:0;width:auto;transition:transform .3s linear;z-index:1030}.layout.is-page .layout-side.is-collapsed{transform:translateX(0)}.layout.is-page .has-sidebar .layout-side{top:50px}.layout.is-page .layout-right,.layout.is-page .has-sidebar .layout-main{width:100%}.layout.is-page.is-fixed{position:fixed;top:0;bottom:0;left:0;right:0}.layout.is-page .layout-header{background-color:#17a2b8;height:50px;color:#fff;display:flex;align-items:center;padding:0 1rem}.layout.is-page .layout-side{background-color:#343a40;color:#c2c7d0}.layout-header-bar{padding:4px 12px;color:#fff;background-color:#1ab394;border-color:#1ab394;border-radius:var(--bs-border-radius)}.layout-header-bar .fa-bars{transition:transform .3s linear}.layout-header-bar.is-collapsed .fa-bars{transform:rotate(90deg)}.layout.is-page .layout-main{padding:1rem;position:relative;min-height:calc(100vh - var(--bb-layout-footer-height))}.layout.is-page .layout-main.is-collapsed,.layout.is-page .layout-footer.is-collapsed{display:none}.layout.is-page .layout-header{z-index:1035;position:sticky}.layout.is-page .layout-header.is-fixed{top:0}.layout.is-page .layout-header .layout-avatar-right{width:44px;height:44px}.layout.is-page .has-sidebar .layout-side .layout-banner{display:none}.layout.is-page .layout-side .layout-banner{display:flex;align-items:center;padding:0 .625rem;background-color:#367fa9;height:var(--bb-layout-header-height);font-size:1.5rem}.layout-banner-link{display:flex;align-items:center;color:inherit}.layout.is-page .layout-side .layout-banner .layout-logo{width:44px;border-radius:var(--bs-border-radius)}.layout.is-page .layout-side .layout-banner span{padding-left:1rem}.layout.is-page .layout-side .layout-user{border-bottom:1px solid #ddd;padding:.625rem;display:flex;flex-direction:row;align-items:center}.layout.is-page .layout-side .layout-user .layout-avatar{width:44px;height:44px;border-radius:50%}.layout.is-page .layout-side .layout-user span{padding-left:1rem}.layout.is-page .layout-side .layout-menu{overflow-x:hidden;padding:.5rem 0;height:calc(100vh - var(--bb-layout-header-height) - var(--bb-layout-user-height))}.layout.is-page .layout-user-state{width:8px;height:8px;background-color:#28a745;border-radius:50%;margin-left:1rem}.layout.is-page .layout-footer{height:40px;color:#fff;background-color:#5b6e84;display:flex;align-items:center;padding:0 1rem}.layout.is-page .layout-footer.is-fixed{position:sticky;bottom:0}.layout.is-page .has-sidebar .layout-side.is-fixed-header,.layout.is-page .layout-footer.is-fixed{z-index:1020}@media(min-width:768px){.layout.is-page .layout-side{transform:translateX(0);position:relative}.layout.is-page .has-sidebar .layout-side{top:0}.layout.is-page.has-sidebar .layout-side.is-fixed-header{top:0;height:calc(100vh)}.layout.is-page :not(.layout-right) .layout-main,.layout.is-page .layout-right{width:calc(100% - var(--bb-layout-side-width))}.layout.is-page .layout-side{width:var(--bb-layout-side-width);box-shadow:0 14px 28px rgba(0,0,0,.25),0 10px 10px rgba(0,0,0,.22)}.layout.is-page .layout-side .menu.is-vertical{width:var(--bb-layout-side-width)}.layout.is-page .layout-side.is-collapsed:not(:hover),.layout.is-page .layout-side:not(:hover) .menu.is-vertical.is-collapsed{width:var(--bb-layout-sidebar-collapse-width)}.layout.is-page .layout-side.is-fixed-header{position:sticky;top:var(--bb-layout-header-height);height:calc(100vh - var(--bb-layout-header-height))}.layout.is-page .layout-side.is-fixed-header.is-fixed-footer{height:calc(100vh - var(--bb-layout-footer-height))}.layout.is-page .layout-side .layout-menu{height:auto}.layout .layout-side,.layout.is-page .layout-side,.layout .menu.is-vertical{transition:width .3s linear}.layout-right{display:flex;flex-flow:column;flex:1}.layout.is-page .layout-footer.is-fixed,.layout.is-page .layout-header.is-fixed,.layout.is-page .layout-side.is-fixed-header{z-index:1025}.layout.is-page .layout-title{display:inline-block;overflow:hidden;white-space:nowrap;flex:1 1 auto;opacity:1;transition:opacity .3s linear;color:#e9ecef}.layout.is-page .is-collapsed .layout-title{opacity:0}.layout .is-collapsed .layout-user-state{display:none}.layout.is-page.has-sidebar .layout-side{min-height:calc(100vh)}.layout.is-page .has-sidebar .layout-side{min-height:calc(100vh - var(--bb-layout-footer-height))}.layout.is-page.has-sidebar .layout-side.is-fixed-header.is-fixed-footer .layout-menu,.layout.is-page .layout-side.is-fixed-header .layout-menu{height:calc(100vh - var(--bb-layout-header-height) - var(--bb-layout-user-height))}.layout.is-page .layout-side.is-fixed-header.is-fixed-footer .layout-menu{height:calc(100vh - var(--bb-layout-footer-height) - var(--bb-layout-user-height))}.layout.is-page .layout-main.is-collapsed{display:block}.layout.is-page .layout-footer.is-collapsed{display:flex}.layout.is-page .layout-menu .menu.is-vertical.is-collapsed .nav-link.active::before{opacity:1;background-color:#409eff}.layout.is-page .layout-side .layout-menu .slimScrollBar{opacity:1 !important;background-color:#c1c1c1 !important}}.light{background-image:radial-gradient(circle,#fff,#aaa,#333);cursor:pointer;width:20px;height:20px;display:inline-block;border-radius:50%}.light+span{display:none}.light-danger{background-image:radial-gradient(circle,#e17777,#892726,#700604)}.light-danger.flash{animation:danger .6s linear infinite}.light-danger:hover{background-image:radial-gradient(circle,#e17777,#b33332,#bf211e)}@keyframes danger{0%{background-image:radial-gradient(circle,#e17777,#892726,#700604)}55%{background-image:radial-gradient(circle,#e17777,#892726,#700604)}100%{background-image:radial-gradient(circle,#fff,#aaa,#333)}}.light-success{background-image:radial-gradient(circle,#5cb85c,#116811,#024702)}.light-success.flash{animation:success .6s linear infinite}.light-success:hover{background-image:radial-gradient(circle,#5cb85c,#0c980c,#087b08)}@keyframes success{0%{background-image:radial-gradient(circle,#5cb85c,#116811,#024702)}55%{background-image:radial-gradient(circle,#5cb85c,#116811,#024702)}100%{background-image:radial-gradient(circle,#fff,#aaa,#333)}}.light-info{background-image:radial-gradient(circle,#5bc0de,#1d7792,#085166)}.light-info.flash{animation:info .6s linear infinite}.light-info:hover{background-image:radial-gradient(circle,#5bc0de,#085166,#085166)}@keyframes info{0%{background-image:radial-gradient(circle,#5bc0de,#1d7792,#085166)}55%{background-image:radial-gradient(circle,#5bc0de,#1d7792,#085166)}100%{background-image:radial-gradient(circle,#fff,#aaa,#333)}}.light-warning{background-image:radial-gradient(circle,#ffc107,#cc9f18,#a28018)}.light-warning.flash{animation:warning .6s linear infinite}.light-warning:hover{background-image:radial-gradient(circle,#ffc107,#a28018,#a28018)}@keyframes warning{0%{background-image:radial-gradient(circle,#ffc107,#cc9f18,#a28018)}55%{background-image:radial-gradient(circle,#ffc107,#cc9f18,#a28018)}100%{background-image:radial-gradient(circle,#fff,#aaa,#333)}}.light-primary{background-image:radial-gradient(circle,#007bff,#0f5fb5,#104f94)}.light-primary.flash{animation:primary .6s linear infinite}.light-primary:hover{background-image:radial-gradient(circle,#007bff,#104f94,#104f94)}@keyframes primary{0%{background-image:radial-gradient(circle,#007bff,#0f5fb5,#104f94)}55%{background-image:radial-gradient(circle,#007bff,#0f5fb5,#104f94)}100%{background-image:radial-gradient(circle,#fff,#aaa,#333)}}.light-secondary{background-image:radial-gradient(circle,#6c757d,#4b5054,#3b3d40)}.light-secondary.flash{animation:secondary .6s linear infinite}.light-secondary:hover{background-image:radial-gradient(circle,#6c757d,#3b3d40,#3b3d40)}@keyframes secondary{0%{background-image:radial-gradient(circle,#6c757d,#4b5054,#3b3d40)}55%{background-image:radial-gradient(circle,#6c757d,#3b3d40,#3b3d40)}100%{background-image:radial-gradient(circle,#fff,#aaa,#333)}}.light-dark{background-image:radial-gradient(circle,#6061e2,#3232a0,#17177b)}.light-dark.flash{animation:dark .6s linear infinite}.light-dark:hover{background-image:radial-gradient(circle,#6061e2,#17177b,#17177b)}@keyframes dark{0%{background-image:radial-gradient(circle,#6061e2,#3232a0,#17177b)}55%{background-image:radial-gradient(circle,#6061e2,#3232a0,#17177b)}100%{background-image:radial-gradient(circle,#fff,#aaa,#333)}}.listview{border:1px solid rgba(0,0,0,.125);border-radius:.25rem;width:100%;height:100%;display:flex;flex-flow:column nowrap}.listview .listview-header{padding:1rem;border-bottom-color:inherit;border-bottom-width:1px;border-bottom-style:solid}.listview.is-vertical .listview-body{display:block}.listview .listview-body{padding:1rem 0 0 1rem;position:relative;overflow:auto;display:flex;flex-flow:row wrap;flex:1}.listview .listview-body .listview-item{margin:0 1rem 1rem 0}.listview .listview-body .listview-item:hover .card{cursor:pointer;border:1px solid #409eff}.listview .listview-body .listview-item .card{box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.listview .listview-body .listview-item-group{flex-basis:100%;margin:1rem 0;font-weight:bold;position:relative}.listview .listview-body .listview-item-group:after{content:"";position:absolute;top:calc(-50%);left:-1rem;right:0;background-color:rgba(0,0,0,.1);height:calc(200%)}.listview .listview-footer{padding:1rem;border-top-color:inherit;border-top-width:1px;border-top-style:solid}.dropdown-logout .dropdown-menu{padding:0;overflow:hidden;border-color:#3c8dbc}.dropdown-logout .dropdown-menu.show{animation:fade-in2 .2s cubic-bezier(.39,.575,.565,1) both}@keyframes fade-in2{0%{margin-top:-50px;visibility:hidden;opacity:0}100%{visibility:visible;opacity:1}}.dropdown-logout .dropdown-toggle{height:42px;display:block}.dropdown-logout .dropdown-toggle:after{content:none}.dropdown-logout .logout-avatar{width:42px;height:42px}.dropdown-logout .logout-text{color:#fff;font-weight:bold;max-width:110px;margin:0 .625rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropdown-logout .dropdown-user{background-color:#3c8dbc;color:#fff}.dropdown-logout .dropdown-user img{width:60px;height:60px;margin-right:1rem}.dropdown-logout .logout-un{margin-top:.25rem}.dropdown-logout .dropdown-item:not(.dropdown-user):focus,.dropdown-logout .dropdown-item:not(.dropdown-user):hover{background-color:transparent}.dropdown-logout .dropdown-item a{color:var(--bs-body-color);margin-bottom:.5rem;display:block;transition:color .3s linear}.dropdown-logout .dropdown-item a:first-child{margin-top:.5rem}.dropdown-logout .dropdown-item a:hover{color:#009ef7}.dropdown-logout .dropdown-item a .fa{margin-right:.5rem}.menu .nav{padding:0 1rem;border-bottom:1px solid #e6e6e6}.menu>.nav>li{position:relative;border-bottom:solid 2px transparent}.menu>.nav>li.active:after{width:100%;left:0}.menu>.nav>li:after{content:"";position:absolute;background-color:#1890ff;left:50%;height:2px;width:0;transition:width .3s linear,left .3s linear}.menu .nav .nav-link,.cascade .dropdown-item{padding:.5rem 1rem;color:rgba(0,0,0,.65);user-select:none;white-space:nowrap;position:relative}.menu .nav .nav-link.active,.menu .nav .nav-link:not(.disabled):hover{color:#1890ff}.menu .nav .dropdown-menu,.cascade .dropdown-menu{overflow:unset;max-height:unset;margin-top:10px}.menu .nav .dropdown-menu .nav-link:not(.disabled):hover,.menu .nav .dropdown-menu .nav-link.active,.menu .submenu .nav-link.active,.menu .submenu .nav-link:not(.disabled):hover,.cascade .dropdown-item:not(.disabled):hover,.cascade .dropdown-item.active,.cascade .nav .nav-link:not(.disabled):hover,.cascade .nav .nav-link.active{background-color:#60aff9;color:#16181b}.menu .nav .sub-menu,.cascade .has-leaf .sub-menu{display:none;background-color:#fff;white-space:nowrap;border:solid 1px #e6e6e6;border-radius:var(--bs-border-radius);padding:.5rem 0;position:absolute;left:100%;top:-9px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.menu .nav .dropdown-menu,.menu .nav .sub-menu,.cascade .sub-menu{width:160px}.menu .nav .nav-link:hover>.sub-menu,.cascade .dropdown-item:hover>.sub-menu{display:block}.menu .nav-item:hover>.nav-link>.sub-menu{left:calc(100% + 20px);top:-15px}.menu .has-leaf>.nav-link-right{transition:transform .3s linear;position:absolute;right:10px;top:10px}.menu .nav .sub-menu .has-leaf>.nav-link-right{right:12px;top:10px}.menu .has-leaf:hover>.nav-link-right{transform:rotate(-90deg)}.menu .text{overflow:hidden;vertical-align:top;display:inline-block;transition:width .3s linear}.menu .nav-link.disabled{color:#ddd}.menu .nav .nav-link .text{margin-left:4px}.menu .nav .dropdown-toggle[aria-expanded="true"]+.dropdown-menu-arrow,.cascade .show .dropdown-menu-arrow{display:block}.menu .nav .dropdown .dropdown-menu-arrow{left:calc(50% - 6px)}.menu .nav-link{display:flex;align-items:center;line-height:21px;color:inherit;transition:background-color .3s linear,color .3s linear}.menu .nav-link>div{white-space:nowrap}.menu .widget>.badge:not(:first-child){margin-left:4px}.menu.is-vertical{padding:0 .5rem;border:none}.menu .submenu{margin:0;padding:0;list-style:none}.menu .submenu li{margin-top:2px}.menu .submenu .nav-link{border-radius:var(--bs-border-radius);padding:.5rem 0 .5rem .25rem}.menu .submenu .nav-link .fa-angle-left{transition:transform .3s linear}.menu .submenu .nav-link[aria-expanded="true"]>.fa-angle-left{transform:rotate(-90deg)}.menu .submenu .nav-link .text,.menu .submenu .nav-link .widget{margin:0 4px}.cascade .dropdown-menu{right:0}.cascade .sub-menu{display:none}@media(min-width:768px){.layout-side.is-collapsed:not(:hover) .menu.is-collapsed .submenu .text{width:0}}.menu.is-bottom{position:absolute;bottom:0;left:0;right:0}.menu.is-bottom .nav{flex-wrap:nowrap;justify-content:space-around;border-bottom:none;border-top:1px solid var(--bs-gray-400)}.menu.is-bottom .nav .dropdown-toggle[aria-expanded="true"]+.dropdown-menu-arrow{display:none}.menu.is-bottom>.nav>li:after,.menu.is-bottom .dropdown-menu-arrow:after{content:none}.message{position:fixed;left:1rem;right:1rem;z-index:1090;pointer-events:none}.message .alert{display:block;min-width:160px;max-width:480px;white-space:normal;opacity:0;top:-20px;bottom:unset;margin:1rem auto 0 auto;transition:opacity .3s linear,top .3s linear,bottom .3s linear;pointer-events:auto}.message .alert.show{opacity:1;bottom:unset;top:20px}.message.is-bottom .alert{top:unset;bottom:-20px}.message.is-bottom .alert.show{top:unset;bottom:20px}.is-draggable .modal-header{cursor:pointer}.modal-header{padding:.5rem 1rem}.modal-header.is-drag{cursor:move}.modal-footer{padding:.25rem 1rem}.modal-header .btn-print{padding:3px 8px 4px 8px;margin:0 6px}.bb-printview{background-color:#fff;padding:1rem;min-height:calc(100vh)}@media screen{.bb-printview{display:none}}@media print{body.bb-printview-open{overflow:auto !important}body.bb-printview-open app,body.bb-printview-open .modal,body.bb-printview-open .modal-footer,body.bb-printview-open .modal-backdrop{display:none !important}}.nav-pages{justify-content:space-between;align-items:center;width:100%}.pagination{margin:0;flex:1 1 auto;justify-content:flex-end}.page-link:focus{box-shadow:none}.pagination-items{display:inline-block}.pagination-items .select{width:100px;margin:0 10px}.pagination-items .select .dropdown-menu{min-width:unset;text-align:center}.pagination-items .select .form-select{text-align:center}.page-item:hover .page-link-prev .fa-ellipsis-h:before{content:""}.page-item:hover .page-link-next .fa-ellipsis-h:before{content:""}.page-link{padding:.5rem .35rem;line-height:1}.page-link .fa{width:11px;text-align:center}@media(min-width:375px){.page-link{padding:.5rem .5rem}}@media(min-width:456px){.page-link{padding:.5rem .75rem}}.popover{min-width:240px}.popover-confirm-body{margin:14px 0}.popover-confirm-body .fa+span{margin-left:.25rem}.popover-confirm-buttons{display:flex;justify-content:flex-end;margin-bottom:4px}.popover-confirm-buttons .btn{padding:7px 15px;line-height:12px}.popover-confirm-buttons .btn:last-child{margin-left:.5rem}.bs-popover-auto[data-popper-placement^=bottom].has-header>.popover-arrow::after,.bs-popover-bottom.has-header>.popover-arrow::after{border-bottom-color:#f0f0f0}.qrcode .qrcode-img{width:128px;height:128px}.qrcode .qrcode-buttons{margin-top:1rem}.radio-list{display:flex;flex-wrap:wrap}.radio-list .form-check{width:120px}.radio-list.is-vertical{flex-direction:column;height:auto;line-height:unset}.radio-list.is-vertical .form-check:not(:last-child){margin-bottom:.5rem}.form-inline .radio-list .form-check{display:inline-block}.rate{height:18px;line-height:1;font-size:18px;cursor:pointer}.rate .rate-item{width:18px;height:100%;margin-right:6px}.rate .rate-item:last-child{margin-right:0}.rate .rate-item i{color:#c6d1de;transition:.3s}.rate .rate-item.is-on i{color:#c6d1de}.rate .rate-item.is-on i:before{content:""}.rate:not(.disabled) .rate-item.is-on i{color:#f7ba2a}:root{--bs-row-label-width:120px}@media(min-width:576px){.form-inline .form-label{padding:7px 0;margin-bottom:0;padding-right:10px;width:var(--bs-row-label-width);text-overflow:ellipsis;white-space:nowrap;overflow:hidden;vertical-align:top;display:inline-block}.form-inline .form-label+*{width:calc(100% - var(--bs-row-label-width))}.form-inline .form-label+*:not(.input-group):not(.switch){display:inline-block}.form-inline .form-label+.input-group{display:inline-flex}.form-inline .form-label+.switch,.form-inline .form-label+.form-checkbox{padding:7px 0}.form-inline.is-end>div>.form-label{text-align:right}.form-inline.is-center>div>.form-label{text-align:center}}.scroll{height:100%;scrollbar-color:rgba(0,0,0,.3) rgba(0,0,0,0);scrollbar-width:thin;overflow:auto}.scroll::-webkit-scrollbar{width:6px;height:6px}.scroll::-webkit-scrollbar-thumb{border-radius:3px;background-color:rgba(0,0,0,.2)}.scroll::-webkit-scrollbar-thumb:hover{background-color:rgba(0,0,0,.3)}@media(min-width:992px){.scroll{overflow:hidden}.scroll:hover{overflow-y:auto}}.multi-select{width:100%;position:relative}.multi-select .dropdown-menu-toggle{border:solid 1px #ddd;border-radius:var(--bs-border-radius);cursor:pointer;min-height:35px;max-height:70px;overflow:auto}.multi-select .dropdown-menu-toggle.disabled{background-color:#eee}.multi-select .dropdown-menu-toggle .clear{padding:7px .25rem;display:none;color:#adb5bd}.multi-select .dropdown-menu-toggle .clear:hover{background-color:#ddd;border-radius:var(--bs-border-radius)}.multi-select .dropdown-menu-toggle .dropdown{padding:7px .25rem;display:block}.multi-select .dropdown-menu-toggle.selected .clear{display:block}.multi-select .dropdown-menu-toggle.selected .dropdown,.multi-select .dropdown-menu-toggle.disabled .clear{display:none}.multi-select .dropdown-menu-toggle .append{position:absolute;height:100%;width:30px;right:0;top:0;color:#c0c4cc;display:flex;align-items:center;justify-content:center}.multi-select .dropdown-menu-toggle .append .dropdown{transition:all .3s;transform:rotate(180deg)}.multi-select.show .dropdown-menu-toggle .append .dropdown{transform:rotate(0)}.multi-select .dropdown-menu{max-height:300px;overflow:auto}.multi-select .multi-select-items{display:flex;flex-wrap:wrap;padding-top:3px;padding-left:3px;position:relative}.multi-select .multi-select-items span{border:solid 1px #ddd;border-radius:var(--bs-border-radius);padding:2px 6px;background-color:#e9ecef;margin-bottom:3px}.multi-select .multi-select-items .multi-select-item{display:inline-block;max-width:130px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;margin-right:3px;border-top-left-radius:0;border-bottom-left-radius:0}.multi-select .multi-select-items .multi-select-item-group{display:inline-flex;position:relative}.multi-select .multi-select-items .multi-select-item-group .multi-select-item{padding-left:9px}.multi-select .multi-select-items .multi-select-close{border-top-right-radius:0;border-bottom-right-radius:0;margin-right:-3px;z-index:2;transition:color .3s linear,background-color .3s linear}.multi-select :not(.disabled) .multi-select-items .multi-select-close:hover{color:#333;background-color:#ddd}.multi-select .dropdown-menu{margin-top:10px;padding:.25rem 0;width:100%}.multi-select .dropdown-menu .toolbar{padding:6px 10px;white-space:nowrap}.multi-select .dropdown-menu .toolbar .btn{line-height:12px;padding:7px 15px;border:1px solid #dee2e6;transition:border-color .3s linear,color .3s linear}.multi-select .dropdown-menu .toolbar .btn:hover{border-color:#409eff;color:#409eff}.multi-select .dropdown-menu .toolbar .btn:not(:last-child){margin-right:1rem}.multi-select .dropdown-menu .search{padding:7px 10px;position:relative}.multi-select .dropdown-menu .search .search-text{width:100%;padding-right:30px}.multi-select .dropdown-menu .search .fa-search{position:absolute;left:calc(100% - 34px);top:18px;color:#adb5bd}.multi-select .dropdown-item{display:flex;padding:0 10px;align-items:center;transition:all .3s linear}.multi-select .dropdown-item.active{background-color:#dee2e6;color:inherit}.multi-select .dropdown-item:hover{background-color:#6fd6e6}.multi-select .dropdown-item>span{padding:.375rem .75rem;overflow:hidden;text-overflow:ellipsis}.multi-select .dropdown-item .checkbox-label{display:none}.multi-select.show .dropdown-menu,.multi-select.show .dropdown-menu-arrow{display:block}.multi-select .multi-select-ph{padding:0 1rem;color:#c0c4cc;line-height:35px;position:absolute}.multi-select .dropdown-item .form-label{display:none}.multi-select .dropdown-item .form-check{width:auto}.multi-select .dropdown-item:hover{background-color:#f1faff}.form-select:focus{box-shadow:none}.form-select:hover,.form-select:focus{border-color:#c0c4cc}.form-select.border-primary:hover{box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-select.border-info:hover{box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(23,162,184,.5)}.form-select.border-warning:hover{box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(255,193,7,.5)}.form-select.border-danger:hover{box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(220,53,69,.5)}.form-select.is-valid,.form-select.is-invalid{background-image:none}[data-bs-toggle="lgbSelect"] .dropdown-toggle::after{content:none}[data-bs-toggle="lgbSelect"] .form-select{background-image:none;color:#606266;outline:none;padding-right:calc(1.5em + .75rem);cursor:pointer}[data-bs-toggle="lgbSelect"] .dropdown-menu{margin-top:8px !important;font-size:inherit;cursor:pointer}[data-bs-toggle="lgbSelect"] .dropdown-menu .dropdown-item.disabled{color:#c0c4cc;cursor:not-allowed}[data-bs-toggle="lgbSelect"] .dropdown-menu .dropdown-item.disabled:active{background-color:#f8f9fa}[data-bs-toggle="lgbSelect"] .form-select.is-valid:focus,[data-bs-toggle="lgbSelect"] .was-validated .form-select:valid:focus,.form-select.border-success:hover{box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(40,167,69,.5)}[data-bs-toggle="lgbSelect"] .form-select.is-invalid:focus,[data-bs-toggle="lgbSelect"] .was-validated .form-select:invalid:focus,.form-select.border-danger:hover{box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(220,53,69,.5)}.select .dropdown-menu{max-height:274px;overflow-x:hidden;width:100%}.dropdown-menu-arrow{width:0;height:0;border-width:0 6px 6px;border-style:solid;border-color:transparent transparent rgba(0,0,0,.15);position:absolute;left:20px;margin-top:4px;z-index:1001;display:none}.dropdown-menu-arrow:after{content:" ";width:0;height:0;border-width:0 6px 6px;border-style:solid;border-color:transparent transparent #fff;position:absolute;top:1px;left:-6px}.form-select.show+.form-select-append i{transform:rotate(0)}.dropdown-menu[data-popper-placement="bottom-start"].show+.dropdown-menu-arrow,.dropdown-menu[data-bs-popper="none"].show+.dropdown-menu-arrow{display:block}.dropdown-menu[data-bs-popper="none"].show+.dropdown-menu-arrow{margin-top:2px}.disabled .form-select{background-color:#f5f7fa;border-color:#e4e7ed;color:#c0c4cc;cursor:not-allowed}.disabled .form-select-append{color:#c0c4cc}.form-select-append{position:absolute;height:100%;width:30px;right:0;top:0;color:#c0c4cc;pointer-events:none;display:flex;align-items:center;justify-content:center}.form-select-append i{transition:all .3s;transform:rotate(180deg)}.select .search{padding:7px 10px;position:relative;border-bottom:1px solid #ddd;padding-bottom:.625rem;margin-bottom:.5rem}.select .search .search-text{width:100%;padding-right:30px}.select .search .fa-search{position:absolute;left:calc(100% - 34px);top:18px;color:#adb5bd}.form-select{width:100%}.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size="1"],.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size="1"],.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size="1"],.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size="1"]{background-position:right -1rem center,center right 1.5rem}.skeleton{width:100%;flex:1}.skeleton-content{position:relative}.skeleton-row{min-height:32px;background-color:#e9ecef}.skeleton-row:not(:last-child){margin-bottom:.5rem}.skeleton-content.round .skeleton-col{border-radius:var(--bs-border-radius)}.skeleton-content.active .skeleton-col,.skeleton-content.active .skeleton-avatar{background:-webkit-gradient(linear,left top,right top,color-stop(25%,#f2f2f2),color-stop(37%,#e6e6e6),color-stop(63%,#f2f2f2));background:linear-gradient(90deg,#f2f2f2 25%,#e6e6e6 37%,#f2f2f2 63%);background-size:400% 100%;-webkit-animation:skeleton-loading 1.4s ease infinite;animation:skeleton-loading 1.4s ease infinite}@-webkit-keyframes skeleton-loading{0%{background-position:100% 50%}to{background-position:0 50%}}@keyframes skeleton-loading{0%{background-position:100% 50%}to{background-position:0 50%}}@media(min-width:576px){.skeleton-content .control-label.skeleton-row{margin-bottom:0}}.skeleton-content .form-control.skeleton-row{flex:1}.skeleton-avatar{width:2rem;height:2rem}.skeleton-content.round .skeleton-avatar{border-radius:4px}.skeleton-content .skeleton-avatar.circle{border-radius:50%}.skeleton-table,.skeleton-buttons{border-radius:var(--bs-border-radius);border:1px solid #dee2e6;overflow:hidden}.skeleton-table .skeleton-content .skeleton-row{background:#fff;display:flex;height:39px;padding:.5rem;margin:0}.skeleton-table .skeleton-content .skeleton-row:nth-of-type(odd):not(:first-of-type){background:#f5f8fabf}.skeleton-table .skeleton-content .skeleton-row:first-of-type{border-bottom:2px solid var(--bs-secondary)}.skeleton-table .skeleton-content .skeleton-row .skeleton-col{flex:1;background-color:#e9ecef;margin:5px;height:12.5px}.skeleton-table .skeleton-row:first-of-type .skeleton-col{background:#ddd}.skeleton-toolbar{height:35px;display:flex;margin-bottom:.5rem}.skeleton-buttons{display:inline-flex;overflow:hidden}.skeleton-button{height:35px;width:70px;background-color:var(--bs-secondary);border-color:var(--bs-secondary)}.skeleton-button:not(:last-child){border-right:1px solid #ddd}.slider{flex:1 1 auto}.slider:after{clear:both}.slider:after,.slider:before{display:table;content:""}.slider-runway{width:100%;height:6px;margin:16px 0;background-color:#e4e7ed;border-radius:3px;position:relative;cursor:pointer}.slider-runway.disabled .slider-bar{background-color:#c0c4cc}.slider-runway.disabled .slider-button.dragging,.slider-runway.disabled .slider-button.hover,.slider-runway.disabled .slider-button:hover{transform:scale(1)}.slider-runway.disabled .slider-button{border-color:#c0c4cc}.slider-bar{height:6px;background-color:#409eff;border-top-left-radius:3px;border-bottom-left-radius:3px;position:absolute}.slider-button-wrapper{height:36px;width:36px;position:absolute;top:-15px;transform:translateX(-50%);background-color:transparent;user-select:none;line-height:normal;display:flex;align-items:center;justify-content:center}.slider-button-wrapper:focus{outline:none}.slider-button-wrapper.hover,.slider-button-wrapper:hover{cursor:grab}.slider-button-wrapper.dragging{cursor:grabbing}.slider-button{width:16px;height:16px;border:2px solid #409eff;background-color:#fff;border-radius:50%;transition:.2s;user-select:none;outline:none}.slider-button.dragging,.slider-button.hover,.slider-button:hover{transform:scale(1.3)}.split{display:block;height:100%;width:100%}.split .split-wrapper{display:flex;flex-direction:column;height:100%}.split .split-wrapper.is-horizontal{flex-direction:row}.split.dragging .split-wrapper{cursor:row-resize}.split.dragging .split-wrapper.is-horizontal{cursor:col-resize}.split .split-pane{height:100%;overflow:hidden}.split .split-bar{display:flex;justify-content:center;align-items:center;height:6px;width:100%;background:#f8f8f9;border:1px solid #dcdee2;border-left:none;border-right:none;cursor:row-resize;overflow:unset}.split .split-bar:hover,.split.dragging>.split-wrapper>.split-bar{background-color:#409eff}.split .split-bar:hover .split-trigger-bar,.split.dragging>.split-wrapper>.split-bar .split-trigger-bar{background-color:var(--bs-bg-disabled)}.split .split-trigger{font-size:0;display:inline-block}.split .split-bar .split-trigger-bar{width:1px;height:4px;background:rgba(23,35,61,.25);margin-left:3px;display:inline-block}.split .split-wrapper.is-horizontal>.split-bar{width:6px;height:100%;border:1px solid #dcdee2;border-top:none;border-bottom:none;cursor:col-resize}.split .split-wrapper.is-horizontal>.split-bar .split-trigger-bar{width:4px;height:1px;margin-left:0;margin-top:3px}.steps-header{display:flex}.steps-horizontal{white-space:nowrap}.step{position:relative;flex-shrink:1}.step.is-horizontal{display:inline-block}.step.is-center .step-head,.step.is-center .step-main{text-align:center}.step-head{position:relative;width:100%;line-height:1}.step-head.is-success{color:#67c23a;border-color:#67c23a}.step-head.is-process{color:#303133;border-color:#303133}.step-head.is-wait{color:#c0c4cc;border-color:#c0c4cc}.step-head.is-finish{color:#409eff;border-color:#409eff}.step-head.is-error{color:#f56c6c;border-color:#f56c6c}.step-main{white-space:normal;text-align:left}.step-title{font-size:14px;line-height:38px}.step-title.is-success{color:#67c23a}.step-title.is-finish{color:#409eff}.step-title.is-process{font-weight:700;color:#303133}.step-title.is-wait{color:#c0c4cc}.step-title.is-error{color:#f56c6c}.step-description{padding-right:10%;margin-top:-5px;font-size:12px;line-height:20px;font-weight:400}.step-description.is-success{color:#67c23a}.step-description.is-finish{color:#409eff}.step-description.is-process{color:#303133}.step-description.is-wait{color:#c0c4cc}.step.is-center .step-description{padding-left:20%;padding-right:20%}.step-line{position:absolute;border-color:inherit;background-color:#c0c4cc}.step.is-horizontal .step-line{height:2px;top:11px;left:0;right:0}.step.is-center .step-line{left:50%;right:-50%}.step-line-inner{display:block;border:1px solid;border-color:inherit;transition:.15s ease-out;box-sizing:border-box;width:0;height:0}.step:last-of-type .step-line{display:none}.step-icon{position:relative;z-index:1;display:inline-flex;justify-content:center;align-items:center;width:24px;height:24px;font-size:14px;box-sizing:border-box;background:#fff;transition:.15s ease-out}.step-icon.is-text{border-radius:50%;border:2px solid;border-color:inherit}.step-icon.is-icon{width:40px}.step-icon-inner{display:inline-block;user-select:none;text-align:center;font-weight:700;line-height:1;color:inherit;font-style:normal}.step-icon-inner[class*=fa]:not(.is-status){font-size:25px;font-weight:400}.step:last-of-type.is-flex{flex-basis:auto !important;flex-shrink:0;flex-grow:0}.switch{display:inline-flex;align-items:center;height:35px;width:100%}.switch .switch-core{margin:0;display:inline-block;position:relative;border:1px solid #dcdfe6;outline:none;border-radius:10px;box-sizing:border-box;background:#dcdfe6;cursor:pointer;transition:border-color .3s,background-color .3s;vertical-align:middle}.switch .switch-core:after{content:"";position:absolute;top:1px;left:1px;border-radius:50%;transition:all .3s;width:16px;height:16px;background-color:#fff}.switch .switch-core:before{content:attr(data-inner-text);position:absolute;top:1px;left:calc(100% - 17px);transition:all .3s;font-size:80%;color:#606266}.switch.is-checked .switch-core:after{left:100%;margin-left:-17px}.switch.is-checked .switch-core:before{left:5px;color:#fff}.switch .switch-label{margin-left:10px;cursor:pointer}.switch.disabled{opacity:.6}.switch .switch-inner-text{font-size:80%}td :not(.is-incell) .switch{height:auto}.tabs{display:flex}.tabs,.tabs-body,.tabs-body-content{height:100%}.tabs.tabs-top{flex-flow:column}.tabs.tabs-top.tabs-border-card .tabs-header{margin-bottom:0;border-top-left-radius:var(--bs-border-radius);border-top-right-radius:var(--bs-border-radius)}.tabs.tabs-right{flex-flow:row-reverse}.tabs.tabs-left{flex-flow:row}.tabs.tabs-bottom{flex-flow:column-reverse}.tabs.tabs-card.tabs-bottom .tabs-header{border-top:1px solid #e4e7ed;border-bottom:none}.tabs.tabs-border-card.tabs-bottom .tabs-header{margin-top:0}.tabs .tabs-nav-wrap{position:relative;display:flex}.tabs .tabs-nav-wrap:after{content:"";position:absolute;left:0;bottom:0;width:100%;height:2px;background-color:#e4e7ed}.tabs.tabs-top .tabs-nav-wrap{margin-bottom:-1px}.tabs.tabs-bottom .tabs-nav-wrap{margin-top:-1px}.tabs.tabs-left .tabs-nav-wrap{margin-right:-1px}.tabs.tabs-right .tabs-nav-wrap{margin-left:-1px}.tabs.tabs-top .tabs-nav-wrap,.tabs.tabs-bottom .tabs-nav-wrap{width:100%}.tabs.tabs-top .tabs-nav-wrap.is-scrollable:not(.extend),.tabs.tabs-bottom .tabs-nav-wrap.is-scrollable:not(.extend){padding:0 30px}.tabs.tabs-left .tabs-nav-wrap,.tabs.tabs-right .tabs-nav-wrap{height:100%}.tabs.tabs-left .tabs-nav-wrap:after,.tabs.tabs-right .tabs-nav-wrap:after{left:auto;right:0;width:2px;height:100%}.tabs.tabs-right .tabs-nav-wrap:after{left:0;right:auto}.tabs.tabs-left .tabs-nav-wrap.is-scrollable,.tabs.tabs-right .tabs-nav-wrap.is-scrollable{padding:30px 0}.tabs .tabs-nav-next,.tabs .tabs-nav-prev{position:absolute;cursor:pointer;line-height:40px;height:40px;font-size:16px;color:#909399;width:30px;justify-content:center;align-items:center;display:none}.tabs .tabs-nav-prev{left:0;top:0}.tabs .tabs-nav-next{right:0;top:0}.tabs .tabs-nav-next:hover,.tabs-nav-prev:hover{color:#409eff}.tabs.tabs-left .tabs-nav-prev,.tabs.tabs-right .tabs-nav-prev{top:0;left:calc(50% - 15px);height:30px}.tabs.tabs-left .tabs-nav-prev i:before,.tabs-right .tabs-nav-prev i:before{content:""}.tabs.tabs-left .tabs-nav-next,.tabs.tabs-right .tabs-nav-next{top:auto;bottom:0;left:calc(50% - 15px);height:30px}.tabs.tabs-left .tabs-nav-next i:before,.tabs.tabs-right .tabs-nav-next i:before{content:""}.tabs .tabs-nav-wrap .nav-link-bar{padding:.5rem 1rem;background-color:#fff;border:1px solid #dcdfe6;border-width:0 0 1px 1px;height:39px;cursor:pointer}.tabs .tabs-nav-wrap .nav-link-bar.left{border:1px solid #dcdfe6;border-width:0 1px 1px 0}.tabs .tabs-nav-wrap .nav-link-bar.right{border:1px solid #dcdfe6;border-width:0 0 1px 1px}.tabs .tabs-nav-wrap .dropdown-toggle:after{display:none}.tabs .tabs-nav-wrap .dropdown-item{transition:background-color .3s linear}.tabs .tabs-nav-wrap .dropdown-item:hover{background-color:#409eff}.tabs .tabs-nav-scroll{overflow:hidden;flex:1}.tabs.tabs-card.tabs-top .tabs-nav-scroll{border:solid 1px #ddd;border-radius:var(--bs-border-radius) var(--bs-border-radius) 0 0;border-bottom:none}.tabs.tabs-card.tabs-bottom .tabs-nav-scroll{border:solid 1px #ddd;border-radius:0 0 var(--bs-border-radius) var(--bs-border-radius);border-top:none}.tabs.tabs-card.tabs-left .tabs-nav-scroll{border:solid 1px #ddd;border-radius:var(--bs-border-radius) 0 0 var(--bs-border-radius);border-right:none}.tabs.tabs-card.tabs-right .tabs-nav-scroll{border:solid 1px #ddd;border-radius:0 var(--bs-border-radius) var(--bs-border-radius) 0;border-left:none}.tabs.tabs-left .tabs-nav-scroll,.tabs.tabs-right .tabs-nav-scroll{height:100%}.tabs.tabs-top .tabs-nav-scroll,.tabs.tabs-bottom .tabs-nav-scroll{width:100%}.tabs .tabs-nav{white-space:nowrap;position:relative;display:flex}.tabs.tabs-left .tabs-nav,.tabs.tabs-right .tabs-nav{flex-flow:column}.tabs.tabs-left .tabs-nav .tabs-active-bar,.tabs.tabs-right .tabs-nav .tabs-active-bar{width:2px;height:40px}.tabs.tabs-left .tabs-item{text-align:right}.tabs.tabs-left .tabs-nav .tabs-active-bar{left:auto;right:0;top:auto;bottom:auto}.tabs.tabs-right .tabs-nav .tabs-active-bar{right:auto;left:0;top:auto;bottom:auto}.tabs .tabs-body{padding:1rem}.tabs.tabs-card .tabs-body{border:1px solid #e4e7ed}.tabs.tabs-card.tabs-top .tabs-body{border-top-width:0;border-radius:0 0 4px 4px}.tabs.tabs-card.tabs-bottom .tabs-body{border-bottom-width:0;border-radius:var(--bs-border-radius) var(--bs-border-radius) 0 0}.tabs.tabs-card.tabs-left .tabs-body{border-left-width:0;border-radius:0 var(--bs-border-radius) var(--bs-border-radius) 0}.tabs.tabs-card.tabs-right .tabs-body{border-right-width:0;border-radius:var(--bs-border-radius) 0 0 var(--bs-border-radius)}.is-scrollable .tabs-nav-prev,.is-scrollable .tabs-nav-next{display:flex}.tabs-active-bar{position:absolute;bottom:0;left:0;height:2px;background-color:#409eff;z-index:1;transition:transform .3s cubic-bezier(.645,.045,.355,1);list-style:none}.tabs-item.active{color:#409eff}.tabs-item{padding:0 20px;height:40px;line-height:40px;display:flex;list-style:none;font-weight:500;color:#303133;cursor:pointer;align-items:center;position:relative;transition:color .3s linear,background-color .3s linear}.tabs-item:hover{color:#409eff}.tabs-item .tabs-item-text{padding:0 .25rem;flex:1 1 auto}.tabs-item.is-closeable .tabs-item-text{margin-right:1rem;margin-left:1rem}.tabs-item:hover .tabs-item-close{display:flex}.tabs-item .tabs-item-close{width:18px;height:18px;display:none;position:absolute;right:1rem;justify-content:center;align-items:center;transition:all .3s linear}.tabs-item .tabs-item-close:hover{background-color:#e4e7ed;border-radius:var(--bs-border-radius)}.tabs-content{overflow:hidden;position:relative}.tabs-card.tabs-top .tabs-header{border-bottom:1px solid #e4e7ed}.tabs-card .tabs-header .tabs-item.active{border-bottom-color:#fff}.tabs-card.tabs.tabs-left .tabs-header{border-right:1px solid #e4e7ed}.tabs-card.tabs.tabs-right .tabs-header{border-left:1px solid #e4e7ed}.tabs-card.tabs-bottom .tabs-header .tabs-item.active{border-top-color:#fff}.tabs-card.tabs-left .tabs-header .tabs-item.active{border-right-color:#fff}.tabs-card.tabs-right .tabs-header .tabs-item.active{border-left-color:#fff}.tabs-card .tabs-header .tabs-item:first-child{border-left:none}.tabs-card .tabs-header .tabs-item{border-bottom:1px solid transparent;border-left:1px solid #e4e7ed;transition:color .3s cubic-bezier(.645,.045,.355,1),padding .3s cubic-bezier(.645,.045,.355,1)}.tabs-card .tabs-header .tabs-item{border-bottom:1px solid transparent;border-left:1px solid #e4e7ed;transition:color .3s cubic-bezier(.645,.045,.355,1),padding .3s cubic-bezier(.645,.045,.355,1)}.tabs-card.tabs-top .tabs-header .tabs-item:last-child,.tabs-card.tabs-bottom .tabs-header .tabs-item:last-child{border-right:1px solid #e4e7ed}.tabs-card.tabs-bottom .tabs-header .tabs-item{border-top:1px solid transparent}.tabs-card.tabs-left .tabs-header .tabs-item{border-right:1px solid transparent;border-left:none;border-bottom:1px solid #e4e7ed}.tabs-card.tabs-right .tabs-header .tabs-item{border-left:1px solid transparent;border-right:none;border-bottom:1px solid #e4e7ed}.tabs-border-card{background:#fff;border:1px solid #dcdfe6;box-shadow:0 2px 4px 0 rgba(0,0,0,.12),0 0 6px 0 rgba(0,0,0,.04);border-radius:var(--bs-border-radius)}.tabs-border-card>.tabs-header{background-color:#f5f7fa;margin:0}.tabs-border-card>.tabs-header .tabs-item.active{color:#409eff;background-color:#fff;border-right-color:#dcdfe6;border-left-color:#dcdfe6}.tabs-border-card>.tabs-header .tabs-item{border:1px solid transparent}.tabs-border-card>.tabs-header .tabs-item:not(:hover):not(.active){color:#909399}.tabs-border-card>.tabs-header .tabs-item:not(.active):hover{background-color:#e9ecef}.tabs-border-card.tabs-top .tabs-header{border-bottom:1px solid #e4e7ed}.tabs-border-card.tabs-bottom .tabs-header{border-top:1px solid #e4e7ed}.tabs-border-card.tabs-top .tabs-header .tabs-item{margin-top:-1px}.tabs-border-card.tabs-top .tabs-header .tabs-item:first-child{border-top-left-radius:var(--bs-border-radius)}.tabs-border-card.tabs-left .tabs-header,.tabs-border-card.tabs-right .tabs-header{border-bottom-width:0}.tabs-border-card.tabs-top .tabs-header .tabs-nav-wrap:not(.is-scrollable) .tabs-item,.tabs-border-card.tabs-bottom .tabs-header .tabs-nav-wrap:not(.is-scrollable) .tabs-item{margin-left:-1px}.tabs-border-card.tabs-left .tabs-item.active,.tabs-border-card.tabs-right .tabs-item.active{border-top-color:#dcdfe6;border-bottom-color:#dcdfe6}.tabs-border-card.tabs-left .tabs-item{border-left:none}.tabs-border-card.tabs-right .tabs-item{border-right:none}.tabs-border-card.tabs-left .tabs-item.active{border-right-color:#fff}.tabs-border-card.tabs-right .tabs-item.active{border-left-color:#fff}.tabs-bottom.tabs-border-card>.tabs-header .tabs-item:nth-child(2),.tabs-bottom.tabs-card>.tabs-header .tabs-item:nth-child(2),.tabs-bottom .tabs-left>.tabs-header .tabs-item:nth-child(2),.tabs-bottom .tabs-right>.tabs-header .tabs-item:nth-child(2),.tabs-top.tabs-border-card>.tabs-header .tabs-item:nth-child(2),.tabs-top.tabs-card>.tabs-header .tabs-item:nth-child(2),.tabs-top .tabs-left>.tabs-header .tabs-item:nth-child(2),.tabs-top .tabs-right>.tabs-header .tabs-item:nth-child(2){padding-left:20px}.tabs-bottom.tabs-border-card>.tabs-header .tabs-item:last-child,.tabs-bottom.tabs-card>.tabs-header .tabs-item:last-child,.tabs-bottom .tabs-left>.tabs-header .tabs-item:last-child,.tabs-bottom .tabs-right>.tabs-header .tabs-item:last-child,.tabs-top.tabs-border-card>.tabs-header .tabs-item:last-child,.tabs-top.tabs-card>.tabs-header .tabs-item:last-child,.tabs-top .tabs-left>.tabs-header .tabs-item:last-child,.tabs-top .tabs-right>.tabs-header .tabs-item:last-child{padding-right:20px}.tabs-card>.tabs-header .tabs-nav-wrap:after,.tabs-border-card>.tabs-header .tabs-nav-wrap:after{content:none}.tabs-card .tabs-item.is-closeable .tabs-item-text,.tabs-border-card .tabs-item.is-closeable .tabs-item-text{margin-right:1rem;margin-left:0}.is-page .layout-main>.tabs{margin:-1rem;border:none;border-radius:unset;min-height:calc(100% + 2rem)}.table-container{position:relative}.table-wrapper{border-radius:var(--bs-border-radius);border:1px solid #dee2e6}.table-wrapper thead tr:first-child{border-top:none}.table-wrapper tbody tr:last-child{border-bottom:none}.table-wrapper th:first-child,.table-wrapper td:first-child,.table-wrapper th.fixed-scroll{border-left-width:0}.table-wrapper th:last-child,.table-wrapper td:last-child,.table-wrapper .table-fixed-header th:nth-last-of-type(2){border-right-width:0}.table-wrapper tr:last-child td{border-bottom-width:0}.table-wrapper .table-fixed-body td:last-child{border-right-width:1px}.table-th-checkbox{width:36px}.table-th-checkbox.show-text{width:80px}.table-th-button{width:130px}.table{margin-bottom:0;--bb-table-selected-bg:#9ec6ef}.table thead th,.table tbody td{border-top:none}.table thead th{white-space:nowrap;vertical-align:top}.table thead th.sortable:hover,.table thead th.filterable:hover{background-color:#e9ecef}.table thead th.sortable:hover>.fa{color:#999}.table thead.table-dark th.sortable:hover,.table thead.table-dark th.filterable:hover{background-color:#343a40}.table thead th .table-cell{justify-content:space-between;position:relative}.table thead th .table-cell .table-text{flex:1}.table thead th .table-cell>.fa{content:"";position:absolute;right:-8px;top:-8px;bottom:-8px;width:1.5rem;display:flex;align-items:center;justify-content:center;color:#ddd}.table thead th .table-cell>.fa:hover{background-color:#ddd;color:#606266}.table thead th .table-cell .fa-filter{cursor:pointer}.table thead th .table-cell .fa-filter.active{color:#409eff}.table thead.table-dark th .table-cell>.fa:hover{background-color:#6c757d;color:#fff}.table thead.table-light th .table-cell>.fa{color:#c0c4cc}.table thead.table-light th .table-cell>.fa:hover{color:#495057}.table thead th.sortable .fa-sort-asc,.table thead th.sortable .fa-sort-desc{color:inherit}.table thead th.sortable .table-cell .table-text,.table thead th.filterable .table-cell .table-text{padding-right:1rem}.table thead th.filterable .table-cell .fa-filter{right:-8px}.table thead th.sortable.filterable .table-cell .fa-filter{right:calc(1.5rem - 8px)}.table thead th.sortable.filterable .table-cell .table-text{padding-right:2.5rem;overflow:hidden;text-overflow:ellipsis}.table tfoot{font-weight:bold;border-top:2px solid #dee2e6}.table td,.table th{min-width:0;text-overflow:ellipsis}.table .is-editform .table-cell{overflow:hidden}.table-sm thead th .table-cell>.fa{right:-4px;top:-4px;bottom:-4px}.table-sm thead th.filterable .table-cell .fa-filter{right:-4px}.table-sm thead th.sortable.filterable .table-cell .fa-filter{right:calc(1.5rem - 4px)}.is-clickable tbody tr,.is-clickable .table-row{cursor:pointer}.table-cell{display:flex;align-items:center;word-break:break-all}.table-cell.is-sort{cursor:pointer}.table-cell.is-sort .fa-sort{color:#ddd}.table-cell .btn-group .btn{white-space:nowrap}.table-hover tbody tr.is-detail:hover,.table-hover tbody tr.is-editform,.table-hover tbody tr.is-editform:hover{--bs-table-accent-bg:unset}.table tbody tr.is-master td:first-child{padding-left:0;padding-right:0}.table-toolbar:after{content:"";display:block;clear:both}.table-toolbar .table-toolbar-button{margin-bottom:.5rem}.table-toolbar .table-toolbar-button .table-toolbar-search{border-top-left-radius:4px;border-bottom-left-radius:4px}.table-toolbar .dropdown-menu .dropdown-item span{margin-left:.5rem}.table-toolbar .dropdown-item.hover,.table-toolbar .dropdown-item:hover{color:#fff;background-color:#007bff}.table-pagination.is-top{margin-bottom:.5rem}.table-pagination:not(.is-top){margin-top:.5rem}.btn-gear .dropdown-menu{min-width:initial;padding:0}.btn-gear .dropdown-menu .dropdown-item{padding:6px 12px;display:table-cell;color:#504d4d}.btn-gear .dropdown-menu .dropdown-item:not(:first-child){border-left:solid 1px #aeb2b7}.table-column-right{margin-left:.3125rem}.search-input-tooltip{font-size:.75rem}.search-input-tooltip kbd{display:inline-block;background:#17a2b8;padding:1px 6px}.table-fixed{height:100%}.table-fixed .table{table-layout:fixed}.table-fixed-header{overflow:hidden;border-top-left-radius:var(--bs-border-radius);border-top-right-radius:var(--bs-border-radius)}.table-fixed-body{overflow-x:auto !important;overflow-y:scroll !important}.table-scroll{overflow:auto}.table-scroll .table tbody td .table-cell:not(.is-wrap){white-space:nowrap}.table-cell.is-ellips{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.table-cell.is-ellips.is-resizable{position:absolute;left:12px;right:12px}.table-loading,.table-loader,.form-loader{display:flex;justify-content:center;align-items:center;border:1px solid #ddd;border-radius:var(--bs-border-radius);padding:2rem;flex:1}.table-loader,.form-loader{display:none;opacity:.8;position:absolute;left:0;right:0;top:0;bottom:0;background-color:#f8f9fa;z-index:4}.table-loader.show,.form-loader.show{display:flex}.table-modal-footer{padding-top:1rem;border-top:1px solid #dee2e6;text-align:right}.table tbody tr.active:not(.is-edit),.table-row.active{background-color:var(--bb-table-selected-bg)}.table-hover>tbody>tr.is-detail:hover,.table-hover>tbody>tr.is-edit.active,.table-excel>tbody>tr:hover{--bs-table-accent-bg:none}.table-row{padding:.75rem}.table-row:not(:last-child){border-bottom:1px solid #dee2e6}.table-row:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.table-row:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px}.table-row .table-cell:not(:last-child){padding-bottom:.5rem}.table-row .table-cell label:not(.form-checkbox){font-weight:bold;width:30%;min-width:30%;margin-bottom:0;color:#212529;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-right:6px}.table-row .table-cell>span{display:inherit}.table-row.table-footer{display:flex}.table-row.table-footer .table-cell{padding-bottom:0}.table-row.table-footer .table-cell:first-child{font-weight:bold;width:30%;margin-bottom:0;color:#212529;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.table-fixed-column .table{table-layout:fixed;border-collapse:separate;border-spacing:0}.table-fixed-column .table .fixed,.table-fixed-column .table .fixed-scroll{background-color:#fff}.table-fixed-column .table tr .fixed{position:sticky;z-index:2}.table-fixed-column .table th,.table-fixed-column .table td{border-left-width:0;border-top-width:0}.table-fixed-column .table .table-light .fixed,.table-fixed-column .table .table-light .fixed-scroll,.table-fixed-column .table .table-dark .fixed,.table-fixed-column .table .table-dark .fixed-scroll{background-color:var(--bs-table-bg)}.table-fixed-column .table .fixed{border-right:1px solid #409eff}.table-fixed-column .table .fixed-right{border-right:inherit;border-left:1px solid #409eff}.table-fixed-column .fixed-scroll{position:sticky;right:0;background-color:var(--bs-table-bg)}.table .is-bar{padding:0;justify-content:center}.table .is-bar .fa-caret-right{width:20px;height:20px;border-radius:50%;display:inline-flex;justify-content:center;align-items:center;cursor:pointer;transition:background-color .3s linear,transform .3s linear}.table .is-bar .fa-caret-right:hover{background-color:#ddd}.table .is-detail{display:none}.table .is-detail.show{display:table-row}.table .table-cell .table-container,.table .table-cell .tabs,.table .table-cell form{flex:1}.table .table-cell .tabs .tabs-body{padding:1rem 0 0 0}.table-resize thead th,.table-resize tbody td{position:relative}.table-resize thead th .col-resizer{width:.25rem;display:block;position:absolute;top:0;right:0;bottom:0;cursor:col-resize}.table-resize .border-resize{border-right:1px solid #409eff}.table .table-cell.is-tree{cursor:pointer}.table-cell.is-incell{margin:-7px -6px}.table-cell.is-incell .switch{padding-left:6px}.table-cell.is-incell .select{width:100%}.table-cell .is-node .is-tree{transition:transform .3s linear}.table-sm .table-cell.is-incell{margin:-.25rem}.table-sm .table-cell.is-incell .form-control{height:calc(1.5em + .75rem - 3px)}.table-sm .table-cell.is-incell .switch{height:30px;padding-left:4px}.table-bordered thead tr:last-child>th{border-bottom-width:2px !important;border-bottom-color:var(--bs-secondary)}.table-striped>tbody>tr.is-master:nth-of-type(odd){--bs-table-accent-bg:#fff}.table-striped>tbody>tr.is-master:nth-of-type(odd).active{--bs-table-accent-bg:var(--bb-table-selected-bg)}.table-striped>tbody>tr.is-master:nth-of-type(4n+1){--bs-table-accent-bg:var(--bs-table-striped-bg);color:var(--bs-table-striped-color)}.table-wrapper .empty-text{padding:1rem}form .table .table-cell>.form-label{display:none}form .table .table-cell>textarea{width:100%}.table-search{margin-bottom:.5rem}.table-search .card-header{padding:0}.table-search .card-header .table-search-title{padding:.5rem 1rem;flex:1;cursor:pointer}.table-search .card-header .table-search-buttons{padding:.25rem 1rem}.table-search .card-header .table-search-buttons .btn{padding:.275rem .5rem}.table-search-collapse{flex:1;display:flex;align-items:center;padding:0 1rem}.table-search-collapse .table-search-collapse-arrow{cursor:pointer;transition:.3s transform linear;transform:rotate(0)}.table-search-collapse.is-open .table-search-collapse-arrow{transform:rotate(90deg)}.table-search-collapse .table-search-collapse-title{cursor:pointer;margin-left:.5rem;flex:1}.table-search .collapsed .card-header{border-bottom-color:transparent}.table-search .card-header .input-group,.table-search .collapsed .input-group+.table-search-buttons{display:none}.table-search .card-header .input-group{width:auto;padding:2px}.table-search .card-header .input-group .table-toolbar-search,.table-search .card-header .input-group .btn{height:34px}.table-search .collapsed .input-group{display:flex}.table-excel-toolbar{display:none;position:absolute}.table-excel.table>:not(caption):not(thead)>*>*{padding:0}.table-excel tbody .table-cell>.form-check{padding:6px 8px}.table-excel tbody .table-cell .switch{padding:.375rem .1875rem;justify-content:center}.table-excel .form-control,.table-excel .table-cell .select .form-select{border:none;border-radius:0;padding:.375rem .1875rem}.table-excel .table-cell .select{width:100%}.table-excel .table-cell>.disabled{background-color:var(--bs-bg-disabled);width:100%;padding:.375rem .1875rem}.table-excel .datetime-picker-input{padding-left:2rem}.table-excel .datetime-picker-input-icon{line-height:32px}.table-excel.table tbody tr.active{background-color:transparent}.table-cell.text-center,.table-cell.text-center .switch{justify-content:center}.table-cell.text-center input{text-align:center}.table-cell.text-end,.table-cell.text-end .switch{justify-content:end}.table-cell.text-end input{text-align:right}.table-cell>.progress{flex:1}.table-cell.is-ph{height:12.5px;background-color:#e9ecef;border-radius:var(--bs-border-radius);margin:5px 0}.table-cell .is-dbcell{display:flex;cursor:pointer;position:relative}.table-cell .is-dbcell:hover:before{content:"";position:absolute;bottom:-3px;height:1px;width:100%;background-color:var(--bs-primary)}.table-cell .is-node{width:18px}.table-cell .tag{line-height:22px}.table-cell .is-color{width:28px;height:21px;border-radius:.25rem}.tag{display:inline-flex;padding:0 10px;line-height:30px;font-size:12px;border-radius:var(--bs-border-radius);white-space:nowrap;align-items:center}.tag>i+.tag-text{margin-left:4px}.tag>.btn-close{margin-left:8px;width:4px;height:4px}.timer .time-panel-footer{display:flex;justify-content:space-between}.timer .time-panel-btn{border:1px solid transparent;border-radius:var(--bs-border-radius);transition:border .3s linear;padding:0 .65rem}.timer .time-panel-btn:hover{border-color:#ddd}.timer .time-panel-btn.confirm{color:#28a745}.timer .circle-title{flex-flow:column nowrap;bottom:66px}.timer .timer-body{font-size:3.5rem}.timer .timer-alert{font-size:1rem}.timer .timer-alert i{margin-right:.5rem}.timer .timer-buttons{display:flex;justify-content:space-between}.timer .timer-buttons .btn{border:5px double #949496;border-radius:50%;height:66px;width:66px;font-size:.75rem !important;padding:0}.toast-container{position:fixed;z-index:1090}.toast{overflow:hidden;width:246px;cursor:pointer;display:none;transition:transform .3s linear,opacity .3s linear;transform:translateX(100%);background-color:#fff}.toast.show{transform:translateX(0)}.toast.left{transform:translateX(-100%)}.toast.left.show{transform:translateX(0)}.toast:hover{box-shadow:0 1px .75rem rgba(0,0,0,.15)}.toast .toast-progress{position:absolute;right:0;bottom:0;height:4px;width:0}.toast.left .toast-progress{left:0;right:unset}.toast .btn-close{height:4px;width:4px;margin:0}@media(min-width:375px){.toast{min-width:300px}}@media(min-width:576px){.toast{min-width:320px}}.btn-toggle{position:relative;overflow:hidden;border:1px solid #c0c4cc;min-width:70px;min-height:35px}.btn-toggle.off .toggle-group{left:-100%}.btn-toggle .btn-default,.btn-toggle.btn-default{background-color:#e0e0e0;border-color:#ccc;box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075)}.btn-toggle .btn-default:hover{color:#333;background-color:#d4d4d4}.btn-toggle .toggle-group{position:absolute;width:200%;top:0;bottom:0;left:0;-webkit-transition:left .35s;-moz-user-select:none;-webkit-user-select:none;transition:left .35s}.btn-toggle .toggle-group label{display:flex;align-items:center;justify-content:center}.btn-toggle .toggle-group label,.btn-toggle .toggle-group span{cursor:pointer}.btn-toggle .toggle-group .toggle-on.bg-dark{color:#e4e7ed}.btn-toggle .btn-handle{position:relative;margin:0 auto;padding-top:0;padding-bottom:0;height:100%;width:0;border-width:0 1px;background-image:linear-gradient(to bottom,#fff 0%,#e0e0e0 100%);border-color:#ccc;box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075)}.btn-toggle .toggle-on{position:absolute;top:0;bottom:0;left:0;right:50%;margin:0;border:0;border-radius:0}.btn-toggle .toggle-on.btn{padding-right:24px}.btn-toggle .toggle-on.btn-lg{padding-right:31px}.btn-toggle.off .toggle-off{color:#333}.btn-toggle .toggle-off{position:absolute;top:0;bottom:0;left:50%;right:0;margin:0;border:0;border-radius:0;background-color:#e0e0e0}.btn-toggle .toggle-off.btn{padding-left:24px}.btn-toggle .toggle-off.btn-lg{padding-left:31px}.btn-toggle.btn-lg{min-width:79px;min-height:45px}.toggle-handle.btn-lg{width:40px}.btn-toggle.btn-sm{min-width:50px;min-height:30px}.toggle-on.btn-sm{padding-right:20px}.toggle-off.btn-sm{padding-left:20px}.btn-toggle.btn-xs{min-width:35px;min-height:22px}.toggle-on.btn-xs{padding-right:12px}.toggle-off.btn-xs{padding-left:12px}.tooltip-inner{max-width:768px}.is-invalid .tooltip-inner{background-color:#dc3545}.is-invalid.bs-tooltip-auto[x-placement^=top] .tooltip-arrow::before,.is-invalid.bs-tooltip-top .tooltip-arrow::before{border-top-color:#dc3545}.is-invalid.bs-tooltip-auto[x-placement^=bottom] .tooltip-arrow::before,.is-invalid.bs-tooltip-bottom .tooltip-arrow::before{border-bottom-color:#dc3545}.is-invalid.bs-tooltip-auto[x-placement^=left] .tooltip-arrow::before,.is-invalid.bs-tooltip-left .tooltip-arrow::before{border-left-color:#dc3545}.is-invalid.bs-tooltip-auto[x-placement^=right] .tooltip-arrow::before,.is-invalid.bs-tooltip-right .tooltip-arrow::before{border-right-color:#dc3545}.transfer{font-size:14px}.transfer-panel{border:1px solid var(--bs-border-color);border-radius:var(--bs-border-radius);overflow:hidden;background:#fff;display:inline-block;vertical-align:middle;width:200px;max-height:100%;box-sizing:border-box;position:relative}.transfer-panel.is-invalid{border:1px solid #dc3545}.transfer-panel.is-valid{border:1px solid #28a745}.transfer-panel .transfer-panel-header{height:40px;line-height:40px;background:#f5f7fa;margin:0;padding-left:15px;border-bottom:1px solid var(--bs-border-color);color:#000}.transfer-panel-body{height:246px}.transfer-panel-list{margin:0;padding:6px 0;list-style:none;height:246px}.transfer-panel-list.search{height:214px}.transfer-panel-item{height:30px;line-height:30px;padding-left:15px;display:block}.transfer-panel-item .form-check-input{margin:7px 0}.transfer-buttons{display:inline-block;vertical-align:middle;padding:0 30px}.transfer-buttons .btn{white-space:nowrap}.transfer-buttons .btn:not(:first-child){margin-left:10px}.transfer-buttons .disabled,.transfer-buttons .disabled:active,.transfer-buttons .disabled:focus,.transfer-buttons .disabled:hover,.transfer-buttons [disabled]{color:#fff;background-color:#a0cfff;border-color:#a0cfff}.transfer-panel-filter{text-align:center;margin:.5rem 1rem 0 1rem;display:block;width:auto;position:relative}.transfer-panel-filter .input-inner{height:32px;line-height:32px;width:100%;display:inline-block;border-radius:var(--bs-border-radius);padding-right:10px;padding-left:30px;border:1px solid #dcdfe6;transition:border-color .2s cubic-bezier(.645,.045,.355,1);color:#606266}.transfer-panel-filter .input-inner:focus{outline:none;border-color:#409eff}.transfer-panel-filter .input-prefix{height:100%;width:30px;transition:all .3s;position:absolute;left:4px;top:0;display:flex;align-items:center;justify-content:center;color:#c0c4cc}.transfer-panel-filter .input-prefix:not(.disabled):hover i:before,.transfer-panel-filter .input-prefix.is-on i:before{cursor:pointer;content:""}.transfer-panel-filter .input-prefix.disabled:hover i:before{cursor:not-allowed}.transfer-panel-header .form-check .form-check-input{margin:12px 0}.transfer-panel-body .form-check-label{max-width:160px}.tree{position:relative}.tree .tree-root{padding:0;margin:0}.tree .tree-ul{padding:0 0 0 20px;margin:0;display:none}.tree .tree-ul.show{display:block}.tree .tree-item{list-style:none;cursor:pointer;margin:1px 0}.tree .tree-item:before{content:"";position:absolute;left:0;width:100%;height:29px;transition:background-color .3s linear}.tree .tree-item.hover:before{background-color:#66a2e0a1}.tree .tree-item.active:before{background-color:#409effa1}.tree .tree-item .tree-content{position:relative;display:flex;padding:.25rem 0;align-items:center}.tree .tree-item .tree-content .fa-caret-right{width:18px;height:18px;transition:transform .3s linear;display:flex;align-items:center;justify-content:center}.tree .tree-item .tree-content .show .fa-caret-right{transform:rotate(90deg)}.tree .tree-node{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center}.tree .form-check{margin:0 4px}.tree-icon{width:18px}.upload .upload-body{margin-top:10px}.upload .upload-body.is-list{overflow:auto;max-height:240px}.upload .upload-body.is-list .upload-item{display:flex;align-items:center;padding:3px 5px;border-radius:var(--bs-border-radius);transition:background-color .3s linear;cursor:pointer;position:relative}.upload .upload-body.is-list .upload-item.is-invalid{color:#dc3545}.upload .upload-body.is-list .upload-item:hover{background-color:var(--bs-bg-disabled)}.upload .upload-body.is-list .upload-item:not(:last-child){margin-bottom:2px}.upload .upload-body.is-list .upload-item:hover .fa-trash-o{display:inline-block}.upload .upload-body.is-list .upload-item .fn{flex:1;padding:0 5px;display:flex;overflow:hidden}.upload .upload-body.is-list .upload-item .fn span:first-child{max-width:calc(100% - 4rem);overflow:hidden;text-overflow:ellipsis;display:block;white-space:nowrap;padding-right:.25rem}.upload .upload-body.is-list .upload-item .fa-trash-o,.upload .upload-body.is-list .upload-item:not(.disabled):hover .fa-check-circle-o,.upload .upload-body.is-list .upload-item:hover .fa-times-circle-o,.upload .upload-body.is-avatar .upload-item .upload-item-delete,.upload .upload-body.is-avatar .upload-item.is-invalid .upload-item-spin,.upload .upload-body.is-avatar .upload-item.is-valid .upload-item-spin,.upload .upload-item.is-invalid .fa-check,.upload .upload-item.is-valid .fa-times,.upload .upload-body.is-avatar .upload-item.disabled .upload-item-plus{display:none}.upload .upload-body.is-avatar,.upload .upload-body.is-card{margin:0;display:flex;flex-wrap:wrap}.upload .upload-body.is-avatar .upload-item{padding:0;position:relative;border:1px dashed #d9d9d9;border-radius:6px;margin-right:1rem;margin-bottom:1rem;overflow:hidden;cursor:pointer}.upload .upload-body.is-avatar .upload-item.is-invalid{border-color:#dc3545;border-style:solid}.upload .upload-body.is-avatar .upload-item.is-circle{border-radius:50%}.upload .upload-body.is-avatar .upload-item:not(.is-form):hover,.upload .upload-body.is-avatar .upload-item:not(.is-form).is-valid,.upload .upload-body.is-card .upload-item.is-valid,.upload .upload-body.is-card .upload-item:not(.disabled):hover{border-color:#409eff}.upload .upload-body.is-avatar .upload-item.is-valid{border-style:solid}.upload .upload-body.is-avatar .upload-item.is-invalid .avatar{color:#dc3545}.upload .upload-body.is-avatar .upload-item .avatar{width:100%;height:100%;background-color:#fff}.upload .upload-body.is-avatar .upload-item .upload-item-actions,.upload .upload-body.is-card .upload-item .upload-item-actions.btn-browser{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center}.upload .upload-body.is-avatar .upload-item .upload-item-actions .fa{font-size:1rem}.upload .upload-body.is-avatar .upload-item:hover .upload-item-actions .upload-item-delete{display:block}.upload .upload-body.is-card .upload-item{padding:1rem;box-shadow:0 0 10px 0 rgba(0,0,0,.2);border:1px solid #d9d9d9;border-radius:6px;width:240px;height:280px;position:relative;cursor:pointer;margin-right:1rem;margin-bottom:1rem;overflow:hidden}.upload .upload-body.is-card .upload-item .upload-item-actions{display:flex;justify-content:space-between}.upload .upload-body.is-card .upload-item.is-valid .upload-item-body img,.upload .upload-body .upload-item.is-valid .upload-item-label,.upload .upload-body .upload-item.is-invalid .upload-item-label{display:block}.upload .upload-body.is-card .is-invalid .upload-item-body{border-color:#dc3545}.upload .upload-body.is-card .upload-item-body{border-radius:var(--bs-border-radius);width:168px;height:168px;border:1px solid #d9d9d9;margin:0 auto;display:flex;align-items:center;justify-content:center;overflow:hidden}.upload .upload-body.is-card .upload-item-body img{width:100%;object-fit:cover;display:none}.upload .upload-body.is-card .upload-item-body .fa{font-size:1.5rem}.upload .upload-body.is-card .upload-item-size{margin:1rem auto;text-align:center;font-size:.625rem;display:flex;justify-content:center}.upload .upload-body.is-card .upload-item-size span{max-width:calc(100% - 4.5rem);overflow:hidden;text-overflow:ellipsis;display:block;white-space:nowrap;padding-right:.25rem}.upload .upload-item .upload-item-label{position:absolute;top:-2px;right:-14px;text-align:center;transform:rotate(45deg);color:#fff;width:46px;height:20px;background-color:#28a745;display:none}.upload .upload-item .upload-item-label .fa-check{transform:rotate(-45deg);font-size:12px}.upload .upload-item.is-invalid .upload-item-label{background-color:#dc3545}.upload .progress{position:absolute;left:0;right:0;bottom:0}.upload .upload-body.is-card .progress{left:1rem;right:1rem;bottom:56px}.upload .upload-item.is-valid .progress,.upload .upload-item.is-invalid .progress{display:none}.upload .upload-body.is-card.is-single .upload-item{margin:0} \ No newline at end of file -- Gitee From 21974acd96060384fc75d6ec1f9a64296b20d232 Mon Sep 17 00:00:00 2001 From: jx <jx@jvxiang.com> Date: Mon, 7 Feb 2022 10:14:48 +0800 Subject: [PATCH 4/9] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=9C=80=E5=90=8E?= =?UTF-8?q?=E4=B8=80=E4=B8=AAItem=E4=B8=8D=E6=89=A7=E8=A1=8COnDragEnd?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Components/DragDrap/Dropzone.razor | 17 +++++++++-------- .../Components/DragDrap/Dropzone.razor.cs | 10 ++++++++-- .../wwwroot/css/bootstrap.blazor.bundle.min.css | 2 +- 3 files changed, 18 insertions(+), 11 deletions(-) diff --git a/src/BootstrapBlazor/Components/DragDrap/Dropzone.razor b/src/BootstrapBlazor/Components/DragDrap/Dropzone.razor index e12765496..83ac05934 100644 --- a/src/BootstrapBlazor/Components/DragDrap/Dropzone.razor +++ b/src/BootstrapBlazor/Components/DragDrap/Dropzone.razor @@ -20,15 +20,16 @@ @foreach (var item in Items) { <div draggable="@IsItemDragable(item)" - @ondragstart="() => OnDragStart(item)" - @ondragend="@OnDragEnd" - @ondragenter="() => OnDragEnter(item)" - @ondragleave="@OnDragLeave" - class="@GetItemClass(item) @ItemClass"> - @ChildContent?.Invoke(item) - </div> + @ondragstart="() => OnDragStart(item)" + @ondragend="@OnDragEnd" + @ondragenter="() => OnDragEnter(item)" + @ondragleave="@OnDragLeave" + class="@GetItemClass(item) @ItemClass" + style="@(item == null ? "display:none":"")"> + @ChildContent?.Invoke(item) + </div> - @if (MaxItems is null or > 1) + @if (MaxItems is null or > 1) { <div @ondrop="()=>OnDropItemOnSpacing(Items.IndexOf(item)+1)" @ondrop:stopPropagation @ondragenter="()=>DragDropService.ActiveSpacerId = Items.IndexOf(item)+1" @ondragleave="()=>DragDropService.ActiveSpacerId = null" class="@ItemClass @GetClassesForSpacing(Items.IndexOf(item)+1)"></div> } diff --git a/src/BootstrapBlazor/Components/DragDrap/Dropzone.razor.cs b/src/BootstrapBlazor/Components/DragDrap/Dropzone.razor.cs index d4e5b6b52..b7212adfa 100644 --- a/src/BootstrapBlazor/Components/DragDrap/Dropzone.razor.cs +++ b/src/BootstrapBlazor/Components/DragDrap/Dropzone.razor.cs @@ -8,6 +8,7 @@ using System; using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; using System.Text; +using System.Threading.Tasks; namespace BootstrapBlazor.Components; @@ -253,10 +254,13 @@ public partial class Dropzone<TItem> : BootstrapComponentBase private void OnDragStart(TItem item) { DragDropService.OldIndex = Items.IndexOf(item); - Items.Remove(item); DragDropService.ActiveItem = item; DragDropService.Items = Items; - StateHasChanged(); + Items.Remove(item); + if (DragDropService.OldIndex >= Items.Count) + { + Items.Add(default); + } } private void OnDragEnd() @@ -266,6 +270,8 @@ public partial class Dropzone<TItem> : BootstrapComponentBase DragDropService.Items.Insert(DragDropService.OldIndex.Value, DragDropService.ActiveItem); StateHasChanged(); } + + Items.Remove(default); } private void OnDragEnter(TItem item) diff --git a/src/BootstrapBlazor/wwwroot/css/bootstrap.blazor.bundle.min.css b/src/BootstrapBlazor/wwwroot/css/bootstrap.blazor.bundle.min.css index 3048cd8f7..0e7ffcc86 100644 --- a/src/BootstrapBlazor/wwwroot/css/bootstrap.blazor.bundle.min.css +++ b/src/BootstrapBlazor/wwwroot/css/bootstrap.blazor.bundle.min.css @@ -19,4 +19,4 @@ * Copyright 2020-2021 The Longbow Argo (argo@163.com) * Licensed under MIT (https://github.com/dotnetcore/BootstrapBlazor/blob/main/LICENSE) */ -:root{--bs-border-radius:.25rem;--bs-bg-disabled:#ebeef5;--bs-border-color:#ebeef5}#components-reconnect-modal{z-index:2000 !important}:fullscreen{background-color:#fff}body,.form-control,.dropdown-menu,.form-select,.btn:not(.btn-xs):not(.btn-sm):not(.btn-md):not(.btn-lg):not(.btn-xl),.input-group-text{font-size:.875rem}.btn-close:focus{box-shadow:none}:focus,button:focus{outline:none}a{cursor:pointer}a,a:hover,a:focus{text-decoration:none;outline:none}.form-control.is-invalid,.was-validated .form-control:invalid,.form-control.is-valid,.was-validated .form-control:valid,.form-control.valid.modified:not([type=checkbox]){outline:none}.form-control.is-display{height:35px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.table-cell .form-control.is-display,form .form-control.is-display{background-color:var(--bs-bg-disabled)}[disabled],:disabled,.disabled,.disabled>*{cursor:not-allowed !important}.form-control:focus{border-color:#66afe9;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.control-label{margin-right:10px;width:90px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;display:block}.was-validated .form-control:invalid:focus,.form-control.is-invalid:focus,.was-validated .custom-select:invalid:focus,.custom-select.is-invalid:focus{border-color:#dc3545;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(220,53,69,.6)}.was-validated .form-control:valid:focus,.form-control.is-valid:focus,.was-validated .custom-select:valid:focus,.custom-select.is-valid:focus{border-color:#28a745;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(40,167,69,.6)}.arrow-primary{border-color:transparent transparent #0d6efd}.arrow-success{border-color:transparent transparent #198754}.arrow-info{border-color:transparent transparent #0dcaf0}.arrow-warning{border-color:transparent transparent #ffc107}.arrow-danger{border-color:transparent transparent #dc3545}.show .shadow-primary,.shadow-primary:hover,.shadow-primary:focus{box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(0,123,255,.5);border-color:#0d6efd !important}.show .shadow-success,.shadow-success:hover,.shadow-success:focus{box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(40,167,69,.5);border-color:#198754 !important}.show .shadow-info,.shadow-info:hover,.shadow-info:focus{box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(23,162,184,.5);border-color:#0dcaf0 !important}.show .shadow-warning,.shadow-warning:hover,.shadow-warning:focus{box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(255,193,7,.5);border-color:#ffc107 !important}.show .shadow-danger,.shadow-danger:hover,.shadow-danger:focus{box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(220,53,69,.5);border:1px solid #dc3545 !important}.show .shadow-secondary,.shadow-secondary:hover,.shadow-secondary:focus{box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px #c0c4cc;border:1px solid #6c757d !important}.show .shadow-dark,.shadow-dark:hover,.shadow-dark:focus{box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px #c0c4cc;border:1px solid #343a40 !important}.show .shadow-default,.shadow-default:hover,.shadow-default:focus{box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);border:1px solid #337ab7}.swal{position:fixed;z-index:1070}.swal .modal-header{display:none}.swal2-icon,.swal2-actions{display:flex}.swal2-actions{margin-bottom:1rem}.close{display:flex}.captcha{border-radius:4px;box-shadow:0 0 10px rgba(0,0,0,.125)}.captcha-refresh{float:right;cursor:pointer;padding-left:.5rem}.captcha-body{position:relative}.captcha-body .captcha-load{display:flex;align-items:center;justify-content:center}.captcha-body .captcha-body-bg,.captcha-body .captcha-body-bar{position:absolute;border-radius:2px;top:0;left:0}.captcha-footer{text-align:center;background:#f7f9fa;color:#45494c;border-radius:2px;margin-top:.5rem;position:relative}.captcha-footer,.captcha-bar-bg{line-height:40px;height:40px}.captcha-bar-bg{position:absolute;border-radius:4px}.captcha-bar{position:absolute;top:0;left:0;width:40px;height:40px;background:#fff;box-shadow:0 0 3px rgba(0,0,0,.3);cursor:pointer;border-radius:2px;display:flex;align-items:center;justify-content:center}.captcha-footer.is-move .captcha-bar-text{display:none}.captcha-footer.is-move .captcha-bar-bg{border:1px solid #1991fa;background-color:#d1e9fe}.captcha-footer.is-valid .captcha-bar .fa-arrow-right:before{content:""}.captcha-footer.is-invalid .captcha-bar{border:1px solid #f57a7a;background-color:#f57a7a}.captcha-footer.is-invalid .captcha-bar-bg{border:1px solid #f57a7a;background-color:#fce1e1;border-width:1px 0 1px 1px}.captcha-footer.is-invalid .captcha-bar .fa-arrow-right:before{content:""}.captcha-footer.is-valid .captcha-bar{border:1px solid #52ccba;background-color:#52ccba}.captcha-footer.is-valid .captcha-bar-bg{border:1px solid #52ccba;border-width:1px 0 1px 1px;background-color:#d2f4ef}.captcha-footer.is-valid .captcha-bar .fa-arrow-right:before{content:""}.avatar{border-radius:4px;width:50px;height:50px;overflow:hidden;display:inline-flex;justify-content:center;align-items:center;background:#c0c4cc;color:#fff}.avatar img{width:100%;object-fit:cover}.avatar.is-circle{border-radius:50%}.avatar.is-xl{width:70px;height:70px}.avatar.is-lg{width:60px;height:60px}.avatar.is-sm{width:40px;height:40px}.avatar.is-xs{width:30px;height:30px}.avatar i{font-size:1.4rem}.timeline{margin:0;padding:0;list-style:none}.timeline .time-line-item{position:relative;padding-bottom:1rem}.timeline .time-line-item:last-child{padding-bottom:0}.timeline .time-line-item .time-line-item-tail{position:absolute;left:4px;height:100%;border-left:2px solid #e4e7ed}.timeline .time-line-item:last-child .time-line-item-tail{display:none}.timeline .timeline-item-node-normal{left:-1px;width:12px;height:12px}.timeline .timeline-item-node{position:absolute;background-color:#e4e7ed;border-radius:50%;display:flex;justify-content:center;align-items:center}.timeline .timeline-item-node.is-icon{background-color:transparent}.timeline .timeline-item-wrapper{position:relative;padding-left:1.5rem;top:-4px}.timeline .timeline-item-content{color:#303133}.timeline .timeline-item-timestamp{margin-top:.5rem;color:#909399}.timeline.is-alternate .time-line-item-tail,.timeline.is-alternate .timeline-item-node{left:50%}.timeline.is-alternate .timeline-item-node{margin-left:-5px}.timeline.is-alternate .time-line-item:nth-child(odd) .timeline-item-wrapper{left:calc(50% - 5px);width:calc(50% - 1rem);text-align:left}.timeline.is-alternate .time-line-item:nth-child(even) .timeline-item-wrapper{width:calc(50% - 1rem);margin:0;text-align:right}.timeline.is-left .time-line-item-tail,.timeline.is-left .timeline-item-node{left:100%}.timeline.is-left .timeline-item-node{margin-left:-5px}.timeline.is-left .time-line-item .timeline-item-wrapper{width:calc(100% - 1rem);margin:0;text-align:right}.footer{background:#5b6e84;color:#fff;padding:10px 4px;height:40px;display:flex}.footer .footer-text{flex:1 1 auto;text-align:center}.circle{display:inline-block;position:relative}.circle-progress{transition:stroke-dashoffset .3s linear}.circle-primary{stroke:#1593ff}.circle-danger{stroke:#dc3545}.circle-success{stroke:#28a745}.circle-warning{stroke:#ffc107}.circle-info{stroke:#17a2b8}.circle-secondary{stroke:#6c757d}.circle-dark{stroke:#343a40}.circle-title{display:flex;justify-content:center;align-items:center;position:absolute;top:0;bottom:0;left:0;right:0}.input-number-fix::-webkit-outer-spin-button,.input-number-fix::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;-moz-appearance:textfield}.ef-loading{display:flex;justify-content:center;align-items:center;border:1px solid #ddd;border-radius:4px;padding:2rem}form .form-label:before{content:"";position:relative;top:2px;margin-right:2px;display:inline-block;min-width:5px}form .form-label[required]:before{content:"*";color:#f00}.form-control.is-valid[type="number"],.form-control.is-invalid[type="number"]{padding-right:.75rem;background-image:none}.transfer-panel-empty{position:absolute;top:35%;width:100%}.pulse{position:relative}.pulse.pulse-white .pulse-ring{border-color:#fff}.pulse.pulse-light .pulse-ring{border-color:#f5f8fa}.pulse.pulse-primary .pulse-ring{border-color:#009ef7}.pulse.pulse-secondary .pulse-ring{border-color:#e4e6ef}.pulse.pulse-success .pulse-ring{border-color:#50cd89}.pulse.pulse-info .pulse-ring{border-color:#7239ea}.pulse.pulse-warning .pulse-ring{border-color:#ffc700}.pulse.pulse-danger .pulse-ring{border-color:#f1416c}.pulse.pulse-dark .pulse-ring{border-color:#181c32}.pulse-ring{display:block;border-radius:40px;height:40px;width:40px;position:absolute;animation:animation-pulse 3.5s ease-out;animation-iteration-count:infinite;opacity:0;border-width:3px;border-style:solid;border-color:#a1a5b7}@keyframes animation-pulse{0%{-webkit-transform:scale(.1,.1);opacity:0}60%{-webkit-transform:scale(.1,.1);opacity:0}65%{opacity:1}100%{-webkit-transform:scale(1.2,1.2);opacity:0}}.fs-on,.fs-open .fs{display:none}.fs-open .fs-on{display:block}.arrow-danger{border-color:transparent transparent var(--bs-danger)}.arrow-success{border-color:transparent transparent var(--bs-success)}.arrow-primary{border-color:transparent transparent var(--bs-primary)}.arrow-warning{border-color:transparent transparent var(--bs-warning)}.arrow-info{border-color:transparent transparent var(--bs-info)}.alert i{margin-right:.5rem}.alert .btn-close{position:absolute;top:22px;right:1rem;height:4px;width:4px}.alert.is-close .alert-content{margin-right:1rem}.alert.is-bar.alert-info{border-left:4px solid var(--bs-info);background-color:#ecf8ff}.alert.is-bar.alert-success{border-left:4px solid var(--bs-success);background-color:#c3e6cb}.alert.is-bar.alert-primary{border-left:4px solid var(--bs-primary);background-color:#daeafc}.alert.is-bar.alert-warning{border-left:4px solid var(--bs-warning);background-color:#fffcf2}.alert.is-bar.alert-danger{border-left:4px solid var(--bs-danger);background-color:#faeaec}.anchor-link{cursor:pointer;display:inline-block}.anchor-link>i{opacity:0;margin-left:.5rem;color:var(--bs-primary);transition:opacity .3s linear}.anchor-link:hover>i{opacity:1}.auto-complete{position:relative}.auto-complete input{padding-right:30px}.auto-complete .select-dropdown{position:absolute;top:40px;left:0;right:0;display:none;z-index:2}.auto-complete .select-dropdown .dropdown-list{max-height:300px;overflow:auto;padding:6px 0;list-style:none;margin:0;background-color:#fff;box-shadow:0 2px 8px rgba(0,0,0,.176);border:1px solid rgba(0,0,0,.15);border-radius:var(--bs-border-radius)}.auto-complete .select-dropdown .dropdown-list .dropdown-item{padding:6px 20px}.auto-complete.is-complete .select-dropdown{display:block}.auto-complete .fa-spin{position:absolute;top:10.5px;right:8px;display:none}.auto-complete.is-loading .fa-spin{display:inline-block}.search .auto-complete .fa-spin{position:unset;display:inline-block}.scanner .scanner-video video{width:300px;height:170px;border:1px solid #ddd;border-radius:var(--bs-border-radius)}.scanner .scanner-image{display:none}.btn:focus,.btn:active:focus,.show>.dropdown-toggle:focus{box-shadow:none !important}.btn-xs,.btn-group-xs>.btn{border-radius:.2rem;padding:.0625rem .3125rem;font-size:.75rem}.btn-xl,.btn-group-xl>.btn{padding:.8rem 1.25rem;font-size:1.35rem;border-radius:.4rem}.btn .badge,.btn i+span,.badge i+span{margin-left:4px}.btn.is-circle{border-radius:50%;width:45px;height:45px}.btn.is-round{border-radius:20px}.btn-block{width:100%}.calendar-header{display:flex;justify-content:space-between;padding:12px 20px;border-bottom:1px solid var(--bs-border-color)}.calendar-title{color:#000;align-self:center;font-size:1rem}.calendar-button-group .btn{line-height:1;white-space:nowrap;cursor:pointer;background:#fff;border:1px solid #dcdfe6;color:#606266;outline:none;margin:0;transition:.3s;padding:7px 15px;font-size:12px}.calendar-button-group .btn:focus,.calendar-button-group .btn:hover{color:#409eff;border-color:#c6e2ff;background-color:#ecf5ff}.calendar-button-group .btn:active{color:#3a8ee6;border-color:#3a8ee6;outline:none}.calendar-table{table-layout:fixed;width:100%}.calendar-table thead th{padding:12px 0;color:#606266;font-weight:400;text-align:center}.calendar-table:not(.is-range) td.next,.calendar-table:not(.is-range) td.prev{color:#c0c4cc}.calendar-table tr td:first-child{border-left:1px solid var(--bs-border-color)}.calendar-table tr:first-child td{border-top:1px solid var(--bs-border-color)}.calendar-table td{border-bottom:1px solid var(--bs-border-color);border-right:1px solid var(--bs-border-color);vertical-align:top;transition:background-color .2s ease;cursor:pointer}.calendar-table td.is-today{color:#409eff}.calendar-table td.is-selected{color:#1989fa}.calendar-table td.is-selected{background-color:#f2f8fe}.calendar-table .calendar-day{box-sizing:border-box;padding:8px;height:85px}.calendar-table .calendar-day:hover{cursor:pointer;background-color:#f2f8fe}.calendar-table:not(.is-range) td.next,.calendar-table:not(.is-range) td.prev{color:#c0c4cc}.calendar .table-week .week-header{border-radius:50%;border:1px solid transparent;padding:4px;display:inline-block;min-width:52px}.calendar .table-week .week-header.is-today{border:1px solid #409eff;color:#409eff}.calendar .table-week thead tr:last-child{border-bottom:2px solid #dee2e6}.calendar .table-week tbody tr{text-align:center}.calendar .table-week tbody td{padding:1rem 0;border-right:0;border-left:0;position:relative}.camera .camera-header{width:300px;height:170px;border:1px solid #ddd;border-radius:var(--bs-border-radius)}.camera canvas{display:none}.card .card-collapse{flex:1;display:flex;align-items:center;cursor:pointer}.card .card-title{margin:0 0 0 1rem}.card .card-collapse-arrow{transition:transform .3s linear}.card .is-open .card-collapse-arrow{transform:rotate(90deg)}.card-shadow{transition:box-shadow .3s linear;box-shadow:0 0 8px 0 #e8edfa99,0 2px 4px 0 #e8edfa80}.card-shadow:hover{box-shadow:0 1px 7px 0 #0000000d,0 2px 8px 0 #00000012,0 3px 9px 0 #0000000f,0 5px 10px 0 #00000008}.card-header .tag{line-height:21px}.carousel{overflow:hidden}.carousel [data-bs-slide]{outline:none;padding:0;margin:0 .5rem;height:36px;width:36px;cursor:pointer;transition:.3s;border-radius:50%;background-color:rgba(31,45,61,.5);border:solid 1px #e9ecef;color:#fff;top:50%;transform:translateY(-50%);text-align:center;font-size:1rem}.carousel:not(.hover) .carousel-control-prev{opacity:0;left:-10px}.carousel:not(.hover) .carousel-control-next{opacity:0;right:-10px}.carousel:not(.hover) .carousel-indicators{opacity:0;bottom:-10px}.carousel .carousel-indicators{opacity:1;transition:all .2s linear}.carousel .carousel-item img{display:block}.carousel-indicators [data-bs-target]{background-color:#606266}.carousel-item img{width:100%}.form-check{padding:0;margin:0;min-height:1rem}.form-check .form-check-input{width:1rem;height:1rem;float:none;margin:3px 0 1px 0;transition:background-color .15s ease-in-out,background-position .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}.form-check .form-check-input+.form-check-label{padding:0 .5rem;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;vertical-align:top}.form-label+.form-check{padding:7px 0}.form-check-input:active{filter:none}@media(prefers-reduced-motion:reduce){.form-check-input{transition:none}}.form-check-input:focus{border-color:#b5b5c3;box-shadow:none}.form-check-input:checked{background-color:#009ef7;border-color:#009ef7}.form-check-input:checked[type=checkbox]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 13 11' width='13' height='11' fill='none'%3e%3cpath d='M11.0426 1.02893C11.3258 0.695792 11.8254 0.655283 12.1585 0.938451C12.4917 1.22162 12.5322 1.72124 12.249 2.05437L5.51985 9.97104C5.23224 10.3094 4.72261 10.3451 4.3907 10.05L0.828197 6.88335C0.50141 6.59288 0.471975 6.09249 0.762452 5.7657C1.05293 5.43891 1.55332 5.40948 1.88011 5.69995L4.83765 8.32889L11.0426 1.02893Z' fill='%23FFFFFF'/%3e%3c/svg%3e")}.form-check-input:checked[type=radio]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23FFFFFF'/%3e%3c/svg%3e")}.form-check-input[type=checkbox]:indeterminate{background-color:#009ef7;border-color:#009ef7;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23FFFFFF' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e")}.form-check-input:disabled{pointer-events:none;filter:none;opacity:.5}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{opacity:.5}.form-check .form-check-label,.form-check .form-check-input{cursor:pointer}.form-check .form-check-input[type=checkbox]{background-size:60% 60%}.form-check.form-check-success .form-check-input:checked{background-color:var(--bs-success)}.form-check.form-check-danger .form-check-input:checked{background-color:var(--bs-danger)}.form-check.form-check-warning .form-check-input:checked{background-color:var(--bs-warning)}.form-check.form-check-info .form-check-input:checked{background-color:var(--bs-info)}.form-check.form-check-primary .form-check-input:checked{background-color:var(--bs-primary)}.form-check.form-check-secondary .form-check-input:checked{background-color:var(--bs-secondary)}.form-check.form-check-dark .form-check-input:checked{background-color:var(--bs-dark)}.form-check.form-check-sm .form-check-input{height:1.25rem;width:1.25rem;margin:0}.form-check.form-check-md{padding:4px 0 3px 0}.form-check.form-check-md .form-check-input{height:1.5rem;width:1.5rem}.form-check.form-check-lg{padding:2px 0 1px 0}.form-check.form-check-lg .form-check-input{height:1.75rem;width:1.75rem}.checkbox-list{min-height:35px;height:auto;display:flex;flex-flow:row wrap;padding-bottom:0;overflow:hidden;vertical-align:top}.checkbox-list.is-vertical{flex-direction:column}.checkbox-list .checkbox-item{display:inline-flex;width:120px;margin-bottom:.375rem}.checkbox-list .checkbox-item .form-check-label{max-width:104px}.checkbox-list.form-control.no-border{border-color:transparent}.checkbox-list.form-control:not(.is-invalid):focus{box-shadow:none}.checkbox-item .form-check-sm .form-check-input{margin:3px 0 2px 0}.accordion-button:not(.collapsed){box-shadow:inset 0 -1px 0 #00000020}.accordion .accordion-button-primary{color:#fff;background-color:var(--bs-primary);border-color:#0d6efd}.accordion .accordion-button-secondary{color:#fff;background-color:var(--bs-secondary);border-color:#6c757d}.accordion .accordion-button-success{color:#fff;background-color:var(--bs-success);border-color:#198754}.accordion .accordion-button-info{color:#fff;background-color:var(--bs-info);border-color:#0dcaf0}.accordion .accordion-button-warning{color:#fff;background-color:var(--bs-warning);border-color:#ffc107}.accordion .accordion-button-danger{color:#fff;background-color:var(--bs-danger);border-color:#dc3545}.accordion .accordion-button-light{background-color:var(--bs-light);border-color:#f8f9fa}.accordion .accordion-button-dark{color:#fff;background-color:var(--bs-dark);border-color:#212529}.accordion .accordion-button:after{width:.75rem;height:.75rem;background-size:.75rem}.accordion .accordion-button-primary:after,.accordion .accordion-button-secondary:after,.accordion .accordion-button-success:after,.accordion .accordion-button-danger:after .accordion .accordion-button-dark:after{color:#fff}.accordion .accordion-button-light:after,.accordion .accordion-button-warning:after,.accordion .accordion-button-info:after{color:#000}.accordion .accordion-button{border-radius:0}.color-picker .form-control-color{max-width:3rem}.console-body{padding:1rem;background-color:#174482;color:#fff;overflow:auto}.popover-datetime{max-width:unset}.popover-datetime .popover-body{padding:0}.popover-datetime .date-picker{border:none}.datetime-picker-bar{position:relative;color:#adb5bd}.datetime-picker-input{cursor:pointer;padding-left:2rem}.datetime-picker-input[readonly]:not([disabled]){background-color:#fff}.datetime-picker-input-icon{position:absolute;left:0;top:0;line-height:35px;cursor:pointer;padding:0 .75rem}.picker-panel-body-wrapper{display:flex}.picker-panel-sidebar{width:110px;border-right:1px solid #e4e4e4;padding:6px 0;overflow:auto}.picker-panel-sidebar .sidebar-item{line-height:28px;padding:0 12px;cursor:pointer;transition:color .3s linear}.date-picker-time-header{position:relative;border-bottom:1px solid #e4e4e4;font-size:12px;padding:8px 5px 5px;display:table;width:100%}.date-picker-time-header .date-picker-editor-wrap{position:relative;display:table-cell;padding:0 5px}.date-picker-time-header .date-picker-editor-wrap .input-inner{height:2rem;line-height:2rem;padding:0 1rem;cursor:pointer}.date-picker-time-header .date-picker-editor-wrap .input-inner[readonly]{background-color:#fff}.date-picker-editor-wrap .time-panel{position:absolute;z-index:-1;display:none;width:145px;margin-top:.25rem}.date-picker-editor-wrap .time-panel .time-spinner-item{height:28px;line-height:28px}.date-picker-editor-wrap .time-panel-content:after,.date-picker-editor-wrap .time-panel-content:before{margin-top:-32px;height:28px}.date-picker-editor-wrap .time-spinner-arrow.fa-angle-up{top:3px}.date-picker-editor-wrap .time-spinner-arrow.fa-angle-down{bottom:3px}.date-picker-editor-wrap .time-spinner-list-wrapper{height:84px;margin:36px 0}.is-open .date-picker-editor-wrap .time-panel{z-index:10;display:block}.picker-panel{color:#606266;border:1px solid #ced4da;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);background:#fff;border-radius:var(--bs-border-radius);line-height:30px}.picker-panel-body-wrapper:after,.picker-panel-body:after{content:"";display:table;clear:both}.picker-panel-body{width:320px}.date-picker-header{margin:12px;display:flex;align-items:center}.date-picker .picker-panel-content{width:292px}.picker-panel-content{position:relative;margin:15px}.picker-panel-content table{table-layout:fixed;width:100%;font-size:12px;user-select:none}.picker-panel-content table td{text-align:center}.picker-panel-content table td .cell{display:block;margin:0 auto;cursor:pointer}.picker-panel-content table td.today .cell{color:#409eff;font-weight:700}.picker-panel-content table td.current:not(.disabled) .cell,.picker-panel-content table td.start:not(.next-month):not(.prev-month):not(.disabled) .cell,.picker-panel-content table td.end:not(.next-month):not(.prev-month):not(.disabled) .cell{color:#fff;background-color:#409eff}.picker-panel-content table td.range div{background-color:#f2f6fc}.picker-panel-content table td.range.start div{margin-left:5px;border-top-left-radius:15px;border-bottom-left-radius:15px}.picker-panel-content table td.range.start div .cell{margin-left:4px}.picker-panel-content table td.range.end div{margin-right:5px;border-top-right-radius:15px;border-bottom-right-radius:15px}.picker-panel-content table td.range.end div .cell{margin-right:4px}.picker-panel-content table td.disabled .cell{cursor:not-allowed;color:#c0c4cc}.date-table th{padding:5px;font-weight:400;border-bottom:1px solid var(--bs-border-color);text-align:center}.date-table td.next-month,.date-table td.prev-month{color:#c0c4cc}.date-table td:not(.prev-month):not(.next-month):hover,.picker-panel-icon-btn:hover,.date-picker-header-label:hover,.sidebar-item:hover{color:#409eff}.date-table td div{margin:4px 0;padding:3px 0}.date-table td .cell{display:block;width:24px;height:24px;margin:0 auto;line-height:24px;border-radius:50%;cursor:pointer}.picker-panel-icon-btn{color:#303133;border:0;background:transparent;cursor:pointer;outline:none}.date-picker-header-label{font-size:16px;font-weight:500;padding:0 5px;text-align:center;cursor:pointer;user-select:none}.pick-panel-arrow-left,.pick-panel-arrow-right{margin:0 6px}.year-table,.month-table{margin-top:29px}.year-table tr,.month-table tr{border-top:1px solid var(--bs-border-color)}.year-table td div{padding:12px 0}.year-table td .cell{width:48px;height:24px;line-height:24px;border-radius:16px}.month-table td div{padding:26px 0}.month-table td .cell{width:60px;border-radius:18px}@media(min-width:576px){.input-group input.form-control{width:1%}}.picker-panel-footer{border-top:1px solid #e4e4e4;padding:4px;background-color:#fff;position:relative;display:flex;border-bottom-left-radius:var(--bs-border-radius);border-bottom-right-radius:var(--bs-border-radius)}.picker-panel-footer .picker-panel-link-btn{padding:7px 15px;font-size:.75rem;border-radius:var(--bs-border-radius);line-height:12px;color:#606266;transition:border-color .3s linear,color .3s linear}.picker-panel-footer .picker-panel-link-btn.is-confirm{border:1px solid #dcdfe6}.picker-panel-footer .picker-panel-link-btn.is-confirm:hover{border-color:#409eff;color:#409eff}.picker-panel-footer .picker-panel-link-btn.is-now{color:#409eff}.time-panel{border:1px solid #ced4da;background-color:#fff;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);border-radius:var(--bs-border-radius);width:180px;user-select:none}.time-panel-content{font-size:0;position:relative;overflow:hidden}.time-panel-content:before{padding-left:50%;margin-right:12%;margin-left:12%}.time-panel-content.has-seconds:before{padding-left:33.33333%}.time-panel-content:after,.time-panel-content:before{content:"";top:50%;position:absolute;margin-top:-36.6px;height:36.6px;left:0;right:0;border-top:1px solid #e4e7ed;border-bottom:1px solid #e4e7ed}.time-panel-content.has-seconds:after{left:66.66667%;pointer-events:none}.time-panel-content:after{left:50%;margin-left:12%;margin-right:12%}.time-spinner{width:100%;white-space:nowrap}.time-spinner.has-seconds .time-spinner-wrapper{width:33.3%}.time-spinner-wrapper.is-arrow{box-sizing:border-box;text-align:center;overflow:hidden}.time-spinner-wrapper{display:inline-flex;position:relative;align-items:center;justify-content:center}.time-spinner-wrapper.is-arrow .time-spinner-list{transition:transform .3s linear}.time-spinner-arrow{font-size:14px;color:#909399;position:absolute;left:0;width:100%;z-index:1;text-align:center;height:30px;line-height:30px;cursor:pointer}.time-spinner-arrow.fa-angle-up{top:10px}.time-spinner-arrow.fa-angle-down{bottom:10px}.time-spinner-list-wrapper{overflow:hidden;height:110px;margin:40px 0;width:100%}.time-spinner-list{margin:0;list-style:none}.time-spinner-input.input .input-inner,.time-spinner-list{padding:0;text-align:center}.time-spinner-item{height:36.6px;line-height:36.6px;font-size:12px;color:#606266;opacity:.6;cursor:pointer}.time-spinner-item.active:not(.disabled){font-weight:700;font-size:14px;opacity:1}.time-spinner-item.active:not(.disabled),.time-spinner-arrow:hover{color:#409eff}.time-spinner-item.prev,.time-spinner-item.next{opacity:.8;transform:scale(1,.8);line-height:30px}.time-panel-footer{border-top:1px solid #e4e4e4;padding:4px;height:36px;line-height:25px;text-align:right}.time-panel-btn{border:none;line-height:28px;padding:0 5px;margin:0 5px;cursor:pointer;background-color:transparent;outline:none;font-size:12px;color:#303133}.time-panel-btn.confirm{font-weight:800;color:#409eff}.datetime-range{background-color:#fff;background-image:none;border-radius:var(--bs-border-radius);border:1px solid #dcdfe6;color:#606266;display:inline-block;outline:none;transition:border-color .2s cubic-bezier(.645,.045,.355,1);padding:0 10px;position:relative}.datetime-range:hover{border-color:#c0c4cc}.datetime-range.active{border-color:#409eff}.datetime-range.disabled,.datetime-range.disabled input{background-color:#e9ecef}.datetime-range-bar{display:inline-flex;align-items:center}.datetime-range-bar .datetime-range-input{border:none;outline:none;display:inline-block;margin:0;padding:0;text-align:center;color:#606266;cursor:pointer;width:80px;padding:6px 0}.datetime-range-bar .datetime-range-input-icon{cursor:pointer}.datetime-range-bar .range-separator{padding:0 5px;color:#303133}.range-panel-body{display:flex}.range-panel-body .picker-panel{box-shadow:none;border:none}.range-panel-body .picker-panel:first-child{border-right:1px solid #ced4da;border-top-right-radius:0;border-bottom-right-radius:0}.range-panel-body .date-picker-header-label{cursor:unset}.range-panel-body .date-picker-header-label:hover{color:inherit}.range-panel-footer{padding:.5rem}.popover-datetime-range{max-width:unset}.popover-datetime-range .popover-body{padding:0}.range-clear{border-radius:50%;border:1px solid #9d9d9d;padding:1px;display:none;cursor:pointer;position:absolute;right:10px;top:11px}.datetime-range:hover:not(.disabled) .range-clear{display:flex}.form-inline>*>.datetime-range{display:block}.divider{background-color:transparent;position:relative}.divider .divider-text{position:absolute;background-color:#fff;padding:0 20px;font-weight:500;color:#303133;font-size:14px}.divider.divider-horizontal{display:block;width:100%}.divider.divider-horizontal .divider-text.is-left{left:20px;transform:translateY(-50%)}.divider.divider-horizontal .divider-text.is-center{left:50%;transform:translateX(-50%) translateY(-50%)}.divider.divider-horizontal .divider-text.is-right{right:20px;transform:translateY(-50%)}.divider .divider-wrap{height:1px;margin:1rem 0;background-color:#dcdfe6}.divider-vertical{width:1px;margin:0 1rem}.divider.divider-vertical .divider-text{padding:20px 0}.divider.divider-vertical .divider-text.is-left{top:20px;transform:translateX(-50%)}.divider.divider-vertical .divider-text.is-center{top:50%;transform:translateX(-50%) translateY(-50%)}.divider.divider-vertical .divider-text.is-right{bottom:20px;transform:translateX(-50%)}.drawer-wrapper{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden;margin:0;background-color:rgba(0,0,0,.5);transform:translateX(-100%);z-index:1050}.drawer-container{position:relative;left:0;right:0;top:0;bottom:0;height:100%;width:100%}.drawer{position:absolute;box-sizing:border-box;background-color:#fff;display:flex;flex-direction:column;box-shadow:0 8px 10px -5px rgba(0,0,0,.2),0 16px 24px 2px rgba(0,0,0,.14),0 6px 30px 5px rgba(0,0,0,.12);overflow:auto;transition:transform .3s linear;transform:translateX(-100%)}.drawer.left,.drawer.right{height:100%;top:0;bottom:0}.drawer.top,.drawer.bottom{width:100%;left:0;right:0}.drawer.right{right:0;transform:translateX(100%)}.drawer.top{top:0;transform:translateY(-100%)}.drawer.bottom{bottom:0;transform:translateY(100%)}.is-open .drawer,.is-open.drawer-wrapper,.is-close.drawer-wrapper{transform:translateX(0)}.is-close .drawer{transform:translateX(0)}.is-close .drawer{transform:translateX(-100%)}.is-close .drawer.right{transform:translateX(100%)}.is-close .drawer.top{transform:translateY(-100%)}.is-close .drawer.bottom{transform:translateY(100%)}.dropdown .dropdown-toggle:after,.dropup .dropdown-toggle:after,.dropright .dropdown-toggle:after,.btn-group .dropdown-toggle:not(:empty):after{margin-left:6px}.dropleft .dropdown-toggle:before{margin-right:6px}.dropdown-menu{border-radius:var(--bs-border-radius)}.dropdown-item{cursor:pointer}.widget .dropdown-toggle{color:#fff;padding:10px 16px;position:relative;display:inline-block}.widget .dropdown-toggle:after{content:unset}.widget .dropdown-toggle .badge{position:absolute;top:5px;font-size:9px}.widget .dropdown-menu{overflow:visible;width:235px;margin-left:-94px !important;padding:0;max-height:none;border:none}.widget .dropdown-menu .dropdown-arrow{border-style:solid;border-width:0 9px 9px;position:absolute;left:108px;top:-9px}.widget .dropdown-header{color:#fff;padding:.5rem .625rem;border-radius:var(--bs-border-radius) var(--bs-border-radius) 0 0}.widget .dropdown-body{overflow:auto;max-height:300px}.widget .dropdown-footer{padding:.5rem .625rem;background-color:#dcdfe6;border-radius:0 0 var(--bs-border-radius) var(--bs-border-radius)}.widget .dropdown-item{border-bottom:1px solid #dcdfe6}.widget .dropdown-item:nth-of-type(odd){background-color:#eef0f3}.editor .editor-body{cursor:pointer;min-height:50px;height:auto}.editor .editor-body:focus:before{content:none}.editor .editor-body:empty:before{content:attr(placeholder)}.editor .note-editor{background-color:#fff}.editor .note-editor .note-right{float:right}.editor .note-btn-close{background-image:-webkit-linear-gradient(top,#5bc0de 0%,#2aabd2 100%);background-image:-o-linear-gradient(top,#5bc0de 0%,#2aabd2 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5bc0de),to(#2aabd2));background-image:linear-gradient(to bottom,#5bc0de 0%,#2aabd2 100%);background-repeat:repeat-x;border-color:#28a4c9;color:#fff}.editor .dropdown-menu{overflow:unset;max-height:unset;max-width:unset}.editor .btn-light{border-color:#00000032}.editor .btn-light:hover{background-color:#e2e6ea;border-color:#dae0e5}.editor .btn-light:not(:disabled):not(.disabled).active,.editor .btn-light:not(:disabled):not(.disabled):active,.editor .show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.empty{text-align:center}.empty>.empty-image{margin-top:1rem;margin-bottom:8px}.empty-telemplate{margin:5px 0 0 0}.table-filter{position:absolute;left:0;top:0;width:100%;z-index:5}.table-filter .table-filter-item{min-width:220px;background-color:#fff;border:1px solid rgba(0,0,0,.125);position:absolute;display:none}.table-filter .table-filter-item.show{display:block}.table-filter .card-header{padding:.5rem 1rem}.table-filter .card-arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0;top:calc((.5rem + 1px)*-1);left:calc(50% - .5rem)}.table-filter .card-arrow:before,.table-filter .card-arrow:after{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.table-filter .card-arrow:before{border-bottom-color:#ced4da;top:0;border-width:0 .5rem .5rem .5rem}.table-filter .card-arrow:after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#f7f7f7}.table-filter .card-body{padding:1rem}.table-filter .card-body .is-condition{max-width:10rem}.table-filter .card-body>*:not(:first-child){margin-top:.5rem}.table-filter .card-body .select{display:block}.table-filter .card-footer{padding:.5rem;display:flex;white-space:nowrap}.table-filter .card-footer .btn:not(:first-child){margin-left:.5rem}.table-filter .card-footer .btn{padding:7px 15px;font-size:.875rem;line-height:12px;border:1px solid #dcdfe6;color:#606266;transition:border-color .3s linear,color .3s linear}.table-filter .card-footer .btn:not(.disabled):not(:disabled):hover{border-color:#409eff;color:#409eff}.filter-row{display:flex}.filter-row .btn-ban{display:none;padding-left:0}.filter-row input{min-width:50px}.filter-row.active .btn-ban{display:block}.btn-filter::after{content:none}.layout-gotop{background:rgba(255,255,255,.5);width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-right:4px;transition:background-color .3s linear;color:#606266}.layout-gotop:hover{background-color:#fff;color:#606266}.groupbox{border:1px solid #ddd;padding:1.5rem 1rem 1rem 1rem;border-radius:var(--bs-border-radius);position:relative;margin-top:.5rem}.groupbox .legend{position:absolute;top:-10px;left:30px;background-color:#fff;padding:0 .5rem}.handwritten .hw-body{height:300px;border:1px solid rgba(0,0,0,.125);border-radius:var(--bs-border-radius);overflow:hidden}.handwritten .hw-buttons{margin-top:1rem;text-align:right}#canvas{border:1px double #dedede;border-radius:10px;width:99%;height:300px;position:relative;overflow:hidden}#canvas canvas{display:block}#clearCanvas0{width:calc(50% - 5px);height:40px;line-height:40px;text-align:center;position:absolute;top:300px;left:5px;border:1px solid #dedede;z-index:1}#saveCanvas0{width:calc(50% - 5px);height:40px;line-height:40px;text-align:center;position:absolute;top:300px;right:5px;border:1px solid #dedede;z-index:1}.ipaddress{display:flex;flex-wrap:nowrap;min-width:138px}.ipaddress.disabled{background-color:#efefef;cursor:not-allowed}.ipaddress .ipv4-cell{border:none;max-width:26px}:root{--bb-layout-header-height:50px;--bb-layout-user-height:65px;--bb-layout-footer-height:90px;--bb-layout-side-width:214px;--bb-layout-sidebar-collapse-width:70px}.layout{display:flex;height:100%;width:100%;flex-direction:column}.layout .layout-main{flex:1}.has-sidebar{flex-direction:row;display:flex;flex:1}.layout-side{position:relative}.layout.is-page .layout-side{transform:translateX(-100%);position:fixed;top:0;bottom:0;left:0;right:0;width:auto;transition:transform .3s linear;z-index:1030}.layout.is-page .layout-side.is-collapsed{transform:translateX(0)}.layout.is-page .has-sidebar .layout-side{top:50px}.layout.is-page .layout-right,.layout.is-page .has-sidebar .layout-main{width:100%}.layout.is-page.is-fixed{position:fixed;top:0;bottom:0;left:0;right:0}.layout.is-page .layout-header{background-color:#17a2b8;height:50px;color:#fff;display:flex;align-items:center;padding:0 1rem}.layout.is-page .layout-side{background-color:#343a40;color:#c2c7d0}.layout-header-bar{padding:4px 12px;color:#fff;background-color:#1ab394;border-color:#1ab394;border-radius:var(--bs-border-radius)}.layout-header-bar .fa-bars{transition:transform .3s linear}.layout-header-bar.is-collapsed .fa-bars{transform:rotate(90deg)}.layout.is-page .layout-main{padding:1rem;position:relative;min-height:calc(100vh - var(--bb-layout-footer-height))}.layout.is-page .layout-main.is-collapsed,.layout.is-page .layout-footer.is-collapsed{display:none}.layout.is-page .layout-header{z-index:1035;position:sticky}.layout.is-page .layout-header.is-fixed{top:0}.layout.is-page .layout-header .layout-avatar-right{width:44px;height:44px}.layout.is-page .has-sidebar .layout-side .layout-banner{display:none}.layout.is-page .layout-side .layout-banner{display:flex;align-items:center;padding:0 .625rem;background-color:#367fa9;height:var(--bb-layout-header-height);font-size:1.5rem}.layout-banner-link{display:flex;align-items:center;color:inherit}.layout.is-page .layout-side .layout-banner .layout-logo{width:44px;border-radius:var(--bs-border-radius)}.layout.is-page .layout-side .layout-banner span{padding-left:1rem}.layout.is-page .layout-side .layout-user{border-bottom:1px solid #ddd;padding:.625rem;display:flex;flex-direction:row;align-items:center}.layout.is-page .layout-side .layout-user .layout-avatar{width:44px;height:44px;border-radius:50%}.layout.is-page .layout-side .layout-user span{padding-left:1rem}.layout.is-page .layout-side .layout-menu{overflow-x:hidden;padding:.5rem 0;height:calc(100vh - var(--bb-layout-header-height) - var(--bb-layout-user-height))}.layout.is-page .layout-user-state{width:8px;height:8px;background-color:#28a745;border-radius:50%;margin-left:1rem}.layout.is-page .layout-footer{height:40px;color:#fff;background-color:#5b6e84;display:flex;align-items:center;padding:0 1rem}.layout.is-page .layout-footer.is-fixed{position:sticky;bottom:0}.layout.is-page .has-sidebar .layout-side.is-fixed-header,.layout.is-page .layout-footer.is-fixed{z-index:1020}@media(min-width:768px){.layout.is-page .layout-side{transform:translateX(0);position:relative}.layout.is-page .has-sidebar .layout-side{top:0}.layout.is-page.has-sidebar .layout-side.is-fixed-header{top:0;height:calc(100vh)}.layout.is-page :not(.layout-right) .layout-main,.layout.is-page .layout-right{width:calc(100% - var(--bb-layout-side-width))}.layout.is-page .layout-side{width:var(--bb-layout-side-width);box-shadow:0 14px 28px rgba(0,0,0,.25),0 10px 10px rgba(0,0,0,.22)}.layout.is-page .layout-side .menu.is-vertical{width:var(--bb-layout-side-width)}.layout.is-page .layout-side.is-collapsed:not(:hover),.layout.is-page .layout-side:not(:hover) .menu.is-vertical.is-collapsed{width:var(--bb-layout-sidebar-collapse-width)}.layout.is-page .layout-side.is-fixed-header{position:sticky;top:var(--bb-layout-header-height);height:calc(100vh - var(--bb-layout-header-height))}.layout.is-page .layout-side.is-fixed-header.is-fixed-footer{height:calc(100vh - var(--bb-layout-footer-height))}.layout.is-page .layout-side .layout-menu{height:auto}.layout .layout-side,.layout.is-page .layout-side,.layout .menu.is-vertical{transition:width .3s linear}.layout-right{display:flex;flex-flow:column;flex:1}.layout.is-page .layout-footer.is-fixed,.layout.is-page .layout-header.is-fixed,.layout.is-page .layout-side.is-fixed-header{z-index:1025}.layout.is-page .layout-title{display:inline-block;overflow:hidden;white-space:nowrap;flex:1 1 auto;opacity:1;transition:opacity .3s linear;color:#e9ecef}.layout.is-page .is-collapsed .layout-title{opacity:0}.layout .is-collapsed .layout-user-state{display:none}.layout.is-page.has-sidebar .layout-side{min-height:calc(100vh)}.layout.is-page .has-sidebar .layout-side{min-height:calc(100vh - var(--bb-layout-footer-height))}.layout.is-page.has-sidebar .layout-side.is-fixed-header.is-fixed-footer .layout-menu,.layout.is-page .layout-side.is-fixed-header .layout-menu{height:calc(100vh - var(--bb-layout-header-height) - var(--bb-layout-user-height))}.layout.is-page .layout-side.is-fixed-header.is-fixed-footer .layout-menu{height:calc(100vh - var(--bb-layout-footer-height) - var(--bb-layout-user-height))}.layout.is-page .layout-main.is-collapsed{display:block}.layout.is-page .layout-footer.is-collapsed{display:flex}.layout.is-page .layout-menu .menu.is-vertical.is-collapsed .nav-link.active::before{opacity:1;background-color:#409eff}.layout.is-page .layout-side .layout-menu .slimScrollBar{opacity:1 !important;background-color:#c1c1c1 !important}}.light{background-image:radial-gradient(circle,#fff,#aaa,#333);cursor:pointer;width:20px;height:20px;display:inline-block;border-radius:50%}.light+span{display:none}.light-danger{background-image:radial-gradient(circle,#e17777,#892726,#700604)}.light-danger.flash{animation:danger .6s linear infinite}.light-danger:hover{background-image:radial-gradient(circle,#e17777,#b33332,#bf211e)}@keyframes danger{0%{background-image:radial-gradient(circle,#e17777,#892726,#700604)}55%{background-image:radial-gradient(circle,#e17777,#892726,#700604)}100%{background-image:radial-gradient(circle,#fff,#aaa,#333)}}.light-success{background-image:radial-gradient(circle,#5cb85c,#116811,#024702)}.light-success.flash{animation:success .6s linear infinite}.light-success:hover{background-image:radial-gradient(circle,#5cb85c,#0c980c,#087b08)}@keyframes success{0%{background-image:radial-gradient(circle,#5cb85c,#116811,#024702)}55%{background-image:radial-gradient(circle,#5cb85c,#116811,#024702)}100%{background-image:radial-gradient(circle,#fff,#aaa,#333)}}.light-info{background-image:radial-gradient(circle,#5bc0de,#1d7792,#085166)}.light-info.flash{animation:info .6s linear infinite}.light-info:hover{background-image:radial-gradient(circle,#5bc0de,#085166,#085166)}@keyframes info{0%{background-image:radial-gradient(circle,#5bc0de,#1d7792,#085166)}55%{background-image:radial-gradient(circle,#5bc0de,#1d7792,#085166)}100%{background-image:radial-gradient(circle,#fff,#aaa,#333)}}.light-warning{background-image:radial-gradient(circle,#ffc107,#cc9f18,#a28018)}.light-warning.flash{animation:warning .6s linear infinite}.light-warning:hover{background-image:radial-gradient(circle,#ffc107,#a28018,#a28018)}@keyframes warning{0%{background-image:radial-gradient(circle,#ffc107,#cc9f18,#a28018)}55%{background-image:radial-gradient(circle,#ffc107,#cc9f18,#a28018)}100%{background-image:radial-gradient(circle,#fff,#aaa,#333)}}.light-primary{background-image:radial-gradient(circle,#007bff,#0f5fb5,#104f94)}.light-primary.flash{animation:primary .6s linear infinite}.light-primary:hover{background-image:radial-gradient(circle,#007bff,#104f94,#104f94)}@keyframes primary{0%{background-image:radial-gradient(circle,#007bff,#0f5fb5,#104f94)}55%{background-image:radial-gradient(circle,#007bff,#0f5fb5,#104f94)}100%{background-image:radial-gradient(circle,#fff,#aaa,#333)}}.light-secondary{background-image:radial-gradient(circle,#6c757d,#4b5054,#3b3d40)}.light-secondary.flash{animation:secondary .6s linear infinite}.light-secondary:hover{background-image:radial-gradient(circle,#6c757d,#3b3d40,#3b3d40)}@keyframes secondary{0%{background-image:radial-gradient(circle,#6c757d,#4b5054,#3b3d40)}55%{background-image:radial-gradient(circle,#6c757d,#3b3d40,#3b3d40)}100%{background-image:radial-gradient(circle,#fff,#aaa,#333)}}.light-dark{background-image:radial-gradient(circle,#6061e2,#3232a0,#17177b)}.light-dark.flash{animation:dark .6s linear infinite}.light-dark:hover{background-image:radial-gradient(circle,#6061e2,#17177b,#17177b)}@keyframes dark{0%{background-image:radial-gradient(circle,#6061e2,#3232a0,#17177b)}55%{background-image:radial-gradient(circle,#6061e2,#3232a0,#17177b)}100%{background-image:radial-gradient(circle,#fff,#aaa,#333)}}.listview{border:1px solid rgba(0,0,0,.125);border-radius:.25rem;width:100%;height:100%;display:flex;flex-flow:column nowrap}.listview .listview-header{padding:1rem;border-bottom-color:inherit;border-bottom-width:1px;border-bottom-style:solid}.listview.is-vertical .listview-body{display:block}.listview .listview-body{padding:1rem 0 0 1rem;position:relative;overflow:auto;display:flex;flex-flow:row wrap;flex:1}.listview .listview-body .listview-item{margin:0 1rem 1rem 0}.listview .listview-body .listview-item:hover .card{cursor:pointer;border:1px solid #409eff}.listview .listview-body .listview-item .card{box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.listview .listview-body .listview-item-group{flex-basis:100%;margin:1rem 0;font-weight:bold;position:relative}.listview .listview-body .listview-item-group:after{content:"";position:absolute;top:calc(-50%);left:-1rem;right:0;background-color:rgba(0,0,0,.1);height:calc(200%)}.listview .listview-footer{padding:1rem;border-top-color:inherit;border-top-width:1px;border-top-style:solid}.dropdown-logout .dropdown-menu{padding:0;overflow:hidden;border-color:#3c8dbc}.dropdown-logout .dropdown-menu.show{animation:fade-in2 .2s cubic-bezier(.39,.575,.565,1) both}@keyframes fade-in2{0%{margin-top:-50px;visibility:hidden;opacity:0}100%{visibility:visible;opacity:1}}.dropdown-logout .dropdown-toggle{height:42px;display:block}.dropdown-logout .dropdown-toggle:after{content:none}.dropdown-logout .logout-avatar{width:42px;height:42px}.dropdown-logout .logout-text{color:#fff;font-weight:bold;max-width:110px;margin:0 .625rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropdown-logout .dropdown-user{background-color:#3c8dbc;color:#fff}.dropdown-logout .dropdown-user img{width:60px;height:60px;margin-right:1rem}.dropdown-logout .logout-un{margin-top:.25rem}.dropdown-logout .dropdown-item:not(.dropdown-user):focus,.dropdown-logout .dropdown-item:not(.dropdown-user):hover{background-color:transparent}.dropdown-logout .dropdown-item a{color:var(--bs-body-color);margin-bottom:.5rem;display:block;transition:color .3s linear}.dropdown-logout .dropdown-item a:first-child{margin-top:.5rem}.dropdown-logout .dropdown-item a:hover{color:#009ef7}.dropdown-logout .dropdown-item a .fa{margin-right:.5rem}.menu .nav{padding:0 1rem;border-bottom:1px solid #e6e6e6}.menu>.nav>li{position:relative;border-bottom:solid 2px transparent}.menu>.nav>li.active:after{width:100%;left:0}.menu>.nav>li:after{content:"";position:absolute;background-color:#1890ff;left:50%;height:2px;width:0;transition:width .3s linear,left .3s linear}.menu .nav .nav-link,.cascade .dropdown-item{padding:.5rem 1rem;color:rgba(0,0,0,.65);user-select:none;white-space:nowrap;position:relative}.menu .nav .nav-link.active,.menu .nav .nav-link:not(.disabled):hover{color:#1890ff}.menu .nav .dropdown-menu,.cascade .dropdown-menu{overflow:unset;max-height:unset;margin-top:10px}.menu .nav .dropdown-menu .nav-link:not(.disabled):hover,.menu .nav .dropdown-menu .nav-link.active,.menu .submenu .nav-link.active,.menu .submenu .nav-link:not(.disabled):hover,.cascade .dropdown-item:not(.disabled):hover,.cascade .dropdown-item.active,.cascade .nav .nav-link:not(.disabled):hover,.cascade .nav .nav-link.active{background-color:#60aff9;color:#16181b}.menu .nav .sub-menu,.cascade .has-leaf .sub-menu{display:none;background-color:#fff;white-space:nowrap;border:solid 1px #e6e6e6;border-radius:var(--bs-border-radius);padding:.5rem 0;position:absolute;left:100%;top:-9px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.menu .nav .dropdown-menu,.menu .nav .sub-menu,.cascade .sub-menu{width:160px}.menu .nav .nav-link:hover>.sub-menu,.cascade .dropdown-item:hover>.sub-menu{display:block}.menu .nav-item:hover>.nav-link>.sub-menu{left:calc(100% + 20px);top:-15px}.menu .has-leaf>.nav-link-right{transition:transform .3s linear;position:absolute;right:10px;top:10px}.menu .nav .sub-menu .has-leaf>.nav-link-right{right:12px;top:10px}.menu .has-leaf:hover>.nav-link-right{transform:rotate(-90deg)}.menu .text{overflow:hidden;vertical-align:top;display:inline-block;transition:width .3s linear}.menu .nav-link.disabled{color:#ddd}.menu .nav .nav-link .text{margin-left:4px}.menu .nav .dropdown-toggle[aria-expanded="true"]+.dropdown-menu-arrow,.cascade .show .dropdown-menu-arrow{display:block}.menu .nav .dropdown .dropdown-menu-arrow{left:calc(50% - 6px)}.menu .nav-link{display:flex;align-items:center;line-height:21px;color:inherit;transition:background-color .3s linear,color .3s linear}.menu .nav-link>div{white-space:nowrap}.menu .widget>.badge:not(:first-child){margin-left:4px}.menu.is-vertical{padding:0 .5rem;border:none}.menu .submenu{margin:0;padding:0;list-style:none}.menu .submenu li{margin-top:2px}.menu .submenu .nav-link{border-radius:var(--bs-border-radius);padding:.5rem 0 .5rem .25rem}.menu .submenu .nav-link .fa-angle-left{transition:transform .3s linear}.menu .submenu .nav-link[aria-expanded="true"]>.fa-angle-left{transform:rotate(-90deg)}.menu .submenu .nav-link .text,.menu .submenu .nav-link .widget{margin:0 4px}.cascade .dropdown-menu{right:0}.cascade .sub-menu{display:none}@media(min-width:768px){.layout-side.is-collapsed:not(:hover) .menu.is-collapsed .submenu .text{width:0}}.menu.is-bottom{position:absolute;bottom:0;left:0;right:0}.menu.is-bottom .nav{flex-wrap:nowrap;justify-content:space-around;border-bottom:none;border-top:1px solid var(--bs-gray-400)}.menu.is-bottom .nav .dropdown-toggle[aria-expanded="true"]+.dropdown-menu-arrow{display:none}.menu.is-bottom>.nav>li:after,.menu.is-bottom .dropdown-menu-arrow:after{content:none}.message{position:fixed;left:1rem;right:1rem;z-index:1090;pointer-events:none}.message .alert{display:block;min-width:160px;max-width:480px;white-space:normal;opacity:0;top:-20px;bottom:unset;margin:1rem auto 0 auto;transition:opacity .3s linear,top .3s linear,bottom .3s linear;pointer-events:auto}.message .alert.show{opacity:1;bottom:unset;top:20px}.message.is-bottom .alert{top:unset;bottom:-20px}.message.is-bottom .alert.show{top:unset;bottom:20px}.is-draggable .modal-header{cursor:pointer}.modal-header{padding:.5rem 1rem}.modal-header.is-drag{cursor:move}.modal-footer{padding:.25rem 1rem}.modal-header .btn-print{padding:3px 8px 4px 8px;margin:0 6px}.bb-printview{background-color:#fff;padding:1rem;min-height:calc(100vh)}@media screen{.bb-printview{display:none}}@media print{body.bb-printview-open{overflow:auto !important}body.bb-printview-open app,body.bb-printview-open .modal,body.bb-printview-open .modal-footer,body.bb-printview-open .modal-backdrop{display:none !important}}.nav-pages{justify-content:space-between;align-items:center;width:100%}.pagination{margin:0;flex:1 1 auto;justify-content:flex-end}.page-link:focus{box-shadow:none}.pagination-items{display:inline-block}.pagination-items .select{width:100px;margin:0 10px}.pagination-items .select .dropdown-menu{min-width:unset;text-align:center}.pagination-items .select .form-select{text-align:center}.page-item:hover .page-link-prev .fa-ellipsis-h:before{content:""}.page-item:hover .page-link-next .fa-ellipsis-h:before{content:""}.page-link{padding:.5rem .35rem;line-height:1}.page-link .fa{width:11px;text-align:center}@media(min-width:375px){.page-link{padding:.5rem .5rem}}@media(min-width:456px){.page-link{padding:.5rem .75rem}}.popover{min-width:240px}.popover-confirm-body{margin:14px 0}.popover-confirm-body .fa+span{margin-left:.25rem}.popover-confirm-buttons{display:flex;justify-content:flex-end;margin-bottom:4px}.popover-confirm-buttons .btn{padding:7px 15px;line-height:12px}.popover-confirm-buttons .btn:last-child{margin-left:.5rem}.bs-popover-auto[data-popper-placement^=bottom].has-header>.popover-arrow::after,.bs-popover-bottom.has-header>.popover-arrow::after{border-bottom-color:#f0f0f0}.qrcode .qrcode-img{width:128px;height:128px}.qrcode .qrcode-buttons{margin-top:1rem}.radio-list{display:flex;flex-wrap:wrap}.radio-list .form-check{width:120px}.radio-list.is-vertical{flex-direction:column;height:auto;line-height:unset}.radio-list.is-vertical .form-check:not(:last-child){margin-bottom:.5rem}.form-inline .radio-list .form-check{display:inline-block}.rate{height:18px;line-height:1;font-size:18px;cursor:pointer}.rate .rate-item{width:18px;height:100%;margin-right:6px}.rate .rate-item:last-child{margin-right:0}.rate .rate-item i{color:#c6d1de;transition:.3s}.rate .rate-item.is-on i{color:#c6d1de}.rate .rate-item.is-on i:before{content:""}.rate:not(.disabled) .rate-item.is-on i{color:#f7ba2a}:root{--bs-row-label-width:120px}@media(min-width:576px){.form-inline .form-label{padding:7px 0;margin-bottom:0;padding-right:10px;width:var(--bs-row-label-width);text-overflow:ellipsis;white-space:nowrap;overflow:hidden;vertical-align:top;display:inline-block}.form-inline .form-label+*{width:calc(100% - var(--bs-row-label-width))}.form-inline .form-label+*:not(.input-group):not(.switch){display:inline-block}.form-inline .form-label+.input-group{display:inline-flex}.form-inline .form-label+.switch,.form-inline .form-label+.form-checkbox{padding:7px 0}.form-inline.is-end>div>.form-label{text-align:right}.form-inline.is-center>div>.form-label{text-align:center}}.scroll{height:100%;scrollbar-color:rgba(0,0,0,.3) rgba(0,0,0,0);scrollbar-width:thin;overflow:auto}.scroll::-webkit-scrollbar{width:6px;height:6px}.scroll::-webkit-scrollbar-thumb{border-radius:3px;background-color:rgba(0,0,0,.2)}.scroll::-webkit-scrollbar-thumb:hover{background-color:rgba(0,0,0,.3)}@media(min-width:992px){.scroll{overflow:hidden}.scroll:hover{overflow-y:auto}}.multi-select{width:100%;position:relative}.multi-select .dropdown-menu-toggle{border:solid 1px #ddd;border-radius:var(--bs-border-radius);cursor:pointer;min-height:35px;max-height:70px;overflow:auto}.multi-select .dropdown-menu-toggle.disabled{background-color:#eee}.multi-select .dropdown-menu-toggle .clear{padding:7px .25rem;display:none;color:#adb5bd}.multi-select .dropdown-menu-toggle .clear:hover{background-color:#ddd;border-radius:var(--bs-border-radius)}.multi-select .dropdown-menu-toggle .dropdown{padding:7px .25rem;display:block}.multi-select .dropdown-menu-toggle.selected .clear{display:block}.multi-select .dropdown-menu-toggle.selected .dropdown,.multi-select .dropdown-menu-toggle.disabled .clear{display:none}.multi-select .dropdown-menu-toggle .append{position:absolute;height:100%;width:30px;right:0;top:0;color:#c0c4cc;display:flex;align-items:center;justify-content:center}.multi-select .dropdown-menu-toggle .append .dropdown{transition:all .3s;transform:rotate(180deg)}.multi-select.show .dropdown-menu-toggle .append .dropdown{transform:rotate(0)}.multi-select .dropdown-menu{max-height:300px;overflow:auto}.multi-select .multi-select-items{display:flex;flex-wrap:wrap;padding-top:3px;padding-left:3px;position:relative}.multi-select .multi-select-items span{border:solid 1px #ddd;border-radius:var(--bs-border-radius);padding:2px 6px;background-color:#e9ecef;margin-bottom:3px}.multi-select .multi-select-items .multi-select-item{display:inline-block;max-width:130px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;margin-right:3px;border-top-left-radius:0;border-bottom-left-radius:0}.multi-select .multi-select-items .multi-select-item-group{display:inline-flex;position:relative}.multi-select .multi-select-items .multi-select-item-group .multi-select-item{padding-left:9px}.multi-select .multi-select-items .multi-select-close{border-top-right-radius:0;border-bottom-right-radius:0;margin-right:-3px;z-index:2;transition:color .3s linear,background-color .3s linear}.multi-select :not(.disabled) .multi-select-items .multi-select-close:hover{color:#333;background-color:#ddd}.multi-select .dropdown-menu{margin-top:10px;padding:.25rem 0;width:100%}.multi-select .dropdown-menu .toolbar{padding:6px 10px;white-space:nowrap}.multi-select .dropdown-menu .toolbar .btn{line-height:12px;padding:7px 15px;border:1px solid #dee2e6;transition:border-color .3s linear,color .3s linear}.multi-select .dropdown-menu .toolbar .btn:hover{border-color:#409eff;color:#409eff}.multi-select .dropdown-menu .toolbar .btn:not(:last-child){margin-right:1rem}.multi-select .dropdown-menu .search{padding:7px 10px;position:relative}.multi-select .dropdown-menu .search .search-text{width:100%;padding-right:30px}.multi-select .dropdown-menu .search .fa-search{position:absolute;left:calc(100% - 34px);top:18px;color:#adb5bd}.multi-select .dropdown-item{display:flex;padding:0 10px;align-items:center;transition:all .3s linear}.multi-select .dropdown-item.active{background-color:#dee2e6;color:inherit}.multi-select .dropdown-item:hover{background-color:#6fd6e6}.multi-select .dropdown-item>span{padding:.375rem .75rem;overflow:hidden;text-overflow:ellipsis}.multi-select .dropdown-item .checkbox-label{display:none}.multi-select.show .dropdown-menu,.multi-select.show .dropdown-menu-arrow{display:block}.multi-select .multi-select-ph{padding:0 1rem;color:#c0c4cc;line-height:35px;position:absolute}.multi-select .dropdown-item .form-label{display:none}.multi-select .dropdown-item .form-check{width:auto}.multi-select .dropdown-item:hover{background-color:#f1faff}.form-select:focus{box-shadow:none}.form-select:hover,.form-select:focus{border-color:#c0c4cc}.form-select.border-primary:hover{box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-select.border-info:hover{box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(23,162,184,.5)}.form-select.border-warning:hover{box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(255,193,7,.5)}.form-select.border-danger:hover{box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(220,53,69,.5)}.form-select.is-valid,.form-select.is-invalid{background-image:none}[data-bs-toggle="lgbSelect"] .dropdown-toggle::after{content:none}[data-bs-toggle="lgbSelect"] .form-select{background-image:none;color:#606266;outline:none;padding-right:calc(1.5em + .75rem);cursor:pointer}[data-bs-toggle="lgbSelect"] .dropdown-menu{margin-top:8px !important;font-size:inherit;cursor:pointer}[data-bs-toggle="lgbSelect"] .dropdown-menu .dropdown-item.disabled{color:#c0c4cc;cursor:not-allowed}[data-bs-toggle="lgbSelect"] .dropdown-menu .dropdown-item.disabled:active{background-color:#f8f9fa}[data-bs-toggle="lgbSelect"] .form-select.is-valid:focus,[data-bs-toggle="lgbSelect"] .was-validated .form-select:valid:focus,.form-select.border-success:hover{box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(40,167,69,.5)}[data-bs-toggle="lgbSelect"] .form-select.is-invalid:focus,[data-bs-toggle="lgbSelect"] .was-validated .form-select:invalid:focus,.form-select.border-danger:hover{box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(220,53,69,.5)}.select .dropdown-menu{max-height:274px;overflow-x:hidden;width:100%}.dropdown-menu-arrow{width:0;height:0;border-width:0 6px 6px;border-style:solid;border-color:transparent transparent rgba(0,0,0,.15);position:absolute;left:20px;margin-top:4px;z-index:1001;display:none}.dropdown-menu-arrow:after{content:" ";width:0;height:0;border-width:0 6px 6px;border-style:solid;border-color:transparent transparent #fff;position:absolute;top:1px;left:-6px}.form-select.show+.form-select-append i{transform:rotate(0)}.dropdown-menu[data-popper-placement="bottom-start"].show+.dropdown-menu-arrow,.dropdown-menu[data-bs-popper="none"].show+.dropdown-menu-arrow{display:block}.dropdown-menu[data-bs-popper="none"].show+.dropdown-menu-arrow{margin-top:2px}.disabled .form-select{background-color:#f5f7fa;border-color:#e4e7ed;color:#c0c4cc;cursor:not-allowed}.disabled .form-select-append{color:#c0c4cc}.form-select-append{position:absolute;height:100%;width:30px;right:0;top:0;color:#c0c4cc;pointer-events:none;display:flex;align-items:center;justify-content:center}.form-select-append i{transition:all .3s;transform:rotate(180deg)}.select .search{padding:7px 10px;position:relative;border-bottom:1px solid #ddd;padding-bottom:.625rem;margin-bottom:.5rem}.select .search .search-text{width:100%;padding-right:30px}.select .search .fa-search{position:absolute;left:calc(100% - 34px);top:18px;color:#adb5bd}.form-select{width:100%}.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size="1"],.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size="1"],.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size="1"],.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size="1"]{background-position:right -1rem center,center right 1.5rem}.skeleton{width:100%;flex:1}.skeleton-content{position:relative}.skeleton-row{min-height:32px;background-color:#e9ecef}.skeleton-row:not(:last-child){margin-bottom:.5rem}.skeleton-content.round .skeleton-col{border-radius:var(--bs-border-radius)}.skeleton-content.active .skeleton-col,.skeleton-content.active .skeleton-avatar{background:-webkit-gradient(linear,left top,right top,color-stop(25%,#f2f2f2),color-stop(37%,#e6e6e6),color-stop(63%,#f2f2f2));background:linear-gradient(90deg,#f2f2f2 25%,#e6e6e6 37%,#f2f2f2 63%);background-size:400% 100%;-webkit-animation:skeleton-loading 1.4s ease infinite;animation:skeleton-loading 1.4s ease infinite}@-webkit-keyframes skeleton-loading{0%{background-position:100% 50%}to{background-position:0 50%}}@keyframes skeleton-loading{0%{background-position:100% 50%}to{background-position:0 50%}}@media(min-width:576px){.skeleton-content .control-label.skeleton-row{margin-bottom:0}}.skeleton-content .form-control.skeleton-row{flex:1}.skeleton-avatar{width:2rem;height:2rem}.skeleton-content.round .skeleton-avatar{border-radius:4px}.skeleton-content .skeleton-avatar.circle{border-radius:50%}.skeleton-table,.skeleton-buttons{border-radius:var(--bs-border-radius);border:1px solid #dee2e6;overflow:hidden}.skeleton-table .skeleton-content .skeleton-row{background:#fff;display:flex;height:39px;padding:.5rem;margin:0}.skeleton-table .skeleton-content .skeleton-row:nth-of-type(odd):not(:first-of-type){background:#f5f8fabf}.skeleton-table .skeleton-content .skeleton-row:first-of-type{border-bottom:2px solid var(--bs-secondary)}.skeleton-table .skeleton-content .skeleton-row .skeleton-col{flex:1;background-color:#e9ecef;margin:5px;height:12.5px}.skeleton-table .skeleton-row:first-of-type .skeleton-col{background:#ddd}.skeleton-toolbar{height:35px;display:flex;margin-bottom:.5rem}.skeleton-buttons{display:inline-flex;overflow:hidden}.skeleton-button{height:35px;width:70px;background-color:var(--bs-secondary);border-color:var(--bs-secondary)}.skeleton-button:not(:last-child){border-right:1px solid #ddd}.slider{flex:1 1 auto}.slider:after{clear:both}.slider:after,.slider:before{display:table;content:""}.slider-runway{width:100%;height:6px;margin:16px 0;background-color:#e4e7ed;border-radius:3px;position:relative;cursor:pointer}.slider-runway.disabled .slider-bar{background-color:#c0c4cc}.slider-runway.disabled .slider-button.dragging,.slider-runway.disabled .slider-button.hover,.slider-runway.disabled .slider-button:hover{transform:scale(1)}.slider-runway.disabled .slider-button{border-color:#c0c4cc}.slider-bar{height:6px;background-color:#409eff;border-top-left-radius:3px;border-bottom-left-radius:3px;position:absolute}.slider-button-wrapper{height:36px;width:36px;position:absolute;top:-15px;transform:translateX(-50%);background-color:transparent;user-select:none;line-height:normal;display:flex;align-items:center;justify-content:center}.slider-button-wrapper:focus{outline:none}.slider-button-wrapper.hover,.slider-button-wrapper:hover{cursor:grab}.slider-button-wrapper.dragging{cursor:grabbing}.slider-button{width:16px;height:16px;border:2px solid #409eff;background-color:#fff;border-radius:50%;transition:.2s;user-select:none;outline:none}.slider-button.dragging,.slider-button.hover,.slider-button:hover{transform:scale(1.3)}.split{display:block;height:100%;width:100%}.split .split-wrapper{display:flex;flex-direction:column;height:100%}.split .split-wrapper.is-horizontal{flex-direction:row}.split.dragging .split-wrapper{cursor:row-resize}.split.dragging .split-wrapper.is-horizontal{cursor:col-resize}.split .split-pane{height:100%;overflow:hidden}.split .split-bar{display:flex;justify-content:center;align-items:center;height:6px;width:100%;background:#f8f8f9;border:1px solid #dcdee2;border-left:none;border-right:none;cursor:row-resize;overflow:unset}.split .split-bar:hover,.split.dragging>.split-wrapper>.split-bar{background-color:#409eff}.split .split-bar:hover .split-trigger-bar,.split.dragging>.split-wrapper>.split-bar .split-trigger-bar{background-color:var(--bs-bg-disabled)}.split .split-trigger{font-size:0;display:inline-block}.split .split-bar .split-trigger-bar{width:1px;height:4px;background:rgba(23,35,61,.25);margin-left:3px;display:inline-block}.split .split-wrapper.is-horizontal>.split-bar{width:6px;height:100%;border:1px solid #dcdee2;border-top:none;border-bottom:none;cursor:col-resize}.split .split-wrapper.is-horizontal>.split-bar .split-trigger-bar{width:4px;height:1px;margin-left:0;margin-top:3px}.steps-header{display:flex}.steps-horizontal{white-space:nowrap}.step{position:relative;flex-shrink:1}.step.is-horizontal{display:inline-block}.step.is-center .step-head,.step.is-center .step-main{text-align:center}.step-head{position:relative;width:100%;line-height:1}.step-head.is-success{color:#67c23a;border-color:#67c23a}.step-head.is-process{color:#303133;border-color:#303133}.step-head.is-wait{color:#c0c4cc;border-color:#c0c4cc}.step-head.is-finish{color:#409eff;border-color:#409eff}.step-head.is-error{color:#f56c6c;border-color:#f56c6c}.step-main{white-space:normal;text-align:left}.step-title{font-size:14px;line-height:38px}.step-title.is-success{color:#67c23a}.step-title.is-finish{color:#409eff}.step-title.is-process{font-weight:700;color:#303133}.step-title.is-wait{color:#c0c4cc}.step-title.is-error{color:#f56c6c}.step-description{padding-right:10%;margin-top:-5px;font-size:12px;line-height:20px;font-weight:400}.step-description.is-success{color:#67c23a}.step-description.is-finish{color:#409eff}.step-description.is-process{color:#303133}.step-description.is-wait{color:#c0c4cc}.step.is-center .step-description{padding-left:20%;padding-right:20%}.step-line{position:absolute;border-color:inherit;background-color:#c0c4cc}.step.is-horizontal .step-line{height:2px;top:11px;left:0;right:0}.step.is-center .step-line{left:50%;right:-50%}.step-line-inner{display:block;border:1px solid;border-color:inherit;transition:.15s ease-out;box-sizing:border-box;width:0;height:0}.step:last-of-type .step-line{display:none}.step-icon{position:relative;z-index:1;display:inline-flex;justify-content:center;align-items:center;width:24px;height:24px;font-size:14px;box-sizing:border-box;background:#fff;transition:.15s ease-out}.step-icon.is-text{border-radius:50%;border:2px solid;border-color:inherit}.step-icon.is-icon{width:40px}.step-icon-inner{display:inline-block;user-select:none;text-align:center;font-weight:700;line-height:1;color:inherit;font-style:normal}.step-icon-inner[class*=fa]:not(.is-status){font-size:25px;font-weight:400}.step:last-of-type.is-flex{flex-basis:auto !important;flex-shrink:0;flex-grow:0}.switch{display:inline-flex;align-items:center;height:35px;width:100%}.switch .switch-core{margin:0;display:inline-block;position:relative;border:1px solid #dcdfe6;outline:none;border-radius:10px;box-sizing:border-box;background:#dcdfe6;cursor:pointer;transition:border-color .3s,background-color .3s;vertical-align:middle}.switch .switch-core:after{content:"";position:absolute;top:1px;left:1px;border-radius:50%;transition:all .3s;width:16px;height:16px;background-color:#fff}.switch .switch-core:before{content:attr(data-inner-text);position:absolute;top:1px;left:calc(100% - 17px);transition:all .3s;font-size:80%;color:#606266}.switch.is-checked .switch-core:after{left:100%;margin-left:-17px}.switch.is-checked .switch-core:before{left:5px;color:#fff}.switch .switch-label{margin-left:10px;cursor:pointer}.switch.disabled{opacity:.6}.switch .switch-inner-text{font-size:80%}td :not(.is-incell) .switch{height:auto}.tabs{display:flex}.tabs,.tabs-body,.tabs-body-content{height:100%}.tabs.tabs-top{flex-flow:column}.tabs.tabs-top.tabs-border-card .tabs-header{margin-bottom:0;border-top-left-radius:var(--bs-border-radius);border-top-right-radius:var(--bs-border-radius)}.tabs.tabs-right{flex-flow:row-reverse}.tabs.tabs-left{flex-flow:row}.tabs.tabs-bottom{flex-flow:column-reverse}.tabs.tabs-card.tabs-bottom .tabs-header{border-top:1px solid #e4e7ed;border-bottom:none}.tabs.tabs-border-card.tabs-bottom .tabs-header{margin-top:0}.tabs .tabs-nav-wrap{position:relative;display:flex}.tabs .tabs-nav-wrap:after{content:"";position:absolute;left:0;bottom:0;width:100%;height:2px;background-color:#e4e7ed}.tabs.tabs-top .tabs-nav-wrap{margin-bottom:-1px}.tabs.tabs-bottom .tabs-nav-wrap{margin-top:-1px}.tabs.tabs-left .tabs-nav-wrap{margin-right:-1px}.tabs.tabs-right .tabs-nav-wrap{margin-left:-1px}.tabs.tabs-top .tabs-nav-wrap,.tabs.tabs-bottom .tabs-nav-wrap{width:100%}.tabs.tabs-top .tabs-nav-wrap.is-scrollable:not(.extend),.tabs.tabs-bottom .tabs-nav-wrap.is-scrollable:not(.extend){padding:0 30px}.tabs.tabs-left .tabs-nav-wrap,.tabs.tabs-right .tabs-nav-wrap{height:100%}.tabs.tabs-left .tabs-nav-wrap:after,.tabs.tabs-right .tabs-nav-wrap:after{left:auto;right:0;width:2px;height:100%}.tabs.tabs-right .tabs-nav-wrap:after{left:0;right:auto}.tabs.tabs-left .tabs-nav-wrap.is-scrollable,.tabs.tabs-right .tabs-nav-wrap.is-scrollable{padding:30px 0}.tabs .tabs-nav-next,.tabs .tabs-nav-prev{position:absolute;cursor:pointer;line-height:40px;height:40px;font-size:16px;color:#909399;width:30px;justify-content:center;align-items:center;display:none}.tabs .tabs-nav-prev{left:0;top:0}.tabs .tabs-nav-next{right:0;top:0}.tabs .tabs-nav-next:hover,.tabs-nav-prev:hover{color:#409eff}.tabs.tabs-left .tabs-nav-prev,.tabs.tabs-right .tabs-nav-prev{top:0;left:calc(50% - 15px);height:30px}.tabs.tabs-left .tabs-nav-prev i:before,.tabs-right .tabs-nav-prev i:before{content:""}.tabs.tabs-left .tabs-nav-next,.tabs.tabs-right .tabs-nav-next{top:auto;bottom:0;left:calc(50% - 15px);height:30px}.tabs.tabs-left .tabs-nav-next i:before,.tabs.tabs-right .tabs-nav-next i:before{content:""}.tabs .tabs-nav-wrap .nav-link-bar{padding:.5rem 1rem;background-color:#fff;border:1px solid #dcdfe6;border-width:0 0 1px 1px;height:39px;cursor:pointer}.tabs .tabs-nav-wrap .nav-link-bar.left{border:1px solid #dcdfe6;border-width:0 1px 1px 0}.tabs .tabs-nav-wrap .nav-link-bar.right{border:1px solid #dcdfe6;border-width:0 0 1px 1px}.tabs .tabs-nav-wrap .dropdown-toggle:after{display:none}.tabs .tabs-nav-wrap .dropdown-item{transition:background-color .3s linear}.tabs .tabs-nav-wrap .dropdown-item:hover{background-color:#409eff}.tabs .tabs-nav-scroll{overflow:hidden;flex:1}.tabs.tabs-card.tabs-top .tabs-nav-scroll{border:solid 1px #ddd;border-radius:var(--bs-border-radius) var(--bs-border-radius) 0 0;border-bottom:none}.tabs.tabs-card.tabs-bottom .tabs-nav-scroll{border:solid 1px #ddd;border-radius:0 0 var(--bs-border-radius) var(--bs-border-radius);border-top:none}.tabs.tabs-card.tabs-left .tabs-nav-scroll{border:solid 1px #ddd;border-radius:var(--bs-border-radius) 0 0 var(--bs-border-radius);border-right:none}.tabs.tabs-card.tabs-right .tabs-nav-scroll{border:solid 1px #ddd;border-radius:0 var(--bs-border-radius) var(--bs-border-radius) 0;border-left:none}.tabs.tabs-left .tabs-nav-scroll,.tabs.tabs-right .tabs-nav-scroll{height:100%}.tabs.tabs-top .tabs-nav-scroll,.tabs.tabs-bottom .tabs-nav-scroll{width:100%}.tabs .tabs-nav{white-space:nowrap;position:relative;display:flex}.tabs.tabs-left .tabs-nav,.tabs.tabs-right .tabs-nav{flex-flow:column}.tabs.tabs-left .tabs-nav .tabs-active-bar,.tabs.tabs-right .tabs-nav .tabs-active-bar{width:2px;height:40px}.tabs.tabs-left .tabs-item{text-align:right}.tabs.tabs-left .tabs-nav .tabs-active-bar{left:auto;right:0;top:auto;bottom:auto}.tabs.tabs-right .tabs-nav .tabs-active-bar{right:auto;left:0;top:auto;bottom:auto}.tabs .tabs-body{padding:1rem}.tabs.tabs-card .tabs-body{border:1px solid #e4e7ed}.tabs.tabs-card.tabs-top .tabs-body{border-top-width:0;border-radius:0 0 4px 4px}.tabs.tabs-card.tabs-bottom .tabs-body{border-bottom-width:0;border-radius:var(--bs-border-radius) var(--bs-border-radius) 0 0}.tabs.tabs-card.tabs-left .tabs-body{border-left-width:0;border-radius:0 var(--bs-border-radius) var(--bs-border-radius) 0}.tabs.tabs-card.tabs-right .tabs-body{border-right-width:0;border-radius:var(--bs-border-radius) 0 0 var(--bs-border-radius)}.is-scrollable .tabs-nav-prev,.is-scrollable .tabs-nav-next{display:flex}.tabs-active-bar{position:absolute;bottom:0;left:0;height:2px;background-color:#409eff;z-index:1;transition:transform .3s cubic-bezier(.645,.045,.355,1);list-style:none}.tabs-item.active{color:#409eff}.tabs-item{padding:0 20px;height:40px;line-height:40px;display:flex;list-style:none;font-weight:500;color:#303133;cursor:pointer;align-items:center;position:relative;transition:color .3s linear,background-color .3s linear}.tabs-item:hover{color:#409eff}.tabs-item .tabs-item-text{padding:0 .25rem;flex:1 1 auto}.tabs-item.is-closeable .tabs-item-text{margin-right:1rem;margin-left:1rem}.tabs-item:hover .tabs-item-close{display:flex}.tabs-item .tabs-item-close{width:18px;height:18px;display:none;position:absolute;right:1rem;justify-content:center;align-items:center;transition:all .3s linear}.tabs-item .tabs-item-close:hover{background-color:#e4e7ed;border-radius:var(--bs-border-radius)}.tabs-content{overflow:hidden;position:relative}.tabs-card.tabs-top .tabs-header{border-bottom:1px solid #e4e7ed}.tabs-card .tabs-header .tabs-item.active{border-bottom-color:#fff}.tabs-card.tabs.tabs-left .tabs-header{border-right:1px solid #e4e7ed}.tabs-card.tabs.tabs-right .tabs-header{border-left:1px solid #e4e7ed}.tabs-card.tabs-bottom .tabs-header .tabs-item.active{border-top-color:#fff}.tabs-card.tabs-left .tabs-header .tabs-item.active{border-right-color:#fff}.tabs-card.tabs-right .tabs-header .tabs-item.active{border-left-color:#fff}.tabs-card .tabs-header .tabs-item:first-child{border-left:none}.tabs-card .tabs-header .tabs-item{border-bottom:1px solid transparent;border-left:1px solid #e4e7ed;transition:color .3s cubic-bezier(.645,.045,.355,1),padding .3s cubic-bezier(.645,.045,.355,1)}.tabs-card .tabs-header .tabs-item{border-bottom:1px solid transparent;border-left:1px solid #e4e7ed;transition:color .3s cubic-bezier(.645,.045,.355,1),padding .3s cubic-bezier(.645,.045,.355,1)}.tabs-card.tabs-top .tabs-header .tabs-item:last-child,.tabs-card.tabs-bottom .tabs-header .tabs-item:last-child{border-right:1px solid #e4e7ed}.tabs-card.tabs-bottom .tabs-header .tabs-item{border-top:1px solid transparent}.tabs-card.tabs-left .tabs-header .tabs-item{border-right:1px solid transparent;border-left:none;border-bottom:1px solid #e4e7ed}.tabs-card.tabs-right .tabs-header .tabs-item{border-left:1px solid transparent;border-right:none;border-bottom:1px solid #e4e7ed}.tabs-border-card{background:#fff;border:1px solid #dcdfe6;box-shadow:0 2px 4px 0 rgba(0,0,0,.12),0 0 6px 0 rgba(0,0,0,.04);border-radius:var(--bs-border-radius)}.tabs-border-card>.tabs-header{background-color:#f5f7fa;margin:0}.tabs-border-card>.tabs-header .tabs-item.active{color:#409eff;background-color:#fff;border-right-color:#dcdfe6;border-left-color:#dcdfe6}.tabs-border-card>.tabs-header .tabs-item{border:1px solid transparent}.tabs-border-card>.tabs-header .tabs-item:not(:hover):not(.active){color:#909399}.tabs-border-card>.tabs-header .tabs-item:not(.active):hover{background-color:#e9ecef}.tabs-border-card.tabs-top .tabs-header{border-bottom:1px solid #e4e7ed}.tabs-border-card.tabs-bottom .tabs-header{border-top:1px solid #e4e7ed}.tabs-border-card.tabs-top .tabs-header .tabs-item{margin-top:-1px}.tabs-border-card.tabs-top .tabs-header .tabs-item:first-child{border-top-left-radius:var(--bs-border-radius)}.tabs-border-card.tabs-left .tabs-header,.tabs-border-card.tabs-right .tabs-header{border-bottom-width:0}.tabs-border-card.tabs-top .tabs-header .tabs-nav-wrap:not(.is-scrollable) .tabs-item,.tabs-border-card.tabs-bottom .tabs-header .tabs-nav-wrap:not(.is-scrollable) .tabs-item{margin-left:-1px}.tabs-border-card.tabs-left .tabs-item.active,.tabs-border-card.tabs-right .tabs-item.active{border-top-color:#dcdfe6;border-bottom-color:#dcdfe6}.tabs-border-card.tabs-left .tabs-item{border-left:none}.tabs-border-card.tabs-right .tabs-item{border-right:none}.tabs-border-card.tabs-left .tabs-item.active{border-right-color:#fff}.tabs-border-card.tabs-right .tabs-item.active{border-left-color:#fff}.tabs-bottom.tabs-border-card>.tabs-header .tabs-item:nth-child(2),.tabs-bottom.tabs-card>.tabs-header .tabs-item:nth-child(2),.tabs-bottom .tabs-left>.tabs-header .tabs-item:nth-child(2),.tabs-bottom .tabs-right>.tabs-header .tabs-item:nth-child(2),.tabs-top.tabs-border-card>.tabs-header .tabs-item:nth-child(2),.tabs-top.tabs-card>.tabs-header .tabs-item:nth-child(2),.tabs-top .tabs-left>.tabs-header .tabs-item:nth-child(2),.tabs-top .tabs-right>.tabs-header .tabs-item:nth-child(2){padding-left:20px}.tabs-bottom.tabs-border-card>.tabs-header .tabs-item:last-child,.tabs-bottom.tabs-card>.tabs-header .tabs-item:last-child,.tabs-bottom .tabs-left>.tabs-header .tabs-item:last-child,.tabs-bottom .tabs-right>.tabs-header .tabs-item:last-child,.tabs-top.tabs-border-card>.tabs-header .tabs-item:last-child,.tabs-top.tabs-card>.tabs-header .tabs-item:last-child,.tabs-top .tabs-left>.tabs-header .tabs-item:last-child,.tabs-top .tabs-right>.tabs-header .tabs-item:last-child{padding-right:20px}.tabs-card>.tabs-header .tabs-nav-wrap:after,.tabs-border-card>.tabs-header .tabs-nav-wrap:after{content:none}.tabs-card .tabs-item.is-closeable .tabs-item-text,.tabs-border-card .tabs-item.is-closeable .tabs-item-text{margin-right:1rem;margin-left:0}.is-page .layout-main>.tabs{margin:-1rem;border:none;border-radius:unset;min-height:calc(100% + 2rem)}.table-container{position:relative}.table-wrapper{border-radius:var(--bs-border-radius);border:1px solid #dee2e6}.table-wrapper thead tr:first-child{border-top:none}.table-wrapper tbody tr:last-child{border-bottom:none}.table-wrapper th:first-child,.table-wrapper td:first-child,.table-wrapper th.fixed-scroll{border-left-width:0}.table-wrapper th:last-child,.table-wrapper td:last-child,.table-wrapper .table-fixed-header th:nth-last-of-type(2){border-right-width:0}.table-wrapper tr:last-child td{border-bottom-width:0}.table-wrapper .table-fixed-body td:last-child{border-right-width:1px}.table-th-checkbox{width:36px}.table-th-checkbox.show-text{width:80px}.table-th-button{width:130px}.table{margin-bottom:0;--bb-table-selected-bg:#9ec6ef}.table thead th,.table tbody td{border-top:none}.table thead th{white-space:nowrap;vertical-align:top}.table thead th.sortable:hover,.table thead th.filterable:hover{background-color:#e9ecef}.table thead th.sortable:hover>.fa{color:#999}.table thead.table-dark th.sortable:hover,.table thead.table-dark th.filterable:hover{background-color:#343a40}.table thead th .table-cell{justify-content:space-between;position:relative}.table thead th .table-cell .table-text{flex:1}.table thead th .table-cell>.fa{content:"";position:absolute;right:-8px;top:-8px;bottom:-8px;width:1.5rem;display:flex;align-items:center;justify-content:center;color:#ddd}.table thead th .table-cell>.fa:hover{background-color:#ddd;color:#606266}.table thead th .table-cell .fa-filter{cursor:pointer}.table thead th .table-cell .fa-filter.active{color:#409eff}.table thead.table-dark th .table-cell>.fa:hover{background-color:#6c757d;color:#fff}.table thead.table-light th .table-cell>.fa{color:#c0c4cc}.table thead.table-light th .table-cell>.fa:hover{color:#495057}.table thead th.sortable .fa-sort-asc,.table thead th.sortable .fa-sort-desc{color:inherit}.table thead th.sortable .table-cell .table-text,.table thead th.filterable .table-cell .table-text{padding-right:1rem}.table thead th.filterable .table-cell .fa-filter{right:-8px}.table thead th.sortable.filterable .table-cell .fa-filter{right:calc(1.5rem - 8px)}.table thead th.sortable.filterable .table-cell .table-text{padding-right:2.5rem;overflow:hidden;text-overflow:ellipsis}.table tfoot{font-weight:bold;border-top:2px solid #dee2e6}.table td,.table th{min-width:0;text-overflow:ellipsis}.table .is-editform .table-cell{overflow:hidden}.table-sm thead th .table-cell>.fa{right:-4px;top:-4px;bottom:-4px}.table-sm thead th.filterable .table-cell .fa-filter{right:-4px}.table-sm thead th.sortable.filterable .table-cell .fa-filter{right:calc(1.5rem - 4px)}.is-clickable tbody tr,.is-clickable .table-row{cursor:pointer}.table-cell{display:flex;align-items:center;word-break:break-all}.table-cell.is-sort{cursor:pointer}.table-cell.is-sort .fa-sort{color:#ddd}.table-cell .btn-group .btn{white-space:nowrap}.table-hover tbody tr.is-detail:hover,.table-hover tbody tr.is-editform,.table-hover tbody tr.is-editform:hover{--bs-table-accent-bg:unset}.table tbody tr.is-master td:first-child{padding-left:0;padding-right:0}.table-toolbar:after{content:"";display:block;clear:both}.table-toolbar .table-toolbar-button{margin-bottom:.5rem}.table-toolbar .table-toolbar-button .table-toolbar-search{border-top-left-radius:4px;border-bottom-left-radius:4px}.table-toolbar .dropdown-menu .dropdown-item span{margin-left:.5rem}.table-toolbar .dropdown-item.hover,.table-toolbar .dropdown-item:hover{color:#fff;background-color:#007bff}.table-pagination.is-top{margin-bottom:.5rem}.table-pagination:not(.is-top){margin-top:.5rem}.btn-gear .dropdown-menu{min-width:initial;padding:0}.btn-gear .dropdown-menu .dropdown-item{padding:6px 12px;display:table-cell;color:#504d4d}.btn-gear .dropdown-menu .dropdown-item:not(:first-child){border-left:solid 1px #aeb2b7}.table-column-right{margin-left:.3125rem}.search-input-tooltip{font-size:.75rem}.search-input-tooltip kbd{display:inline-block;background:#17a2b8;padding:1px 6px}.table-fixed{height:100%}.table-fixed .table{table-layout:fixed}.table-fixed-header{overflow:hidden;border-top-left-radius:var(--bs-border-radius);border-top-right-radius:var(--bs-border-radius)}.table-fixed-body{overflow-x:auto !important;overflow-y:scroll !important}.table-scroll{overflow:auto}.table-scroll .table tbody td .table-cell:not(.is-wrap){white-space:nowrap}.table-cell.is-ellips{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.table-cell.is-ellips.is-resizable{position:absolute;left:12px;right:12px}.table-loading,.table-loader,.form-loader{display:flex;justify-content:center;align-items:center;border:1px solid #ddd;border-radius:var(--bs-border-radius);padding:2rem;flex:1}.table-loader,.form-loader{display:none;opacity:.8;position:absolute;left:0;right:0;top:0;bottom:0;background-color:#f8f9fa;z-index:4}.table-loader.show,.form-loader.show{display:flex}.table-modal-footer{padding-top:1rem;border-top:1px solid #dee2e6;text-align:right}.table tbody tr.active:not(.is-edit),.table-row.active{background-color:var(--bb-table-selected-bg)}.table-hover>tbody>tr.is-detail:hover,.table-hover>tbody>tr.is-edit.active,.table-excel>tbody>tr:hover{--bs-table-accent-bg:none}.table-row{padding:.75rem}.table-row:not(:last-child){border-bottom:1px solid #dee2e6}.table-row:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.table-row:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px}.table-row .table-cell:not(:last-child){padding-bottom:.5rem}.table-row .table-cell label:not(.form-checkbox){font-weight:bold;width:30%;min-width:30%;margin-bottom:0;color:#212529;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-right:6px}.table-row .table-cell>span{display:inherit}.table-row.table-footer{display:flex}.table-row.table-footer .table-cell{padding-bottom:0}.table-row.table-footer .table-cell:first-child{font-weight:bold;width:30%;margin-bottom:0;color:#212529;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.table-fixed-column .table{table-layout:fixed;border-collapse:separate;border-spacing:0}.table-fixed-column .table .fixed,.table-fixed-column .table .fixed-scroll{background-color:#fff}.table-fixed-column .table tr .fixed{position:sticky;z-index:2}.table-fixed-column .table th,.table-fixed-column .table td{border-left-width:0;border-top-width:0}.table-fixed-column .table .table-light .fixed,.table-fixed-column .table .table-light .fixed-scroll,.table-fixed-column .table .table-dark .fixed,.table-fixed-column .table .table-dark .fixed-scroll{background-color:var(--bs-table-bg)}.table-fixed-column .table .fixed{border-right:1px solid #409eff}.table-fixed-column .table .fixed-right{border-right:inherit;border-left:1px solid #409eff}.table-fixed-column .fixed-scroll{position:sticky;right:0;background-color:var(--bs-table-bg)}.table .is-bar{padding:0;justify-content:center}.table .is-bar .fa-caret-right{width:20px;height:20px;border-radius:50%;display:inline-flex;justify-content:center;align-items:center;cursor:pointer;transition:background-color .3s linear,transform .3s linear}.table .is-bar .fa-caret-right:hover{background-color:#ddd}.table .is-detail{display:none}.table .is-detail.show{display:table-row}.table .table-cell .table-container,.table .table-cell .tabs,.table .table-cell form{flex:1}.table .table-cell .tabs .tabs-body{padding:1rem 0 0 0}.table-resize thead th,.table-resize tbody td{position:relative}.table-resize thead th .col-resizer{width:.25rem;display:block;position:absolute;top:0;right:0;bottom:0;cursor:col-resize}.table-resize .border-resize{border-right:1px solid #409eff}.table .table-cell.is-tree{cursor:pointer}.table-cell.is-incell{margin:-7px -6px}.table-cell.is-incell .switch{padding-left:6px}.table-cell.is-incell .select{width:100%}.table-cell .is-node .is-tree{transition:transform .3s linear}.table-sm .table-cell.is-incell{margin:-.25rem}.table-sm .table-cell.is-incell .form-control{height:calc(1.5em + .75rem - 3px)}.table-sm .table-cell.is-incell .switch{height:30px;padding-left:4px}.table-bordered thead tr:last-child>th{border-bottom-width:2px !important;border-bottom-color:var(--bs-secondary)}.table-striped>tbody>tr.is-master:nth-of-type(odd){--bs-table-accent-bg:#fff}.table-striped>tbody>tr.is-master:nth-of-type(odd).active{--bs-table-accent-bg:var(--bb-table-selected-bg)}.table-striped>tbody>tr.is-master:nth-of-type(4n+1){--bs-table-accent-bg:var(--bs-table-striped-bg);color:var(--bs-table-striped-color)}.table-wrapper .empty-text{padding:1rem}form .table .table-cell>.form-label{display:none}form .table .table-cell>textarea{width:100%}.table-search{margin-bottom:.5rem}.table-search .card-header{padding:0}.table-search .card-header .table-search-title{padding:.5rem 1rem;flex:1;cursor:pointer}.table-search .card-header .table-search-buttons{padding:.25rem 1rem}.table-search .card-header .table-search-buttons .btn{padding:.275rem .5rem}.table-search-collapse{flex:1;display:flex;align-items:center;padding:0 1rem}.table-search-collapse .table-search-collapse-arrow{cursor:pointer;transition:.3s transform linear;transform:rotate(0)}.table-search-collapse.is-open .table-search-collapse-arrow{transform:rotate(90deg)}.table-search-collapse .table-search-collapse-title{cursor:pointer;margin-left:.5rem;flex:1}.table-search .collapsed .card-header{border-bottom-color:transparent}.table-search .card-header .input-group,.table-search .collapsed .input-group+.table-search-buttons{display:none}.table-search .card-header .input-group{width:auto;padding:2px}.table-search .card-header .input-group .table-toolbar-search,.table-search .card-header .input-group .btn{height:34px}.table-search .collapsed .input-group{display:flex}.table-excel-toolbar{display:none;position:absolute}.table-excel.table>:not(caption):not(thead)>*>*{padding:0}.table-excel tbody .table-cell>.form-check{padding:6px 8px}.table-excel tbody .table-cell .switch{padding:.375rem .1875rem;justify-content:center}.table-excel .form-control,.table-excel .table-cell .select .form-select{border:none;border-radius:0;padding:.375rem .1875rem}.table-excel .table-cell .select{width:100%}.table-excel .table-cell>.disabled{background-color:var(--bs-bg-disabled);width:100%;padding:.375rem .1875rem}.table-excel .datetime-picker-input{padding-left:2rem}.table-excel .datetime-picker-input-icon{line-height:32px}.table-excel.table tbody tr.active{background-color:transparent}.table-cell.text-center,.table-cell.text-center .switch{justify-content:center}.table-cell.text-center input{text-align:center}.table-cell.text-end,.table-cell.text-end .switch{justify-content:end}.table-cell.text-end input{text-align:right}.table-cell>.progress{flex:1}.table-cell.is-ph{height:12.5px;background-color:#e9ecef;border-radius:var(--bs-border-radius);margin:5px 0}.table-cell .is-dbcell{display:flex;cursor:pointer;position:relative}.table-cell .is-dbcell:hover:before{content:"";position:absolute;bottom:-3px;height:1px;width:100%;background-color:var(--bs-primary)}.table-cell .is-node{width:18px}.table-cell .tag{line-height:22px}.table-cell .is-color{width:28px;height:21px;border-radius:.25rem}.tag{display:inline-flex;padding:0 10px;line-height:30px;font-size:12px;border-radius:var(--bs-border-radius);white-space:nowrap;align-items:center}.tag>i+.tag-text{margin-left:4px}.tag>.btn-close{margin-left:8px;width:4px;height:4px}.timer .time-panel-footer{display:flex;justify-content:space-between}.timer .time-panel-btn{border:1px solid transparent;border-radius:var(--bs-border-radius);transition:border .3s linear;padding:0 .65rem}.timer .time-panel-btn:hover{border-color:#ddd}.timer .time-panel-btn.confirm{color:#28a745}.timer .circle-title{flex-flow:column nowrap;bottom:66px}.timer .timer-body{font-size:3.5rem}.timer .timer-alert{font-size:1rem}.timer .timer-alert i{margin-right:.5rem}.timer .timer-buttons{display:flex;justify-content:space-between}.timer .timer-buttons .btn{border:5px double #949496;border-radius:50%;height:66px;width:66px;font-size:.75rem !important;padding:0}.toast-container{position:fixed;z-index:1090}.toast{overflow:hidden;width:246px;cursor:pointer;display:none;transition:transform .3s linear,opacity .3s linear;transform:translateX(100%);background-color:#fff}.toast.show{transform:translateX(0)}.toast.left{transform:translateX(-100%)}.toast.left.show{transform:translateX(0)}.toast:hover{box-shadow:0 1px .75rem rgba(0,0,0,.15)}.toast .toast-progress{position:absolute;right:0;bottom:0;height:4px;width:0}.toast.left .toast-progress{left:0;right:unset}.toast .btn-close{height:4px;width:4px;margin:0}@media(min-width:375px){.toast{min-width:300px}}@media(min-width:576px){.toast{min-width:320px}}.btn-toggle{position:relative;overflow:hidden;border:1px solid #c0c4cc;min-width:70px;min-height:35px}.btn-toggle.off .toggle-group{left:-100%}.btn-toggle .btn-default,.btn-toggle.btn-default{background-color:#e0e0e0;border-color:#ccc;box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075)}.btn-toggle .btn-default:hover{color:#333;background-color:#d4d4d4}.btn-toggle .toggle-group{position:absolute;width:200%;top:0;bottom:0;left:0;-webkit-transition:left .35s;-moz-user-select:none;-webkit-user-select:none;transition:left .35s}.btn-toggle .toggle-group label{display:flex;align-items:center;justify-content:center}.btn-toggle .toggle-group label,.btn-toggle .toggle-group span{cursor:pointer}.btn-toggle .toggle-group .toggle-on.bg-dark{color:#e4e7ed}.btn-toggle .btn-handle{position:relative;margin:0 auto;padding-top:0;padding-bottom:0;height:100%;width:0;border-width:0 1px;background-image:linear-gradient(to bottom,#fff 0%,#e0e0e0 100%);border-color:#ccc;box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075)}.btn-toggle .toggle-on{position:absolute;top:0;bottom:0;left:0;right:50%;margin:0;border:0;border-radius:0}.btn-toggle .toggle-on.btn{padding-right:24px}.btn-toggle .toggle-on.btn-lg{padding-right:31px}.btn-toggle.off .toggle-off{color:#333}.btn-toggle .toggle-off{position:absolute;top:0;bottom:0;left:50%;right:0;margin:0;border:0;border-radius:0;background-color:#e0e0e0}.btn-toggle .toggle-off.btn{padding-left:24px}.btn-toggle .toggle-off.btn-lg{padding-left:31px}.btn-toggle.btn-lg{min-width:79px;min-height:45px}.toggle-handle.btn-lg{width:40px}.btn-toggle.btn-sm{min-width:50px;min-height:30px}.toggle-on.btn-sm{padding-right:20px}.toggle-off.btn-sm{padding-left:20px}.btn-toggle.btn-xs{min-width:35px;min-height:22px}.toggle-on.btn-xs{padding-right:12px}.toggle-off.btn-xs{padding-left:12px}.tooltip-inner{max-width:768px}.is-invalid .tooltip-inner{background-color:#dc3545}.is-invalid.bs-tooltip-auto[x-placement^=top] .tooltip-arrow::before,.is-invalid.bs-tooltip-top .tooltip-arrow::before{border-top-color:#dc3545}.is-invalid.bs-tooltip-auto[x-placement^=bottom] .tooltip-arrow::before,.is-invalid.bs-tooltip-bottom .tooltip-arrow::before{border-bottom-color:#dc3545}.is-invalid.bs-tooltip-auto[x-placement^=left] .tooltip-arrow::before,.is-invalid.bs-tooltip-left .tooltip-arrow::before{border-left-color:#dc3545}.is-invalid.bs-tooltip-auto[x-placement^=right] .tooltip-arrow::before,.is-invalid.bs-tooltip-right .tooltip-arrow::before{border-right-color:#dc3545}.transfer{font-size:14px}.transfer-panel{border:1px solid var(--bs-border-color);border-radius:var(--bs-border-radius);overflow:hidden;background:#fff;display:inline-block;vertical-align:middle;width:200px;max-height:100%;box-sizing:border-box;position:relative}.transfer-panel.is-invalid{border:1px solid #dc3545}.transfer-panel.is-valid{border:1px solid #28a745}.transfer-panel .transfer-panel-header{height:40px;line-height:40px;background:#f5f7fa;margin:0;padding-left:15px;border-bottom:1px solid var(--bs-border-color);color:#000}.transfer-panel-body{height:246px}.transfer-panel-list{margin:0;padding:6px 0;list-style:none;height:246px}.transfer-panel-list.search{height:214px}.transfer-panel-item{height:30px;line-height:30px;padding-left:15px;display:block}.transfer-panel-item .form-check-input{margin:7px 0}.transfer-buttons{display:inline-block;vertical-align:middle;padding:0 30px}.transfer-buttons .btn{white-space:nowrap}.transfer-buttons .btn:not(:first-child){margin-left:10px}.transfer-buttons .disabled,.transfer-buttons .disabled:active,.transfer-buttons .disabled:focus,.transfer-buttons .disabled:hover,.transfer-buttons [disabled]{color:#fff;background-color:#a0cfff;border-color:#a0cfff}.transfer-panel-filter{text-align:center;margin:.5rem 1rem 0 1rem;display:block;width:auto;position:relative}.transfer-panel-filter .input-inner{height:32px;line-height:32px;width:100%;display:inline-block;border-radius:var(--bs-border-radius);padding-right:10px;padding-left:30px;border:1px solid #dcdfe6;transition:border-color .2s cubic-bezier(.645,.045,.355,1);color:#606266}.transfer-panel-filter .input-inner:focus{outline:none;border-color:#409eff}.transfer-panel-filter .input-prefix{height:100%;width:30px;transition:all .3s;position:absolute;left:4px;top:0;display:flex;align-items:center;justify-content:center;color:#c0c4cc}.transfer-panel-filter .input-prefix:not(.disabled):hover i:before,.transfer-panel-filter .input-prefix.is-on i:before{cursor:pointer;content:""}.transfer-panel-filter .input-prefix.disabled:hover i:before{cursor:not-allowed}.transfer-panel-header .form-check .form-check-input{margin:12px 0}.transfer-panel-body .form-check-label{max-width:160px}.tree{position:relative}.tree .tree-root{padding:0;margin:0}.tree .tree-ul{padding:0 0 0 20px;margin:0;display:none}.tree .tree-ul.show{display:block}.tree .tree-item{list-style:none;cursor:pointer;margin:1px 0}.tree .tree-item:before{content:"";position:absolute;left:0;width:100%;height:29px;transition:background-color .3s linear}.tree .tree-item.hover:before{background-color:#66a2e0a1}.tree .tree-item.active:before{background-color:#409effa1}.tree .tree-item .tree-content{position:relative;display:flex;padding:.25rem 0;align-items:center}.tree .tree-item .tree-content .fa-caret-right{width:18px;height:18px;transition:transform .3s linear;display:flex;align-items:center;justify-content:center}.tree .tree-item .tree-content .show .fa-caret-right{transform:rotate(90deg)}.tree .tree-node{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center}.tree .form-check{margin:0 4px}.tree-icon{width:18px}.upload .upload-body{margin-top:10px}.upload .upload-body.is-list{overflow:auto;max-height:240px}.upload .upload-body.is-list .upload-item{display:flex;align-items:center;padding:3px 5px;border-radius:var(--bs-border-radius);transition:background-color .3s linear;cursor:pointer;position:relative}.upload .upload-body.is-list .upload-item.is-invalid{color:#dc3545}.upload .upload-body.is-list .upload-item:hover{background-color:var(--bs-bg-disabled)}.upload .upload-body.is-list .upload-item:not(:last-child){margin-bottom:2px}.upload .upload-body.is-list .upload-item:hover .fa-trash-o{display:inline-block}.upload .upload-body.is-list .upload-item .fn{flex:1;padding:0 5px;display:flex;overflow:hidden}.upload .upload-body.is-list .upload-item .fn span:first-child{max-width:calc(100% - 4rem);overflow:hidden;text-overflow:ellipsis;display:block;white-space:nowrap;padding-right:.25rem}.upload .upload-body.is-list .upload-item .fa-trash-o,.upload .upload-body.is-list .upload-item:not(.disabled):hover .fa-check-circle-o,.upload .upload-body.is-list .upload-item:hover .fa-times-circle-o,.upload .upload-body.is-avatar .upload-item .upload-item-delete,.upload .upload-body.is-avatar .upload-item.is-invalid .upload-item-spin,.upload .upload-body.is-avatar .upload-item.is-valid .upload-item-spin,.upload .upload-item.is-invalid .fa-check,.upload .upload-item.is-valid .fa-times,.upload .upload-body.is-avatar .upload-item.disabled .upload-item-plus{display:none}.upload .upload-body.is-avatar,.upload .upload-body.is-card{margin:0;display:flex;flex-wrap:wrap}.upload .upload-body.is-avatar .upload-item{padding:0;position:relative;border:1px dashed #d9d9d9;border-radius:6px;margin-right:1rem;margin-bottom:1rem;overflow:hidden;cursor:pointer}.upload .upload-body.is-avatar .upload-item.is-invalid{border-color:#dc3545;border-style:solid}.upload .upload-body.is-avatar .upload-item.is-circle{border-radius:50%}.upload .upload-body.is-avatar .upload-item:not(.is-form):hover,.upload .upload-body.is-avatar .upload-item:not(.is-form).is-valid,.upload .upload-body.is-card .upload-item.is-valid,.upload .upload-body.is-card .upload-item:not(.disabled):hover{border-color:#409eff}.upload .upload-body.is-avatar .upload-item.is-valid{border-style:solid}.upload .upload-body.is-avatar .upload-item.is-invalid .avatar{color:#dc3545}.upload .upload-body.is-avatar .upload-item .avatar{width:100%;height:100%;background-color:#fff}.upload .upload-body.is-avatar .upload-item .upload-item-actions,.upload .upload-body.is-card .upload-item .upload-item-actions.btn-browser{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center}.upload .upload-body.is-avatar .upload-item .upload-item-actions .fa{font-size:1rem}.upload .upload-body.is-avatar .upload-item:hover .upload-item-actions .upload-item-delete{display:block}.upload .upload-body.is-card .upload-item{padding:1rem;box-shadow:0 0 10px 0 rgba(0,0,0,.2);border:1px solid #d9d9d9;border-radius:6px;width:240px;height:280px;position:relative;cursor:pointer;margin-right:1rem;margin-bottom:1rem;overflow:hidden}.upload .upload-body.is-card .upload-item .upload-item-actions{display:flex;justify-content:space-between}.upload .upload-body.is-card .upload-item.is-valid .upload-item-body img,.upload .upload-body .upload-item.is-valid .upload-item-label,.upload .upload-body .upload-item.is-invalid .upload-item-label{display:block}.upload .upload-body.is-card .is-invalid .upload-item-body{border-color:#dc3545}.upload .upload-body.is-card .upload-item-body{border-radius:var(--bs-border-radius);width:168px;height:168px;border:1px solid #d9d9d9;margin:0 auto;display:flex;align-items:center;justify-content:center;overflow:hidden}.upload .upload-body.is-card .upload-item-body img{width:100%;object-fit:cover;display:none}.upload .upload-body.is-card .upload-item-body .fa{font-size:1.5rem}.upload .upload-body.is-card .upload-item-size{margin:1rem auto;text-align:center;font-size:.625rem;display:flex;justify-content:center}.upload .upload-body.is-card .upload-item-size span{max-width:calc(100% - 4.5rem);overflow:hidden;text-overflow:ellipsis;display:block;white-space:nowrap;padding-right:.25rem}.upload .upload-item .upload-item-label{position:absolute;top:-2px;right:-14px;text-align:center;transform:rotate(45deg);color:#fff;width:46px;height:20px;background-color:#28a745;display:none}.upload .upload-item .upload-item-label .fa-check{transform:rotate(-45deg);font-size:12px}.upload .upload-item.is-invalid .upload-item-label{background-color:#dc3545}.upload .progress{position:absolute;left:0;right:0;bottom:0}.upload .upload-body.is-card .progress{left:1rem;right:1rem;bottom:56px}.upload .upload-item.is-valid .progress,.upload .upload-item.is-invalid .progress{display:none}.upload .upload-body.is-card.is-single .upload-item{margin:0} \ No newline at end of file +:root{--bs-border-radius:.25rem;--bs-bg-disabled:#ebeef5;--bs-border-color:#ebeef5}#components-reconnect-modal{z-index:2000 !important}:fullscreen{background-color:#fff}body,.form-control,.dropdown-menu,.form-select,.btn:not(.btn-xs):not(.btn-sm):not(.btn-md):not(.btn-lg):not(.btn-xl),.input-group-text{font-size:.875rem}.btn-close:focus{box-shadow:none}:focus,button:focus{outline:none}a{cursor:pointer}a,a:hover,a:focus{text-decoration:none;outline:none}.form-control.is-invalid,.was-validated .form-control:invalid,.form-control.is-valid,.was-validated .form-control:valid,.form-control.valid.modified:not([type=checkbox]){outline:none}.form-control.is-display{height:35px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.table-cell .form-control.is-display,form .form-control.is-display{background-color:var(--bs-bg-disabled)}[disabled],:disabled,.disabled,.disabled>*{cursor:not-allowed !important}.form-control:focus{border-color:#66afe9;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.control-label{margin-right:10px;width:90px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;display:block}.was-validated .form-control:invalid:focus,.form-control.is-invalid:focus,.was-validated .custom-select:invalid:focus,.custom-select.is-invalid:focus{border-color:#dc3545;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(220,53,69,.6)}.was-validated .form-control:valid:focus,.form-control.is-valid:focus,.was-validated .custom-select:valid:focus,.custom-select.is-valid:focus{border-color:#28a745;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(40,167,69,.6)}.arrow-primary{border-color:transparent transparent #0d6efd}.arrow-success{border-color:transparent transparent #198754}.arrow-info{border-color:transparent transparent #0dcaf0}.arrow-warning{border-color:transparent transparent #ffc107}.arrow-danger{border-color:transparent transparent #dc3545}.show .shadow-primary,.shadow-primary:hover,.shadow-primary:focus{box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(0,123,255,.5);border-color:#0d6efd !important}.show .shadow-success,.shadow-success:hover,.shadow-success:focus{box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(40,167,69,.5);border-color:#198754 !important}.show .shadow-info,.shadow-info:hover,.shadow-info:focus{box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(23,162,184,.5);border-color:#0dcaf0 !important}.show .shadow-warning,.shadow-warning:hover,.shadow-warning:focus{box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(255,193,7,.5);border-color:#ffc107 !important}.show .shadow-danger,.shadow-danger:hover,.shadow-danger:focus{box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(220,53,69,.5);border:1px solid #dc3545 !important}.show .shadow-secondary,.shadow-secondary:hover,.shadow-secondary:focus{box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px #c0c4cc;border:1px solid #6c757d !important}.show .shadow-dark,.shadow-dark:hover,.shadow-dark:focus{box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px #c0c4cc;border:1px solid #343a40 !important}.show .shadow-default,.shadow-default:hover,.shadow-default:focus{box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);border:1px solid #337ab7}.swal{position:fixed;z-index:1070}.swal .modal-header{display:none}.swal2-icon,.swal2-actions{display:flex}.swal2-actions{margin-bottom:1rem}.close{display:flex}.captcha{border-radius:4px;box-shadow:0 0 10px rgba(0,0,0,.125)}.captcha-refresh{float:right;cursor:pointer;padding-left:.5rem}.captcha-body{position:relative}.captcha-body .captcha-load{display:flex;align-items:center;justify-content:center}.captcha-body .captcha-body-bg,.captcha-body .captcha-body-bar{position:absolute;border-radius:2px;top:0;left:0}.captcha-footer{text-align:center;background:#f7f9fa;color:#45494c;border-radius:2px;margin-top:.5rem;position:relative}.captcha-footer,.captcha-bar-bg{line-height:40px;height:40px}.captcha-bar-bg{position:absolute;border-radius:4px}.captcha-bar{position:absolute;top:0;left:0;width:40px;height:40px;background:#fff;box-shadow:0 0 3px rgba(0,0,0,.3);cursor:pointer;border-radius:2px;display:flex;align-items:center;justify-content:center}.captcha-footer.is-move .captcha-bar-text{display:none}.captcha-footer.is-move .captcha-bar-bg{border:1px solid #1991fa;background-color:#d1e9fe}.captcha-footer.is-valid .captcha-bar .fa-arrow-right:before{content:""}.captcha-footer.is-invalid .captcha-bar{border:1px solid #f57a7a;background-color:#f57a7a}.captcha-footer.is-invalid .captcha-bar-bg{border:1px solid #f57a7a;background-color:#fce1e1;border-width:1px 0 1px 1px}.captcha-footer.is-invalid .captcha-bar .fa-arrow-right:before{content:""}.captcha-footer.is-valid .captcha-bar{border:1px solid #52ccba;background-color:#52ccba}.captcha-footer.is-valid .captcha-bar-bg{border:1px solid #52ccba;border-width:1px 0 1px 1px;background-color:#d2f4ef}.captcha-footer.is-valid .captcha-bar .fa-arrow-right:before{content:""}.avatar{border-radius:4px;width:50px;height:50px;overflow:hidden;display:inline-flex;justify-content:center;align-items:center;background:#c0c4cc;color:#fff}.avatar img{width:100%;object-fit:cover}.avatar.is-circle{border-radius:50%}.avatar.is-xl{width:70px;height:70px}.avatar.is-lg{width:60px;height:60px}.avatar.is-sm{width:40px;height:40px}.avatar.is-xs{width:30px;height:30px}.avatar i{font-size:1.4rem}.timeline{margin:0;padding:0;list-style:none}.timeline .time-line-item{position:relative;padding-bottom:1rem}.timeline .time-line-item:last-child{padding-bottom:0}.timeline .time-line-item .time-line-item-tail{position:absolute;left:4px;height:100%;border-left:2px solid #e4e7ed}.timeline .time-line-item:last-child .time-line-item-tail{display:none}.timeline .timeline-item-node-normal{left:-1px;width:12px;height:12px}.timeline .timeline-item-node{position:absolute;background-color:#e4e7ed;border-radius:50%;display:flex;justify-content:center;align-items:center}.timeline .timeline-item-node.is-icon{background-color:transparent}.timeline .timeline-item-wrapper{position:relative;padding-left:1.5rem;top:-4px}.timeline .timeline-item-content{color:#303133}.timeline .timeline-item-timestamp{margin-top:.5rem;color:#909399}.timeline.is-alternate .time-line-item-tail,.timeline.is-alternate .timeline-item-node{left:50%}.timeline.is-alternate .timeline-item-node{margin-left:-5px}.timeline.is-alternate .time-line-item:nth-child(odd) .timeline-item-wrapper{left:calc(50% - 5px);width:calc(50% - 1rem);text-align:left}.timeline.is-alternate .time-line-item:nth-child(even) .timeline-item-wrapper{width:calc(50% - 1rem);margin:0;text-align:right}.timeline.is-left .time-line-item-tail,.timeline.is-left .timeline-item-node{left:100%}.timeline.is-left .timeline-item-node{margin-left:-5px}.timeline.is-left .time-line-item .timeline-item-wrapper{width:calc(100% - 1rem);margin:0;text-align:right}.footer{background:#5b6e84;color:#fff;padding:10px 4px;height:40px;display:flex}.footer .footer-text{flex:1 1 auto;text-align:center}.circle{display:inline-block;position:relative}.circle-progress{transition:stroke-dashoffset .3s linear}.circle-primary{stroke:#1593ff}.circle-danger{stroke:#dc3545}.circle-success{stroke:#28a745}.circle-warning{stroke:#ffc107}.circle-info{stroke:#17a2b8}.circle-secondary{stroke:#6c757d}.circle-dark{stroke:#343a40}.circle-title{display:flex;justify-content:center;align-items:center;position:absolute;top:0;bottom:0;left:0;right:0}.input-number-fix::-webkit-outer-spin-button,.input-number-fix::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;-moz-appearance:textfield}.ef-loading{display:flex;justify-content:center;align-items:center;border:1px solid #ddd;border-radius:4px;padding:2rem}form .form-label:before{content:"";position:relative;top:2px;margin-right:2px;display:inline-block;min-width:5px}form .form-label[required]:before{content:"*";color:#f00}.form-control.is-valid[type="number"],.form-control.is-invalid[type="number"]{padding-right:.75rem;background-image:none}.transfer-panel-empty{position:absolute;top:35%;width:100%}.pulse{position:relative}.pulse.pulse-white .pulse-ring{border-color:#fff}.pulse.pulse-light .pulse-ring{border-color:#f5f8fa}.pulse.pulse-primary .pulse-ring{border-color:#009ef7}.pulse.pulse-secondary .pulse-ring{border-color:#e4e6ef}.pulse.pulse-success .pulse-ring{border-color:#50cd89}.pulse.pulse-info .pulse-ring{border-color:#7239ea}.pulse.pulse-warning .pulse-ring{border-color:#ffc700}.pulse.pulse-danger .pulse-ring{border-color:#f1416c}.pulse.pulse-dark .pulse-ring{border-color:#181c32}.pulse-ring{display:block;border-radius:40px;height:40px;width:40px;position:absolute;animation:animation-pulse 3.5s ease-out;animation-iteration-count:infinite;opacity:0;border-width:3px;border-style:solid;border-color:#a1a5b7}@keyframes animation-pulse{0%{-webkit-transform:scale(.1,.1);opacity:0}60%{-webkit-transform:scale(.1,.1);opacity:0}65%{opacity:1}100%{-webkit-transform:scale(1.2,1.2);opacity:0}}.fs-on,.fs-open .fs{display:none}.fs-open .fs-on{display:block}.arrow-danger{border-color:transparent transparent var(--bs-danger)}.arrow-success{border-color:transparent transparent var(--bs-success)}.arrow-primary{border-color:transparent transparent var(--bs-primary)}.arrow-warning{border-color:transparent transparent var(--bs-warning)}.arrow-info{border-color:transparent transparent var(--bs-info)}.alert i{margin-right:.5rem}.alert .btn-close{position:absolute;top:22px;right:1rem;height:4px;width:4px}.alert.is-close .alert-content{margin-right:1rem}.alert.is-bar.alert-info{border-left:4px solid var(--bs-info);background-color:#ecf8ff}.alert.is-bar.alert-success{border-left:4px solid var(--bs-success);background-color:#c3e6cb}.alert.is-bar.alert-primary{border-left:4px solid var(--bs-primary);background-color:#daeafc}.alert.is-bar.alert-warning{border-left:4px solid var(--bs-warning);background-color:#fffcf2}.alert.is-bar.alert-danger{border-left:4px solid var(--bs-danger);background-color:#faeaec}.anchor-link{cursor:pointer;display:inline-block}.anchor-link>i{opacity:0;margin-left:.5rem;color:var(--bs-primary);transition:opacity .3s linear}.anchor-link:hover>i{opacity:1}.auto-complete{position:relative}.auto-complete input{padding-right:30px}.auto-complete .select-dropdown{position:absolute;top:40px;left:0;right:0;display:none;z-index:2}.auto-complete .select-dropdown .dropdown-list{max-height:300px;overflow:auto;padding:6px 0;list-style:none;margin:0;background-color:#fff;box-shadow:0 2px 8px rgba(0,0,0,.176);border:1px solid rgba(0,0,0,.15);border-radius:var(--bs-border-radius)}.auto-complete .select-dropdown .dropdown-list .dropdown-item{padding:6px 20px}.auto-complete.is-complete .select-dropdown{display:block}.auto-complete .fa-spin{position:absolute;top:10.5px;right:8px;display:none}.auto-complete.is-loading .fa-spin{display:inline-block}.search .auto-complete .fa-spin{position:unset;display:inline-block}.scanner .scanner-video video{width:300px;height:170px;border:1px solid #ddd;border-radius:var(--bs-border-radius)}.scanner .scanner-image{display:none}.btn:focus,.btn:active:focus,.show>.dropdown-toggle:focus{box-shadow:none !important}.btn-xs,.btn-group-xs>.btn{border-radius:.2rem;padding:.0625rem .3125rem;font-size:.75rem}.btn-xl,.btn-group-xl>.btn{padding:.8rem 1.25rem;font-size:1.35rem;border-radius:.4rem}.btn .badge,.btn i+span,.badge i+span{margin-left:4px}.btn.is-circle{border-radius:50%;width:45px;height:45px}.btn.is-round{border-radius:20px}.btn-block{width:100%}.calendar-header{display:flex;justify-content:space-between;padding:12px 20px;border-bottom:1px solid var(--bs-border-color)}.calendar-title{color:#000;align-self:center;font-size:1rem}.calendar-button-group .btn{line-height:1;white-space:nowrap;cursor:pointer;background:#fff;border:1px solid #dcdfe6;color:#606266;outline:none;margin:0;transition:.3s;padding:7px 15px;font-size:12px}.calendar-button-group .btn:focus,.calendar-button-group .btn:hover{color:#409eff;border-color:#c6e2ff;background-color:#ecf5ff}.calendar-button-group .btn:active{color:#3a8ee6;border-color:#3a8ee6;outline:none}.calendar-table{table-layout:fixed;width:100%}.calendar-table thead th{padding:12px 0;color:#606266;font-weight:400;text-align:center}.calendar-table:not(.is-range) td.next,.calendar-table:not(.is-range) td.prev{color:#c0c4cc}.calendar-table tr td:first-child{border-left:1px solid var(--bs-border-color)}.calendar-table tr:first-child td{border-top:1px solid var(--bs-border-color)}.calendar-table td{border-bottom:1px solid var(--bs-border-color);border-right:1px solid var(--bs-border-color);vertical-align:top;transition:background-color .2s ease;cursor:pointer}.calendar-table td.is-today{color:#409eff}.calendar-table td.is-selected{color:#1989fa}.calendar-table td.is-selected{background-color:#f2f8fe}.calendar-table .calendar-day{box-sizing:border-box;padding:8px;height:85px}.calendar-table .calendar-day:hover{cursor:pointer;background-color:#f2f8fe}.calendar-table:not(.is-range) td.next,.calendar-table:not(.is-range) td.prev{color:#c0c4cc}.calendar .table-week .week-header{border-radius:50%;border:1px solid transparent;padding:4px;display:inline-block;min-width:52px}.calendar .table-week .week-header.is-today{border:1px solid #409eff;color:#409eff}.calendar .table-week thead tr:last-child{border-bottom:2px solid #dee2e6}.calendar .table-week tbody tr{text-align:center}.calendar .table-week tbody td{padding:1rem 0;border-right:0;border-left:0;position:relative}.camera .camera-header{width:300px;height:170px;border:1px solid #ddd;border-radius:var(--bs-border-radius)}.camera canvas{display:none}.card .card-collapse{flex:1;display:flex;align-items:center;cursor:pointer}.card .card-title{margin:0 0 0 1rem}.card .card-collapse-arrow{transition:transform .3s linear}.card .is-open .card-collapse-arrow{transform:rotate(90deg)}.card-shadow{transition:box-shadow .3s linear;box-shadow:0 0 8px 0 #e8edfa99,0 2px 4px 0 #e8edfa80}.card-shadow:hover{box-shadow:0 1px 7px 0 #0000000d,0 2px 8px 0 #00000012,0 3px 9px 0 #0000000f,0 5px 10px 0 #00000008}.card-header .tag{line-height:21px}.carousel{overflow:hidden}.carousel [data-bs-slide]{outline:none;padding:0;margin:0 .5rem;height:36px;width:36px;cursor:pointer;transition:.3s;border-radius:50%;background-color:rgba(31,45,61,.5);border:solid 1px #e9ecef;color:#fff;top:50%;transform:translateY(-50%);text-align:center;font-size:1rem}.carousel:not(.hover) .carousel-control-prev{opacity:0;left:-10px}.carousel:not(.hover) .carousel-control-next{opacity:0;right:-10px}.carousel:not(.hover) .carousel-indicators{opacity:0;bottom:-10px}.carousel .carousel-indicators{opacity:1;transition:all .2s linear}.carousel .carousel-item img{display:block}.carousel-indicators [data-bs-target]{background-color:#606266}.carousel-item img{width:100%}.form-check{padding:0;margin:0;min-height:1rem}.form-check .form-check-input{width:1rem;height:1rem;float:none;margin:3px 0 1px 0;transition:background-color .15s ease-in-out,background-position .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}.form-check .form-check-input+.form-check-label{padding:0 .5rem;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;vertical-align:top}.form-label+.form-check{padding:7px 0}.form-check-input:active{filter:none}@media(prefers-reduced-motion:reduce){.form-check-input{transition:none}}.form-check-input:focus{border-color:#b5b5c3;box-shadow:none}.form-check-input:checked{background-color:#009ef7;border-color:#009ef7}.form-check-input:checked[type=checkbox]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 13 11' width='13' height='11' fill='none'%3e%3cpath d='M11.0426 1.02893C11.3258 0.695792 11.8254 0.655283 12.1585 0.938451C12.4917 1.22162 12.5322 1.72124 12.249 2.05437L5.51985 9.97104C5.23224 10.3094 4.72261 10.3451 4.3907 10.05L0.828197 6.88335C0.50141 6.59288 0.471975 6.09249 0.762452 5.7657C1.05293 5.43891 1.55332 5.40948 1.88011 5.69995L4.83765 8.32889L11.0426 1.02893Z' fill='%23FFFFFF'/%3e%3c/svg%3e")}.form-check-input:checked[type=radio]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23FFFFFF'/%3e%3c/svg%3e")}.form-check-input[type=checkbox]:indeterminate{background-color:#009ef7;border-color:#009ef7;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23FFFFFF' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e")}.form-check-input:disabled{pointer-events:none;filter:none;opacity:.5}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{opacity:.5}.form-check .form-check-label,.form-check .form-check-input{cursor:pointer}.form-check .form-check-input[type=checkbox]{background-size:60% 60%}.form-check.form-check-success .form-check-input:checked{background-color:var(--bs-success)}.form-check.form-check-danger .form-check-input:checked{background-color:var(--bs-danger)}.form-check.form-check-warning .form-check-input:checked{background-color:var(--bs-warning)}.form-check.form-check-info .form-check-input:checked{background-color:var(--bs-info)}.form-check.form-check-primary .form-check-input:checked{background-color:var(--bs-primary)}.form-check.form-check-secondary .form-check-input:checked{background-color:var(--bs-secondary)}.form-check.form-check-dark .form-check-input:checked{background-color:var(--bs-dark)}.form-check.form-check-sm .form-check-input{height:1.25rem;width:1.25rem;margin:0}.form-check.form-check-md{padding:4px 0 3px 0}.form-check.form-check-md .form-check-input{height:1.5rem;width:1.5rem}.form-check.form-check-lg{padding:2px 0 1px 0}.form-check.form-check-lg .form-check-input{height:1.75rem;width:1.75rem}.checkbox-list{min-height:35px;height:auto;display:flex;flex-flow:row wrap;padding-bottom:0;overflow:hidden;vertical-align:top}.checkbox-list.is-vertical{flex-direction:column}.checkbox-list .checkbox-item{display:inline-flex;width:120px;margin-bottom:.375rem}.checkbox-list .checkbox-item .form-check-label{max-width:104px}.checkbox-list.form-control.no-border{border-color:transparent}.checkbox-list.form-control:not(.is-invalid):focus{box-shadow:none}.checkbox-item .form-check-sm .form-check-input{margin:3px 0 2px 0}.accordion-button:not(.collapsed){box-shadow:inset 0 -1px 0 #00000020}.accordion .accordion-button-primary{color:#fff;background-color:var(--bs-primary);border-color:#0d6efd}.accordion .accordion-button-secondary{color:#fff;background-color:var(--bs-secondary);border-color:#6c757d}.accordion .accordion-button-success{color:#fff;background-color:var(--bs-success);border-color:#198754}.accordion .accordion-button-info{color:#fff;background-color:var(--bs-info);border-color:#0dcaf0}.accordion .accordion-button-warning{color:#fff;background-color:var(--bs-warning);border-color:#ffc107}.accordion .accordion-button-danger{color:#fff;background-color:var(--bs-danger);border-color:#dc3545}.accordion .accordion-button-light{background-color:var(--bs-light);border-color:#f8f9fa}.accordion .accordion-button-dark{color:#fff;background-color:var(--bs-dark);border-color:#212529}.accordion .accordion-button:after{width:.75rem;height:.75rem;background-size:.75rem}.accordion .accordion-button-primary:after,.accordion .accordion-button-secondary:after,.accordion .accordion-button-success:after,.accordion .accordion-button-danger:after .accordion .accordion-button-dark:after{color:#fff}.accordion .accordion-button-light:after,.accordion .accordion-button-warning:after,.accordion .accordion-button-info:after{color:#000}.accordion .accordion-button{border-radius:0}.color-picker .form-control-color{max-width:3rem}.console-body{padding:1rem;background-color:#174482;color:#fff;overflow:auto}.popover-datetime{max-width:unset}.popover-datetime .popover-body{padding:0}.popover-datetime .date-picker{border:none}.datetime-picker-bar{position:relative;color:#adb5bd}.datetime-picker-input{cursor:pointer;padding-left:2rem}.datetime-picker-input[readonly]:not([disabled]){background-color:#fff}.datetime-picker-input-icon{position:absolute;left:0;top:0;line-height:35px;cursor:pointer;padding:0 .75rem}.picker-panel-body-wrapper{display:flex}.picker-panel-sidebar{width:110px;border-right:1px solid #e4e4e4;padding:6px 0;overflow:auto}.picker-panel-sidebar .sidebar-item{line-height:28px;padding:0 12px;cursor:pointer;transition:color .3s linear}.date-picker-time-header{position:relative;border-bottom:1px solid #e4e4e4;font-size:12px;padding:8px 5px 5px;display:table;width:100%}.date-picker-time-header .date-picker-editor-wrap{position:relative;display:table-cell;padding:0 5px}.date-picker-time-header .date-picker-editor-wrap .input-inner{height:2rem;line-height:2rem;padding:0 1rem;cursor:pointer}.date-picker-time-header .date-picker-editor-wrap .input-inner[readonly]{background-color:#fff}.date-picker-editor-wrap .time-panel{position:absolute;z-index:-1;display:none;width:145px;margin-top:.25rem}.date-picker-editor-wrap .time-panel .time-spinner-item{height:28px;line-height:28px}.date-picker-editor-wrap .time-panel-content:after,.date-picker-editor-wrap .time-panel-content:before{margin-top:-32px;height:28px}.date-picker-editor-wrap .time-spinner-arrow.fa-angle-up{top:3px}.date-picker-editor-wrap .time-spinner-arrow.fa-angle-down{bottom:3px}.date-picker-editor-wrap .time-spinner-list-wrapper{height:84px;margin:36px 0}.is-open .date-picker-editor-wrap .time-panel{z-index:10;display:block}.picker-panel{color:#606266;border:1px solid #ced4da;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);background:#fff;border-radius:var(--bs-border-radius);line-height:30px}.picker-panel-body-wrapper:after,.picker-panel-body:after{content:"";display:table;clear:both}.picker-panel-body{width:320px}.date-picker-header{margin:12px;display:flex;align-items:center}.date-picker .picker-panel-content{width:292px}.picker-panel-content{position:relative;margin:15px}.picker-panel-content table{table-layout:fixed;width:100%;font-size:12px;user-select:none}.picker-panel-content table td{text-align:center}.picker-panel-content table td .cell{display:block;margin:0 auto;cursor:pointer}.picker-panel-content table td.today .cell{color:#409eff;font-weight:700}.picker-panel-content table td.current:not(.disabled) .cell,.picker-panel-content table td.start:not(.next-month):not(.prev-month):not(.disabled) .cell,.picker-panel-content table td.end:not(.next-month):not(.prev-month):not(.disabled) .cell{color:#fff;background-color:#409eff}.picker-panel-content table td.range div{background-color:#f2f6fc}.picker-panel-content table td.range.start div{margin-left:5px;border-top-left-radius:15px;border-bottom-left-radius:15px}.picker-panel-content table td.range.start div .cell{margin-left:4px}.picker-panel-content table td.range.end div{margin-right:5px;border-top-right-radius:15px;border-bottom-right-radius:15px}.picker-panel-content table td.range.end div .cell{margin-right:4px}.picker-panel-content table td.disabled .cell{cursor:not-allowed;color:#c0c4cc}.date-table th{padding:5px;font-weight:400;border-bottom:1px solid var(--bs-border-color);text-align:center}.date-table td.next-month,.date-table td.prev-month{color:#c0c4cc}.date-table td:not(.prev-month):not(.next-month):hover,.picker-panel-icon-btn:hover,.date-picker-header-label:hover,.sidebar-item:hover{color:#409eff}.date-table td div{margin:4px 0;padding:3px 0}.date-table td .cell{display:block;width:24px;height:24px;margin:0 auto;line-height:24px;border-radius:50%;cursor:pointer}.picker-panel-icon-btn{color:#303133;border:0;background:transparent;cursor:pointer;outline:none}.date-picker-header-label{font-size:16px;font-weight:500;padding:0 5px;text-align:center;cursor:pointer;user-select:none}.pick-panel-arrow-left,.pick-panel-arrow-right{margin:0 6px}.year-table,.month-table{margin-top:29px}.year-table tr,.month-table tr{border-top:1px solid var(--bs-border-color)}.year-table td div{padding:12px 0}.year-table td .cell{width:48px;height:24px;line-height:24px;border-radius:16px}.month-table td div{padding:26px 0}.month-table td .cell{width:60px;border-radius:18px}@media(min-width:576px){.input-group input.form-control{width:1%}}.picker-panel-footer{border-top:1px solid #e4e4e4;padding:4px;background-color:#fff;position:relative;display:flex;border-bottom-left-radius:var(--bs-border-radius);border-bottom-right-radius:var(--bs-border-radius)}.picker-panel-footer .picker-panel-link-btn{padding:7px 15px;font-size:.75rem;border-radius:var(--bs-border-radius);line-height:12px;color:#606266;transition:border-color .3s linear,color .3s linear}.picker-panel-footer .picker-panel-link-btn.is-confirm{border:1px solid #dcdfe6}.picker-panel-footer .picker-panel-link-btn.is-confirm:hover{border-color:#409eff;color:#409eff}.picker-panel-footer .picker-panel-link-btn.is-now{color:#409eff}.time-panel{border:1px solid #ced4da;background-color:#fff;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);border-radius:var(--bs-border-radius);width:180px;user-select:none}.time-panel-content{font-size:0;position:relative;overflow:hidden}.time-panel-content:before{padding-left:50%;margin-right:12%;margin-left:12%}.time-panel-content.has-seconds:before{padding-left:33.33333%}.time-panel-content:after,.time-panel-content:before{content:"";top:50%;position:absolute;margin-top:-36.6px;height:36.6px;left:0;right:0;border-top:1px solid #e4e7ed;border-bottom:1px solid #e4e7ed}.time-panel-content.has-seconds:after{left:66.66667%;pointer-events:none}.time-panel-content:after{left:50%;margin-left:12%;margin-right:12%}.time-spinner{width:100%;white-space:nowrap}.time-spinner.has-seconds .time-spinner-wrapper{width:33.3%}.time-spinner-wrapper.is-arrow{box-sizing:border-box;text-align:center;overflow:hidden}.time-spinner-wrapper{display:inline-flex;position:relative;align-items:center;justify-content:center}.time-spinner-wrapper.is-arrow .time-spinner-list{transition:transform .3s linear}.time-spinner-arrow{font-size:14px;color:#909399;position:absolute;left:0;width:100%;z-index:1;text-align:center;height:30px;line-height:30px;cursor:pointer}.time-spinner-arrow.fa-angle-up{top:10px}.time-spinner-arrow.fa-angle-down{bottom:10px}.time-spinner-list-wrapper{overflow:hidden;height:110px;margin:40px 0;width:100%}.time-spinner-list{margin:0;list-style:none}.time-spinner-input.input .input-inner,.time-spinner-list{padding:0;text-align:center}.time-spinner-item{height:36.6px;line-height:36.6px;font-size:12px;color:#606266;opacity:.6;cursor:pointer}.time-spinner-item.active:not(.disabled){font-weight:700;font-size:14px;opacity:1}.time-spinner-item.active:not(.disabled),.time-spinner-arrow:hover{color:#409eff}.time-spinner-item.prev,.time-spinner-item.next{opacity:.8;transform:scale(1,.8);line-height:30px}.time-panel-footer{border-top:1px solid #e4e4e4;padding:4px;height:36px;line-height:25px;text-align:right}.time-panel-btn{border:none;line-height:28px;padding:0 5px;margin:0 5px;cursor:pointer;background-color:transparent;outline:none;font-size:12px;color:#303133}.time-panel-btn.confirm{font-weight:800;color:#409eff}.datetime-range{background-color:#fff;background-image:none;border-radius:var(--bs-border-radius);border:1px solid #dcdfe6;color:#606266;display:inline-block;outline:none;transition:border-color .2s cubic-bezier(.645,.045,.355,1);padding:0 10px;position:relative}.datetime-range:hover{border-color:#c0c4cc}.datetime-range.active{border-color:#409eff}.datetime-range.disabled,.datetime-range.disabled input{background-color:#e9ecef}.datetime-range-bar{display:inline-flex;align-items:center}.datetime-range-bar .datetime-range-input{border:none;outline:none;display:inline-block;margin:0;padding:0;text-align:center;color:#606266;cursor:pointer;width:80px;padding:6px 0}.datetime-range-bar .datetime-range-input-icon{cursor:pointer}.datetime-range-bar .range-separator{padding:0 5px;color:#303133}.range-panel-body{display:flex}.range-panel-body .picker-panel{box-shadow:none;border:none}.range-panel-body .picker-panel:first-child{border-right:1px solid #ced4da;border-top-right-radius:0;border-bottom-right-radius:0}.range-panel-body .date-picker-header-label{cursor:unset}.range-panel-body .date-picker-header-label:hover{color:inherit}.range-panel-footer{padding:.5rem}.popover-datetime-range{max-width:unset}.popover-datetime-range .popover-body{padding:0}.range-clear{border-radius:50%;border:1px solid #9d9d9d;padding:1px;display:none;cursor:pointer;position:absolute;right:10px;top:11px}.datetime-range:hover:not(.disabled) .range-clear{display:flex}.form-inline>*>.datetime-range{display:block}.divider{background-color:transparent;position:relative}.divider .divider-text{position:absolute;background-color:#fff;padding:0 20px;font-weight:500;color:#303133;font-size:14px}.divider.divider-horizontal{display:block;width:100%}.divider.divider-horizontal .divider-text.is-left{left:20px;transform:translateY(-50%)}.divider.divider-horizontal .divider-text.is-center{left:50%;transform:translateX(-50%) translateY(-50%)}.divider.divider-horizontal .divider-text.is-right{right:20px;transform:translateY(-50%)}.divider .divider-wrap{height:1px;margin:1rem 0;background-color:#dcdfe6}.divider-vertical{width:1px;margin:0 1rem}.divider.divider-vertical .divider-text{padding:20px 0}.divider.divider-vertical .divider-text.is-left{top:20px;transform:translateX(-50%)}.divider.divider-vertical .divider-text.is-center{top:50%;transform:translateX(-50%) translateY(-50%)}.divider.divider-vertical .divider-text.is-right{bottom:20px;transform:translateX(-50%)}.bb-dd-inprogess>*{pointer-events:none}.bb-dd-dropzone{min-height:50px}.bb-dd-spacing{height:10px}.bb-dd-spacing-dragged-over{padding:25px}.bb-dd-dragged-over{background-color:#d3d3d3;opacity:.6;animation:blinker 1s linear infinite}.bb-dd-dragged-over>div{background-color:#d3d3d3;opacity:.6;animation:blinker 1s linear infinite}.bb-dd-dragged-over-denied{background-color:#f00;opacity:.6;animation:blinker 1s linear infinite}.bb-dd-in-transit{opacity:0}.bb-dd-in-transit>div{opacity:0}@keyframes blinker{50%{opacity:0}}.blink_me{animation:blinker 1s linear infinite}.bb-flex .bb-dd-spacing{width:20px;height:auto}.bb-flex .bb-dd-dragged-over{background-color:#d3d3d3;opacity:.6;animation:blinker 1s linear infinite}.bb-flex .bb-dd-dragged-over>div{background-color:#d3d3d3;opacity:.9;animation:blinker 1s linear infinite}.bb-flex .bb-dd-in-transit{background-color:#ff4500}.bb-flex .bb-dd-in-transit>div{background-color:#ff4500}.bb-dd-noselect{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.drawer-wrapper{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden;margin:0;background-color:rgba(0,0,0,.5);transform:translateX(-100%);z-index:1050}.drawer-container{position:relative;left:0;right:0;top:0;bottom:0;height:100%;width:100%}.drawer{position:absolute;box-sizing:border-box;background-color:#fff;display:flex;flex-direction:column;box-shadow:0 8px 10px -5px rgba(0,0,0,.2),0 16px 24px 2px rgba(0,0,0,.14),0 6px 30px 5px rgba(0,0,0,.12);overflow:auto;transition:transform .3s linear;transform:translateX(-100%)}.drawer.left,.drawer.right{height:100%;top:0;bottom:0}.drawer.top,.drawer.bottom{width:100%;left:0;right:0}.drawer.right{right:0;transform:translateX(100%)}.drawer.top{top:0;transform:translateY(-100%)}.drawer.bottom{bottom:0;transform:translateY(100%)}.is-open .drawer,.is-open.drawer-wrapper,.is-close.drawer-wrapper{transform:translateX(0)}.is-close .drawer{transform:translateX(0)}.is-close .drawer{transform:translateX(-100%)}.is-close .drawer.right{transform:translateX(100%)}.is-close .drawer.top{transform:translateY(-100%)}.is-close .drawer.bottom{transform:translateY(100%)}.dropdown .dropdown-toggle:after,.dropup .dropdown-toggle:after,.dropright .dropdown-toggle:after,.btn-group .dropdown-toggle:not(:empty):after{margin-left:6px}.dropleft .dropdown-toggle:before{margin-right:6px}.dropdown-menu{border-radius:var(--bs-border-radius)}.dropdown-item{cursor:pointer}.widget .dropdown-toggle{color:#fff;padding:10px 16px;position:relative;display:inline-block}.widget .dropdown-toggle:after{content:unset}.widget .dropdown-toggle .badge{position:absolute;top:5px;font-size:9px}.widget .dropdown-menu{overflow:visible;width:235px;margin-left:-94px !important;padding:0;max-height:none;border:none}.widget .dropdown-menu .dropdown-arrow{border-style:solid;border-width:0 9px 9px;position:absolute;left:108px;top:-9px}.widget .dropdown-header{color:#fff;padding:.5rem .625rem;border-radius:var(--bs-border-radius) var(--bs-border-radius) 0 0}.widget .dropdown-body{overflow:auto;max-height:300px}.widget .dropdown-footer{padding:.5rem .625rem;background-color:#dcdfe6;border-radius:0 0 var(--bs-border-radius) var(--bs-border-radius)}.widget .dropdown-item{border-bottom:1px solid #dcdfe6}.widget .dropdown-item:nth-of-type(odd){background-color:#eef0f3}.editor .editor-body{cursor:pointer;min-height:50px;height:auto}.editor .editor-body:focus:before{content:none}.editor .editor-body:empty:before{content:attr(placeholder)}.editor .note-editor{background-color:#fff}.editor .note-editor .note-right{float:right}.editor .note-btn-close{background-image:-webkit-linear-gradient(top,#5bc0de 0%,#2aabd2 100%);background-image:-o-linear-gradient(top,#5bc0de 0%,#2aabd2 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5bc0de),to(#2aabd2));background-image:linear-gradient(to bottom,#5bc0de 0%,#2aabd2 100%);background-repeat:repeat-x;border-color:#28a4c9;color:#fff}.editor .dropdown-menu{overflow:unset;max-height:unset;max-width:unset}.editor .btn-light{border-color:#00000032}.editor .btn-light:hover{background-color:#e2e6ea;border-color:#dae0e5}.editor .btn-light:not(:disabled):not(.disabled).active,.editor .btn-light:not(:disabled):not(.disabled):active,.editor .show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.empty{text-align:center}.empty>.empty-image{margin-top:1rem;margin-bottom:8px}.empty-telemplate{margin:5px 0 0 0}.table-filter{position:absolute;left:0;top:0;width:100%;z-index:5}.table-filter .table-filter-item{min-width:220px;background-color:#fff;border:1px solid rgba(0,0,0,.125);position:absolute;display:none}.table-filter .table-filter-item.show{display:block}.table-filter .card-header{padding:.5rem 1rem}.table-filter .card-arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0;top:calc((.5rem + 1px)*-1);left:calc(50% - .5rem)}.table-filter .card-arrow:before,.table-filter .card-arrow:after{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.table-filter .card-arrow:before{border-bottom-color:#ced4da;top:0;border-width:0 .5rem .5rem .5rem}.table-filter .card-arrow:after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#f7f7f7}.table-filter .card-body{padding:1rem}.table-filter .card-body .is-condition{max-width:10rem}.table-filter .card-body>*:not(:first-child){margin-top:.5rem}.table-filter .card-body .select{display:block}.table-filter .card-footer{padding:.5rem;display:flex;white-space:nowrap}.table-filter .card-footer .btn:not(:first-child){margin-left:.5rem}.table-filter .card-footer .btn{padding:7px 15px;font-size:.875rem;line-height:12px;border:1px solid #dcdfe6;color:#606266;transition:border-color .3s linear,color .3s linear}.table-filter .card-footer .btn:not(.disabled):not(:disabled):hover{border-color:#409eff;color:#409eff}.filter-row{display:flex}.filter-row .btn-ban{display:none;padding-left:0}.filter-row input{min-width:50px}.filter-row.active .btn-ban{display:block}.btn-filter::after{content:none}.layout-gotop{background:rgba(255,255,255,.5);width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-right:4px;transition:background-color .3s linear;color:#606266}.layout-gotop:hover{background-color:#fff;color:#606266}.groupbox{border:1px solid #ddd;padding:1.5rem 1rem 1rem 1rem;border-radius:var(--bs-border-radius);position:relative;margin-top:.5rem}.groupbox .legend{position:absolute;top:-10px;left:30px;background-color:#fff;padding:0 .5rem}.handwritten .hw-body{height:300px;border:1px solid rgba(0,0,0,.125);border-radius:var(--bs-border-radius);overflow:hidden}.handwritten .hw-buttons{margin-top:1rem;text-align:right}#canvas{border:1px double #dedede;border-radius:10px;width:99%;height:300px;position:relative;overflow:hidden}#canvas canvas{display:block}#clearCanvas0{width:calc(50% - 5px);height:40px;line-height:40px;text-align:center;position:absolute;top:300px;left:5px;border:1px solid #dedede;z-index:1}#saveCanvas0{width:calc(50% - 5px);height:40px;line-height:40px;text-align:center;position:absolute;top:300px;right:5px;border:1px solid #dedede;z-index:1}.ipaddress{display:flex;flex-wrap:nowrap;min-width:138px}.ipaddress.disabled{background-color:#efefef;cursor:not-allowed}.ipaddress .ipv4-cell{border:none;max-width:26px}:root{--bb-layout-header-height:50px;--bb-layout-user-height:65px;--bb-layout-footer-height:90px;--bb-layout-side-width:214px;--bb-layout-sidebar-collapse-width:70px}.layout{display:flex;height:100%;width:100%;flex-direction:column}.layout .layout-main{flex:1}.has-sidebar{flex-direction:row;display:flex;flex:1}.layout-side{position:relative}.layout.is-page .layout-side{transform:translateX(-100%);position:fixed;top:0;bottom:0;left:0;right:0;width:auto;transition:transform .3s linear;z-index:1030}.layout.is-page .layout-side.is-collapsed{transform:translateX(0)}.layout.is-page .has-sidebar .layout-side{top:50px}.layout.is-page .layout-right,.layout.is-page .has-sidebar .layout-main{width:100%}.layout.is-page.is-fixed{position:fixed;top:0;bottom:0;left:0;right:0}.layout.is-page .layout-header{background-color:#17a2b8;height:50px;color:#fff;display:flex;align-items:center;padding:0 1rem}.layout.is-page .layout-side{background-color:#343a40;color:#c2c7d0}.layout-header-bar{padding:4px 12px;color:#fff;background-color:#1ab394;border-color:#1ab394;border-radius:var(--bs-border-radius)}.layout-header-bar .fa-bars{transition:transform .3s linear}.layout-header-bar.is-collapsed .fa-bars{transform:rotate(90deg)}.layout.is-page .layout-main{padding:1rem;position:relative;min-height:calc(100vh - var(--bb-layout-footer-height))}.layout.is-page .layout-main.is-collapsed,.layout.is-page .layout-footer.is-collapsed{display:none}.layout.is-page .layout-header{z-index:1035;position:sticky}.layout.is-page .layout-header.is-fixed{top:0}.layout.is-page .layout-header .layout-avatar-right{width:44px;height:44px}.layout.is-page .has-sidebar .layout-side .layout-banner{display:none}.layout.is-page .layout-side .layout-banner{display:flex;align-items:center;padding:0 .625rem;background-color:#367fa9;height:var(--bb-layout-header-height);font-size:1.5rem}.layout-banner-link{display:flex;align-items:center;color:inherit}.layout.is-page .layout-side .layout-banner .layout-logo{width:44px;border-radius:var(--bs-border-radius)}.layout.is-page .layout-side .layout-banner span{padding-left:1rem}.layout.is-page .layout-side .layout-user{border-bottom:1px solid #ddd;padding:.625rem;display:flex;flex-direction:row;align-items:center}.layout.is-page .layout-side .layout-user .layout-avatar{width:44px;height:44px;border-radius:50%}.layout.is-page .layout-side .layout-user span{padding-left:1rem}.layout.is-page .layout-side .layout-menu{overflow-x:hidden;padding:.5rem 0;height:calc(100vh - var(--bb-layout-header-height) - var(--bb-layout-user-height))}.layout.is-page .layout-user-state{width:8px;height:8px;background-color:#28a745;border-radius:50%;margin-left:1rem}.layout.is-page .layout-footer{height:40px;color:#fff;background-color:#5b6e84;display:flex;align-items:center;padding:0 1rem}.layout.is-page .layout-footer.is-fixed{position:sticky;bottom:0}.layout.is-page .has-sidebar .layout-side.is-fixed-header,.layout.is-page .layout-footer.is-fixed{z-index:1020}@media(min-width:768px){.layout.is-page .layout-side{transform:translateX(0);position:relative}.layout.is-page .has-sidebar .layout-side{top:0}.layout.is-page.has-sidebar .layout-side.is-fixed-header{top:0;height:calc(100vh)}.layout.is-page :not(.layout-right) .layout-main,.layout.is-page .layout-right{width:calc(100% - var(--bb-layout-side-width))}.layout.is-page .layout-side{width:var(--bb-layout-side-width);box-shadow:0 14px 28px rgba(0,0,0,.25),0 10px 10px rgba(0,0,0,.22)}.layout.is-page .layout-side .menu.is-vertical{width:var(--bb-layout-side-width)}.layout.is-page .layout-side.is-collapsed:not(:hover),.layout.is-page .layout-side:not(:hover) .menu.is-vertical.is-collapsed{width:var(--bb-layout-sidebar-collapse-width)}.layout.is-page .layout-side.is-fixed-header{position:sticky;top:var(--bb-layout-header-height);height:calc(100vh - var(--bb-layout-header-height))}.layout.is-page .layout-side.is-fixed-header.is-fixed-footer{height:calc(100vh - var(--bb-layout-footer-height))}.layout.is-page .layout-side .layout-menu{height:auto}.layout .layout-side,.layout.is-page .layout-side,.layout .menu.is-vertical{transition:width .3s linear}.layout-right{display:flex;flex-flow:column;flex:1}.layout.is-page .layout-footer.is-fixed,.layout.is-page .layout-header.is-fixed,.layout.is-page .layout-side.is-fixed-header{z-index:1025}.layout.is-page .layout-title{display:inline-block;overflow:hidden;white-space:nowrap;flex:1 1 auto;opacity:1;transition:opacity .3s linear;color:#e9ecef}.layout.is-page .is-collapsed .layout-title{opacity:0}.layout .is-collapsed .layout-user-state{display:none}.layout.is-page.has-sidebar .layout-side{min-height:calc(100vh)}.layout.is-page .has-sidebar .layout-side{min-height:calc(100vh - var(--bb-layout-footer-height))}.layout.is-page.has-sidebar .layout-side.is-fixed-header.is-fixed-footer .layout-menu,.layout.is-page .layout-side.is-fixed-header .layout-menu{height:calc(100vh - var(--bb-layout-header-height) - var(--bb-layout-user-height))}.layout.is-page .layout-side.is-fixed-header.is-fixed-footer .layout-menu{height:calc(100vh - var(--bb-layout-footer-height) - var(--bb-layout-user-height))}.layout.is-page .layout-main.is-collapsed{display:block}.layout.is-page .layout-footer.is-collapsed{display:flex}.layout.is-page .layout-menu .menu.is-vertical.is-collapsed .nav-link.active::before{opacity:1;background-color:#409eff}.layout.is-page .layout-side .layout-menu .slimScrollBar{opacity:1 !important;background-color:#c1c1c1 !important}}.light{background-image:radial-gradient(circle,#fff,#aaa,#333);cursor:pointer;width:20px;height:20px;display:inline-block;border-radius:50%}.light+span{display:none}.light-danger{background-image:radial-gradient(circle,#e17777,#892726,#700604)}.light-danger.flash{animation:danger .6s linear infinite}.light-danger:hover{background-image:radial-gradient(circle,#e17777,#b33332,#bf211e)}@keyframes danger{0%{background-image:radial-gradient(circle,#e17777,#892726,#700604)}55%{background-image:radial-gradient(circle,#e17777,#892726,#700604)}100%{background-image:radial-gradient(circle,#fff,#aaa,#333)}}.light-success{background-image:radial-gradient(circle,#5cb85c,#116811,#024702)}.light-success.flash{animation:success .6s linear infinite}.light-success:hover{background-image:radial-gradient(circle,#5cb85c,#0c980c,#087b08)}@keyframes success{0%{background-image:radial-gradient(circle,#5cb85c,#116811,#024702)}55%{background-image:radial-gradient(circle,#5cb85c,#116811,#024702)}100%{background-image:radial-gradient(circle,#fff,#aaa,#333)}}.light-info{background-image:radial-gradient(circle,#5bc0de,#1d7792,#085166)}.light-info.flash{animation:info .6s linear infinite}.light-info:hover{background-image:radial-gradient(circle,#5bc0de,#085166,#085166)}@keyframes info{0%{background-image:radial-gradient(circle,#5bc0de,#1d7792,#085166)}55%{background-image:radial-gradient(circle,#5bc0de,#1d7792,#085166)}100%{background-image:radial-gradient(circle,#fff,#aaa,#333)}}.light-warning{background-image:radial-gradient(circle,#ffc107,#cc9f18,#a28018)}.light-warning.flash{animation:warning .6s linear infinite}.light-warning:hover{background-image:radial-gradient(circle,#ffc107,#a28018,#a28018)}@keyframes warning{0%{background-image:radial-gradient(circle,#ffc107,#cc9f18,#a28018)}55%{background-image:radial-gradient(circle,#ffc107,#cc9f18,#a28018)}100%{background-image:radial-gradient(circle,#fff,#aaa,#333)}}.light-primary{background-image:radial-gradient(circle,#007bff,#0f5fb5,#104f94)}.light-primary.flash{animation:primary .6s linear infinite}.light-primary:hover{background-image:radial-gradient(circle,#007bff,#104f94,#104f94)}@keyframes primary{0%{background-image:radial-gradient(circle,#007bff,#0f5fb5,#104f94)}55%{background-image:radial-gradient(circle,#007bff,#0f5fb5,#104f94)}100%{background-image:radial-gradient(circle,#fff,#aaa,#333)}}.light-secondary{background-image:radial-gradient(circle,#6c757d,#4b5054,#3b3d40)}.light-secondary.flash{animation:secondary .6s linear infinite}.light-secondary:hover{background-image:radial-gradient(circle,#6c757d,#3b3d40,#3b3d40)}@keyframes secondary{0%{background-image:radial-gradient(circle,#6c757d,#4b5054,#3b3d40)}55%{background-image:radial-gradient(circle,#6c757d,#3b3d40,#3b3d40)}100%{background-image:radial-gradient(circle,#fff,#aaa,#333)}}.light-dark{background-image:radial-gradient(circle,#6061e2,#3232a0,#17177b)}.light-dark.flash{animation:dark .6s linear infinite}.light-dark:hover{background-image:radial-gradient(circle,#6061e2,#17177b,#17177b)}@keyframes dark{0%{background-image:radial-gradient(circle,#6061e2,#3232a0,#17177b)}55%{background-image:radial-gradient(circle,#6061e2,#3232a0,#17177b)}100%{background-image:radial-gradient(circle,#fff,#aaa,#333)}}.listview{border:1px solid rgba(0,0,0,.125);border-radius:.25rem;width:100%;height:100%;display:flex;flex-flow:column nowrap}.listview .listview-header{padding:1rem;border-bottom-color:inherit;border-bottom-width:1px;border-bottom-style:solid}.listview.is-vertical .listview-body{display:block}.listview .listview-body{padding:1rem 0 0 1rem;position:relative;overflow:auto;display:flex;flex-flow:row wrap;flex:1}.listview .listview-body .listview-item{margin:0 1rem 1rem 0}.listview .listview-body .listview-item:hover .card{cursor:pointer;border:1px solid #409eff}.listview .listview-body .listview-item .card{box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.listview .listview-body .listview-item-group{flex-basis:100%;margin:1rem 0;font-weight:bold;position:relative}.listview .listview-body .listview-item-group:after{content:"";position:absolute;top:calc(-50%);left:-1rem;right:0;background-color:rgba(0,0,0,.1);height:calc(200%)}.listview .listview-footer{padding:1rem;border-top-color:inherit;border-top-width:1px;border-top-style:solid}.dropdown-logout .dropdown-menu{padding:0;overflow:hidden;border-color:#3c8dbc}.dropdown-logout .dropdown-menu.show{animation:fade-in2 .2s cubic-bezier(.39,.575,.565,1) both}@keyframes fade-in2{0%{margin-top:-50px;visibility:hidden;opacity:0}100%{visibility:visible;opacity:1}}.dropdown-logout .dropdown-toggle{height:42px;display:block}.dropdown-logout .dropdown-toggle:after{content:none}.dropdown-logout .logout-avatar{width:42px;height:42px}.dropdown-logout .logout-text{color:#fff;font-weight:bold;max-width:110px;margin:0 .625rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropdown-logout .dropdown-user{background-color:#3c8dbc;color:#fff}.dropdown-logout .dropdown-user img{width:60px;height:60px;margin-right:1rem}.dropdown-logout .logout-un{margin-top:.25rem}.dropdown-logout .dropdown-item:not(.dropdown-user):focus,.dropdown-logout .dropdown-item:not(.dropdown-user):hover{background-color:transparent}.dropdown-logout .dropdown-item a{color:var(--bs-body-color);margin-bottom:.5rem;display:block;transition:color .3s linear}.dropdown-logout .dropdown-item a:first-child{margin-top:.5rem}.dropdown-logout .dropdown-item a:hover{color:#009ef7}.dropdown-logout .dropdown-item a .fa{margin-right:.5rem}.menu .nav{padding:0 1rem;border-bottom:1px solid #e6e6e6}.menu>.nav>li{position:relative;border-bottom:solid 2px transparent}.menu>.nav>li.active:after{width:100%;left:0}.menu>.nav>li:after{content:"";position:absolute;background-color:#1890ff;left:50%;height:2px;width:0;transition:width .3s linear,left .3s linear}.menu .nav .nav-link,.cascade .dropdown-item{padding:.5rem 1rem;color:rgba(0,0,0,.65);user-select:none;white-space:nowrap;position:relative}.menu .nav .nav-link.active,.menu .nav .nav-link:not(.disabled):hover{color:#1890ff}.menu .nav .dropdown-menu,.cascade .dropdown-menu{overflow:unset;max-height:unset;margin-top:10px}.menu .nav .dropdown-menu .nav-link:not(.disabled):hover,.menu .nav .dropdown-menu .nav-link.active,.menu .submenu .nav-link.active,.menu .submenu .nav-link:not(.disabled):hover,.cascade .dropdown-item:not(.disabled):hover,.cascade .dropdown-item.active,.cascade .nav .nav-link:not(.disabled):hover,.cascade .nav .nav-link.active{background-color:#60aff9;color:#16181b}.menu .nav .sub-menu,.cascade .has-leaf .sub-menu{display:none;background-color:#fff;white-space:nowrap;border:solid 1px #e6e6e6;border-radius:var(--bs-border-radius);padding:.5rem 0;position:absolute;left:100%;top:-9px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.menu .nav .dropdown-menu,.menu .nav .sub-menu,.cascade .sub-menu{width:160px}.menu .nav .nav-link:hover>.sub-menu,.cascade .dropdown-item:hover>.sub-menu{display:block}.menu .nav-item:hover>.nav-link>.sub-menu{left:calc(100% + 20px);top:-15px}.menu .has-leaf>.nav-link-right{transition:transform .3s linear;position:absolute;right:10px;top:10px}.menu .nav .sub-menu .has-leaf>.nav-link-right{right:12px;top:10px}.menu .has-leaf:hover>.nav-link-right{transform:rotate(-90deg)}.menu .text{overflow:hidden;vertical-align:top;display:inline-block;transition:width .3s linear}.menu .nav-link.disabled{color:#ddd}.menu .nav .nav-link .text{margin-left:4px}.menu .nav .dropdown-toggle[aria-expanded="true"]+.dropdown-menu-arrow,.cascade .show .dropdown-menu-arrow{display:block}.menu .nav .dropdown .dropdown-menu-arrow{left:calc(50% - 6px)}.menu .nav-link{display:flex;align-items:center;line-height:21px;color:inherit;transition:background-color .3s linear,color .3s linear}.menu .nav-link>div{white-space:nowrap}.menu .widget>.badge:not(:first-child){margin-left:4px}.menu.is-vertical{padding:0 .5rem;border:none}.menu .submenu{margin:0;padding:0;list-style:none}.menu .submenu li{margin-top:2px}.menu .submenu .nav-link{border-radius:var(--bs-border-radius);padding:.5rem 0 .5rem .25rem}.menu .submenu .nav-link .fa-angle-left{transition:transform .3s linear}.menu .submenu .nav-link[aria-expanded="true"]>.fa-angle-left{transform:rotate(-90deg)}.menu .submenu .nav-link .text,.menu .submenu .nav-link .widget{margin:0 4px}.cascade .dropdown-menu{right:0}.cascade .sub-menu{display:none}@media(min-width:768px){.layout-side.is-collapsed:not(:hover) .menu.is-collapsed .submenu .text{width:0}}.menu.is-bottom{position:absolute;bottom:0;left:0;right:0}.menu.is-bottom .nav{flex-wrap:nowrap;justify-content:space-around;border-bottom:none;border-top:1px solid var(--bs-gray-400)}.menu.is-bottom .nav .dropdown-toggle[aria-expanded="true"]+.dropdown-menu-arrow{display:none}.menu.is-bottom>.nav>li:after,.menu.is-bottom .dropdown-menu-arrow:after{content:none}.message{position:fixed;left:1rem;right:1rem;z-index:1090;pointer-events:none}.message .alert{display:block;min-width:160px;max-width:480px;white-space:normal;opacity:0;top:-20px;bottom:unset;margin:1rem auto 0 auto;transition:opacity .3s linear,top .3s linear,bottom .3s linear;pointer-events:auto}.message .alert.show{opacity:1;bottom:unset;top:20px}.message.is-bottom .alert{top:unset;bottom:-20px}.message.is-bottom .alert.show{top:unset;bottom:20px}.is-draggable .modal-header{cursor:pointer}.modal-header{padding:.5rem 1rem}.modal-header.is-drag{cursor:move}.modal-footer{padding:.25rem 1rem}.modal-header .btn-print{padding:3px 8px 4px 8px;margin:0 6px}.bb-printview{background-color:#fff;padding:1rem;min-height:calc(100vh)}@media screen{.bb-printview{display:none}}@media print{body.bb-printview-open{overflow:auto !important}body.bb-printview-open app,body.bb-printview-open .modal,body.bb-printview-open .modal-footer,body.bb-printview-open .modal-backdrop{display:none !important}}.nav-pages{justify-content:space-between;align-items:center;width:100%}.pagination{margin:0;flex:1 1 auto;justify-content:flex-end}.page-link:focus{box-shadow:none}.pagination-items{display:inline-block}.pagination-items .select{width:100px;margin:0 10px}.pagination-items .select .dropdown-menu{min-width:unset;text-align:center}.pagination-items .select .form-select{text-align:center}.page-item:hover .page-link-prev .fa-ellipsis-h:before{content:""}.page-item:hover .page-link-next .fa-ellipsis-h:before{content:""}.page-link{padding:.5rem .35rem;line-height:1}.page-link .fa{width:11px;text-align:center}@media(min-width:375px){.page-link{padding:.5rem .5rem}}@media(min-width:456px){.page-link{padding:.5rem .75rem}}.popover{min-width:240px}.popover-confirm-body{margin:14px 0}.popover-confirm-body .fa+span{margin-left:.25rem}.popover-confirm-buttons{display:flex;justify-content:flex-end;margin-bottom:4px}.popover-confirm-buttons .btn{padding:7px 15px;line-height:12px}.popover-confirm-buttons .btn:last-child{margin-left:.5rem}.bs-popover-auto[data-popper-placement^=bottom].has-header>.popover-arrow::after,.bs-popover-bottom.has-header>.popover-arrow::after{border-bottom-color:#f0f0f0}.qrcode .qrcode-img{width:128px;height:128px}.qrcode .qrcode-buttons{margin-top:1rem}.radio-list{display:flex;flex-wrap:wrap}.radio-list .form-check{width:120px}.radio-list.is-vertical{flex-direction:column;height:auto;line-height:unset}.radio-list.is-vertical .form-check:not(:last-child){margin-bottom:.5rem}.form-inline .radio-list .form-check{display:inline-block}.rate{height:18px;line-height:1;font-size:18px;cursor:pointer}.rate .rate-item{width:18px;height:100%;margin-right:6px}.rate .rate-item:last-child{margin-right:0}.rate .rate-item i{color:#c6d1de;transition:.3s}.rate .rate-item.is-on i{color:#c6d1de}.rate .rate-item.is-on i:before{content:""}.rate:not(.disabled) .rate-item.is-on i{color:#f7ba2a}:root{--bs-row-label-width:120px}@media(min-width:576px){.form-inline .form-label{padding:7px 0;margin-bottom:0;padding-right:10px;width:var(--bs-row-label-width);text-overflow:ellipsis;white-space:nowrap;overflow:hidden;vertical-align:top;display:inline-block}.form-inline .form-label+*{width:calc(100% - var(--bs-row-label-width))}.form-inline .form-label+*:not(.input-group):not(.switch){display:inline-block}.form-inline .form-label+.input-group{display:inline-flex}.form-inline .form-label+.switch,.form-inline .form-label+.form-checkbox{padding:7px 0}.form-inline.is-end>div>.form-label{text-align:right}.form-inline.is-center>div>.form-label{text-align:center}}.scroll{height:100%;scrollbar-color:rgba(0,0,0,.3) rgba(0,0,0,0);scrollbar-width:thin;overflow:auto}.scroll::-webkit-scrollbar{width:6px;height:6px}.scroll::-webkit-scrollbar-thumb{border-radius:3px;background-color:rgba(0,0,0,.2)}.scroll::-webkit-scrollbar-thumb:hover{background-color:rgba(0,0,0,.3)}@media(min-width:992px){.scroll{overflow:hidden}.scroll:hover{overflow-y:auto}}.multi-select{width:100%;position:relative}.multi-select .dropdown-menu-toggle{border:solid 1px #ddd;border-radius:var(--bs-border-radius);cursor:pointer;min-height:35px;max-height:70px;overflow:auto}.multi-select .dropdown-menu-toggle.disabled{background-color:#eee}.multi-select .dropdown-menu-toggle .clear{padding:7px .25rem;display:none;color:#adb5bd}.multi-select .dropdown-menu-toggle .clear:hover{background-color:#ddd;border-radius:var(--bs-border-radius)}.multi-select .dropdown-menu-toggle .dropdown{padding:7px .25rem;display:block}.multi-select .dropdown-menu-toggle.selected .clear{display:block}.multi-select .dropdown-menu-toggle.selected .dropdown,.multi-select .dropdown-menu-toggle.disabled .clear{display:none}.multi-select .dropdown-menu-toggle .append{position:absolute;height:100%;width:30px;right:0;top:0;color:#c0c4cc;display:flex;align-items:center;justify-content:center}.multi-select .dropdown-menu-toggle .append .dropdown{transition:all .3s;transform:rotate(180deg)}.multi-select.show .dropdown-menu-toggle .append .dropdown{transform:rotate(0)}.multi-select .dropdown-menu{max-height:300px;overflow:auto}.multi-select .multi-select-items{display:flex;flex-wrap:wrap;padding-top:3px;padding-left:3px;position:relative}.multi-select .multi-select-items span{border:solid 1px #ddd;border-radius:var(--bs-border-radius);padding:2px 6px;background-color:#e9ecef;margin-bottom:3px}.multi-select .multi-select-items .multi-select-item{display:inline-block;max-width:130px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;margin-right:3px;border-top-left-radius:0;border-bottom-left-radius:0}.multi-select .multi-select-items .multi-select-item-group{display:inline-flex;position:relative}.multi-select .multi-select-items .multi-select-item-group .multi-select-item{padding-left:9px}.multi-select .multi-select-items .multi-select-close{border-top-right-radius:0;border-bottom-right-radius:0;margin-right:-3px;z-index:2;transition:color .3s linear,background-color .3s linear}.multi-select :not(.disabled) .multi-select-items .multi-select-close:hover{color:#333;background-color:#ddd}.multi-select .dropdown-menu{margin-top:10px;padding:.25rem 0;width:100%}.multi-select .dropdown-menu .toolbar{padding:6px 10px;white-space:nowrap}.multi-select .dropdown-menu .toolbar .btn{line-height:12px;padding:7px 15px;border:1px solid #dee2e6;transition:border-color .3s linear,color .3s linear}.multi-select .dropdown-menu .toolbar .btn:hover{border-color:#409eff;color:#409eff}.multi-select .dropdown-menu .toolbar .btn:not(:last-child){margin-right:1rem}.multi-select .dropdown-menu .search{padding:7px 10px;position:relative}.multi-select .dropdown-menu .search .search-text{width:100%;padding-right:30px}.multi-select .dropdown-menu .search .fa-search{position:absolute;left:calc(100% - 34px);top:18px;color:#adb5bd}.multi-select .dropdown-item{display:flex;padding:0 10px;align-items:center;transition:all .3s linear}.multi-select .dropdown-item.active{background-color:#dee2e6;color:inherit}.multi-select .dropdown-item:hover{background-color:#6fd6e6}.multi-select .dropdown-item>span{padding:.375rem .75rem;overflow:hidden;text-overflow:ellipsis}.multi-select .dropdown-item .checkbox-label{display:none}.multi-select.show .dropdown-menu,.multi-select.show .dropdown-menu-arrow{display:block}.multi-select .multi-select-ph{padding:0 1rem;color:#c0c4cc;line-height:35px;position:absolute}.multi-select .dropdown-item .form-label{display:none}.multi-select .dropdown-item .form-check{width:auto}.multi-select .dropdown-item:hover{background-color:#f1faff}.form-select:focus{box-shadow:none}.form-select:hover,.form-select:focus{border-color:#c0c4cc}.form-select.border-primary:hover{box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-select.border-info:hover{box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(23,162,184,.5)}.form-select.border-warning:hover{box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(255,193,7,.5)}.form-select.border-danger:hover{box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(220,53,69,.5)}.form-select.is-valid,.form-select.is-invalid{background-image:none}[data-bs-toggle="lgbSelect"] .dropdown-toggle::after{content:none}[data-bs-toggle="lgbSelect"] .form-select{background-image:none;color:#606266;outline:none;padding-right:calc(1.5em + .75rem);cursor:pointer}[data-bs-toggle="lgbSelect"] .dropdown-menu{margin-top:8px !important;font-size:inherit;cursor:pointer}[data-bs-toggle="lgbSelect"] .dropdown-menu .dropdown-item.disabled{color:#c0c4cc;cursor:not-allowed}[data-bs-toggle="lgbSelect"] .dropdown-menu .dropdown-item.disabled:active{background-color:#f8f9fa}[data-bs-toggle="lgbSelect"] .form-select.is-valid:focus,[data-bs-toggle="lgbSelect"] .was-validated .form-select:valid:focus,.form-select.border-success:hover{box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(40,167,69,.5)}[data-bs-toggle="lgbSelect"] .form-select.is-invalid:focus,[data-bs-toggle="lgbSelect"] .was-validated .form-select:invalid:focus,.form-select.border-danger:hover{box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(220,53,69,.5)}.select .dropdown-menu{max-height:274px;overflow-x:hidden;width:100%}.dropdown-menu-arrow{width:0;height:0;border-width:0 6px 6px;border-style:solid;border-color:transparent transparent rgba(0,0,0,.15);position:absolute;left:20px;margin-top:4px;z-index:1001;display:none}.dropdown-menu-arrow:after{content:" ";width:0;height:0;border-width:0 6px 6px;border-style:solid;border-color:transparent transparent #fff;position:absolute;top:1px;left:-6px}.form-select.show+.form-select-append i{transform:rotate(0)}.dropdown-menu[data-popper-placement="bottom-start"].show+.dropdown-menu-arrow,.dropdown-menu[data-bs-popper="none"].show+.dropdown-menu-arrow{display:block}.dropdown-menu[data-bs-popper="none"].show+.dropdown-menu-arrow{margin-top:2px}.disabled .form-select{background-color:#f5f7fa;border-color:#e4e7ed;color:#c0c4cc;cursor:not-allowed}.disabled .form-select-append{color:#c0c4cc}.form-select-append{position:absolute;height:100%;width:30px;right:0;top:0;color:#c0c4cc;pointer-events:none;display:flex;align-items:center;justify-content:center}.form-select-append i{transition:all .3s;transform:rotate(180deg)}.select .search{padding:7px 10px;position:relative;border-bottom:1px solid #ddd;padding-bottom:.625rem;margin-bottom:.5rem}.select .search .search-text{width:100%;padding-right:30px}.select .search .fa-search{position:absolute;left:calc(100% - 34px);top:18px;color:#adb5bd}.form-select{width:100%}.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size="1"],.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size="1"],.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size="1"],.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size="1"]{background-position:right -1rem center,center right 1.5rem}.skeleton{width:100%;flex:1}.skeleton-content{position:relative}.skeleton-row{min-height:32px;background-color:#e9ecef}.skeleton-row:not(:last-child){margin-bottom:.5rem}.skeleton-content.round .skeleton-col{border-radius:var(--bs-border-radius)}.skeleton-content.active .skeleton-col,.skeleton-content.active .skeleton-avatar{background:-webkit-gradient(linear,left top,right top,color-stop(25%,#f2f2f2),color-stop(37%,#e6e6e6),color-stop(63%,#f2f2f2));background:linear-gradient(90deg,#f2f2f2 25%,#e6e6e6 37%,#f2f2f2 63%);background-size:400% 100%;-webkit-animation:skeleton-loading 1.4s ease infinite;animation:skeleton-loading 1.4s ease infinite}@-webkit-keyframes skeleton-loading{0%{background-position:100% 50%}to{background-position:0 50%}}@keyframes skeleton-loading{0%{background-position:100% 50%}to{background-position:0 50%}}@media(min-width:576px){.skeleton-content .control-label.skeleton-row{margin-bottom:0}}.skeleton-content .form-control.skeleton-row{flex:1}.skeleton-avatar{width:2rem;height:2rem}.skeleton-content.round .skeleton-avatar{border-radius:4px}.skeleton-content .skeleton-avatar.circle{border-radius:50%}.skeleton-table,.skeleton-buttons{border-radius:var(--bs-border-radius);border:1px solid #dee2e6;overflow:hidden}.skeleton-table .skeleton-content .skeleton-row{background:#fff;display:flex;height:39px;padding:.5rem;margin:0}.skeleton-table .skeleton-content .skeleton-row:nth-of-type(odd):not(:first-of-type){background:#f5f8fabf}.skeleton-table .skeleton-content .skeleton-row:first-of-type{border-bottom:2px solid var(--bs-secondary)}.skeleton-table .skeleton-content .skeleton-row .skeleton-col{flex:1;background-color:#e9ecef;margin:5px;height:12.5px}.skeleton-table .skeleton-row:first-of-type .skeleton-col{background:#ddd}.skeleton-toolbar{height:35px;display:flex;margin-bottom:.5rem}.skeleton-buttons{display:inline-flex;overflow:hidden}.skeleton-button{height:35px;width:70px;background-color:var(--bs-secondary);border-color:var(--bs-secondary)}.skeleton-button:not(:last-child){border-right:1px solid #ddd}.slider{flex:1 1 auto}.slider:after{clear:both}.slider:after,.slider:before{display:table;content:""}.slider-runway{width:100%;height:6px;margin:16px 0;background-color:#e4e7ed;border-radius:3px;position:relative;cursor:pointer}.slider-runway.disabled .slider-bar{background-color:#c0c4cc}.slider-runway.disabled .slider-button.dragging,.slider-runway.disabled .slider-button.hover,.slider-runway.disabled .slider-button:hover{transform:scale(1)}.slider-runway.disabled .slider-button{border-color:#c0c4cc}.slider-bar{height:6px;background-color:#409eff;border-top-left-radius:3px;border-bottom-left-radius:3px;position:absolute}.slider-button-wrapper{height:36px;width:36px;position:absolute;top:-15px;transform:translateX(-50%);background-color:transparent;user-select:none;line-height:normal;display:flex;align-items:center;justify-content:center}.slider-button-wrapper:focus{outline:none}.slider-button-wrapper.hover,.slider-button-wrapper:hover{cursor:grab}.slider-button-wrapper.dragging{cursor:grabbing}.slider-button{width:16px;height:16px;border:2px solid #409eff;background-color:#fff;border-radius:50%;transition:.2s;user-select:none;outline:none}.slider-button.dragging,.slider-button.hover,.slider-button:hover{transform:scale(1.3)}.split{display:block;height:100%;width:100%}.split .split-wrapper{display:flex;flex-direction:column;height:100%}.split .split-wrapper.is-horizontal{flex-direction:row}.split.dragging .split-wrapper{cursor:row-resize}.split.dragging .split-wrapper.is-horizontal{cursor:col-resize}.split .split-pane{height:100%;overflow:hidden}.split .split-bar{display:flex;justify-content:center;align-items:center;height:6px;width:100%;background:#f8f8f9;border:1px solid #dcdee2;border-left:none;border-right:none;cursor:row-resize;overflow:unset}.split .split-bar:hover,.split.dragging>.split-wrapper>.split-bar{background-color:#409eff}.split .split-bar:hover .split-trigger-bar,.split.dragging>.split-wrapper>.split-bar .split-trigger-bar{background-color:var(--bs-bg-disabled)}.split .split-trigger{font-size:0;display:inline-block}.split .split-bar .split-trigger-bar{width:1px;height:4px;background:rgba(23,35,61,.25);margin-left:3px;display:inline-block}.split .split-wrapper.is-horizontal>.split-bar{width:6px;height:100%;border:1px solid #dcdee2;border-top:none;border-bottom:none;cursor:col-resize}.split .split-wrapper.is-horizontal>.split-bar .split-trigger-bar{width:4px;height:1px;margin-left:0;margin-top:3px}.steps-header{display:flex}.steps-horizontal{white-space:nowrap}.step{position:relative;flex-shrink:1}.step.is-horizontal{display:inline-block}.step.is-center .step-head,.step.is-center .step-main{text-align:center}.step-head{position:relative;width:100%;line-height:1}.step-head.is-success{color:#67c23a;border-color:#67c23a}.step-head.is-process{color:#303133;border-color:#303133}.step-head.is-wait{color:#c0c4cc;border-color:#c0c4cc}.step-head.is-finish{color:#409eff;border-color:#409eff}.step-head.is-error{color:#f56c6c;border-color:#f56c6c}.step-main{white-space:normal;text-align:left}.step-title{font-size:14px;line-height:38px}.step-title.is-success{color:#67c23a}.step-title.is-finish{color:#409eff}.step-title.is-process{font-weight:700;color:#303133}.step-title.is-wait{color:#c0c4cc}.step-title.is-error{color:#f56c6c}.step-description{padding-right:10%;margin-top:-5px;font-size:12px;line-height:20px;font-weight:400}.step-description.is-success{color:#67c23a}.step-description.is-finish{color:#409eff}.step-description.is-process{color:#303133}.step-description.is-wait{color:#c0c4cc}.step.is-center .step-description{padding-left:20%;padding-right:20%}.step-line{position:absolute;border-color:inherit;background-color:#c0c4cc}.step.is-horizontal .step-line{height:2px;top:11px;left:0;right:0}.step.is-center .step-line{left:50%;right:-50%}.step-line-inner{display:block;border:1px solid;border-color:inherit;transition:.15s ease-out;box-sizing:border-box;width:0;height:0}.step:last-of-type .step-line{display:none}.step-icon{position:relative;z-index:1;display:inline-flex;justify-content:center;align-items:center;width:24px;height:24px;font-size:14px;box-sizing:border-box;background:#fff;transition:.15s ease-out}.step-icon.is-text{border-radius:50%;border:2px solid;border-color:inherit}.step-icon.is-icon{width:40px}.step-icon-inner{display:inline-block;user-select:none;text-align:center;font-weight:700;line-height:1;color:inherit;font-style:normal}.step-icon-inner[class*=fa]:not(.is-status){font-size:25px;font-weight:400}.step:last-of-type.is-flex{flex-basis:auto !important;flex-shrink:0;flex-grow:0}.switch{display:inline-flex;align-items:center;height:35px;width:100%}.switch .switch-core{margin:0;display:inline-block;position:relative;border:1px solid #dcdfe6;outline:none;border-radius:10px;box-sizing:border-box;background:#dcdfe6;cursor:pointer;transition:border-color .3s,background-color .3s;vertical-align:middle}.switch .switch-core:after{content:"";position:absolute;top:1px;left:1px;border-radius:50%;transition:all .3s;width:16px;height:16px;background-color:#fff}.switch .switch-core:before{content:attr(data-inner-text);position:absolute;top:1px;left:calc(100% - 17px);transition:all .3s;font-size:80%;color:#606266}.switch.is-checked .switch-core:after{left:100%;margin-left:-17px}.switch.is-checked .switch-core:before{left:5px;color:#fff}.switch .switch-label{margin-left:10px;cursor:pointer}.switch.disabled{opacity:.6}.switch .switch-inner-text{font-size:80%}td :not(.is-incell) .switch{height:auto}.tabs{display:flex}.tabs,.tabs-body,.tabs-body-content{height:100%}.tabs.tabs-top{flex-flow:column}.tabs.tabs-top.tabs-border-card .tabs-header{margin-bottom:0;border-top-left-radius:var(--bs-border-radius);border-top-right-radius:var(--bs-border-radius)}.tabs.tabs-right{flex-flow:row-reverse}.tabs.tabs-left{flex-flow:row}.tabs.tabs-bottom{flex-flow:column-reverse}.tabs.tabs-card.tabs-bottom .tabs-header{border-top:1px solid #e4e7ed;border-bottom:none}.tabs.tabs-border-card.tabs-bottom .tabs-header{margin-top:0}.tabs .tabs-nav-wrap{position:relative;display:flex}.tabs .tabs-nav-wrap:after{content:"";position:absolute;left:0;bottom:0;width:100%;height:2px;background-color:#e4e7ed}.tabs.tabs-top .tabs-nav-wrap{margin-bottom:-1px}.tabs.tabs-bottom .tabs-nav-wrap{margin-top:-1px}.tabs.tabs-left .tabs-nav-wrap{margin-right:-1px}.tabs.tabs-right .tabs-nav-wrap{margin-left:-1px}.tabs.tabs-top .tabs-nav-wrap,.tabs.tabs-bottom .tabs-nav-wrap{width:100%}.tabs.tabs-top .tabs-nav-wrap.is-scrollable:not(.extend),.tabs.tabs-bottom .tabs-nav-wrap.is-scrollable:not(.extend){padding:0 30px}.tabs.tabs-left .tabs-nav-wrap,.tabs.tabs-right .tabs-nav-wrap{height:100%}.tabs.tabs-left .tabs-nav-wrap:after,.tabs.tabs-right .tabs-nav-wrap:after{left:auto;right:0;width:2px;height:100%}.tabs.tabs-right .tabs-nav-wrap:after{left:0;right:auto}.tabs.tabs-left .tabs-nav-wrap.is-scrollable,.tabs.tabs-right .tabs-nav-wrap.is-scrollable{padding:30px 0}.tabs .tabs-nav-next,.tabs .tabs-nav-prev{position:absolute;cursor:pointer;line-height:40px;height:40px;font-size:16px;color:#909399;width:30px;justify-content:center;align-items:center;display:none}.tabs .tabs-nav-prev{left:0;top:0}.tabs .tabs-nav-next{right:0;top:0}.tabs .tabs-nav-next:hover,.tabs-nav-prev:hover{color:#409eff}.tabs.tabs-left .tabs-nav-prev,.tabs.tabs-right .tabs-nav-prev{top:0;left:calc(50% - 15px);height:30px}.tabs.tabs-left .tabs-nav-prev i:before,.tabs-right .tabs-nav-prev i:before{content:""}.tabs.tabs-left .tabs-nav-next,.tabs.tabs-right .tabs-nav-next{top:auto;bottom:0;left:calc(50% - 15px);height:30px}.tabs.tabs-left .tabs-nav-next i:before,.tabs.tabs-right .tabs-nav-next i:before{content:""}.tabs .tabs-nav-wrap .nav-link-bar{padding:.5rem 1rem;background-color:#fff;border:1px solid #dcdfe6;border-width:0 0 1px 1px;height:39px;cursor:pointer}.tabs .tabs-nav-wrap .nav-link-bar.left{border:1px solid #dcdfe6;border-width:0 1px 1px 0}.tabs .tabs-nav-wrap .nav-link-bar.right{border:1px solid #dcdfe6;border-width:0 0 1px 1px}.tabs .tabs-nav-wrap .dropdown-toggle:after{display:none}.tabs .tabs-nav-wrap .dropdown-item{transition:background-color .3s linear}.tabs .tabs-nav-wrap .dropdown-item:hover{background-color:#409eff}.tabs .tabs-nav-scroll{overflow:hidden;flex:1}.tabs.tabs-card.tabs-top .tabs-nav-scroll{border:solid 1px #ddd;border-radius:var(--bs-border-radius) var(--bs-border-radius) 0 0;border-bottom:none}.tabs.tabs-card.tabs-bottom .tabs-nav-scroll{border:solid 1px #ddd;border-radius:0 0 var(--bs-border-radius) var(--bs-border-radius);border-top:none}.tabs.tabs-card.tabs-left .tabs-nav-scroll{border:solid 1px #ddd;border-radius:var(--bs-border-radius) 0 0 var(--bs-border-radius);border-right:none}.tabs.tabs-card.tabs-right .tabs-nav-scroll{border:solid 1px #ddd;border-radius:0 var(--bs-border-radius) var(--bs-border-radius) 0;border-left:none}.tabs.tabs-left .tabs-nav-scroll,.tabs.tabs-right .tabs-nav-scroll{height:100%}.tabs.tabs-top .tabs-nav-scroll,.tabs.tabs-bottom .tabs-nav-scroll{width:100%}.tabs .tabs-nav{white-space:nowrap;position:relative;display:flex}.tabs.tabs-left .tabs-nav,.tabs.tabs-right .tabs-nav{flex-flow:column}.tabs.tabs-left .tabs-nav .tabs-active-bar,.tabs.tabs-right .tabs-nav .tabs-active-bar{width:2px;height:40px}.tabs.tabs-left .tabs-item{text-align:right}.tabs.tabs-left .tabs-nav .tabs-active-bar{left:auto;right:0;top:auto;bottom:auto}.tabs.tabs-right .tabs-nav .tabs-active-bar{right:auto;left:0;top:auto;bottom:auto}.tabs .tabs-body{padding:1rem}.tabs.tabs-card .tabs-body{border:1px solid #e4e7ed}.tabs.tabs-card.tabs-top .tabs-body{border-top-width:0;border-radius:0 0 4px 4px}.tabs.tabs-card.tabs-bottom .tabs-body{border-bottom-width:0;border-radius:var(--bs-border-radius) var(--bs-border-radius) 0 0}.tabs.tabs-card.tabs-left .tabs-body{border-left-width:0;border-radius:0 var(--bs-border-radius) var(--bs-border-radius) 0}.tabs.tabs-card.tabs-right .tabs-body{border-right-width:0;border-radius:var(--bs-border-radius) 0 0 var(--bs-border-radius)}.is-scrollable .tabs-nav-prev,.is-scrollable .tabs-nav-next{display:flex}.tabs-active-bar{position:absolute;bottom:0;left:0;height:2px;background-color:#409eff;z-index:1;transition:transform .3s cubic-bezier(.645,.045,.355,1);list-style:none}.tabs-item.active{color:#409eff}.tabs-item{padding:0 20px;height:40px;line-height:40px;display:flex;list-style:none;font-weight:500;color:#303133;cursor:pointer;align-items:center;position:relative;transition:color .3s linear,background-color .3s linear}.tabs-item:hover{color:#409eff}.tabs-item .tabs-item-text{padding:0 .25rem;flex:1 1 auto}.tabs-item.is-closeable .tabs-item-text{margin-right:1rem;margin-left:1rem}.tabs-item:hover .tabs-item-close{display:flex}.tabs-item .tabs-item-close{width:18px;height:18px;display:none;position:absolute;right:1rem;justify-content:center;align-items:center;transition:all .3s linear}.tabs-item .tabs-item-close:hover{background-color:#e4e7ed;border-radius:var(--bs-border-radius)}.tabs-content{overflow:hidden;position:relative}.tabs-card.tabs-top .tabs-header{border-bottom:1px solid #e4e7ed}.tabs-card .tabs-header .tabs-item.active{border-bottom-color:#fff}.tabs-card.tabs.tabs-left .tabs-header{border-right:1px solid #e4e7ed}.tabs-card.tabs.tabs-right .tabs-header{border-left:1px solid #e4e7ed}.tabs-card.tabs-bottom .tabs-header .tabs-item.active{border-top-color:#fff}.tabs-card.tabs-left .tabs-header .tabs-item.active{border-right-color:#fff}.tabs-card.tabs-right .tabs-header .tabs-item.active{border-left-color:#fff}.tabs-card .tabs-header .tabs-item:first-child{border-left:none}.tabs-card .tabs-header .tabs-item{border-bottom:1px solid transparent;border-left:1px solid #e4e7ed;transition:color .3s cubic-bezier(.645,.045,.355,1),padding .3s cubic-bezier(.645,.045,.355,1)}.tabs-card .tabs-header .tabs-item{border-bottom:1px solid transparent;border-left:1px solid #e4e7ed;transition:color .3s cubic-bezier(.645,.045,.355,1),padding .3s cubic-bezier(.645,.045,.355,1)}.tabs-card.tabs-top .tabs-header .tabs-item:last-child,.tabs-card.tabs-bottom .tabs-header .tabs-item:last-child{border-right:1px solid #e4e7ed}.tabs-card.tabs-bottom .tabs-header .tabs-item{border-top:1px solid transparent}.tabs-card.tabs-left .tabs-header .tabs-item{border-right:1px solid transparent;border-left:none;border-bottom:1px solid #e4e7ed}.tabs-card.tabs-right .tabs-header .tabs-item{border-left:1px solid transparent;border-right:none;border-bottom:1px solid #e4e7ed}.tabs-border-card{background:#fff;border:1px solid #dcdfe6;box-shadow:0 2px 4px 0 rgba(0,0,0,.12),0 0 6px 0 rgba(0,0,0,.04);border-radius:var(--bs-border-radius)}.tabs-border-card>.tabs-header{background-color:#f5f7fa;margin:0}.tabs-border-card>.tabs-header .tabs-item.active{color:#409eff;background-color:#fff;border-right-color:#dcdfe6;border-left-color:#dcdfe6}.tabs-border-card>.tabs-header .tabs-item{border:1px solid transparent}.tabs-border-card>.tabs-header .tabs-item:not(:hover):not(.active){color:#909399}.tabs-border-card>.tabs-header .tabs-item:not(.active):hover{background-color:#e9ecef}.tabs-border-card.tabs-top .tabs-header{border-bottom:1px solid #e4e7ed}.tabs-border-card.tabs-bottom .tabs-header{border-top:1px solid #e4e7ed}.tabs-border-card.tabs-top .tabs-header .tabs-item{margin-top:-1px}.tabs-border-card.tabs-top .tabs-header .tabs-item:first-child{border-top-left-radius:var(--bs-border-radius)}.tabs-border-card.tabs-left .tabs-header,.tabs-border-card.tabs-right .tabs-header{border-bottom-width:0}.tabs-border-card.tabs-top .tabs-header .tabs-nav-wrap:not(.is-scrollable) .tabs-item,.tabs-border-card.tabs-bottom .tabs-header .tabs-nav-wrap:not(.is-scrollable) .tabs-item{margin-left:-1px}.tabs-border-card.tabs-left .tabs-item.active,.tabs-border-card.tabs-right .tabs-item.active{border-top-color:#dcdfe6;border-bottom-color:#dcdfe6}.tabs-border-card.tabs-left .tabs-item{border-left:none}.tabs-border-card.tabs-right .tabs-item{border-right:none}.tabs-border-card.tabs-left .tabs-item.active{border-right-color:#fff}.tabs-border-card.tabs-right .tabs-item.active{border-left-color:#fff}.tabs-bottom.tabs-border-card>.tabs-header .tabs-item:nth-child(2),.tabs-bottom.tabs-card>.tabs-header .tabs-item:nth-child(2),.tabs-bottom .tabs-left>.tabs-header .tabs-item:nth-child(2),.tabs-bottom .tabs-right>.tabs-header .tabs-item:nth-child(2),.tabs-top.tabs-border-card>.tabs-header .tabs-item:nth-child(2),.tabs-top.tabs-card>.tabs-header .tabs-item:nth-child(2),.tabs-top .tabs-left>.tabs-header .tabs-item:nth-child(2),.tabs-top .tabs-right>.tabs-header .tabs-item:nth-child(2){padding-left:20px}.tabs-bottom.tabs-border-card>.tabs-header .tabs-item:last-child,.tabs-bottom.tabs-card>.tabs-header .tabs-item:last-child,.tabs-bottom .tabs-left>.tabs-header .tabs-item:last-child,.tabs-bottom .tabs-right>.tabs-header .tabs-item:last-child,.tabs-top.tabs-border-card>.tabs-header .tabs-item:last-child,.tabs-top.tabs-card>.tabs-header .tabs-item:last-child,.tabs-top .tabs-left>.tabs-header .tabs-item:last-child,.tabs-top .tabs-right>.tabs-header .tabs-item:last-child{padding-right:20px}.tabs-card>.tabs-header .tabs-nav-wrap:after,.tabs-border-card>.tabs-header .tabs-nav-wrap:after{content:none}.tabs-card .tabs-item.is-closeable .tabs-item-text,.tabs-border-card .tabs-item.is-closeable .tabs-item-text{margin-right:1rem;margin-left:0}.is-page .layout-main>.tabs{margin:-1rem;border:none;border-radius:unset;min-height:calc(100% + 2rem)}.table-container{position:relative}.table-wrapper{border-radius:var(--bs-border-radius);border:1px solid #dee2e6}.table-wrapper thead tr:first-child{border-top:none}.table-wrapper tbody tr:last-child{border-bottom:none}.table-wrapper th:first-child,.table-wrapper td:first-child,.table-wrapper th.fixed-scroll{border-left-width:0}.table-wrapper th:last-child,.table-wrapper td:last-child,.table-wrapper .table-fixed-header th:nth-last-of-type(2){border-right-width:0}.table-wrapper tr:last-child td{border-bottom-width:0}.table-wrapper .table-fixed-body td:last-child{border-right-width:1px}.table-th-checkbox{width:36px}.table-th-checkbox.show-text{width:80px}.table-th-button{width:130px}.table{margin-bottom:0;--bb-table-selected-bg:#9ec6ef}.table thead th,.table tbody td{border-top:none}.table thead th{white-space:nowrap;vertical-align:top}.table thead th.sortable:hover,.table thead th.filterable:hover{background-color:#e9ecef}.table thead th.sortable:hover>.fa{color:#999}.table thead.table-dark th.sortable:hover,.table thead.table-dark th.filterable:hover{background-color:#343a40}.table thead th .table-cell{justify-content:space-between;position:relative}.table thead th .table-cell .table-text{flex:1}.table thead th .table-cell>.fa{content:"";position:absolute;right:-8px;top:-8px;bottom:-8px;width:1.5rem;display:flex;align-items:center;justify-content:center;color:#ddd}.table thead th .table-cell>.fa:hover{background-color:#ddd;color:#606266}.table thead th .table-cell .fa-filter{cursor:pointer}.table thead th .table-cell .fa-filter.active{color:#409eff}.table thead.table-dark th .table-cell>.fa:hover{background-color:#6c757d;color:#fff}.table thead.table-light th .table-cell>.fa{color:#c0c4cc}.table thead.table-light th .table-cell>.fa:hover{color:#495057}.table thead th.sortable .fa-sort-asc,.table thead th.sortable .fa-sort-desc{color:inherit}.table thead th.sortable .table-cell .table-text,.table thead th.filterable .table-cell .table-text{padding-right:1rem}.table thead th.filterable .table-cell .fa-filter{right:-8px}.table thead th.sortable.filterable .table-cell .fa-filter{right:calc(1.5rem - 8px)}.table thead th.sortable.filterable .table-cell .table-text{padding-right:2.5rem;overflow:hidden;text-overflow:ellipsis}.table tfoot{font-weight:bold;border-top:2px solid #dee2e6}.table td,.table th{min-width:0;text-overflow:ellipsis}.table .is-editform .table-cell{overflow:hidden}.table-sm thead th .table-cell>.fa{right:-4px;top:-4px;bottom:-4px}.table-sm thead th.filterable .table-cell .fa-filter{right:-4px}.table-sm thead th.sortable.filterable .table-cell .fa-filter{right:calc(1.5rem - 4px)}.is-clickable tbody tr,.is-clickable .table-row{cursor:pointer}.table-cell{display:flex;align-items:center;word-break:break-all}.table-cell.is-sort{cursor:pointer}.table-cell.is-sort .fa-sort{color:#ddd}.table-cell .btn-group .btn{white-space:nowrap}.table-hover tbody tr.is-detail:hover,.table-hover tbody tr.is-editform,.table-hover tbody tr.is-editform:hover{--bs-table-accent-bg:unset}.table tbody tr.is-master td:first-child{padding-left:0;padding-right:0}.table-toolbar:after{content:"";display:block;clear:both}.table-toolbar .table-toolbar-button{margin-bottom:.5rem}.table-toolbar .table-toolbar-button .table-toolbar-search{border-top-left-radius:4px;border-bottom-left-radius:4px}.table-toolbar .dropdown-menu .dropdown-item span{margin-left:.5rem}.table-toolbar .dropdown-item.hover,.table-toolbar .dropdown-item:hover{color:#fff;background-color:#007bff}.table-pagination.is-top{margin-bottom:.5rem}.table-pagination:not(.is-top){margin-top:.5rem}.btn-gear .dropdown-menu{min-width:initial;padding:0}.btn-gear .dropdown-menu .dropdown-item{padding:6px 12px;display:table-cell;color:#504d4d}.btn-gear .dropdown-menu .dropdown-item:not(:first-child){border-left:solid 1px #aeb2b7}.table-column-right{margin-left:.3125rem}.search-input-tooltip{font-size:.75rem}.search-input-tooltip kbd{display:inline-block;background:#17a2b8;padding:1px 6px}.table-fixed{height:100%}.table-fixed .table{table-layout:fixed}.table-fixed-header{overflow:hidden;border-top-left-radius:var(--bs-border-radius);border-top-right-radius:var(--bs-border-radius)}.table-fixed-body{overflow-x:auto !important;overflow-y:scroll !important}.table-scroll{overflow:auto}.table-scroll .table tbody td .table-cell:not(.is-wrap){white-space:nowrap}.table-cell.is-ellips{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.table-cell.is-ellips.is-resizable{position:absolute;left:12px;right:12px}.table-loading,.table-loader,.form-loader{display:flex;justify-content:center;align-items:center;border:1px solid #ddd;border-radius:var(--bs-border-radius);padding:2rem;flex:1}.table-loader,.form-loader{display:none;opacity:.8;position:absolute;left:0;right:0;top:0;bottom:0;background-color:#f8f9fa;z-index:4}.table-loader.show,.form-loader.show{display:flex}.table-modal-footer{padding-top:1rem;border-top:1px solid #dee2e6;text-align:right}.table tbody tr.active:not(.is-edit),.table-row.active{background-color:var(--bb-table-selected-bg)}.table-hover>tbody>tr.is-detail:hover,.table-hover>tbody>tr.is-edit.active,.table-excel>tbody>tr:hover{--bs-table-accent-bg:none}.table-row{padding:.75rem}.table-row:not(:last-child){border-bottom:1px solid #dee2e6}.table-row:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.table-row:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px}.table-row .table-cell:not(:last-child){padding-bottom:.5rem}.table-row .table-cell label:not(.form-checkbox){font-weight:bold;width:30%;min-width:30%;margin-bottom:0;color:#212529;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-right:6px}.table-row .table-cell>span{display:inherit}.table-row.table-footer{display:flex}.table-row.table-footer .table-cell{padding-bottom:0}.table-row.table-footer .table-cell:first-child{font-weight:bold;width:30%;margin-bottom:0;color:#212529;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.table-fixed-column .table{table-layout:fixed;border-collapse:separate;border-spacing:0}.table-fixed-column .table .fixed,.table-fixed-column .table .fixed-scroll{background-color:#fff}.table-fixed-column .table tr .fixed{position:sticky;z-index:2}.table-fixed-column .table th,.table-fixed-column .table td{border-left-width:0;border-top-width:0}.table-fixed-column .table .table-light .fixed,.table-fixed-column .table .table-light .fixed-scroll,.table-fixed-column .table .table-dark .fixed,.table-fixed-column .table .table-dark .fixed-scroll{background-color:var(--bs-table-bg)}.table-fixed-column .table .fixed{border-right:1px solid #409eff}.table-fixed-column .table .fixed-right{border-right:inherit;border-left:1px solid #409eff}.table-fixed-column .fixed-scroll{position:sticky;right:0;background-color:var(--bs-table-bg)}.table .is-bar{padding:0;justify-content:center}.table .is-bar .fa-caret-right{width:20px;height:20px;border-radius:50%;display:inline-flex;justify-content:center;align-items:center;cursor:pointer;transition:background-color .3s linear,transform .3s linear}.table .is-bar .fa-caret-right:hover{background-color:#ddd}.table .is-detail{display:none}.table .is-detail.show{display:table-row}.table .table-cell .table-container,.table .table-cell .tabs,.table .table-cell form{flex:1}.table .table-cell .tabs .tabs-body{padding:1rem 0 0 0}.table-resize thead th,.table-resize tbody td{position:relative}.table-resize thead th .col-resizer{width:.25rem;display:block;position:absolute;top:0;right:0;bottom:0;cursor:col-resize}.table-resize .border-resize{border-right:1px solid #409eff}.table .table-cell.is-tree{cursor:pointer}.table-cell.is-incell{margin:-7px -6px}.table-cell.is-incell .switch{padding-left:6px}.table-cell.is-incell .select{width:100%}.table-cell .is-node .is-tree{transition:transform .3s linear}.table-sm .table-cell.is-incell{margin:-.25rem}.table-sm .table-cell.is-incell .form-control{height:calc(1.5em + .75rem - 3px)}.table-sm .table-cell.is-incell .switch{height:30px;padding-left:4px}.table-bordered thead tr:last-child>th{border-bottom-width:2px !important;border-bottom-color:var(--bs-secondary)}.table-striped>tbody>tr.is-master:nth-of-type(odd){--bs-table-accent-bg:#fff}.table-striped>tbody>tr.is-master:nth-of-type(odd).active{--bs-table-accent-bg:var(--bb-table-selected-bg)}.table-striped>tbody>tr.is-master:nth-of-type(4n+1){--bs-table-accent-bg:var(--bs-table-striped-bg);color:var(--bs-table-striped-color)}.table-wrapper .empty-text{padding:1rem}form .table .table-cell>.form-label{display:none}form .table .table-cell>textarea{width:100%}.table-search{margin-bottom:.5rem}.table-search .card-header{padding:0}.table-search .card-header .table-search-title{padding:.5rem 1rem;flex:1;cursor:pointer}.table-search .card-header .table-search-buttons{padding:.25rem 1rem}.table-search .card-header .table-search-buttons .btn{padding:.275rem .5rem}.table-search-collapse{flex:1;display:flex;align-items:center;padding:0 1rem}.table-search-collapse .table-search-collapse-arrow{cursor:pointer;transition:.3s transform linear;transform:rotate(0)}.table-search-collapse.is-open .table-search-collapse-arrow{transform:rotate(90deg)}.table-search-collapse .table-search-collapse-title{cursor:pointer;margin-left:.5rem;flex:1}.table-search .collapsed .card-header{border-bottom-color:transparent}.table-search .card-header .input-group,.table-search .collapsed .input-group+.table-search-buttons{display:none}.table-search .card-header .input-group{width:auto;padding:2px}.table-search .card-header .input-group .table-toolbar-search,.table-search .card-header .input-group .btn{height:34px}.table-search .collapsed .input-group{display:flex}.table-excel-toolbar{display:none;position:absolute}.table-excel.table>:not(caption):not(thead)>*>*{padding:0}.table-excel tbody .table-cell>.form-check{padding:6px 8px}.table-excel tbody .table-cell .switch{padding:.375rem .1875rem;justify-content:center}.table-excel .form-control,.table-excel .table-cell .select .form-select{border:none;border-radius:0;padding:.375rem .1875rem}.table-excel .table-cell .select{width:100%}.table-excel .table-cell>.disabled{background-color:var(--bs-bg-disabled);width:100%;padding:.375rem .1875rem}.table-excel .datetime-picker-input{padding-left:2rem}.table-excel .datetime-picker-input-icon{line-height:32px}.table-excel.table tbody tr.active{background-color:transparent}.table-cell.text-center,.table-cell.text-center .switch{justify-content:center}.table-cell.text-center input{text-align:center}.table-cell.text-end,.table-cell.text-end .switch{justify-content:end}.table-cell.text-end input{text-align:right}.table-cell>.progress{flex:1}.table-cell.is-ph{height:12.5px;background-color:#e9ecef;border-radius:var(--bs-border-radius);margin:5px 0}.table-cell .is-dbcell{display:flex;cursor:pointer;position:relative}.table-cell .is-dbcell:hover:before{content:"";position:absolute;bottom:-3px;height:1px;width:100%;background-color:var(--bs-primary)}.table-cell .is-node{width:18px}.table-cell .tag{line-height:22px}.table-cell .is-color{width:28px;height:21px;border-radius:.25rem}.tag{display:inline-flex;padding:0 10px;line-height:30px;font-size:12px;border-radius:var(--bs-border-radius);white-space:nowrap;align-items:center}.tag>i+.tag-text{margin-left:4px}.tag>.btn-close{margin-left:8px;width:4px;height:4px}.timer .time-panel-footer{display:flex;justify-content:space-between}.timer .time-panel-btn{border:1px solid transparent;border-radius:var(--bs-border-radius);transition:border .3s linear;padding:0 .65rem}.timer .time-panel-btn:hover{border-color:#ddd}.timer .time-panel-btn.confirm{color:#28a745}.timer .circle-title{flex-flow:column nowrap;bottom:66px}.timer .timer-body{font-size:3.5rem}.timer .timer-alert{font-size:1rem}.timer .timer-alert i{margin-right:.5rem}.timer .timer-buttons{display:flex;justify-content:space-between}.timer .timer-buttons .btn{border:5px double #949496;border-radius:50%;height:66px;width:66px;font-size:.75rem !important;padding:0}.toast-container{position:fixed;z-index:1090}.toast{overflow:hidden;width:246px;cursor:pointer;display:none;transition:transform .3s linear,opacity .3s linear;transform:translateX(100%);background-color:#fff}.toast.show{transform:translateX(0)}.toast.left{transform:translateX(-100%)}.toast.left.show{transform:translateX(0)}.toast:hover{box-shadow:0 1px .75rem rgba(0,0,0,.15)}.toast .toast-progress{position:absolute;right:0;bottom:0;height:4px;width:0}.toast.left .toast-progress{left:0;right:unset}.toast .btn-close{height:4px;width:4px;margin:0}@media(min-width:375px){.toast{min-width:300px}}@media(min-width:576px){.toast{min-width:320px}}.btn-toggle{position:relative;overflow:hidden;border:1px solid #c0c4cc;min-width:70px;min-height:35px}.btn-toggle.off .toggle-group{left:-100%}.btn-toggle .btn-default,.btn-toggle.btn-default{background-color:#e0e0e0;border-color:#ccc;box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075)}.btn-toggle .btn-default:hover{color:#333;background-color:#d4d4d4}.btn-toggle .toggle-group{position:absolute;width:200%;top:0;bottom:0;left:0;-webkit-transition:left .35s;-moz-user-select:none;-webkit-user-select:none;transition:left .35s}.btn-toggle .toggle-group label{display:flex;align-items:center;justify-content:center}.btn-toggle .toggle-group label,.btn-toggle .toggle-group span{cursor:pointer}.btn-toggle .toggle-group .toggle-on.bg-dark{color:#e4e7ed}.btn-toggle .btn-handle{position:relative;margin:0 auto;padding-top:0;padding-bottom:0;height:100%;width:0;border-width:0 1px;background-image:linear-gradient(to bottom,#fff 0%,#e0e0e0 100%);border-color:#ccc;box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075)}.btn-toggle .toggle-on{position:absolute;top:0;bottom:0;left:0;right:50%;margin:0;border:0;border-radius:0}.btn-toggle .toggle-on.btn{padding-right:24px}.btn-toggle .toggle-on.btn-lg{padding-right:31px}.btn-toggle.off .toggle-off{color:#333}.btn-toggle .toggle-off{position:absolute;top:0;bottom:0;left:50%;right:0;margin:0;border:0;border-radius:0;background-color:#e0e0e0}.btn-toggle .toggle-off.btn{padding-left:24px}.btn-toggle .toggle-off.btn-lg{padding-left:31px}.btn-toggle.btn-lg{min-width:79px;min-height:45px}.toggle-handle.btn-lg{width:40px}.btn-toggle.btn-sm{min-width:50px;min-height:30px}.toggle-on.btn-sm{padding-right:20px}.toggle-off.btn-sm{padding-left:20px}.btn-toggle.btn-xs{min-width:35px;min-height:22px}.toggle-on.btn-xs{padding-right:12px}.toggle-off.btn-xs{padding-left:12px}.tooltip-inner{max-width:768px}.is-invalid .tooltip-inner{background-color:#dc3545}.is-invalid.bs-tooltip-auto[x-placement^=top] .tooltip-arrow::before,.is-invalid.bs-tooltip-top .tooltip-arrow::before{border-top-color:#dc3545}.is-invalid.bs-tooltip-auto[x-placement^=bottom] .tooltip-arrow::before,.is-invalid.bs-tooltip-bottom .tooltip-arrow::before{border-bottom-color:#dc3545}.is-invalid.bs-tooltip-auto[x-placement^=left] .tooltip-arrow::before,.is-invalid.bs-tooltip-left .tooltip-arrow::before{border-left-color:#dc3545}.is-invalid.bs-tooltip-auto[x-placement^=right] .tooltip-arrow::before,.is-invalid.bs-tooltip-right .tooltip-arrow::before{border-right-color:#dc3545}.transfer{font-size:14px}.transfer-panel{border:1px solid var(--bs-border-color);border-radius:var(--bs-border-radius);overflow:hidden;background:#fff;display:inline-block;vertical-align:middle;width:200px;max-height:100%;box-sizing:border-box;position:relative}.transfer-panel.is-invalid{border:1px solid #dc3545}.transfer-panel.is-valid{border:1px solid #28a745}.transfer-panel .transfer-panel-header{height:40px;line-height:40px;background:#f5f7fa;margin:0;padding-left:15px;border-bottom:1px solid var(--bs-border-color);color:#000}.transfer-panel-body{height:246px}.transfer-panel-list{margin:0;padding:6px 0;list-style:none;height:246px}.transfer-panel-list.search{height:214px}.transfer-panel-item{height:30px;line-height:30px;padding-left:15px;display:block}.transfer-panel-item .form-check-input{margin:7px 0}.transfer-buttons{display:inline-block;vertical-align:middle;padding:0 30px}.transfer-buttons .btn{white-space:nowrap}.transfer-buttons .btn:not(:first-child){margin-left:10px}.transfer-buttons .disabled,.transfer-buttons .disabled:active,.transfer-buttons .disabled:focus,.transfer-buttons .disabled:hover,.transfer-buttons [disabled]{color:#fff;background-color:#a0cfff;border-color:#a0cfff}.transfer-panel-filter{text-align:center;margin:.5rem 1rem 0 1rem;display:block;width:auto;position:relative}.transfer-panel-filter .input-inner{height:32px;line-height:32px;width:100%;display:inline-block;border-radius:var(--bs-border-radius);padding-right:10px;padding-left:30px;border:1px solid #dcdfe6;transition:border-color .2s cubic-bezier(.645,.045,.355,1);color:#606266}.transfer-panel-filter .input-inner:focus{outline:none;border-color:#409eff}.transfer-panel-filter .input-prefix{height:100%;width:30px;transition:all .3s;position:absolute;left:4px;top:0;display:flex;align-items:center;justify-content:center;color:#c0c4cc}.transfer-panel-filter .input-prefix:not(.disabled):hover i:before,.transfer-panel-filter .input-prefix.is-on i:before{cursor:pointer;content:""}.transfer-panel-filter .input-prefix.disabled:hover i:before{cursor:not-allowed}.transfer-panel-header .form-check .form-check-input{margin:12px 0}.transfer-panel-body .form-check-label{max-width:160px}.tree{position:relative}.tree .tree-root{padding:0;margin:0}.tree .tree-ul{padding:0 0 0 20px;margin:0;display:none}.tree .tree-ul.show{display:block}.tree .tree-item{list-style:none;cursor:pointer;margin:1px 0}.tree .tree-item:before{content:"";position:absolute;left:0;width:100%;height:29px;transition:background-color .3s linear}.tree .tree-item.hover:before{background-color:#66a2e0a1}.tree .tree-item.active:before{background-color:#409effa1}.tree .tree-item .tree-content{position:relative;display:flex;padding:.25rem 0;align-items:center}.tree .tree-item .tree-content .fa-caret-right{width:18px;height:18px;transition:transform .3s linear;display:flex;align-items:center;justify-content:center}.tree .tree-item .tree-content .show .fa-caret-right{transform:rotate(90deg)}.tree .tree-node{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center}.tree .form-check{margin:0 4px}.tree-icon{width:18px}.upload .upload-body{margin-top:10px}.upload .upload-body.is-list{overflow:auto;max-height:240px}.upload .upload-body.is-list .upload-item{display:flex;align-items:center;padding:3px 5px;border-radius:var(--bs-border-radius);transition:background-color .3s linear;cursor:pointer;position:relative}.upload .upload-body.is-list .upload-item.is-invalid{color:#dc3545}.upload .upload-body.is-list .upload-item:hover{background-color:var(--bs-bg-disabled)}.upload .upload-body.is-list .upload-item:not(:last-child){margin-bottom:2px}.upload .upload-body.is-list .upload-item:hover .fa-trash-o{display:inline-block}.upload .upload-body.is-list .upload-item .fn{flex:1;padding:0 5px;display:flex;overflow:hidden}.upload .upload-body.is-list .upload-item .fn span:first-child{max-width:calc(100% - 4rem);overflow:hidden;text-overflow:ellipsis;display:block;white-space:nowrap;padding-right:.25rem}.upload .upload-body.is-list .upload-item .fa-trash-o,.upload .upload-body.is-list .upload-item:not(.disabled):hover .fa-check-circle-o,.upload .upload-body.is-list .upload-item:hover .fa-times-circle-o,.upload .upload-body.is-avatar .upload-item .upload-item-delete,.upload .upload-body.is-avatar .upload-item.is-invalid .upload-item-spin,.upload .upload-body.is-avatar .upload-item.is-valid .upload-item-spin,.upload .upload-item.is-invalid .fa-check,.upload .upload-item.is-valid .fa-times,.upload .upload-body.is-avatar .upload-item.disabled .upload-item-plus{display:none}.upload .upload-body.is-avatar,.upload .upload-body.is-card{margin:0;display:flex;flex-wrap:wrap}.upload .upload-body.is-avatar .upload-item{padding:0;position:relative;border:1px dashed #d9d9d9;border-radius:6px;margin-right:1rem;margin-bottom:1rem;overflow:hidden;cursor:pointer}.upload .upload-body.is-avatar .upload-item.is-invalid{border-color:#dc3545;border-style:solid}.upload .upload-body.is-avatar .upload-item.is-circle{border-radius:50%}.upload .upload-body.is-avatar .upload-item:not(.is-form):hover,.upload .upload-body.is-avatar .upload-item:not(.is-form).is-valid,.upload .upload-body.is-card .upload-item.is-valid,.upload .upload-body.is-card .upload-item:not(.disabled):hover{border-color:#409eff}.upload .upload-body.is-avatar .upload-item.is-valid{border-style:solid}.upload .upload-body.is-avatar .upload-item.is-invalid .avatar{color:#dc3545}.upload .upload-body.is-avatar .upload-item .avatar{width:100%;height:100%;background-color:#fff}.upload .upload-body.is-avatar .upload-item .upload-item-actions,.upload .upload-body.is-card .upload-item .upload-item-actions.btn-browser{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center}.upload .upload-body.is-avatar .upload-item .upload-item-actions .fa{font-size:1rem}.upload .upload-body.is-avatar .upload-item:hover .upload-item-actions .upload-item-delete{display:block}.upload .upload-body.is-card .upload-item{padding:1rem;box-shadow:0 0 10px 0 rgba(0,0,0,.2);border:1px solid #d9d9d9;border-radius:6px;width:240px;height:280px;position:relative;cursor:pointer;margin-right:1rem;margin-bottom:1rem;overflow:hidden}.upload .upload-body.is-card .upload-item .upload-item-actions{display:flex;justify-content:space-between}.upload .upload-body.is-card .upload-item.is-valid .upload-item-body img,.upload .upload-body .upload-item.is-valid .upload-item-label,.upload .upload-body .upload-item.is-invalid .upload-item-label{display:block}.upload .upload-body.is-card .is-invalid .upload-item-body{border-color:#dc3545}.upload .upload-body.is-card .upload-item-body{border-radius:var(--bs-border-radius);width:168px;height:168px;border:1px solid #d9d9d9;margin:0 auto;display:flex;align-items:center;justify-content:center;overflow:hidden}.upload .upload-body.is-card .upload-item-body img{width:100%;object-fit:cover;display:none}.upload .upload-body.is-card .upload-item-body .fa{font-size:1.5rem}.upload .upload-body.is-card .upload-item-size{margin:1rem auto;text-align:center;font-size:.625rem;display:flex;justify-content:center}.upload .upload-body.is-card .upload-item-size span{max-width:calc(100% - 4.5rem);overflow:hidden;text-overflow:ellipsis;display:block;white-space:nowrap;padding-right:.25rem}.upload .upload-item .upload-item-label{position:absolute;top:-2px;right:-14px;text-align:center;transform:rotate(45deg);color:#fff;width:46px;height:20px;background-color:#28a745;display:none}.upload .upload-item .upload-item-label .fa-check{transform:rotate(-45deg);font-size:12px}.upload .upload-item.is-invalid .upload-item-label{background-color:#dc3545}.upload .progress{position:absolute;left:0;right:0;bottom:0}.upload .upload-body.is-card .progress{left:1rem;right:1rem;bottom:56px}.upload .upload-item.is-valid .progress,.upload .upload-item.is-invalid .progress{display:none}.upload .upload-body.is-card.is-single .upload-item{margin:0} \ No newline at end of file -- Gitee From f6527ff83b1884ab39ed50abc6cb5c44b7ef161b Mon Sep 17 00:00:00 2001 From: jx <jx@jvxiang.com> Date: Mon, 7 Feb 2022 11:07:16 +0800 Subject: [PATCH 5/9] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=AD=A6=E5=91=8A?= =?UTF-8?q?=EF=BC=8C=E6=B7=BB=E5=8A=A0=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Samples/DragDrops.razor | 8 +- .../Samples/DragDrops.razor.cs | 123 ++++++++++++++++-- .../Shared/NavMenu.razor.cs | 5 + .../Components/DragDrap/DragDropService.cs | 2 +- .../Components/DragDrap/Dropzone.razor | 18 ++- .../Components/DragDrap/Dropzone.razor.cs | 27 ++-- 6 files changed, 153 insertions(+), 30 deletions(-) diff --git a/src/BootstrapBlazor.Shared/Samples/DragDrops.razor b/src/BootstrapBlazor.Shared/Samples/DragDrops.razor index 561354f63..201423e11 100644 --- a/src/BootstrapBlazor.Shared/Samples/DragDrops.razor +++ b/src/BootstrapBlazor.Shared/Samples/DragDrops.razor @@ -63,14 +63,14 @@ <DemoBlock Title="各种事件" Introduction="当拖入数量超限时<code>OnItemDropRejectedByMaxItemLimit</code>,当拖拽被禁止时<code>OnItemDropRejected</code>,返回底下的Item<code>OnReplacedItemDrop</code>,返回放下的Item<code>OnItemDrop</code>" Name="Normal"> <Row ItemsPerRow="ItemsPerRow.Two"> - <Dropzone TItem="string" Items="@StrList1" Accepts="@((s, s1) => s == "10")" OnItemDropRejected="@OnItemDropRejected" > + <Dropzone TItem="string" Items="@StrList1" Accepts="@((s, s1) => s == "10")" OnItemDropRejected="@OnItemDropRejected" OnItemDrop="@OnItemDrop" OnReplacedItemDrop="@OnReplacedItemDrop"> <Card IsShadow="true"> <CardBody> @context </CardBody> </Card> </Dropzone> - <Dropzone TItem="string" Items="@StrList2" MaxItems="6"> + <Dropzone TItem="string" Items="@StrList2" MaxItems="6" OnItemDropRejectedByMaxItemLimit="@OnItemDropRejectedByMaxItemLimit" OnItemDrop="@OnItemDrop" OnReplacedItemDrop="@OnReplacedItemDrop"> <Card IsShadow="true"> <CardBody> @context @@ -80,3 +80,7 @@ </Row> <BlockLogger @ref="Trace" class="mt-3" /> </DemoBlock> + +<AttributeTable Items="@GetAttributes()" /> + +<MethodTable Items="GetMethods()"></MethodTable> diff --git a/src/BootstrapBlazor.Shared/Samples/DragDrops.razor.cs b/src/BootstrapBlazor.Shared/Samples/DragDrops.razor.cs index 4c955d2db..b3427bcf1 100644 --- a/src/BootstrapBlazor.Shared/Samples/DragDrops.razor.cs +++ b/src/BootstrapBlazor.Shared/Samples/DragDrops.razor.cs @@ -2,6 +2,8 @@ // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. // Website: https://www.blazor.zone or https://argozhang.github.io/ +using BootstrapBlazor.Components; +using BootstrapBlazor.Shared.Common; using BootstrapBlazor.Shared.Components; using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; @@ -13,41 +15,142 @@ namespace BootstrapBlazor.Shared.Samples; /// </summary> public partial class DragDrops { - [NotNull] - private List<string>? StrList1 { get; set; } + [NotNull] private List<string>? StrList1 { get; set; } - [NotNull] - private List<string>? StrList2 { get; set; } + [NotNull] private List<string>? StrList2 { get; set; } - [NotNull] - private BlockLogger? Trace { get; set; } + [NotNull] private BlockLogger? Trace { get; set; } + /// <summary> + /// + /// </summary> protected override void OnInitialized() { base.OnInitialized(); StrList1 = new List<string>() { - "1", "2", "3", "4", "5" + "1", + "2", + "3", + "4", + "5" }; StrList2 = new List<string>() { - "6", "7", "8", "9", "10" + "6", + "7", + "8", + "9", + "10" }; } private void OnReplacedItemDrop(string item) { - + Trace?.Log($"新元素放在{item}下"); } private void OnItemDrop(string item) { - + Trace?.Log($"{item}被放下"); } private void OnItemDropRejected(string item) { Trace?.Log($"{item}被拒绝"); } + + private void OnItemDropRejectedByMaxItemLimit(string item) + { + Trace?.Log($"{item}由于超过最大数量限制被禁止"); + } + + /// <summary> + /// + /// </summary> + /// <returns></returns> + private static IEnumerable<AttributeItem> GetAttributes() + { + return new AttributeItem[] + { + new AttributeItem() + { + Name = "MaxItems", + Description = "最大数量,null为不限制", + Type = "int?", + ValueList = " — ", + DefaultValue = "null" + }, + new AttributeItem() + { + Name = "ChildContent", + Description = "内容组件", + Type = "RenderFragment<TItem>?", + ValueList = " — ", + DefaultValue = " — " + }, + }; + } + + private static IEnumerable<MethodItem> GetMethods() => new MethodItem[] + { + new() + { + Name = nameof(Dropzone<MethodItem>.Accepts), + Description = "是否运行拖放", + Parameters = " TItem,TItem ", + ReturnValue = " bool " + }, + new() + { + Name = nameof(Dropzone<MethodItem>.AllowsDrag), + Description = "节点是否允许被拖拽", + Parameters = " TItem ", + ReturnValue = " bool " + }, + new() + { + Name = nameof(Dropzone<MethodItem>.CopyItem), + Description = "复制一个新的Item到目标位置", + Parameters = " TItem ", + ReturnValue = " TItem " + }, + new() + { + Name = nameof(Dropzone<MethodItem>.ItemWrapperClass), + Description = "针对Item添加特殊的css class", + Parameters = " TItem ", + ReturnValue = " string " + }, + new() + { + Name = nameof(Dropzone<MethodItem>.OnItemDrop), + Description = "Item释放时的事件", + Parameters = " — ", + ReturnValue = " — " + }, + new() + { + Name = nameof(Dropzone<MethodItem>.OnItemDropRejected), + Description = "Item释放被拒绝时的事件", + Parameters = " — ", + ReturnValue = " — " + }, + new() + { + Name = nameof(Dropzone<MethodItem>.OnReplacedItemDrop), + Description = "当Item在另一个Item上,不是空白处被释放时的事件", + Parameters = " — ", + ReturnValue = " — " + }, + new() + { + Name = nameof(Dropzone<MethodItem>.OnItemDropRejectedByMaxItemLimit), + Description = "Item因为Dropzone内最大数量超限被拒绝时的事件", + Parameters = " — ", + ReturnValue = " — " + } + }; + } diff --git a/src/BootstrapBlazor.Shared/Shared/NavMenu.razor.cs b/src/BootstrapBlazor.Shared/Shared/NavMenu.razor.cs index 1416c1043..8c6c07f55 100644 --- a/src/BootstrapBlazor.Shared/Shared/NavMenu.razor.cs +++ b/src/BootstrapBlazor.Shared/Shared/NavMenu.razor.cs @@ -524,6 +524,11 @@ public sealed partial class NavMenu Text = Localizer["Transition"], Url = "transitions" }, + new() + { + Text = "拖拽 DragDrop", + Url = "dragdrops" + }, }; AddBadge(item); } diff --git a/src/BootstrapBlazor/Components/DragDrap/DragDropService.cs b/src/BootstrapBlazor/Components/DragDrap/DragDropService.cs index ccc4cb550..1aa36c48b 100644 --- a/src/BootstrapBlazor/Components/DragDrap/DragDropService.cs +++ b/src/BootstrapBlazor/Components/DragDrap/DragDropService.cs @@ -26,7 +26,7 @@ internal class DragDropService<T> /// <summary> /// 被拖拽的Items /// </summary> - public IList<T>? Items { get; set; } + public IList<T?>? Items { get; set; } /// <summary> /// 活动的Id diff --git a/src/BootstrapBlazor/Components/DragDrap/Dropzone.razor b/src/BootstrapBlazor/Components/DragDrap/Dropzone.razor index 83ac05934..a58503b12 100644 --- a/src/BootstrapBlazor/Components/DragDrap/Dropzone.razor +++ b/src/BootstrapBlazor/Components/DragDrap/Dropzone.razor @@ -20,14 +20,18 @@ @foreach (var item in Items) { <div draggable="@IsItemDragable(item)" - @ondragstart="() => OnDragStart(item)" - @ondragend="@OnDragEnd" - @ondragenter="() => OnDragEnter(item)" - @ondragleave="@OnDragLeave" - class="@GetItemClass(item) @ItemClass" - style="@(item == null ? "display:none":"")"> + @ondragstart="() => OnDragStart(item)" + @ondragend="@OnDragEnd" + @ondragenter="() => OnDragEnter(item)" + @ondragleave="@OnDragLeave" + class="@GetItemClass(item) @ItemClass" + style="@(item == null ? "display:none" : "")"> + @if (item != null) + { @ChildContent?.Invoke(item) - </div> + } + + </div> @if (MaxItems is null or > 1) { diff --git a/src/BootstrapBlazor/Components/DragDrap/Dropzone.razor.cs b/src/BootstrapBlazor/Components/DragDrap/Dropzone.razor.cs index b7212adfa..3565aa36a 100644 --- a/src/BootstrapBlazor/Components/DragDrap/Dropzone.razor.cs +++ b/src/BootstrapBlazor/Components/DragDrap/Dropzone.razor.cs @@ -23,7 +23,7 @@ public partial class Dropzone<TItem> : BootstrapComponentBase /// </summary> [Parameter] [NotNull] - public IList<TItem>? Items { get; set; } + public IList<TItem?>? Items { get; set; } /// <summary> /// 获取/设置 最大数量,Null为不限制 @@ -59,7 +59,7 @@ public partial class Dropzone<TItem> : BootstrapComponentBase /// 当拖拽因为数量超限被禁止时调用 /// </summary> [Parameter] - public EventCallback<TItem>? OnItemDropRejectedByMaxItemLimit { get; set; } + public EventCallback<TItem> OnItemDropRejectedByMaxItemLimit { get; set; } /// <summary> /// 当拖拽被禁止时调用 @@ -102,8 +102,12 @@ public partial class Dropzone<TItem> : BootstrapComponentBase private string? ItemClass => CssBuilder.Default("").AddClass("bb-dd-inprogess", DragDropService.ActiveItem != null).Build(); - private string GetItemClass(TItem item) + private string GetItemClass(TItem? item) { + if (item == null) + { + return ""; + } var builder = new StringBuilder(); builder.Append("bb-dd-draggable"); if (ItemWrapperClass != null) @@ -112,7 +116,7 @@ public partial class Dropzone<TItem> : BootstrapComponentBase } var activeItem = DragDropService.ActiveItem; - if (activeItem == null || item == null) + if (activeItem == null) { return builder.ToString(); } @@ -158,8 +162,12 @@ public partial class Dropzone<TItem> : BootstrapComponentBase return builder.ToString(); } - private string IsItemDragable(TItem item) + private string IsItemDragable(TItem? item) { + if (item == null) + { + return "false"; + } if (AllowsDrag == null) return "true"; if (item == null) @@ -178,7 +186,7 @@ public partial class Dropzone<TItem> : BootstrapComponentBase if (IsMaxItemLimitReached()) { - OnItemDropRejectedByMaxItemLimit?.InvokeAsync(activeItem); + OnItemDropRejectedByMaxItemLimit.InvokeAsync(activeItem); return false; } @@ -251,7 +259,7 @@ public partial class Dropzone<TItem> : BootstrapComponentBase OnItemDrop.InvokeAsync(activeItem); } - private void OnDragStart(TItem item) + private void OnDragStart(TItem? item) { DragDropService.OldIndex = Items.IndexOf(item); DragDropService.ActiveItem = item; @@ -274,7 +282,7 @@ public partial class Dropzone<TItem> : BootstrapComponentBase Items.Remove(default); } - private void OnDragEnter(TItem item) + private void OnDragEnter(TItem? item) { if (item == null) { @@ -335,6 +343,7 @@ public partial class Dropzone<TItem> : BootstrapComponentBase } else { + OnReplacedItemDrop.InvokeAsync(DragDropService.DragTargetItem); if (!Equals(DragDropService.Items, Items) && CopyItem != null) { Swap(DragDropService.DragTargetItem, CopyItem(activeItem)); @@ -345,8 +354,6 @@ public partial class Dropzone<TItem> : BootstrapComponentBase Swap(DragDropService.DragTargetItem, activeItem); DragDropService.Commit(); } - - OnReplacedItemDrop.InvokeAsync(DragDropService.DragTargetItem); } StateHasChanged(); -- Gitee From a57ab0fb2a66d02293a9a3d8220182916df68562 Mon Sep 17 00:00:00 2001 From: Argo-Tianyi <argo@163.com> Date: Mon, 7 Feb 2022 20:07:55 +0800 Subject: [PATCH 6/9] =?UTF-8?q?refactor:=20=E6=A0=BC=E5=BC=8F=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Components/DragDrap/DragDropService.cs | 3 -- .../Components/DragDrap/Dropzone.razor | 6 ++-- .../Components/DragDrap/Dropzone.razor.cs | 28 +++++++++++++++---- 3 files changed, 25 insertions(+), 12 deletions(-) diff --git a/src/BootstrapBlazor/Components/DragDrap/DragDropService.cs b/src/BootstrapBlazor/Components/DragDrap/DragDropService.cs index 1aa36c48b..7a79c4e8d 100644 --- a/src/BootstrapBlazor/Components/DragDrap/DragDropService.cs +++ b/src/BootstrapBlazor/Components/DragDrap/DragDropService.cs @@ -2,9 +2,6 @@ // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. // Website: https://www.blazor.zone or https://argozhang.github.io/ -using System; -using System.Collections.Generic; - namespace BootstrapBlazor.Components; /// <summary> diff --git a/src/BootstrapBlazor/Components/DragDrap/Dropzone.razor b/src/BootstrapBlazor/Components/DragDrap/Dropzone.razor index a58503b12..519b95f19 100644 --- a/src/BootstrapBlazor/Components/DragDrap/Dropzone.razor +++ b/src/BootstrapBlazor/Components/DragDrap/Dropzone.razor @@ -15,7 +15,8 @@ @ondragleave:stopPropagation @ondragstart:stopPropagation> - <div @ondrop="()=>OnDropItemOnSpacing(0)" @ondrop:stopPropagation @ondragenter="()=>DragDropService.ActiveSpacerId = 0" @ondragleave="()=>DragDropService.ActiveSpacerId = null" class="@GetClassesForSpacing(0)"></div> + <div @ondrop="() => OnDropItemOnSpacing(0)" @ondrop:stopPropagation @ondragenter="() => DragDropService.ActiveSpacerId = 0" + @ondragleave="() => DragDropService.ActiveSpacerId = null" class="@GetClassesForSpacing(0)"></div> @foreach (var item in Items) { @@ -30,10 +31,9 @@ { @ChildContent?.Invoke(item) } - </div> - @if (MaxItems is null or > 1) + @if (MaxItems is null or > 1) { <div @ondrop="()=>OnDropItemOnSpacing(Items.IndexOf(item)+1)" @ondrop:stopPropagation @ondragenter="()=>DragDropService.ActiveSpacerId = Items.IndexOf(item)+1" @ondragleave="()=>DragDropService.ActiveSpacerId = null" class="@ItemClass @GetClassesForSpacing(Items.IndexOf(item)+1)"></div> } diff --git a/src/BootstrapBlazor/Components/DragDrap/Dropzone.razor.cs b/src/BootstrapBlazor/Components/DragDrap/Dropzone.razor.cs index 3565aa36a..6652cb7fe 100644 --- a/src/BootstrapBlazor/Components/DragDrap/Dropzone.razor.cs +++ b/src/BootstrapBlazor/Components/DragDrap/Dropzone.razor.cs @@ -3,12 +3,7 @@ // Website: https://www.blazor.zone or https://argozhang.github.io/ using Microsoft.AspNetCore.Components; -using Microsoft.AspNetCore.Components.Web; -using System; -using System.Collections.Generic; -using System.Diagnostics.CodeAnalysis; using System.Text; -using System.Threading.Tasks; namespace BootstrapBlazor.Components; @@ -169,9 +164,15 @@ public partial class Dropzone<TItem> : BootstrapComponentBase return "false"; } if (AllowsDrag == null) + { return "true"; + } + if (item == null) + { return "false"; + } + return AllowsDrag(item).ToString(); } @@ -202,7 +203,10 @@ public partial class Dropzone<TItem> : BootstrapComponentBase private bool IsItemAccepted(TItem? dragTargetItem) { if (Accepts == null) + { return true; + } + return Accepts(DragDropService.ActiveItem, dragTargetItem); } @@ -294,13 +298,25 @@ public partial class Dropzone<TItem> : BootstrapComponentBase return; } if (item.Equals(activeItem)) + { return; + } + if (!IsValidItem()) + { return; + } + if (IsMaxItemLimitReached()) + { return; + } + if (!IsItemAccepted(item)) + { return; + } + DragDropService.DragTargetItem = item; StateHasChanged(); @@ -368,7 +384,7 @@ public partial class Dropzone<TItem> : BootstrapComponentBase } /// <summary> - /// + /// OnInitialized 方法 /// </summary> protected override void OnInitialized() { -- Gitee From 36a832892c29c36d8315819433e93661402e78a7 Mon Sep 17 00:00:00 2001 From: Argo-Tianyi <argo@163.com> Date: Mon, 7 Feb 2022 20:08:16 +0800 Subject: [PATCH 7/9] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=20IDispose=20?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E8=B0=83=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Components/DragDrap/Dropzone.razor.cs | 25 ++++++++++++++----- 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/src/BootstrapBlazor/Components/DragDrap/Dropzone.razor.cs b/src/BootstrapBlazor/Components/DragDrap/Dropzone.razor.cs index 6652cb7fe..884a712e2 100644 --- a/src/BootstrapBlazor/Components/DragDrap/Dropzone.razor.cs +++ b/src/BootstrapBlazor/Components/DragDrap/Dropzone.razor.cs @@ -11,7 +11,7 @@ namespace BootstrapBlazor.Components; /// 拖拽容器 /// </summary> /// <typeparam name="TItem"></typeparam> -public partial class Dropzone<TItem> : BootstrapComponentBase +public partial class Dropzone<TItem> : IDisposable { /// <summary> /// 获取/设置 拖拽列表 @@ -392,16 +392,29 @@ public partial class Dropzone<TItem> : BootstrapComponentBase DragDropService.StateHasChanged += ForceRender; } + private void ForceRender(object? sender, EventArgs e) + { + StateHasChanged(); + } + /// <summary> - /// + /// Dispose 方法 /// </summary> - public void Dispose() + /// <param name="disposing"></param> + protected virtual void Dispose(bool disposing) { - DragDropService.StateHasChanged -= ForceRender; + if (disposing) + { + DragDropService.StateHasChanged -= ForceRender; + } } - private void ForceRender(object? sender, EventArgs e) + /// <summary> + /// Dispose 方法 + /// </summary> + public void Dispose() { - StateHasChanged(); + Dispose(true); + GC.SuppressFinalize(this); } } -- Gitee From 73fdf155e281a42976d314f48d905a2a8529744d Mon Sep 17 00:00:00 2001 From: Argo-Tianyi <argo@163.com> Date: Mon, 7 Feb 2022 20:14:57 +0800 Subject: [PATCH 8/9] =?UTF-8?q?refactor:=20=E6=A0=BC=E5=BC=8F=E5=8C=96?= =?UTF-8?q?=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Samples/DragDrops.razor | 2 +- .../Samples/DragDrops.razor.cs | 77 +++++++++---------- 2 files changed, 38 insertions(+), 41 deletions(-) diff --git a/src/BootstrapBlazor.Shared/Samples/DragDrops.razor b/src/BootstrapBlazor.Shared/Samples/DragDrops.razor index 201423e11..862cc6db5 100644 --- a/src/BootstrapBlazor.Shared/Samples/DragDrops.razor +++ b/src/BootstrapBlazor.Shared/Samples/DragDrops.razor @@ -63,7 +63,7 @@ <DemoBlock Title="各种事件" Introduction="当拖入数量超限时<code>OnItemDropRejectedByMaxItemLimit</code>,当拖拽被禁止时<code>OnItemDropRejected</code>,返回底下的Item<code>OnReplacedItemDrop</code>,返回放下的Item<code>OnItemDrop</code>" Name="Normal"> <Row ItemsPerRow="ItemsPerRow.Two"> - <Dropzone TItem="string" Items="@StrList1" Accepts="@((s, s1) => s == "10")" OnItemDropRejected="@OnItemDropRejected" OnItemDrop="@OnItemDrop" OnReplacedItemDrop="@OnReplacedItemDrop"> + <Dropzone TItem="string" Items="@StrList1" Accepts="@((s, s1) => s == "10")" OnItemDropRejected="@OnItemDropRejected" OnItemDrop="@OnItemDrop" OnReplacedItemDrop="@OnReplacedItemDrop"> <Card IsShadow="true"> <CardBody> @context diff --git a/src/BootstrapBlazor.Shared/Samples/DragDrops.razor.cs b/src/BootstrapBlazor.Shared/Samples/DragDrops.razor.cs index b3427bcf1..3f69b44c8 100644 --- a/src/BootstrapBlazor.Shared/Samples/DragDrops.razor.cs +++ b/src/BootstrapBlazor.Shared/Samples/DragDrops.razor.cs @@ -5,8 +5,6 @@ using BootstrapBlazor.Components; using BootstrapBlazor.Shared.Common; using BootstrapBlazor.Shared.Components; -using System.Collections.Generic; -using System.Diagnostics.CodeAnalysis; namespace BootstrapBlazor.Shared.Samples; @@ -15,11 +13,14 @@ namespace BootstrapBlazor.Shared.Samples; /// </summary> public partial class DragDrops { - [NotNull] private List<string>? StrList1 { get; set; } + [NotNull] + private List<string>? StrList1 { get; set; } - [NotNull] private List<string>? StrList2 { get; set; } + [NotNull] + private List<string>? StrList2 { get; set; } - [NotNull] private BlockLogger? Trace { get; set; } + [NotNull] + private BlockLogger? Trace { get; set; } /// <summary> /// @@ -70,28 +71,25 @@ public partial class DragDrops /// /// </summary> /// <returns></returns> - private static IEnumerable<AttributeItem> GetAttributes() + private static IEnumerable<AttributeItem> GetAttributes() => new AttributeItem[] { - return new AttributeItem[] + new() { - new AttributeItem() - { - Name = "MaxItems", - Description = "最大数量,null为不限制", - Type = "int?", - ValueList = " — ", - DefaultValue = "null" - }, - new AttributeItem() - { - Name = "ChildContent", - Description = "内容组件", - Type = "RenderFragment<TItem>?", - ValueList = " — ", - DefaultValue = " — " - }, - }; - } + Name = "MaxItems", + Description = "最大数量,null为不限制", + Type = "int?", + ValueList = " — ", + DefaultValue = "null" + }, + new() + { + Name = "ChildContent", + Description = "内容组件", + Type = "RenderFragment<TItem>?", + ValueList = " — ", + DefaultValue = " — " + }, + }; private static IEnumerable<MethodItem> GetMethods() => new MethodItem[] { @@ -99,58 +97,57 @@ public partial class DragDrops { Name = nameof(Dropzone<MethodItem>.Accepts), Description = "是否运行拖放", - Parameters = " TItem,TItem ", - ReturnValue = " bool " + Parameters = "Func<TItem?, TItem?, bool>", + ReturnValue = "bool " }, new() { Name = nameof(Dropzone<MethodItem>.AllowsDrag), Description = "节点是否允许被拖拽", - Parameters = " TItem ", - ReturnValue = " bool " + Parameters = "TItem", + ReturnValue = "bool" }, new() { Name = nameof(Dropzone<MethodItem>.CopyItem), - Description = "复制一个新的Item到目标位置", - Parameters = " TItem ", - ReturnValue = " TItem " + Description = "复制一个新的 Item 到目标位置", + Parameters = "TItem, TItem", + ReturnValue = "TItem" }, new() { Name = nameof(Dropzone<MethodItem>.ItemWrapperClass), - Description = "针对Item添加特殊的css class", - Parameters = " TItem ", - ReturnValue = " string " + Description = "针对 Item 添加特殊的 css class", + Parameters = "TItem", + ReturnValue = "string" }, new() { Name = nameof(Dropzone<MethodItem>.OnItemDrop), - Description = "Item释放时的事件", + Description = "Item 释放时的事件", Parameters = " — ", ReturnValue = " — " }, new() { Name = nameof(Dropzone<MethodItem>.OnItemDropRejected), - Description = "Item释放被拒绝时的事件", + Description = "Item 释放被拒绝时的事件", Parameters = " — ", ReturnValue = " — " }, new() { Name = nameof(Dropzone<MethodItem>.OnReplacedItemDrop), - Description = "当Item在另一个Item上,不是空白处被释放时的事件", + Description = "当 Item 在另一个 Item 上,不是空白处被释放时的事件", Parameters = " — ", ReturnValue = " — " }, new() { Name = nameof(Dropzone<MethodItem>.OnItemDropRejectedByMaxItemLimit), - Description = "Item因为Dropzone内最大数量超限被拒绝时的事件", + Description = "Item 因为 Dropzone 内最大数量超限被拒绝时的事件", Parameters = " — ", ReturnValue = " — " } }; - } -- Gitee From 2223af8756b695f1493d4280451caa54d1867122 Mon Sep 17 00:00:00 2001 From: Argo-Tianyi <argo@163.com> Date: Mon, 7 Feb 2022 20:34:44 +0800 Subject: [PATCH 9/9] =?UTF-8?q?refactor:=20=E6=9B=B4=E6=96=B0=E6=8B=96?= =?UTF-8?q?=E6=8B=BD=E7=BB=84=E4=BB=B6=E8=8F=9C=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/BootstrapBlazor.Shared/Locales/en.json | 1 + src/BootstrapBlazor.Shared/Locales/zh.json | 1 + src/BootstrapBlazor.Shared/Shared/NavMenu.razor.cs | 13 +++++++------ src/BootstrapBlazor.Shared/docs.json | 1 + 4 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/BootstrapBlazor.Shared/Locales/en.json b/src/BootstrapBlazor.Shared/Locales/en.json index abb26e2a3..3d4272c4a 100644 --- a/src/BootstrapBlazor.Shared/Locales/en.json +++ b/src/BootstrapBlazor.Shared/Locales/en.json @@ -2512,6 +2512,7 @@ "Client": "WebClientService", "LayoutComponents": "LAYOUTS", "Divider": "Divider", + "Dragdrop": "DragDrop", "Layout": "Layout", "Footer": "Footer", "Row": "Row", diff --git a/src/BootstrapBlazor.Shared/Locales/zh.json b/src/BootstrapBlazor.Shared/Locales/zh.json index 1cc76d292..f13d709d2 100644 --- a/src/BootstrapBlazor.Shared/Locales/zh.json +++ b/src/BootstrapBlazor.Shared/Locales/zh.json @@ -2517,6 +2517,7 @@ "LayoutComponents": "布局组件", "Client": "客户信息服务 Client", "Divider": "分割线 Divider", + "Dragdrop": "拖拽组件 DragDrop", "Layout": "布局组件 Layout", "FullScreen": "全屏组件 FullScreen", "Footer": "页脚组件 Footer", diff --git a/src/BootstrapBlazor.Shared/Shared/NavMenu.razor.cs b/src/BootstrapBlazor.Shared/Shared/NavMenu.razor.cs index 8c6c07f55..60a70d6b2 100644 --- a/src/BootstrapBlazor.Shared/Shared/NavMenu.razor.cs +++ b/src/BootstrapBlazor.Shared/Shared/NavMenu.razor.cs @@ -523,12 +523,7 @@ public sealed partial class NavMenu { Text = Localizer["Transition"], Url = "transitions" - }, - new() - { - Text = "拖拽 DragDrop", - Url = "dragdrops" - }, + } }; AddBadge(item); } @@ -890,6 +885,12 @@ public sealed partial class NavMenu { item.Items = new List<DemoMenuItem> { + new() + { + IsNew = true, + Text = Localizer["Dragdrop"], + Url = "dragdrops" + }, new() { Text = Localizer["Divider"], diff --git a/src/BootstrapBlazor.Shared/docs.json b/src/BootstrapBlazor.Shared/docs.json index 3e6c53eb5..b7ab4c69a 100644 --- a/src/BootstrapBlazor.Shared/docs.json +++ b/src/BootstrapBlazor.Shared/docs.json @@ -14,6 +14,7 @@ "datetimepickers": "DateTimePickers", "datetimeranges": "DateTimeRanges", "doughnut": "Charts/Doughnut", + "dragdrops": "DragDrops", "dropdownlists": "DropdownLists", "dropdownwidgets": "DropdownWidgets", "fullscreens": "FullScreens", -- Gitee