diff --git a/EnvelopeGenerator.Application/Configurations/DispatcherConfig.cs b/EnvelopeGenerator.Application/Configurations/DispatcherConfig.cs new file mode 100644 index 00000000..7e261241 --- /dev/null +++ b/EnvelopeGenerator.Application/Configurations/DispatcherConfig.cs @@ -0,0 +1,13 @@ +namespace EnvelopeGenerator.Application.Configurations +{ + public class DispatcherConfig + { + public int SendingProfile { get; init; } = 1; + + public string AddedWho { get; init; } = "DDEnvelopGenerator"; + + public int ReminderTypeId { get; init; } = 202377; + + public string EmailAttmt1 { get; init; } = string.Empty; + } +} \ No newline at end of file diff --git a/EnvelopeGenerator.Application/Configurations/MailConfig.cs b/EnvelopeGenerator.Application/Configurations/MailConfig.cs new file mode 100644 index 00000000..b3a4d695 --- /dev/null +++ b/EnvelopeGenerator.Application/Configurations/MailConfig.cs @@ -0,0 +1,7 @@ +namespace EnvelopeGenerator.Application.Configurations +{ + public class MailConfig + { + public required Dictionary Placeholders { get; init; } + } +} \ No newline at end of file diff --git a/EnvelopeGenerator.Application/Contracts/IEnvelopeMailService.cs b/EnvelopeGenerator.Application/Contracts/IEnvelopeMailService.cs index f57967f2..06a4ab18 100644 --- a/EnvelopeGenerator.Application/Contracts/IEnvelopeMailService.cs +++ b/EnvelopeGenerator.Application/Contracts/IEnvelopeMailService.cs @@ -1,6 +1,7 @@ using DigitalData.Core.DTO; using DigitalData.EmailProfilerDispatcher.Abstraction.Contracts; using EnvelopeGenerator.Application.DTOs.EnvelopeReceiver; +using EnvelopeGenerator.Application.DTOs.EnvelopeReceiverReadOnly; using EnvelopeGenerator.Common; namespace EnvelopeGenerator.Application.Contracts @@ -8,6 +9,9 @@ namespace EnvelopeGenerator.Application.Contracts public interface IEnvelopeMailService : IEmailOutService { Task> SendAsync(EnvelopeReceiverDto envelopeReceiverDto, Constants.EmailTemplateType tempType); + + Task> SendAsync(EnvelopeReceiverReadOnlyDto dto); + Task> SendAccessCodeAsync(EnvelopeReceiverDto envelopeReceiverDto); } -} +} \ No newline at end of file diff --git a/EnvelopeGenerator.Application/Contracts/IEnvelopeReceiverReadOnlyService.cs b/EnvelopeGenerator.Application/Contracts/IEnvelopeReceiverReadOnlyService.cs new file mode 100644 index 00000000..f657215c --- /dev/null +++ b/EnvelopeGenerator.Application/Contracts/IEnvelopeReceiverReadOnlyService.cs @@ -0,0 +1,10 @@ +using DigitalData.Core.Abstractions.Application; +using EnvelopeGenerator.Application.DTOs.EnvelopeReceiverReadOnly; +using EnvelopeGenerator.Domain.Entities; + +namespace EnvelopeGenerator.Application.Contracts +{ + public interface IEnvelopeReceiverReadOnlyService : ICRUDService + { + } +} \ No newline at end of file diff --git a/EnvelopeGenerator.Application/DIExtensions.cs b/EnvelopeGenerator.Application/DIExtensions.cs index 33e7f569..c8179fa6 100644 --- a/EnvelopeGenerator.Application/DIExtensions.cs +++ b/EnvelopeGenerator.Application/DIExtensions.cs @@ -1,21 +1,18 @@ using DigitalData.UserManager.Application.MappingProfiles; using EnvelopeGenerator.Application.Contracts; using EnvelopeGenerator.Application.MappingProfiles; +using EnvelopeGenerator.Application.Configurations; using EnvelopeGenerator.Application.Services; using EnvelopeGenerator.Infrastructure.Contracts; using EnvelopeGenerator.Infrastructure.Repositories; +using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace EnvelopeGenerator.Application { public static class DIExtensions { - public static IServiceCollection AddEnvelopeGenerator(this IServiceCollection services) + public static IServiceCollection AddEnvelopeGenerator(this IServiceCollection services, IConfiguration dispatcherConfigSection, IConfiguration mailConfigSection) { //Inject CRUD Service and repositoriesad services.AddScoped(); @@ -33,6 +30,7 @@ namespace EnvelopeGenerator.Application services.AddScoped(); services.AddScoped(); services.AddScoped(); + services.AddScoped(); services.AddScoped(); services.AddScoped(); services.AddScoped(); @@ -46,12 +44,20 @@ namespace EnvelopeGenerator.Application services.AddScoped(); services.AddScoped(); services.AddScoped(); + services.AddScoped(); //Auto mapping profiles services.AddAutoMapper(typeof(BasicDtoMappingProfile).Assembly); services.AddAutoMapper(typeof(UserMappingProfile).Assembly); + services.Configure(dispatcherConfigSection); + services.Configure(mailConfigSection); + return services; } + + public static IServiceCollection AddEnvelopeGenerator(this IServiceCollection services, IConfiguration config) => services.AddEnvelopeGenerator( + dispatcherConfigSection: config.GetSection("DispatcherConfig"), + mailConfigSection: config.GetSection("MailConfig")); } -} +} \ No newline at end of file diff --git a/EnvelopeGenerator.Application/DTOs/EnvelopeDocumentDto.cs b/EnvelopeGenerator.Application/DTOs/EnvelopeDocumentDto.cs index 340b3a88..a9422f02 100644 --- a/EnvelopeGenerator.Application/DTOs/EnvelopeDocumentDto.cs +++ b/EnvelopeGenerator.Application/DTOs/EnvelopeDocumentDto.cs @@ -7,6 +7,7 @@ namespace EnvelopeGenerator.Application.DTOs int Id, int EnvelopeId, DateTime AddedWhen, - IEnumerable? Elements + byte[]? ByteData = null, + IEnumerable? Elements = null ) : IUnique; } \ No newline at end of file diff --git a/EnvelopeGenerator.Application/DTOs/EnvelopeReceiverReadOnly/EnvelopeReceiverReadOnlyCreateDto.cs b/EnvelopeGenerator.Application/DTOs/EnvelopeReceiverReadOnly/EnvelopeReceiverReadOnlyCreateDto.cs new file mode 100644 index 00000000..434b9fd9 --- /dev/null +++ b/EnvelopeGenerator.Application/DTOs/EnvelopeReceiverReadOnly/EnvelopeReceiverReadOnlyCreateDto.cs @@ -0,0 +1,22 @@ +using System.ComponentModel.DataAnnotations; +using System.Text.Json.Serialization; + +namespace EnvelopeGenerator.Application.DTOs.EnvelopeReceiverReadOnly +{ + public record EnvelopeReceiverReadOnlyCreateDto( + DateTime DateValid) + { + [EmailAddress] + [Required] + public required string ReceiverMail { get; init; } + + [JsonIgnore] + public long? EnvelopeId { get; set; } = null; + + [JsonIgnore] + public string? AddedWho { get; set; } + + [JsonIgnore] + public DateTime AddedWhen { get; } = DateTime.Now; + }; +} \ No newline at end of file diff --git a/EnvelopeGenerator.Application/DTOs/EnvelopeReceiverReadOnly/EnvelopeReceiverReadOnlyDto.cs b/EnvelopeGenerator.Application/DTOs/EnvelopeReceiverReadOnly/EnvelopeReceiverReadOnlyDto.cs new file mode 100644 index 00000000..88417d66 --- /dev/null +++ b/EnvelopeGenerator.Application/DTOs/EnvelopeReceiverReadOnly/EnvelopeReceiverReadOnlyDto.cs @@ -0,0 +1,16 @@ +using EnvelopeGenerator.Application.DTOs.Receiver; + +namespace EnvelopeGenerator.Application.DTOs.EnvelopeReceiverReadOnly +{ + public record EnvelopeReceiverReadOnlyDto( + long Id, + long EnvelopeId, + string ReceiverMail, + DateTime DateValid, + DateTime AddedWhen, + string AddedWho, + EnvelopeDto? Envelope = null, + string? ChangedWho = null, + DateTime? ChangedWhen = null, + ReceiverReadDto? Receiver = null); +} \ No newline at end of file diff --git a/EnvelopeGenerator.Application/DTOs/EnvelopeReceiverReadOnly/EnvelopeReceiverReadOnlyUpdateDto.cs b/EnvelopeGenerator.Application/DTOs/EnvelopeReceiverReadOnly/EnvelopeReceiverReadOnlyUpdateDto.cs new file mode 100644 index 00000000..356524a2 --- /dev/null +++ b/EnvelopeGenerator.Application/DTOs/EnvelopeReceiverReadOnly/EnvelopeReceiverReadOnlyUpdateDto.cs @@ -0,0 +1,12 @@ +using DigitalData.Core.Abstractions; + +namespace EnvelopeGenerator.Application.DTOs.EnvelopeReceiverReadOnly +{ + public record EnvelopeReceiverReadOnlyUpdateDto( + long Id, + DateTime DateValid, + string ChangedWho) : IUnique + { + public DateTime ChangedWhen { get; } = DateTime.Now; + }; +} \ No newline at end of file diff --git a/EnvelopeGenerator.Application/DispatcherConfig.cs b/EnvelopeGenerator.Application/DispatcherConfig.cs deleted file mode 100644 index 036ff8a2..00000000 --- a/EnvelopeGenerator.Application/DispatcherConfig.cs +++ /dev/null @@ -1,13 +0,0 @@ -namespace EnvelopeGenerator.Application -{ - public class DispatcherConfig - { - public int SendingProfile { get; init; } = 1; - - public string AddedWho { get; init; } = "DDEnvelopGenerator"; - - public int ReminderTypeId { get; init; } = 202377; - - public string EmailAttmt1 { get; init; } = string.Empty; - } -} \ No newline at end of file diff --git a/EnvelopeGenerator.Application/EnvelopeGenerator.Application.csproj b/EnvelopeGenerator.Application/EnvelopeGenerator.Application.csproj index 5ca8bdf4..f1267868 100644 --- a/EnvelopeGenerator.Application/EnvelopeGenerator.Application.csproj +++ b/EnvelopeGenerator.Application/EnvelopeGenerator.Application.csproj @@ -22,6 +22,7 @@ + diff --git a/EnvelopeGenerator.Application/MappingProfiles/BasicDtoMappingProfile.cs b/EnvelopeGenerator.Application/MappingProfiles/BasicDtoMappingProfile.cs index 820ddbc1..18462893 100644 --- a/EnvelopeGenerator.Application/MappingProfiles/BasicDtoMappingProfile.cs +++ b/EnvelopeGenerator.Application/MappingProfiles/BasicDtoMappingProfile.cs @@ -2,6 +2,7 @@ using EnvelopeGenerator.Application.DTOs; using EnvelopeGenerator.Application.DTOs.EnvelopeHistory; using EnvelopeGenerator.Application.DTOs.EnvelopeReceiver; +using EnvelopeGenerator.Application.DTOs.EnvelopeReceiverReadOnly; using EnvelopeGenerator.Application.DTOs.Receiver; using EnvelopeGenerator.Domain.Entities; @@ -28,6 +29,7 @@ namespace EnvelopeGenerator.Application.MappingProfiles CreateMap(); CreateMap(); CreateMap(); + CreateMap(); // DTO to Entity mappings CreateMap(); @@ -46,6 +48,8 @@ namespace EnvelopeGenerator.Application.MappingProfiles CreateMap(); CreateMap(); CreateMap(); + CreateMap(); + CreateMap(); } } } \ No newline at end of file diff --git a/EnvelopeGenerator.Application/Resources/Resource.de-DE.resx b/EnvelopeGenerator.Application/Resources/Resource.de-DE.resx index c7d98b63..244fbc28 100644 --- a/EnvelopeGenerator.Application/Resources/Resource.de-DE.resx +++ b/EnvelopeGenerator.Application/Resources/Resource.de-DE.resx @@ -156,6 +156,9 @@ Hallo + + Das digitale Unterschriftenportal ist eine Plattform, die entwickelt wurde, um Ihre Dokumente sicher zu unterschreiben und zu verwalten. Mit seiner benutzerfreundlichen Oberfläche können Sie Ihre Dokumente schnell hochladen, die Unterschriftsprozesse verfolgen und Ihre digitalen Unterschriftenanwendungen einfach durchführen. Dieses Portal beschleunigt Ihren Arbeitsablauf mit rechtlich gültigen Unterschriften und erhöht gleichzeitig die Sicherheit Ihrer Dokumente. + Öffnen @@ -177,6 +180,9 @@ Dokument erfordert einen Zugriffscode + + Weitergeleitet von {0}. Gültig bis {1}. + Ablehnen @@ -210,6 +216,9 @@ Ein unerwarteter Fehler ist aufgetreten. + + Dokument ansehen + Herzlich willkommen im eSign-Portal diff --git a/EnvelopeGenerator.Application/Resources/Resource.en-US.resx b/EnvelopeGenerator.Application/Resources/Resource.en-US.resx index 6cf39478..b99951ec 100644 --- a/EnvelopeGenerator.Application/Resources/Resource.en-US.resx +++ b/EnvelopeGenerator.Application/Resources/Resource.en-US.resx @@ -156,6 +156,9 @@ Hello + + The Digital Signature Portal is a platform developed for securely signing and managing your documents. With its user-friendly interface, you can quickly upload your documents, track the signing processes, and easily carry out your digital signature applications. This portal accelerates your workflow with legally valid signatures while enhancing the security of your documents. + Open @@ -177,6 +180,9 @@ Document requires an access code + + Forwarded by {0}. Valid until {1}. + Reject @@ -210,6 +216,9 @@ An unexpected error has occurred. + + View document + Welcome to the eSign portal diff --git a/EnvelopeGenerator.Application/Services/EnvelopeMailService.cs b/EnvelopeGenerator.Application/Services/EnvelopeMailService.cs index 296ad932..5e6ca13e 100644 --- a/EnvelopeGenerator.Application/Services/EnvelopeMailService.cs +++ b/EnvelopeGenerator.Application/Services/EnvelopeMailService.cs @@ -3,14 +3,15 @@ using DigitalData.Core.DTO; using DigitalData.EmailProfilerDispatcher.Abstraction.Contracts; using DigitalData.EmailProfilerDispatcher.Abstraction.DTOs.EmailOut; using DigitalData.EmailProfilerDispatcher.Abstraction.Services; -using DigitalData.UserManager.Application; using EnvelopeGenerator.Application.Contracts; using EnvelopeGenerator.Application.DTOs.EnvelopeReceiver; using EnvelopeGenerator.Common; -using Microsoft.Extensions.Localization; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using static EnvelopeGenerator.Common.Constants; +using EnvelopeGenerator.Extensions; +using EnvelopeGenerator.Application.DTOs.EnvelopeReceiverReadOnly; +using EnvelopeGenerator.Application.Configurations; namespace EnvelopeGenerator.Application.Services { @@ -20,39 +21,50 @@ namespace EnvelopeGenerator.Application.Services private readonly IEnvelopeReceiverService _envRcvService; private readonly DispatcherConfig _dConfig; private readonly IConfigService _configService; + private readonly Dictionary _placeholders; - public EnvelopeMailService(IEmailOutRepository repository, IStringLocalizer localizer, IMapper mapper, IEmailTemplateService tempService, IEnvelopeReceiverService envelopeReceiverService, IOptions dispatcherConfigOptions, IConfigService configService) : base(repository, mapper) + public EnvelopeMailService(IEmailOutRepository repository, IMapper mapper, IEmailTemplateService tempService, IEnvelopeReceiverService envelopeReceiverService, IOptions dispatcherConfigOptions, IConfigService configService, IOptions mailConfig) : base(repository, mapper) { _tempService = tempService; _envRcvService = envelopeReceiverService; _dConfig = dispatcherConfigOptions.Value; _configService = configService; + _placeholders = mailConfig.Value.Placeholders; } - //TODO: create ioptions and implement TemplatePlaceHolderAttribute instead of this method - private async Task> CreatePlaceholders(string? accessCode = null, EnvelopeReceiverDto? envelopeReceiverDto = null) + private async Task> CreatePlaceholders(string? accessCode = null, EnvelopeReceiverDto? envelopeReceiverDto = null, EnvelopeReceiverReadOnlyDto? readOnlyDto = null) { - Dictionary placeholders = new() { - { "[NAME_PORTAL]", "signFlow" }, - { "[SIGNATURE_TYPE]" , "signieren"}, - { "[REASON]", string.Empty } }; - if (accessCode is not null) - placeholders["[DOCUMENT_ACCESS_CODE]"] = accessCode; + _placeholders["[DOCUMENT_ACCESS_CODE]"] = accessCode; - if(envelopeReceiverDto is not null && envelopeReceiverDto.Envelope is not null && envelopeReceiverDto.Receiver is not null) + if(envelopeReceiverDto?.Envelope is not null && envelopeReceiverDto.Receiver is not null) { var erId = (envelopeReceiverDto.Envelope.Uuid, envelopeReceiverDto.Receiver.Signature).EncodeEnvelopeReceiverId(); var sigHost = await _configService.ReadDefaultSignatureHost(); - var linkToDoc = $"{sigHost}/envelope/{erId}"; - placeholders["[LINK_TO_DOCUMENT]"] = linkToDoc; - placeholders["[LINK_TO_DOCUMENT_TEXT]"] = linkToDoc[..Math.Min(40, linkToDoc.Length)]; + var linkToDoc = $"{sigHost}/EnvelopeKey/{erId}"; + _placeholders["[LINK_TO_DOCUMENT]"] = linkToDoc; + _placeholders["[LINK_TO_DOCUMENT_TEXT]"] = linkToDoc[..Math.Min(40, linkToDoc.Length)] + ".."; } - return placeholders; + return _placeholders; } - public async Task> SendAccessCodeAsync(EnvelopeReceiverDto dto) => await SendAsync(dto: dto, tempType: Constants.EmailTemplateType.DocumentAccessCodeReceived); + private async Task> CreatePlaceholders(EnvelopeReceiverReadOnlyDto? readOnlyDto = null) + { + if (readOnlyDto?.Envelope is not null && readOnlyDto.Receiver is not null) + { + _placeholders["[NAME_RECEIVER]"] = await _envRcvService.ReadLastUsedReceiverNameByMail(readOnlyDto.AddedWho).ThenAsync(res => res, (msg, ntc) => string.Empty) ?? string.Empty; + var erReadOnlyId = (readOnlyDto.Id).EncodeEnvelopeReceiverId(); + var sigHost = await _configService.ReadDefaultSignatureHost(); + var linkToDoc = $"{sigHost}/EnvelopeKey/{erReadOnlyId}"; + _placeholders["[LINK_TO_DOCUMENT]"] = linkToDoc; + _placeholders["[LINK_TO_DOCUMENT_TEXT]"] = linkToDoc[..Math.Min(40, linkToDoc.Length)] + ".."; + } + + return _placeholders; + } + + public async Task> SendAccessCodeAsync(EnvelopeReceiverDto dto) => await SendAsync(dto: dto, tempType: Constants.EmailTemplateType.DocumentAccessCodeReceived); public async Task> SendAsync(EnvelopeReceiverDto dto, Constants.EmailTemplateType tempType) { @@ -92,8 +104,43 @@ namespace EnvelopeGenerator.Application.Services var placeholders = await CreatePlaceholders(accessCode: accessCode, envelopeReceiverDto: dto); + //TODO: remove the requirement to add the models using reflections return await CreateWithTemplateAsync(createDto: mail,placeholders: placeholders, dto, dto.Envelope.User!, dto.Envelope); } - } + + public async Task> SendAsync(EnvelopeReceiverReadOnlyDto dto) + { + var tempSerResult = await _tempService.ReadByNameAsync(Constants.EmailTemplateType.DocumentShared); + if (tempSerResult.IsFailed) + return tempSerResult.ToFail().Notice(LogLevel.Error, Flag.DataIntegrityIssue, $"The email cannot send because '{Constants.EmailTemplateType.DocumentShared}' template cannot found."); + var temp = tempSerResult.Data; + + var mail = new EmailOutCreateDto() + { + EmailAddress = dto.ReceiverMail, + EmailSubj = temp.Subject, + EmailBody = temp.Body, + //TODO: remove int casting when all + ReferenceId = (int) dto.EnvelopeId, //REFERENCE_ID = ENVELOPE_ID + ReferenceString = dto.Envelope!.Uuid, //REFERENCE_STRING = ENVELOPE_UUID + //receiver_name = receiver.name, + //receiver_access_code = receiver.access_code, + //sender_adress = envelope.user.email, + //sender_name = envelope.user.full_name, + //envelope_title = envelope.title, + ReminderTypeId = _dConfig.ReminderTypeId, + SendingProfile = _dConfig.SendingProfile, + EntityId = null, + WfId = (int)EnvelopeStatus.EnvelopeShared, + WfReference = null, + AddedWho = _dConfig.AddedWho, + EmailAttmt1 = _dConfig.EmailAttmt1 + }; + + var placeholders = await CreatePlaceholders(readOnlyDto: dto); + + return await CreateWithTemplateAsync(createDto: mail, placeholders: placeholders, dto.Envelope); + } + } } \ No newline at end of file diff --git a/EnvelopeGenerator.Application/Services/EnvelopeReceiverReadOnlyService.cs b/EnvelopeGenerator.Application/Services/EnvelopeReceiverReadOnlyService.cs new file mode 100644 index 00000000..3214cfed --- /dev/null +++ b/EnvelopeGenerator.Application/Services/EnvelopeReceiverReadOnlyService.cs @@ -0,0 +1,16 @@ +using AutoMapper; +using DigitalData.Core.Application; +using EnvelopeGenerator.Application.Contracts; +using EnvelopeGenerator.Application.DTOs.EnvelopeReceiverReadOnly; +using EnvelopeGenerator.Domain.Entities; +using EnvelopeGenerator.Infrastructure.Contracts; + +namespace EnvelopeGenerator.Application.Services +{ + public class EnvelopeReceiverReadOnlyService : CRUDService, IEnvelopeReceiverReadOnlyService + { + public EnvelopeReceiverReadOnlyService(IEnvelopeReceiverReadOnlyRepository repository, IMapper mapper) : base(repository, mapper) + { + } + } +} \ No newline at end of file diff --git a/EnvelopeGenerator.Application/Services/EnvelopeReceiverService.cs b/EnvelopeGenerator.Application/Services/EnvelopeReceiverService.cs index bd09cac4..12b5ea11 100644 --- a/EnvelopeGenerator.Application/Services/EnvelopeReceiverService.cs +++ b/EnvelopeGenerator.Application/Services/EnvelopeReceiverService.cs @@ -8,6 +8,7 @@ using EnvelopeGenerator.Domain.Entities; using EnvelopeGenerator.Infrastructure.Contracts; using Microsoft.Extensions.Localization; using Microsoft.Extensions.Logging; +using EnvelopeGenerator.Extensions; namespace EnvelopeGenerator.Application.Services { diff --git a/EnvelopeGenerator.Common/Constants.vb b/EnvelopeGenerator.Common/Constants.vb index 253680f3..d04f3bfd 100644 --- a/EnvelopeGenerator.Common/Constants.vb +++ b/EnvelopeGenerator.Common/Constants.vb @@ -1,6 +1,7 @@ Public Class Constants #Region "Status Fields" + 'http://wiki.dd/xwiki13/bin/view/Anwendungen/Produkt-Handbuch/Sonstiges/SignFlow/Envelope%20Status/ Public Enum EnvelopeStatus Invalid = 0 EnvelopeCreated = 1001 @@ -20,6 +21,8 @@ DocumentForwarded = 4001 SignatureConfirmed = 2006 DocumentRejected = 2007 + EnvelopeShared = 2008 + EnvelopeViewed = 2009 MessageInvitationSent = 3001 ' Wird von Trigger verwendet MessageAccessCodeSent = 3002 MessageConfirmationSent = 3003 @@ -95,7 +98,15 @@ DocumentDeleted DocumentCompleted DocumentAccessCodeReceived + DocumentShared + End Enum + + Public Enum EncodeType + EnvelopeReceiver + EnvelopeReceiverReadOnly + Undefined DocumentForwarded + DocumentShared End Enum #End Region @@ -111,4 +122,4 @@ Public Const RED_300 = "#fecaca" Public Const ORANGE_300 = "#fed7aa" #End Region -End Class +End Class \ No newline at end of file diff --git a/EnvelopeGenerator.Domain/Entities/Envelope.cs b/EnvelopeGenerator.Domain/Entities/Envelope.cs index 62f8dfd2..c422a430 100644 --- a/EnvelopeGenerator.Domain/Entities/Envelope.cs +++ b/EnvelopeGenerator.Domain/Entities/Envelope.cs @@ -84,10 +84,6 @@ namespace EnvelopeGenerator.Domain.Entities [Column("EXPIRES_WARNING_WHEN_DAYS")] public int? ExpiresWarningWhenDays { get; set; } - [Required] - [Column("DMZ_MOVED")] - public bool DmzMoved { get; set; } - /// /// The sender of envelope /// diff --git a/EnvelopeGenerator.Domain/Entities/EnvelopeDocument.cs b/EnvelopeGenerator.Domain/Entities/EnvelopeDocument.cs index f90ddce2..85d9ce77 100644 --- a/EnvelopeGenerator.Domain/Entities/EnvelopeDocument.cs +++ b/EnvelopeGenerator.Domain/Entities/EnvelopeDocument.cs @@ -31,6 +31,9 @@ namespace EnvelopeGenerator.Domain.Entities [Column("FILENAME_ORIGINAL", TypeName = "nvarchar(256)")] public required string FilenameOriginal { get; set; } + [Column("BYTE_DATA", TypeName = "varbinary(max)")] + public byte[]? ByteData { get; init; } + public IEnumerable? Elements { get; set; } } } \ No newline at end of file diff --git a/EnvelopeGenerator.Domain/Entities/EnvelopeReceiverReadOnly.cs b/EnvelopeGenerator.Domain/Entities/EnvelopeReceiverReadOnly.cs new file mode 100644 index 00000000..c7e9fc5b --- /dev/null +++ b/EnvelopeGenerator.Domain/Entities/EnvelopeReceiverReadOnly.cs @@ -0,0 +1,52 @@ +using System.ComponentModel.DataAnnotations.Schema; +using System.ComponentModel.DataAnnotations; +using DigitalData.Core.Abstractions; +using DigitalData.EmailProfilerDispatcher.Abstraction.Attributes; + +namespace EnvelopeGenerator.Domain.Entities +{ + [Table("TBSIG_ENVELOPE_RECEIVER_READ_ONLY")] + public class EnvelopeReceiverReadOnly : IUnique + { + [Key] + [DatabaseGenerated(DatabaseGeneratedOption.Identity)] + [Column("GUID")] + public long Id { get; init; } + + [Column("ENVELOPE_ID")] + [Required] + public long EnvelopeId { get; init; } + + //TODO: remove NotMapped attribute when EnvelopeId data type is standardized + [NotMapped] + public Envelope? Envelope { get; set; } + + [Column("RECEIVER_MAIL")] + [Required] + [StringLength(250)] + [TemplatePlaceholder("NAME_RECEIVER")] + public required string ReceiverMail { get; init; } + + [Column("DATE_VALID")] + [Required] + public DateTime DateValid { get; init; } + + [Column("ADDED_WHO")] + [Required] + [StringLength(100)] + public required string AddedWho { get; init; } + + public Receiver? Receiver { get; init; } + + [Column("ADDED_WHEN")] + [Required] + public DateTime AddedWhen { get; init; } + + [Column("CHANGED_WHO")] + [StringLength(100)] + public string? ChangedWho { get; init; } + + [Column("CHANGED_WHEN")] + public DateTime? ChangedWhen { get; init; } + } +} \ No newline at end of file diff --git a/EnvelopeGenerator.Application/EnvelopeGeneratorExtensions.cs b/EnvelopeGenerator.Extensions/DecodingExtensions.cs similarity index 64% rename from EnvelopeGenerator.Application/EnvelopeGeneratorExtensions.cs rename to EnvelopeGenerator.Extensions/DecodingExtensions.cs index b5b1c27f..d9b16f23 100644 --- a/EnvelopeGenerator.Application/EnvelopeGeneratorExtensions.cs +++ b/EnvelopeGenerator.Extensions/DecodingExtensions.cs @@ -1,12 +1,9 @@ -using Microsoft.Extensions.Logging; -using System.Text; +using System.Text; +using static EnvelopeGenerator.Common.Constants; -namespace EnvelopeGenerator.Application +namespace EnvelopeGenerator.Extensions { - /// - /// Provides extension methods for decoding and extracting information from an envelope receiver ID. - /// - public static class EnvelopeGeneratorExtensions + public static class DecodingExtensions { /// /// Validates whether a given string is a correctly formatted Base-64 encoded string. @@ -67,6 +64,40 @@ namespace EnvelopeGenerator.Application return input.IndexOf('=') == -1; // No padding allowed except at the end } + public static bool TryDecode(this string encodedKey, out string[] decodedKeys) + { + try + { + byte[] bytes = Convert.FromBase64String(encodedKey); + string decodedString = Encoding.UTF8.GetString(bytes); + decodedKeys = decodedString.Split(new string[] { "::" }, StringSplitOptions.None); + return true; + } + catch(ArgumentNullException) { } + catch (FormatException) { } + catch(ArgumentException) { } + + decodedKeys = Array.Empty(); + return false; + } + + public static EncodeType GetEncodeType(this string[] decodedKeys) => decodedKeys.Length switch + { + 2 => EncodeType.EnvelopeReceiver, + 3 => long.TryParse(decodedKeys[1], out var _) ? EncodeType.EnvelopeReceiverReadOnly : EncodeType.Undefined, + _ => EncodeType.Undefined, + }; + + public static (string? EnvelopeUuid, string? ReceiverSignature) ParseEnvelopeReceiverId(this string[] decodedKeys) + => decodedKeys.GetEncodeType() == EncodeType.EnvelopeReceiver + ? (EnvelopeUuid: decodedKeys[0], ReceiverSignature: decodedKeys[1]) + : throw new InvalidOperationException("Attempted to convert a decoded other than type EnvelopeReceiver to EnvelopeReceiver."); + + public static long ParseReadOnlyId(this string[] decodedKeys) + => decodedKeys.GetEncodeType() == EncodeType.EnvelopeReceiverReadOnly + ? long.Parse(decodedKeys[1]) + : throw new InvalidOperationException("Attempted to convert a decoded other than type EnvelopeReceiver to EnvelopeReceiver. "); + /// /// Decodes the envelope receiver ID and extracts the envelope UUID and receiver signature. /// @@ -79,7 +110,7 @@ namespace EnvelopeGenerator.Application return (null, null); } byte[] bytes = Convert.FromBase64String(envelopeReceiverId); - string decodedString = System.Text.Encoding.UTF8.GetString(bytes); + string decodedString = Encoding.UTF8.GetString(bytes); string[] parts = decodedString.Split(new string[] { "::" }, StringSplitOptions.None); if (parts.Length > 1) @@ -88,6 +119,22 @@ namespace EnvelopeGenerator.Application return (string.Empty, string.Empty); } + public static long? DecodeEnvelopeReceiverReadOnlyId(this string envelopeReceiverReadOnlyId) + { + if (!envelopeReceiverReadOnlyId.IsBase64String()) + { + return null; + } + byte[] bytes = Convert.FromBase64String(envelopeReceiverReadOnlyId); + string decodedString = System.Text.Encoding.UTF8.GetString(bytes); + string[] parts = decodedString.Split(new string[] { "::" }, StringSplitOptions.None); + + if (parts.Length > 2) + return long.TryParse(parts[1], out long readOnlyId) ? readOnlyId : null; + else + return null; + } + /// /// Gets the envelope UUID from the decoded envelope receiver ID. /// @@ -101,48 +148,5 @@ namespace EnvelopeGenerator.Application /// The base64 encoded string to decode. /// The receiver signature. public static string? GetReceiverSignature(this string envelopeReceiverId) => envelopeReceiverId.DecodeEnvelopeReceiverId().ReceiverSignature; - - public static string EncodeEnvelopeReceiverId(this (string envelopeUuid, string receiverSignature) input) - { - string combinedString = $"{input.envelopeUuid}::{input.receiverSignature}"; - byte[] bytes = Encoding.UTF8.GetBytes(combinedString); - string base64String = Convert.ToBase64String(bytes); - - return base64String; - } - - public static void LogEnvelopeError(this ILogger logger, string envelopeReceiverId, Exception? exception = null, string? message = null, params object?[] args) - { - var sb = new StringBuilder().AppendLine(envelopeReceiverId.DecodeEnvelopeReceiverId().ToTitle()); - - if (message is not null) - sb.AppendLine(message); - - if(exception is null) - logger.Log(LogLevel.Error, sb.ToString(), args); - else - logger.Log(LogLevel.Error, exception, sb.AppendLine(exception.Message).ToString(), args); - } - - public static void LogEnvelopeError(this ILogger logger, string? uuid, string? signature = null, Exception? exception = null, string? message = null, params object?[] args) - { - var sb = new StringBuilder($"Envelope Uuid: {uuid}"); - - if(signature is not null) - sb.AppendLine().Append($"Receiver Signature: {signature}"); - - if (message is not null) - sb.AppendLine().Append(message); - - if (exception is null) - logger.Log(LogLevel.Error, sb.ToString(), args); - else - logger.Log(LogLevel.Error, exception, sb.ToString(), args); - } - - public static string ToTitle(this (string? UUID, string? Signature) envelopeReceiverTuple) - { - return $"UUID is {envelopeReceiverTuple.UUID} and signature is {envelopeReceiverTuple.Signature}"; - } } } \ No newline at end of file diff --git a/EnvelopeGenerator.Extensions/EncodingExtensions.cs b/EnvelopeGenerator.Extensions/EncodingExtensions.cs new file mode 100644 index 00000000..e1acf0e9 --- /dev/null +++ b/EnvelopeGenerator.Extensions/EncodingExtensions.cs @@ -0,0 +1,30 @@ +using Microsoft.Extensions.Logging; +using System.Text; + +namespace EnvelopeGenerator.Extensions +{ + /// + /// Provides extension methods for decoding and extracting information from an envelope receiver ID. + /// + public static class EncodingExtensions + { + public static string EncodeEnvelopeReceiverId(this long readOnlyId) + { + //The random number is used as a salt to increase security but it is not saved in the database. + string combinedString = $"{Random.Shared.Next()}::{readOnlyId}::{Random.Shared.Next()}"; + byte[] bytes = Encoding.UTF8.GetBytes(combinedString); + string base64String = Convert.ToBase64String(bytes); + + return base64String; + } + + public static string EncodeEnvelopeReceiverId(this (string envelopeUuid, string receiverSignature) input) + { + string combinedString = $"{input.envelopeUuid}::{input.receiverSignature}"; + byte[] bytes = Encoding.UTF8.GetBytes(combinedString); + string base64String = Convert.ToBase64String(bytes); + + return base64String; + } + } +} \ No newline at end of file diff --git a/EnvelopeGenerator.Extensions/EnvelopeGenerator.Extensions.csproj b/EnvelopeGenerator.Extensions/EnvelopeGenerator.Extensions.csproj new file mode 100644 index 00000000..8467bc11 --- /dev/null +++ b/EnvelopeGenerator.Extensions/EnvelopeGenerator.Extensions.csproj @@ -0,0 +1,19 @@ + + + + net7.0 + enable + enable + + + + + + + + + + + + + diff --git a/EnvelopeGenerator.Extensions/LoggerExtensions.cs b/EnvelopeGenerator.Extensions/LoggerExtensions.cs new file mode 100644 index 00000000..b1c56974 --- /dev/null +++ b/EnvelopeGenerator.Extensions/LoggerExtensions.cs @@ -0,0 +1,42 @@ +using Microsoft.Extensions.Logging; +using System.Text; + +namespace EnvelopeGenerator.Extensions +{ + public static class LoggerExtensions + { + public static void LogEnvelopeError(this ILogger logger, string envelopeReceiverId, Exception? exception = null, string? message = null, params object?[] args) + { + var sb = new StringBuilder().AppendLine(envelopeReceiverId.DecodeEnvelopeReceiverId().ToTitle()); + + if (message is not null) + sb.AppendLine(message); + + if (exception is null) + logger.Log(LogLevel.Error, sb.ToString(), args); + else + logger.Log(LogLevel.Error, exception, sb.AppendLine(exception.Message).ToString(), args); + } + + public static void LogEnvelopeError(this ILogger logger, string? uuid, string? signature = null, Exception? exception = null, string? message = null, params object?[] args) + { + var sb = new StringBuilder($"Envelope Uuid: {uuid}"); + + if (signature is not null) + sb.AppendLine().Append($"Receiver Signature: {signature}"); + + if (message is not null) + sb.AppendLine().Append(message); + + if (exception is null) + logger.Log(LogLevel.Error, sb.ToString(), args); + else + logger.Log(LogLevel.Error, exception, sb.ToString(), args); + } + + public static string ToTitle(this (string? UUID, string? Signature) envelopeReceiverTuple) + { + return $"UUID is {envelopeReceiverTuple.UUID} and signature is {envelopeReceiverTuple.Signature}"; + } + } +} \ No newline at end of file diff --git a/EnvelopeGenerator.Web/XSSExtensions.cs b/EnvelopeGenerator.Extensions/XSSExtensions.cs similarity index 94% rename from EnvelopeGenerator.Web/XSSExtensions.cs rename to EnvelopeGenerator.Extensions/XSSExtensions.cs index 9b414fd6..3649df9d 100644 --- a/EnvelopeGenerator.Web/XSSExtensions.cs +++ b/EnvelopeGenerator.Extensions/XSSExtensions.cs @@ -2,7 +2,7 @@ using Microsoft.Extensions.Localization; using System.Text.Encodings.Web; -namespace EnvelopeGenerator.Web +namespace EnvelopeGenerator.Extensions { public static class XSSExtensions { diff --git a/EnvelopeGenerator.GeneratorAPI/Program.cs b/EnvelopeGenerator.GeneratorAPI/Program.cs index d14f3666..d95f039b 100644 --- a/EnvelopeGenerator.GeneratorAPI/Program.cs +++ b/EnvelopeGenerator.GeneratorAPI/Program.cs @@ -60,7 +60,7 @@ builder.Services.AddDirectorySearchService(); builder.Services.AddCookieBasedLocalizer() ; // Envelope generator serives -builder.Services.AddEnvelopeGenerator(); +builder.Services.AddEnvelopeGenerator(config); var app = builder.Build(); diff --git a/EnvelopeGenerator.Infrastructure/Contracts/IEnvelopeReceiverReadOnlyRepository.cs b/EnvelopeGenerator.Infrastructure/Contracts/IEnvelopeReceiverReadOnlyRepository.cs new file mode 100644 index 00000000..444937a9 --- /dev/null +++ b/EnvelopeGenerator.Infrastructure/Contracts/IEnvelopeReceiverReadOnlyRepository.cs @@ -0,0 +1,9 @@ +using DigitalData.Core.Abstractions.Infrastructure; +using EnvelopeGenerator.Domain.Entities; + +namespace EnvelopeGenerator.Infrastructure.Contracts +{ + public interface IEnvelopeReceiverReadOnlyRepository : ICRUDRepository + { + } +} diff --git a/EnvelopeGenerator.Infrastructure/EGDbContext.cs b/EnvelopeGenerator.Infrastructure/EGDbContext.cs index 449bd55e..e9a08d14 100644 --- a/EnvelopeGenerator.Infrastructure/EGDbContext.cs +++ b/EnvelopeGenerator.Infrastructure/EGDbContext.cs @@ -51,6 +51,8 @@ namespace EnvelopeGenerator.Infrastructure public DbSet EMailOuts { get; set; } + public DbSet EnvelopeReceiverReadOnlys { get; set; } + public EGDbContext(DbContextOptions options) : base(options) { UserReceivers = Set(); @@ -72,6 +74,7 @@ namespace EnvelopeGenerator.Infrastructure Users = Set(); UserReps = Set(); EMailOuts = Set(); + EnvelopeReceiverReadOnlys = Set(); } protected override void OnModelCreating(ModelBuilder modelBuilder) @@ -126,12 +129,19 @@ namespace EnvelopeGenerator.Infrastructure .HasForeignKey(eh => eh.UserReference) .HasPrincipalKey(e => e.Email); + modelBuilder.Entity() + .HasOne(erro => erro.Receiver) + .WithMany() + .HasForeignKey(erro => erro.AddedWho) + .HasPrincipalKey(r => r.EmailAddress); + // Configure entities to handle database triggers modelBuilder.Entity().ToTable(tb => tb.HasTrigger("TBSIG_ENVELOPE_HISTORY_AFT_INS")); modelBuilder.Entity().ToTable(tb => tb.HasTrigger("TBSIG_ENVELOPE_HISTORY_AFT_INS")); modelBuilder.Entity().ToTable(tb => tb.HasTrigger("TBEMLP_EMAIL_OUT_AFT_INS")); modelBuilder.Entity().ToTable(tb => tb.HasTrigger("TBEMLP_EMAIL_OUT_AFT_UPD")); - + modelBuilder.Entity().ToTable(tb => tb.HasTrigger("TBSIG_ENVELOPE_RECEIVER_READ_ONLY_UPD")); + //configure model builder for user manager tables modelBuilder.ConfigureUserManager(); diff --git a/EnvelopeGenerator.Infrastructure/Repositories/EnvelopeReceiverReadOnlyRepository.cs b/EnvelopeGenerator.Infrastructure/Repositories/EnvelopeReceiverReadOnlyRepository.cs new file mode 100644 index 00000000..3d037a20 --- /dev/null +++ b/EnvelopeGenerator.Infrastructure/Repositories/EnvelopeReceiverReadOnlyRepository.cs @@ -0,0 +1,70 @@ +using DigitalData.Core.Infrastructure; +using EnvelopeGenerator.Domain.Entities; +using EnvelopeGenerator.Infrastructure.Contracts; +using Microsoft.EntityFrameworkCore; + +namespace EnvelopeGenerator.Infrastructure.Repositories +{ + public class EnvelopeReceiverReadOnlyRepository : CRUDRepository, IEnvelopeReceiverReadOnlyRepository + { + private readonly IEnvelopeRepository _envRepo; + + public EnvelopeReceiverReadOnlyRepository(EGDbContext dbContext, IEnvelopeRepository envelopeRepository) : base(dbContext, dbContext.EnvelopeReceiverReadOnlys) + { + _envRepo = envelopeRepository; + } + + protected override IQueryable ReadOnly() + { + return base.ReadOnly() + //TODO: add again when EnvelopeId data type is standardized + //.Include(erro => erro.Envelope) + .Include(erro => erro.Receiver); + } + + public async override Task> ReadAllAsync() + { + var erros = await base.ReadAllAsync(); + return await IncludeEnvelope(erros); + } + + public override async Task ReadByIdAsync(long id) + { + var erro = await _dbSet.AsNoTracking() + .Include(erro => erro.Receiver) + .Where(erro => erro.Id == id) + .FirstOrDefaultAsync(); + + return await IncludeEnvelope(erro); + } + + //TODO: Use IQueryable.Include instead of this when ID type is clarified. + [Obsolete("Use IQueryable.Include instead of this when ID type is clarified.")] + private async Task IncludeEnvelope(EnvelopeReceiverReadOnly erro) + { + erro.Envelope = await _envRepo.ReadByIdAsync((int)erro.EnvelopeId); + return erro; + } + + //TODO: Use IQueryable.Include instead of this when ID type is clarified. + [Obsolete("Use IQueryable.Include instead of this when ID type is clarified.")] + private async Task> IncludeEnvelope(params EnvelopeReceiverReadOnly[] erros) + { + foreach (var erro in erros) + erro.Envelope = await _envRepo.ReadByIdAsync((int) erro.EnvelopeId); + + return erros; + } + + //TODO: Use IQueryable.Include instead of this when ID type is clarified. + [Obsolete("Use IQueryable.Include instead of this when ID type is clarified.")] + private async Task IncludeEnvelope(T erros) + where T : IEnumerable + { + foreach (var erro in erros) + erro.Envelope = await _envRepo.ReadByIdAsync((int)erro.EnvelopeId); + + return erros; + } + } +} \ No newline at end of file diff --git a/EnvelopeGenerator.Web/Controllers/BaseController.cs b/EnvelopeGenerator.Web/Controllers/BaseController.cs index ebdcc258..5fbb2cbd 100644 --- a/EnvelopeGenerator.Web/Controllers/BaseController.cs +++ b/EnvelopeGenerator.Web/Controllers/BaseController.cs @@ -1,5 +1,4 @@ -using EnvelopeGenerator.Common; -using EnvelopeGenerator.Web.Services; +using EnvelopeGenerator.Web.Services; using Microsoft.AspNetCore.Mvc; namespace EnvelopeGenerator.Web.Controllers diff --git a/EnvelopeGenerator.Web/Controllers/ControllerBaseExtensions.cs b/EnvelopeGenerator.Web/Controllers/ControllerBaseExtensions.cs index a505e848..0ad1e9f0 100644 --- a/EnvelopeGenerator.Web/Controllers/ControllerBaseExtensions.cs +++ b/EnvelopeGenerator.Web/Controllers/ControllerBaseExtensions.cs @@ -18,6 +18,12 @@ namespace EnvelopeGenerator.Web.Controllers public static string? GetAuthEnvelopeTitle(this ControllerBase controller) => controller.User.FindFirstValue(EnvelopeClaimTypes.Title); + public static int? GetAuthEnvelopeId(this ControllerBase controller) + { + var env_id_str = controller.User.FindFirstValue(EnvelopeClaimTypes.Id); + return int.TryParse(env_id_str, out int env_id) ? env_id : null; + } + //TODO: integrate localizer for ready-to-use views public static ViewResult ViewError(this Controller controller, ErrorViewModel errorViewModel) => controller.View("_Error", errorViewModel); diff --git a/EnvelopeGenerator.Web/Controllers/DocumentController.cs b/EnvelopeGenerator.Web/Controllers/DocumentController.cs index c418a143..09b10345 100644 --- a/EnvelopeGenerator.Web/Controllers/DocumentController.cs +++ b/EnvelopeGenerator.Web/Controllers/DocumentController.cs @@ -4,10 +4,12 @@ using EnvelopeGenerator.Web.Services; using EnvelopeGenerator.Application.Contracts; using Microsoft.AspNetCore.Authorization; using EnvelopeGenerator.Application; +using EnvelopeGenerator.Extensions; namespace EnvelopeGenerator.Web.Controllers { [Authorize] + [Route("api/[controller]")] public class DocumentController : BaseController { private readonly EnvelopeOldService envelopeService; @@ -47,7 +49,7 @@ namespace EnvelopeGenerator.Web.Controllers } [Authorize] - [HttpPost("api/document/{envelopeKey}")] + [HttpPost("{envelopeKey}")] public async Task Open(string envelopeKey) { try diff --git a/EnvelopeGenerator.Web/Controllers/EnvelopeController.cs b/EnvelopeGenerator.Web/Controllers/EnvelopeController.cs index 1353c8b1..9af9e4eb 100644 --- a/EnvelopeGenerator.Web/Controllers/EnvelopeController.cs +++ b/EnvelopeGenerator.Web/Controllers/EnvelopeController.cs @@ -1,13 +1,12 @@ using DigitalData.Core.DTO; -using EnvelopeGenerator.Application; using EnvelopeGenerator.Application.Contracts; using EnvelopeGenerator.Common; using EnvelopeGenerator.Web.Services; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using System.Text.Encodings.Web; -using EnvelopeGenerator.Application.DTOs.EnvelopeHistory; using static EnvelopeGenerator.Common.Constants; +using EnvelopeGenerator.Extensions; namespace EnvelopeGenerator.Web.Controllers { @@ -23,7 +22,6 @@ namespace EnvelopeGenerator.Web.Controllers private readonly IReceiverService _receiverService; private readonly IEnvelopeReceiverService _envRcvService; - public EnvelopeController(DatabaseService database, EnvelopeOldService envelope, ILogger logger, UrlEncoder urlEncoder, diff --git a/EnvelopeGenerator.Web/Controllers/HomeController.cs b/EnvelopeGenerator.Web/Controllers/HomeController.cs index 431901e7..ad5687d7 100644 --- a/EnvelopeGenerator.Web/Controllers/HomeController.cs +++ b/EnvelopeGenerator.Web/Controllers/HomeController.cs @@ -7,14 +7,18 @@ using Microsoft.AspNetCore.Mvc; using System.Security.Claims; using Microsoft.AspNetCore.Authorization; using DigitalData.Core.API; -using EnvelopeGenerator.Application; +using EnvelopeGenerator.Extensions; using Microsoft.Extensions.Localization; using DigitalData.Core.DTO; using Microsoft.AspNetCore.Localization; -using System.Text.Encodings.Web; using EnvelopeGenerator.Web.Models; using EnvelopeGenerator.Application.Resources; using EnvelopeGenerator.Application.DTOs.EnvelopeReceiver; +using static EnvelopeGenerator.Common.Constants; +using Ganss.Xss; +using Newtonsoft.Json; +using EnvelopeGenerator.Application.DTOs; +using EnvelopeGenerator.Domain.Entities; namespace EnvelopeGenerator.Web.Controllers { @@ -26,29 +30,68 @@ namespace EnvelopeGenerator.Web.Controllers private readonly IEnvelopeHistoryService _historyService; private readonly IStringLocalizer _localizer; private readonly IConfiguration _configuration; - private readonly UrlEncoder _urlEncoder; + private readonly HtmlSanitizer _sanitizer; private readonly Cultures _cultures; private readonly IEnvelopeMailService _mailService; - - public HomeController(EnvelopeOldService envelopeOldService, ILogger logger, IEnvelopeReceiverService envelopeReceiverService, IEnvelopeHistoryService historyService, IStringLocalizer localizer, IConfiguration configuration, UrlEncoder urlEncoder, Cultures cultures, IEnvelopeMailService envelopeMailService) + private readonly IEnvelopeReceiverReadOnlyService _readOnlyService; + + public HomeController(EnvelopeOldService envelopeOldService, ILogger logger, IEnvelopeReceiverService envelopeReceiverService, IEnvelopeHistoryService historyService, IStringLocalizer localizer, IConfiguration configuration, HtmlSanitizer sanitizer, Cultures cultures, IEnvelopeMailService envelopeMailService, IEnvelopeReceiverReadOnlyService readOnlyService) { this.envelopeOldService = envelopeOldService; _envRcvService = envelopeReceiverService; _historyService = historyService; _localizer = localizer; _configuration = configuration; - _urlEncoder = urlEncoder; + _sanitizer = sanitizer; _cultures = cultures; _mailService = envelopeMailService; _logger = logger; - } + _readOnlyService = readOnlyService; + } + + [HttpGet("/")] + public IActionResult Main([FromQuery] string? culture = null) + { + //TODO: add a middelware or use an asp.net functionality insead of this code-smell + culture = culture is not null ? _sanitizer.Sanitize(culture) : null; + + if (UserLanguage is null && culture is null) + { + UserLanguage = _cultures.Default.Language; + return Redirect($"{Request.Headers["Referer"]}?culture={_cultures.Default.Language}"); + } + + ViewData["UserCulture"] = _cultures[UserLanguage]; + + return View(); + } [HttpGet("EnvelopeKey/{envelopeReceiverId}")] - public async Task SendAccessCode([FromRoute] string envelopeReceiverId) + public async Task MainAsync([FromRoute] string envelopeReceiverId, [FromQuery] string? culture = null) { try { - envelopeReceiverId = _urlEncoder.Encode(envelopeReceiverId); + //TODO: add a middelware or use an asp.net functionality insead of this code-smell + culture = culture is not null ? _sanitizer.Sanitize(culture) : null; + envelopeReceiverId = _sanitizer.Sanitize(envelopeReceiverId); + + if (UserLanguage is null && culture is null) + { + UserLanguage = _cultures.Default.Language; + return Redirect($"{Request.Headers["Referer"]}?culture={_cultures.Default.Language}"); + } + + envelopeReceiverId = _sanitizer.Sanitize(envelopeReceiverId); + + if (!envelopeReceiverId.TryDecode(out var decoded)) + { + Response.StatusCode = StatusCodes.Status401Unauthorized; + return this.ViewDocumentNotFound(); + } + + if(decoded.GetEncodeType() == EncodeType.EnvelopeReceiverReadOnly) + return Redirect($"{envelopeReceiverId}/ReadOnly"); + ViewData["EnvelopeKey"] = envelopeReceiverId; return await _envRcvService.ReadByEnvelopeReceiverIdAsync(envelopeReceiverId: envelopeReceiverId).ThenAsync( @@ -85,22 +128,11 @@ namespace EnvelopeGenerator.Web.Controllers } [HttpGet("EnvelopeKey/{envelopeReceiverId}/Locked")] - public async Task EnvelopeLocked([FromRoute] string envelopeReceiverId, [FromQuery] string? culture = null) + public async Task EnvelopeLocked([FromRoute] string envelopeReceiverId) { try { - culture = culture is not null ? _urlEncoder.Encode(culture) : null; - envelopeReceiverId = _urlEncoder.Encode(envelopeReceiverId); - - if (UserLanguage is null && culture is null) - { - UserLanguage = _cultures.Default.Language; - return Redirect($"{Request.Headers["Referer"]}?culture={_cultures.Default.Language}"); - } - else if (UserLanguage is not null && culture is not null) - return Redirect($"Locked"); - - ViewData["UserCulture"] = _cultures[UserLanguage ?? culture]; + ViewData["UserCulture"] = _cultures[UserLanguage]; return await _envRcvService.IsExisting(envelopeReceiverId: envelopeReceiverId).ThenAsync( Success: isExisting => isExisting ? View().WithData("EnvelopeKey", envelopeReceiverId) : this.ViewEnvelopeNotFound(), @@ -125,7 +157,7 @@ namespace EnvelopeGenerator.Web.Controllers { ViewData["UserCulture"] = _cultures[UserLanguage]; - envelopeReceiverId = _urlEncoder.Encode(envelopeReceiverId); + envelopeReceiverId = _sanitizer.Sanitize(envelopeReceiverId); (string? uuid, string? signature) = envelopeReceiverId.DecodeEnvelopeReceiverId(); if (uuid is null || signature is null) @@ -175,24 +207,23 @@ namespace EnvelopeGenerator.Web.Controllers if (await _historyService.IsSigned(envelopeId: er.Envelope!.Id, userReference: er.Receiver!.EmailAddress)) return View("EnvelopeSigned"); - if (response.Envelope.Documents.Count > 0) + if (er.Envelope.Documents?.FirstOrDefault() is EnvelopeDocumentDto doc && doc.ByteData is not null) { - var document = await envelopeOldService.GetDocument(response.Envelope.Documents[0].Id, envelopeReceiverId); - byte[] bytes = await envelopeOldService.GetDocumentContents(document); - ViewData["DocumentBytes"] = bytes; + ViewData["DocumentBytes"] = doc.ByteData; } else { - _logger.LogEnvelopeError(envelopeReceiverId: envelopeReceiverId, message: "No document was found."); + _logger.LogEnvelopeError(envelopeReceiverId: envelopeReceiverId, message: "No document byte-data was found in ENVELOPE_DOCUMENT table."); return this.ViewDocumentNotFound(); - } + } var claims = new List { new(ClaimTypes.NameIdentifier, uuid), new(ClaimTypes.Hash, signature), new(ClaimTypes.Name, er.Name ?? string.Empty), new(ClaimTypes.Email, er.Receiver.EmailAddress), - new(EnvelopeClaimTypes.Title, er.Envelope.Title) + new(EnvelopeClaimTypes.Title, er.Envelope.Title), + new(EnvelopeClaimTypes.Id, er.Envelope.Id.ToString()) }; var claimsIdentity = new ClaimsIdentity(claims, CookieAuthenticationDefaults.AuthenticationScheme); @@ -232,7 +263,7 @@ namespace EnvelopeGenerator.Web.Controllers { try { - envelopeReceiverId = _urlEncoder.Encode(envelopeReceiverId); + envelopeReceiverId = _sanitizer.Sanitize(envelopeReceiverId); return await _envRcvService.IsExisting(envelopeReceiverId: envelopeReceiverId).ThenAsync( SuccessAsync: async isExisting => { @@ -244,6 +275,7 @@ namespace EnvelopeGenerator.Web.Controllers return Redirect($"/EnvelopeKey/{envelopeReceiverId}/Locked"); await HttpContext.SignOutAsync(CookieAuthenticationDefaults.AuthenticationScheme); + ViewData["UserCulture"] = _cultures[UserLanguage]; ViewData["EnvelopeKey"] = envelopeReceiverId; return View(); }, @@ -266,12 +298,12 @@ namespace EnvelopeGenerator.Web.Controllers { try { - envelopeReceiverId = _urlEncoder.Encode(envelopeReceiverId); + envelopeReceiverId = _sanitizer.Sanitize(envelopeReceiverId); await HttpContext.SignOutAsync(CookieAuthenticationDefaults.AuthenticationScheme); return await _envRcvService.ReadByEnvelopeReceiverIdAsync(envelopeReceiverId).ThenAsync( SuccessAsync: async (er) => - { + {ViewData["UserCulture"] = _cultures[UserLanguage]; ViewData["UserCulture"] = _cultures[UserLanguage]; return await _historyService.IsRejected(envelopeId: er.EnvelopeId) ? View(er) @@ -290,7 +322,81 @@ namespace EnvelopeGenerator.Web.Controllers return this.ViewInnerServiceError(); } } - + + [HttpGet("EnvelopeKey/{readOnlyKey}/ReadOnly")] + public async Task EnvelopeReceiverReadOnly([FromRoute] string readOnlyKey) + { + try + { + ViewData["UserCulture"] = _cultures[UserLanguage]; + + readOnlyKey = _sanitizer.Sanitize(readOnlyKey); + + // check if the readOnlyId is valid + if (!readOnlyKey.TryDecode(out var decodedKeys) || decodedKeys.GetEncodeType() != EncodeType.EnvelopeReceiverReadOnly) + { + Response.StatusCode = StatusCodes.Status401Unauthorized; + return this.ViewDocumentNotFound(); + } + + var readOnlyId = decodedKeys.ParseReadOnlyId(); + var erro_res = await _readOnlyService.ReadByIdAsync(readOnlyId); + if (erro_res.IsFailed) + { + _logger.LogNotice(erro_res.Notices); + return this.ViewInnerServiceError(); + } + + var erro = erro_res.Data; + + if (DateTime.Now > erro.DateValid) + return View("EnvelopeExpired"); + + return await _envRcvService.ReadByUuidSignatureAsync(uuid: erro.Envelope!.Uuid, erro.Receiver!.Signature).ThenAsync( + SuccessAsync: async er => + { + var envelopeKey = (er.Envelope!.Uuid, er.Receiver!.Signature).EncodeEnvelopeReceiverId(); + + EnvelopeResponse response = await envelopeOldService.LoadEnvelope(envelopeKey); + + //TODO: implement multi-threading to history process (Task) + var hist_res = await _historyService.RecordAsync((int)erro.EnvelopeId, erro.AddedWho, EnvelopeStatus.EnvelopeViewed); + if (hist_res.IsFailed) + { + _logger.LogError( + "Although the envelope was sent as read-only, the EnvelopeShared hisotry could not be saved. ReadOnly-key: {readOnlyKey}\nEnvelope Receiver:\n{envelopeReceiver}", + readOnlyKey, JsonConvert.SerializeObject(er)); + _logger.LogNotice(hist_res.Notices); + } + + if (er.Envelope.Documents?.FirstOrDefault() is EnvelopeDocumentDto doc && doc.ByteData is not null) + { + ViewData["DocumentBytes"] = doc.ByteData; + ViewData["EnvelopeKey"] = envelopeKey; + ViewData["IsReadOnly"] = true; + ViewData["ReadOnly"] = erro; + ViewData["PSPDFKitLicenseKey"] = _configuration["PSPDFKitLicenseKey"]; + return View("ShowEnvelope", er); + } + else + { + _logger.LogEnvelopeError(envelopeReceiverId: envelopeKey, message: "No document byte-data was found in ENVELOPE_DOCUMENT table."); + return this.ViewDocumentNotFound(); + } + }, + Fail: (messages, notices) => + { + _logger.LogNotice(notices); + return this.ViewEnvelopeNotFound(); + }); + } + catch (Exception ex) + { + _logger.LogError(ex, "An unexpected error occurred while displaying a read-only envelope. Read-only key is {readOnlyKey}. {message}", readOnlyKey, ex.Message); + return this.ViewInnerServiceError(); + } + } + [Authorize] [HttpGet("IsAuthenticated")] public IActionResult IsAuthenticated() @@ -305,7 +411,7 @@ namespace EnvelopeGenerator.Web.Controllers { try { - language = _urlEncoder.Encode(language); + language = _sanitizer.Sanitize(language); if (!_cultures.Languages.Contains(language)) return BadRequest(); diff --git a/EnvelopeGenerator.Web/Controllers/LocalizationController.cs b/EnvelopeGenerator.Web/Controllers/LocalizationController.cs index e4aad5af..ef594112 100644 --- a/EnvelopeGenerator.Web/Controllers/LocalizationController.cs +++ b/EnvelopeGenerator.Web/Controllers/LocalizationController.cs @@ -1,6 +1,5 @@ using EnvelopeGenerator.Application.Resources; using Ganss.Xss; -using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Localization; diff --git a/EnvelopeGenerator.Web/Controllers/ReadOnlyController.cs b/EnvelopeGenerator.Web/Controllers/ReadOnlyController.cs new file mode 100644 index 00000000..6b910d71 --- /dev/null +++ b/EnvelopeGenerator.Web/Controllers/ReadOnlyController.cs @@ -0,0 +1,101 @@ +using DigitalData.Core.DTO; +using EnvelopeGenerator.Application.Contracts; +using EnvelopeGenerator.Application.DTOs.EnvelopeReceiverReadOnly; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; +using Newtonsoft.Json; + +namespace EnvelopeGenerator.Web.Controllers +{ + [Route("api/[controller]")] + [ApiController] + public class ReadOnlyController : ControllerBase + { + private readonly ILogger _logger; + + private readonly IEnvelopeReceiverReadOnlyService _erroService; + + private readonly IEnvelopeMailService _mailService; + + private readonly IEnvelopeHistoryService _histService; + + public ReadOnlyController(ILogger logger, IEnvelopeReceiverReadOnlyService erroService, IEnvelopeMailService mailService, IEnvelopeHistoryService histService) + { + _logger = logger; + _erroService = erroService; + _mailService = mailService; + _histService = histService; + } + + [HttpPost] + [Authorize] + public async Task CreateAsync([FromBody] EnvelopeReceiverReadOnlyCreateDto createDto) + { + try + { + //set AddedWho + var authReceiverMail = this.GetAuthReceiverMail(); + if (authReceiverMail is null) + { + _logger.LogError("Email clam is not found in envelope-receiver-read-only creation process. Create DTO is:\n {dto}", JsonConvert.SerializeObject(createDto)); + return Unauthorized(); + } + + var envelopeId = this.GetAuthEnvelopeId(); + if (envelopeId is null) + { + _logger.LogError("Envelope Id clam is not found in envelope-receiver-read-only creation process. Create DTO is:\n {dto}", JsonConvert.SerializeObject(createDto)); + return Unauthorized(); + } + + createDto.AddedWho = authReceiverMail; + createDto.EnvelopeId = envelopeId; + + // create entity + var creation_res = await _erroService.CreateAsync(createDto: createDto); + + if (creation_res.IsFailed) + { + _logger.LogNotice(creation_res); + return StatusCode(StatusCodes.Status500InternalServerError); + } + + //read new entity + var read_res = await _erroService.ReadByIdAsync(creation_res.Data); + if (read_res.IsFailed) + { + _logger.LogNotice(creation_res); + return StatusCode(StatusCodes.Status500InternalServerError); + } + + var new_erro = read_res.Data; + + //send email two receiver + return await _mailService.SendAsync(new_erro).ThenAsync(SuccessAsync: async res => + { + //TODO: implement multi-threading to history process (Task) + //TODO: remove casting after change the id type + var hist_res = await _histService.RecordAsync((int)createDto.EnvelopeId, createDto.AddedWho, Common.Constants.EnvelopeStatus.EnvelopeShared); + if (hist_res.IsFailed) + { + _logger.LogError("Although the envelope was sent as read-only, the EnvelopeShared hisotry could not be saved. Create DTO:\n{createDto}", JsonConvert.SerializeObject(createDto)); + _logger.LogNotice(hist_res.Notices); + } + + return Ok(); + }, + + Fail: (msg, ntc) => + { + _logger.LogNotice(ntc); + return StatusCode(StatusCodes.Status500InternalServerError); + }); + } + catch(Exception ex) + { + _logger.LogError(ex, "{Message}", ex.Message); + return StatusCode(StatusCodes.Status500InternalServerError); + } + } + } +} \ No newline at end of file diff --git a/EnvelopeGenerator.Web/Controllers/Test/TestEnvelopeController.cs b/EnvelopeGenerator.Web/Controllers/Test/TestEnvelopeController.cs index acaecb9c..ea2b25f7 100644 --- a/EnvelopeGenerator.Web/Controllers/Test/TestEnvelopeController.cs +++ b/EnvelopeGenerator.Web/Controllers/Test/TestEnvelopeController.cs @@ -1,8 +1,8 @@ -using EnvelopeGenerator.Application; -using EnvelopeGenerator.Application.Contracts; +using EnvelopeGenerator.Application.Contracts; using EnvelopeGenerator.Application.DTOs; using EnvelopeGenerator.Domain.Entities; using Microsoft.AspNetCore.Mvc; +using EnvelopeGenerator.Extensions; namespace EnvelopeGenerator.Web.Controllers.Test { diff --git a/EnvelopeGenerator.Web/Controllers/Test/TestEnvelopeReceiverController.cs b/EnvelopeGenerator.Web/Controllers/Test/TestEnvelopeReceiverController.cs index 592688de..9c95ff17 100644 --- a/EnvelopeGenerator.Web/Controllers/Test/TestEnvelopeReceiverController.cs +++ b/EnvelopeGenerator.Web/Controllers/Test/TestEnvelopeReceiverController.cs @@ -1,7 +1,7 @@ using DigitalData.Core.API; using DigitalData.Core.DTO; using EnvelopeGenerator.Application.Contracts; -using EnvelopeGenerator.Application; +using EnvelopeGenerator.Extensions; using EnvelopeGenerator.Domain.Entities; using Microsoft.AspNetCore.Mvc; using EnvelopeGenerator.Application.DTOs.EnvelopeReceiver; @@ -40,13 +40,27 @@ namespace EnvelopeGenerator.Web.Controllers.Test } [HttpGet("decode")] - public IActionResult DecodeEnvelopeReceiverId(string envelopeReceiverId) + public IActionResult DecodeEnvelopeReceiverId(string envelopeReceiverId, bool isReadOnly = false) { - var decoded = envelopeReceiverId.DecodeEnvelopeReceiverId(); - return Ok(new { uuid = decoded.EnvelopeUuid, signature = decoded.ReceiverSignature }); + if (isReadOnly) + { + var readOnlyId = envelopeReceiverId.DecodeEnvelopeReceiverReadOnlyId(); + return Ok(new { readOnlyId }); + } + else + { + var (EnvelopeUuid, ReceiverSignature) = envelopeReceiverId.DecodeEnvelopeReceiverId(); + return Ok(new { uuid = EnvelopeUuid, signature = ReceiverSignature }); + } } [HttpGet("encode")] - public IActionResult EncodeEnvelopeReceiverId(string uuid, string signature) => Ok((uuid, signature).EncodeEnvelopeReceiverId()); + public IActionResult EncodeEnvelopeReceiverId(string? uuid = null, string? signature = null, long? readOnlyId = null) + { + if(readOnlyId is long readOnlyId_long) + return Ok(readOnlyId_long.EncodeEnvelopeReceiverId()); + else + return Ok((uuid ?? string.Empty, signature ?? string.Empty).EncodeEnvelopeReceiverId()); + } } } \ No newline at end of file diff --git a/EnvelopeGenerator.Web/Controllers/Test/TestViewController.cs b/EnvelopeGenerator.Web/Controllers/Test/TestViewController.cs index 09e06299..0522d951 100644 --- a/EnvelopeGenerator.Web/Controllers/Test/TestViewController.cs +++ b/EnvelopeGenerator.Web/Controllers/Test/TestViewController.cs @@ -1,10 +1,10 @@ -using EnvelopeGenerator.Application.Contracts; -using EnvelopeGenerator.Common; +using EnvelopeGenerator.Common; using EnvelopeGenerator.Web.Services; using Microsoft.AspNetCore.Mvc; namespace EnvelopeGenerator.Web.Controllers.Test { + [Route("api/test/[controller]")] public class TestViewController : BaseController { private readonly EnvelopeOldService envelopeOldService; @@ -16,13 +16,13 @@ namespace EnvelopeGenerator.Web.Controllers.Test _config = configuration; } - [HttpGet("/")] + [HttpGet] public IActionResult Index() { return View("Index"); } - [HttpPost("/")] + [HttpPost] public IActionResult DebugEnvelopes([FromForm] string? password) { try diff --git a/EnvelopeGenerator.Web/EnvelopeClaimTypes.cs b/EnvelopeGenerator.Web/EnvelopeClaimTypes.cs index dc32c4cb..a53fece9 100644 --- a/EnvelopeGenerator.Web/EnvelopeClaimTypes.cs +++ b/EnvelopeGenerator.Web/EnvelopeClaimTypes.cs @@ -9,5 +9,10 @@ /// Claim type for the title of an envelope. /// public static readonly string Title = $"Envelope{nameof(Title)}"; + + /// + /// Claim type for the ID of an envelope. + /// + public static readonly string Id = $"Envelope{nameof(Id)}"; } } \ No newline at end of file diff --git a/EnvelopeGenerator.Web/EnvelopeGenerator.Web.csproj b/EnvelopeGenerator.Web/EnvelopeGenerator.Web.csproj index 8fe87259..0d04bfa5 100644 --- a/EnvelopeGenerator.Web/EnvelopeGenerator.Web.csproj +++ b/EnvelopeGenerator.Web/EnvelopeGenerator.Web.csproj @@ -5,7 +5,7 @@ enable enable EnvelopeGenerator.Web - 2.1.1.0 + 2.5.0.0 Digital Data GmbH Digital Data GmbH EnvelopeGenerator.Web @@ -13,11 +13,18 @@ digital data envelope generator web EnvelopeGenerator.Web is an ASP.NET MVC application developed to manage signing processes. It uses Entity Framework Core (EF Core) for database operations. The user interface for signing processes is developed with Razor View Engine (.cshtml files) and JavaScript under wwwroot, integrated with PSPDFKit. This integration allows users to view and sign documents seamlessly. Assets\icon.ico - 2.1.1.0 - 2.1.1.0 + 2.5.0.0 + 2.5.0.0 Copyright © 2024 Digital Data GmbH. All rights reserved. + + + + + + + @@ -71,6 +78,7 @@ + diff --git a/EnvelopeGenerator.Web/Program.cs b/EnvelopeGenerator.Web/Program.cs index 81459100..c2c2a23d 100644 --- a/EnvelopeGenerator.Web/Program.cs +++ b/EnvelopeGenerator.Web/Program.cs @@ -83,7 +83,7 @@ try builder.Services.AddDbContext(options => options.UseSqlServer(connStr)); // Add envelope generator services - builder.Services.AddEnvelopeGenerator(); + builder.Services.AddEnvelopeGenerator(config); builder.Services.Configure(options => { @@ -130,8 +130,6 @@ try builder.Services.AddSingleton(config.GetSection("ContactLink").Get() ?? new()); - builder.Services.AddCookieConsentSettings(); - builder.Services.AddCookieBasedLocalizer(); builder.Services.AddSingleton(HtmlEncoder.Default); @@ -157,8 +155,6 @@ try builder.Services.AddMemoryCache(); - builder.ConfigureBySection(); - builder.ConfigureBySection(); var app = builder.Build(); diff --git a/EnvelopeGenerator.Web/Views/Home/EnvelopeExpired.cshtml b/EnvelopeGenerator.Web/Views/Home/EnvelopeExpired.cshtml new file mode 100644 index 00000000..7ba52d25 --- /dev/null +++ b/EnvelopeGenerator.Web/Views/Home/EnvelopeExpired.cshtml @@ -0,0 +1,24 @@ +@{ + ViewData["Title"] = "Abgelaufen"; +} +
+
+
+ + + + + + + + + + +
+

Abgelaufen!

+
+
+

Der Zeitraum für die gemeinsame Nutzung von Dokumenten ist abgelaufen.

+
+
+ \ No newline at end of file diff --git a/EnvelopeGenerator.Web/Views/Home/EnvelopeLocked.cshtml b/EnvelopeGenerator.Web/Views/Home/EnvelopeLocked.cshtml index eec2c588..6738e567 100644 --- a/EnvelopeGenerator.Web/Views/Home/EnvelopeLocked.cshtml +++ b/EnvelopeGenerator.Web/Views/Home/EnvelopeLocked.cshtml @@ -1,8 +1,6 @@ @{ var nonce = _accessor.HttpContext?.Items["csp-nonce"] as string; var logo = _logoOpt.Value; -} -@{ ViewData["Title"] = _localizer[WebKey.DocProtected]; var userCulture = ViewData["UserCulture"] as Culture; } @@ -35,23 +33,6 @@ - @@ -68,18 +49,4 @@

@_localizer[WebKey.LockedFooterBody]

- - \ No newline at end of file + \ No newline at end of file diff --git a/EnvelopeGenerator.Web/Views/Home/EnvelopeRejected.cshtml b/EnvelopeGenerator.Web/Views/Home/EnvelopeRejected.cshtml index 7e7999ba..8ba4a6b4 100644 --- a/EnvelopeGenerator.Web/Views/Home/EnvelopeRejected.cshtml +++ b/EnvelopeGenerator.Web/Views/Home/EnvelopeRejected.cshtml @@ -9,7 +9,6 @@ @using Newtonsoft.Json @using Newtonsoft.Json.Serialization @model EnvelopeReceiverDto; - @{ var userCulture = ViewData["UserCulture"] as Culture; var envelope = Model.Envelope; diff --git a/EnvelopeGenerator.Web/Views/Home/Main.cshtml b/EnvelopeGenerator.Web/Views/Home/Main.cshtml new file mode 100644 index 00000000..0cad22d5 --- /dev/null +++ b/EnvelopeGenerator.Web/Views/Home/Main.cshtml @@ -0,0 +1,36 @@ +@{ + var nonce = _accessor.HttpContext?.Items["csp-nonce"] as string; + var logo = _logoOpt.Value; + ViewData["Title"] = _localizer["Home"]; + var userCulture = ViewData["UserCulture"] as Culture; +} +
+
+ +
+ +
+

signFlow

+
+
+ +
+ @if (ViewData["ErrorMessage"] is string errMsg) + { + + } +
+ \ No newline at end of file diff --git a/EnvelopeGenerator.Web/Views/Home/ShowEnvelope.cshtml b/EnvelopeGenerator.Web/Views/Home/ShowEnvelope.cshtml index 96f33d1e..f92297f5 100644 --- a/EnvelopeGenerator.Web/Views/Home/ShowEnvelope.cshtml +++ b/EnvelopeGenerator.Web/Views/Home/ShowEnvelope.cshtml @@ -5,59 +5,81 @@ @using DigitalData.Core.DTO; @using EnvelopeGenerator.Application.DTOs; @using EnvelopeGenerator.Application.DTOs.EnvelopeReceiver +@using EnvelopeGenerator.Application.DTOs.EnvelopeReceiverReadOnly @using Newtonsoft.Json @using Newtonsoft.Json.Serialization @model EnvelopeReceiverDto; -@{ - ViewData["Title"] = _localizer[WebKey.SignDoc]; -} - @{ var userCulture = ViewData["UserCulture"] as Culture; var envelope = Model.Envelope; + var receiver_name = Model.Name; var document = Model.Envelope?.Documents?.FirstOrDefault(); var sender = Model.Envelope?.User; var pages = document?.Elements?.Select(e => e.Page) ?? Array.Empty(); int? signatureCount = document?.Elements?.Count(); var stPageIndexes = string.Join(pages.Count() > 1 ? ", " : "", pages.Take(pages.Count() - 1)) + (pages.Count() > 1 ? $" {_localizer[WebKey.and].TrySanitize(_sanitizer)} " : "") + pages.LastOrDefault(); + var isReadOnly = false; + if (ViewData["IsReadOnly"] is bool isReadOnly_bool) + isReadOnly = isReadOnly_bool; + + ViewData["Title"] = isReadOnly ? _localizer[WebKey.ViewDoc] : _localizer[WebKey.SignDoc]; }
+ @if (!isReadOnly) + {
- - -
- + }
-
Digital Data
-

signFlow

- Erfahren Sie mehr + + @if (!isReadOnly) + { +
+
+ + 0/@signatureCount Unterschriften + +
+ }

@($"{envelope?.Title}".TrySanitize(_sanitizer))

+ @if (isReadOnly) + { + var dateTimeSt = string.Empty; + if (ViewData["ReadOnly"] is EnvelopeReceiverReadOnlyDto readOnly) + dateTimeSt = readOnly.DateValid.ToLongDateString(); +
@string.Format(_localizer["ReadOnlyMessage"], receiver_name, dateTimeSt)
+ } + else + {
@($"{@envelope?.Message}".TrySanitize(_sanitizer))
+ }

@Html.Raw(string.Format(_localizer[WebKey.EnvelopeInfo2], /* sanitize separately but don't sanitize the URI */ @@ -70,18 +92,104 @@ sender?.Email.TrySanitize(_sanitizer)))

-
-
- - 0/@signatureCount Unterschriften - +
+
+
+ @if (!isReadOnly) + { + - + }
+@if (!isReadOnly) +{ + +} + @: const ENV_KEY = "@envelopeKey.TrySanitize(_sanitizer)" } + const IS_READONLY = @isReadOnly.ToString().ToLower(); + + const DEVICE_SCREEN_TYPE = window.innerWidth <= 768 ? 'mobile' : window.innerWidth <= 1024 ? 'tablet' : 'desktop'; + + const IS_DESKTOP_SIZE = DEVICE_SCREEN_TYPE == 'desktop' + + const IS_MOBILE_DEVICE = /Mobi|Android/i.test(window.navigator.userAgent); + + @@ -42,9 +58,9 @@ - + @await RenderSectionAsync("Scripts", required: false) @{ var settings = new JsonSerializerSettings @@ -64,6 +80,23 @@ @Html.AntiForgeryToken() diff --git a/EnvelopeGenerator.Web/Views/_ViewImports.cshtml b/EnvelopeGenerator.Web/Views/_ViewImports.cshtml index 1e3c2c8f..5a19cc58 100644 --- a/EnvelopeGenerator.Web/Views/_ViewImports.cshtml +++ b/EnvelopeGenerator.Web/Views/_ViewImports.cshtml @@ -1,6 +1,7 @@ @using EnvelopeGenerator.Web @using EnvelopeGenerator.Web.Models @using EnvelopeGenerator.Web.Sanitizers +@using EnvelopeGenerator.Extensions @using Microsoft.Extensions.Localization @using EnvelopeGenerator.Application.Resources @using Microsoft.Extensions.Options diff --git a/EnvelopeGenerator.Web/WebKey.cs b/EnvelopeGenerator.Web/WebKey.cs index c11c76a0..d87c179e 100644 --- a/EnvelopeGenerator.Web/WebKey.cs +++ b/EnvelopeGenerator.Web/WebKey.cs @@ -34,5 +34,7 @@ public static readonly string RejectionInfo2_ext = nameof(RejectionInfo2_ext); public static readonly string SigningProcessTitle = nameof(SigningProcessTitle); public static readonly string WelcomeToTheESignPortal = nameof(WelcomeToTheESignPortal); + public static readonly string ViewDoc = nameof(ViewDoc); + public static readonly string HomePageDescription = nameof(HomePageDescription); } } \ No newline at end of file diff --git a/EnvelopeGenerator.Web/appsettings.Development.json b/EnvelopeGenerator.Web/appsettings.Development.json index b6f634e5..0b99a3d1 100644 --- a/EnvelopeGenerator.Web/appsettings.Development.json +++ b/EnvelopeGenerator.Web/appsettings.Development.json @@ -5,5 +5,7 @@ "Default": "Information", "Microsoft.AspNetCore": "Warning" } - } + }, + "AdminPassword": "dd", + "UseCSPInDev": false } \ No newline at end of file diff --git a/EnvelopeGenerator.Web/appsettings.json b/EnvelopeGenerator.Web/appsettings.json index e3c23d6a..7f37fbf3 100644 --- a/EnvelopeGenerator.Web/appsettings.json +++ b/EnvelopeGenerator.Web/appsettings.json @@ -14,9 +14,7 @@ "ConnectionStrings": { "Default": "Server=SDD-VMP04-SQL17\\DD_DEVELOP01;Database=DD_ECM;User Id=sa;Password=dd;Encrypt=false;TrustServerCertificate=True;" }, - "AdminPassword": "dd", "PSPDFKitLicenseKey": "SXCtGGY9XA-31OGUXQK-r7c6AkdLGPm2ljuyDr1qu0kkhLvydg-Do-fxpNUF4Rq3fS_xAnZRNFRHbXpE6sQ2BMcCSVTcXVJO6tPviexjpiT-HnrDEySlUERJnnvh-tmeOWprxS6BySPnSILkmaVQtUfOIUS-cUbvvEYHTvQBKbSF8di4XHQFyfv49ihr51axm3NVV3AXwh2EiKL5C5XdqBZ4sQ4O7vXBjM2zvxdPxlxdcNYmiU83uAzw7B83O_jubPzya4CdUHh_YH7Nlp2gP56MeG1Sw2JhMtfG3Rj14Sg4ctaeL9p6AEWca5dDjJ2li5tFIV2fQSsw6A_cowLu0gtMm5i8IfJXeIcQbMC2-0wGv1oe9hZYJvFMdzhTM_FiejM0agemxt3lJyzuyP8zbBSOgp7Si6A85krLWPZptyZBTG7pp7IHboUHfPMxCXqi-zMsqewOJtQBE2mjntU-lPryKnssOpMPfswwQX7QSkJYV5EMqNmEhQX6mEkp2wcqFzMC7bJQew1aO4pOpvChUaMvb1vgRek0HxLag0nwQYX2YrYGh7F_xXJs-8HNwJe8H0-eW4x4faayCgM5rB5772CCCsD9ThZcvXFrjNHHLGJ8WuBUFm6LArvSfFQdii_7j-_sqHMpeKZt26NFgivj1A==", - "UseCSPInDev": true, "Content-Security-Policy": [ // The first format parameter {0} will be replaced by the nonce value. "default-src 'self'", "script-src 'self' 'nonce-{0}' 'unsafe-eval'", @@ -32,7 +30,7 @@ "NLog": { "throwConfigExceptions": true, "variables": { - "logDirectory": "E:\\EnvelopeGenerator\\Logs", + "logDirectory": "E:\\LogFiles\\Digital Data\\signFlow", "logFileNamePrefix": "${shortdate}-ECM.EnvelopeGenerator.Web" }, "targets": { @@ -77,21 +75,6 @@ "Audience": null, "Key": "8RGnd7x0G2TYLOIW4m_qlIls7MfbAIGNrpQJzMAUIvULHOLiG723znRa_MG-Z4yw3SErusOU4hTui2rVBMcCaQ" }, - "CookieConsentSettings": { - "PrivacyPolicyUrl": "./privacy-policy.en.html", - "LegalNoticeUrl": "./cookies-policy.en.html", - "ContentURL": "/cookie-consent-content", - "ButtonAgreeClass": "btn btn-primary", - "ButtonDontAgreeClass": "btn btn-link text-decoration-none none-display", - "ButtonSaveClass": "btn btn-secondary none-display", - "Lang": "de", - "DefaultLang": "en", - "CookieName": "cookie-consent-settings", - "CookieStorageDays": 1, - "ModalId": "bootstrapCookieConsentSettingsModal", - "AlsoUseLocalStorage": false, - "Categories": [ "necessary" ] - }, "ContactLink": { "Label": "Kontakt", "Href": "https://digitaldata.works/", @@ -113,12 +96,6 @@ } ], "DisableMultiLanguage": false, - "DispatcherConfig": { - "SendingProfile": 1, - "AddedWho": "DDEnvelopGenerator", - "ReminderTypeId": 202377, - "EmailAttmt1": "" - }, "Regexes": [ { "Pattern": "/^\\p{L}+(?:([\\ \\-\\']|(\\.\\ ))\\p{L}+)*$/u", @@ -135,5 +112,18 @@ "Src": "/img/digital_data.svg", "ShowPageClass": "dd-show-logo", "LockedPageClass": "dd-locked-logo" + }, + "DispatcherConfig": { + "SendingProfile": 1, + "AddedWho": "DDEnvelopGenerator", + "ReminderTypeId": 202377, + "EmailAttmt1": "" + }, + "MailConfig": { + "Placeholders": { + "[NAME_PORTAL]": "signFlow", + "[SIGNATURE_TYPE]": "signieren", + "[REASON]": "" + } } } \ No newline at end of file diff --git a/EnvelopeGenerator.Web/wwwroot/css/card.css b/EnvelopeGenerator.Web/wwwroot/css/card.css index 8904992d..f5e4df96 100644 --- a/EnvelopeGenerator.Web/wwwroot/css/card.css +++ b/EnvelopeGenerator.Web/wwwroot/css/card.css @@ -10,12 +10,11 @@ align-items: center; justify-content: center; flex-direction: column; - height: 10rem; + } .dd-card { background-color: #fff; - box-shadow: 0 0.625rem 0.625rem rgba(0, 0, 0, 0.2); display: flex; max-width: 100%; margin: 0; @@ -23,62 +22,88 @@ width: 100%; } -.dd-card h6 { - opacity: 0.6; - margin: 0; - letter-spacing: 0.0625rem; -} + .dd-card h6 { + opacity: 0.6; + margin: 0; + letter-spacing: 0.0625rem; + font-size: clamp(0.6rem, 1.33vw, 0.8rem); + } + + .dd-card h2 { + letter-spacing: 0.0625rem; + margin: 0; + font-size: clamp(1rem, 2.67vw, 1.67rem); + } .uppercase { text-transform: uppercase; } -.dd-card h2 { - letter-spacing: 0.0625rem; - margin: 0; -} - .dd-card-preview { background-color: #2A265F; color: #fff; - padding: 1.875rem; - max-width: 15.625rem; + padding: 0.1rem 1rem 1rem 1rem; + margin:0; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; } -.dd-card-preview a { - color: #fff; - display: inline-block; - font-size: 0.75rem; - opacity: 0.6; - margin-top: 1.875rem; - text-decoration: none; -} + .dd-card-preview a { + color: #fff; + opacity: 0.6; + } + + .dd-card-preview button { + border-width: 0; + align-items: center; + background-color: transparent; + color: white; + margin: 15% 0 0 0; + transition: color 0.25s ease; + + } + + .dd-card-preview button:hover { + color: #bebebe; + } + + .dd-card-preview span { + } .dd-card-info { - padding: 1rem 0 0 1.875rem; + padding: clamp(0.55rem, 2vw, .875rem) 0 0 clamp(0.55rem, 2.5vw, 1.7rem); + margin: 0; position: relative; width: 100%; } - .dd-card-info p { - opacity: 0.6; - font-size: 0.75rem; - opacity: 0.6; - margin-top: .875rem; + .dd-card-info p, .dd-card-info a, .dd-card-info small, .dd-card-info span { + opacity: 0.65; + font-size: clamp(0.55rem, 1.23vw, 0.75rem); + margin: clamp(0.55rem, 2vw, .875rem) 0 clamp(0.55rem, 2vw, .875rem) 0; text-decoration: none; + padding: 0; } +.app-logo { + width: clamp(4rem, 10vw, 5rem); + margin: 1rem 0 0 0; +} + .progress-container { text-align: right; - width: 9.375rem; + width: 100%; + margin: clamp(0.8rem, 2vw, 1rem) 0 0 0; } .progress { - position: relative; background-color: #ddd; border-radius: 0.1875rem; - height: 0.3125rem; - width: 10rem; + height: clamp(0.25rem, 1vw, 0.3125rem); + width: clamp(6rem, 20vw, 10rem); + position: relative; } .progress::after { @@ -87,189 +112,15 @@ position: absolute; top: 0; left: 0; - height: 0.3125rem; + height: clamp(0.25rem, 1vw, 0.3125rem); width: var(--progress-width, 1%); transition: width 1s ease; + opacity: 0.85; } .progress-text { - font-size: 0.625rem; + font-size: clamp(0.5rem, 1.5vw, 0.625rem); opacity: 0.6; - letter-spacing: 0.0625rem; + letter-spacing: clamp(0.05rem, 0.5vw, 0.0625rem); text-align: left; -} - -.dd-card-btn { - background-color: #2A265F; - border: 0; - border-radius: 3.125rem; - box-shadow: 0 0.625rem 0.625rem rgba(0, 0, 0, 0.2); - color: #fff; - font-size: 1rem; - padding: 0.75rem 1.5625rem; - position: absolute; - bottom: 1.875rem; - right: 1.875rem; - letter-spacing: 0.0625rem; -} - -/* SOCIAL PANEL CSS */ -.social-panel-container { - position: fixed; - right: 0; - bottom: 5rem; - transform: translateX(100%); - transition: transform 0.4s ease-in-out; -} - - .social-panel-container.visible { - transform: translateX(-0.625rem); - } - -.social-panel { - background-color: #fff; - border-radius: 16px; - box-shadow: 0 16px 31px -17px rgba(0,31,97,0.6); - border: 5px solid #001F61; - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; - font-family: 'Muli'; - position: relative; - height: 169px; - width: 370px; - max-width: calc(100% - 10px); -} - -.social-panel button.close-btn { - border: 0; - color: #97A5CE; - cursor: pointer; - font-size: 20px; - position: absolute; - top: 5px; - right: 5px; -} - -.social-panel button.close-btn:focus { - outline: none; -} - -.social-panel p { - background-color: #001F61; - border-radius: 0 0 10px 10px; - color: #fff; - font-size: 14px; - line-height: 18px; - padding: 2px 17px 6px; - position: absolute; - top: 0; - left: 50%; - margin: 0; - transform: translateX(-50%); - text-align: center; - width: 235px; -} - -.social-panel p i { - margin: 0 5px; -} - -.social-panel p a { - color: #FF7500; - text-decoration: none; -} - -.social-panel h4 { - margin: 20px 0; - color: #97A5CE; - font-family: 'Muli'; - font-size: 14px; - line-height: 18px; - text-transform: uppercase; -} - -.social-panel ul { - display: flex; - list-style-type: none; - padding: 0; - margin: 0; -} - -.social-panel ul li { - margin: 0 10px; -} - -.social-panel ul li a { - border: 1px solid #DCE1F2; - border-radius: 50%; - color: #001F61; - font-size: 20px; - display: flex; - justify-content: center; - align-items: center; - height: 50px; - width: 50px; - text-decoration: none; -} - -.social-panel ul li a:hover { - border-color: #FF6A00; - box-shadow: 0 9px 12px -9px #FF6A00; -} - -.floating-btn { - border-radius: 26.5px; - background-color: #001F61; - border: 1px solid #001F61; - box-shadow: 0 16px 22px -17px #03153B; - color: #fff; - cursor: pointer; - font-size: 16px; - line-height: 20px; - padding: 12px 20px; - position: fixed; - bottom: 20px; - right: 20px; - z-index: 999; -} - -.floating-btn:hover { - background-color: #ffffff; - color: #001F61; -} - -.floating-btn:focus { - outline: none; -} - -.floating-text { - background-color: #001F61; - border-radius: 10px 10px 0 0; - color: #fff; - font-family: 'Muli'; - padding: 7px 15px; - position: fixed; - bottom: 0; - left: 50%; - transform: translateX(-50%); - text-align: center; - z-index: 998; -} - -.floating-text a { - color: #FF7500; - text-decoration: none; -} - -@media screen and (max-width: 480px) { - - .social-panel-container.visible { - transform: translateX(0px); - } - - .floating-btn { - right: 10px; - } } \ No newline at end of file diff --git a/EnvelopeGenerator.Web/wwwroot/css/card.min.css b/EnvelopeGenerator.Web/wwwroot/css/card.min.css index 26d8b889..184fde7f 100644 --- a/EnvelopeGenerator.Web/wwwroot/css/card.min.css +++ b/EnvelopeGenerator.Web/wwwroot/css/card.min.css @@ -1 +1 @@ -@import url('https://fonts.googleapis.com/css?family=Muli&display=swap');*{box-sizing:border-box}.dd-cards-container{font-family:'Muli',sans-serif;display:flex;align-items:center;justify-content:center;flex-direction:column;height:10rem}.dd-card{background-color:#fff;box-shadow:0 .625rem .625rem rgba(0,0,0,.2);display:flex;max-width:100%;margin:0;overflow:hidden;width:100%}.dd-card h6{opacity:.6;margin:0;letter-spacing:.0625rem}.uppercase{text-transform:uppercase}.dd-card h2{letter-spacing:.0625rem;margin:0}.dd-card-preview{background-color:#2a265f;color:#fff;padding:1.875rem;max-width:15.625rem}.dd-card-preview a{color:#fff;display:inline-block;font-size:.75rem;opacity:.6;margin-top:1.875rem;text-decoration:none}.dd-card-info{padding:1rem 0 0 1.875rem;position:relative;width:100%}.dd-card-info p{opacity:.6;font-size:.75rem;opacity:.6;margin-top:.875rem;text-decoration:none}.progress-container{text-align:right;width:9.375rem}.progress{position:relative;background-color:#ddd;border-radius:.1875rem;height:.3125rem;width:10rem}.progress::after{background-color:#2a265f;content:'';position:absolute;top:0;left:0;height:.3125rem;width:var(--progress-width,1%);transition:width 1s ease}.progress-text{font-size:.625rem;opacity:.6;letter-spacing:.0625rem;text-align:left}.dd-card-btn{background-color:#2a265f;border:0;border-radius:3.125rem;box-shadow:0 .625rem .625rem rgba(0,0,0,.2);color:#fff;font-size:1rem;padding:.75rem 1.5625rem;position:absolute;bottom:1.875rem;right:1.875rem;letter-spacing:.0625rem}.social-panel-container{position:fixed;right:0;bottom:5rem;transform:translateX(100%);transition:transform .4s ease-in-out}.social-panel-container.visible{transform:translateX(-.625rem)}.social-panel{background-color:#fff;border-radius:16px;box-shadow:0 16px 31px -17px rgba(0,31,97,.6);border:5px solid #001f61;display:flex;flex-direction:column;justify-content:center;align-items:center;font-family:'Muli';position:relative;height:169px;width:370px;max-width:calc(100% - 10px)}.social-panel button.close-btn{border:0;color:#97a5ce;cursor:pointer;font-size:20px;position:absolute;top:5px;right:5px}.social-panel button.close-btn:focus{outline:0}.social-panel p{background-color:#001f61;border-radius:0 0 10px 10px;color:#fff;font-size:14px;line-height:18px;padding:2px 17px 6px;position:absolute;top:0;left:50%;margin:0;transform:translateX(-50%);text-align:center;width:235px}.social-panel p i{margin:0 5px}.social-panel p a{color:#ff7500;text-decoration:none}.social-panel h4{margin:20px 0;color:#97a5ce;font-family:'Muli';font-size:14px;line-height:18px;text-transform:uppercase}.social-panel ul{display:flex;list-style-type:none;padding:0;margin:0}.social-panel ul li{margin:0 10px}.social-panel ul li a{border:1px solid #dce1f2;border-radius:50%;color:#001f61;font-size:20px;display:flex;justify-content:center;align-items:center;height:50px;width:50px;text-decoration:none}.social-panel ul li a:hover{border-color:#ff6a00;box-shadow:0 9px 12px -9px #ff6a00}.floating-btn{border-radius:26.5px;background-color:#001f61;border:1px solid #001f61;box-shadow:0 16px 22px -17px #03153b;color:#fff;cursor:pointer;font-size:16px;line-height:20px;padding:12px 20px;position:fixed;bottom:20px;right:20px;z-index:999}.floating-btn:hover{background-color:#fff;color:#001f61}.floating-btn:focus{outline:0}.floating-text{background-color:#001f61;border-radius:10px 10px 0 0;color:#fff;font-family:'Muli';padding:7px 15px;position:fixed;bottom:0;left:50%;transform:translateX(-50%);text-align:center;z-index:998}.floating-text a{color:#ff7500;text-decoration:none}@media screen and (max-width:480px){.social-panel-container.visible{transform:translateX(0)}.floating-btn{right:10px}} \ No newline at end of file +@import url('https://fonts.googleapis.com/css?family=Muli&display=swap');*{box-sizing:border-box}.dd-cards-container{font-family:'Muli',sans-serif;display:flex;align-items:center;justify-content:center;flex-direction:column}.dd-card{background-color:#fff;display:flex;max-width:100%;margin:0;overflow:hidden;width:100%}.dd-card h6{opacity:.6;margin:0;letter-spacing:.0625rem;font-size:clamp(.6rem,1.33vw,.8rem)}.dd-card h2{letter-spacing:.0625rem;margin:0;font-size:clamp(1rem,2.67vw,1.67rem)}.uppercase{text-transform:uppercase}.dd-card-preview{background-color:#2a265f;color:#fff;padding:.1rem 1rem 1rem 1rem;margin:0;display:flex;flex-direction:column;justify-content:center;align-items:center}.dd-card-preview a{color:#fff;opacity:.6}.dd-card-preview button{border-width:0;align-items:center;background-color:transparent;color:#fff;margin:15% 0 0 0;transition:color .25s ease}.dd-card-preview button:hover{color:#bebebe}.dd-card-info{padding:clamp(.55rem,2vw,.875rem) 0 0 clamp(.55rem,2.5vw,1.7rem);margin:0;position:relative;width:100%}.dd-card-info p,.dd-card-info a,.dd-card-info small,.dd-card-info span{opacity:.65;font-size:clamp(.55rem,1.23vw,.75rem);margin:clamp(.55rem,2vw,.875rem) 0 clamp(.55rem,2vw,.875rem) 0;text-decoration:none;padding:0}.app-logo{width:clamp(4rem,10vw,5rem);margin:1rem 0 0 0}.progress-container{text-align:right;width:100%;margin:clamp(.8rem,2vw,1rem) 0 0 0}.progress{background-color:#ddd;border-radius:.1875rem;height:clamp(.25rem,1vw,.3125rem);width:clamp(6rem,20vw,10rem);position:relative}.progress::after{background-color:#2a265f;content:'';position:absolute;top:0;left:0;height:clamp(.25rem,1vw,.3125rem);width:var(--progress-width,1%);transition:width 1s ease;opacity:.85}.progress-text{font-size:clamp(.5rem,1.5vw,.625rem);opacity:.6;letter-spacing:clamp(.05rem,.5vw,.0625rem);text-align:left} \ No newline at end of file diff --git a/EnvelopeGenerator.Web/wwwroot/css/logo.css b/EnvelopeGenerator.Web/wwwroot/css/logo.css index 5cd9526e..86ce775a 100644 --- a/EnvelopeGenerator.Web/wwwroot/css/logo.css +++ b/EnvelopeGenerator.Web/wwwroot/css/logo.css @@ -24,6 +24,7 @@ @media (max-width: 767px) { .dd-show-logo { width: 5rem; + margin-right: 0rem; } .cursor-show-logo { diff --git a/EnvelopeGenerator.Web/wwwroot/css/logo.min.css b/EnvelopeGenerator.Web/wwwroot/css/logo.min.css index 3b0dcc86..a1da6147 100644 --- a/EnvelopeGenerator.Web/wwwroot/css/logo.min.css +++ b/EnvelopeGenerator.Web/wwwroot/css/logo.min.css @@ -1 +1 @@ -.dd-locked-logo{width:13rem;padding-top:1rem}.dd-show-logo{width:9rem;position:absolute;right:0;margin:0 2rem 0 0;padding:0;top:0}.cursor-locked-logo{width:9rem;padding-top:1rem}.cursor-show-logo{width:6rem}@media(max-width:767px){.dd-show-logo{width:5rem}.cursor-show-logo{width:3rem}} \ No newline at end of file +.dd-locked-logo{width:13rem;padding-top:1rem}.dd-show-logo{width:9rem;position:absolute;right:0;margin:0 2rem 0 0;padding:0;top:0}.cursor-locked-logo{width:9rem;padding-top:1rem}.cursor-show-logo{width:6rem}@media(max-width:767px){.dd-show-logo{width:5rem;margin-right:0}.cursor-show-logo{width:3rem}} \ No newline at end of file diff --git a/EnvelopeGenerator.Web/wwwroot/css/site.css b/EnvelopeGenerator.Web/wwwroot/css/site.css index 4caea544..90f162d4 100644 --- a/EnvelopeGenerator.Web/wwwroot/css/site.css +++ b/EnvelopeGenerator.Web/wwwroot/css/site.css @@ -31,39 +31,90 @@ } .button-finish { - transition: background-color linear 300ms; - background-color: #059669; /* emerald-600 */ - color: white; - border-left: none; + color: #fff; + background-color: #0d6efd; + border-color: #0d6efd; } - .button-finish:hover, .button-finish:focus, .button-finish:active { - background-color: #10b981; /* emerald-500 */ - color: white; + .button-finish:hover { + color: #fff; + background-color: #0b5ed7; + border-color: #0a58ca; + } + + .button-finish:focus { + box-shadow: 0 0 0 0.25rem rgba(49, 132, 253, 0.5); + } + + .button-finish:active { + color: #fff; + background-color: #0a58ca; + border-color: #0a53be; + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + } + + .button-finish:disabled { + color: #fff; + background-color: #0d6efd; + border-color: #0d6efd; } .button-reject { - transition: background-color linear 300ms; - background-color: #d97706; /* amber-600 */ - color: white; - border-left: none; + color: #fff; + background-color: #dc3545; + border-color: #dc3545; } - .button-reject:hover, .button-reject:focus, .button-reject:active { - background-color: #f59e0b; /* amber-500 */ - color: white; + .button-reject:hover { + color: #fff; + background-color: #bb2d3b; + border-color: #b02a37; + } + + .button-reject:focus { + box-shadow: 0 0 0 0.25rem rgba(225, 83, 97, 0.5); + } + + .button-reject:active { + color: #fff; + background-color: #b02a37; + border-color: #a52834; + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + } + + .button-reject:disabled { + color: #fff; + background-color: #dc3545; + border-color: #dc3545; } .button-reset { - transition: background-color linear 300ms; - background-color: #2563eb; /* blue-600 */ - color: white; - border-left: none; + color: #fff; + background-color: #6c757d; + border-color: #6c757d; } - .button-reset:hover, .button-reset:focus, .button-reset:active { - background-color: #3b82f6; /* blue-500 */ - color: white; + .button-reset:hover { + color: #fff; + background-color: #5c636a; + border-color: #565e64; + } + + .button-reset:focus { + box-shadow: 0 0 0 0.25rem rgba(130, 138, 145, 0.5); + } + + .button-reset:active { + color: #fff; + background-color: #565e64; + border-color: #51585e; + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + } + + .button-reset:disabled { + color: #fff; + background-color: #6c757d; + border-color: #6c757d; } body { @@ -79,6 +130,15 @@ main { margin: 0 0 0.5vh 0; } +.home-description { + text-align: justify; + font-family: Consolas,Monaco,Lucida Console,Liberation Mono,DejaVu Sans Mono,Bitstream Vera Sans Mono,Courier New; + font-weight: 500; + font-size: .95em; + letter-spacing: -1px; + word-spacing: -2px; +} + .envelope-view { display: flex; /* d-flex */ flex-direction: column; /* flex-column */ @@ -96,6 +156,7 @@ main { footer { height: 4vh; + min-height: 1.5rem; background-color: #001F61; border-radius: 10px 10px 0 0; color: #fff; @@ -106,14 +167,15 @@ footer { width: 100%; z-index: 998; border-width: 0; + font-size: clamp(0.58rem, 1.5vw, 1rem); + display: flex; + flex-direction: row; + justify-content: space-around; + align-items: center; } footer * { - margin-left: 1rem; - } - - footer > * { - margin: 0 6rem 0 1rem; + margin-left: clamp(0.5rem, 2vw, 1rem); } footer a { @@ -121,6 +183,18 @@ footer { text-decoration: none; } + footer .dropdown-toggle, footer .flag-dropdown, footer li { + margin: 0; + padding: 0; + border-width: 0; + } + + footer .dropdown-menu a { + padding: 0.25rem 1rem 0.25rem 1rem; + margin-left: 0; + user-select: none; + } + .page { margin-top: 3rem; background: white; @@ -161,6 +235,11 @@ footer { color: #fff; } + .page header .icon.expired { + background-color: rgba(228, 216, 213, 0.5); + color: #fff; + } + .page .form { max-width: 30rem; margin: 2rem auto; @@ -343,9 +422,9 @@ footer#page-footer { height: 2.5rem; } -.flag-dropdown button { +/*.flag-dropdown button { height: 100%; -} +}*/ .header-1 { align-items: center; @@ -364,6 +443,27 @@ footer#page-footer { .no-receiver-explanation { padding: 2.5rem; } + +.ajs-message.ajs-custom { + margin: 0rem 0rem 0rem 0rem; + padding: 0rem 0rem 0rem 0rem; + width:50rem; +} + + .ajs-message.ajs-custom .alert { + display: flex; + flex-direction: row; + } + + .ajs-message.ajs-custom span { + margin: 0 1rem 0 0; + } + + .ajs-message.ajs-custom p { + margin: 0; + padding: 0; + } + /* styles for mobile responsiveness */ @media (max-height: 850px) { .navbar .container { @@ -472,6 +572,12 @@ footer#page-footer { } } +@media (max-width: 1024px) { + #flex-action-panel, .btn-desktop { + display: none; + } +} + @media (max-height: 600px) { .collapse { height: 4rem; diff --git a/EnvelopeGenerator.Web/wwwroot/css/site.min.css b/EnvelopeGenerator.Web/wwwroot/css/site.min.css index ee2b7189..d10c4ed6 100644 --- a/EnvelopeGenerator.Web/wwwroot/css/site.min.css +++ b/EnvelopeGenerator.Web/wwwroot/css/site.min.css @@ -1 +1 @@ -.navbar-toggler{border:0}.material-symbols-outlined{align-content:center}.btn-group{margin-right:10vw;margin-bottom:10vh}.btn_refresh,.btn_reject,.btn_complete{height:2.5rem}.btn_complete .icon,.btn_reject .icon,.btn_refresh .icon{width:1.1rem}.btn_complete span,.btn_reject span,.btn_refresh span{vertical-align:middle}.button-finish{transition:background-color linear 300ms;background-color:#059669;color:#fff;border-left:0}.button-finish:hover,.button-finish:focus,.button-finish:active{background-color:#10b981;color:#fff}.button-reject{transition:background-color linear 300ms;background-color:#d97706;color:#fff;border-left:0}.button-reject:hover,.button-reject:focus,.button-reject:active{background-color:#f59e0b;color:#fff}.button-reset{transition:background-color linear 300ms;background-color:#2563eb;color:#fff;border-left:0}.button-reset:hover,.button-reset:focus,.button-reset:active{background-color:#3b82f6;color:#fff}body{background:#f8fcfc;display:flex;flex-direction:column;height:100vh;margin:0}main{display:flex;margin:0 0 .5vh 0}.envelope-view{display:flex;flex-direction:column;width:100vw;height:95.9vh}#app{background:#808080;width:100vw;height:100%;flex-grow:1;border-width:0}footer{height:4vh;background-color:#001f61;border-radius:10px 10px 0 0;color:#fff;font-family:'Muli';padding:.5vh 0;position:fixed;bottom:0;width:100%;z-index:998;border-width:0}footer *{margin-left:1rem}footer>*{margin:0 6rem 0 1rem}footer a{color:#ff7500;text-decoration:none}.page{margin-top:3rem;background:#fff;border-radius:.313rem;box-shadow:rgba(9,30,66,.25) 0 .25rem .5rem -.125rem,rgba(9,30,66,.08) 0 0 0 .063rem;max-width:40rem}.page section{max-width:30rem;margin:0 auto}.page header .icon{display:inline-block;border-radius:6.25rem;padding:.938rem;margin-bottom:2rem}.page header .icon.admin{background-color:#331904;color:#fecba1}.page header .icon.locked{background-color:#ffc107;color:#000}.page header .icon.signed{background-color:#146c43;color:#fff}.page header .icon.rejected{background-color:#e4d8d5;color:#fff}.page .form{max-width:30rem;margin:2rem auto;display:flex;gap:1rem}#form-access-code>.input,#form-admin-password>.input{flex-grow:1}#page-admin header .icon{background-color:#331904;color:#fecba1}.envelope{display:block;border:.063rem solid #eee;margin-bottom:1rem;padding:.5rem}footer#page-footer{color:#333;max-width:40rem;margin-top:1rem;font-size:.85rem}footer#page-footer a,footer#page-footer a:link,footer#page-footer a:hover,footer#page-footer a:visited,footer#page-footer a:focus{color:#444}.sender-card{background-color:transparent;border:0}.sender-card .row{height:7vh}.sender-card img{height:7vh;background-color:#d1cfcf;border-radius:3.125rem}.navbar .container{display:flex;padding:0;margin:0}.navbar-toggler{padding:0;margin:0;width:4rem;left:0}.envelope-message{position:absolute;display:flex;width:calc(100% - 8rem);align-items:center;justify-content:start;margin-left:4rem}.envelope-message .icon{margin-right:.5rem}.envelope-message .message{font-family:'Roboto',sans-serif;font-size:16px;font-weight:550}.logo{width:9rem;position:absolute;right:0;margin-right:2rem}.none-display{display:none}.dropdown-flag img,.img-flag{width:30%;height:70%}.dropdown-flag{height:75%;width:75%}.increase-dropdown-height{min-height:25rem}.dropdown-flag .select2-container{width:100%!important;max-width:11.25rem}.lang-item{font-size:.85rem}#langDropdownMenuButton{min-width:4vw}.highlight{font-weight:700;font-size:.85rem}.signature-process-title,.signature-process-name{font-size:1.125rem}.mail-link{color:#000;text-decoration:none}.mail-link:hover{text-decoration:underline}#flex-action-panel{z-index:1050}#form-access-code{justify-content:space-evenly}.access-code-form-floating{display:flex;justify-content:start;flex-direction:row}.access-code-form-floating button{align-content:center;border-bottom-left-radius:0;border-top-left-radius:0}.access-code-form-floating input{align-content:center;border-bottom-right-radius:0;border-top-right-radius:0;border-right-width:0;width:7rem}#access-code-error-message{justify-content:center;align-content:center;margin:1.5rem 7rem 0 7rem;height:2.5rem}.flag-dropdown button{height:100%}.header-1{align-items:center;justify-content:space-between;margin-top:0;padding-top:0}.header-1 .text{text-align:center;margin-left:1.5vw;margin-top:0;padding-top:0}.no-receiver-explanation{padding:2.5rem}@media(max-height:850px){.navbar .container{display:flex;padding:0;margin:0}.navbar-toggler{padding:0;margin:0;width:4rem;left:0}.envelope-message{width:calc(100% - 4rem - 9rem)}.envelope-message .message{font-size:14px;font-weight:550}.logo{width:9rem;position:absolute;right:0}.card-text,.card-text{font-size:.6rem;margin:0;padding:0}.highlight{font-weight:700;font-size:.5rem}.signature-process-title,.signature-process-name{font-size:.7rem}}@media(max-width:767px){.navbar{flex-direction:column;align-items:flex-start}.navbar-brand{font-size:.5rem;text-align:center;overflow:hidden;text-overflow:ellipsis}.envelope-message{width:calc(100% - 4rem - 4.5rem);margin-left:3rem}.envelope-message .message{font-size:12px;font-weight:550}.envelope-message .icon{margin-right:.1rem;font-size:1rem}.logo{width:5rem;right:0;margin-right:1rem}.btn_group{position:fixed;flex-direction:row;bottom:.5rem;right:.5rem}.img-fluid{width:1.2rem;height:100%;display:none}.page{margin-top:1rem;max-width:90%;padding:.5rem}.page section{max-width:90%}#form-access-code{margin-left:0}}@media(max-height:600px){.collapse{height:4rem}} \ No newline at end of file +.navbar-toggler{border:0}.material-symbols-outlined{align-content:center}.btn-group{margin-right:10vw;margin-bottom:10vh}.btn_refresh,.btn_reject,.btn_complete{height:2.5rem}.btn_complete .icon,.btn_reject .icon,.btn_refresh .icon{width:1.1rem}.btn_complete span,.btn_reject span,.btn_refresh span{vertical-align:middle}.button-finish{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.button-finish:hover{color:#fff;background-color:#0b5ed7;border-color:#0a58ca}.button-finish:focus{box-shadow:0 0 0 .25rem rgba(49,132,253,.5)}.button-finish:active{color:#fff;background-color:#0a58ca;border-color:#0a53be;box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.button-finish:disabled{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.button-reject{color:#fff;background-color:#dc3545;border-color:#dc3545}.button-reject:hover{color:#fff;background-color:#bb2d3b;border-color:#b02a37}.button-reject:focus{box-shadow:0 0 0 .25rem rgba(225,83,97,.5)}.button-reject:active{color:#fff;background-color:#b02a37;border-color:#a52834;box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.button-reject:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.button-reset{color:#fff;background-color:#6c757d;border-color:#6c757d}.button-reset:hover{color:#fff;background-color:#5c636a;border-color:#565e64}.button-reset:focus{box-shadow:0 0 0 .25rem rgba(130,138,145,.5)}.button-reset:active{color:#fff;background-color:#565e64;border-color:#51585e;box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.button-reset:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}body{background:#f8fcfc;display:flex;flex-direction:column;height:100vh;margin:0}main{display:flex;margin:0 0 .5vh 0}.home-description{text-align:justify;font-family:Consolas,Monaco,Lucida Console,Liberation Mono,DejaVu Sans Mono,Bitstream Vera Sans Mono,Courier New;font-weight:500;font-size:.95em;letter-spacing:-1px;word-spacing:-2px}.envelope-view{display:flex;flex-direction:column;width:100vw;height:95.9vh}#app{background:#808080;width:100vw;height:100%;flex-grow:1;border-width:0}footer{height:4vh;min-height:1.5rem;background-color:#001f61;border-radius:10px 10px 0 0;color:#fff;font-family:'Muli';padding:.5vh 0;position:fixed;bottom:0;width:100%;z-index:998;border-width:0;font-size:clamp(.58rem,1.5vw,1rem);display:flex;flex-direction:row;justify-content:space-around;align-items:center}footer *{margin-left:clamp(.5rem,2vw,1rem)}footer a{color:#ff7500;text-decoration:none}footer .dropdown-toggle,footer .flag-dropdown,footer li{margin:0;padding:0;border-width:0}footer .dropdown-menu a{padding:.25rem 1rem .25rem 1rem;margin-left:0;user-select:none}.page{margin-top:3rem;background:#fff;border-radius:.313rem;box-shadow:rgba(9,30,66,.25) 0 .25rem .5rem -.125rem,rgba(9,30,66,.08) 0 0 0 .063rem;max-width:40rem}.page section{max-width:30rem;margin:0 auto}.page header .icon{display:inline-block;border-radius:6.25rem;padding:.938rem;margin-bottom:2rem}.page header .icon.admin{background-color:#331904;color:#fecba1}.page header .icon.locked{background-color:#ffc107;color:#000}.page header .icon.signed{background-color:#146c43;color:#fff}.page header .icon.rejected{background-color:#e4d8d5;color:#fff}.page header .icon.expired{background-color:rgba(228,216,213,.5);color:#fff}.page .form{max-width:30rem;margin:2rem auto;display:flex;gap:1rem}#form-access-code>.input,#form-admin-password>.input{flex-grow:1}#page-admin header .icon{background-color:#331904;color:#fecba1}.envelope{display:block;border:.063rem solid #eee;margin-bottom:1rem;padding:.5rem}footer#page-footer{color:#333;max-width:40rem;margin-top:1rem;font-size:.85rem}footer#page-footer a,footer#page-footer a:link,footer#page-footer a:hover,footer#page-footer a:visited,footer#page-footer a:focus{color:#444}.sender-card{background-color:transparent;border:0}.sender-card .row{height:7vh}.sender-card img{height:7vh;background-color:#d1cfcf;border-radius:3.125rem}.navbar .container{display:flex;padding:0;margin:0}.navbar-toggler{padding:0;margin:0;width:4rem;left:0}.envelope-message{position:absolute;display:flex;width:calc(100% - 8rem);align-items:center;justify-content:start;margin-left:4rem}.envelope-message .icon{margin-right:.5rem}.envelope-message .message{font-family:'Roboto',sans-serif;font-size:16px;font-weight:550}.logo{width:9rem;position:absolute;right:0;margin-right:2rem}.none-display{display:none}.dropdown-flag img,.img-flag{width:30%;height:70%}.dropdown-flag{height:75%;width:75%}.increase-dropdown-height{min-height:25rem}.dropdown-flag .select2-container{width:100%!important;max-width:11.25rem}.lang-item{font-size:.85rem}#langDropdownMenuButton{min-width:4vw}.highlight{font-weight:700;font-size:.85rem}.signature-process-title,.signature-process-name{font-size:1.125rem}.mail-link{color:#000;text-decoration:none}.mail-link:hover{text-decoration:underline}#flex-action-panel{z-index:1050}#form-access-code{justify-content:space-evenly}.access-code-form-floating{display:flex;justify-content:start;flex-direction:row}.access-code-form-floating button{align-content:center;border-bottom-left-radius:0;border-top-left-radius:0}.access-code-form-floating input{align-content:center;border-bottom-right-radius:0;border-top-right-radius:0;border-right-width:0;width:7rem}#access-code-error-message{justify-content:center;align-content:center;margin:1.5rem 7rem 0 7rem;height:2.5rem}.header-1{align-items:center;justify-content:space-between;margin-top:0;padding-top:0}.header-1 .text{text-align:center;margin-left:1.5vw;margin-top:0;padding-top:0}.no-receiver-explanation{padding:2.5rem}.ajs-message.ajs-custom{margin:0 0 0 0;padding:0 0 0 0;width:50rem}.ajs-message.ajs-custom .alert{display:flex;flex-direction:row}.ajs-message.ajs-custom span{margin:0 1rem 0 0}.ajs-message.ajs-custom p{margin:0;padding:0}@media(max-height:850px){.navbar .container{display:flex;padding:0;margin:0}.navbar-toggler{padding:0;margin:0;width:4rem;left:0}.envelope-message{width:calc(100% - 4rem - 9rem)}.envelope-message .message{font-size:14px;font-weight:550}.logo{width:9rem;position:absolute;right:0}.card-text,.card-text{font-size:.6rem;margin:0;padding:0}.highlight{font-weight:700;font-size:.5rem}.signature-process-title,.signature-process-name{font-size:.7rem}}@media(max-width:767px){.navbar{flex-direction:column;align-items:flex-start}.navbar-brand{font-size:.5rem;text-align:center;overflow:hidden;text-overflow:ellipsis}.envelope-message{width:calc(100% - 4rem - 4.5rem);margin-left:3rem}.envelope-message .message{font-size:12px;font-weight:550}.envelope-message .icon{margin-right:.1rem;font-size:1rem}.logo{width:5rem;right:0;margin-right:1rem}.btn_group{position:fixed;flex-direction:row;bottom:.5rem;right:.5rem}.img-fluid{width:1.2rem;height:100%;display:none}.page{margin-top:1rem;max-width:90%;padding:.5rem}.page section{max-width:90%}#form-access-code{margin-left:0}}@media(max-width:1024px){#flex-action-panel,.btn-desktop{display:none}}@media(max-height:600px){.collapse{height:4rem}} \ No newline at end of file diff --git a/EnvelopeGenerator.Web/wwwroot/img/sign_flow.svg b/EnvelopeGenerator.Web/wwwroot/img/sign_flow.svg new file mode 100644 index 00000000..5a7f8864 --- /dev/null +++ b/EnvelopeGenerator.Web/wwwroot/img/sign_flow.svg @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/EnvelopeGenerator.Web/wwwroot/img/sign_flow_horizontal.svg b/EnvelopeGenerator.Web/wwwroot/img/sign_flow_horizontal.svg new file mode 100644 index 00000000..05716cb8 --- /dev/null +++ b/EnvelopeGenerator.Web/wwwroot/img/sign_flow_horizontal.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/EnvelopeGenerator.Web/wwwroot/img/sign_flow_min.svg b/EnvelopeGenerator.Web/wwwroot/img/sign_flow_min.svg new file mode 100644 index 00000000..c158178a --- /dev/null +++ b/EnvelopeGenerator.Web/wwwroot/img/sign_flow_min.svg @@ -0,0 +1,3 @@ + + + diff --git a/EnvelopeGenerator.Web/wwwroot/js/annotation.js b/EnvelopeGenerator.Web/wwwroot/js/annotation.js index 8aa021e6..0e5d8e32 100644 --- a/EnvelopeGenerator.Web/wwwroot/js/annotation.js +++ b/EnvelopeGenerator.Web/wwwroot/js/annotation.js @@ -102,8 +102,8 @@ const formFieldCity = new PSPDFKit.FormFields.TextFormField({ name: id_city, annotationIds: PSPDFKit.Immutable.List([annotation_city.id]), - value: isMobile() ? location.city : "", - readOnly: isMobile() + value: IS_MOBILE_DEVICE ? location.city : "", + readOnly: IS_MOBILE_DEVICE }) this.markFieldAsRequired(formFieldCity); diff --git a/EnvelopeGenerator.Web/wwwroot/js/api-service.js b/EnvelopeGenerator.Web/wwwroot/js/api-service.js index 70a05a70..fb300853 100644 --- a/EnvelopeGenerator.Web/wwwroot/js/api-service.js +++ b/EnvelopeGenerator.Web/wwwroot/js/api-service.js @@ -1,25 +1,29 @@ class Content { - static get JSON () { + static get JSON() { return 'application/json'; } } class API { - static get REJECT_URL () { + static get REJECT_URL() { return `/api/envelope/reject`; } - static get REJECT_REDIR_URL(){ + static get REJECT_REDIR_URL() { return `/envelopekey/${API.ENV_KEY}/rejected`; } + static get SHARE_URL() { + return `/api/readonly` + } + static __XSRF_TOKEN static get XSRF_TOKEN() { API.__XSRF_TOKEN ??= document.getElementsByName('__RequestVerificationToken')[0].value; return API.__XSRF_TOKEN; } - static get ENV_KEY(){ + static get ENV_KEY() { return ENV_KEY ?? document.querySelector('meta[name="env-key"]').getAttribute('content'); } } @@ -28,20 +32,20 @@ const submitForm = async form => await fetch(form.action, { method: form.method, body: new FormData(form), headers: { - "X-Requested-With": "XMLHttpRequest" + "X-Requested-With": "XMLHttpRequest" } }) const createRequest = async (method, url, body, contentType) => { - return fetch(url, { - credentials: 'include', - method: method, - headers: { - 'Content-Type': contentType, - 'X-XSRF-TOKEN': API.XSRF_TOKEN - }, - body: JSON.stringify(body) - }) + return fetch(url, { + credentials: 'include', + method: method, + headers: { + 'Content-Type': contentType, + 'X-XSRF-TOKEN': API.XSRF_TOKEN + }, + body: JSON.stringify(body) + }) } const createPost = (url, body, contentType) => createRequest('POST', url, body, contentType); @@ -50,4 +54,6 @@ const rejectEnvelope = (reason) => createPost(API.REJECT_URL, reason, Content.JS const redirect = (url) => window.location.href = url; -const redirRejected = () => redirect(API.REJECT_REDIR_URL); \ No newline at end of file +const redirRejected = () => redirect(API.REJECT_REDIR_URL); + +const shareEnvelope = (receiverMail, dateValid) => createPost(API.SHARE_URL, { receiverMail: receiverMail, dateValid: dateValid }, Content.JSON); \ No newline at end of file diff --git a/EnvelopeGenerator.Web/wwwroot/js/api-service.min.js b/EnvelopeGenerator.Web/wwwroot/js/api-service.min.js index 3c4ccd64..88783099 100644 --- a/EnvelopeGenerator.Web/wwwroot/js/api-service.min.js +++ b/EnvelopeGenerator.Web/wwwroot/js/api-service.min.js @@ -1,2 +1,2 @@ -class Content{static get JSON(){return"application/json"}}class API{static get REJECT_URL(){return`/api/envelope/reject`}static get REJECT_REDIR_URL(){return`/envelopekey/${API.ENV_KEY}/rejected`}static __XSRF_TOKEN - static get XSRF_TOKEN(){return API.__XSRF_TOKEN??=document.getElementsByName("__RequestVerificationToken")[0].value,API.__XSRF_TOKEN}static get ENV_KEY(){return ENV_KEY??document.querySelector('meta[name="env-key"]').getAttribute("content")}}const submitForm=async n=>await fetch(n.action,{method:n.method,body:new FormData(n),headers:{"X-Requested-With":"XMLHttpRequest"}}),createRequest=async(n,t,i,r)=>fetch(t,{credentials:"include",method:n,headers:{"Content-Type":r,"X-XSRF-TOKEN":API.XSRF_TOKEN},body:JSON.stringify(i)}),createPost=(n,t,i)=>createRequest("POST",n,t,i),rejectEnvelope=n=>createPost(API.REJECT_URL,n,Content.JSON),redirect=n=>window.location.href=n,redirRejected=()=>redirect(API.REJECT_REDIR_URL); \ No newline at end of file +class Content{static get JSON(){return"application/json"}}class API{static get REJECT_URL(){return`/api/envelope/reject`}static get REJECT_REDIR_URL(){return`/envelopekey/${API.ENV_KEY}/rejected`}static get SHARE_URL(){return`/api/readonly`}static __XSRF_TOKEN + static get XSRF_TOKEN(){return API.__XSRF_TOKEN??=document.getElementsByName("__RequestVerificationToken")[0].value,API.__XSRF_TOKEN}static get ENV_KEY(){return ENV_KEY??document.querySelector('meta[name="env-key"]').getAttribute("content")}}const submitForm=async n=>await fetch(n.action,{method:n.method,body:new FormData(n),headers:{"X-Requested-With":"XMLHttpRequest"}}),createRequest=async(n,t,i,r)=>fetch(t,{credentials:"include",method:n,headers:{"Content-Type":r,"X-XSRF-TOKEN":API.XSRF_TOKEN},body:JSON.stringify(i)}),createPost=(n,t,i)=>createRequest("POST",n,t,i),rejectEnvelope=n=>createPost(API.REJECT_URL,n,Content.JSON),redirect=n=>window.location.href=n,redirRejected=()=>redirect(API.REJECT_REDIR_URL),shareEnvelope=(n,t)=>createPost(API.SHARE_URL,{receiverMail:n,dateValid:t},Content.JSON); \ No newline at end of file diff --git a/EnvelopeGenerator.Web/wwwroot/js/app.js b/EnvelopeGenerator.Web/wwwroot/js/app.js index 2e337132..bddb55b8 100644 --- a/EnvelopeGenerator.Web/wwwroot/js/app.js +++ b/EnvelopeGenerator.Web/wwwroot/js/app.js @@ -48,7 +48,7 @@ class App { // Load PSPDFKit this.Instance = await UI.loadPSPDFKit(arrayBuffer, this.container, this.licenseKey, this.locale) - UI.configurePSPDFKit(this.Instance, this.handleClick.bind(this)) + UI.addToolbarItems(this.Instance, this.handleClick.bind(this)) this.Instance.addEventListener( 'annotations.load', @@ -87,6 +87,7 @@ class App { //add click events of external buttons [...document.getElementsByClassName('btn_refresh')].forEach(btn => btn.addEventListener('click', _ => this.handleClick('RESET'))); [...document.getElementsByClassName('btn_complete')].forEach(btn => btn.addEventListener('click', _ => this.handleClick('FINISH'))); + [...document.getElementsByClassName('btn_reject')].forEach(btn => btn.addEventListener('click', _ => this.handleClick('REJECT'))); } handleAnnotationsLoad(loadedAnnotations) { @@ -149,8 +150,7 @@ class App { icon: 'info', }) } - - break + break; case 'FINISH': result = await this.handleFinish(null) @@ -159,23 +159,70 @@ class App { // Redirect to success page after saving to database window.location.href = `/EnvelopeKey/${this.envelopeKey}/Success` } - - break + break; case 'REJECT': - alert('Dokument abgelent!') + Swal.fire({ + title: localized.rejection, + html: `
${localized.rejectionReasonQ}
`, + icon: "question", + input: "text", + inputAttributes: { + autocapitalize: "off" + }, + showCancelButton: true, + confirmButtonColor: "#3085d6", + cancelButtonColor: "#d33", + confirmButtonText: localized.complete, + cancelButtonText: localized.back, + showLoaderOnConfirm: true, + preConfirm: async (reason) => { + try { + var res = await rejectEnvelope(reason); + return res; + } catch (error) { + Swal.showValidationMessage(` + Request failed: ${error} + `); + } + }, + allowOutsideClick: () => !Swal.isLoading() + }).then((result) => { + if (!result.isConfirmed) + return; + const res = result.value; + if (res.ok) { + redirRejected() + } + else + Swal.showValidationMessage(`Request failed: ${res.message}`); + }); + break; + case 'COPY_URL': + const url = window.location.href.replace(/\/readonly/gi, ''); + navigator.clipboard.writeText(url).then(function () { + bsNotify('Kopiert', { alert_type: 'success', delay: 4, icon_name: 'check_circle' }); + }).catch(function (err) { + bsNotify('Unerwarteter Fehler', { alert_type: 'danger', delay: 4, icon_name: 'error' }); + }); + break; + + case 'SHARE': + // Show the modal + Comp.ShareBackdrop.show(); + break; } } async handleFinish(event) { const iJSON = await this.Instance.exportInstantJSON() const iFormFieldValues = await iJSON.formFieldValues; - + //check required const iReqFields = iFormFieldValues.filter(f => Annotation.isFieldRequired(f)) const hasEmptyReq = iReqFields.some(f => (f.value === undefined || f.value === null || f.value === "")) - if (hasEmptyReq){ + if (hasEmptyReq) { Swal.fire({ title: 'Warnung', text: 'Bitte füllen Sie alle Standortinformationen vollständig aus!', @@ -187,8 +234,8 @@ class App { //check city const city_regex = new RegExp("^[a-zA-Z\\u0080-\\u024F]+(?:([\\ \\-\\']|(\\.\\ ))[a-zA-Z\\u0080-\\u024F]+)*$") const iCityFields = iFormFieldValues.filter(f => Annotation.isCityField(f)) - for(var f of iCityFields) - if(!city_regex.test(f.value)){ + for (var f of iCityFields) + if (!IS_MOBILE_DEVICE && !city_regex.test(f.value)) { Swal.fire({ title: 'Warnung', text: `Bitte überprüfen Sie die eingegebene Ortsangabe "${f.value}" auf korrekte Formatierung. Beispiele für richtige Formate sind: München, Île-de-France, Sauðárkrókur, San Francisco, St. Catharines usw.`, diff --git a/EnvelopeGenerator.Web/wwwroot/js/app.min.js b/EnvelopeGenerator.Web/wwwroot/js/app.min.js index 2bca05c7..bd2d1384 100644 --- a/EnvelopeGenerator.Web/wwwroot/js/app.min.js +++ b/EnvelopeGenerator.Web/wwwroot/js/app.min.js @@ -1 +1,3 @@ -const ActionType={Created:0,Saved:1,Sent:2,EmailSent:3,Delivered:4,Seen:5,Signed:6,Rejected:7};class App{constructor(n,t,i,r,u,f){this.container=f??`#${this.constructor.name.toLowerCase()}`;this.envelopeKey=n;this.Network=new Network;this.Instance=null;this.currentDocument=null;this.currentReceiver=null;this.signatureCount=0;this.envelopeReceiver=t;this.documentBytes=i;this.licenseKey=r;this.locale=u}async init(){this.currentDocument=this.envelopeReceiver.envelope.documents[0];this.currentReceiver=this.envelopeReceiver.receiver;const n=this.documentBytes;if(n.fatal||n.error)return Swal.fire({title:"Fehler",text:"Dokument konnte nicht geladen werden!",icon:"error"});const t=this.documentBytes;this.Instance=await UI.loadPSPDFKit(t,this.container,this.licenseKey,this.locale);UI.configurePSPDFKit(this.Instance,this.handleClick.bind(this));this.Instance.addEventListener("annotations.load",this.handleAnnotationsLoad.bind(this));this.Instance.addEventListener("annotations.change",this.handleAnnotationsChange.bind(this));this.Instance.addEventListener("annotations.create",this.handleAnnotationsCreate.bind(this));this.Instance.addEventListener("annotations.willChange",()=>{Comp.ActPanel.Toggle()});try{this.signatureCount=this.currentDocument.elements.length;await Annotation.createAnnotations(this.currentDocument,this.Instance);const n=await this.Network.openDocument(this.envelopeKey);if(n.fatal||n.error)return Swal.fire({title:"Fehler",text:"Umschlag konnte nicht geöffnet werden!",icon:"error"})}catch(i){}[...document.getElementsByClassName("btn_refresh")].forEach(n=>n.addEventListener("click",()=>this.handleClick("RESET")));[...document.getElementsByClassName("btn_complete")].forEach(n=>n.addEventListener("click",()=>this.handleClick("FINISH")))}handleAnnotationsLoad(n){n.toJS()}handleAnnotationsChange(){}async handleAnnotationsCreate(n){const t=n.toJS()[0],i=!!t.formFieldName,r=!!t.isSignature;if(i===!1&&r===!0){const r=t.boundingBox.left-20,u=t.boundingBox.top-20,n=150,i=75,f=new Date,e=await Annotation.createAnnotationFrameBlob(this.envelopeReceiver.name,this.currentReceiver.signature,f,n,i),o=await fetch(e),s=await o.blob(),h=await this.Instance.createAttachment(s),c=Annotation.createImageAnnotation(new PSPDFKit.Geometry.Rect({left:r,top:u,width:n,height:i}),t.pageIndex,h);this.Instance.create(c)}}async handleClick(n){let t=!1;switch(n){case"RESET":t=await this.handleReset(null);Comp.SignatureProgress.SignedCount=0;t.isConfirmed&&Swal.fire({title:"Erfolg",text:"Dokument wurde zurückgesetzt",icon:"info"});break;case"FINISH":t=await this.handleFinish(null);t==!0&&(window.location.href=`/EnvelopeKey/${this.envelopeKey}/Success`);break;case"REJECT":alert("Dokument abgelent!")}}async handleFinish(){const n=await this.Instance.exportInstantJSON(),t=await n.formFieldValues,r=t.filter(n=>Annotation.isFieldRequired(n)),u=r.some(n=>n.value===undefined||n.value===null||n.value==="");if(u)return Swal.fire({title:"Warnung",text:"Bitte füllen Sie alle Standortinformationen vollständig aus!",icon:"warning"}),!1;const f=new RegExp("^[a-zA-Z\\u0080-\\u024F]+(?:([\\ \\-\\']|(\\.\\ ))[a-zA-Z\\u0080-\\u024F]+)*$"),e=t.filter(n=>Annotation.isCityField(n));for(var i of e)if(!f.test(i.value))return Swal.fire({title:"Warnung",text:`Bitte überprüfen Sie die eingegebene Ortsangabe "${i.value}" auf korrekte Formatierung. Beispiele für richtige Formate sind: München, Île-de-France, Sauðárkrókur, San Francisco, St. Catharines usw.`,icon:"warning"}),!1;const o=await this.validateAnnotations(this.signatureCount);return o===!1?(Swal.fire({title:"Warnung",text:"Es wurden nicht alle Signaturfelder ausgefüllt!",icon:"warning"}),!1):Swal.fire({title:localized.confirmation,html:`
${localized.sigAgree}
`,icon:"question",showCancelButton:!0,confirmButtonColor:"#3085d6",cancelButtonColor:"#d33",confirmButtonText:localized.finalize,cancelButtonText:localized.back}).then(async t=>{if(t.isConfirmed){try{await this.Instance.save()}catch(i){return Swal.fire({title:"Fehler",text:"Umschlag konnte nicht signiert werden!",icon:"error"}),!1}try{const i=await n,t=await this.Network.postEnvelope(this.envelopeKey,this.currentDocument.id,i);return t.fatal?(Swal.fire({title:"Fehler",text:"Umschlag konnte nicht signiert werden!",icon:"error"}),!1):t.error?(Swal.fire({title:"Warnung",text:"Umschlag ist nicht mehr verfügbar.",icon:"warning"}),!1):!0}catch(i){return!1}}else return!1})}async validateAnnotations(n){const t=await Annotation.getAnnotations(this.Instance),i=t.map(n=>n.toJS()).filter(n=>n.isSignature);return n>i.length?!1:!0}async handleReset(){const n=await Swal.fire({title:"Sind sie sicher?",text:"Wollen Sie das Dokument und alle erstellten Signaturen zurücksetzen?",icon:"question",showCancelButton:!0});if(n.isConfirmed){const n=await Annotation.deleteAnnotations(this.Instance)}return n}} \ No newline at end of file +const ActionType={Created:0,Saved:1,Sent:2,EmailSent:3,Delivered:4,Seen:5,Signed:6,Rejected:7};class App{constructor(n,t,i,r,u,f){this.container=f??`#${this.constructor.name.toLowerCase()}`;this.envelopeKey=n;this.Network=new Network;this.Instance=null;this.currentDocument=null;this.currentReceiver=null;this.signatureCount=0;this.envelopeReceiver=t;this.documentBytes=i;this.licenseKey=r;this.locale=u}async init(){this.currentDocument=this.envelopeReceiver.envelope.documents[0];this.currentReceiver=this.envelopeReceiver.receiver;const n=this.documentBytes;if(n.fatal||n.error)return Swal.fire({title:"Fehler",text:"Dokument konnte nicht geladen werden!",icon:"error"});const t=this.documentBytes;this.Instance=await UI.loadPSPDFKit(t,this.container,this.licenseKey,this.locale);UI.addToolbarItems(this.Instance,this.handleClick.bind(this));this.Instance.addEventListener("annotations.load",this.handleAnnotationsLoad.bind(this));this.Instance.addEventListener("annotations.change",this.handleAnnotationsChange.bind(this));this.Instance.addEventListener("annotations.create",this.handleAnnotationsCreate.bind(this));this.Instance.addEventListener("annotations.willChange",()=>{Comp.ActPanel.Toggle()});try{this.signatureCount=this.currentDocument.elements.length;await Annotation.createAnnotations(this.currentDocument,this.Instance);const n=await this.Network.openDocument(this.envelopeKey);if(n.fatal||n.error)return Swal.fire({title:"Fehler",text:"Umschlag konnte nicht geöffnet werden!",icon:"error"})}catch(i){}[...document.getElementsByClassName("btn_refresh")].forEach(n=>n.addEventListener("click",()=>this.handleClick("RESET")));[...document.getElementsByClassName("btn_complete")].forEach(n=>n.addEventListener("click",()=>this.handleClick("FINISH")));[...document.getElementsByClassName("btn_reject")].forEach(n=>n.addEventListener("click",()=>this.handleClick("REJECT")))}handleAnnotationsLoad(n){n.toJS()}handleAnnotationsChange(){}async handleAnnotationsCreate(n){const t=n.toJS()[0],i=!!t.formFieldName,r=!!t.isSignature;if(i===!1&&r===!0){const r=t.boundingBox.left-20,u=t.boundingBox.top-20,n=150,i=75,f=new Date,e=await Annotation.createAnnotationFrameBlob(this.envelopeReceiver.name,this.currentReceiver.signature,f,n,i),o=await fetch(e),s=await o.blob(),h=await this.Instance.createAttachment(s),c=Annotation.createImageAnnotation(new PSPDFKit.Geometry.Rect({left:r,top:u,width:n,height:i}),t.pageIndex,h);this.Instance.create(c)}}async handleClick(n){let t=!1;switch(n){case"RESET":t=await this.handleReset(null);Comp.SignatureProgress.SignedCount=0;t.isConfirmed&&Swal.fire({title:"Erfolg",text:"Dokument wurde zurückgesetzt",icon:"info"});break;case"FINISH":t=await this.handleFinish(null);t==!0&&(window.location.href=`/EnvelopeKey/${this.envelopeKey}/Success`);break;case"REJECT":Swal.fire({title:localized.rejection,html:`
${localized.rejectionReasonQ}
`,icon:"question",input:"text",inputAttributes:{autocapitalize:"off"},showCancelButton:!0,confirmButtonColor:"#3085d6",cancelButtonColor:"#d33",confirmButtonText:localized.complete,cancelButtonText:localized.back,showLoaderOnConfirm:!0,preConfirm:async n=>{try{return await rejectEnvelope(n)}catch(t){Swal.showValidationMessage(` + Request failed: ${t} + `)}},allowOutsideClick:()=>!Swal.isLoading()}).then(n=>{if(n.isConfirmed){const t=n.value;t.ok?redirRejected():Swal.showValidationMessage(`Request failed: ${t.message}`)}});break;case"COPY_URL":const n=window.location.href.replace(/\/readonly/gi,"");navigator.clipboard.writeText(n).then(function(){bsNotify("Kopiert",{alert_type:"success",delay:4,icon_name:"check_circle"})}).catch(function(){bsNotify("Unerwarteter Fehler",{alert_type:"danger",delay:4,icon_name:"error"})});break;case"SHARE":Comp.ShareBackdrop.show()}}async handleFinish(){const n=await this.Instance.exportInstantJSON(),t=await n.formFieldValues,r=t.filter(n=>Annotation.isFieldRequired(n)),u=r.some(n=>n.value===undefined||n.value===null||n.value==="");if(u)return Swal.fire({title:"Warnung",text:"Bitte füllen Sie alle Standortinformationen vollständig aus!",icon:"warning"}),!1;const f=new RegExp("^[a-zA-Z\\u0080-\\u024F]+(?:([\\ \\-\\']|(\\.\\ ))[a-zA-Z\\u0080-\\u024F]+)*$"),e=t.filter(n=>Annotation.isCityField(n));for(var i of e)if(!IS_MOBILE_DEVICE&&!f.test(i.value))return Swal.fire({title:"Warnung",text:`Bitte überprüfen Sie die eingegebene Ortsangabe "${i.value}" auf korrekte Formatierung. Beispiele für richtige Formate sind: München, Île-de-France, Sauðárkrókur, San Francisco, St. Catharines usw.`,icon:"warning"}),!1;const o=await this.validateAnnotations(this.signatureCount);return o===!1?(Swal.fire({title:"Warnung",text:"Es wurden nicht alle Signaturfelder ausgefüllt!",icon:"warning"}),!1):Swal.fire({title:localized.confirmation,html:`
${localized.sigAgree}
`,icon:"question",showCancelButton:!0,confirmButtonColor:"#3085d6",cancelButtonColor:"#d33",confirmButtonText:localized.finalize,cancelButtonText:localized.back}).then(async t=>{if(t.isConfirmed){try{await this.Instance.save()}catch(i){return Swal.fire({title:"Fehler",text:"Umschlag konnte nicht signiert werden!",icon:"error"}),!1}try{const i=await n,t=await this.Network.postEnvelope(this.envelopeKey,this.currentDocument.id,i);return t.fatal?(Swal.fire({title:"Fehler",text:"Umschlag konnte nicht signiert werden!",icon:"error"}),!1):t.error?(Swal.fire({title:"Warnung",text:"Umschlag ist nicht mehr verfügbar.",icon:"warning"}),!1):!0}catch(i){return!1}}else return!1})}async validateAnnotations(n){const t=await Annotation.getAnnotations(this.Instance),i=t.map(n=>n.toJS()).filter(n=>n.isSignature);return n>i.length?!1:!0}async handleReset(){const n=await Swal.fire({title:"Sind sie sicher?",text:"Wollen Sie das Dokument und alle erstellten Signaturen zurücksetzen?",icon:"question",showCancelButton:!0});if(n.isConfirmed){const n=await Annotation.deleteAnnotations(this.Instance)}return n}} \ No newline at end of file diff --git a/EnvelopeGenerator.Web/wwwroot/js/event-binder.js b/EnvelopeGenerator.Web/wwwroot/js/event-binder.js index 076baabe..d36137ed 100644 --- a/EnvelopeGenerator.Web/wwwroot/js/event-binder.js +++ b/EnvelopeGenerator.Web/wwwroot/js/event-binder.js @@ -1,40 +1,30 @@ -$('.btn_reject').click(_ => - Swal.fire({ - title: localized.rejection, - html: `
${localized.rejectionReasonQ}
`, - icon: "question", - input: "text", - inputAttributes: { - autocapitalize: "off" - }, - showCancelButton: true, - confirmButtonColor: "#3085d6", - cancelButtonColor: "#d33", - confirmButtonText: localized.complete, - cancelButtonText: localized.back, - showLoaderOnConfirm: true, - preConfirm: async (reason) => { - try { - var res = await rejectEnvelope(reason); - return res; - } catch (error) { - Swal.showValidationMessage(` - Request failed: ${error} - `); - } - }, - allowOutsideClick: () => !Swal.isLoading() - }).then((result) => { - if (!result.isConfirmed) - return; - const res = result.value; - if (res.ok) { - redirRejected() +document.querySelectorAll('.email-input').forEach(input => { + input.addEventListener('input', function () { + if (/^\S+@\S+\.\S+$/.test(this.value)) { + this.classList.remove('is-invalid'); + } else { + this.classList.add('is-invalid'); } - else - Swal.showValidationMessage(`Request failed: ${res.message}`); - })); + }); +}); +document.addEventListener('DOMContentLoaded', function () { + var dropdownItems = document.querySelectorAll('.culture-dropdown-item'); + dropdownItems.forEach(function (item) { + item.addEventListener('click', async function(event) { + event.preventDefault(); + var language = this.getAttribute('data-language'); + var flagCode = this.getAttribute('data-flag'); + document.getElementById('selectedFlag').className = 'fi ' + flagCode + ' me-2'; + await setLanguage(language); + }); + }); +}); + +const bsNotify = (message, options) => alertify.notify( + ``, + 'custom', + options?.delay ?? 5); class Comp { static ActPanel = class { @@ -68,7 +58,7 @@ class Comp { static SignatureProgress = class { static __SignatureCount; static get SignatureCount() { - this.__SignatureCount = parseInt(document.getElementById("signature-count").innerText); + this.__SignatureCount = parseInt(document.getElementById("signature-count").innerText); return this.__SignatureCount; } @@ -96,4 +86,10 @@ class Comp { return this.__SignedCountBar; } } + + static __ShareBackdrop; + static get ShareBackdrop() { + Comp.__ShareBackdrop ??= new bootstrap.Modal(document.getElementById('shareBackdrop')); + return this.__ShareBackdrop; + } } \ No newline at end of file diff --git a/EnvelopeGenerator.Web/wwwroot/js/event-binder.min.js b/EnvelopeGenerator.Web/wwwroot/js/event-binder.min.js index 7d96784c..30f6d827 100644 --- a/EnvelopeGenerator.Web/wwwroot/js/event-binder.min.js +++ b/EnvelopeGenerator.Web/wwwroot/js/event-binder.min.js @@ -1,3 +1 @@ -$(".btn_reject").click(()=>Swal.fire({title:localized.rejection,html:`
${localized.rejectionReasonQ}
`,icon:"question",input:"text",inputAttributes:{autocapitalize:"off"},showCancelButton:!0,confirmButtonColor:"#3085d6",cancelButtonColor:"#d33",confirmButtonText:localized.complete,cancelButtonText:localized.back,showLoaderOnConfirm:!0,preConfirm:async n=>{try{return await rejectEnvelope(n)}catch(t){Swal.showValidationMessage(` - Request failed: ${t} - `)}},allowOutsideClick:()=>!Swal.isLoading()}).then(n=>{if(n.isConfirmed){const t=n.value;t.ok?redirRejected():Swal.showValidationMessage(`Request failed: ${t.message}`)}}));class Comp{static ActPanel=class{static __Root;static get Root(){Comp.ActPanel.__Root??=document.getElementById("flex-action-panel");return Comp.ActPanel.__Root}static get Elements(){return[...Comp.ActPanel.Root.children]}static get IsHided(){return Comp.ActPanel.Root.style.display=="none"}static set Display(n){Comp.ActPanel.Root.style.display=n;Comp.ActPanel.Elements.forEach(t=>t.style.display=n)}static Toggle(){Comp.ActPanel.Display=Comp.ActPanel.IsHided?"":"none"}};static SignatureProgress=class{static __SignatureCount;static get SignatureCount(){this.__SignatureCount=parseInt(document.getElementById("signature-count").innerText);return this.__SignatureCount}static __SignedCountSpan;static get SignedCountSpan(){this.__SignedCountSpan??=document.getElementById("signed-count");return Comp.SignatureProgress.__SignedCountSpan}static __signedCount=0;static get SignedCount(){return this.__signedCount}static set SignedCount(n){this.__signedCount=n;const t=(n/this.SignatureCount)*100;this.SignedCountBar.style.setProperty("--progress-width",t+"%");this.SignedCountSpan.innerText=n.toString()}static __SignedCountBar;static get SignedCountBar(){this.__SignedCountBar??=document.getElementById("signed-count-bar");return this.__SignedCountBar}};} \ No newline at end of file +document.querySelectorAll(".email-input").forEach(n=>{n.addEventListener("input",function(){/^\S+@\S+\.\S+$/.test(this.value)?this.classList.remove("is-invalid"):this.classList.add("is-invalid")})});document.addEventListener("DOMContentLoaded",function(){var n=document.querySelectorAll(".culture-dropdown-item");n.forEach(function(n){n.addEventListener("click",async function(n){n.preventDefault();var t=this.getAttribute("data-language"),i=this.getAttribute("data-flag");document.getElementById("selectedFlag").className="fi "+i+" me-2";await setLanguage(t)})})});const bsNotify=(n,t)=>alertify.notify(``,"custom",t?.delay??5);class Comp{static ActPanel=class{static __Root;static get Root(){Comp.ActPanel.__Root??=document.getElementById("flex-action-panel");return Comp.ActPanel.__Root}static get Elements(){return[...Comp.ActPanel.Root.children]}static get IsHided(){return Comp.ActPanel.Root.style.display=="none"}static set Display(n){Comp.ActPanel.Root.style.display=n;Comp.ActPanel.Elements.forEach(t=>t.style.display=n)}static Toggle(){Comp.ActPanel.Display=Comp.ActPanel.IsHided?"":"none"}};static SignatureProgress=class{static __SignatureCount;static get SignatureCount(){this.__SignatureCount=parseInt(document.getElementById("signature-count").innerText);return this.__SignatureCount}static __SignedCountSpan;static get SignedCountSpan(){this.__SignedCountSpan??=document.getElementById("signed-count");return Comp.SignatureProgress.__SignedCountSpan}static __signedCount=0;static get SignedCount(){return this.__signedCount}static set SignedCount(n){this.__signedCount=n;const t=(n/this.SignatureCount)*100;this.SignedCountBar.style.setProperty("--progress-width",t+"%");this.SignedCountSpan.innerText=n.toString()}static __SignedCountBar;static get SignedCountBar(){this.__SignedCountBar??=document.getElementById("signed-count-bar");return this.__SignedCountBar}};static __ShareBackdrop;static get ShareBackdrop(){return Comp.__ShareBackdrop??=new bootstrap.Modal(document.getElementById("shareBackdrop")),this.__ShareBackdrop}} \ No newline at end of file diff --git a/EnvelopeGenerator.Web/wwwroot/js/ui.js b/EnvelopeGenerator.Web/wwwroot/js/ui.js index 580c40c1..8d92422e 100644 --- a/EnvelopeGenerator.Web/wwwroot/js/ui.js +++ b/EnvelopeGenerator.Web/wwwroot/js/ui.js @@ -10,6 +10,7 @@ 'zoom-mode', 'spacer', 'search', + 'export-pdf' ] // Load the PSPDFKit UI by setting a target element as the container to render in @@ -49,8 +50,17 @@ return UI.Instance; } - static configurePSPDFKit(instance, handler) { - const toolbarItems = UI.getToolbarItems(instance, handler) + static addToolbarItems(instance, handler) { + var toolbarItems = instance.toolbarItems.filter((item) => UI.allowedToolbarItems.includes(item.type)); + + if (IS_READONLY) + toolbarItems = toolbarItems.concat(UI.getReadOnlyItems(handler)); + else + toolbarItems = toolbarItems.concat(UI.getWritableItems(handler)); + + if (!IS_DESKTOP_SIZE && !IS_READONLY) + toolbarItems = toolbarItems.concat(UI.getMobileWritableItems(handler)); + instance.setToolbarItems(toolbarItems) } @@ -59,12 +69,6 @@ return null } - static getToolbarItems(instance, handler) { - const customItems = UI.getCustomItems(handler) - const defaultItems = UI.getDefaultItems(instance.toolbarItems) - return defaultItems.concat(customItems) - } - static createElementFromHTML(html) { const el = document.createElement('div') el.innerHTML = html.trim() @@ -72,21 +76,54 @@ return el.firstChild } - static getCustomItems = function (callback) { - return [] + static getWritableItems = function (callback) { return [ { type: 'custom', - id: 'button-reset', - className: 'button-reset', - title: 'Zurücksetzen', + id: 'button-share', + className: 'button-share', + title: 'Teilen', onPress() { - callback('RESET') + callback('SHARE') }, - icon: ` - - - `, + icon: ` + + `, + } + ]; + } + + static getReadOnlyItems = function (callback) { + return [ + { + type: 'custom', + id: 'button-copy-url', + className: 'button-copy-url', + title: 'Teilen', + onPress() { + callback('COPY_URL') + }, + icon: ` + + + `, + } + ]; + } + + static getMobileWritableItems = function (callback) { + return [ + { + type: 'custom', + id: 'button-finish', + className: 'button-finish', + onPress() { + callback('FINISH') + }, + icon: `` }, { type: 'custom', @@ -96,24 +133,24 @@ onPress() { callback('REJECT') }, - icon: ` - - `, + icon: ` + + `, }, { type: 'custom', - id: 'button-finish', - className: 'button-finish', - title: 'Abschließen', + id: 'button-reset', + className: 'button-reset', + title: 'Zurücksetzen', onPress() { - callback('FINISH') + callback('RESET') }, - }, - ] - } - - static getDefaultItems(items) { - return items.filter((item) => UI.allowedToolbarItems.includes(item.type)) + icon: ` + + + `, + } + ]; } static getPresets() { diff --git a/EnvelopeGenerator.Web/wwwroot/js/ui.min.js b/EnvelopeGenerator.Web/wwwroot/js/ui.min.js index dd1e239d..1407adb7 100644 --- a/EnvelopeGenerator.Web/wwwroot/js/ui.min.js +++ b/EnvelopeGenerator.Web/wwwroot/js/ui.min.js @@ -1,7 +1,15 @@ -class UI{static allowedToolbarItems=["sidebar-thumbnails","sidebar-document-ouline","sidebar-bookmarks","pager","pan","zoom-out","zoom-in","zoom-mode","spacer","search",];static Instance - static loadPSPDFKit(n,t,i,r){return UI.Instance=PSPDFKit.load({inlineWorkers:!1,locale:r,licenseKey:i,styleSheets:["/css/site.css"],container:t,document:n,annotationPresets:UI.getPresets(),electronicSignatures:{creationModes:["DRAW","TYPE","IMAGE"]},initialViewState:new PSPDFKit.ViewState({sidebarMode:PSPDFKit.SidebarMode.THUMBNAILS}),isEditableAnnotation:function(n){return n.isSignature||n.description=="FRAME"?!1:!0},customRenderers:{Annotation:UI.annotationRenderer}}),UI.Instance}static configurePSPDFKit(n,t){const i=UI.getToolbarItems(n,t);n.setToolbarItems(i)}static annotationRenderer(){return null}static getToolbarItems(n,t){const i=UI.getCustomItems(t),r=UI.getDefaultItems(n.toolbarItems);return r.concat(i)}static createElementFromHTML(n){const t=document.createElement("div");return t.innerHTML=n.trim(),t.firstChild}static getCustomItems=function(n){return[];return[{type:"custom",id:"button-reset",className:"button-reset",title:"Zurücksetzen",onPress(){n("RESET")},icon:` - - - `},{type:"custom",id:"button-reject",className:"button-reject",title:"Ablehnen",onPress(){n("REJECT")},icon:` - - `},{type:"custom",id:"button-finish",className:"button-finish",title:"Abschließen",onPress(){n("FINISH")}},]};static getDefaultItems(n){return n.filter(n=>UI.allowedToolbarItems.includes(n.type))}static getPresets(){const n=PSPDFKit.defaultAnnotationPresets;return n.ink={lineWidth:10},n.widget={readOnly:!0},n}} \ No newline at end of file +class UI{static allowedToolbarItems=["sidebar-thumbnails","sidebar-document-ouline","sidebar-bookmarks","pager","pan","zoom-out","zoom-in","zoom-mode","spacer","search","export-pdf"];static Instance + static loadPSPDFKit(n,t,i,r){return UI.Instance=PSPDFKit.load({inlineWorkers:!1,locale:r,licenseKey:i,styleSheets:["/css/site.css"],container:t,document:n,annotationPresets:UI.getPresets(),electronicSignatures:{creationModes:["DRAW","TYPE","IMAGE"]},initialViewState:new PSPDFKit.ViewState({sidebarMode:PSPDFKit.SidebarMode.THUMBNAILS}),isEditableAnnotation:function(n){return n.isSignature||n.description=="FRAME"?!1:!0},customRenderers:{Annotation:UI.annotationRenderer}}),UI.Instance}static addToolbarItems(n,t){var i=n.toolbarItems.filter(n=>UI.allowedToolbarItems.includes(n.type));i=IS_READONLY?i.concat(UI.getReadOnlyItems(t)):i.concat(UI.getWritableItems(t));IS_DESKTOP_SIZE||IS_READONLY||(i=i.concat(UI.getMobileWritableItems(t)));n.setToolbarItems(i)}static annotationRenderer(){return null}static createElementFromHTML(n){const t=document.createElement("div");return t.innerHTML=n.trim(),t.firstChild}static getWritableItems=function(n){return[{type:"custom",id:"button-share",className:"button-share",title:"Teilen",onPress(){n("SHARE")},icon:` + + `}]};static getReadOnlyItems=function(n){return[{type:"custom",id:"button-copy-url",className:"button-copy-url",title:"Teilen",onPress(){n("COPY_URL")},icon:` + + + `}]};static getMobileWritableItems=function(n){return[{type:"custom",id:"button-finish",className:"button-finish",onPress(){n("FINISH")},icon:``},{type:"custom",id:"button-reject",className:"button-reject",title:"Ablehnen",onPress(){n("REJECT")},icon:` + + `},{type:"custom",id:"button-reset",className:"button-reset",title:"Zurücksetzen",onPress(){n("RESET")},icon:` + + + `}]};static getPresets(){const n=PSPDFKit.defaultAnnotationPresets;return n.ink={lineWidth:10},n.widget={readOnly:!0},n}} \ No newline at end of file diff --git a/EnvelopeGenerator.Web/wwwroot/js/util.js b/EnvelopeGenerator.Web/wwwroot/js/util.js index 07dd550a..90d0f5be 100644 --- a/EnvelopeGenerator.Web/wwwroot/js/util.js +++ b/EnvelopeGenerator.Web/wwwroot/js/util.js @@ -57,12 +57,4 @@ function detailedCurrentDate() { second: '2-digit', timeZoneName: 'shortOffset' }).format(); -} - -let __is_mobile = null; -function isMobile() { - if (__is_mobile === null) { - __is_mobile = /Mobi|Android/i.test(window.navigator.userAgent); - } - return __is_mobile; } \ No newline at end of file diff --git a/EnvelopeGenerator.Web/wwwroot/js/util.min.js b/EnvelopeGenerator.Web/wwwroot/js/util.min.js index 1513340a..e70e8b90 100644 --- a/EnvelopeGenerator.Web/wwwroot/js/util.min.js +++ b/EnvelopeGenerator.Web/wwwroot/js/util.min.js @@ -1 +1 @@ -function getCoordinates(){return new Promise((n,t)=>{navigator.geolocation?navigator.geolocation.getCurrentPosition(t=>n(t.coords),n=>t(n)):t(new Error("Geolocation is not supported by this browser."))})}async function getCity(){try{const t=await getCoordinates(),i=await fetch(`https://nominatim.openstreetmap.org/reverse?format=json&lat=${t.latitude}&lon=${t.longitude}`),n=await i.json();if(n&&n.address){const t=n.address.city||n.address.town||n.address.village||n.address.hamlet,i=n.address.postcode;return i+" "+t||""}}catch{return""}}async function getLocation(){try{const t=await getCoordinates(),i=await fetch(`https://nominatim.openstreetmap.org/reverse?format=json&lat=${t.latitude}&lon=${t.longitude}`),n=await i.json();if(n&&n.address){const t=n.address.city||n.address.town||n.address.village||n.address.hamlet,i=n.address.postcode;return{postalCode:i,city:t}}}catch{return{postalCode:"",city:""}}}function detailedCurrentDate(){return new Intl.DateTimeFormat("de-DE",{day:"2-digit",month:"2-digit",year:"numeric",hour:"2-digit",minute:"2-digit",second:"2-digit",timeZoneName:"shortOffset"}).format()}function isMobile(){return __is_mobile===null&&(__is_mobile=/Mobi|Android/i.test(window.navigator.userAgent)),__is_mobile}const B64ToBuff=n=>new Uint8Array(Array.from(atob(n),n=>n.charCodeAt(0))).buffer;const getLocaleDateString=()=>(new Date).toLocaleDateString("de-DE");let __is_mobile=null; \ No newline at end of file +function getCoordinates(){return new Promise((n,t)=>{navigator.geolocation?navigator.geolocation.getCurrentPosition(t=>n(t.coords),n=>t(n)):t(new Error("Geolocation is not supported by this browser."))})}async function getCity(){try{const t=await getCoordinates(),i=await fetch(`https://nominatim.openstreetmap.org/reverse?format=json&lat=${t.latitude}&lon=${t.longitude}`),n=await i.json();if(n&&n.address){const t=n.address.city||n.address.town||n.address.village||n.address.hamlet,i=n.address.postcode;return i+" "+t||""}}catch{return""}}async function getLocation(){try{const t=await getCoordinates(),i=await fetch(`https://nominatim.openstreetmap.org/reverse?format=json&lat=${t.latitude}&lon=${t.longitude}`),n=await i.json();if(n&&n.address){const t=n.address.city||n.address.town||n.address.village||n.address.hamlet,i=n.address.postcode;return{postalCode:i,city:t}}}catch{return{postalCode:"",city:""}}}function detailedCurrentDate(){return new Intl.DateTimeFormat("de-DE",{day:"2-digit",month:"2-digit",year:"numeric",hour:"2-digit",minute:"2-digit",second:"2-digit",timeZoneName:"shortOffset"}).format()}const B64ToBuff=n=>new Uint8Array(Array.from(atob(n),n=>n.charCodeAt(0))).buffer;const getLocaleDateString=()=>(new Date).toLocaleDateString("de-DE"); \ No newline at end of file diff --git a/EnvelopeGenerator.Web/wwwroot/lib/MDB/css/mdb.dark.min.css b/EnvelopeGenerator.Web/wwwroot/lib/MDB/css/mdb.dark.min.css deleted file mode 100644 index c21a4014..00000000 --- a/EnvelopeGenerator.Web/wwwroot/lib/MDB/css/mdb.dark.min.css +++ /dev/null @@ -1,26 +0,0 @@ -/*! -* MDB5 -* Version: FREE 7.2.0 -* -* -* Copyright: Material Design for Bootstrap -* https://mdbootstrap.com/ -* -* Read the license: https://mdbootstrap.com/general/license/ -* -* -* Documentation: https://mdbootstrap.com/docs/standard/ -* -* Support: https://mdbootstrap.com/support/ -* -* Contact: contact@mdbootstrap.com -* -*/:root,[data-mdb-theme=light]{--mdb-red: #f44336;--mdb-pink: #e91e63;--mdb-purple: #9c27b0;--mdb-indigo: #3f51b5;--mdb-blue: #2196f3;--mdb-cyan: #00bcd4;--mdb-teal: #009688;--mdb-green: #4caf50;--mdb-yellow: #ffeb3b;--mdb-orange: #ff9800;--mdb-white: #fff;--mdb-black: #000;--mdb-gray: #757575;--mdb-gray-dark: #4f4f4f;--mdb-gray-50: #fbfbfb;--mdb-gray-100: #f5f5f5;--mdb-gray-200: #eeeeee;--mdb-gray-300: #e0e0e0;--mdb-gray-400: #bdbdbd;--mdb-gray-500: #9e9e9e;--mdb-gray-600: #757575;--mdb-gray-700: #616161;--mdb-gray-800: #4f4f4f;--mdb-gray-900: #262626;--mdb-primary: #3b71ca;--mdb-secondary: #9fa6b2;--mdb-success: #14a44d;--mdb-danger: #dc4c64;--mdb-warning: #e4a11b;--mdb-info: #54b4d3;--mdb-light: #fbfbfb;--mdb-dark: #332d2d;--mdb-primary-rgb: 59, 113, 202;--mdb-secondary-rgb: 159, 166, 178;--mdb-success-rgb: 20, 164, 77;--mdb-danger-rgb: 220, 76, 100;--mdb-warning-rgb: 228, 161, 27;--mdb-info-rgb: 84, 180, 211;--mdb-light-rgb: 251, 251, 251;--mdb-dark-rgb: 51, 45, 45;--mdb-primary-text-emphasis: #2f5aa2;--mdb-secondary-text-emphasis: #404247;--mdb-success-text-emphasis: #0c622e;--mdb-info-text-emphasis: #3b7e94;--mdb-warning-text-emphasis: #896110;--mdb-danger-text-emphasis: #b03d50;--mdb-light-text-emphasis: #616161;--mdb-dark-text-emphasis: #eeeeee;--mdb-primary-bg-subtle: #e2eaf7;--mdb-secondary-bg-subtle: #f1f2f3;--mdb-success-bg-subtle: #dcf1e4;--mdb-info-bg-subtle: #e5f4f8;--mdb-warning-bg-subtle: #fbf1dd;--mdb-danger-bg-subtle: #fae4e8;--mdb-light-bg-subtle: #f5f5f5;--mdb-dark-bg-subtle: #262626;--mdb-primary-border-subtle: #b1c6ea;--mdb-secondary-border-subtle: #d9dbe0;--mdb-success-border-subtle: #a1dbb8;--mdb-info-border-subtle: #bbe1ed;--mdb-warning-border-subtle: #f4d9a4;--mdb-danger-border-subtle: #f1b7c1;--mdb-light-border-subtle: #eeeeee;--mdb-dark-border-subtle: #9e9e9e;--mdb-white-rgb: 255, 255, 255;--mdb-black-rgb: 0, 0, 0;--mdb-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--mdb-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--mdb-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));--mdb-body-font-family: var(--mdb-font-roboto);--mdb-body-font-size:1rem;--mdb-body-font-weight: 400;--mdb-body-line-height: 1.6;--mdb-body-color: #4f4f4f;--mdb-body-color-rgb: 79, 79, 79;--mdb-body-bg: #fff;--mdb-body-bg-rgb: 255, 255, 255;--mdb-emphasis-color: #000;--mdb-emphasis-color-rgb: 0, 0, 0;--mdb-secondary-color: rgba(79, 79, 79, 0.75);--mdb-secondary-color-rgb: 79, 79, 79;--mdb-secondary-bg: #eeeeee;--mdb-secondary-bg-rgb: 238, 238, 238;--mdb-tertiary-color: rgba(79, 79, 79, 0.5);--mdb-tertiary-color-rgb: 79, 79, 79;--mdb-tertiary-bg: #fbfbfb;--mdb-tertiary-bg-rgb: 251, 251, 251;--mdb-heading-color: inherit;--mdb-link-color: #3b71ca;--mdb-link-color-rgb: 59, 113, 202;--mdb-link-decoration: none;--mdb-link-hover-color: #386bc0;--mdb-link-hover-color-rgb: 56, 107, 192;--mdb-link-hover-decoration: none;--mdb-code-color: #e91e63;--mdb-highlight-color: #4f4f4f;--mdb-highlight-bg: #fff9c4;--mdb-border-width: 1px;--mdb-border-style: solid;--mdb-border-color: #e0e0e0;--mdb-border-color-translucent: rgba(0, 0, 0, 0.175);--mdb-border-radius: 0.25rem;--mdb-border-radius-sm: 0.25rem;--mdb-border-radius-lg: 0.5rem;--mdb-border-radius-xl: 1rem;--mdb-border-radius-xxl: 2rem;--mdb-border-radius-2xl: var( --mdb-border-radius-xxl );--mdb-border-radius-pill: 50rem;--mdb-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);--mdb-box-shadow-sm: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);--mdb-box-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, 0.175);--mdb-box-shadow-inset: inset 0 1px 2px rgba(0, 0, 0, 0.075);--mdb-focus-ring-width: 0.25rem;--mdb-focus-ring-opacity: 0.25;--mdb-focus-ring-color: rgba(59, 113, 202, 0.25);--mdb-form-valid-color: #14a44d;--mdb-form-valid-border-color: #14a44d;--mdb-form-invalid-color: #dc4c64;--mdb-form-invalid-border-color: #dc4c64}[data-mdb-theme=dark]{color-scheme:dark;--mdb-body-color: #fff;--mdb-body-color-rgb: 255, 255, 255;--mdb-body-bg: #303030;--mdb-body-bg-rgb: 48, 48, 48;--mdb-emphasis-color: #fff;--mdb-emphasis-color-rgb: 255, 255, 255;--mdb-secondary-color: rgba(255, 255, 255, 0.75);--mdb-secondary-color-rgb: 255, 255, 255;--mdb-secondary-bg: #4f4f4f;--mdb-secondary-bg-rgb: 79, 79, 79;--mdb-tertiary-color: rgba(255, 255, 255, 0.5);--mdb-tertiary-color-rgb: 255, 255, 255;--mdb-tertiary-bg: #3b3b3b;--mdb-tertiary-bg-rgb: 59, 59, 59;--mdb-primary-text-emphasis: #628dd5;--mdb-secondary-text-emphasis: #d9dbe0;--mdb-success-text-emphasis: #72c894;--mdb-info-text-emphasis: #87cbe0;--mdb-warning-text-emphasis: #efc776;--mdb-danger-text-emphasis: #e37083;--mdb-light-text-emphasis: #f5f5f5;--mdb-dark-text-emphasis: #eeeeee;--mdb-primary-bg-subtle: #0c1728;--mdb-secondary-bg-subtle: #202124;--mdb-success-bg-subtle: #04210f;--mdb-info-bg-subtle: #11242a;--mdb-warning-bg-subtle: #2e2005;--mdb-danger-bg-subtle: #2c0f14;--mdb-light-bg-subtle: #4f4f4f;--mdb-dark-bg-subtle: #262626;--mdb-primary-border-subtle: #234479;--mdb-secondary-border-subtle: #5f646b;--mdb-success-border-subtle: #0c622e;--mdb-info-border-subtle: #326c7f;--mdb-warning-border-subtle: #896110;--mdb-danger-border-subtle: #842e3c;--mdb-light-border-subtle: #616161;--mdb-dark-border-subtle: #4f4f4f;--mdb-heading-color: inherit;--mdb-link-color: #89aadf;--mdb-link-hover-color: #8faee1;--mdb-link-color-rgb: 137, 170, 223;--mdb-link-hover-color-rgb: 143, 174, 225;--mdb-code-color: #f278a1;--mdb-highlight-color: #fff;--mdb-highlight-bg: #f9a825;--mdb-border-color: rgba(255, 255, 255, 0.12);--mdb-border-color-translucent: rgba(255, 255, 255, 0.15);--mdb-form-valid-color: #81c784;--mdb-form-valid-border-color: #81c784;--mdb-form-invalid-color: #e57373;--mdb-form-invalid-border-color: #e57373}*,*::before,*::after{box-sizing:border-box}@media(prefers-reduced-motion: no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:var(--mdb-body-font-family);font-size:var(--mdb-body-font-size);font-weight:var(--mdb-body-font-weight);line-height:var(--mdb-body-line-height);color:var(--mdb-body-color);text-align:var(--mdb-body-text-align);background-color:var(--mdb-body-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}hr{margin:1rem 0;color:inherit;border:0;border-top:var(--mdb-border-width) solid;opacity:.25}h6,.h6,h5,.h5,h4,.h4,h3,.h3,h2,.h2,h1,.h1{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2;color:var(--mdb-heading-color)}h1,.h1{font-size:calc(1.375rem + 1.5vw)}@media(min-width: 1200px){h1,.h1{font-size:2.5rem}}h2,.h2{font-size:calc(1.325rem + 0.9vw)}@media(min-width: 1200px){h2,.h2{font-size:2rem}}h3,.h3{font-size:calc(1.3rem + 0.6vw)}@media(min-width: 1200px){h3,.h3{font-size:1.75rem}}h4,.h4{font-size:calc(1.275rem + 0.3vw)}@media(min-width: 1200px){h4,.h4{font-size:1.5rem}}h5,.h5{font-size:1.25rem}h6,.h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[title]{text-decoration:underline dotted;cursor:help;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}ol,ul,dl{margin-top:0;margin-bottom:1rem}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small,.small{font-size:0.875em}mark,.mark{padding:.1875em;color:var(--mdb-highlight-color);background-color:var(--mdb-highlight-bg)}sub,sup{position:relative;font-size:0.75em;line-height:0;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}a{color:rgba(var(--mdb-link-color-rgb), var(--mdb-link-opacity, 1));text-decoration:none}a:hover{--mdb-link-color-rgb: var(--mdb-link-hover-color-rgb);text-decoration:none}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}pre,code,kbd,samp{font-family:var(--mdb-font-monospace);font-size:1em}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:0.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:0.875em;color:var(--mdb-code-color);word-wrap:break-word}a>code{color:inherit}kbd{padding:.1875rem .375rem;font-size:0.875em;color:var(--mdb-body-bg);background-color:var(--mdb-body-color);border-radius:.25rem}kbd kbd{padding:0;font-size:1em}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:1rem;padding-bottom:1rem;color:var(--mdb-secondary-color);text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}thead,tbody,tfoot,tr,td,th{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}input,button,select,optgroup,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator{display:none !important}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button:not(:disabled),[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + 0.3vw);line-height:inherit}@media(min-width: 1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-text,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none !important}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:calc(1.625rem + 4.5vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-1{font-size:5rem}}.display-2{font-size:calc(1.575rem + 3.9vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-2{font-size:4.5rem}}.display-3{font-size:calc(1.525rem + 3.3vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-3{font-size:4rem}}.display-4{font-size:calc(1.475rem + 2.7vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-4{font-size:3.5rem}}.display-5{font-size:calc(1.425rem + 2.1vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-5{font-size:3rem}}.display-6{font-size:calc(1.375rem + 1.5vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-6{font-size:2.5rem}}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:0.875em;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{margin-top:-1rem;margin-bottom:1rem;font-size:0.875em;color:#757575}.blockquote-footer::before{content:"— "}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:var(--mdb-body-bg);border:var(--mdb-border-width) solid var(--mdb-border-color);border-radius:var(--mdb-border-radius);box-shadow:var(--mdb-box-shadow-sm);max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:0.875em;color:var(--mdb-secondary-color)}.container,.container-fluid,.container-xxl,.container-xl,.container-lg,.container-md,.container-sm{--mdb-gutter-x: 1.5rem;--mdb-gutter-y: 0;width:100%;padding-right:calc(var(--mdb-gutter-x)*.5);padding-left:calc(var(--mdb-gutter-x)*.5);margin-right:auto;margin-left:auto}@media(min-width: 576px){.container-sm,.container{max-width:540px}}@media(min-width: 768px){.container-md,.container-sm,.container{max-width:720px}}@media(min-width: 992px){.container-lg,.container-md,.container-sm,.container{max-width:960px}}@media(min-width: 1200px){.container-xl,.container-lg,.container-md,.container-sm,.container{max-width:1140px}}@media(min-width: 1400px){.container-xxl,.container-xl,.container-lg,.container-md,.container-sm,.container{max-width:1320px}}:root{--mdb-breakpoint-xs: 0;--mdb-breakpoint-sm: 576px;--mdb-breakpoint-md: 768px;--mdb-breakpoint-lg: 992px;--mdb-breakpoint-xl: 1200px;--mdb-breakpoint-xxl: 1400px}.row{--mdb-gutter-x: 1.5rem;--mdb-gutter-y: 0;display:flex;flex-wrap:wrap;margin-top:calc(-1*var(--mdb-gutter-y));margin-right:calc(-0.5*var(--mdb-gutter-x));margin-left:calc(-0.5*var(--mdb-gutter-x))}.row>*{flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--mdb-gutter-x)*.5);padding-left:calc(var(--mdb-gutter-x)*.5);margin-top:var(--mdb-gutter-y)}.col{flex:1 0 0%}.row-cols-auto>*{flex:0 0 auto;width:auto}.row-cols-1>*{flex:0 0 auto;width:100%}.row-cols-2>*{flex:0 0 auto;width:50%}.row-cols-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-4>*{flex:0 0 auto;width:25%}.row-cols-5>*{flex:0 0 auto;width:20%}.row-cols-6>*{flex:0 0 auto;width:16.66666667%}.col-auto{flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;width:8.33333333%}.col-2{flex:0 0 auto;width:16.66666667%}.col-3{flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;width:33.33333333%}.col-5{flex:0 0 auto;width:41.66666667%}.col-6{flex:0 0 auto;width:50%}.col-7{flex:0 0 auto;width:58.33333333%}.col-8{flex:0 0 auto;width:66.66666667%}.col-9{flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;width:83.33333333%}.col-11{flex:0 0 auto;width:91.66666667%}.col-12{flex:0 0 auto;width:100%}.offset-1{margin-left:8.33333333%}.offset-2{margin-left:16.66666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333333%}.offset-5{margin-left:41.66666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333333%}.offset-8{margin-left:66.66666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333333%}.offset-11{margin-left:91.66666667%}.g-0,.gx-0{--mdb-gutter-x: 0}.g-0,.gy-0{--mdb-gutter-y: 0}.g-1,.gx-1{--mdb-gutter-x: 0.25rem}.g-1,.gy-1{--mdb-gutter-y: 0.25rem}.g-2,.gx-2{--mdb-gutter-x: 0.5rem}.g-2,.gy-2{--mdb-gutter-y: 0.5rem}.g-3,.gx-3{--mdb-gutter-x: 1rem}.g-3,.gy-3{--mdb-gutter-y: 1rem}.g-4,.gx-4{--mdb-gutter-x: 1.5rem}.g-4,.gy-4{--mdb-gutter-y: 1.5rem}.g-5,.gx-5{--mdb-gutter-x: 3rem}.g-5,.gy-5{--mdb-gutter-y: 3rem}@media(min-width: 576px){.col-sm{flex:1 0 0%}.row-cols-sm-auto>*{flex:0 0 auto;width:auto}.row-cols-sm-1>*{flex:0 0 auto;width:100%}.row-cols-sm-2>*{flex:0 0 auto;width:50%}.row-cols-sm-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-sm-4>*{flex:0 0 auto;width:25%}.row-cols-sm-5>*{flex:0 0 auto;width:20%}.row-cols-sm-6>*{flex:0 0 auto;width:16.66666667%}.col-sm-auto{flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;width:8.33333333%}.col-sm-2{flex:0 0 auto;width:16.66666667%}.col-sm-3{flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;width:33.33333333%}.col-sm-5{flex:0 0 auto;width:41.66666667%}.col-sm-6{flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;width:58.33333333%}.col-sm-8{flex:0 0 auto;width:66.66666667%}.col-sm-9{flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;width:83.33333333%}.col-sm-11{flex:0 0 auto;width:91.66666667%}.col-sm-12{flex:0 0 auto;width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333333%}.offset-sm-2{margin-left:16.66666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333333%}.offset-sm-5{margin-left:41.66666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333333%}.offset-sm-8{margin-left:66.66666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333333%}.offset-sm-11{margin-left:91.66666667%}.g-sm-0,.gx-sm-0{--mdb-gutter-x: 0}.g-sm-0,.gy-sm-0{--mdb-gutter-y: 0}.g-sm-1,.gx-sm-1{--mdb-gutter-x: 0.25rem}.g-sm-1,.gy-sm-1{--mdb-gutter-y: 0.25rem}.g-sm-2,.gx-sm-2{--mdb-gutter-x: 0.5rem}.g-sm-2,.gy-sm-2{--mdb-gutter-y: 0.5rem}.g-sm-3,.gx-sm-3{--mdb-gutter-x: 1rem}.g-sm-3,.gy-sm-3{--mdb-gutter-y: 1rem}.g-sm-4,.gx-sm-4{--mdb-gutter-x: 1.5rem}.g-sm-4,.gy-sm-4{--mdb-gutter-y: 1.5rem}.g-sm-5,.gx-sm-5{--mdb-gutter-x: 3rem}.g-sm-5,.gy-sm-5{--mdb-gutter-y: 3rem}}@media(min-width: 768px){.col-md{flex:1 0 0%}.row-cols-md-auto>*{flex:0 0 auto;width:auto}.row-cols-md-1>*{flex:0 0 auto;width:100%}.row-cols-md-2>*{flex:0 0 auto;width:50%}.row-cols-md-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-md-4>*{flex:0 0 auto;width:25%}.row-cols-md-5>*{flex:0 0 auto;width:20%}.row-cols-md-6>*{flex:0 0 auto;width:16.66666667%}.col-md-auto{flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;width:8.33333333%}.col-md-2{flex:0 0 auto;width:16.66666667%}.col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.33333333%}.col-md-5{flex:0 0 auto;width:41.66666667%}.col-md-6{flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;width:58.33333333%}.col-md-8{flex:0 0 auto;width:66.66666667%}.col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.33333333%}.col-md-11{flex:0 0 auto;width:91.66666667%}.col-md-12{flex:0 0 auto;width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333333%}.offset-md-2{margin-left:16.66666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333333%}.offset-md-5{margin-left:41.66666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333333%}.offset-md-8{margin-left:66.66666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333333%}.offset-md-11{margin-left:91.66666667%}.g-md-0,.gx-md-0{--mdb-gutter-x: 0}.g-md-0,.gy-md-0{--mdb-gutter-y: 0}.g-md-1,.gx-md-1{--mdb-gutter-x: 0.25rem}.g-md-1,.gy-md-1{--mdb-gutter-y: 0.25rem}.g-md-2,.gx-md-2{--mdb-gutter-x: 0.5rem}.g-md-2,.gy-md-2{--mdb-gutter-y: 0.5rem}.g-md-3,.gx-md-3{--mdb-gutter-x: 1rem}.g-md-3,.gy-md-3{--mdb-gutter-y: 1rem}.g-md-4,.gx-md-4{--mdb-gutter-x: 1.5rem}.g-md-4,.gy-md-4{--mdb-gutter-y: 1.5rem}.g-md-5,.gx-md-5{--mdb-gutter-x: 3rem}.g-md-5,.gy-md-5{--mdb-gutter-y: 3rem}}@media(min-width: 992px){.col-lg{flex:1 0 0%}.row-cols-lg-auto>*{flex:0 0 auto;width:auto}.row-cols-lg-1>*{flex:0 0 auto;width:100%}.row-cols-lg-2>*{flex:0 0 auto;width:50%}.row-cols-lg-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-lg-4>*{flex:0 0 auto;width:25%}.row-cols-lg-5>*{flex:0 0 auto;width:20%}.row-cols-lg-6>*{flex:0 0 auto;width:16.66666667%}.col-lg-auto{flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;width:8.33333333%}.col-lg-2{flex:0 0 auto;width:16.66666667%}.col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.33333333%}.col-lg-5{flex:0 0 auto;width:41.66666667%}.col-lg-6{flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;width:58.33333333%}.col-lg-8{flex:0 0 auto;width:66.66666667%}.col-lg-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.33333333%}.col-lg-11{flex:0 0 auto;width:91.66666667%}.col-lg-12{flex:0 0 auto;width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333333%}.offset-lg-2{margin-left:16.66666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333333%}.offset-lg-5{margin-left:41.66666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333333%}.offset-lg-8{margin-left:66.66666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333333%}.offset-lg-11{margin-left:91.66666667%}.g-lg-0,.gx-lg-0{--mdb-gutter-x: 0}.g-lg-0,.gy-lg-0{--mdb-gutter-y: 0}.g-lg-1,.gx-lg-1{--mdb-gutter-x: 0.25rem}.g-lg-1,.gy-lg-1{--mdb-gutter-y: 0.25rem}.g-lg-2,.gx-lg-2{--mdb-gutter-x: 0.5rem}.g-lg-2,.gy-lg-2{--mdb-gutter-y: 0.5rem}.g-lg-3,.gx-lg-3{--mdb-gutter-x: 1rem}.g-lg-3,.gy-lg-3{--mdb-gutter-y: 1rem}.g-lg-4,.gx-lg-4{--mdb-gutter-x: 1.5rem}.g-lg-4,.gy-lg-4{--mdb-gutter-y: 1.5rem}.g-lg-5,.gx-lg-5{--mdb-gutter-x: 3rem}.g-lg-5,.gy-lg-5{--mdb-gutter-y: 3rem}}@media(min-width: 1200px){.col-xl{flex:1 0 0%}.row-cols-xl-auto>*{flex:0 0 auto;width:auto}.row-cols-xl-1>*{flex:0 0 auto;width:100%}.row-cols-xl-2>*{flex:0 0 auto;width:50%}.row-cols-xl-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-xl-4>*{flex:0 0 auto;width:25%}.row-cols-xl-5>*{flex:0 0 auto;width:20%}.row-cols-xl-6>*{flex:0 0 auto;width:16.66666667%}.col-xl-auto{flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;width:8.33333333%}.col-xl-2{flex:0 0 auto;width:16.66666667%}.col-xl-3{flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;width:33.33333333%}.col-xl-5{flex:0 0 auto;width:41.66666667%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;width:58.33333333%}.col-xl-8{flex:0 0 auto;width:66.66666667%}.col-xl-9{flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;width:83.33333333%}.col-xl-11{flex:0 0 auto;width:91.66666667%}.col-xl-12{flex:0 0 auto;width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333333%}.offset-xl-2{margin-left:16.66666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333333%}.offset-xl-5{margin-left:41.66666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333333%}.offset-xl-8{margin-left:66.66666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333333%}.offset-xl-11{margin-left:91.66666667%}.g-xl-0,.gx-xl-0{--mdb-gutter-x: 0}.g-xl-0,.gy-xl-0{--mdb-gutter-y: 0}.g-xl-1,.gx-xl-1{--mdb-gutter-x: 0.25rem}.g-xl-1,.gy-xl-1{--mdb-gutter-y: 0.25rem}.g-xl-2,.gx-xl-2{--mdb-gutter-x: 0.5rem}.g-xl-2,.gy-xl-2{--mdb-gutter-y: 0.5rem}.g-xl-3,.gx-xl-3{--mdb-gutter-x: 1rem}.g-xl-3,.gy-xl-3{--mdb-gutter-y: 1rem}.g-xl-4,.gx-xl-4{--mdb-gutter-x: 1.5rem}.g-xl-4,.gy-xl-4{--mdb-gutter-y: 1.5rem}.g-xl-5,.gx-xl-5{--mdb-gutter-x: 3rem}.g-xl-5,.gy-xl-5{--mdb-gutter-y: 3rem}}@media(min-width: 1400px){.col-xxl{flex:1 0 0%}.row-cols-xxl-auto>*{flex:0 0 auto;width:auto}.row-cols-xxl-1>*{flex:0 0 auto;width:100%}.row-cols-xxl-2>*{flex:0 0 auto;width:50%}.row-cols-xxl-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-xxl-4>*{flex:0 0 auto;width:25%}.row-cols-xxl-5>*{flex:0 0 auto;width:20%}.row-cols-xxl-6>*{flex:0 0 auto;width:16.66666667%}.col-xxl-auto{flex:0 0 auto;width:auto}.col-xxl-1{flex:0 0 auto;width:8.33333333%}.col-xxl-2{flex:0 0 auto;width:16.66666667%}.col-xxl-3{flex:0 0 auto;width:25%}.col-xxl-4{flex:0 0 auto;width:33.33333333%}.col-xxl-5{flex:0 0 auto;width:41.66666667%}.col-xxl-6{flex:0 0 auto;width:50%}.col-xxl-7{flex:0 0 auto;width:58.33333333%}.col-xxl-8{flex:0 0 auto;width:66.66666667%}.col-xxl-9{flex:0 0 auto;width:75%}.col-xxl-10{flex:0 0 auto;width:83.33333333%}.col-xxl-11{flex:0 0 auto;width:91.66666667%}.col-xxl-12{flex:0 0 auto;width:100%}.offset-xxl-0{margin-left:0}.offset-xxl-1{margin-left:8.33333333%}.offset-xxl-2{margin-left:16.66666667%}.offset-xxl-3{margin-left:25%}.offset-xxl-4{margin-left:33.33333333%}.offset-xxl-5{margin-left:41.66666667%}.offset-xxl-6{margin-left:50%}.offset-xxl-7{margin-left:58.33333333%}.offset-xxl-8{margin-left:66.66666667%}.offset-xxl-9{margin-left:75%}.offset-xxl-10{margin-left:83.33333333%}.offset-xxl-11{margin-left:91.66666667%}.g-xxl-0,.gx-xxl-0{--mdb-gutter-x: 0}.g-xxl-0,.gy-xxl-0{--mdb-gutter-y: 0}.g-xxl-1,.gx-xxl-1{--mdb-gutter-x: 0.25rem}.g-xxl-1,.gy-xxl-1{--mdb-gutter-y: 0.25rem}.g-xxl-2,.gx-xxl-2{--mdb-gutter-x: 0.5rem}.g-xxl-2,.gy-xxl-2{--mdb-gutter-y: 0.5rem}.g-xxl-3,.gx-xxl-3{--mdb-gutter-x: 1rem}.g-xxl-3,.gy-xxl-3{--mdb-gutter-y: 1rem}.g-xxl-4,.gx-xxl-4{--mdb-gutter-x: 1.5rem}.g-xxl-4,.gy-xxl-4{--mdb-gutter-y: 1.5rem}.g-xxl-5,.gx-xxl-5{--mdb-gutter-x: 3rem}.g-xxl-5,.gy-xxl-5{--mdb-gutter-y: 3rem}}.table{--mdb-table-color-type: initial;--mdb-table-bg-type: initial;--mdb-table-color-state: initial;--mdb-table-bg-state: initial;--mdb-table-color: var(--mdb-body-color);--mdb-table-bg: var(--mdb-body-bg);--mdb-table-border-color: var(--mdb-border-color);--mdb-table-accent-bg: transparent;--mdb-table-striped-color: var(--mdb-body-color);--mdb-table-striped-bg: rgba(0, 0, 0, 0.02);--mdb-table-active-color: var(--mdb-body-color);--mdb-table-active-bg: rgba(var(--mdb-emphasis-color-rgb), 0.1);--mdb-table-hover-color: var(--mdb-body-color);--mdb-table-hover-bg: rgba(0, 0, 0, 0.025);width:100%;margin-bottom:1rem;vertical-align:top;border-color:var(--mdb-table-border-color)}.table>:not(caption)>*>*{padding:1rem 1.4rem;color:var(--mdb-table-color-state, var(--mdb-table-color-type, var(--mdb-table-color)));background-color:var(--mdb-table-bg);border-bottom-width:var(--mdb-border-width);box-shadow:inset 0 0 0 9999px var(--mdb-table-bg-state, var(--mdb-table-bg-type, var(--mdb-table-accent-bg)))}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table-group-divider{border-top:calc(var(--mdb-border-width)*2) solid inherit}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.5rem .5rem}.table-bordered>:not(caption)>*{border-width:var(--mdb-border-width) 0}.table-bordered>:not(caption)>*>*{border-width:0 var(--mdb-border-width)}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-borderless>:not(:first-child){border-top-width:0}.table-striped>tbody>tr:nth-of-type(odd)>*{--mdb-table-color-type: var(--mdb-table-striped-color);--mdb-table-bg-type: var(--mdb-table-striped-bg)}.table-striped-columns>:not(caption)>tr>:nth-child(even){--mdb-table-color-type: var(--mdb-table-striped-color);--mdb-table-bg-type: var(--mdb-table-striped-bg)}.table-active{--mdb-table-color-state: var(--mdb-table-active-color);--mdb-table-bg-state: var(--mdb-table-active-bg)}.table-hover>tbody>tr:hover>*{--mdb-table-color-state: var(--mdb-table-hover-color);--mdb-table-bg-state: var(--mdb-table-hover-bg)}.table-primary{--mdb-table-color: #000;--mdb-table-bg: #d8e3f4;--mdb-table-border-color: #adb6c3;--mdb-table-striped-bg: #cdd8e8;--mdb-table-striped-color: #000;--mdb-table-active-bg: #c2ccdc;--mdb-table-active-color: #000;--mdb-table-hover-bg: #c8d2e2;--mdb-table-hover-color: #000;color:var(--mdb-table-color);border-color:var(--mdb-table-border-color)}.table-secondary{--mdb-table-color: #000;--mdb-table-bg: #ecedf0;--mdb-table-border-color: #bdbec0;--mdb-table-striped-bg: #e0e1e4;--mdb-table-striped-color: #000;--mdb-table-active-bg: #d4d5d8;--mdb-table-active-color: #000;--mdb-table-hover-bg: #dadbde;--mdb-table-hover-color: #000;color:var(--mdb-table-color);border-color:var(--mdb-table-border-color)}.table-success{--mdb-table-color: #000;--mdb-table-bg: #d0eddb;--mdb-table-border-color: #a6beaf;--mdb-table-striped-bg: #c6e1d0;--mdb-table-striped-color: #000;--mdb-table-active-bg: #bbd5c5;--mdb-table-active-color: #000;--mdb-table-hover-bg: #c0dbcb;--mdb-table-hover-color: #000;color:var(--mdb-table-color);border-color:var(--mdb-table-border-color)}.table-info{--mdb-table-color: #000;--mdb-table-bg: #ddf0f6;--mdb-table-border-color: #b1c0c5;--mdb-table-striped-bg: #d2e4ea;--mdb-table-striped-color: #000;--mdb-table-active-bg: #c7d8dd;--mdb-table-active-color: #000;--mdb-table-hover-bg: #ccdee4;--mdb-table-hover-color: #000;color:var(--mdb-table-color);border-color:var(--mdb-table-border-color)}.table-warning{--mdb-table-color: #000;--mdb-table-bg: #faecd1;--mdb-table-border-color: #c8bda7;--mdb-table-striped-bg: #eee0c7;--mdb-table-striped-color: #000;--mdb-table-active-bg: #e1d4bc;--mdb-table-active-color: #000;--mdb-table-hover-bg: #e7dac1;--mdb-table-hover-color: #000;color:var(--mdb-table-color);border-color:var(--mdb-table-border-color)}.table-danger{--mdb-table-color: #000;--mdb-table-bg: #f8dbe0;--mdb-table-border-color: #c6afb3;--mdb-table-striped-bg: #ecd0d5;--mdb-table-striped-color: #000;--mdb-table-active-bg: #dfc5ca;--mdb-table-active-color: #000;--mdb-table-hover-bg: #e5cbcf;--mdb-table-hover-color: #000;color:var(--mdb-table-color);border-color:var(--mdb-table-border-color)}.table-light{--mdb-table-color: #000;--mdb-table-bg: #fbfbfb;--mdb-table-border-color: #c9c9c9;--mdb-table-striped-bg: #eeeeee;--mdb-table-striped-color: #000;--mdb-table-active-bg: #e2e2e2;--mdb-table-active-color: #000;--mdb-table-hover-bg: #e8e8e8;--mdb-table-hover-color: #000;color:var(--mdb-table-color);border-color:var(--mdb-table-border-color)}.table-dark{--mdb-table-color: #fff;--mdb-table-bg: #332d2d;--mdb-table-border-color: #5c5757;--mdb-table-striped-bg: #3d3838;--mdb-table-striped-color: #fff;--mdb-table-active-bg: #474242;--mdb-table-active-color: #fff;--mdb-table-hover-bg: #423d3d;--mdb-table-hover-color: #fff;color:var(--mdb-table-color);border-color:var(--mdb-table-border-color)}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}@media(max-width: 575.98px){.table-responsive-sm{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media(max-width: 767.98px){.table-responsive-md{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media(max-width: 991.98px){.table-responsive-lg{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media(max-width: 1199.98px){.table-responsive-xl{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media(max-width: 1399.98px){.table-responsive-xxl{overflow-x:auto;-webkit-overflow-scrolling:touch}}.form-label{margin-bottom:.5rem;color:var(--mdb-form-control-label-color)}.col-form-label{padding-top:calc(0.375rem + var(--mdb-border-width));padding-bottom:calc(0.375rem + var(--mdb-border-width));margin-bottom:0;font-size:inherit;line-height:1.6;color:var(--mdb-form-control-label-color)}.col-form-label-lg{padding-top:calc(0.5rem + var(--mdb-border-width));padding-bottom:calc(0.5rem + var(--mdb-border-width));font-size:1rem}.col-form-label-sm{padding-top:calc(0.25rem + var(--mdb-border-width));padding-bottom:calc(0.25rem + var(--mdb-border-width));font-size:0.775rem}.form-text{margin-top:.25rem;font-size:0.875em;color:var(--mdb-secondary-color)}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.6;color:var(--mdb-surface-color);appearance:none;background-color:var(--mdb-body-bg);background-clip:padding-box;border:var(--mdb-border-width) solid var(--mdb-border-color);border-radius:var(--mdb-border-radius);box-shadow:var(--mdb-box-shadow-inset);transition:all .2s linear}@media(prefers-reduced-motion: reduce){.form-control{transition:none}}.form-control[type=file]{overflow:hidden}.form-control[type=file]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus{color:var(--mdb-surface-color);background-color:var(--mdb-body-bg);border-color:#3b71ca;outline:0;box-shadow:var(--mdb-box-shadow-inset),0 0 0 .25rem rgba(59,113,202,.25)}.form-control::-webkit-date-and-time-value{min-width:85px;height:1.6em;margin:0}.form-control::-webkit-datetime-edit{display:block;padding:0}.form-control::placeholder{color:rgba(var(--mdb-surface-color-rgb), 0.8);opacity:1}.form-control:disabled{background-color:var(--mdb-secondary-bg);opacity:1}.form-control::file-selector-button{padding:.375rem .75rem;margin:-0.375rem -0.75rem;margin-inline-end:.75rem;color:var(--mdb-surface-color);background-color:var(--mdb-tertiary-bg);pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:var(--mdb-border-width);border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:var(--mdb-secondary-bg)}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;line-height:1.6;color:var(--mdb-body-color);background-color:rgba(0,0,0,0);border:solid rgba(0,0,0,0);border-width:var(--mdb-border-width) 0}.form-control-plaintext:focus{outline:0}.form-control-plaintext.form-control-sm,.form-control-plaintext.form-control-lg{padding-right:0;padding-left:0}.form-control-sm{min-height:calc(1.6em + 0.5rem + calc(var(--mdb-border-width) * 2));padding:.25rem .5rem;font-size:0.775rem;border-radius:var(--mdb-border-radius-sm)}.form-control-sm::file-selector-button{padding:.25rem .5rem;margin:-0.25rem -0.5rem;margin-inline-end:.5rem}.form-control-lg{min-height:calc(1.6em + 1rem + calc(var(--mdb-border-width) * 2));padding:.5rem 1rem;font-size:1rem;border-radius:var(--mdb-border-radius-lg)}.form-control-lg::file-selector-button{padding:.5rem 1rem;margin:-0.5rem -1rem;margin-inline-end:1rem}textarea.form-control{min-height:calc(1.6em + 0.75rem + calc(var(--mdb-border-width) * 2))}textarea.form-control-sm{min-height:calc(1.6em + 0.5rem + calc(var(--mdb-border-width) * 2))}textarea.form-control-lg{min-height:calc(1.6em + 1rem + calc(var(--mdb-border-width) * 2))}.form-control-color{width:3rem;height:calc(1.6em + 0.75rem + calc(var(--mdb-border-width) * 2));padding:.375rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{border:0 !important;border-radius:var(--mdb-border-radius)}.form-control-color::-webkit-color-swatch{border:0 !important;border-radius:var(--mdb-border-radius)}.form-control-color.form-control-sm{height:calc(1.6em + 0.5rem + calc(var(--mdb-border-width) * 2))}.form-control-color.form-control-lg{height:calc(1.6em + 1rem + calc(var(--mdb-border-width) * 2))}.form-select{--mdb-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%234f4f4f' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");display:block;width:100%;padding:.375rem 2.25rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.6;color:var(--mdb-surface-color);appearance:none;background-color:var(--mdb-body-bg);background-image:var(--mdb-form-select-bg-img),var(--mdb-form-select-bg-icon, none);background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:var(--mdb-border-width) solid var(--mdb-border-color);border-radius:var(--mdb-border-radius);box-shadow:var(--mdb-box-shadow-inset);transition:all .2s linear}@media(prefers-reduced-motion: reduce){.form-select{transition:none}}.form-select:focus{border-color:#3b71ca;outline:0;box-shadow:var(--mdb-box-shadow-inset),0 0 0 .25rem rgba(59,113,202,.25)}.form-select[multiple],.form-select[size]:not([size="1"]){padding-right:.75rem;background-image:none}.form-select:disabled{background-color:var(--mdb-secondary-bg)}.form-select:-moz-focusring{color:rgba(0,0,0,0);text-shadow:0 0 0 var(--mdb-surface-color)}.form-select-sm{padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:0.775rem;border-radius:var(--mdb-border-radius-sm)}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1rem;border-radius:var(--mdb-border-radius-lg)}[data-mdb-theme=dark] .form-select{--mdb-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e")}.form-check{display:block;min-height:1.6rem;padding-left:1.5em;margin-bottom:.125rem}.form-check .form-check-input{float:left;margin-left:-1.5em}.form-check-reverse{padding-right:1.5em;padding-left:0;text-align:right}.form-check-reverse .form-check-input{float:right;margin-right:-1.5em;margin-left:0}.form-check-input{--mdb-form-check-bg: var(--mdb-body-bg);flex-shrink:0;width:1em;height:1em;margin-top:.3em;vertical-align:top;appearance:none;background-color:var(--mdb-form-check-bg);background-image:var(--mdb-form-check-bg-image);background-repeat:no-repeat;background-position:center;background-size:contain;border:var(--mdb-border-width) solid var(--mdb-border-color);print-color-adjust:exact}.form-check-input[type=checkbox]{border-radius:.25em}.form-check-input[type=radio]{border-radius:50%}.form-check-input:active{filter:brightness(90%)}.form-check-input:focus{border-color:#3b71ca;outline:0;box-shadow:0 0 0 .25rem rgba(59,113,202,.25)}.form-check-input:checked{background-color:#3b71ca;border-color:#3b71ca}.form-check-input:checked[type=checkbox]{--mdb-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e")}.form-check-input:checked[type=radio]{--mdb-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e")}.form-check-input[type=checkbox]:indeterminate{background-color:#3b71ca;border-color:#757575;--mdb-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' 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{cursor:default;opacity:.5}.form-switch{padding-left:2.5em}.form-switch .form-check-input{--mdb-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e");width:2em;margin-left:-2.5em;background-image:var(--mdb-form-switch-bg);background-position:left center;border-radius:2em;transition:background-position .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-switch .form-check-input{transition:none}}.form-switch .form-check-input:focus{--mdb-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%233b71ca'/%3e%3c/svg%3e")}.form-switch .form-check-input:checked{background-position:right center;--mdb-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.form-switch.form-check-reverse{padding-right:2.5em;padding-left:0}.form-switch.form-check-reverse .form-check-input{margin-right:-2.5em;margin-left:0}.form-check-inline{display:inline-block;margin-right:1rem}.btn-check{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.btn-check[disabled]+.btn,.btn-check:disabled+.btn{pointer-events:none;filter:none;opacity:.65}[data-mdb-theme=dark] .form-switch .form-check-input:not(:checked):not(:focus){--mdb-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%28255, 255, 255, 0.25%29'/%3e%3c/svg%3e")}.form-range{width:100%;height:1.5rem;padding:0;appearance:none;background-color:rgba(0,0,0,0)}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(59,113,202,.25)}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(59,113,202,.25)}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-0.25rem;appearance:none;background-color:#3b71ca;border:0;border-radius:1rem;box-shadow:0 .1rem .25rem rgba(0,0,0,.1);transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-range::-webkit-slider-thumb{transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#c4d4ef}.form-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:rgba(0,0,0,0);cursor:pointer;background-color:var(--mdb-secondary-bg);border-color:rgba(0,0,0,0);border-radius:1rem;box-shadow:var(--mdb-box-shadow-inset)}.form-range::-moz-range-thumb{width:1rem;height:1rem;appearance:none;background-color:#3b71ca;border:0;border-radius:1rem;box-shadow:0 .1rem .25rem rgba(0,0,0,.1);transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-range::-moz-range-thumb{transition:none}}.form-range::-moz-range-thumb:active{background-color:#c4d4ef}.form-range::-moz-range-track{width:100%;height:.5rem;color:rgba(0,0,0,0);cursor:pointer;background-color:var(--mdb-secondary-bg);border-color:rgba(0,0,0,0);border-radius:1rem;box-shadow:var(--mdb-box-shadow-inset)}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:var(--mdb-form-control-disabled-bg)}.form-range:disabled::-moz-range-thumb{background-color:var(--mdb-form-control-disabled-bg)}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-control-plaintext,.form-floating>.form-select{height:calc(3.5rem + calc(var(--mdb-border-width) * 2));min-height:calc(3.5rem + calc(var(--mdb-border-width) * 2));line-height:1.25}.form-floating>label{position:absolute;top:0;left:0;z-index:2;height:100%;padding:1rem .75rem;overflow:hidden;text-align:start;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;border:var(--mdb-border-width) solid rgba(0,0,0,0);transform-origin:0 0;transition:opacity .1s ease-in-out,transform .1s ease-in-out}@media(prefers-reduced-motion: reduce){.form-floating>label{transition:none}}.form-floating>.form-control,.form-floating>.form-control-plaintext{padding:1rem .75rem}.form-floating>.form-control::placeholder,.form-floating>.form-control-plaintext::placeholder{color:rgba(0,0,0,0)}.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown),.form-floating>.form-control-plaintext:focus,.form-floating>.form-control-plaintext:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:-webkit-autofill,.form-floating>.form-control-plaintext:-webkit-autofill{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-select{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-control-plaintext~label,.form-floating>.form-select~label{color:rgba(var(--mdb-body-color-rgb), 0.65);transform:scale(0.85) translateY(-0.5rem) translateX(0.15rem)}.form-floating>.form-control:focus~label::after,.form-floating>.form-control:not(:placeholder-shown)~label::after,.form-floating>.form-control-plaintext~label::after,.form-floating>.form-select~label::after{position:absolute;inset:1rem .375rem;z-index:-1;height:1.5em;content:"";background-color:var(--mdb-body-bg);border-radius:var(--mdb-border-radius)}.form-floating>.form-control:-webkit-autofill~label{color:rgba(var(--mdb-body-color-rgb), 0.65);transform:scale(0.85) translateY(-0.5rem) translateX(0.15rem)}.form-floating>.form-control-plaintext~label{border-width:var(--mdb-border-width) 0}.form-floating>:disabled~label,.form-floating>.form-control:disabled~label{color:#757575}.form-floating>:disabled~label::after,.form-floating>.form-control:disabled~label::after{background-color:var(--mdb-secondary-bg)}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-select,.input-group>.form-floating{position:relative;flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.input-group>.form-select:focus,.input-group>.form-floating:focus-within{z-index:5}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:5}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.6;color:var(--mdb-surface-color);text-align:center;white-space:nowrap;background-color:var(--mdb-tertiary-bg);border:var(--mdb-border-width) solid var(--mdb-border-color);border-radius:var(--mdb-border-radius)}.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text,.input-group-lg>.btn{padding:.5rem 1rem;font-size:1rem;border-radius:var(--mdb-border-radius-lg)}.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text,.input-group-sm>.btn{padding:.25rem .5rem;font-size:0.775rem;border-radius:var(--mdb-border-radius-sm)}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:3rem}.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-control,.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-select{border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),.input-group.has-validation>.dropdown-toggle:nth-last-child(n+4),.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-control,.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-select{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-left:calc(var(--mdb-border-width)*-1);border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.form-floating:not(:first-child)>.form-control,.input-group>.form-floating:not(:first-child)>.form-select{border-top-left-radius:0;border-bottom-left-radius:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:0.875em;color:var(--mdb-form-valid-color)}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:6px 16px;margin-top:.1rem;font-size:0.875rem;color:#fff;background-color:var(--mdb-success);border-radius:.25rem}.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip,.is-valid~.valid-feedback,.is-valid~.valid-tooltip{display:block}.was-validated .form-control:valid,.form-control.is-valid{border-color:var(--mdb-form-valid-border-color);padding-right:calc(1.6em + 0.75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2314a44d' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(0.4em + 0.1875rem) center;background-size:calc(0.8em + 0.375rem) calc(0.8em + 0.375rem)}.was-validated .form-control:valid:focus,.form-control.is-valid:focus{border-color:var(--mdb-form-valid-border-color);box-shadow:0 0 0 .25rem rgba(var(--mdb-success-rgb), 0.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.6em + 0.75rem);background-position:top calc(0.4em + 0.1875rem) right calc(0.4em + 0.1875rem)}.was-validated .form-select:valid,.form-select.is-valid{border-color:var(--mdb-form-valid-border-color)}.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size="1"],.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size="1"]{--mdb-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2314a44d' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(0.8em + 0.375rem) calc(0.8em + 0.375rem)}.was-validated .form-select:valid:focus,.form-select.is-valid:focus{border-color:var(--mdb-form-valid-border-color);box-shadow:0 0 0 .25rem rgba(var(--mdb-success-rgb), 0.25)}.was-validated .form-control-color:valid,.form-control-color.is-valid{width:calc(3rem + calc(1.6em + 0.75rem))}.was-validated .form-check-input:valid,.form-check-input.is-valid{border-color:var(--mdb-form-valid-border-color)}.was-validated .form-check-input:valid:checked,.form-check-input.is-valid:checked{background-color:var(--mdb-form-valid-color)}.was-validated .form-check-input:valid:focus,.form-check-input.is-valid:focus{box-shadow:0 0 0 .25rem rgba(var(--mdb-success-rgb), 0.25)}.was-validated .form-check-input:valid~.form-check-label,.form-check-input.is-valid~.form-check-label{color:var(--mdb-form-valid-color)}.form-check-inline .form-check-input~.valid-feedback{margin-left:.5em}.was-validated .input-group>.form-control:not(:focus):valid,.input-group>.form-control:not(:focus).is-valid,.was-validated .input-group>.form-select:not(:focus):valid,.input-group>.form-select:not(:focus).is-valid,.was-validated .input-group>.form-floating:not(:focus-within):valid,.input-group>.form-floating:not(:focus-within).is-valid{z-index:3}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:0.875em;color:var(--mdb-form-invalid-color)}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:6px 16px;margin-top:.1rem;font-size:0.875rem;color:#fff;background-color:var(--mdb-danger);border-radius:.25rem}.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip,.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip{display:block}.was-validated .form-control:invalid,.form-control.is-invalid{border-color:var(--mdb-form-invalid-border-color);padding-right:calc(1.6em + 0.75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc4c64'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc4c64' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(0.4em + 0.1875rem) center;background-size:calc(0.8em + 0.375rem) calc(0.8em + 0.375rem)}.was-validated .form-control:invalid:focus,.form-control.is-invalid:focus{border-color:var(--mdb-form-invalid-border-color);box-shadow:0 0 0 .25rem rgba(var(--mdb-danger-rgb), 0.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.6em + 0.75rem);background-position:top calc(0.4em + 0.1875rem) right calc(0.4em + 0.1875rem)}.was-validated .form-select:invalid,.form-select.is-invalid{border-color:var(--mdb-form-invalid-border-color)}.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size="1"],.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size="1"]{--mdb-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc4c64'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc4c64' stroke='none'/%3e%3c/svg%3e");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(0.8em + 0.375rem) calc(0.8em + 0.375rem)}.was-validated .form-select:invalid:focus,.form-select.is-invalid:focus{border-color:var(--mdb-form-invalid-border-color);box-shadow:0 0 0 .25rem rgba(var(--mdb-danger-rgb), 0.25)}.was-validated .form-control-color:invalid,.form-control-color.is-invalid{width:calc(3rem + calc(1.6em + 0.75rem))}.was-validated .form-check-input:invalid,.form-check-input.is-invalid{border-color:var(--mdb-form-invalid-border-color)}.was-validated .form-check-input:invalid:checked,.form-check-input.is-invalid:checked{background-color:var(--mdb-form-invalid-color)}.was-validated .form-check-input:invalid:focus,.form-check-input.is-invalid:focus{box-shadow:0 0 0 .25rem rgba(var(--mdb-danger-rgb), 0.25)}.was-validated .form-check-input:invalid~.form-check-label,.form-check-input.is-invalid~.form-check-label{color:var(--mdb-form-invalid-color)}.form-check-inline .form-check-input~.invalid-feedback{margin-left:.5em}.was-validated .input-group>.form-control:not(:focus):invalid,.input-group>.form-control:not(:focus).is-invalid,.was-validated .input-group>.form-select:not(:focus):invalid,.input-group>.form-select:not(:focus).is-invalid,.was-validated .input-group>.form-floating:not(:focus-within):invalid,.input-group>.form-floating:not(:focus-within).is-invalid{z-index:4}.btn{--mdb-btn-padding-x: 1.5rem;--mdb-btn-padding-y: 0.375rem;--mdb-btn-font-family: ;--mdb-btn-font-size:0.75rem;--mdb-btn-font-weight: 500;--mdb-btn-line-height: 1.5;--mdb-btn-color: var(--mdb-body-color);--mdb-btn-bg: transparent;--mdb-btn-border-width: 2px;--mdb-btn-border-color: transparent;--mdb-btn-border-radius: 0.25rem;--mdb-btn-hover-border-color: transparent;--mdb-btn-box-shadow: 0 4px 9px -4px rgba(var(--mdb-box-shadow-color-rgb), 0.35);--mdb-btn-disabled-opacity: 0.65;--mdb-btn-focus-box-shadow: 0 0 0 0.25rem rgba(var(--mdb-btn-focus-shadow-rgb), 0.5);display:inline-block;padding:var(--mdb-btn-padding-y) var(--mdb-btn-padding-x);font-family:var(--mdb-btn-font-family);font-size:var(--mdb-btn-font-size);font-weight:var(--mdb-btn-font-weight);line-height:var(--mdb-btn-line-height);color:var(--mdb-btn-color);text-align:center;vertical-align:middle;cursor:pointer;user-select:none;border:var(--mdb-btn-border-width) solid var(--mdb-btn-border-color);border-radius:var(--mdb-btn-border-radius);background-color:var(--mdb-btn-bg);box-shadow:var(--mdb-btn-box-shadow);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.btn{transition:none}}.btn:hover{color:var(--mdb-btn-hover-color);background-color:var(--mdb-btn-hover-bg);border-color:var(--mdb-btn-hover-border-color)}.btn-check+.btn:hover{color:var(--mdb-btn-color);background-color:var(--mdb-btn-bg);border-color:var(--mdb-btn-border-color)}.btn:focus-visible{color:var(--mdb-btn-hover-color);background-color:var(--mdb-btn-hover-bg);border-color:var(--mdb-btn-hover-border-color);outline:0;box-shadow:var(--mdb-btn-box-shadow),var(--mdb-btn-focus-box-shadow)}.btn-check:focus-visible+.btn{border-color:var(--mdb-btn-hover-border-color);outline:0;box-shadow:var(--mdb-btn-box-shadow),var(--mdb-btn-focus-box-shadow)}.btn-check:checked+.btn,:not(.btn-check)+.btn:active,.btn:first-child:active,.btn.active,.btn.show{color:var(--mdb-btn-active-color);background-color:var(--mdb-btn-active-bg);border-color:var(--mdb-btn-active-border-color);box-shadow:var(--mdb-btn-active-shadow)}.btn-check:checked+.btn:focus-visible,:not(.btn-check)+.btn:active:focus-visible,.btn:first-child:active:focus-visible,.btn.active:focus-visible,.btn.show:focus-visible{box-shadow:var(--mdb-btn-active-shadow),var(--mdb-btn-focus-box-shadow)}.btn:disabled,.btn.disabled,fieldset:disabled .btn{color:var(--mdb-btn-disabled-color);pointer-events:none;background-color:var(--mdb-btn-disabled-bg);border-color:var(--mdb-btn-disabled-border-color);opacity:var(--mdb-btn-disabled-opacity);box-shadow:none}.btn-primary{--mdb-btn-color: #fff;--mdb-btn-bg: #3b71ca;--mdb-btn-border-color: #3b71ca;--mdb-btn-hover-color: #fff;--mdb-btn-hover-bg: #386bc0;--mdb-btn-hover-border-color: #2f5aa2;--mdb-btn-focus-shadow-rgb: 88, 134, 210;--mdb-btn-active-color: #fff;--mdb-btn-active-bg: #3566b6;--mdb-btn-active-border-color: #2c5598;--mdb-btn-active-shadow: 0 8px 9px -4px rgba(var(--mdb-box-shadow-color-rgb), 0.15), 0 4px 18px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.1);--mdb-btn-disabled-color: #fff;--mdb-btn-disabled-bg: #3b71ca;--mdb-btn-disabled-border-color: #3b71ca}.btn-secondary{--mdb-btn-color: #fff;--mdb-btn-bg: #9fa6b2;--mdb-btn-border-color: #9fa6b2;--mdb-btn-hover-color: #fff;--mdb-btn-hover-bg: #979ea9;--mdb-btn-hover-border-color: #7f858e;--mdb-btn-focus-shadow-rgb: 173, 179, 190;--mdb-btn-active-color: #fff;--mdb-btn-active-bg: #8f95a0;--mdb-btn-active-border-color: #777d86;--mdb-btn-active-shadow: 0 8px 9px -4px rgba(var(--mdb-box-shadow-color-rgb), 0.15), 0 4px 18px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.1);--mdb-btn-disabled-color: #fff;--mdb-btn-disabled-bg: #9fa6b2;--mdb-btn-disabled-border-color: #9fa6b2}.btn-success{--mdb-btn-color: #fff;--mdb-btn-bg: #14a44d;--mdb-btn-border-color: #14a44d;--mdb-btn-hover-color: #fff;--mdb-btn-hover-bg: #139c49;--mdb-btn-hover-border-color: #10833e;--mdb-btn-focus-shadow-rgb: 55, 178, 104;--mdb-btn-active-color: #fff;--mdb-btn-active-bg: #129445;--mdb-btn-active-border-color: #0f7b3a;--mdb-btn-active-shadow: 0 8px 9px -4px rgba(var(--mdb-box-shadow-color-rgb), 0.15), 0 4px 18px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.1);--mdb-btn-disabled-color: #fff;--mdb-btn-disabled-bg: #14a44d;--mdb-btn-disabled-border-color: #14a44d}.btn-danger{--mdb-btn-color: #fff;--mdb-btn-bg: #dc4c64;--mdb-btn-border-color: #dc4c64;--mdb-btn-hover-color: #fff;--mdb-btn-hover-bg: #d1485f;--mdb-btn-hover-border-color: #b03d50;--mdb-btn-focus-shadow-rgb: 225, 103, 123;--mdb-btn-active-color: #fff;--mdb-btn-active-bg: #c6445a;--mdb-btn-active-border-color: #a5394b;--mdb-btn-active-shadow: 0 8px 9px -4px rgba(var(--mdb-box-shadow-color-rgb), 0.15), 0 4px 18px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.1);--mdb-btn-disabled-color: #fff;--mdb-btn-disabled-bg: #dc4c64;--mdb-btn-disabled-border-color: #dc4c64}.btn-warning{--mdb-btn-color: #fff;--mdb-btn-bg: #e4a11b;--mdb-btn-border-color: #e4a11b;--mdb-btn-hover-color: #fff;--mdb-btn-hover-bg: #d9991a;--mdb-btn-hover-border-color: #b68116;--mdb-btn-focus-shadow-rgb: 232, 175, 61;--mdb-btn-active-color: #fff;--mdb-btn-active-bg: #cd9118;--mdb-btn-active-border-color: #ab7914;--mdb-btn-active-shadow: 0 8px 9px -4px rgba(var(--mdb-box-shadow-color-rgb), 0.15), 0 4px 18px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.1);--mdb-btn-disabled-color: #fff;--mdb-btn-disabled-bg: #e4a11b;--mdb-btn-disabled-border-color: #e4a11b}.btn-info{--mdb-btn-color: #fff;--mdb-btn-bg: #54b4d3;--mdb-btn-border-color: #54b4d3;--mdb-btn-hover-color: #fff;--mdb-btn-hover-bg: #50abc8;--mdb-btn-hover-border-color: #4390a9;--mdb-btn-focus-shadow-rgb: 110, 191, 218;--mdb-btn-active-color: #fff;--mdb-btn-active-bg: #4ca2be;--mdb-btn-active-border-color: #3f879e;--mdb-btn-active-shadow: 0 8px 9px -4px rgba(var(--mdb-box-shadow-color-rgb), 0.15), 0 4px 18px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.1);--mdb-btn-disabled-color: #fff;--mdb-btn-disabled-bg: #54b4d3;--mdb-btn-disabled-border-color: #54b4d3}.btn-light{--mdb-btn-color: #000;--mdb-btn-bg: #fbfbfb;--mdb-btn-border-color: #fbfbfb;--mdb-btn-hover-color: #000;--mdb-btn-hover-bg: #eeeeee;--mdb-btn-hover-border-color: #c9c9c9;--mdb-btn-focus-shadow-rgb: 213, 213, 213;--mdb-btn-active-color: #000;--mdb-btn-active-bg: #e2e2e2;--mdb-btn-active-border-color: #bcbcbc;--mdb-btn-active-shadow: 0 8px 9px -4px rgba(var(--mdb-box-shadow-color-rgb), 0.15), 0 4px 18px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.1);--mdb-btn-disabled-color: #000;--mdb-btn-disabled-bg: #fbfbfb;--mdb-btn-disabled-border-color: #fbfbfb}.btn-dark{--mdb-btn-color: #fff;--mdb-btn-bg: #332d2d;--mdb-btn-border-color: #332d2d;--mdb-btn-hover-color: #fff;--mdb-btn-hover-bg: #3d3838;--mdb-btn-hover-border-color: #474242;--mdb-btn-focus-shadow-rgb: 82, 77, 77;--mdb-btn-active-color: #fff;--mdb-btn-active-bg: #474242;--mdb-btn-active-border-color: #474242;--mdb-btn-active-shadow: 0 8px 9px -4px rgba(var(--mdb-box-shadow-color-rgb), 0.15), 0 4px 18px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.1);--mdb-btn-disabled-color: #fff;--mdb-btn-disabled-bg: #332d2d;--mdb-btn-disabled-border-color: #332d2d}.btn-outline-primary{--mdb-btn-color: #3b71ca;--mdb-btn-border-color: #3b71ca;--mdb-btn-hover-color: #fff;--mdb-btn-hover-bg: #3b71ca;--mdb-btn-hover-border-color: #3b71ca;--mdb-btn-focus-shadow-rgb: 59, 113, 202;--mdb-btn-active-color: #fff;--mdb-btn-active-bg: #3b71ca;--mdb-btn-active-border-color: #3b71ca;--mdb-btn-active-shadow: 0 8px 9px -4px rgba(var(--mdb-box-shadow-color-rgb), 0.15), 0 4px 18px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.1);--mdb-btn-disabled-color: #3b71ca;--mdb-btn-disabled-bg: transparent;--mdb-btn-disabled-border-color: #3b71ca;--mdb-gradient: none}.btn-outline-secondary{--mdb-btn-color: #9fa6b2;--mdb-btn-border-color: #9fa6b2;--mdb-btn-hover-color: #fff;--mdb-btn-hover-bg: #9fa6b2;--mdb-btn-hover-border-color: #9fa6b2;--mdb-btn-focus-shadow-rgb: 159, 166, 178;--mdb-btn-active-color: #fff;--mdb-btn-active-bg: #9fa6b2;--mdb-btn-active-border-color: #9fa6b2;--mdb-btn-active-shadow: 0 8px 9px -4px rgba(var(--mdb-box-shadow-color-rgb), 0.15), 0 4px 18px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.1);--mdb-btn-disabled-color: #9fa6b2;--mdb-btn-disabled-bg: transparent;--mdb-btn-disabled-border-color: #9fa6b2;--mdb-gradient: none}.btn-outline-success{--mdb-btn-color: #14a44d;--mdb-btn-border-color: #14a44d;--mdb-btn-hover-color: #fff;--mdb-btn-hover-bg: #14a44d;--mdb-btn-hover-border-color: #14a44d;--mdb-btn-focus-shadow-rgb: 20, 164, 77;--mdb-btn-active-color: #fff;--mdb-btn-active-bg: #14a44d;--mdb-btn-active-border-color: #14a44d;--mdb-btn-active-shadow: 0 8px 9px -4px rgba(var(--mdb-box-shadow-color-rgb), 0.15), 0 4px 18px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.1);--mdb-btn-disabled-color: #14a44d;--mdb-btn-disabled-bg: transparent;--mdb-btn-disabled-border-color: #14a44d;--mdb-gradient: none}.btn-outline-danger{--mdb-btn-color: #dc4c64;--mdb-btn-border-color: #dc4c64;--mdb-btn-hover-color: #fff;--mdb-btn-hover-bg: #dc4c64;--mdb-btn-hover-border-color: #dc4c64;--mdb-btn-focus-shadow-rgb: 220, 76, 100;--mdb-btn-active-color: #fff;--mdb-btn-active-bg: #dc4c64;--mdb-btn-active-border-color: #dc4c64;--mdb-btn-active-shadow: 0 8px 9px -4px rgba(var(--mdb-box-shadow-color-rgb), 0.15), 0 4px 18px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.1);--mdb-btn-disabled-color: #dc4c64;--mdb-btn-disabled-bg: transparent;--mdb-btn-disabled-border-color: #dc4c64;--mdb-gradient: none}.btn-outline-warning{--mdb-btn-color: #e4a11b;--mdb-btn-border-color: #e4a11b;--mdb-btn-hover-color: #fff;--mdb-btn-hover-bg: #e4a11b;--mdb-btn-hover-border-color: #e4a11b;--mdb-btn-focus-shadow-rgb: 228, 161, 27;--mdb-btn-active-color: #fff;--mdb-btn-active-bg: #e4a11b;--mdb-btn-active-border-color: #e4a11b;--mdb-btn-active-shadow: 0 8px 9px -4px rgba(var(--mdb-box-shadow-color-rgb), 0.15), 0 4px 18px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.1);--mdb-btn-disabled-color: #e4a11b;--mdb-btn-disabled-bg: transparent;--mdb-btn-disabled-border-color: #e4a11b;--mdb-gradient: none}.btn-outline-info{--mdb-btn-color: #54b4d3;--mdb-btn-border-color: #54b4d3;--mdb-btn-hover-color: #fff;--mdb-btn-hover-bg: #54b4d3;--mdb-btn-hover-border-color: #54b4d3;--mdb-btn-focus-shadow-rgb: 84, 180, 211;--mdb-btn-active-color: #fff;--mdb-btn-active-bg: #54b4d3;--mdb-btn-active-border-color: #54b4d3;--mdb-btn-active-shadow: 0 8px 9px -4px rgba(var(--mdb-box-shadow-color-rgb), 0.15), 0 4px 18px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.1);--mdb-btn-disabled-color: #54b4d3;--mdb-btn-disabled-bg: transparent;--mdb-btn-disabled-border-color: #54b4d3;--mdb-gradient: none}.btn-outline-light{--mdb-btn-color: #fbfbfb;--mdb-btn-border-color: #fbfbfb;--mdb-btn-hover-color: #000;--mdb-btn-hover-bg: #fbfbfb;--mdb-btn-hover-border-color: #fbfbfb;--mdb-btn-focus-shadow-rgb: 251, 251, 251;--mdb-btn-active-color: #000;--mdb-btn-active-bg: #fbfbfb;--mdb-btn-active-border-color: #fbfbfb;--mdb-btn-active-shadow: 0 8px 9px -4px rgba(var(--mdb-box-shadow-color-rgb), 0.15), 0 4px 18px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.1);--mdb-btn-disabled-color: #fbfbfb;--mdb-btn-disabled-bg: transparent;--mdb-btn-disabled-border-color: #fbfbfb;--mdb-gradient: none}.btn-outline-dark{--mdb-btn-color: #332d2d;--mdb-btn-border-color: #332d2d;--mdb-btn-hover-color: #fff;--mdb-btn-hover-bg: #332d2d;--mdb-btn-hover-border-color: #332d2d;--mdb-btn-focus-shadow-rgb: 51, 45, 45;--mdb-btn-active-color: #fff;--mdb-btn-active-bg: #332d2d;--mdb-btn-active-border-color: #332d2d;--mdb-btn-active-shadow: 0 8px 9px -4px rgba(var(--mdb-box-shadow-color-rgb), 0.15), 0 4px 18px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.1);--mdb-btn-disabled-color: #332d2d;--mdb-btn-disabled-bg: transparent;--mdb-btn-disabled-border-color: #332d2d;--mdb-gradient: none}.btn-link{--mdb-btn-font-weight: 400;--mdb-btn-color: #3b71ca;--mdb-btn-bg: transparent;--mdb-btn-border-color: transparent;--mdb-btn-hover-color: #386bc0;--mdb-btn-hover-border-color: transparent;--mdb-btn-active-color: #386bc0;--mdb-btn-active-border-color: transparent;--mdb-btn-disabled-color: #9e9e9e;--mdb-btn-disabled-border-color: transparent;--mdb-btn-box-shadow: 0 0 0 #000;--mdb-btn-focus-shadow-rgb: 88, 134, 210;text-decoration:none}.btn-link:hover,.btn-link:focus-visible{text-decoration:none}.btn-link:focus-visible{color:var(--mdb-btn-color)}.btn-link:hover{color:var(--mdb-btn-hover-color)}.btn-lg,.btn-group-lg>.btn{--mdb-btn-padding-y: 0.5rem;--mdb-btn-padding-x: 1.6875rem;--mdb-btn-font-size:0.875rem;--mdb-btn-border-radius: var(--mdb-border-radius-lg)}.btn-sm,.btn-group-sm>.btn{--mdb-btn-padding-y: 0.25rem;--mdb-btn-padding-x: 1rem;--mdb-btn-font-size:0.75rem;--mdb-btn-border-radius: var(--mdb-border-radius-sm)}.fade{transition:opacity .15s linear}@media(prefers-reduced-motion: reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;transition:height .35s ease}@media(prefers-reduced-motion: reduce){.collapsing{transition:none}}.collapsing.collapse-horizontal{width:0;height:auto;transition:width .35s ease}@media(prefers-reduced-motion: reduce){.collapsing.collapse-horizontal{transition:none}}.dropup,.dropend,.dropdown,.dropstart,.dropup-center,.dropdown-center{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid rgba(0,0,0,0);border-bottom:0;border-left:.3em solid rgba(0,0,0,0)}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{--mdb-dropdown-zindex: 1000;--mdb-dropdown-min-width: 10rem;--mdb-dropdown-padding-x: 0;--mdb-dropdown-padding-y: 0.5rem;--mdb-dropdown-spacer: 0.125rem;--mdb-dropdown-font-size:0.875rem;--mdb-dropdown-color: var(--mdb-surface-color);--mdb-dropdown-bg: var(--mdb-surface-bg);--mdb-dropdown-border-color: var(--mdb-border-color-translucent);--mdb-dropdown-border-radius: 0.5rem;--mdb-dropdown-border-width: var(--mdb-border-width);--mdb-dropdown-inner-border-radius: calc(0.5rem - var(--mdb-border-width));--mdb-dropdown-divider-bg: var(--mdb-divider-color);--mdb-dropdown-divider-margin-y: 0.5rem;--mdb-dropdown-box-shadow: 0 2px 15px -3px rgba(var(--mdb-box-shadow-color-rgb), 0.07), 0 10px 20px -2px rgba(var(--mdb-box-shadow-color-rgb), 0.04);--mdb-dropdown-link-color: var(--mdb-surface-color);--mdb-dropdown-link-hover-color: var(--mdb-surface-color);--mdb-dropdown-link-hover-bg: var(--mdb-tertiary-bg);--mdb-dropdown-link-active-color: #fff;--mdb-dropdown-link-active-bg: #3b71ca;--mdb-dropdown-link-disabled-color: rgba(var(--mdb-surface-color-rgb), 0.5);--mdb-dropdown-item-padding-x: 1rem;--mdb-dropdown-item-padding-y: 0.5rem;--mdb-dropdown-header-color: rgba(var(--mdb-emphasis-color-rgb), 0.55);--mdb-dropdown-header-padding-x: 1rem;--mdb-dropdown-header-padding-y: 0.5rem;position:absolute;z-index:var(--mdb-dropdown-zindex);display:none;min-width:var(--mdb-dropdown-min-width);padding:var(--mdb-dropdown-padding-y) var(--mdb-dropdown-padding-x);margin:0;font-size:var(--mdb-dropdown-font-size);color:var(--mdb-dropdown-color);text-align:left;list-style:none;background-color:var(--mdb-dropdown-bg);background-clip:padding-box;border:var(--mdb-dropdown-border-width) solid var(--mdb-dropdown-border-color);border-radius:var(--mdb-dropdown-border-radius);box-shadow:var(--mdb-dropdown-box-shadow)}.dropdown-menu[data-mdb-popper]{top:100%;left:0;margin-top:var(--mdb-dropdown-spacer)}.dropdown-menu-start{--bs-position: start}.dropdown-menu-start[data-mdb-popper]{right:auto;left:0}.dropdown-menu-end{--bs-position: end}.dropdown-menu-end[data-mdb-popper]{right:0;left:auto}@media(min-width: 576px){.dropdown-menu-sm-start{--bs-position: start}.dropdown-menu-sm-start[data-mdb-popper]{right:auto;left:0}.dropdown-menu-sm-end{--bs-position: end}.dropdown-menu-sm-end[data-mdb-popper]{right:0;left:auto}}@media(min-width: 768px){.dropdown-menu-md-start{--bs-position: start}.dropdown-menu-md-start[data-mdb-popper]{right:auto;left:0}.dropdown-menu-md-end{--bs-position: end}.dropdown-menu-md-end[data-mdb-popper]{right:0;left:auto}}@media(min-width: 992px){.dropdown-menu-lg-start{--bs-position: start}.dropdown-menu-lg-start[data-mdb-popper]{right:auto;left:0}.dropdown-menu-lg-end{--bs-position: end}.dropdown-menu-lg-end[data-mdb-popper]{right:0;left:auto}}@media(min-width: 1200px){.dropdown-menu-xl-start{--bs-position: start}.dropdown-menu-xl-start[data-mdb-popper]{right:auto;left:0}.dropdown-menu-xl-end{--bs-position: end}.dropdown-menu-xl-end[data-mdb-popper]{right:0;left:auto}}@media(min-width: 1400px){.dropdown-menu-xxl-start{--bs-position: start}.dropdown-menu-xxl-start[data-mdb-popper]{right:auto;left:0}.dropdown-menu-xxl-end{--bs-position: end}.dropdown-menu-xxl-end[data-mdb-popper]{right:0;left:auto}}.dropup .dropdown-menu[data-mdb-popper]{top:auto;bottom:100%;margin-top:0;margin-bottom:var(--mdb-dropdown-spacer)}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid rgba(0,0,0,0);border-bottom:.3em solid;border-left:.3em solid rgba(0,0,0,0)}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-menu[data-mdb-popper]{top:0;right:auto;left:100%;margin-top:0;margin-left:var(--mdb-dropdown-spacer)}.dropend .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid rgba(0,0,0,0);border-right:0;border-bottom:.3em solid rgba(0,0,0,0);border-left:.3em solid}.dropend .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-toggle::after{vertical-align:0}.dropstart .dropdown-menu[data-mdb-popper]{top:0;right:100%;left:auto;margin-top:0;margin-right:var(--mdb-dropdown-spacer)}.dropstart .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropstart .dropdown-toggle::after{display:none}.dropstart .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid rgba(0,0,0,0);border-right:.3em solid;border-bottom:.3em solid rgba(0,0,0,0)}.dropstart .dropdown-toggle:empty::after{margin-left:0}.dropstart .dropdown-toggle::before{vertical-align:0}.dropdown-divider{height:0;margin:var(--mdb-dropdown-divider-margin-y) 0;overflow:hidden;border-top:1px solid var(--mdb-dropdown-divider-bg);opacity:1}.dropdown-item{display:block;width:100%;padding:var(--mdb-dropdown-item-padding-y) var(--mdb-dropdown-item-padding-x);clear:both;font-weight:400;color:var(--mdb-dropdown-link-color);text-align:inherit;white-space:nowrap;background-color:rgba(0,0,0,0);border:0;border-radius:var(--mdb-dropdown-item-border-radius, 0)}.dropdown-item:hover,.dropdown-item:focus{color:var(--mdb-dropdown-link-hover-color);background-color:var(--mdb-dropdown-link-hover-bg)}.dropdown-item.active,.dropdown-item:active{color:var(--mdb-dropdown-link-active-color);text-decoration:none;background-color:var(--mdb-dropdown-link-active-bg)}.dropdown-item.disabled,.dropdown-item:disabled{color:var(--mdb-dropdown-link-disabled-color);pointer-events:none;background-color:rgba(0,0,0,0)}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:var(--mdb-dropdown-header-padding-y) var(--mdb-dropdown-header-padding-x);margin-bottom:0;font-size:0.875rem;color:var(--mdb-dropdown-header-color);white-space:nowrap}.dropdown-item-text{display:block;padding:var(--mdb-dropdown-item-padding-y) var(--mdb-dropdown-item-padding-x);color:var(--mdb-dropdown-link-color)}.dropdown-menu-dark{--mdb-dropdown-color: #e0e0e0;--mdb-dropdown-bg: #4f4f4f;--mdb-dropdown-border-color: var(--mdb-border-color-translucent);--mdb-dropdown-box-shadow: ;--mdb-dropdown-link-color: #e0e0e0;--mdb-dropdown-link-hover-color: #fff;--mdb-dropdown-divider-bg: var(--mdb-divider-color);--mdb-dropdown-link-hover-bg: rgba(255, 255, 255, 0.15);--mdb-dropdown-link-active-color: #fff;--mdb-dropdown-link-active-bg: #3b71ca;--mdb-dropdown-link-disabled-color: #9e9e9e;--mdb-dropdown-header-color: #9e9e9e}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;flex:1 1 auto}.btn-group>.btn-check:checked+.btn,.btn-group>.btn-check:focus+.btn,.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn-check:checked+.btn,.btn-group-vertical>.btn-check:focus+.btn,.btn-group-vertical>.btn:hover,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn.active{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group{border-radius:.25rem}.btn-group>:not(.btn-check:first-child)+.btn,.btn-group>.btn-group:not(:first-child){margin-left:calc(2px*-1)}.btn-group>.btn:not(:last-child):not(.dropdown-toggle),.btn-group>.btn.dropdown-toggle-split:first-child,.btn-group>.btn-group:not(:last-child)>.btn{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:nth-child(n+3),.btn-group>:not(.btn-check)+.btn,.btn-group>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:1.125rem;padding-left:1.125rem}.dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after,.dropend .dropdown-toggle-split::after{margin-left:0}.dropstart .dropdown-toggle-split::before{margin-right:0}.btn-sm+.dropdown-toggle-split,.btn-group-sm>.btn+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-lg+.dropdown-toggle-split,.btn-group-lg>.btn+.dropdown-toggle-split{padding-right:1.265625rem;padding-left:1.265625rem}.btn-group.show .dropdown-toggle{box-shadow:0 8px 9px -4px rgba(var(--mdb-box-shadow-color-rgb), 0.15),0 4px 18px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.1)}.btn-group.show .dropdown-toggle.btn-link{box-shadow:none}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn:not(:first-child),.btn-group-vertical>.btn-group:not(:first-child){margin-top:calc(2px*-1)}.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle),.btn-group-vertical>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn~.btn,.btn-group-vertical>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-top-right-radius:0}.nav{--mdb-nav-link-padding-x: 1rem;--mdb-nav-link-padding-y: 0.5rem;--mdb-nav-link-font-weight: ;--mdb-nav-link-color: var(--mdb-link-color);--mdb-nav-link-hover-color: var(--mdb-link-hover-color);--mdb-nav-link-disabled-color: var(--mdb-secondary-color);display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:var(--mdb-nav-link-padding-y) var(--mdb-nav-link-padding-x);font-size:var(--mdb-nav-link-font-size);font-weight:var(--mdb-nav-link-font-weight);color:var(--mdb-nav-link-color);background:none;border:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}@media(prefers-reduced-motion: reduce){.nav-link{transition:none}}.nav-link:hover,.nav-link:focus{color:var(--mdb-nav-link-hover-color)}.nav-link:focus-visible{outline:0;box-shadow:0 0 0 .25rem rgba(59,113,202,.25)}.nav-link.disabled,.nav-link:disabled{color:var(--mdb-nav-link-disabled-color);pointer-events:none;cursor:default}.nav-tabs{--mdb-nav-tabs-border-width: var(--mdb-border-width);--mdb-nav-tabs-border-color: var(--mdb-border-color);--mdb-nav-tabs-border-radius: var(--mdb-border-radius);--mdb-nav-tabs-link-hover-border-color: var(--mdb-secondary-bg) var(--mdb-secondary-bg) var(--mdb-border-color);--mdb-nav-tabs-link-active-color: #3b71ca;--mdb-nav-tabs-link-active-bg: var(--mdb-body-bg);--mdb-nav-tabs-link-active-border-color: #3b71ca;border-bottom:var(--mdb-nav-tabs-border-width) solid var(--mdb-nav-tabs-border-color)}.nav-tabs .nav-link{margin-bottom:calc(-1*var(--mdb-nav-tabs-border-width));border:var(--mdb-nav-tabs-border-width) solid rgba(0,0,0,0);border-top-left-radius:var(--mdb-nav-tabs-border-radius);border-top-right-radius:var(--mdb-nav-tabs-border-radius)}.nav-tabs .nav-link:hover,.nav-tabs .nav-link:focus{isolation:isolate;border-color:var(--mdb-nav-tabs-link-hover-border-color)}.nav-tabs .nav-link.active,.nav-tabs .nav-item.show .nav-link{color:var(--mdb-nav-tabs-link-active-color);background-color:var(--mdb-nav-tabs-link-active-bg);border-color:var(--mdb-nav-tabs-link-active-border-color)}.nav-tabs .dropdown-menu{margin-top:calc(-1*var(--mdb-nav-tabs-border-width));border-top-left-radius:0;border-top-right-radius:0}.nav-pills{--mdb-nav-pills-border-radius: var(--mdb-border-radius);--mdb-nav-pills-link-active-color: var(--mdb-primary-text-emphasis);--mdb-nav-pills-link-active-bg: var(--mdb-primary-bg-subtle)}.nav-pills .nav-link{border-radius:var(--mdb-nav-pills-border-radius)}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:var(--mdb-nav-pills-link-active-color);background-color:var(--mdb-nav-pills-link-active-bg)}.nav-underline{--mdb-nav-underline-gap: 1rem;--mdb-nav-underline-border-width: 0.125rem;--mdb-nav-underline-link-active-color: var(--mdb-emphasis-color);gap:var(--mdb-nav-underline-gap)}.nav-underline .nav-link{padding-right:0;padding-left:0;border-bottom:var(--mdb-nav-underline-border-width) solid rgba(0,0,0,0)}.nav-underline .nav-link:hover,.nav-underline .nav-link:focus{border-bottom-color:currentcolor}.nav-underline .nav-link.active,.nav-underline .show>.nav-link{font-weight:700;color:var(--mdb-nav-underline-link-active-color);border-bottom-color:currentcolor}.nav-fill>.nav-link,.nav-fill .nav-item{flex:1 1 auto;text-align:center}.nav-justified>.nav-link,.nav-justified .nav-item{flex-basis:0;flex-grow:1;text-align:center}.nav-fill .nav-item .nav-link,.nav-justified .nav-item .nav-link{width:100%}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{--mdb-navbar-padding-x: 0;--mdb-navbar-padding-y: 0.5rem;--mdb-navbar-color: rgba(var(--mdb-emphasis-color-rgb), 0.65);--mdb-navbar-hover-color: rgba(var(--mdb-emphasis-color-rgb), 0.8);--mdb-navbar-disabled-color: rgba(var(--mdb-emphasis-color-rgb), 0.3);--mdb-navbar-active-color: rgba(var(--mdb-emphasis-color-rgb), 1);--mdb-navbar-brand-padding-y: 0.3rem;--mdb-navbar-brand-margin-end: 1rem;--mdb-navbar-brand-font-size: 1.25rem;--mdb-navbar-brand-color: rgba(var(--mdb-emphasis-color-rgb), 1);--mdb-navbar-brand-hover-color: rgba(var(--mdb-emphasis-color-rgb), 1);--mdb-navbar-nav-link-padding-x: 0.5rem;--mdb-navbar-toggler-padding-y: 0.25rem;--mdb-navbar-toggler-padding-x: 0.75rem;--mdb-navbar-toggler-font-size: 1.25rem;--mdb-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2879, 79, 79, 0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");--mdb-navbar-toggler-border-color: rgba(var(--mdb-emphasis-color-rgb), 0.15);--mdb-navbar-toggler-border-radius: 0.25rem;--mdb-navbar-toggler-focus-width: 0.25rem;--mdb-navbar-toggler-transition: box-shadow 0.15s ease-in-out;position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:var(--mdb-navbar-padding-y) var(--mdb-navbar-padding-x)}.navbar>.container,.navbar>.container-fluid,.navbar>.container-sm,.navbar>.container-md,.navbar>.container-lg,.navbar>.container-xl,.navbar>.container-xxl{display:flex;flex-wrap:inherit;align-items:center;justify-content:space-between}.navbar-brand{padding-top:var(--mdb-navbar-brand-padding-y);padding-bottom:var(--mdb-navbar-brand-padding-y);margin-right:var(--mdb-navbar-brand-margin-end);font-size:var(--mdb-navbar-brand-font-size);color:var(--mdb-navbar-brand-color);white-space:nowrap}.navbar-brand:hover,.navbar-brand:focus{color:var(--mdb-navbar-brand-hover-color)}.navbar-nav{--mdb-nav-link-padding-x: 0;--mdb-nav-link-padding-y: 0.5rem;--mdb-nav-link-font-weight: ;--mdb-nav-link-color: var(--mdb-navbar-color);--mdb-nav-link-hover-color: var(--mdb-navbar-hover-color);--mdb-nav-link-disabled-color: var(--mdb-navbar-disabled-color);display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link.active,.navbar-nav .nav-link.show{color:var(--mdb-navbar-active-color)}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem;color:var(--mdb-navbar-color)}.navbar-text a,.navbar-text a:hover,.navbar-text a:focus{color:var(--mdb-navbar-active-color)}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:var(--mdb-navbar-toggler-padding-y) var(--mdb-navbar-toggler-padding-x);font-size:var(--mdb-navbar-toggler-font-size);line-height:1;color:var(--mdb-navbar-color);background-color:rgba(0,0,0,0);border:var(--mdb-border-width) solid var(--mdb-navbar-toggler-border-color);border-radius:var(--mdb-navbar-toggler-border-radius);transition:var(--mdb-navbar-toggler-transition)}@media(prefers-reduced-motion: reduce){.navbar-toggler{transition:none}}.navbar-toggler:hover{text-decoration:none}.navbar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 var(--mdb-navbar-toggler-focus-width)}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background-image:var(--mdb-navbar-toggler-icon-bg);background-repeat:no-repeat;background-position:center;background-size:100%}.navbar-nav-scroll{max-height:var(--mdb-scroll-height, 75vh);overflow-y:auto}@media(min-width: 576px){.navbar-expand-sm{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:var(--mdb-navbar-nav-link-padding-x);padding-left:var(--mdb-navbar-nav-link-padding-x)}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}.navbar-expand-sm .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:rgba(0,0,0,0) !important;border:0 !important;transform:none !important;box-shadow:none;transition:none}.navbar-expand-sm .offcanvas .offcanvas-header{display:none}.navbar-expand-sm .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media(min-width: 768px){.navbar-expand-md{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:var(--mdb-navbar-nav-link-padding-x);padding-left:var(--mdb-navbar-nav-link-padding-x)}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}.navbar-expand-md .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:rgba(0,0,0,0) !important;border:0 !important;transform:none !important;box-shadow:none;transition:none}.navbar-expand-md .offcanvas .offcanvas-header{display:none}.navbar-expand-md .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media(min-width: 992px){.navbar-expand-lg{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:var(--mdb-navbar-nav-link-padding-x);padding-left:var(--mdb-navbar-nav-link-padding-x)}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}.navbar-expand-lg .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:rgba(0,0,0,0) !important;border:0 !important;transform:none !important;box-shadow:none;transition:none}.navbar-expand-lg .offcanvas .offcanvas-header{display:none}.navbar-expand-lg .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media(min-width: 1200px){.navbar-expand-xl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:var(--mdb-navbar-nav-link-padding-x);padding-left:var(--mdb-navbar-nav-link-padding-x)}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}.navbar-expand-xl .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:rgba(0,0,0,0) !important;border:0 !important;transform:none !important;box-shadow:none;transition:none}.navbar-expand-xl .offcanvas .offcanvas-header{display:none}.navbar-expand-xl .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media(min-width: 1400px){.navbar-expand-xxl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xxl .navbar-nav{flex-direction:row}.navbar-expand-xxl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xxl .navbar-nav .nav-link{padding-right:var(--mdb-navbar-nav-link-padding-x);padding-left:var(--mdb-navbar-nav-link-padding-x)}.navbar-expand-xxl .navbar-nav-scroll{overflow:visible}.navbar-expand-xxl .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand-xxl .navbar-toggler{display:none}.navbar-expand-xxl .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:rgba(0,0,0,0) !important;border:0 !important;transform:none !important;box-shadow:none;transition:none}.navbar-expand-xxl .offcanvas .offcanvas-header{display:none}.navbar-expand-xxl .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}.navbar-expand{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:var(--mdb-navbar-nav-link-padding-x);padding-left:var(--mdb-navbar-nav-link-padding-x)}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-expand .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:rgba(0,0,0,0) !important;border:0 !important;transform:none !important;box-shadow:none;transition:none}.navbar-expand .offcanvas .offcanvas-header{display:none}.navbar-expand .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}.navbar-dark,.navbar[data-mdb-theme=dark]{--mdb-navbar-color: rgba(255, 255, 255, 0.55);--mdb-navbar-hover-color: rgba(255, 255, 255, 0.75);--mdb-navbar-disabled-color: rgba(255, 255, 255, 0.25);--mdb-navbar-active-color: #fff;--mdb-navbar-brand-color: #fff;--mdb-navbar-brand-hover-color: #fff;--mdb-navbar-toggler-border-color: rgba(255, 255, 255, 0.1);--mdb-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}[data-mdb-theme=dark] .navbar-toggler-icon{--mdb-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.card{--mdb-card-spacer-y: 1.5rem;--mdb-card-spacer-x: 1.5rem;--mdb-card-title-spacer-y: 0.5rem;--mdb-card-title-color: ;--mdb-card-subtitle-color: ;--mdb-card-border-width: var(--mdb-border-width);--mdb-card-border-color: rgba(0, 0, 0, 0.175);--mdb-card-border-radius: 0.5rem;--mdb-card-box-shadow: 0 2px 15px -3px rgba(var(--mdb-box-shadow-color-rgb), 0.07), 0 10px 20px -2px rgba(var(--mdb-box-shadow-color-rgb), 0.04);--mdb-card-inner-border-radius: calc(0.5rem - (var(--mdb-border-width)));--mdb-card-cap-padding-y: 0.75rem;--mdb-card-cap-padding-x: 1.5rem;--mdb-card-cap-bg: rgba(255, 255, 255, 0);--mdb-card-cap-color: ;--mdb-card-height: ;--mdb-card-color: ;--mdb-card-bg: var(--mdb-surface-bg);--mdb-card-img-overlay-padding: 1.5rem;--mdb-card-group-margin: 0.75rem;position:relative;display:flex;flex-direction:column;min-width:0;height:var(--mdb-card-height);color:var(--mdb-body-color);word-wrap:break-word;background-color:var(--mdb-card-bg);background-clip:border-box;border:var(--mdb-card-border-width) solid var(--mdb-card-border-color);border-radius:var(--mdb-card-border-radius);box-shadow:var(--mdb-card-box-shadow)}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:var(--mdb-card-inner-border-radius);border-top-right-radius:var(--mdb-card-inner-border-radius)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:var(--mdb-card-inner-border-radius);border-bottom-left-radius:var(--mdb-card-inner-border-radius)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;padding:var(--mdb-card-spacer-y) var(--mdb-card-spacer-x);color:var(--mdb-card-color)}.card-title{margin-bottom:var(--mdb-card-title-spacer-y);color:var(--mdb-card-title-color)}.card-subtitle{margin-top:calc(-0.5*var(--mdb-card-title-spacer-y));margin-bottom:0;color:var(--mdb-card-subtitle-color)}.card-text:last-child{margin-bottom:0}.card-link+.card-link{margin-left:var(--mdb-card-spacer-x)}.card-header{padding:var(--mdb-card-cap-padding-y) var(--mdb-card-cap-padding-x);margin-bottom:0;color:var(--mdb-card-cap-color);background-color:var(--mdb-card-cap-bg);border-bottom:var(--mdb-card-border-width) solid var(--mdb-card-border-color)}.card-header:first-child{border-radius:var(--mdb-card-inner-border-radius) var(--mdb-card-inner-border-radius) 0 0}.card-footer{padding:var(--mdb-card-cap-padding-y) var(--mdb-card-cap-padding-x);color:var(--mdb-card-cap-color);background-color:var(--mdb-card-cap-bg);border-top:var(--mdb-card-border-width) solid var(--mdb-card-border-color)}.card-footer:last-child{border-radius:0 0 var(--mdb-card-inner-border-radius) var(--mdb-card-inner-border-radius)}.card-header-tabs{margin-right:calc(-0.5*var(--mdb-card-cap-padding-x));margin-bottom:calc(-1*var(--mdb-card-cap-padding-y));margin-left:calc(-0.5*var(--mdb-card-cap-padding-x));border-bottom:0}.card-header-tabs .nav-link.active{background-color:var(--mdb-card-bg);border-bottom-color:var(--mdb-card-bg)}.card-header-pills{margin-right:calc(-0.5*var(--mdb-card-cap-padding-x));margin-left:calc(-0.5*var(--mdb-card-cap-padding-x))}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:var(--mdb-card-img-overlay-padding);border-radius:var(--mdb-card-inner-border-radius)}.card-img,.card-img-top,.card-img-bottom{width:100%}.card-img,.card-img-top{border-top-left-radius:var(--mdb-card-inner-border-radius);border-top-right-radius:var(--mdb-card-inner-border-radius)}.card-img,.card-img-bottom{border-bottom-right-radius:var(--mdb-card-inner-border-radius);border-bottom-left-radius:var(--mdb-card-inner-border-radius)}.card-group>.card{margin-bottom:var(--mdb-card-group-margin)}@media(min-width: 576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-img-top,.card-group>.card:not(:last-child) .card-header{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-img-bottom,.card-group>.card:not(:last-child) .card-footer{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-img-top,.card-group>.card:not(:first-child) .card-header{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-img-bottom,.card-group>.card:not(:first-child) .card-footer{border-bottom-left-radius:0}}.accordion{--mdb-accordion-color: var(--mdb-surface-color);--mdb-accordion-bg: var(--mdb-body-bg);--mdb-accordion-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, border-radius 0.15s ease;--mdb-accordion-border-color: var(--mdb-border-color);--mdb-accordion-border-width: var(--mdb-border-width);--mdb-accordion-border-radius: 0.5rem;--mdb-accordion-inner-border-radius: calc(0.5rem - (var(--mdb-border-width)));--mdb-accordion-btn-padding-x: 1.5rem;--mdb-accordion-btn-padding-y: 1.15rem;--mdb-accordion-btn-color: var(--mdb-surface-color);--mdb-accordion-btn-bg: var(--mdb-accordion-bg);--mdb-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='var%28--mdb-surface-color%29'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--mdb-accordion-btn-icon-width: 1.25rem;--mdb-accordion-btn-icon-transform: rotate(-180deg);--mdb-accordion-btn-icon-transition: transform 0.2s ease-in-out;--mdb-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%233b71ca'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--mdb-accordion-btn-focus-border-color: #3b71ca;--mdb-accordion-btn-focus-box-shadow: inset 0 -1px 0 var(--mdb-border-color);--mdb-accordion-body-padding-x: 1.5rem;--mdb-accordion-body-padding-y: 1.15rem;--mdb-accordion-active-color: #3b71ca;--mdb-accordion-active-bg: var(--mdb-surface-bg)}.accordion-button{position:relative;display:flex;align-items:center;width:100%;padding:var(--mdb-accordion-btn-padding-y) var(--mdb-accordion-btn-padding-x);font-size:1rem;color:var(--mdb-accordion-btn-color);text-align:left;background-color:var(--mdb-accordion-btn-bg);border:0;border-radius:0;overflow-anchor:none;transition:var(--mdb-accordion-transition)}@media(prefers-reduced-motion: reduce){.accordion-button{transition:none}}.accordion-button:not(.collapsed){color:var(--mdb-accordion-active-color);background-color:var(--mdb-accordion-active-bg);box-shadow:inset 0 calc(-1*var(--mdb-accordion-border-width)) 0 var(--mdb-accordion-border-color)}.accordion-button:not(.collapsed)::after{background-image:var(--mdb-accordion-btn-active-icon);transform:var(--mdb-accordion-btn-icon-transform)}.accordion-button::after{flex-shrink:0;width:var(--mdb-accordion-btn-icon-width);height:var(--mdb-accordion-btn-icon-width);margin-left:auto;content:"";background-image:var(--mdb-accordion-btn-icon);background-repeat:no-repeat;background-size:var(--mdb-accordion-btn-icon-width);transition:var(--mdb-accordion-btn-icon-transition)}@media(prefers-reduced-motion: reduce){.accordion-button::after{transition:none}}.accordion-button:hover{z-index:2}.accordion-button:focus{z-index:3;border-color:var(--mdb-accordion-btn-focus-border-color);outline:0;box-shadow:var(--mdb-accordion-btn-focus-box-shadow)}.accordion-header{margin-bottom:0}.accordion-item{color:var(--mdb-accordion-color);background-color:var(--mdb-accordion-bg);border:var(--mdb-accordion-border-width) solid var(--mdb-accordion-border-color)}.accordion-item:first-of-type{border-top-left-radius:var(--mdb-accordion-border-radius);border-top-right-radius:var(--mdb-accordion-border-radius)}.accordion-item:first-of-type .accordion-button{border-top-left-radius:var(--mdb-accordion-inner-border-radius);border-top-right-radius:var(--mdb-accordion-inner-border-radius)}.accordion-item:not(:first-of-type){border-top:0}.accordion-item:last-of-type{border-bottom-right-radius:var(--mdb-accordion-border-radius);border-bottom-left-radius:var(--mdb-accordion-border-radius)}.accordion-item:last-of-type .accordion-button.collapsed{border-bottom-right-radius:var(--mdb-accordion-inner-border-radius);border-bottom-left-radius:var(--mdb-accordion-inner-border-radius)}.accordion-item:last-of-type .accordion-collapse{border-bottom-right-radius:var(--mdb-accordion-border-radius);border-bottom-left-radius:var(--mdb-accordion-border-radius)}.accordion-body{padding:var(--mdb-accordion-body-padding-y) var(--mdb-accordion-body-padding-x)}.accordion-flush .accordion-collapse{border-width:0}.accordion-flush .accordion-item{border-right:0;border-left:0;border-radius:0}.accordion-flush .accordion-item:first-child{border-top:0}.accordion-flush .accordion-item:last-child{border-bottom:0}.accordion-flush .accordion-item .accordion-button,.accordion-flush .accordion-item .accordion-button.collapsed{border-radius:0}[data-mdb-theme=dark] .accordion-button::after{--mdb-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--mdb-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%233b71ca'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.breadcrumb{--mdb-breadcrumb-padding-x: 0;--mdb-breadcrumb-padding-y: 0;--mdb-breadcrumb-margin-bottom: 1rem;--mdb-breadcrumb-bg: ;--mdb-breadcrumb-border-radius: ;--mdb-breadcrumb-divider-color: rgba(var(--mdb-emphasis-color-rgb), 0.55);--mdb-breadcrumb-item-padding-x: 0.5rem;--mdb-breadcrumb-item-active-color: rgba(var(--mdb-emphasis-color-rgb), 0.55);display:flex;flex-wrap:wrap;padding:var(--mdb-breadcrumb-padding-y) var(--mdb-breadcrumb-padding-x);margin-bottom:var(--mdb-breadcrumb-margin-bottom);font-size:var(--mdb-breadcrumb-font-size);list-style:none;background-color:var(--mdb-breadcrumb-bg);border-radius:var(--mdb-breadcrumb-border-radius)}.breadcrumb-item+.breadcrumb-item{padding-left:var(--mdb-breadcrumb-item-padding-x)}.breadcrumb-item+.breadcrumb-item::before{float:left;padding-right:var(--mdb-breadcrumb-item-padding-x);color:var(--mdb-breadcrumb-divider-color);content:var(--mdb-breadcrumb-divider, "/") /* rtl: var(--mdb-breadcrumb-divider, "/") */}.breadcrumb-item.active{color:var(--mdb-breadcrumb-item-active-color)}.pagination{--mdb-pagination-padding-x: 0.75rem;--mdb-pagination-padding-y: 0.375rem;--mdb-pagination-font-size:0.9rem;--mdb-pagination-color: var(--mdb-body-color);--mdb-pagination-bg: var(--mdb-body-bg);--mdb-pagination-border-width: var(--mdb-border-width);--mdb-pagination-border-color: var(--mdb-border-color);--mdb-pagination-border-radius: 0.25rem;--mdb-pagination-hover-color: var(--mdb-body-color);--mdb-pagination-hover-bg: var(--mdb-highlight-bg-color);--mdb-pagination-hover-border-color: var(--mdb-border-color);--mdb-pagination-focus-color: var(--mdb-link-hover-color);--mdb-pagination-focus-bg: var(--mdb-highlight-bg-color);--mdb-pagination-focus-box-shadow: 0 0 0 0.25rem rgba(59, 113, 202, 0.25);--mdb-pagination-active-color: var(--mdb-primary-text-emphasis);--mdb-pagination-active-bg: var(--mdb-primary-bg-subtle);--mdb-pagination-active-border-color: #3b71ca;--mdb-pagination-disabled-color: rgba(var(--mdb-body-color-rgb), 0.55);--mdb-pagination-disabled-bg: transparent;--mdb-pagination-disabled-border-color: var(--mdb-border-color);display:flex;padding-left:0;list-style:none}.page-link{position:relative;display:block;padding:var(--mdb-pagination-padding-y) var(--mdb-pagination-padding-x);font-size:var(--mdb-pagination-font-size);color:var(--mdb-pagination-color);background-color:var(--mdb-pagination-bg);border:var(--mdb-pagination-border-width) solid var(--mdb-pagination-border-color);transition:all .3s linear}@media(prefers-reduced-motion: reduce){.page-link{transition:none}}.page-link:hover{z-index:2;color:var(--mdb-pagination-hover-color);background-color:var(--mdb-pagination-hover-bg);border-color:var(--mdb-pagination-hover-border-color)}.page-link:focus{z-index:3;color:var(--mdb-pagination-focus-color);background-color:var(--mdb-pagination-focus-bg);outline:0;box-shadow:var(--mdb-pagination-focus-box-shadow)}.page-link.active,.active>.page-link{z-index:3;color:var(--mdb-pagination-active-color);background-color:var(--mdb-pagination-active-bg);border-color:var(--mdb-pagination-active-border-color)}.page-link.disabled,.disabled>.page-link{color:var(--mdb-pagination-disabled-color);pointer-events:none;background-color:var(--mdb-pagination-disabled-bg);border-color:var(--mdb-pagination-disabled-border-color)}.page-item:not(:first-child) .page-link{margin-left:calc(var(--mdb-border-width)*-1)}.page-item:first-child .page-link{border-top-left-radius:var(--mdb-pagination-border-radius);border-bottom-left-radius:var(--mdb-pagination-border-radius)}.page-item:last-child .page-link{border-top-right-radius:var(--mdb-pagination-border-radius);border-bottom-right-radius:var(--mdb-pagination-border-radius)}.pagination-lg{--mdb-pagination-padding-x: 1.5rem;--mdb-pagination-padding-y: 0.75rem;--mdb-pagination-font-size:1.25rem;--mdb-pagination-border-radius: var(--mdb-border-radius-lg)}.pagination-sm{--mdb-pagination-padding-x: 0.5rem;--mdb-pagination-padding-y: 0.25rem;--mdb-pagination-font-size:0.875rem;--mdb-pagination-border-radius: var(--mdb-border-radius-sm)}.badge{--mdb-badge-padding-x: 0.65em;--mdb-badge-padding-y: 0.35em;--mdb-badge-font-size:0.75em;--mdb-badge-font-weight: 700;--mdb-badge-color: #fff;--mdb-badge-border-radius: 0.27rem;display:inline-block;padding:var(--mdb-badge-padding-y) var(--mdb-badge-padding-x);font-size:var(--mdb-badge-font-size);font-weight:var(--mdb-badge-font-weight);line-height:1;color:var(--mdb-badge-color);text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:var(--mdb-badge-border-radius)}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{--mdb-alert-bg: transparent;--mdb-alert-padding-x: 1.5rem;--mdb-alert-padding-y: 1.25rem;--mdb-alert-margin-bottom: 1rem;--mdb-alert-color: inherit;--mdb-alert-border-color: transparent;--mdb-alert-border: var(--mdb-border-width) solid var(--mdb-alert-border-color);--mdb-alert-border-radius: 0.5rem;--mdb-alert-link-color: inherit;position:relative;padding:var(--mdb-alert-padding-y) var(--mdb-alert-padding-x);margin-bottom:var(--mdb-alert-margin-bottom);color:var(--mdb-alert-color);background-color:var(--mdb-alert-bg);border:var(--mdb-alert-border);border-radius:var(--mdb-alert-border-radius)}.alert-heading{color:inherit}.alert-link{font-weight:700;color:var(--mdb-alert-link-color)}.alert-dismissible{padding-right:4.5rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:1.5625rem 1.5rem}.alert-primary{--mdb-alert-color: var(--mdb-primary-text-emphasis);--mdb-alert-bg: var(--mdb-primary-bg-subtle);--mdb-alert-border-color: var(--mdb-primary-border-subtle);--mdb-alert-link-color: var(--mdb-primary-text-emphasis)}.alert-secondary{--mdb-alert-color: var(--mdb-secondary-text-emphasis);--mdb-alert-bg: var(--mdb-secondary-bg-subtle);--mdb-alert-border-color: var(--mdb-secondary-border-subtle);--mdb-alert-link-color: var(--mdb-secondary-text-emphasis)}.alert-success{--mdb-alert-color: var(--mdb-success-text-emphasis);--mdb-alert-bg: var(--mdb-success-bg-subtle);--mdb-alert-border-color: var(--mdb-success-border-subtle);--mdb-alert-link-color: var(--mdb-success-text-emphasis)}.alert-danger{--mdb-alert-color: var(--mdb-danger-text-emphasis);--mdb-alert-bg: var(--mdb-danger-bg-subtle);--mdb-alert-border-color: var(--mdb-danger-border-subtle);--mdb-alert-link-color: var(--mdb-danger-text-emphasis)}.alert-warning{--mdb-alert-color: var(--mdb-warning-text-emphasis);--mdb-alert-bg: var(--mdb-warning-bg-subtle);--mdb-alert-border-color: var(--mdb-warning-border-subtle);--mdb-alert-link-color: var(--mdb-warning-text-emphasis)}.alert-info{--mdb-alert-color: var(--mdb-info-text-emphasis);--mdb-alert-bg: var(--mdb-info-bg-subtle);--mdb-alert-border-color: var(--mdb-info-border-subtle);--mdb-alert-link-color: var(--mdb-info-text-emphasis)}.alert-light{--mdb-alert-color: var(--mdb-light-text-emphasis);--mdb-alert-bg: var(--mdb-light-bg-subtle);--mdb-alert-border-color: var(--mdb-light-border-subtle);--mdb-alert-link-color: var(--mdb-light-text-emphasis)}.alert-dark{--mdb-alert-color: var(--mdb-dark-text-emphasis);--mdb-alert-bg: var(--mdb-dark-bg-subtle);--mdb-alert-border-color: var(--mdb-dark-border-subtle);--mdb-alert-link-color: var(--mdb-dark-text-emphasis)}@keyframes progress-bar-stripes{0%{background-position-x:4px}}.progress,.progress-stacked{--mdb-progress-height: 4px;--mdb-progress-font-size:0.75rem;--mdb-progress-bg: var(--mdb-secondary-bg);--mdb-progress-border-radius: var(--mdb-border-radius);--mdb-progress-box-shadow: var(--mdb-box-shadow-inset);--mdb-progress-bar-color: #fff;--mdb-progress-bar-bg: #3b71ca;--mdb-progress-bar-transition: width 0.6s ease;display:flex;height:var(--mdb-progress-height);overflow:hidden;font-size:var(--mdb-progress-font-size);background-color:var(--mdb-progress-bg);border-radius:var(--mdb-progress-border-radius);box-shadow:var(--mdb-progress-box-shadow)}.progress-bar{display:flex;flex-direction:column;justify-content:center;overflow:hidden;color:var(--mdb-progress-bar-color);text-align:center;white-space:nowrap;background-color:var(--mdb-progress-bar-bg);transition:var(--mdb-progress-bar-transition)}@media(prefers-reduced-motion: reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-size:var(--mdb-progress-height) var(--mdb-progress-height)}.progress-stacked>.progress{overflow:visible}.progress-stacked>.progress>.progress-bar{width:100%}.progress-bar-animated{animation:1s linear infinite progress-bar-stripes}@media(prefers-reduced-motion: reduce){.progress-bar-animated{animation:none}}.list-group{--mdb-list-group-color: var(--mdb-body-color);--mdb-list-group-bg: transparent;--mdb-list-group-border-color: var(--mdb-border-color);--mdb-list-group-border-width: var(--mdb-border-width);--mdb-list-group-border-radius: 0.5rem;--mdb-list-group-item-padding-x: 1.5rem;--mdb-list-group-item-padding-y: 0.5rem;--mdb-list-group-action-color: var(--mdb-secondary-color);--mdb-list-group-action-hover-color: var(--mdb-emphasis-color);--mdb-list-group-action-hover-bg: var(--mdb-tertiary-bg);--mdb-list-group-action-active-color: var(--mdb-body-color);--mdb-list-group-action-active-bg: var(--mdb-secondary-bg);--mdb-list-group-disabled-color: rgba(var(--mdb-body-color-rgb), 0.5);--mdb-list-group-disabled-bg: transparent;--mdb-list-group-active-color: #fff;--mdb-list-group-active-bg: #3b71ca;--mdb-list-group-active-border-color: #3b71ca;display:flex;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:var(--mdb-list-group-border-radius)}.list-group-numbered{list-style-type:none;counter-reset:section}.list-group-numbered>.list-group-item::before{content:counters(section, ".") ". ";counter-increment:section}.list-group-item-action{width:100%;color:var(--mdb-list-group-action-color);text-align:inherit}.list-group-item-action:hover,.list-group-item-action:focus{z-index:1;color:var(--mdb-list-group-action-hover-color);text-decoration:none;background-color:var(--mdb-list-group-action-hover-bg)}.list-group-item-action:active{color:var(--mdb-list-group-action-active-color);background-color:var(--mdb-list-group-action-active-bg)}.list-group-item{position:relative;display:block;padding:var(--mdb-list-group-item-padding-y) var(--mdb-list-group-item-padding-x);color:var(--mdb-list-group-color);background-color:var(--mdb-list-group-bg);border:var(--mdb-list-group-border-width) solid var(--mdb-list-group-border-color)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:var(--mdb-list-group-disabled-color);pointer-events:none;background-color:var(--mdb-list-group-disabled-bg)}.list-group-item.active{z-index:2;color:var(--mdb-list-group-active-color);background-color:var(--mdb-list-group-active-bg);border-color:var(--mdb-list-group-active-border-color)}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:calc(-1*var(--mdb-list-group-border-width));border-top-width:var(--mdb-list-group-border-width)}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--mdb-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--mdb-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:var(--mdb-list-group-border-width);border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:calc(-1*var(--mdb-list-group-border-width));border-left-width:var(--mdb-list-group-border-width)}@media(min-width: 576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--mdb-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--mdb-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:var(--mdb-list-group-border-width);border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:calc(-1*var(--mdb-list-group-border-width));border-left-width:var(--mdb-list-group-border-width)}}@media(min-width: 768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--mdb-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--mdb-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:var(--mdb-list-group-border-width);border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:calc(-1*var(--mdb-list-group-border-width));border-left-width:var(--mdb-list-group-border-width)}}@media(min-width: 992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--mdb-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--mdb-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:var(--mdb-list-group-border-width);border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:calc(-1*var(--mdb-list-group-border-width));border-left-width:var(--mdb-list-group-border-width)}}@media(min-width: 1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--mdb-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--mdb-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:var(--mdb-list-group-border-width);border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:calc(-1*var(--mdb-list-group-border-width));border-left-width:var(--mdb-list-group-border-width)}}@media(min-width: 1400px){.list-group-horizontal-xxl{flex-direction:row}.list-group-horizontal-xxl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--mdb-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xxl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--mdb-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xxl>.list-group-item.active{margin-top:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item{border-top-width:var(--mdb-list-group-border-width);border-left-width:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{margin-left:calc(-1*var(--mdb-list-group-border-width));border-left-width:var(--mdb-list-group-border-width)}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 var(--mdb-list-group-border-width)}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{--mdb-list-group-color: var(--mdb-primary-text-emphasis);--mdb-list-group-bg: var(--mdb-primary-bg-subtle);--mdb-list-group-border-color: var(--mdb-primary-border-subtle);--mdb-list-group-action-hover-color: var(--mdb-emphasis-color);--mdb-list-group-action-hover-bg: var(--mdb-primary-border-subtle);--mdb-list-group-action-active-color: var(--mdb-emphasis-color);--mdb-list-group-action-active-bg: var(--mdb-primary-border-subtle);--mdb-list-group-active-color: var(--mdb-primary-bg-subtle);--mdb-list-group-active-bg: var(--mdb-primary-text-emphasis);--mdb-list-group-active-border-color: var(--mdb-primary-text-emphasis)}.list-group-item-secondary{--mdb-list-group-color: var(--mdb-secondary-text-emphasis);--mdb-list-group-bg: var(--mdb-secondary-bg-subtle);--mdb-list-group-border-color: var(--mdb-secondary-border-subtle);--mdb-list-group-action-hover-color: var(--mdb-emphasis-color);--mdb-list-group-action-hover-bg: var(--mdb-secondary-border-subtle);--mdb-list-group-action-active-color: var(--mdb-emphasis-color);--mdb-list-group-action-active-bg: var(--mdb-secondary-border-subtle);--mdb-list-group-active-color: var(--mdb-secondary-bg-subtle);--mdb-list-group-active-bg: var(--mdb-secondary-text-emphasis);--mdb-list-group-active-border-color: var(--mdb-secondary-text-emphasis)}.list-group-item-success{--mdb-list-group-color: var(--mdb-success-text-emphasis);--mdb-list-group-bg: var(--mdb-success-bg-subtle);--mdb-list-group-border-color: var(--mdb-success-border-subtle);--mdb-list-group-action-hover-color: var(--mdb-emphasis-color);--mdb-list-group-action-hover-bg: var(--mdb-success-border-subtle);--mdb-list-group-action-active-color: var(--mdb-emphasis-color);--mdb-list-group-action-active-bg: var(--mdb-success-border-subtle);--mdb-list-group-active-color: var(--mdb-success-bg-subtle);--mdb-list-group-active-bg: var(--mdb-success-text-emphasis);--mdb-list-group-active-border-color: var(--mdb-success-text-emphasis)}.list-group-item-danger{--mdb-list-group-color: var(--mdb-danger-text-emphasis);--mdb-list-group-bg: var(--mdb-danger-bg-subtle);--mdb-list-group-border-color: var(--mdb-danger-border-subtle);--mdb-list-group-action-hover-color: var(--mdb-emphasis-color);--mdb-list-group-action-hover-bg: var(--mdb-danger-border-subtle);--mdb-list-group-action-active-color: var(--mdb-emphasis-color);--mdb-list-group-action-active-bg: var(--mdb-danger-border-subtle);--mdb-list-group-active-color: var(--mdb-danger-bg-subtle);--mdb-list-group-active-bg: var(--mdb-danger-text-emphasis);--mdb-list-group-active-border-color: var(--mdb-danger-text-emphasis)}.list-group-item-warning{--mdb-list-group-color: var(--mdb-warning-text-emphasis);--mdb-list-group-bg: var(--mdb-warning-bg-subtle);--mdb-list-group-border-color: var(--mdb-warning-border-subtle);--mdb-list-group-action-hover-color: var(--mdb-emphasis-color);--mdb-list-group-action-hover-bg: var(--mdb-warning-border-subtle);--mdb-list-group-action-active-color: var(--mdb-emphasis-color);--mdb-list-group-action-active-bg: var(--mdb-warning-border-subtle);--mdb-list-group-active-color: var(--mdb-warning-bg-subtle);--mdb-list-group-active-bg: var(--mdb-warning-text-emphasis);--mdb-list-group-active-border-color: var(--mdb-warning-text-emphasis)}.list-group-item-info{--mdb-list-group-color: var(--mdb-info-text-emphasis);--mdb-list-group-bg: var(--mdb-info-bg-subtle);--mdb-list-group-border-color: var(--mdb-info-border-subtle);--mdb-list-group-action-hover-color: var(--mdb-emphasis-color);--mdb-list-group-action-hover-bg: var(--mdb-info-border-subtle);--mdb-list-group-action-active-color: var(--mdb-emphasis-color);--mdb-list-group-action-active-bg: var(--mdb-info-border-subtle);--mdb-list-group-active-color: var(--mdb-info-bg-subtle);--mdb-list-group-active-bg: var(--mdb-info-text-emphasis);--mdb-list-group-active-border-color: var(--mdb-info-text-emphasis)}.list-group-item-light{--mdb-list-group-color: var(--mdb-light-text-emphasis);--mdb-list-group-bg: var(--mdb-light-bg-subtle);--mdb-list-group-border-color: var(--mdb-light-border-subtle);--mdb-list-group-action-hover-color: var(--mdb-emphasis-color);--mdb-list-group-action-hover-bg: var(--mdb-light-border-subtle);--mdb-list-group-action-active-color: var(--mdb-emphasis-color);--mdb-list-group-action-active-bg: var(--mdb-light-border-subtle);--mdb-list-group-active-color: var(--mdb-light-bg-subtle);--mdb-list-group-active-bg: var(--mdb-light-text-emphasis);--mdb-list-group-active-border-color: var(--mdb-light-text-emphasis)}.list-group-item-dark{--mdb-list-group-color: var(--mdb-dark-text-emphasis);--mdb-list-group-bg: var(--mdb-dark-bg-subtle);--mdb-list-group-border-color: var(--mdb-dark-border-subtle);--mdb-list-group-action-hover-color: var(--mdb-emphasis-color);--mdb-list-group-action-hover-bg: var(--mdb-dark-border-subtle);--mdb-list-group-action-active-color: var(--mdb-emphasis-color);--mdb-list-group-action-active-bg: var(--mdb-dark-border-subtle);--mdb-list-group-active-color: var(--mdb-dark-bg-subtle);--mdb-list-group-active-bg: var(--mdb-dark-text-emphasis);--mdb-list-group-active-border-color: var(--mdb-dark-text-emphasis)}.btn-close{--mdb-btn-close-color: #000;--mdb-btn-close-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e");--mdb-btn-close-opacity: 0.5;--mdb-btn-close-hover-opacity: 0.75;--mdb-btn-close-focus-shadow: 0 0 0 0.25rem rgba(59, 113, 202, 0.25);--mdb-btn-close-focus-opacity: 1;--mdb-btn-close-disabled-opacity: 0.25;--mdb-btn-close-white-filter: invert(1) grayscale(100%) brightness(200%);box-sizing:content-box;width:1em;height:1em;padding:.25em .25em;color:var(--mdb-btn-close-color);background:rgba(0,0,0,0) var(--mdb-btn-close-bg) center/1em auto no-repeat;border:0;border-radius:.25rem;opacity:var(--mdb-btn-close-opacity)}.btn-close:hover{color:var(--mdb-btn-close-color);text-decoration:none;opacity:var(--mdb-btn-close-hover-opacity)}.btn-close:focus{outline:0;box-shadow:var(--mdb-btn-close-focus-shadow);opacity:var(--mdb-btn-close-focus-opacity)}.btn-close:disabled,.btn-close.disabled{pointer-events:none;user-select:none;opacity:var(--mdb-btn-close-disabled-opacity)}.btn-close-white{filter:var(--mdb-btn-close-white-filter)}[data-mdb-theme=dark] .btn-close{filter:var(--mdb-btn-close-white-filter)}.toast{--mdb-toast-zindex: 1060;--mdb-toast-padding-x: 1rem;--mdb-toast-padding-y: 0.65rem;--mdb-toast-spacing: 1.5rem;--mdb-toast-max-width: 350px;--mdb-toast-font-size:0.875rem;--mdb-toast-color: ;--mdb-toast-bg: var(--mdb-surface-bg);--mdb-toast-border-width: var(--mdb-border-width);--mdb-toast-border-color: var(--mdb-border-color-translucent);--mdb-toast-border-radius: 0.5rem;--mdb-toast-box-shadow: 0 2px 15px -3px rgba(var(--mdb-box-shadow-color-rgb), 0.07), 0 10px 20px -2px rgba(var(--mdb-box-shadow-color-rgb), 0.04);--mdb-toast-header-color: var(--mdb-secondary-color);--mdb-toast-header-bg: var(--mdb-surface-bg);--mdb-toast-header-border-color: var(--mdb-border-color-translucent);width:var(--mdb-toast-max-width);max-width:100%;font-size:var(--mdb-toast-font-size);color:var(--mdb-toast-color);pointer-events:auto;background-color:var(--mdb-toast-bg);background-clip:padding-box;border:var(--mdb-toast-border-width) solid var(--mdb-toast-border-color);box-shadow:var(--mdb-toast-box-shadow);border-radius:var(--mdb-toast-border-radius)}.toast.showing{opacity:0}.toast:not(.show){display:none}.toast-container{--mdb-toast-zindex: 1060;position:absolute;z-index:var(--mdb-toast-zindex);width:max-content;max-width:100%;pointer-events:none}.toast-container>:not(:last-child){margin-bottom:var(--mdb-toast-spacing)}.toast-header{display:flex;align-items:center;padding:var(--mdb-toast-padding-y) var(--mdb-toast-padding-x);color:var(--mdb-toast-header-color);background-color:var(--mdb-toast-header-bg);background-clip:padding-box;border-bottom:var(--mdb-toast-border-width) solid var(--mdb-toast-header-border-color);border-top-left-radius:calc(var(--mdb-toast-border-radius) - var(--mdb-toast-border-width));border-top-right-radius:calc(var(--mdb-toast-border-radius) - var(--mdb-toast-border-width))}.toast-header .btn-close{margin-right:calc(-0.5*var(--mdb-toast-padding-x));margin-left:var(--mdb-toast-padding-x)}.toast-body{padding:var(--mdb-toast-padding-x);word-wrap:break-word}.modal{--mdb-modal-zindex: 1055;--mdb-modal-width: 500px;--mdb-modal-padding: 1rem;--mdb-modal-margin: 0.5rem;--mdb-modal-color: var(--mdb-surface-color);--mdb-modal-bg: var(--mdb-surface-bg);--mdb-modal-border-color: var(--mdb-border-color-translucent);--mdb-modal-border-width: var(--mdb-border-width);--mdb-modal-border-radius: 0.5rem;--mdb-modal-box-shadow: var(--mdb-box-shadow-sm);--mdb-modal-inner-border-radius: calc(0.5rem - (var(--mdb-border-width)));--mdb-modal-header-padding-x: 1rem;--mdb-modal-header-padding-y: 1rem;--mdb-modal-header-padding: 1rem 1rem;--mdb-modal-header-border-color: var(--mdb-divider-color);--mdb-modal-header-border-width: 2px;--mdb-modal-title-line-height: 1.6;--mdb-modal-footer-gap: 0.5rem;--mdb-modal-footer-bg: ;--mdb-modal-footer-border-color: var(--mdb-divider-color);--mdb-modal-footer-border-width: 2px;position:fixed;top:0;left:0;z-index:var(--mdb-modal-zindex);display:none;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;outline:0}.modal-dialog{position:relative;width:auto;margin:var(--mdb-modal-margin);pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translate(0, -50px)}@media(prefers-reduced-motion: reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{height:calc(100% - var(--mdb-modal-margin)*2)}.modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - var(--mdb-modal-margin)*2)}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;color:var(--mdb-modal-color);pointer-events:auto;background-color:var(--mdb-modal-bg);background-clip:padding-box;border:var(--mdb-modal-border-width) solid var(--mdb-modal-border-color);border-radius:var(--mdb-modal-border-radius);box-shadow:var(--mdb-modal-box-shadow);outline:0}.modal-backdrop{--mdb-backdrop-zindex: 1050;--mdb-backdrop-bg: #000;--mdb-backdrop-opacity: 0.5;position:fixed;top:0;left:0;z-index:var(--mdb-backdrop-zindex);width:100vw;height:100vh;background-color:var(--mdb-backdrop-bg)}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:var(--mdb-backdrop-opacity)}.modal-header{display:flex;flex-shrink:0;align-items:center;justify-content:space-between;padding:var(--mdb-modal-header-padding);border-bottom:var(--mdb-modal-header-border-width) solid var(--mdb-modal-header-border-color);border-top-left-radius:var(--mdb-modal-inner-border-radius);border-top-right-radius:var(--mdb-modal-inner-border-radius)}.modal-header .btn-close{padding:calc(var(--mdb-modal-header-padding-y)*.5) calc(var(--mdb-modal-header-padding-x)*.5);margin:calc(-0.5*var(--mdb-modal-header-padding-y)) calc(-0.5*var(--mdb-modal-header-padding-x)) calc(-0.5*var(--mdb-modal-header-padding-y)) auto}.modal-title{margin-bottom:0;line-height:var(--mdb-modal-title-line-height)}.modal-body{position:relative;flex:1 1 auto;padding:var(--mdb-modal-padding)}.modal-footer{display:flex;flex-shrink:0;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:calc(var(--mdb-modal-padding) - var(--mdb-modal-footer-gap)*.5);background-color:var(--mdb-modal-footer-bg);border-top:var(--mdb-modal-footer-border-width) solid var(--mdb-modal-footer-border-color);border-bottom-right-radius:var(--mdb-modal-inner-border-radius);border-bottom-left-radius:var(--mdb-modal-inner-border-radius)}.modal-footer>*{margin:calc(var(--mdb-modal-footer-gap)*.5)}@media(min-width: 576px){.modal{--mdb-modal-margin: 1.75rem;--mdb-modal-box-shadow: var(--mdb-box-shadow)}.modal-dialog{max-width:var(--mdb-modal-width);margin-right:auto;margin-left:auto}.modal-sm{--mdb-modal-width: 300px}}@media(min-width: 992px){.modal-lg,.modal-xl{--mdb-modal-width: 800px}}@media(min-width: 1200px){.modal-xl{--mdb-modal-width: 1140px}}.modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen .modal-header,.modal-fullscreen .modal-footer{border-radius:0}.modal-fullscreen .modal-body{overflow-y:auto}@media(max-width: 575.98px){.modal-fullscreen-sm-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-sm-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-sm-down .modal-header,.modal-fullscreen-sm-down .modal-footer{border-radius:0}.modal-fullscreen-sm-down .modal-body{overflow-y:auto}}@media(max-width: 767.98px){.modal-fullscreen-md-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-md-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-md-down .modal-header,.modal-fullscreen-md-down .modal-footer{border-radius:0}.modal-fullscreen-md-down .modal-body{overflow-y:auto}}@media(max-width: 991.98px){.modal-fullscreen-lg-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-lg-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-lg-down .modal-header,.modal-fullscreen-lg-down .modal-footer{border-radius:0}.modal-fullscreen-lg-down .modal-body{overflow-y:auto}}@media(max-width: 1199.98px){.modal-fullscreen-xl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xl-down .modal-header,.modal-fullscreen-xl-down .modal-footer{border-radius:0}.modal-fullscreen-xl-down .modal-body{overflow-y:auto}}@media(max-width: 1399.98px){.modal-fullscreen-xxl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xxl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xxl-down .modal-header,.modal-fullscreen-xxl-down .modal-footer{border-radius:0}.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}}.tooltip{--mdb-tooltip-zindex: 1090;--mdb-tooltip-max-width: 200px;--mdb-tooltip-padding-x: 16px;--mdb-tooltip-padding-y: 6px;--mdb-tooltip-margin: ;--mdb-tooltip-font-size:0.875rem;--mdb-tooltip-color: var(--mdb-surface-inverted-color);--mdb-tooltip-bg: var(--mdb-surface-inverted-bg);--mdb-tooltip-border-radius: 0.25rem;--mdb-tooltip-opacity: 0.9;--mdb-tooltip-arrow-width: 0.8rem;--mdb-tooltip-arrow-height: 0.4rem;z-index:var(--mdb-tooltip-zindex);display:block;margin:var(--mdb-tooltip-margin);font-family:var(--mdb-font-roboto);font-style:normal;font-weight:400;line-height:1.6;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--mdb-tooltip-font-size);word-wrap:break-word;opacity:0}.tooltip.show{opacity:var(--mdb-tooltip-opacity)}.tooltip .tooltip-arrow{display:block;width:var(--mdb-tooltip-arrow-width);height:var(--mdb-tooltip-arrow-height)}.tooltip .tooltip-arrow::before{position:absolute;content:"";border-color:rgba(0,0,0,0);border-style:solid}.bs-tooltip-top .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow{bottom:calc(-1*var(--mdb-tooltip-arrow-height))}.bs-tooltip-top .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before{top:-1px;border-width:var(--mdb-tooltip-arrow-height) calc(var(--mdb-tooltip-arrow-width)*.5) 0;border-top-color:var(--mdb-tooltip-bg)}.bs-tooltip-end .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow{left:calc(-1*var(--mdb-tooltip-arrow-height));width:var(--mdb-tooltip-arrow-height);height:var(--mdb-tooltip-arrow-width)}.bs-tooltip-end .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before{right:-1px;border-width:calc(var(--mdb-tooltip-arrow-width)*.5) var(--mdb-tooltip-arrow-height) calc(var(--mdb-tooltip-arrow-width)*.5) 0;border-right-color:var(--mdb-tooltip-bg)}.bs-tooltip-bottom .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow{top:calc(-1*var(--mdb-tooltip-arrow-height))}.bs-tooltip-bottom .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before{bottom:-1px;border-width:0 calc(var(--mdb-tooltip-arrow-width)*.5) var(--mdb-tooltip-arrow-height);border-bottom-color:var(--mdb-tooltip-bg)}.bs-tooltip-start .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow{right:calc(-1*var(--mdb-tooltip-arrow-height));width:var(--mdb-tooltip-arrow-height);height:var(--mdb-tooltip-arrow-width)}.bs-tooltip-start .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before{left:-1px;border-width:calc(var(--mdb-tooltip-arrow-width)*.5) 0 calc(var(--mdb-tooltip-arrow-width)*.5) var(--mdb-tooltip-arrow-height);border-left-color:var(--mdb-tooltip-bg)}.tooltip-inner{max-width:var(--mdb-tooltip-max-width);padding:var(--mdb-tooltip-padding-y) var(--mdb-tooltip-padding-x);color:var(--mdb-tooltip-color);text-align:center;background-color:var(--mdb-tooltip-bg);border-radius:var(--mdb-tooltip-border-radius)}.popover{--mdb-popover-zindex: 1080;--mdb-popover-max-width: 276px;--mdb-popover-font-size:0.875rem;--mdb-popover-bg: var(--mdb-surface-bg);--mdb-popover-border-width: 1px;--mdb-popover-border-color: var(--mdb-divider-color);--mdb-popover-border-radius: 0.5rem;--mdb-popover-inner-border-radius: calc(0.5rem - 1px);--mdb-popover-box-shadow: 0 0px 3px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.07), 0 2px 2px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.04);--mdb-popover-header-padding-x: 1rem;--mdb-popover-header-padding-y: 0.5rem;--mdb-popover-header-font-size:1rem;--mdb-popover-header-color: var(--mdb-surface-color);--mdb-popover-header-bg: var(--mdb-surface-bg);--mdb-popover-body-padding-x: 1rem;--mdb-popover-body-padding-y: 1rem;--mdb-popover-body-color: var(--mdb-surface-color);--mdb-popover-arrow-width: 1rem;--mdb-popover-arrow-height: 0.5rem;--mdb-popover-arrow-border: var(--mdb-popover-border-color);z-index:var(--mdb-popover-zindex);display:block;max-width:var(--mdb-popover-max-width);font-family:var(--mdb-font-roboto);font-style:normal;font-weight:400;line-height:1.6;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--mdb-popover-font-size);word-wrap:break-word;background-color:var(--mdb-popover-bg);background-clip:padding-box;border:var(--mdb-popover-border-width) solid var(--mdb-popover-border-color);border-radius:var(--mdb-popover-border-radius);box-shadow:var(--mdb-popover-box-shadow)}.popover .popover-arrow{display:block;width:var(--mdb-popover-arrow-width);height:var(--mdb-popover-arrow-height)}.popover .popover-arrow::before,.popover .popover-arrow::after{position:absolute;display:block;content:"";border-color:rgba(0,0,0,0);border-style:solid;border-width:0}.bs-popover-top>.popover-arrow,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow{bottom:calc(-1*(var(--mdb-popover-arrow-height)) - var(--mdb-popover-border-width))}.bs-popover-top>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before,.bs-popover-top>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after{border-width:var(--mdb-popover-arrow-height) calc(var(--mdb-popover-arrow-width)*.5) 0}.bs-popover-top>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before{bottom:0;border-top-color:var(--mdb-popover-arrow-border)}.bs-popover-top>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after{bottom:var(--mdb-popover-border-width);border-top-color:var(--mdb-popover-bg)}.bs-popover-end>.popover-arrow,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow{left:calc(-1*(var(--mdb-popover-arrow-height)) - var(--mdb-popover-border-width));width:var(--mdb-popover-arrow-height);height:var(--mdb-popover-arrow-width)}.bs-popover-end>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before,.bs-popover-end>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after{border-width:calc(var(--mdb-popover-arrow-width)*.5) var(--mdb-popover-arrow-height) calc(var(--mdb-popover-arrow-width)*.5) 0}.bs-popover-end>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before{left:0;border-right-color:var(--mdb-popover-arrow-border)}.bs-popover-end>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after{left:var(--mdb-popover-border-width);border-right-color:var(--mdb-popover-bg)}.bs-popover-bottom>.popover-arrow,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow{top:calc(-1*(var(--mdb-popover-arrow-height)) - var(--mdb-popover-border-width))}.bs-popover-bottom>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before,.bs-popover-bottom>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after{border-width:0 calc(var(--mdb-popover-arrow-width)*.5) var(--mdb-popover-arrow-height)}.bs-popover-bottom>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before{top:0;border-bottom-color:var(--mdb-popover-arrow-border)}.bs-popover-bottom>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after{top:var(--mdb-popover-border-width);border-bottom-color:var(--mdb-popover-bg)}.bs-popover-bottom .popover-header::before,.bs-popover-auto[data-popper-placement^=bottom] .popover-header::before{position:absolute;top:0;left:50%;display:block;width:var(--mdb-popover-arrow-width);margin-left:calc(-0.5*var(--mdb-popover-arrow-width));content:"";border-bottom:var(--mdb-popover-border-width) solid var(--mdb-popover-header-bg)}.bs-popover-start>.popover-arrow,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow{right:calc(-1*(var(--mdb-popover-arrow-height)) - var(--mdb-popover-border-width));width:var(--mdb-popover-arrow-height);height:var(--mdb-popover-arrow-width)}.bs-popover-start>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before,.bs-popover-start>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after{border-width:calc(var(--mdb-popover-arrow-width)*.5) 0 calc(var(--mdb-popover-arrow-width)*.5) var(--mdb-popover-arrow-height)}.bs-popover-start>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before{right:0;border-left-color:var(--mdb-popover-arrow-border)}.bs-popover-start>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after{right:var(--mdb-popover-border-width);border-left-color:var(--mdb-popover-bg)}.popover-header{padding:var(--mdb-popover-header-padding-y) var(--mdb-popover-header-padding-x);margin-bottom:0;font-size:var(--mdb-popover-header-font-size);color:var(--mdb-popover-header-color);background-color:var(--mdb-popover-header-bg);border-bottom:var(--mdb-popover-border-width) solid var(--mdb-popover-border-color);border-top-left-radius:var(--mdb-popover-inner-border-radius);border-top-right-radius:var(--mdb-popover-inner-border-radius)}.popover-header:empty{display:none}.popover-body{padding:var(--mdb-popover-body-padding-y) var(--mdb-popover-body-padding-x);color:var(--mdb-popover-body-color)}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;backface-visibility:hidden;transition:transform .6s ease-in-out}@media(prefers-reduced-motion: reduce){.carousel-item{transition:none}}.carousel-item.active,.carousel-item-next,.carousel-item-prev{display:block}.carousel-item-next:not(.carousel-item-start),.active.carousel-item-end{transform:translateX(100%)}.carousel-item-prev:not(.carousel-item-end),.active.carousel-item-start{transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item.active,.carousel-fade .carousel-item-next.carousel-item-start,.carousel-fade .carousel-item-prev.carousel-item-end{z-index:1;opacity:1}.carousel-fade .active.carousel-item-start,.carousel-fade .active.carousel-item-end{z-index:0;opacity:0;transition:opacity 0s .6s}@media(prefers-reduced-motion: reduce){.carousel-fade .active.carousel-item-start,.carousel-fade .active.carousel-item-end{transition:none}}.carousel-control-prev,.carousel-control-next{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:none;border:0;opacity:.5;transition:opacity .15s ease}@media(prefers-reduced-motion: reduce){.carousel-control-prev,.carousel-control-next{transition:none}}.carousel-control-prev:hover,.carousel-control-prev:focus,.carousel-control-next:hover,.carousel-control-next:focus{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-prev-icon,.carousel-control-next-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}.carousel-control-prev-icon{background-image:none}.carousel-control-next-icon{background-image:none}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%}.carousel-indicators [data-mdb-target]{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border:0;border-top:10px solid rgba(0,0,0,0);border-bottom:10px solid rgba(0,0,0,0);opacity:.5;transition:opacity .6s ease}@media(prefers-reduced-motion: reduce){.carousel-indicators [data-mdb-target]{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}.carousel-dark .carousel-control-prev-icon,.carousel-dark .carousel-control-next-icon{filter:invert(1) grayscale(100)}.carousel-dark .carousel-indicators [data-mdb-target]{background-color:#000}.carousel-dark .carousel-caption{color:#000}[data-mdb-theme=dark] .carousel .carousel-control-prev-icon,[data-mdb-theme=dark] .carousel .carousel-control-next-icon,[data-mdb-theme=dark].carousel .carousel-control-prev-icon,[data-mdb-theme=dark].carousel .carousel-control-next-icon{filter:invert(1) grayscale(100)}[data-mdb-theme=dark] .carousel .carousel-indicators [data-mdb-target],[data-mdb-theme=dark].carousel .carousel-indicators [data-mdb-target]{background-color:#000}[data-mdb-theme=dark] .carousel .carousel-caption,[data-mdb-theme=dark].carousel .carousel-caption{color:#000}.spinner-grow,.spinner-border{display:inline-block;width:var(--mdb-spinner-width);height:var(--mdb-spinner-height);vertical-align:var(--mdb-spinner-vertical-align);border-radius:50%;animation:var(--mdb-spinner-animation-speed) linear infinite var(--mdb-spinner-animation-name)}@keyframes spinner-border{to{transform:rotate(360deg) /*!rtl:ignore*/}}.spinner-border{--mdb-spinner-width: 2rem;--mdb-spinner-height: 2rem;--mdb-spinner-vertical-align: -0.125em;--mdb-spinner-border-width: 0.25em;--mdb-spinner-animation-speed: 0.75s;--mdb-spinner-animation-name: spinner-border;border:var(--mdb-spinner-border-width) solid currentcolor;border-right-color:rgba(0,0,0,0)}.spinner-border-sm{--mdb-spinner-width: 1rem;--mdb-spinner-height: 1rem;--mdb-spinner-border-width: 0.2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{--mdb-spinner-width: 2rem;--mdb-spinner-height: 2rem;--mdb-spinner-vertical-align: -0.125em;--mdb-spinner-animation-speed: 0.75s;--mdb-spinner-animation-name: spinner-grow;background-color:currentcolor;opacity:0}.spinner-grow-sm{--mdb-spinner-width: 1rem;--mdb-spinner-height: 1rem}@media(prefers-reduced-motion: reduce){.spinner-border,.spinner-grow{--mdb-spinner-animation-speed: 1.5s}}.offcanvas,.offcanvas-xxl,.offcanvas-xl,.offcanvas-lg,.offcanvas-md,.offcanvas-sm{--mdb-offcanvas-zindex: 1045;--mdb-offcanvas-width: 400px;--mdb-offcanvas-height: 30vh;--mdb-offcanvas-padding-x: 1rem;--mdb-offcanvas-padding-y: 1rem;--mdb-offcanvas-color: var(--mdb-body-color);--mdb-offcanvas-bg: var(--mdb-body-bg);--mdb-offcanvas-border-width: var(--mdb-border-width);--mdb-offcanvas-border-color: var(--mdb-border-color-translucent);--mdb-offcanvas-box-shadow: var(--mdb-box-shadow-sm);--mdb-offcanvas-transition: transform 0.3s ease-in-out;--mdb-offcanvas-title-line-height: 1.6}@media(max-width: 575.98px){.offcanvas-sm{position:fixed;bottom:0;z-index:var(--mdb-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--mdb-offcanvas-color);visibility:hidden;background-color:var(--mdb-offcanvas-bg);background-clip:padding-box;outline:0;box-shadow:var(--mdb-offcanvas-box-shadow);transition:var(--mdb-offcanvas-transition)}}@media(max-width: 575.98px)and (prefers-reduced-motion: reduce){.offcanvas-sm{transition:none}}@media(max-width: 575.98px){.offcanvas-sm.offcanvas-start{top:0;left:0;width:var(--mdb-offcanvas-width);border-right:var(--mdb-offcanvas-border-width) solid var(--mdb-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-sm.offcanvas-end{top:0;right:0;width:var(--mdb-offcanvas-width);border-left:var(--mdb-offcanvas-border-width) solid var(--mdb-offcanvas-border-color);transform:translateX(100%)}.offcanvas-sm.offcanvas-top{top:0;right:0;left:0;height:var(--mdb-offcanvas-height);max-height:100%;border-bottom:var(--mdb-offcanvas-border-width) solid var(--mdb-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-sm.offcanvas-bottom{right:0;left:0;height:var(--mdb-offcanvas-height);max-height:100%;border-top:var(--mdb-offcanvas-border-width) solid var(--mdb-offcanvas-border-color);transform:translateY(100%)}.offcanvas-sm.showing,.offcanvas-sm.show:not(.hiding){transform:none}.offcanvas-sm.showing,.offcanvas-sm.hiding,.offcanvas-sm.show{visibility:visible}}@media(min-width: 576px){.offcanvas-sm{--mdb-offcanvas-height: auto;--mdb-offcanvas-border-width: 0;background-color:rgba(0,0,0,0) !important}.offcanvas-sm .offcanvas-header{display:none}.offcanvas-sm .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:rgba(0,0,0,0) !important}}@media(max-width: 767.98px){.offcanvas-md{position:fixed;bottom:0;z-index:var(--mdb-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--mdb-offcanvas-color);visibility:hidden;background-color:var(--mdb-offcanvas-bg);background-clip:padding-box;outline:0;box-shadow:var(--mdb-offcanvas-box-shadow);transition:var(--mdb-offcanvas-transition)}}@media(max-width: 767.98px)and (prefers-reduced-motion: reduce){.offcanvas-md{transition:none}}@media(max-width: 767.98px){.offcanvas-md.offcanvas-start{top:0;left:0;width:var(--mdb-offcanvas-width);border-right:var(--mdb-offcanvas-border-width) solid var(--mdb-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-md.offcanvas-end{top:0;right:0;width:var(--mdb-offcanvas-width);border-left:var(--mdb-offcanvas-border-width) solid var(--mdb-offcanvas-border-color);transform:translateX(100%)}.offcanvas-md.offcanvas-top{top:0;right:0;left:0;height:var(--mdb-offcanvas-height);max-height:100%;border-bottom:var(--mdb-offcanvas-border-width) solid var(--mdb-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-md.offcanvas-bottom{right:0;left:0;height:var(--mdb-offcanvas-height);max-height:100%;border-top:var(--mdb-offcanvas-border-width) solid var(--mdb-offcanvas-border-color);transform:translateY(100%)}.offcanvas-md.showing,.offcanvas-md.show:not(.hiding){transform:none}.offcanvas-md.showing,.offcanvas-md.hiding,.offcanvas-md.show{visibility:visible}}@media(min-width: 768px){.offcanvas-md{--mdb-offcanvas-height: auto;--mdb-offcanvas-border-width: 0;background-color:rgba(0,0,0,0) !important}.offcanvas-md .offcanvas-header{display:none}.offcanvas-md .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:rgba(0,0,0,0) !important}}@media(max-width: 991.98px){.offcanvas-lg{position:fixed;bottom:0;z-index:var(--mdb-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--mdb-offcanvas-color);visibility:hidden;background-color:var(--mdb-offcanvas-bg);background-clip:padding-box;outline:0;box-shadow:var(--mdb-offcanvas-box-shadow);transition:var(--mdb-offcanvas-transition)}}@media(max-width: 991.98px)and (prefers-reduced-motion: reduce){.offcanvas-lg{transition:none}}@media(max-width: 991.98px){.offcanvas-lg.offcanvas-start{top:0;left:0;width:var(--mdb-offcanvas-width);border-right:var(--mdb-offcanvas-border-width) solid var(--mdb-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-lg.offcanvas-end{top:0;right:0;width:var(--mdb-offcanvas-width);border-left:var(--mdb-offcanvas-border-width) solid var(--mdb-offcanvas-border-color);transform:translateX(100%)}.offcanvas-lg.offcanvas-top{top:0;right:0;left:0;height:var(--mdb-offcanvas-height);max-height:100%;border-bottom:var(--mdb-offcanvas-border-width) solid var(--mdb-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-lg.offcanvas-bottom{right:0;left:0;height:var(--mdb-offcanvas-height);max-height:100%;border-top:var(--mdb-offcanvas-border-width) solid var(--mdb-offcanvas-border-color);transform:translateY(100%)}.offcanvas-lg.showing,.offcanvas-lg.show:not(.hiding){transform:none}.offcanvas-lg.showing,.offcanvas-lg.hiding,.offcanvas-lg.show{visibility:visible}}@media(min-width: 992px){.offcanvas-lg{--mdb-offcanvas-height: auto;--mdb-offcanvas-border-width: 0;background-color:rgba(0,0,0,0) !important}.offcanvas-lg .offcanvas-header{display:none}.offcanvas-lg .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:rgba(0,0,0,0) !important}}@media(max-width: 1199.98px){.offcanvas-xl{position:fixed;bottom:0;z-index:var(--mdb-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--mdb-offcanvas-color);visibility:hidden;background-color:var(--mdb-offcanvas-bg);background-clip:padding-box;outline:0;box-shadow:var(--mdb-offcanvas-box-shadow);transition:var(--mdb-offcanvas-transition)}}@media(max-width: 1199.98px)and (prefers-reduced-motion: reduce){.offcanvas-xl{transition:none}}@media(max-width: 1199.98px){.offcanvas-xl.offcanvas-start{top:0;left:0;width:var(--mdb-offcanvas-width);border-right:var(--mdb-offcanvas-border-width) solid var(--mdb-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-xl.offcanvas-end{top:0;right:0;width:var(--mdb-offcanvas-width);border-left:var(--mdb-offcanvas-border-width) solid var(--mdb-offcanvas-border-color);transform:translateX(100%)}.offcanvas-xl.offcanvas-top{top:0;right:0;left:0;height:var(--mdb-offcanvas-height);max-height:100%;border-bottom:var(--mdb-offcanvas-border-width) solid var(--mdb-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-xl.offcanvas-bottom{right:0;left:0;height:var(--mdb-offcanvas-height);max-height:100%;border-top:var(--mdb-offcanvas-border-width) solid var(--mdb-offcanvas-border-color);transform:translateY(100%)}.offcanvas-xl.showing,.offcanvas-xl.show:not(.hiding){transform:none}.offcanvas-xl.showing,.offcanvas-xl.hiding,.offcanvas-xl.show{visibility:visible}}@media(min-width: 1200px){.offcanvas-xl{--mdb-offcanvas-height: auto;--mdb-offcanvas-border-width: 0;background-color:rgba(0,0,0,0) !important}.offcanvas-xl .offcanvas-header{display:none}.offcanvas-xl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:rgba(0,0,0,0) !important}}@media(max-width: 1399.98px){.offcanvas-xxl{position:fixed;bottom:0;z-index:var(--mdb-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--mdb-offcanvas-color);visibility:hidden;background-color:var(--mdb-offcanvas-bg);background-clip:padding-box;outline:0;box-shadow:var(--mdb-offcanvas-box-shadow);transition:var(--mdb-offcanvas-transition)}}@media(max-width: 1399.98px)and (prefers-reduced-motion: reduce){.offcanvas-xxl{transition:none}}@media(max-width: 1399.98px){.offcanvas-xxl.offcanvas-start{top:0;left:0;width:var(--mdb-offcanvas-width);border-right:var(--mdb-offcanvas-border-width) solid var(--mdb-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-xxl.offcanvas-end{top:0;right:0;width:var(--mdb-offcanvas-width);border-left:var(--mdb-offcanvas-border-width) solid var(--mdb-offcanvas-border-color);transform:translateX(100%)}.offcanvas-xxl.offcanvas-top{top:0;right:0;left:0;height:var(--mdb-offcanvas-height);max-height:100%;border-bottom:var(--mdb-offcanvas-border-width) solid var(--mdb-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-xxl.offcanvas-bottom{right:0;left:0;height:var(--mdb-offcanvas-height);max-height:100%;border-top:var(--mdb-offcanvas-border-width) solid var(--mdb-offcanvas-border-color);transform:translateY(100%)}.offcanvas-xxl.showing,.offcanvas-xxl.show:not(.hiding){transform:none}.offcanvas-xxl.showing,.offcanvas-xxl.hiding,.offcanvas-xxl.show{visibility:visible}}@media(min-width: 1400px){.offcanvas-xxl{--mdb-offcanvas-height: auto;--mdb-offcanvas-border-width: 0;background-color:rgba(0,0,0,0) !important}.offcanvas-xxl .offcanvas-header{display:none}.offcanvas-xxl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:rgba(0,0,0,0) !important}}.offcanvas{position:fixed;bottom:0;z-index:var(--mdb-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--mdb-offcanvas-color);visibility:hidden;background-color:var(--mdb-offcanvas-bg);background-clip:padding-box;outline:0;box-shadow:var(--mdb-offcanvas-box-shadow);transition:var(--mdb-offcanvas-transition)}@media(prefers-reduced-motion: reduce){.offcanvas{transition:none}}.offcanvas.offcanvas-start{top:0;left:0;width:var(--mdb-offcanvas-width);border-right:var(--mdb-offcanvas-border-width) solid var(--mdb-offcanvas-border-color);transform:translateX(-100%)}.offcanvas.offcanvas-end{top:0;right:0;width:var(--mdb-offcanvas-width);border-left:var(--mdb-offcanvas-border-width) solid var(--mdb-offcanvas-border-color);transform:translateX(100%)}.offcanvas.offcanvas-top{top:0;right:0;left:0;height:var(--mdb-offcanvas-height);max-height:100%;border-bottom:var(--mdb-offcanvas-border-width) solid var(--mdb-offcanvas-border-color);transform:translateY(-100%)}.offcanvas.offcanvas-bottom{right:0;left:0;height:var(--mdb-offcanvas-height);max-height:100%;border-top:var(--mdb-offcanvas-border-width) solid var(--mdb-offcanvas-border-color);transform:translateY(100%)}.offcanvas.showing,.offcanvas.show:not(.hiding){transform:none}.offcanvas.showing,.offcanvas.hiding,.offcanvas.show{visibility:visible}.offcanvas-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.offcanvas-backdrop.fade{opacity:0}.offcanvas-backdrop.show{opacity:.5}.offcanvas-header{display:flex;align-items:center;justify-content:space-between;padding:var(--mdb-offcanvas-padding-y) var(--mdb-offcanvas-padding-x)}.offcanvas-header .btn-close{padding:calc(var(--mdb-offcanvas-padding-y)*.5) calc(var(--mdb-offcanvas-padding-x)*.5);margin-top:calc(-0.5*var(--mdb-offcanvas-padding-y));margin-right:calc(-0.5*var(--mdb-offcanvas-padding-x));margin-bottom:calc(-0.5*var(--mdb-offcanvas-padding-y))}.offcanvas-title{margin-bottom:0;line-height:var(--mdb-offcanvas-title-line-height)}.offcanvas-body{flex-grow:1;padding:var(--mdb-offcanvas-padding-y) var(--mdb-offcanvas-padding-x);overflow-y:auto}.placeholder{display:inline-block;min-height:1em;vertical-align:middle;cursor:wait;background-color:currentcolor;opacity:.5}.placeholder.btn::before{display:inline-block;content:""}.placeholder-xs{min-height:.6em}.placeholder-sm{min-height:.8em}.placeholder-lg{min-height:1.2em}.placeholder-glow .placeholder{animation:placeholder-glow 2s ease-in-out infinite}@keyframes placeholder-glow{50%{opacity:.2}}.placeholder-wave{mask-image:linear-gradient(130deg, #000 55%, rgba(0, 0, 0, 0.8) 75%, #000 95%);mask-size:200% 100%;animation:placeholder-wave 2s linear infinite}@keyframes placeholder-wave{100%{mask-position:-200% 0%}}.clearfix::after{display:block;clear:both;content:""}.text-bg-primary{color:#fff !important;background-color:RGBA(var(--mdb-primary-rgb), var(--mdb-bg-opacity, 1)) !important}.text-bg-secondary{color:#fff !important;background-color:RGBA(var(--mdb-secondary-rgb), var(--mdb-bg-opacity, 1)) !important}.text-bg-success{color:#fff !important;background-color:RGBA(var(--mdb-success-rgb), var(--mdb-bg-opacity, 1)) !important}.text-bg-danger{color:#fff !important;background-color:RGBA(var(--mdb-danger-rgb), var(--mdb-bg-opacity, 1)) !important}.text-bg-warning{color:#fff !important;background-color:RGBA(var(--mdb-warning-rgb), var(--mdb-bg-opacity, 1)) !important}.text-bg-info{color:#fff !important;background-color:RGBA(var(--mdb-info-rgb), var(--mdb-bg-opacity, 1)) !important}.text-bg-light{color:#000 !important;background-color:RGBA(var(--mdb-light-rgb), var(--mdb-bg-opacity, 1)) !important}.text-bg-dark{color:#fff !important;background-color:RGBA(var(--mdb-dark-rgb), var(--mdb-bg-opacity, 1)) !important}.link-primary{color:RGBA(var(--mdb-primary-rgb), var(--mdb-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--mdb-primary-rgb), var(--mdb-link-underline-opacity, 1)) !important}.link-primary:hover,.link-primary:focus{color:RGBA(56, 107, 192, var(--mdb-link-opacity, 1)) !important;text-decoration-color:RGBA(56, 107, 192, var(--mdb-link-underline-opacity, 1)) !important}.link-secondary{color:RGBA(var(--mdb-secondary-rgb), var(--mdb-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--mdb-secondary-rgb), var(--mdb-link-underline-opacity, 1)) !important}.link-secondary:hover,.link-secondary:focus{color:RGBA(151, 158, 169, var(--mdb-link-opacity, 1)) !important;text-decoration-color:RGBA(151, 158, 169, var(--mdb-link-underline-opacity, 1)) !important}.link-success{color:RGBA(var(--mdb-success-rgb), var(--mdb-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--mdb-success-rgb), var(--mdb-link-underline-opacity, 1)) !important}.link-success:hover,.link-success:focus{color:RGBA(19, 156, 73, var(--mdb-link-opacity, 1)) !important;text-decoration-color:RGBA(19, 156, 73, var(--mdb-link-underline-opacity, 1)) !important}.link-danger{color:RGBA(var(--mdb-danger-rgb), var(--mdb-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--mdb-danger-rgb), var(--mdb-link-underline-opacity, 1)) !important}.link-danger:hover,.link-danger:focus{color:RGBA(209, 72, 95, var(--mdb-link-opacity, 1)) !important;text-decoration-color:RGBA(209, 72, 95, var(--mdb-link-underline-opacity, 1)) !important}.link-warning{color:RGBA(var(--mdb-warning-rgb), var(--mdb-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--mdb-warning-rgb), var(--mdb-link-underline-opacity, 1)) !important}.link-warning:hover,.link-warning:focus{color:RGBA(217, 153, 26, var(--mdb-link-opacity, 1)) !important;text-decoration-color:RGBA(217, 153, 26, var(--mdb-link-underline-opacity, 1)) !important}.link-info{color:RGBA(var(--mdb-info-rgb), var(--mdb-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--mdb-info-rgb), var(--mdb-link-underline-opacity, 1)) !important}.link-info:hover,.link-info:focus{color:RGBA(80, 171, 200, var(--mdb-link-opacity, 1)) !important;text-decoration-color:RGBA(80, 171, 200, var(--mdb-link-underline-opacity, 1)) !important}.link-light{color:RGBA(var(--mdb-light-rgb), var(--mdb-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--mdb-light-rgb), var(--mdb-link-underline-opacity, 1)) !important}.link-light:hover,.link-light:focus{color:RGBA(251, 251, 251, var(--mdb-link-opacity, 1)) !important;text-decoration-color:RGBA(251, 251, 251, var(--mdb-link-underline-opacity, 1)) !important}.link-dark{color:RGBA(var(--mdb-dark-rgb), var(--mdb-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--mdb-dark-rgb), var(--mdb-link-underline-opacity, 1)) !important}.link-dark:hover,.link-dark:focus{color:RGBA(48, 43, 43, var(--mdb-link-opacity, 1)) !important;text-decoration-color:RGBA(48, 43, 43, var(--mdb-link-underline-opacity, 1)) !important}.link-body-emphasis{color:RGBA(var(--mdb-emphasis-color-rgb), var(--mdb-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--mdb-emphasis-color-rgb), var(--mdb-link-underline-opacity, 1)) !important}.link-body-emphasis:hover,.link-body-emphasis:focus{color:RGBA(var(--mdb-emphasis-color-rgb), var(--mdb-link-opacity, 0.75)) !important;text-decoration-color:RGBA(var(--mdb-emphasis-color-rgb), var(--mdb-link-underline-opacity, 0.75)) !important}.focus-ring:focus{outline:0;box-shadow:var(--mdb-focus-ring-x, 0) var(--mdb-focus-ring-y, 0) var(--mdb-focus-ring-blur, 0) var(--mdb-focus-ring-width) var(--mdb-focus-ring-color)}.icon-link{display:inline-flex;gap:.375rem;align-items:center;text-decoration-color:rgba(var(--mdb-link-color-rgb), var(--mdb-link-opacity, 0.5));text-underline-offset:.25em;backface-visibility:hidden}.icon-link>.bi{flex-shrink:0;width:1em;height:1em;fill:currentcolor;transition:.2s ease-in-out transform}@media(prefers-reduced-motion: reduce){.icon-link>.bi{transition:none}}.icon-link-hover:hover>.bi,.icon-link-hover:focus-visible>.bi{transform:var(--mdb-icon-link-transform, translate3d(0.25em, 0, 0))}.ratio{position:relative;width:100%}.ratio::before{display:block;padding-top:var(--mdb-aspect-ratio);content:""}.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-1x1{--mdb-aspect-ratio: 100%}.ratio-4x3{--mdb-aspect-ratio: 75%}.ratio-16x9{--mdb-aspect-ratio: 56.25%}.ratio-21x9{--mdb-aspect-ratio: 42.8571428571%}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}.sticky-top{position:sticky;top:0;z-index:1020}.sticky-bottom{position:sticky;bottom:0;z-index:1020}@media(min-width: 576px){.sticky-sm-top{position:sticky;top:0;z-index:1020}.sticky-sm-bottom{position:sticky;bottom:0;z-index:1020}}@media(min-width: 768px){.sticky-md-top{position:sticky;top:0;z-index:1020}.sticky-md-bottom{position:sticky;bottom:0;z-index:1020}}@media(min-width: 992px){.sticky-lg-top{position:sticky;top:0;z-index:1020}.sticky-lg-bottom{position:sticky;bottom:0;z-index:1020}}@media(min-width: 1200px){.sticky-xl-top{position:sticky;top:0;z-index:1020}.sticky-xl-bottom{position:sticky;bottom:0;z-index:1020}}@media(min-width: 1400px){.sticky-xxl-top{position:sticky;top:0;z-index:1020}.sticky-xxl-bottom{position:sticky;bottom:0;z-index:1020}}.hstack{display:flex;flex-direction:row;align-items:center;align-self:stretch}.vstack{display:flex;flex:1 1 auto;flex-direction:column;align-self:stretch}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border:0 !important}.visually-hidden:not(caption),.visually-hidden-focusable:not(:focus):not(:focus-within):not(caption){position:absolute !important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr{display:inline-block;align-self:stretch;width:var(--mdb-border-width);min-height:1em;background-color:currentcolor;opacity:.25}.diagonal-fractions{font-variant-numeric:diagonal-fractions}.bg-super-light{--mdb-bg-super-light: #fbfbfb;background-color:var(--mdb-bg-super-light)}.bg-fixed{background-attachment:fixed}.bg-local{background-attachment:local}.bg-scroll{background-attachment:scroll}.overflow-y-scroll{overflow-y:scroll}.overflow-x-scroll{overflow-x:scroll}.table-fixed{table-layout:fixed}.table-auto{table-layout:auto}.link-primary{transition:color .15s}.link-secondary{transition:color .15s}.link-success{transition:color .15s}.link-danger{transition:color .15s}.link-warning{transition:color .15s}.link-info{transition:color .15s}.link-light{transition:color .15s}.link-dark{transition:color .15s}.align-baseline{vertical-align:baseline !important}.align-top{vertical-align:top !important}.align-middle{vertical-align:middle !important}.align-bottom{vertical-align:bottom !important}.align-text-bottom{vertical-align:text-bottom !important}.align-text-top{vertical-align:text-top !important}.float-start{float:left !important}.float-end{float:right !important}.float-none{float:none !important}.object-cover{object-fit:cover !important}.opacity-0{opacity:0 !important}.opacity-5{opacity:.05 !important}.opacity-10{opacity:.1 !important}.opacity-15{opacity:.15 !important}.opacity-20{opacity:.2 !important}.opacity-25{opacity:.25 !important}.opacity-30{opacity:.3 !important}.opacity-35{opacity:.35 !important}.opacity-40{opacity:.4 !important}.opacity-45{opacity:.45 !important}.opacity-50{opacity:.5 !important}.opacity-55{opacity:.55 !important}.opacity-60{opacity:.6 !important}.opacity-65{opacity:.65 !important}.opacity-70{opacity:.7 !important}.opacity-75{opacity:.75 !important}.opacity-80{opacity:.8 !important}.opacity-85{opacity:.85 !important}.opacity-90{opacity:.9 !important}.opacity-95{opacity:.95 !important}.opacity-100{opacity:1 !important}.overflow-auto{overflow:auto !important}.overflow-hidden{overflow:hidden !important}.overflow-visible{overflow:visible !important}.overflow-scroll{overflow:scroll !important}.overflow-x-auto{overflow-x:auto !important}.overflow-x-hidden{overflow-x:hidden !important}.overflow-x-visible{overflow-x:visible !important}.overflow-x-scroll{overflow-x:scroll !important}.overflow-y-auto{overflow-y:auto !important}.overflow-y-hidden{overflow-y:hidden !important}.overflow-y-visible{overflow-y:visible !important}.overflow-y-scroll{overflow-y:scroll !important}.d-inline{display:inline !important}.d-inline-block{display:inline-block !important}.d-block{display:block !important}.d-grid{display:grid !important}.d-inline-grid{display:inline-grid !important}.d-table{display:table !important}.d-table-row{display:table-row !important}.d-table-cell{display:table-cell !important}.d-flex{display:flex !important}.d-inline-flex{display:inline-flex !important}.d-none{display:none !important}.shadow{box-shadow:var(--mdb-box-shadow) !important}.shadow-sm{box-shadow:var(--mdb-box-shadow-sm) !important}.shadow-lg{box-shadow:var(--mdb-box-shadow-lg) !important}.shadow-none{box-shadow:none !important}.shadow-0{box-shadow:none !important}.shadow-1{box-shadow:0 0px 2px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.07),0 1px 1px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.04) !important}.shadow-2{box-shadow:0 0px 3px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.07),0 2px 2px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.04) !important}.shadow-3{box-shadow:0 2px 6px -1px rgba(var(--mdb-box-shadow-color-rgb), 0.07),0 6px 18px -1px rgba(var(--mdb-box-shadow-color-rgb), 0.04) !important}.shadow-4{box-shadow:0 2px 15px -3px rgba(var(--mdb-box-shadow-color-rgb), 0.07),0 10px 20px -2px rgba(var(--mdb-box-shadow-color-rgb), 0.04) !important}.shadow-5{box-shadow:0 2px 25px -5px rgba(var(--mdb-box-shadow-color-rgb), 0.07),0 25px 21px -5px rgba(var(--mdb-box-shadow-color-rgb), 0.04) !important}.shadow-6{box-shadow:0 2px 35px -12px rgba(var(--mdb-box-shadow-color-rgb), 0.21),0 50px 40px -5px rgba(var(--mdb-box-shadow-color-rgb), 0.04) !important}.shadow-1-soft{box-shadow:0 1px 5px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.05) !important}.shadow-2-soft{box-shadow:0 2px 10px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.05) !important}.shadow-3-soft{box-shadow:0 5px 15px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.05) !important}.shadow-4-soft{box-shadow:0 10px 20px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.05) !important}.shadow-5-soft{box-shadow:0 15px 30px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.05) !important}.shadow-6-soft{box-shadow:0 20px 40px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.05) !important}.shadow-1-strong{box-shadow:0 0px 2px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.16),0 1px 1px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.1) !important}.shadow-2-strong{box-shadow:0 0px 3px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.16),0 2px 2px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.1) !important}.shadow-3-strong{box-shadow:0 2px 6px -1px rgba(var(--mdb-box-shadow-color-rgb), 0.16),0 6px 18px -1px rgba(var(--mdb-box-shadow-color-rgb), 0.1) !important}.shadow-4-strong{box-shadow:0 2px 15px -3px rgba(var(--mdb-box-shadow-color-rgb), 0.16),0 10px 20px -2px rgba(var(--mdb-box-shadow-color-rgb), 0.1) !important}.shadow-5-strong{box-shadow:0 2px 25px -5px rgba(var(--mdb-box-shadow-color-rgb), 0.16),0 25px 21px -5px rgba(var(--mdb-box-shadow-color-rgb), 0.1) !important}.shadow-6-strong{box-shadow:0 2px 35px -12px rgba(var(--mdb-box-shadow-color-rgb), 0.26),0 50px 40px -5px rgba(var(--mdb-box-shadow-color-rgb), 0.1) !important}.shadow-inner{box-shadow:inset 0 2px 4px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.06) !important}.focus-ring-primary{--mdb-focus-ring-color: rgba(var(--mdb-primary-rgb), var(--mdb-focus-ring-opacity))}.focus-ring-secondary{--mdb-focus-ring-color: rgba(var(--mdb-secondary-rgb), var(--mdb-focus-ring-opacity))}.focus-ring-success{--mdb-focus-ring-color: rgba(var(--mdb-success-rgb), var(--mdb-focus-ring-opacity))}.focus-ring-danger{--mdb-focus-ring-color: rgba(var(--mdb-danger-rgb), var(--mdb-focus-ring-opacity))}.focus-ring-warning{--mdb-focus-ring-color: rgba(var(--mdb-warning-rgb), var(--mdb-focus-ring-opacity))}.focus-ring-info{--mdb-focus-ring-color: rgba(var(--mdb-info-rgb), var(--mdb-focus-ring-opacity))}.focus-ring-light{--mdb-focus-ring-color: rgba(var(--mdb-light-rgb), var(--mdb-focus-ring-opacity))}.focus-ring-dark{--mdb-focus-ring-color: rgba(var(--mdb-dark-rgb), var(--mdb-focus-ring-opacity))}.position-static{position:static !important}.position-relative{position:relative !important}.position-absolute{position:absolute !important}.position-fixed{position:fixed !important}.position-sticky{position:sticky !important}.top-0{top:0 !important}.top-50{top:50% !important}.top-100{top:100% !important}.bottom-0{bottom:0 !important}.bottom-50{bottom:50% !important}.bottom-100{bottom:100% !important}.start-0{left:0 !important}.start-50{left:50% !important}.start-100{left:100% !important}.end-0{right:0 !important}.end-50{right:50% !important}.end-100{right:100% !important}.translate-middle{transform:translate(-50%, -50%) !important}.translate-middle-x{transform:translateX(-50%) !important}.translate-middle-y{transform:translateY(-50%) !important}.border{border:var(--mdb-border-width) var(--mdb-border-style) var(--mdb-border-color) !important}.border-0{border:0 !important}.border-top{border-top:var(--mdb-border-width) var(--mdb-border-style) var(--mdb-border-color) !important}.border-top-0{border-top:0 !important}.border-end{border-right:var(--mdb-border-width) var(--mdb-border-style) var(--mdb-border-color) !important}.border-end-0{border-right:0 !important}.border-bottom{border-bottom:var(--mdb-border-width) var(--mdb-border-style) var(--mdb-border-color) !important}.border-bottom-0{border-bottom:0 !important}.border-start{border-left:var(--mdb-border-width) var(--mdb-border-style) var(--mdb-border-color) !important}.border-start-0{border-left:0 !important}.border-primary{--mdb-border-opacity: 1;border-color:rgba(var(--mdb-primary-rgb), var(--mdb-border-opacity)) !important}.border-secondary{--mdb-border-opacity: 1;border-color:rgba(var(--mdb-secondary-rgb), var(--mdb-border-opacity)) !important}.border-success{--mdb-border-opacity: 1;border-color:rgba(var(--mdb-success-rgb), var(--mdb-border-opacity)) !important}.border-danger{--mdb-border-opacity: 1;border-color:rgba(var(--mdb-danger-rgb), var(--mdb-border-opacity)) !important}.border-warning{--mdb-border-opacity: 1;border-color:rgba(var(--mdb-warning-rgb), var(--mdb-border-opacity)) !important}.border-info{--mdb-border-opacity: 1;border-color:rgba(var(--mdb-info-rgb), var(--mdb-border-opacity)) !important}.border-light{--mdb-border-opacity: 1;border-color:rgba(var(--mdb-light-rgb), var(--mdb-border-opacity)) !important}.border-dark{--mdb-border-opacity: 1;border-color:rgba(var(--mdb-dark-rgb), var(--mdb-border-opacity)) !important}.border-black{--mdb-border-opacity: 1;border-color:rgba(var(--mdb-black-rgb), var(--mdb-border-opacity)) !important}.border-white{--mdb-border-opacity: 1;border-color:rgba(var(--mdb-white-rgb), var(--mdb-border-opacity)) !important}.border-primary-subtle{border-color:var(--mdb-primary-border-subtle) !important}.border-secondary-subtle{border-color:var(--mdb-secondary-border-subtle) !important}.border-success-subtle{border-color:var(--mdb-success-border-subtle) !important}.border-info-subtle{border-color:var(--mdb-info-border-subtle) !important}.border-warning-subtle{border-color:var(--mdb-warning-border-subtle) !important}.border-danger-subtle{border-color:var(--mdb-danger-border-subtle) !important}.border-light-subtle{border-color:var(--mdb-light-border-subtle) !important}.border-dark-subtle{border-color:var(--mdb-dark-border-subtle) !important}.border-1{border-width:1px !important}.border-2{border-width:2px !important}.border-3{border-width:3px !important}.border-4{border-width:4px !important}.border-5{border-width:5px !important}.border-opacity-10{--mdb-border-opacity: 0.1}.border-opacity-25{--mdb-border-opacity: 0.25}.border-opacity-50{--mdb-border-opacity: 0.5}.border-opacity-75{--mdb-border-opacity: 0.75}.border-opacity-100{--mdb-border-opacity: 1}.w-25{width:25% !important}.w-50{width:50% !important}.w-75{width:75% !important}.w-100{width:100% !important}.w-auto{width:auto !important}.mw-100{max-width:100% !important}.vw-100{width:100vw !important}.min-vw-100{min-width:100vw !important}.h-25{height:25% !important}.h-50{height:50% !important}.h-75{height:75% !important}.h-100{height:100% !important}.h-auto{height:auto !important}.mh-100{max-height:100% !important}.vh-100{height:100vh !important}.min-vh-100{min-height:100vh !important}.flex-fill{flex:1 1 auto !important}.flex-row{flex-direction:row !important}.flex-column{flex-direction:column !important}.flex-row-reverse{flex-direction:row-reverse !important}.flex-column-reverse{flex-direction:column-reverse !important}.flex-grow-0{flex-grow:0 !important}.flex-grow-1{flex-grow:1 !important}.flex-shrink-0{flex-shrink:0 !important}.flex-shrink-1{flex-shrink:1 !important}.flex-wrap{flex-wrap:wrap !important}.flex-nowrap{flex-wrap:nowrap !important}.flex-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-start{justify-content:flex-start !important}.justify-content-end{justify-content:flex-end !important}.justify-content-center{justify-content:center !important}.justify-content-between{justify-content:space-between !important}.justify-content-around{justify-content:space-around !important}.justify-content-evenly{justify-content:space-evenly !important}.align-items-start{align-items:flex-start !important}.align-items-end{align-items:flex-end !important}.align-items-center{align-items:center !important}.align-items-baseline{align-items:baseline !important}.align-items-stretch{align-items:stretch !important}.align-content-start{align-content:flex-start !important}.align-content-end{align-content:flex-end !important}.align-content-center{align-content:center !important}.align-content-between{align-content:space-between !important}.align-content-around{align-content:space-around !important}.align-content-stretch{align-content:stretch !important}.align-self-auto{align-self:auto !important}.align-self-start{align-self:flex-start !important}.align-self-end{align-self:flex-end !important}.align-self-center{align-self:center !important}.align-self-baseline{align-self:baseline !important}.align-self-stretch{align-self:stretch !important}.order-first{order:-1 !important}.order-0{order:0 !important}.order-1{order:1 !important}.order-2{order:2 !important}.order-3{order:3 !important}.order-4{order:4 !important}.order-5{order:5 !important}.order-last{order:6 !important}.m-0{margin:0 !important}.m-1{margin:.25rem !important}.m-2{margin:.5rem !important}.m-3{margin:1rem !important}.m-4{margin:1.5rem !important}.m-5{margin:3rem !important}.m-auto{margin:auto !important}.mx-0{margin-right:0 !important;margin-left:0 !important}.mx-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-3{margin-right:1rem !important;margin-left:1rem !important}.mx-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-5{margin-right:3rem !important;margin-left:3rem !important}.mx-auto{margin-right:auto !important;margin-left:auto !important}.my-0{margin-top:0 !important;margin-bottom:0 !important}.my-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-0{margin-top:0 !important}.mt-1{margin-top:.25rem !important}.mt-2{margin-top:.5rem !important}.mt-3{margin-top:1rem !important}.mt-4{margin-top:1.5rem !important}.mt-5{margin-top:3rem !important}.mt-auto{margin-top:auto !important}.me-0{margin-right:0 !important}.me-1{margin-right:.25rem !important}.me-2{margin-right:.5rem !important}.me-3{margin-right:1rem !important}.me-4{margin-right:1.5rem !important}.me-5{margin-right:3rem !important}.me-auto{margin-right:auto !important}.mb-0{margin-bottom:0 !important}.mb-1{margin-bottom:.25rem !important}.mb-2{margin-bottom:.5rem !important}.mb-3{margin-bottom:1rem !important}.mb-4{margin-bottom:1.5rem !important}.mb-5{margin-bottom:3rem !important}.mb-auto{margin-bottom:auto !important}.mb-6{margin-bottom:3.5rem !important}.mb-7{margin-bottom:4rem !important}.mb-8{margin-bottom:5rem !important}.mb-9{margin-bottom:6rem !important}.mb-10{margin-bottom:8rem !important}.mb-11{margin-bottom:10rem !important}.mb-12{margin-bottom:12rem !important}.mb-13{margin-bottom:14rem !important}.mb-14{margin-bottom:16rem !important}.ms-0{margin-left:0 !important}.ms-1{margin-left:.25rem !important}.ms-2{margin-left:.5rem !important}.ms-3{margin-left:1rem !important}.ms-4{margin-left:1.5rem !important}.ms-5{margin-left:3rem !important}.ms-auto{margin-left:auto !important}.m-n1{margin:-0.25rem !important}.m-n2{margin:-0.5rem !important}.m-n3{margin:-1rem !important}.m-n4{margin:-1.5rem !important}.m-n5{margin:-3rem !important}.mx-n1{margin-right:-0.25rem !important;margin-left:-0.25rem !important}.mx-n2{margin-right:-0.5rem !important;margin-left:-0.5rem !important}.mx-n3{margin-right:-1rem !important;margin-left:-1rem !important}.mx-n4{margin-right:-1.5rem !important;margin-left:-1.5rem !important}.mx-n5{margin-right:-3rem !important;margin-left:-3rem !important}.my-n1{margin-top:-0.25rem !important;margin-bottom:-0.25rem !important}.my-n2{margin-top:-0.5rem !important;margin-bottom:-0.5rem !important}.my-n3{margin-top:-1rem !important;margin-bottom:-1rem !important}.my-n4{margin-top:-1.5rem !important;margin-bottom:-1.5rem !important}.my-n5{margin-top:-3rem !important;margin-bottom:-3rem !important}.mt-n1{margin-top:-0.25rem !important}.mt-n2{margin-top:-0.5rem !important}.mt-n3{margin-top:-1rem !important}.mt-n4{margin-top:-1.5rem !important}.mt-n5{margin-top:-3rem !important}.me-n1{margin-right:-0.25rem !important}.me-n2{margin-right:-0.5rem !important}.me-n3{margin-right:-1rem !important}.me-n4{margin-right:-1.5rem !important}.me-n5{margin-right:-3rem !important}.mb-n1{margin-bottom:-0.25rem !important}.mb-n2{margin-bottom:-0.5rem !important}.mb-n3{margin-bottom:-1rem !important}.mb-n4{margin-bottom:-1.5rem !important}.mb-n5{margin-bottom:-3rem !important}.ms-n1{margin-left:-0.25rem !important}.ms-n2{margin-left:-0.5rem !important}.ms-n3{margin-left:-1rem !important}.ms-n4{margin-left:-1.5rem !important}.ms-n5{margin-left:-3rem !important}.p-0{padding:0 !important}.p-1{padding:.25rem !important}.p-2{padding:.5rem !important}.p-3{padding:1rem !important}.p-4{padding:1.5rem !important}.p-5{padding:3rem !important}.px-0{padding-right:0 !important;padding-left:0 !important}.px-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-3{padding-right:1rem !important;padding-left:1rem !important}.px-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-5{padding-right:3rem !important;padding-left:3rem !important}.py-0{padding-top:0 !important;padding-bottom:0 !important}.py-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-0{padding-top:0 !important}.pt-1{padding-top:.25rem !important}.pt-2{padding-top:.5rem !important}.pt-3{padding-top:1rem !important}.pt-4{padding-top:1.5rem !important}.pt-5{padding-top:3rem !important}.pe-0{padding-right:0 !important}.pe-1{padding-right:.25rem !important}.pe-2{padding-right:.5rem !important}.pe-3{padding-right:1rem !important}.pe-4{padding-right:1.5rem !important}.pe-5{padding-right:3rem !important}.pb-0{padding-bottom:0 !important}.pb-1{padding-bottom:.25rem !important}.pb-2{padding-bottom:.5rem !important}.pb-3{padding-bottom:1rem !important}.pb-4{padding-bottom:1.5rem !important}.pb-5{padding-bottom:3rem !important}.ps-0{padding-left:0 !important}.ps-1{padding-left:.25rem !important}.ps-2{padding-left:.5rem !important}.ps-3{padding-left:1rem !important}.ps-4{padding-left:1.5rem !important}.ps-5{padding-left:3rem !important}.gap-0{gap:0 !important}.gap-1{gap:.25rem !important}.gap-2{gap:.5rem !important}.gap-3{gap:1rem !important}.gap-4{gap:1.5rem !important}.gap-5{gap:3rem !important}.row-gap-0{row-gap:0 !important}.row-gap-1{row-gap:.25rem !important}.row-gap-2{row-gap:.5rem !important}.row-gap-3{row-gap:1rem !important}.row-gap-4{row-gap:1.5rem !important}.row-gap-5{row-gap:3rem !important}.column-gap-0{column-gap:0 !important}.column-gap-1{column-gap:.25rem !important}.column-gap-2{column-gap:.5rem !important}.column-gap-3{column-gap:1rem !important}.column-gap-4{column-gap:1.5rem !important}.column-gap-5{column-gap:3rem !important}.font-monospace{font-family:var(--mdb-font-monospace) !important}.fs-1{font-size:calc(1.375rem + 1.5vw) !important}.fs-2{font-size:calc(1.325rem + 0.9vw) !important}.fs-3{font-size:calc(1.3rem + 0.6vw) !important}.fs-4{font-size:calc(1.275rem + 0.3vw) !important}.fs-5{font-size:1.25rem !important}.fs-6{font-size:1rem !important}.fst-italic{font-style:italic !important}.fst-normal{font-style:normal !important}.fw-lighter{font-weight:lighter !important}.fw-light{font-weight:300 !important}.fw-normal{font-weight:400 !important}.fw-medium{font-weight:500 !important}.fw-semibold{font-weight:600 !important}.fw-bold{font-weight:700 !important}.fw-bolder{font-weight:bolder !important}.lh-1{line-height:1 !important}.lh-sm{line-height:1.25 !important}.lh-base{line-height:1.6 !important}.lh-lg{line-height:2 !important}.text-start{text-align:left !important}.text-end{text-align:right !important}.text-center{text-align:center !important}.text-decoration-none{text-decoration:none !important}.text-decoration-underline{text-decoration:underline !important}.text-decoration-line-through{text-decoration:line-through !important}.text-lowercase{text-transform:lowercase !important}.text-uppercase{text-transform:uppercase !important}.text-capitalize{text-transform:capitalize !important}.text-wrap{white-space:normal !important}.text-nowrap{white-space:nowrap !important}.text-break{word-wrap:break-word !important;word-break:break-word !important}.text-primary{--mdb-text-opacity: 1;color:rgba(var(--mdb-primary-rgb), var(--mdb-text-opacity)) !important}.text-secondary{--mdb-text-opacity: 1;color:rgba(var(--mdb-secondary-rgb), var(--mdb-text-opacity)) !important}.text-success{--mdb-text-opacity: 1;color:rgba(var(--mdb-success-rgb), var(--mdb-text-opacity)) !important}.text-danger{--mdb-text-opacity: 1;color:rgba(var(--mdb-danger-rgb), var(--mdb-text-opacity)) !important}.text-warning{--mdb-text-opacity: 1;color:rgba(var(--mdb-warning-rgb), var(--mdb-text-opacity)) !important}.text-info{--mdb-text-opacity: 1;color:rgba(var(--mdb-info-rgb), var(--mdb-text-opacity)) !important}.text-light{--mdb-text-opacity: 1;color:rgba(var(--mdb-light-rgb), var(--mdb-text-opacity)) !important}.text-dark{--mdb-text-opacity: 1;color:rgba(var(--mdb-dark-rgb), var(--mdb-text-opacity)) !important}.text-black{--mdb-text-opacity: 1;color:rgba(var(--mdb-black-rgb), var(--mdb-text-opacity)) !important}.text-white{--mdb-text-opacity: 1;color:rgba(var(--mdb-white-rgb), var(--mdb-text-opacity)) !important}.text-body{--mdb-text-opacity: 1;color:rgba(var(--mdb-body-color-rgb), var(--mdb-text-opacity)) !important}.text-muted{--mdb-text-opacity: 1;color:var(--mdb-secondary-color) !important}.text-black-50{--mdb-text-opacity: 1;color:rgba(0,0,0,.5) !important}.text-white-50{--mdb-text-opacity: 1;color:rgba(255,255,255,.5) !important}.text-body-secondary{--mdb-text-opacity: 1;color:var(--mdb-secondary-color) !important}.text-body-tertiary{--mdb-text-opacity: 1;color:var(--mdb-tertiary-color) !important}.text-body-emphasis{--mdb-text-opacity: 1;color:var(--mdb-emphasis-color) !important}.text-reset{--mdb-text-opacity: 1;color:inherit !important}.text-opacity-25{--mdb-text-opacity: 0.25}.text-opacity-50{--mdb-text-opacity: 0.5}.text-opacity-75{--mdb-text-opacity: 0.75}.text-opacity-100{--mdb-text-opacity: 1}.text-primary-emphasis{color:var(--mdb-primary-text-emphasis) !important}.text-secondary-emphasis{color:var(--mdb-secondary-text-emphasis) !important}.text-success-emphasis{color:var(--mdb-success-text-emphasis) !important}.text-info-emphasis{color:var(--mdb-info-text-emphasis) !important}.text-warning-emphasis{color:var(--mdb-warning-text-emphasis) !important}.text-danger-emphasis{color:var(--mdb-danger-text-emphasis) !important}.text-light-emphasis{color:var(--mdb-light-text-emphasis) !important}.text-dark-emphasis{color:var(--mdb-dark-text-emphasis) !important}.link-opacity-10{--mdb-link-opacity: 0.1}.link-opacity-10-hover:hover{--mdb-link-opacity: 0.1}.link-opacity-25{--mdb-link-opacity: 0.25}.link-opacity-25-hover:hover{--mdb-link-opacity: 0.25}.link-opacity-50{--mdb-link-opacity: 0.5}.link-opacity-50-hover:hover{--mdb-link-opacity: 0.5}.link-opacity-75{--mdb-link-opacity: 0.75}.link-opacity-75-hover:hover{--mdb-link-opacity: 0.75}.link-opacity-100{--mdb-link-opacity: 1}.link-opacity-100-hover:hover{--mdb-link-opacity: 1}.link-offset-1{text-underline-offset:.125em !important}.link-offset-1-hover:hover{text-underline-offset:.125em !important}.link-offset-2{text-underline-offset:.25em !important}.link-offset-2-hover:hover{text-underline-offset:.25em !important}.link-offset-3{text-underline-offset:.375em !important}.link-offset-3-hover:hover{text-underline-offset:.375em !important}.link-underline-primary{--mdb-link-underline-opacity: 1;text-decoration-color:rgba(var(--mdb-primary-rgb), var(--mdb-link-underline-opacity)) !important}.link-underline-secondary{--mdb-link-underline-opacity: 1;text-decoration-color:rgba(var(--mdb-secondary-rgb), var(--mdb-link-underline-opacity)) !important}.link-underline-success{--mdb-link-underline-opacity: 1;text-decoration-color:rgba(var(--mdb-success-rgb), var(--mdb-link-underline-opacity)) !important}.link-underline-danger{--mdb-link-underline-opacity: 1;text-decoration-color:rgba(var(--mdb-danger-rgb), var(--mdb-link-underline-opacity)) !important}.link-underline-warning{--mdb-link-underline-opacity: 1;text-decoration-color:rgba(var(--mdb-warning-rgb), var(--mdb-link-underline-opacity)) !important}.link-underline-info{--mdb-link-underline-opacity: 1;text-decoration-color:rgba(var(--mdb-info-rgb), var(--mdb-link-underline-opacity)) !important}.link-underline-light{--mdb-link-underline-opacity: 1;text-decoration-color:rgba(var(--mdb-light-rgb), var(--mdb-link-underline-opacity)) !important}.link-underline-dark{--mdb-link-underline-opacity: 1;text-decoration-color:rgba(var(--mdb-dark-rgb), var(--mdb-link-underline-opacity)) !important}.link-underline{--mdb-link-underline-opacity: 1;text-decoration-color:rgba(var(--mdb-link-color-rgb), var(--mdb-link-underline-opacity, 1)) !important}.link-underline-opacity-0{--mdb-link-underline-opacity: 0}.link-underline-opacity-0-hover:hover{--mdb-link-underline-opacity: 0}.link-underline-opacity-10{--mdb-link-underline-opacity: 0.1}.link-underline-opacity-10-hover:hover{--mdb-link-underline-opacity: 0.1}.link-underline-opacity-25{--mdb-link-underline-opacity: 0.25}.link-underline-opacity-25-hover:hover{--mdb-link-underline-opacity: 0.25}.link-underline-opacity-50{--mdb-link-underline-opacity: 0.5}.link-underline-opacity-50-hover:hover{--mdb-link-underline-opacity: 0.5}.link-underline-opacity-75{--mdb-link-underline-opacity: 0.75}.link-underline-opacity-75-hover:hover{--mdb-link-underline-opacity: 0.75}.link-underline-opacity-100{--mdb-link-underline-opacity: 1}.link-underline-opacity-100-hover:hover{--mdb-link-underline-opacity: 1}.bg-primary{--mdb-bg-opacity: 1;background-color:rgba(var(--mdb-primary-rgb), var(--mdb-bg-opacity)) !important}.bg-secondary{--mdb-bg-opacity: 1;background-color:rgba(var(--mdb-secondary-rgb), var(--mdb-bg-opacity)) !important}.bg-success{--mdb-bg-opacity: 1;background-color:rgba(var(--mdb-success-rgb), var(--mdb-bg-opacity)) !important}.bg-danger{--mdb-bg-opacity: 1;background-color:rgba(var(--mdb-danger-rgb), var(--mdb-bg-opacity)) !important}.bg-warning{--mdb-bg-opacity: 1;background-color:rgba(var(--mdb-warning-rgb), var(--mdb-bg-opacity)) !important}.bg-info{--mdb-bg-opacity: 1;background-color:rgba(var(--mdb-info-rgb), var(--mdb-bg-opacity)) !important}.bg-light{--mdb-bg-opacity: 1;background-color:rgba(var(--mdb-light-rgb), var(--mdb-bg-opacity)) !important}.bg-dark{--mdb-bg-opacity: 1;background-color:rgba(var(--mdb-dark-rgb), var(--mdb-bg-opacity)) !important}.bg-black{--mdb-bg-opacity: 1;background-color:rgba(var(--mdb-black-rgb), var(--mdb-bg-opacity)) !important}.bg-white{--mdb-bg-opacity: 1;background-color:rgba(var(--mdb-white-rgb), var(--mdb-bg-opacity)) !important}.bg-body{--mdb-bg-opacity: 1;background-color:rgba(var(--mdb-body-bg-rgb), var(--mdb-bg-opacity)) !important}.bg-transparent{--mdb-bg-opacity: 1;background-color:rgba(0,0,0,0) !important}.bg-body-secondary{--mdb-bg-opacity: 1;background-color:rgba(var(--mdb-secondary-bg-rgb), var(--mdb-bg-opacity)) !important}.bg-body-tertiary{--mdb-bg-opacity: 1;background-color:rgba(var(--mdb-tertiary-bg-rgb), var(--mdb-bg-opacity)) !important}.bg-opacity-10{--mdb-bg-opacity: 0.1}.bg-opacity-25{--mdb-bg-opacity: 0.25}.bg-opacity-50{--mdb-bg-opacity: 0.5}.bg-opacity-75{--mdb-bg-opacity: 0.75}.bg-opacity-100{--mdb-bg-opacity: 1}.bg-primary-subtle{background-color:var(--mdb-primary-bg-subtle) !important}.bg-secondary-subtle{background-color:var(--mdb-secondary-bg-subtle) !important}.bg-success-subtle{background-color:var(--mdb-success-bg-subtle) !important}.bg-info-subtle{background-color:var(--mdb-info-bg-subtle) !important}.bg-warning-subtle{background-color:var(--mdb-warning-bg-subtle) !important}.bg-danger-subtle{background-color:var(--mdb-danger-bg-subtle) !important}.bg-light-subtle{background-color:var(--mdb-light-bg-subtle) !important}.bg-dark-subtle{background-color:var(--mdb-dark-bg-subtle) !important}.bg-gradient{background-image:var(--mdb-gradient) !important}.user-select-all{user-select:all !important}.user-select-auto{user-select:auto !important}.user-select-none{user-select:none !important}.pe-none{pointer-events:none !important}.pe-auto{pointer-events:auto !important}.rounded{border-radius:var(--mdb-border-radius) !important}.rounded-0{border-radius:0 !important}.rounded-1{border-radius:var(--mdb-border-radius-sm) !important}.rounded-2{border-radius:var(--mdb-border-radius) !important}.rounded-3{border-radius:var(--mdb-border-radius-lg) !important}.rounded-4{border-radius:.375rem !important}.rounded-5{border-radius:.5rem !important}.rounded-circle{border-radius:50% !important}.rounded-pill{border-radius:var(--mdb-border-radius-pill) !important}.rounded-6{border-radius:.75rem !important}.rounded-7{border-radius:1rem !important}.rounded-8{border-radius:1.25rem !important}.rounded-9{border-radius:1.5rem !important}.rounded-top{border-top-left-radius:var(--mdb-border-radius) !important;border-top-right-radius:var(--mdb-border-radius) !important}.rounded-top-0{border-top-left-radius:0 !important;border-top-right-radius:0 !important}.rounded-top-1{border-top-left-radius:var(--mdb-border-radius-sm) !important;border-top-right-radius:var(--mdb-border-radius-sm) !important}.rounded-top-2{border-top-left-radius:var(--mdb-border-radius) !important;border-top-right-radius:var(--mdb-border-radius) !important}.rounded-top-3{border-top-left-radius:var(--mdb-border-radius-lg) !important;border-top-right-radius:var(--mdb-border-radius-lg) !important}.rounded-top-4{border-top-left-radius:var(--mdb-border-radius-xl) !important;border-top-right-radius:var(--mdb-border-radius-xl) !important}.rounded-top-5{border-top-left-radius:var(--mdb-border-radius-xxl) !important;border-top-right-radius:var(--mdb-border-radius-xxl) !important}.rounded-top-circle{border-top-left-radius:50% !important;border-top-right-radius:50% !important}.rounded-top-pill{border-top-left-radius:var(--mdb-border-radius-pill) !important;border-top-right-radius:var(--mdb-border-radius-pill) !important}.rounded-end{border-top-right-radius:var(--mdb-border-radius) !important;border-bottom-right-radius:var(--mdb-border-radius) !important}.rounded-end-0{border-top-right-radius:0 !important;border-bottom-right-radius:0 !important}.rounded-end-1{border-top-right-radius:var(--mdb-border-radius-sm) !important;border-bottom-right-radius:var(--mdb-border-radius-sm) !important}.rounded-end-2{border-top-right-radius:var(--mdb-border-radius) !important;border-bottom-right-radius:var(--mdb-border-radius) !important}.rounded-end-3{border-top-right-radius:var(--mdb-border-radius-lg) !important;border-bottom-right-radius:var(--mdb-border-radius-lg) !important}.rounded-end-4{border-top-right-radius:var(--mdb-border-radius-xl) !important;border-bottom-right-radius:var(--mdb-border-radius-xl) !important}.rounded-end-5{border-top-right-radius:var(--mdb-border-radius-xxl) !important;border-bottom-right-radius:var(--mdb-border-radius-xxl) !important}.rounded-end-circle{border-top-right-radius:50% !important;border-bottom-right-radius:50% !important}.rounded-end-pill{border-top-right-radius:var(--mdb-border-radius-pill) !important;border-bottom-right-radius:var(--mdb-border-radius-pill) !important}.rounded-bottom{border-bottom-right-radius:var(--mdb-border-radius) !important;border-bottom-left-radius:var(--mdb-border-radius) !important}.rounded-bottom-0{border-bottom-right-radius:0 !important;border-bottom-left-radius:0 !important}.rounded-bottom-1{border-bottom-right-radius:var(--mdb-border-radius-sm) !important;border-bottom-left-radius:var(--mdb-border-radius-sm) !important}.rounded-bottom-2{border-bottom-right-radius:var(--mdb-border-radius) !important;border-bottom-left-radius:var(--mdb-border-radius) !important}.rounded-bottom-3{border-bottom-right-radius:var(--mdb-border-radius-lg) !important;border-bottom-left-radius:var(--mdb-border-radius-lg) !important}.rounded-bottom-4{border-bottom-right-radius:var(--mdb-border-radius-xl) !important;border-bottom-left-radius:var(--mdb-border-radius-xl) !important}.rounded-bottom-5{border-bottom-right-radius:var(--mdb-border-radius-xxl) !important;border-bottom-left-radius:var(--mdb-border-radius-xxl) !important}.rounded-bottom-circle{border-bottom-right-radius:50% !important;border-bottom-left-radius:50% !important}.rounded-bottom-pill{border-bottom-right-radius:var(--mdb-border-radius-pill) !important;border-bottom-left-radius:var(--mdb-border-radius-pill) !important}.rounded-start{border-bottom-left-radius:var(--mdb-border-radius) !important;border-top-left-radius:var(--mdb-border-radius) !important}.rounded-start-0{border-bottom-left-radius:0 !important;border-top-left-radius:0 !important}.rounded-start-1{border-bottom-left-radius:var(--mdb-border-radius-sm) !important;border-top-left-radius:var(--mdb-border-radius-sm) !important}.rounded-start-2{border-bottom-left-radius:var(--mdb-border-radius) !important;border-top-left-radius:var(--mdb-border-radius) !important}.rounded-start-3{border-bottom-left-radius:var(--mdb-border-radius-lg) !important;border-top-left-radius:var(--mdb-border-radius-lg) !important}.rounded-start-4{border-bottom-left-radius:var(--mdb-border-radius-xl) !important;border-top-left-radius:var(--mdb-border-radius-xl) !important}.rounded-start-5{border-bottom-left-radius:var(--mdb-border-radius-xxl) !important;border-top-left-radius:var(--mdb-border-radius-xxl) !important}.rounded-start-circle{border-bottom-left-radius:50% !important;border-top-left-radius:50% !important}.rounded-start-pill{border-bottom-left-radius:var(--mdb-border-radius-pill) !important;border-top-left-radius:var(--mdb-border-radius-pill) !important}.visible{visibility:visible !important}.invisible{visibility:hidden !important}.z-n1{z-index:-1 !important}.z-0{z-index:0 !important}.z-1{z-index:1 !important}.z-2{z-index:2 !important}.z-3{z-index:3 !important}.ls-tighter{letter-spacing:-0.05em !important}.ls-tight{letter-spacing:-0.025em !important}.ls-normal{letter-spacing:0em !important}.ls-wide{letter-spacing:.025em !important}.ls-wider{letter-spacing:.05em !important}.ls-widest{letter-spacing:.1em !important}.object-top{object-position:top !important}.object-center{object-position:center !important}.object-bottom{object-position:bottom !important}@media(min-width: 576px){.float-sm-start{float:left !important}.float-sm-end{float:right !important}.float-sm-none{float:none !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-block{display:block !important}.d-sm-grid{display:grid !important}.d-sm-inline-grid{display:inline-grid !important}.d-sm-table{display:table !important}.d-sm-table-row{display:table-row !important}.d-sm-table-cell{display:table-cell !important}.d-sm-flex{display:flex !important}.d-sm-inline-flex{display:inline-flex !important}.d-sm-none{display:none !important}.flex-sm-fill{flex:1 1 auto !important}.flex-sm-row{flex-direction:row !important}.flex-sm-column{flex-direction:column !important}.flex-sm-row-reverse{flex-direction:row-reverse !important}.flex-sm-column-reverse{flex-direction:column-reverse !important}.flex-sm-grow-0{flex-grow:0 !important}.flex-sm-grow-1{flex-grow:1 !important}.flex-sm-shrink-0{flex-shrink:0 !important}.flex-sm-shrink-1{flex-shrink:1 !important}.flex-sm-wrap{flex-wrap:wrap !important}.flex-sm-nowrap{flex-wrap:nowrap !important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-sm-start{justify-content:flex-start !important}.justify-content-sm-end{justify-content:flex-end !important}.justify-content-sm-center{justify-content:center !important}.justify-content-sm-between{justify-content:space-between !important}.justify-content-sm-around{justify-content:space-around !important}.justify-content-sm-evenly{justify-content:space-evenly !important}.align-items-sm-start{align-items:flex-start !important}.align-items-sm-end{align-items:flex-end !important}.align-items-sm-center{align-items:center !important}.align-items-sm-baseline{align-items:baseline !important}.align-items-sm-stretch{align-items:stretch !important}.align-content-sm-start{align-content:flex-start !important}.align-content-sm-end{align-content:flex-end !important}.align-content-sm-center{align-content:center !important}.align-content-sm-between{align-content:space-between !important}.align-content-sm-around{align-content:space-around !important}.align-content-sm-stretch{align-content:stretch !important}.align-self-sm-auto{align-self:auto !important}.align-self-sm-start{align-self:flex-start !important}.align-self-sm-end{align-self:flex-end !important}.align-self-sm-center{align-self:center !important}.align-self-sm-baseline{align-self:baseline !important}.align-self-sm-stretch{align-self:stretch !important}.order-sm-first{order:-1 !important}.order-sm-0{order:0 !important}.order-sm-1{order:1 !important}.order-sm-2{order:2 !important}.order-sm-3{order:3 !important}.order-sm-4{order:4 !important}.order-sm-5{order:5 !important}.order-sm-last{order:6 !important}.m-sm-0{margin:0 !important}.m-sm-1{margin:.25rem !important}.m-sm-2{margin:.5rem !important}.m-sm-3{margin:1rem !important}.m-sm-4{margin:1.5rem !important}.m-sm-5{margin:3rem !important}.m-sm-auto{margin:auto !important}.mx-sm-0{margin-right:0 !important;margin-left:0 !important}.mx-sm-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-sm-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-sm-3{margin-right:1rem !important;margin-left:1rem !important}.mx-sm-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-sm-5{margin-right:3rem !important;margin-left:3rem !important}.mx-sm-auto{margin-right:auto !important;margin-left:auto !important}.my-sm-0{margin-top:0 !important;margin-bottom:0 !important}.my-sm-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-sm-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-sm-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-sm-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-sm-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-sm-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-sm-0{margin-top:0 !important}.mt-sm-1{margin-top:.25rem !important}.mt-sm-2{margin-top:.5rem !important}.mt-sm-3{margin-top:1rem !important}.mt-sm-4{margin-top:1.5rem !important}.mt-sm-5{margin-top:3rem !important}.mt-sm-auto{margin-top:auto !important}.me-sm-0{margin-right:0 !important}.me-sm-1{margin-right:.25rem !important}.me-sm-2{margin-right:.5rem !important}.me-sm-3{margin-right:1rem !important}.me-sm-4{margin-right:1.5rem !important}.me-sm-5{margin-right:3rem !important}.me-sm-auto{margin-right:auto !important}.mb-sm-0{margin-bottom:0 !important}.mb-sm-1{margin-bottom:.25rem !important}.mb-sm-2{margin-bottom:.5rem !important}.mb-sm-3{margin-bottom:1rem !important}.mb-sm-4{margin-bottom:1.5rem !important}.mb-sm-5{margin-bottom:3rem !important}.mb-sm-auto{margin-bottom:auto !important}.mb-sm-6{margin-bottom:3.5rem !important}.mb-sm-7{margin-bottom:4rem !important}.mb-sm-8{margin-bottom:5rem !important}.mb-sm-9{margin-bottom:6rem !important}.mb-sm-10{margin-bottom:8rem !important}.mb-sm-11{margin-bottom:10rem !important}.mb-sm-12{margin-bottom:12rem !important}.mb-sm-13{margin-bottom:14rem !important}.mb-sm-14{margin-bottom:16rem !important}.ms-sm-0{margin-left:0 !important}.ms-sm-1{margin-left:.25rem !important}.ms-sm-2{margin-left:.5rem !important}.ms-sm-3{margin-left:1rem !important}.ms-sm-4{margin-left:1.5rem !important}.ms-sm-5{margin-left:3rem !important}.ms-sm-auto{margin-left:auto !important}.m-sm-n1{margin:-0.25rem !important}.m-sm-n2{margin:-0.5rem !important}.m-sm-n3{margin:-1rem !important}.m-sm-n4{margin:-1.5rem !important}.m-sm-n5{margin:-3rem !important}.mx-sm-n1{margin-right:-0.25rem !important;margin-left:-0.25rem !important}.mx-sm-n2{margin-right:-0.5rem !important;margin-left:-0.5rem !important}.mx-sm-n3{margin-right:-1rem !important;margin-left:-1rem !important}.mx-sm-n4{margin-right:-1.5rem !important;margin-left:-1.5rem !important}.mx-sm-n5{margin-right:-3rem !important;margin-left:-3rem !important}.my-sm-n1{margin-top:-0.25rem !important;margin-bottom:-0.25rem !important}.my-sm-n2{margin-top:-0.5rem !important;margin-bottom:-0.5rem !important}.my-sm-n3{margin-top:-1rem !important;margin-bottom:-1rem !important}.my-sm-n4{margin-top:-1.5rem !important;margin-bottom:-1.5rem !important}.my-sm-n5{margin-top:-3rem !important;margin-bottom:-3rem !important}.mt-sm-n1{margin-top:-0.25rem !important}.mt-sm-n2{margin-top:-0.5rem !important}.mt-sm-n3{margin-top:-1rem !important}.mt-sm-n4{margin-top:-1.5rem !important}.mt-sm-n5{margin-top:-3rem !important}.me-sm-n1{margin-right:-0.25rem !important}.me-sm-n2{margin-right:-0.5rem !important}.me-sm-n3{margin-right:-1rem !important}.me-sm-n4{margin-right:-1.5rem !important}.me-sm-n5{margin-right:-3rem !important}.mb-sm-n1{margin-bottom:-0.25rem !important}.mb-sm-n2{margin-bottom:-0.5rem !important}.mb-sm-n3{margin-bottom:-1rem !important}.mb-sm-n4{margin-bottom:-1.5rem !important}.mb-sm-n5{margin-bottom:-3rem !important}.ms-sm-n1{margin-left:-0.25rem !important}.ms-sm-n2{margin-left:-0.5rem !important}.ms-sm-n3{margin-left:-1rem !important}.ms-sm-n4{margin-left:-1.5rem !important}.ms-sm-n5{margin-left:-3rem !important}.p-sm-0{padding:0 !important}.p-sm-1{padding:.25rem !important}.p-sm-2{padding:.5rem !important}.p-sm-3{padding:1rem !important}.p-sm-4{padding:1.5rem !important}.p-sm-5{padding:3rem !important}.px-sm-0{padding-right:0 !important;padding-left:0 !important}.px-sm-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-sm-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-sm-3{padding-right:1rem !important;padding-left:1rem !important}.px-sm-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-sm-5{padding-right:3rem !important;padding-left:3rem !important}.py-sm-0{padding-top:0 !important;padding-bottom:0 !important}.py-sm-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-sm-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-sm-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-sm-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-sm-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-sm-0{padding-top:0 !important}.pt-sm-1{padding-top:.25rem !important}.pt-sm-2{padding-top:.5rem !important}.pt-sm-3{padding-top:1rem !important}.pt-sm-4{padding-top:1.5rem !important}.pt-sm-5{padding-top:3rem !important}.pe-sm-0{padding-right:0 !important}.pe-sm-1{padding-right:.25rem !important}.pe-sm-2{padding-right:.5rem !important}.pe-sm-3{padding-right:1rem !important}.pe-sm-4{padding-right:1.5rem !important}.pe-sm-5{padding-right:3rem !important}.pb-sm-0{padding-bottom:0 !important}.pb-sm-1{padding-bottom:.25rem !important}.pb-sm-2{padding-bottom:.5rem !important}.pb-sm-3{padding-bottom:1rem !important}.pb-sm-4{padding-bottom:1.5rem !important}.pb-sm-5{padding-bottom:3rem !important}.ps-sm-0{padding-left:0 !important}.ps-sm-1{padding-left:.25rem !important}.ps-sm-2{padding-left:.5rem !important}.ps-sm-3{padding-left:1rem !important}.ps-sm-4{padding-left:1.5rem !important}.ps-sm-5{padding-left:3rem !important}.gap-sm-0{gap:0 !important}.gap-sm-1{gap:.25rem !important}.gap-sm-2{gap:.5rem !important}.gap-sm-3{gap:1rem !important}.gap-sm-4{gap:1.5rem !important}.gap-sm-5{gap:3rem !important}.row-gap-sm-0{row-gap:0 !important}.row-gap-sm-1{row-gap:.25rem !important}.row-gap-sm-2{row-gap:.5rem !important}.row-gap-sm-3{row-gap:1rem !important}.row-gap-sm-4{row-gap:1.5rem !important}.row-gap-sm-5{row-gap:3rem !important}.column-gap-sm-0{column-gap:0 !important}.column-gap-sm-1{column-gap:.25rem !important}.column-gap-sm-2{column-gap:.5rem !important}.column-gap-sm-3{column-gap:1rem !important}.column-gap-sm-4{column-gap:1.5rem !important}.column-gap-sm-5{column-gap:3rem !important}.text-sm-start{text-align:left !important}.text-sm-end{text-align:right !important}.text-sm-center{text-align:center !important}}@media(min-width: 768px){.float-md-start{float:left !important}.float-md-end{float:right !important}.float-md-none{float:none !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-block{display:block !important}.d-md-grid{display:grid !important}.d-md-inline-grid{display:inline-grid !important}.d-md-table{display:table !important}.d-md-table-row{display:table-row !important}.d-md-table-cell{display:table-cell !important}.d-md-flex{display:flex !important}.d-md-inline-flex{display:inline-flex !important}.d-md-none{display:none !important}.flex-md-fill{flex:1 1 auto !important}.flex-md-row{flex-direction:row !important}.flex-md-column{flex-direction:column !important}.flex-md-row-reverse{flex-direction:row-reverse !important}.flex-md-column-reverse{flex-direction:column-reverse !important}.flex-md-grow-0{flex-grow:0 !important}.flex-md-grow-1{flex-grow:1 !important}.flex-md-shrink-0{flex-shrink:0 !important}.flex-md-shrink-1{flex-shrink:1 !important}.flex-md-wrap{flex-wrap:wrap !important}.flex-md-nowrap{flex-wrap:nowrap !important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-md-start{justify-content:flex-start !important}.justify-content-md-end{justify-content:flex-end !important}.justify-content-md-center{justify-content:center !important}.justify-content-md-between{justify-content:space-between !important}.justify-content-md-around{justify-content:space-around !important}.justify-content-md-evenly{justify-content:space-evenly !important}.align-items-md-start{align-items:flex-start !important}.align-items-md-end{align-items:flex-end !important}.align-items-md-center{align-items:center !important}.align-items-md-baseline{align-items:baseline !important}.align-items-md-stretch{align-items:stretch !important}.align-content-md-start{align-content:flex-start !important}.align-content-md-end{align-content:flex-end !important}.align-content-md-center{align-content:center !important}.align-content-md-between{align-content:space-between !important}.align-content-md-around{align-content:space-around !important}.align-content-md-stretch{align-content:stretch !important}.align-self-md-auto{align-self:auto !important}.align-self-md-start{align-self:flex-start !important}.align-self-md-end{align-self:flex-end !important}.align-self-md-center{align-self:center !important}.align-self-md-baseline{align-self:baseline !important}.align-self-md-stretch{align-self:stretch !important}.order-md-first{order:-1 !important}.order-md-0{order:0 !important}.order-md-1{order:1 !important}.order-md-2{order:2 !important}.order-md-3{order:3 !important}.order-md-4{order:4 !important}.order-md-5{order:5 !important}.order-md-last{order:6 !important}.m-md-0{margin:0 !important}.m-md-1{margin:.25rem !important}.m-md-2{margin:.5rem !important}.m-md-3{margin:1rem !important}.m-md-4{margin:1.5rem !important}.m-md-5{margin:3rem !important}.m-md-auto{margin:auto !important}.mx-md-0{margin-right:0 !important;margin-left:0 !important}.mx-md-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-md-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-md-3{margin-right:1rem !important;margin-left:1rem !important}.mx-md-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-md-5{margin-right:3rem !important;margin-left:3rem !important}.mx-md-auto{margin-right:auto !important;margin-left:auto !important}.my-md-0{margin-top:0 !important;margin-bottom:0 !important}.my-md-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-md-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-md-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-md-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-md-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-md-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-md-0{margin-top:0 !important}.mt-md-1{margin-top:.25rem !important}.mt-md-2{margin-top:.5rem !important}.mt-md-3{margin-top:1rem !important}.mt-md-4{margin-top:1.5rem !important}.mt-md-5{margin-top:3rem !important}.mt-md-auto{margin-top:auto !important}.me-md-0{margin-right:0 !important}.me-md-1{margin-right:.25rem !important}.me-md-2{margin-right:.5rem !important}.me-md-3{margin-right:1rem !important}.me-md-4{margin-right:1.5rem !important}.me-md-5{margin-right:3rem !important}.me-md-auto{margin-right:auto !important}.mb-md-0{margin-bottom:0 !important}.mb-md-1{margin-bottom:.25rem !important}.mb-md-2{margin-bottom:.5rem !important}.mb-md-3{margin-bottom:1rem !important}.mb-md-4{margin-bottom:1.5rem !important}.mb-md-5{margin-bottom:3rem !important}.mb-md-auto{margin-bottom:auto !important}.mb-md-6{margin-bottom:3.5rem !important}.mb-md-7{margin-bottom:4rem !important}.mb-md-8{margin-bottom:5rem !important}.mb-md-9{margin-bottom:6rem !important}.mb-md-10{margin-bottom:8rem !important}.mb-md-11{margin-bottom:10rem !important}.mb-md-12{margin-bottom:12rem !important}.mb-md-13{margin-bottom:14rem !important}.mb-md-14{margin-bottom:16rem !important}.ms-md-0{margin-left:0 !important}.ms-md-1{margin-left:.25rem !important}.ms-md-2{margin-left:.5rem !important}.ms-md-3{margin-left:1rem !important}.ms-md-4{margin-left:1.5rem !important}.ms-md-5{margin-left:3rem !important}.ms-md-auto{margin-left:auto !important}.m-md-n1{margin:-0.25rem !important}.m-md-n2{margin:-0.5rem !important}.m-md-n3{margin:-1rem !important}.m-md-n4{margin:-1.5rem !important}.m-md-n5{margin:-3rem !important}.mx-md-n1{margin-right:-0.25rem !important;margin-left:-0.25rem !important}.mx-md-n2{margin-right:-0.5rem !important;margin-left:-0.5rem !important}.mx-md-n3{margin-right:-1rem !important;margin-left:-1rem !important}.mx-md-n4{margin-right:-1.5rem !important;margin-left:-1.5rem !important}.mx-md-n5{margin-right:-3rem !important;margin-left:-3rem !important}.my-md-n1{margin-top:-0.25rem !important;margin-bottom:-0.25rem !important}.my-md-n2{margin-top:-0.5rem !important;margin-bottom:-0.5rem !important}.my-md-n3{margin-top:-1rem !important;margin-bottom:-1rem !important}.my-md-n4{margin-top:-1.5rem !important;margin-bottom:-1.5rem !important}.my-md-n5{margin-top:-3rem !important;margin-bottom:-3rem !important}.mt-md-n1{margin-top:-0.25rem !important}.mt-md-n2{margin-top:-0.5rem !important}.mt-md-n3{margin-top:-1rem !important}.mt-md-n4{margin-top:-1.5rem !important}.mt-md-n5{margin-top:-3rem !important}.me-md-n1{margin-right:-0.25rem !important}.me-md-n2{margin-right:-0.5rem !important}.me-md-n3{margin-right:-1rem !important}.me-md-n4{margin-right:-1.5rem !important}.me-md-n5{margin-right:-3rem !important}.mb-md-n1{margin-bottom:-0.25rem !important}.mb-md-n2{margin-bottom:-0.5rem !important}.mb-md-n3{margin-bottom:-1rem !important}.mb-md-n4{margin-bottom:-1.5rem !important}.mb-md-n5{margin-bottom:-3rem !important}.ms-md-n1{margin-left:-0.25rem !important}.ms-md-n2{margin-left:-0.5rem !important}.ms-md-n3{margin-left:-1rem !important}.ms-md-n4{margin-left:-1.5rem !important}.ms-md-n5{margin-left:-3rem !important}.p-md-0{padding:0 !important}.p-md-1{padding:.25rem !important}.p-md-2{padding:.5rem !important}.p-md-3{padding:1rem !important}.p-md-4{padding:1.5rem !important}.p-md-5{padding:3rem !important}.px-md-0{padding-right:0 !important;padding-left:0 !important}.px-md-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-md-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-md-3{padding-right:1rem !important;padding-left:1rem !important}.px-md-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-md-5{padding-right:3rem !important;padding-left:3rem !important}.py-md-0{padding-top:0 !important;padding-bottom:0 !important}.py-md-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-md-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-md-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-md-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-md-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-md-0{padding-top:0 !important}.pt-md-1{padding-top:.25rem !important}.pt-md-2{padding-top:.5rem !important}.pt-md-3{padding-top:1rem !important}.pt-md-4{padding-top:1.5rem !important}.pt-md-5{padding-top:3rem !important}.pe-md-0{padding-right:0 !important}.pe-md-1{padding-right:.25rem !important}.pe-md-2{padding-right:.5rem !important}.pe-md-3{padding-right:1rem !important}.pe-md-4{padding-right:1.5rem !important}.pe-md-5{padding-right:3rem !important}.pb-md-0{padding-bottom:0 !important}.pb-md-1{padding-bottom:.25rem !important}.pb-md-2{padding-bottom:.5rem !important}.pb-md-3{padding-bottom:1rem !important}.pb-md-4{padding-bottom:1.5rem !important}.pb-md-5{padding-bottom:3rem !important}.ps-md-0{padding-left:0 !important}.ps-md-1{padding-left:.25rem !important}.ps-md-2{padding-left:.5rem !important}.ps-md-3{padding-left:1rem !important}.ps-md-4{padding-left:1.5rem !important}.ps-md-5{padding-left:3rem !important}.gap-md-0{gap:0 !important}.gap-md-1{gap:.25rem !important}.gap-md-2{gap:.5rem !important}.gap-md-3{gap:1rem !important}.gap-md-4{gap:1.5rem !important}.gap-md-5{gap:3rem !important}.row-gap-md-0{row-gap:0 !important}.row-gap-md-1{row-gap:.25rem !important}.row-gap-md-2{row-gap:.5rem !important}.row-gap-md-3{row-gap:1rem !important}.row-gap-md-4{row-gap:1.5rem !important}.row-gap-md-5{row-gap:3rem !important}.column-gap-md-0{column-gap:0 !important}.column-gap-md-1{column-gap:.25rem !important}.column-gap-md-2{column-gap:.5rem !important}.column-gap-md-3{column-gap:1rem !important}.column-gap-md-4{column-gap:1.5rem !important}.column-gap-md-5{column-gap:3rem !important}.text-md-start{text-align:left !important}.text-md-end{text-align:right !important}.text-md-center{text-align:center !important}}@media(min-width: 992px){.float-lg-start{float:left !important}.float-lg-end{float:right !important}.float-lg-none{float:none !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-block{display:block !important}.d-lg-grid{display:grid !important}.d-lg-inline-grid{display:inline-grid !important}.d-lg-table{display:table !important}.d-lg-table-row{display:table-row !important}.d-lg-table-cell{display:table-cell !important}.d-lg-flex{display:flex !important}.d-lg-inline-flex{display:inline-flex !important}.d-lg-none{display:none !important}.flex-lg-fill{flex:1 1 auto !important}.flex-lg-row{flex-direction:row !important}.flex-lg-column{flex-direction:column !important}.flex-lg-row-reverse{flex-direction:row-reverse !important}.flex-lg-column-reverse{flex-direction:column-reverse !important}.flex-lg-grow-0{flex-grow:0 !important}.flex-lg-grow-1{flex-grow:1 !important}.flex-lg-shrink-0{flex-shrink:0 !important}.flex-lg-shrink-1{flex-shrink:1 !important}.flex-lg-wrap{flex-wrap:wrap !important}.flex-lg-nowrap{flex-wrap:nowrap !important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-lg-start{justify-content:flex-start !important}.justify-content-lg-end{justify-content:flex-end !important}.justify-content-lg-center{justify-content:center !important}.justify-content-lg-between{justify-content:space-between !important}.justify-content-lg-around{justify-content:space-around !important}.justify-content-lg-evenly{justify-content:space-evenly !important}.align-items-lg-start{align-items:flex-start !important}.align-items-lg-end{align-items:flex-end !important}.align-items-lg-center{align-items:center !important}.align-items-lg-baseline{align-items:baseline !important}.align-items-lg-stretch{align-items:stretch !important}.align-content-lg-start{align-content:flex-start !important}.align-content-lg-end{align-content:flex-end !important}.align-content-lg-center{align-content:center !important}.align-content-lg-between{align-content:space-between !important}.align-content-lg-around{align-content:space-around !important}.align-content-lg-stretch{align-content:stretch !important}.align-self-lg-auto{align-self:auto !important}.align-self-lg-start{align-self:flex-start !important}.align-self-lg-end{align-self:flex-end !important}.align-self-lg-center{align-self:center !important}.align-self-lg-baseline{align-self:baseline !important}.align-self-lg-stretch{align-self:stretch !important}.order-lg-first{order:-1 !important}.order-lg-0{order:0 !important}.order-lg-1{order:1 !important}.order-lg-2{order:2 !important}.order-lg-3{order:3 !important}.order-lg-4{order:4 !important}.order-lg-5{order:5 !important}.order-lg-last{order:6 !important}.m-lg-0{margin:0 !important}.m-lg-1{margin:.25rem !important}.m-lg-2{margin:.5rem !important}.m-lg-3{margin:1rem !important}.m-lg-4{margin:1.5rem !important}.m-lg-5{margin:3rem !important}.m-lg-auto{margin:auto !important}.mx-lg-0{margin-right:0 !important;margin-left:0 !important}.mx-lg-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-lg-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-lg-3{margin-right:1rem !important;margin-left:1rem !important}.mx-lg-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-lg-5{margin-right:3rem !important;margin-left:3rem !important}.mx-lg-auto{margin-right:auto !important;margin-left:auto !important}.my-lg-0{margin-top:0 !important;margin-bottom:0 !important}.my-lg-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-lg-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-lg-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-lg-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-lg-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-lg-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-lg-0{margin-top:0 !important}.mt-lg-1{margin-top:.25rem !important}.mt-lg-2{margin-top:.5rem !important}.mt-lg-3{margin-top:1rem !important}.mt-lg-4{margin-top:1.5rem !important}.mt-lg-5{margin-top:3rem !important}.mt-lg-auto{margin-top:auto !important}.me-lg-0{margin-right:0 !important}.me-lg-1{margin-right:.25rem !important}.me-lg-2{margin-right:.5rem !important}.me-lg-3{margin-right:1rem !important}.me-lg-4{margin-right:1.5rem !important}.me-lg-5{margin-right:3rem !important}.me-lg-auto{margin-right:auto !important}.mb-lg-0{margin-bottom:0 !important}.mb-lg-1{margin-bottom:.25rem !important}.mb-lg-2{margin-bottom:.5rem !important}.mb-lg-3{margin-bottom:1rem !important}.mb-lg-4{margin-bottom:1.5rem !important}.mb-lg-5{margin-bottom:3rem !important}.mb-lg-auto{margin-bottom:auto !important}.mb-lg-6{margin-bottom:3.5rem !important}.mb-lg-7{margin-bottom:4rem !important}.mb-lg-8{margin-bottom:5rem !important}.mb-lg-9{margin-bottom:6rem !important}.mb-lg-10{margin-bottom:8rem !important}.mb-lg-11{margin-bottom:10rem !important}.mb-lg-12{margin-bottom:12rem !important}.mb-lg-13{margin-bottom:14rem !important}.mb-lg-14{margin-bottom:16rem !important}.ms-lg-0{margin-left:0 !important}.ms-lg-1{margin-left:.25rem !important}.ms-lg-2{margin-left:.5rem !important}.ms-lg-3{margin-left:1rem !important}.ms-lg-4{margin-left:1.5rem !important}.ms-lg-5{margin-left:3rem !important}.ms-lg-auto{margin-left:auto !important}.m-lg-n1{margin:-0.25rem !important}.m-lg-n2{margin:-0.5rem !important}.m-lg-n3{margin:-1rem !important}.m-lg-n4{margin:-1.5rem !important}.m-lg-n5{margin:-3rem !important}.mx-lg-n1{margin-right:-0.25rem !important;margin-left:-0.25rem !important}.mx-lg-n2{margin-right:-0.5rem !important;margin-left:-0.5rem !important}.mx-lg-n3{margin-right:-1rem !important;margin-left:-1rem !important}.mx-lg-n4{margin-right:-1.5rem !important;margin-left:-1.5rem !important}.mx-lg-n5{margin-right:-3rem !important;margin-left:-3rem !important}.my-lg-n1{margin-top:-0.25rem !important;margin-bottom:-0.25rem !important}.my-lg-n2{margin-top:-0.5rem !important;margin-bottom:-0.5rem !important}.my-lg-n3{margin-top:-1rem !important;margin-bottom:-1rem !important}.my-lg-n4{margin-top:-1.5rem !important;margin-bottom:-1.5rem !important}.my-lg-n5{margin-top:-3rem !important;margin-bottom:-3rem !important}.mt-lg-n1{margin-top:-0.25rem !important}.mt-lg-n2{margin-top:-0.5rem !important}.mt-lg-n3{margin-top:-1rem !important}.mt-lg-n4{margin-top:-1.5rem !important}.mt-lg-n5{margin-top:-3rem !important}.me-lg-n1{margin-right:-0.25rem !important}.me-lg-n2{margin-right:-0.5rem !important}.me-lg-n3{margin-right:-1rem !important}.me-lg-n4{margin-right:-1.5rem !important}.me-lg-n5{margin-right:-3rem !important}.mb-lg-n1{margin-bottom:-0.25rem !important}.mb-lg-n2{margin-bottom:-0.5rem !important}.mb-lg-n3{margin-bottom:-1rem !important}.mb-lg-n4{margin-bottom:-1.5rem !important}.mb-lg-n5{margin-bottom:-3rem !important}.ms-lg-n1{margin-left:-0.25rem !important}.ms-lg-n2{margin-left:-0.5rem !important}.ms-lg-n3{margin-left:-1rem !important}.ms-lg-n4{margin-left:-1.5rem !important}.ms-lg-n5{margin-left:-3rem !important}.p-lg-0{padding:0 !important}.p-lg-1{padding:.25rem !important}.p-lg-2{padding:.5rem !important}.p-lg-3{padding:1rem !important}.p-lg-4{padding:1.5rem !important}.p-lg-5{padding:3rem !important}.px-lg-0{padding-right:0 !important;padding-left:0 !important}.px-lg-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-lg-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-lg-3{padding-right:1rem !important;padding-left:1rem !important}.px-lg-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-lg-5{padding-right:3rem !important;padding-left:3rem !important}.py-lg-0{padding-top:0 !important;padding-bottom:0 !important}.py-lg-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-lg-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-lg-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-lg-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-lg-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-lg-0{padding-top:0 !important}.pt-lg-1{padding-top:.25rem !important}.pt-lg-2{padding-top:.5rem !important}.pt-lg-3{padding-top:1rem !important}.pt-lg-4{padding-top:1.5rem !important}.pt-lg-5{padding-top:3rem !important}.pe-lg-0{padding-right:0 !important}.pe-lg-1{padding-right:.25rem !important}.pe-lg-2{padding-right:.5rem !important}.pe-lg-3{padding-right:1rem !important}.pe-lg-4{padding-right:1.5rem !important}.pe-lg-5{padding-right:3rem !important}.pb-lg-0{padding-bottom:0 !important}.pb-lg-1{padding-bottom:.25rem !important}.pb-lg-2{padding-bottom:.5rem !important}.pb-lg-3{padding-bottom:1rem !important}.pb-lg-4{padding-bottom:1.5rem !important}.pb-lg-5{padding-bottom:3rem !important}.ps-lg-0{padding-left:0 !important}.ps-lg-1{padding-left:.25rem !important}.ps-lg-2{padding-left:.5rem !important}.ps-lg-3{padding-left:1rem !important}.ps-lg-4{padding-left:1.5rem !important}.ps-lg-5{padding-left:3rem !important}.gap-lg-0{gap:0 !important}.gap-lg-1{gap:.25rem !important}.gap-lg-2{gap:.5rem !important}.gap-lg-3{gap:1rem !important}.gap-lg-4{gap:1.5rem !important}.gap-lg-5{gap:3rem !important}.row-gap-lg-0{row-gap:0 !important}.row-gap-lg-1{row-gap:.25rem !important}.row-gap-lg-2{row-gap:.5rem !important}.row-gap-lg-3{row-gap:1rem !important}.row-gap-lg-4{row-gap:1.5rem !important}.row-gap-lg-5{row-gap:3rem !important}.column-gap-lg-0{column-gap:0 !important}.column-gap-lg-1{column-gap:.25rem !important}.column-gap-lg-2{column-gap:.5rem !important}.column-gap-lg-3{column-gap:1rem !important}.column-gap-lg-4{column-gap:1.5rem !important}.column-gap-lg-5{column-gap:3rem !important}.text-lg-start{text-align:left !important}.text-lg-end{text-align:right !important}.text-lg-center{text-align:center !important}}@media(min-width: 1200px){.float-xl-start{float:left !important}.float-xl-end{float:right !important}.float-xl-none{float:none !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-block{display:block !important}.d-xl-grid{display:grid !important}.d-xl-inline-grid{display:inline-grid !important}.d-xl-table{display:table !important}.d-xl-table-row{display:table-row !important}.d-xl-table-cell{display:table-cell !important}.d-xl-flex{display:flex !important}.d-xl-inline-flex{display:inline-flex !important}.d-xl-none{display:none !important}.flex-xl-fill{flex:1 1 auto !important}.flex-xl-row{flex-direction:row !important}.flex-xl-column{flex-direction:column !important}.flex-xl-row-reverse{flex-direction:row-reverse !important}.flex-xl-column-reverse{flex-direction:column-reverse !important}.flex-xl-grow-0{flex-grow:0 !important}.flex-xl-grow-1{flex-grow:1 !important}.flex-xl-shrink-0{flex-shrink:0 !important}.flex-xl-shrink-1{flex-shrink:1 !important}.flex-xl-wrap{flex-wrap:wrap !important}.flex-xl-nowrap{flex-wrap:nowrap !important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-xl-start{justify-content:flex-start !important}.justify-content-xl-end{justify-content:flex-end !important}.justify-content-xl-center{justify-content:center !important}.justify-content-xl-between{justify-content:space-between !important}.justify-content-xl-around{justify-content:space-around !important}.justify-content-xl-evenly{justify-content:space-evenly !important}.align-items-xl-start{align-items:flex-start !important}.align-items-xl-end{align-items:flex-end !important}.align-items-xl-center{align-items:center !important}.align-items-xl-baseline{align-items:baseline !important}.align-items-xl-stretch{align-items:stretch !important}.align-content-xl-start{align-content:flex-start !important}.align-content-xl-end{align-content:flex-end !important}.align-content-xl-center{align-content:center !important}.align-content-xl-between{align-content:space-between !important}.align-content-xl-around{align-content:space-around !important}.align-content-xl-stretch{align-content:stretch !important}.align-self-xl-auto{align-self:auto !important}.align-self-xl-start{align-self:flex-start !important}.align-self-xl-end{align-self:flex-end !important}.align-self-xl-center{align-self:center !important}.align-self-xl-baseline{align-self:baseline !important}.align-self-xl-stretch{align-self:stretch !important}.order-xl-first{order:-1 !important}.order-xl-0{order:0 !important}.order-xl-1{order:1 !important}.order-xl-2{order:2 !important}.order-xl-3{order:3 !important}.order-xl-4{order:4 !important}.order-xl-5{order:5 !important}.order-xl-last{order:6 !important}.m-xl-0{margin:0 !important}.m-xl-1{margin:.25rem !important}.m-xl-2{margin:.5rem !important}.m-xl-3{margin:1rem !important}.m-xl-4{margin:1.5rem !important}.m-xl-5{margin:3rem !important}.m-xl-auto{margin:auto !important}.mx-xl-0{margin-right:0 !important;margin-left:0 !important}.mx-xl-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-xl-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-xl-3{margin-right:1rem !important;margin-left:1rem !important}.mx-xl-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-xl-5{margin-right:3rem !important;margin-left:3rem !important}.mx-xl-auto{margin-right:auto !important;margin-left:auto !important}.my-xl-0{margin-top:0 !important;margin-bottom:0 !important}.my-xl-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-xl-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-xl-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-xl-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-xl-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-xl-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-xl-0{margin-top:0 !important}.mt-xl-1{margin-top:.25rem !important}.mt-xl-2{margin-top:.5rem !important}.mt-xl-3{margin-top:1rem !important}.mt-xl-4{margin-top:1.5rem !important}.mt-xl-5{margin-top:3rem !important}.mt-xl-auto{margin-top:auto !important}.me-xl-0{margin-right:0 !important}.me-xl-1{margin-right:.25rem !important}.me-xl-2{margin-right:.5rem !important}.me-xl-3{margin-right:1rem !important}.me-xl-4{margin-right:1.5rem !important}.me-xl-5{margin-right:3rem !important}.me-xl-auto{margin-right:auto !important}.mb-xl-0{margin-bottom:0 !important}.mb-xl-1{margin-bottom:.25rem !important}.mb-xl-2{margin-bottom:.5rem !important}.mb-xl-3{margin-bottom:1rem !important}.mb-xl-4{margin-bottom:1.5rem !important}.mb-xl-5{margin-bottom:3rem !important}.mb-xl-auto{margin-bottom:auto !important}.mb-xl-6{margin-bottom:3.5rem !important}.mb-xl-7{margin-bottom:4rem !important}.mb-xl-8{margin-bottom:5rem !important}.mb-xl-9{margin-bottom:6rem !important}.mb-xl-10{margin-bottom:8rem !important}.mb-xl-11{margin-bottom:10rem !important}.mb-xl-12{margin-bottom:12rem !important}.mb-xl-13{margin-bottom:14rem !important}.mb-xl-14{margin-bottom:16rem !important}.ms-xl-0{margin-left:0 !important}.ms-xl-1{margin-left:.25rem !important}.ms-xl-2{margin-left:.5rem !important}.ms-xl-3{margin-left:1rem !important}.ms-xl-4{margin-left:1.5rem !important}.ms-xl-5{margin-left:3rem !important}.ms-xl-auto{margin-left:auto !important}.m-xl-n1{margin:-0.25rem !important}.m-xl-n2{margin:-0.5rem !important}.m-xl-n3{margin:-1rem !important}.m-xl-n4{margin:-1.5rem !important}.m-xl-n5{margin:-3rem !important}.mx-xl-n1{margin-right:-0.25rem !important;margin-left:-0.25rem !important}.mx-xl-n2{margin-right:-0.5rem !important;margin-left:-0.5rem !important}.mx-xl-n3{margin-right:-1rem !important;margin-left:-1rem !important}.mx-xl-n4{margin-right:-1.5rem !important;margin-left:-1.5rem !important}.mx-xl-n5{margin-right:-3rem !important;margin-left:-3rem !important}.my-xl-n1{margin-top:-0.25rem !important;margin-bottom:-0.25rem !important}.my-xl-n2{margin-top:-0.5rem !important;margin-bottom:-0.5rem !important}.my-xl-n3{margin-top:-1rem !important;margin-bottom:-1rem !important}.my-xl-n4{margin-top:-1.5rem !important;margin-bottom:-1.5rem !important}.my-xl-n5{margin-top:-3rem !important;margin-bottom:-3rem !important}.mt-xl-n1{margin-top:-0.25rem !important}.mt-xl-n2{margin-top:-0.5rem !important}.mt-xl-n3{margin-top:-1rem !important}.mt-xl-n4{margin-top:-1.5rem !important}.mt-xl-n5{margin-top:-3rem !important}.me-xl-n1{margin-right:-0.25rem !important}.me-xl-n2{margin-right:-0.5rem !important}.me-xl-n3{margin-right:-1rem !important}.me-xl-n4{margin-right:-1.5rem !important}.me-xl-n5{margin-right:-3rem !important}.mb-xl-n1{margin-bottom:-0.25rem !important}.mb-xl-n2{margin-bottom:-0.5rem !important}.mb-xl-n3{margin-bottom:-1rem !important}.mb-xl-n4{margin-bottom:-1.5rem !important}.mb-xl-n5{margin-bottom:-3rem !important}.ms-xl-n1{margin-left:-0.25rem !important}.ms-xl-n2{margin-left:-0.5rem !important}.ms-xl-n3{margin-left:-1rem !important}.ms-xl-n4{margin-left:-1.5rem !important}.ms-xl-n5{margin-left:-3rem !important}.p-xl-0{padding:0 !important}.p-xl-1{padding:.25rem !important}.p-xl-2{padding:.5rem !important}.p-xl-3{padding:1rem !important}.p-xl-4{padding:1.5rem !important}.p-xl-5{padding:3rem !important}.px-xl-0{padding-right:0 !important;padding-left:0 !important}.px-xl-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-xl-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-xl-3{padding-right:1rem !important;padding-left:1rem !important}.px-xl-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-xl-5{padding-right:3rem !important;padding-left:3rem !important}.py-xl-0{padding-top:0 !important;padding-bottom:0 !important}.py-xl-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-xl-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-xl-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-xl-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-xl-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-xl-0{padding-top:0 !important}.pt-xl-1{padding-top:.25rem !important}.pt-xl-2{padding-top:.5rem !important}.pt-xl-3{padding-top:1rem !important}.pt-xl-4{padding-top:1.5rem !important}.pt-xl-5{padding-top:3rem !important}.pe-xl-0{padding-right:0 !important}.pe-xl-1{padding-right:.25rem !important}.pe-xl-2{padding-right:.5rem !important}.pe-xl-3{padding-right:1rem !important}.pe-xl-4{padding-right:1.5rem !important}.pe-xl-5{padding-right:3rem !important}.pb-xl-0{padding-bottom:0 !important}.pb-xl-1{padding-bottom:.25rem !important}.pb-xl-2{padding-bottom:.5rem !important}.pb-xl-3{padding-bottom:1rem !important}.pb-xl-4{padding-bottom:1.5rem !important}.pb-xl-5{padding-bottom:3rem !important}.ps-xl-0{padding-left:0 !important}.ps-xl-1{padding-left:.25rem !important}.ps-xl-2{padding-left:.5rem !important}.ps-xl-3{padding-left:1rem !important}.ps-xl-4{padding-left:1.5rem !important}.ps-xl-5{padding-left:3rem !important}.gap-xl-0{gap:0 !important}.gap-xl-1{gap:.25rem !important}.gap-xl-2{gap:.5rem !important}.gap-xl-3{gap:1rem !important}.gap-xl-4{gap:1.5rem !important}.gap-xl-5{gap:3rem !important}.row-gap-xl-0{row-gap:0 !important}.row-gap-xl-1{row-gap:.25rem !important}.row-gap-xl-2{row-gap:.5rem !important}.row-gap-xl-3{row-gap:1rem !important}.row-gap-xl-4{row-gap:1.5rem !important}.row-gap-xl-5{row-gap:3rem !important}.column-gap-xl-0{column-gap:0 !important}.column-gap-xl-1{column-gap:.25rem !important}.column-gap-xl-2{column-gap:.5rem !important}.column-gap-xl-3{column-gap:1rem !important}.column-gap-xl-4{column-gap:1.5rem !important}.column-gap-xl-5{column-gap:3rem !important}.text-xl-start{text-align:left !important}.text-xl-end{text-align:right !important}.text-xl-center{text-align:center !important}}@media(min-width: 1400px){.float-xxl-start{float:left !important}.float-xxl-end{float:right !important}.float-xxl-none{float:none !important}.d-xxl-inline{display:inline !important}.d-xxl-inline-block{display:inline-block !important}.d-xxl-block{display:block !important}.d-xxl-grid{display:grid !important}.d-xxl-inline-grid{display:inline-grid !important}.d-xxl-table{display:table !important}.d-xxl-table-row{display:table-row !important}.d-xxl-table-cell{display:table-cell !important}.d-xxl-flex{display:flex !important}.d-xxl-inline-flex{display:inline-flex !important}.d-xxl-none{display:none !important}.flex-xxl-fill{flex:1 1 auto !important}.flex-xxl-row{flex-direction:row !important}.flex-xxl-column{flex-direction:column !important}.flex-xxl-row-reverse{flex-direction:row-reverse !important}.flex-xxl-column-reverse{flex-direction:column-reverse !important}.flex-xxl-grow-0{flex-grow:0 !important}.flex-xxl-grow-1{flex-grow:1 !important}.flex-xxl-shrink-0{flex-shrink:0 !important}.flex-xxl-shrink-1{flex-shrink:1 !important}.flex-xxl-wrap{flex-wrap:wrap !important}.flex-xxl-nowrap{flex-wrap:nowrap !important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-xxl-start{justify-content:flex-start !important}.justify-content-xxl-end{justify-content:flex-end !important}.justify-content-xxl-center{justify-content:center !important}.justify-content-xxl-between{justify-content:space-between !important}.justify-content-xxl-around{justify-content:space-around !important}.justify-content-xxl-evenly{justify-content:space-evenly !important}.align-items-xxl-start{align-items:flex-start !important}.align-items-xxl-end{align-items:flex-end !important}.align-items-xxl-center{align-items:center !important}.align-items-xxl-baseline{align-items:baseline !important}.align-items-xxl-stretch{align-items:stretch !important}.align-content-xxl-start{align-content:flex-start !important}.align-content-xxl-end{align-content:flex-end !important}.align-content-xxl-center{align-content:center !important}.align-content-xxl-between{align-content:space-between !important}.align-content-xxl-around{align-content:space-around !important}.align-content-xxl-stretch{align-content:stretch !important}.align-self-xxl-auto{align-self:auto !important}.align-self-xxl-start{align-self:flex-start !important}.align-self-xxl-end{align-self:flex-end !important}.align-self-xxl-center{align-self:center !important}.align-self-xxl-baseline{align-self:baseline !important}.align-self-xxl-stretch{align-self:stretch !important}.order-xxl-first{order:-1 !important}.order-xxl-0{order:0 !important}.order-xxl-1{order:1 !important}.order-xxl-2{order:2 !important}.order-xxl-3{order:3 !important}.order-xxl-4{order:4 !important}.order-xxl-5{order:5 !important}.order-xxl-last{order:6 !important}.m-xxl-0{margin:0 !important}.m-xxl-1{margin:.25rem !important}.m-xxl-2{margin:.5rem !important}.m-xxl-3{margin:1rem !important}.m-xxl-4{margin:1.5rem !important}.m-xxl-5{margin:3rem !important}.m-xxl-auto{margin:auto !important}.mx-xxl-0{margin-right:0 !important;margin-left:0 !important}.mx-xxl-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-xxl-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-xxl-3{margin-right:1rem !important;margin-left:1rem !important}.mx-xxl-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-xxl-5{margin-right:3rem !important;margin-left:3rem !important}.mx-xxl-auto{margin-right:auto !important;margin-left:auto !important}.my-xxl-0{margin-top:0 !important;margin-bottom:0 !important}.my-xxl-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-xxl-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-xxl-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-xxl-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-xxl-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-xxl-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-xxl-0{margin-top:0 !important}.mt-xxl-1{margin-top:.25rem !important}.mt-xxl-2{margin-top:.5rem !important}.mt-xxl-3{margin-top:1rem !important}.mt-xxl-4{margin-top:1.5rem !important}.mt-xxl-5{margin-top:3rem !important}.mt-xxl-auto{margin-top:auto !important}.me-xxl-0{margin-right:0 !important}.me-xxl-1{margin-right:.25rem !important}.me-xxl-2{margin-right:.5rem !important}.me-xxl-3{margin-right:1rem !important}.me-xxl-4{margin-right:1.5rem !important}.me-xxl-5{margin-right:3rem !important}.me-xxl-auto{margin-right:auto !important}.mb-xxl-0{margin-bottom:0 !important}.mb-xxl-1{margin-bottom:.25rem !important}.mb-xxl-2{margin-bottom:.5rem !important}.mb-xxl-3{margin-bottom:1rem !important}.mb-xxl-4{margin-bottom:1.5rem !important}.mb-xxl-5{margin-bottom:3rem !important}.mb-xxl-auto{margin-bottom:auto !important}.mb-xxl-6{margin-bottom:3.5rem !important}.mb-xxl-7{margin-bottom:4rem !important}.mb-xxl-8{margin-bottom:5rem !important}.mb-xxl-9{margin-bottom:6rem !important}.mb-xxl-10{margin-bottom:8rem !important}.mb-xxl-11{margin-bottom:10rem !important}.mb-xxl-12{margin-bottom:12rem !important}.mb-xxl-13{margin-bottom:14rem !important}.mb-xxl-14{margin-bottom:16rem !important}.ms-xxl-0{margin-left:0 !important}.ms-xxl-1{margin-left:.25rem !important}.ms-xxl-2{margin-left:.5rem !important}.ms-xxl-3{margin-left:1rem !important}.ms-xxl-4{margin-left:1.5rem !important}.ms-xxl-5{margin-left:3rem !important}.ms-xxl-auto{margin-left:auto !important}.m-xxl-n1{margin:-0.25rem !important}.m-xxl-n2{margin:-0.5rem !important}.m-xxl-n3{margin:-1rem !important}.m-xxl-n4{margin:-1.5rem !important}.m-xxl-n5{margin:-3rem !important}.mx-xxl-n1{margin-right:-0.25rem !important;margin-left:-0.25rem !important}.mx-xxl-n2{margin-right:-0.5rem !important;margin-left:-0.5rem !important}.mx-xxl-n3{margin-right:-1rem !important;margin-left:-1rem !important}.mx-xxl-n4{margin-right:-1.5rem !important;margin-left:-1.5rem !important}.mx-xxl-n5{margin-right:-3rem !important;margin-left:-3rem !important}.my-xxl-n1{margin-top:-0.25rem !important;margin-bottom:-0.25rem !important}.my-xxl-n2{margin-top:-0.5rem !important;margin-bottom:-0.5rem !important}.my-xxl-n3{margin-top:-1rem !important;margin-bottom:-1rem !important}.my-xxl-n4{margin-top:-1.5rem !important;margin-bottom:-1.5rem !important}.my-xxl-n5{margin-top:-3rem !important;margin-bottom:-3rem !important}.mt-xxl-n1{margin-top:-0.25rem !important}.mt-xxl-n2{margin-top:-0.5rem !important}.mt-xxl-n3{margin-top:-1rem !important}.mt-xxl-n4{margin-top:-1.5rem !important}.mt-xxl-n5{margin-top:-3rem !important}.me-xxl-n1{margin-right:-0.25rem !important}.me-xxl-n2{margin-right:-0.5rem !important}.me-xxl-n3{margin-right:-1rem !important}.me-xxl-n4{margin-right:-1.5rem !important}.me-xxl-n5{margin-right:-3rem !important}.mb-xxl-n1{margin-bottom:-0.25rem !important}.mb-xxl-n2{margin-bottom:-0.5rem !important}.mb-xxl-n3{margin-bottom:-1rem !important}.mb-xxl-n4{margin-bottom:-1.5rem !important}.mb-xxl-n5{margin-bottom:-3rem !important}.ms-xxl-n1{margin-left:-0.25rem !important}.ms-xxl-n2{margin-left:-0.5rem !important}.ms-xxl-n3{margin-left:-1rem !important}.ms-xxl-n4{margin-left:-1.5rem !important}.ms-xxl-n5{margin-left:-3rem !important}.p-xxl-0{padding:0 !important}.p-xxl-1{padding:.25rem !important}.p-xxl-2{padding:.5rem !important}.p-xxl-3{padding:1rem !important}.p-xxl-4{padding:1.5rem !important}.p-xxl-5{padding:3rem !important}.px-xxl-0{padding-right:0 !important;padding-left:0 !important}.px-xxl-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-xxl-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-xxl-3{padding-right:1rem !important;padding-left:1rem !important}.px-xxl-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-xxl-5{padding-right:3rem !important;padding-left:3rem !important}.py-xxl-0{padding-top:0 !important;padding-bottom:0 !important}.py-xxl-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-xxl-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-xxl-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-xxl-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-xxl-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-xxl-0{padding-top:0 !important}.pt-xxl-1{padding-top:.25rem !important}.pt-xxl-2{padding-top:.5rem !important}.pt-xxl-3{padding-top:1rem !important}.pt-xxl-4{padding-top:1.5rem !important}.pt-xxl-5{padding-top:3rem !important}.pe-xxl-0{padding-right:0 !important}.pe-xxl-1{padding-right:.25rem !important}.pe-xxl-2{padding-right:.5rem !important}.pe-xxl-3{padding-right:1rem !important}.pe-xxl-4{padding-right:1.5rem !important}.pe-xxl-5{padding-right:3rem !important}.pb-xxl-0{padding-bottom:0 !important}.pb-xxl-1{padding-bottom:.25rem !important}.pb-xxl-2{padding-bottom:.5rem !important}.pb-xxl-3{padding-bottom:1rem !important}.pb-xxl-4{padding-bottom:1.5rem !important}.pb-xxl-5{padding-bottom:3rem !important}.ps-xxl-0{padding-left:0 !important}.ps-xxl-1{padding-left:.25rem !important}.ps-xxl-2{padding-left:.5rem !important}.ps-xxl-3{padding-left:1rem !important}.ps-xxl-4{padding-left:1.5rem !important}.ps-xxl-5{padding-left:3rem !important}.gap-xxl-0{gap:0 !important}.gap-xxl-1{gap:.25rem !important}.gap-xxl-2{gap:.5rem !important}.gap-xxl-3{gap:1rem !important}.gap-xxl-4{gap:1.5rem !important}.gap-xxl-5{gap:3rem !important}.row-gap-xxl-0{row-gap:0 !important}.row-gap-xxl-1{row-gap:.25rem !important}.row-gap-xxl-2{row-gap:.5rem !important}.row-gap-xxl-3{row-gap:1rem !important}.row-gap-xxl-4{row-gap:1.5rem !important}.row-gap-xxl-5{row-gap:3rem !important}.column-gap-xxl-0{column-gap:0 !important}.column-gap-xxl-1{column-gap:.25rem !important}.column-gap-xxl-2{column-gap:.5rem !important}.column-gap-xxl-3{column-gap:1rem !important}.column-gap-xxl-4{column-gap:1.5rem !important}.column-gap-xxl-5{column-gap:3rem !important}.text-xxl-start{text-align:left !important}.text-xxl-end{text-align:right !important}.text-xxl-center{text-align:center !important}}@media(min-width: 1200px){.fs-1{font-size:2.5rem !important}.fs-2{font-size:2rem !important}.fs-3{font-size:1.75rem !important}.fs-4{font-size:1.5rem !important}}@media print{.d-print-inline{display:inline !important}.d-print-inline-block{display:inline-block !important}.d-print-block{display:block !important}.d-print-grid{display:grid !important}.d-print-inline-grid{display:inline-grid !important}.d-print-table{display:table !important}.d-print-table-row{display:table-row !important}.d-print-table-cell{display:table-cell !important}.d-print-flex{display:flex !important}.d-print-inline-flex{display:inline-flex !important}.d-print-none{display:none !important}}.diagonal-fractions{font-variant-numeric:diagonal-fractions}.bg-super-light{--mdb-bg-super-light: #fbfbfb;background-color:var(--mdb-bg-super-light)}.bg-fixed{background-attachment:fixed}.bg-local{background-attachment:local}.bg-scroll{background-attachment:scroll}.overflow-y-scroll{overflow-y:scroll}.overflow-x-scroll{overflow-x:scroll}.table-fixed{table-layout:fixed}.table-auto{table-layout:auto}.link-primary{transition:color .15s}.link-secondary{transition:color .15s}.link-success{transition:color .15s}.link-danger{transition:color .15s}.link-warning{transition:color .15s}.link-info{transition:color .15s}.link-light{transition:color .15s}.link-dark{transition:color .15s}:root,[data-mdb-theme=light]{--mdb-font-roboto: "Roboto", sans-serif;--mdb-bg-opacity: 1;--mdb-text-hover-opacity: 0.8;--mdb-surface-color: #4f4f4f;--mdb-surface-color-rgb: 79, 79, 79;--mdb-surface-bg: #fff;--mdb-surface-inverted-color: #fff;--mdb-surface-inverted-color-rgb: 255, 255, 255;--mdb-surface-inverted-bg: #6d6d6d;--mdb-divider-color: #f5f5f5;--mdb-divider-blurry-color: hsl(0, 0%, 40%);--mdb-highlight-bg-color: #eeeeee;--mdb-scrollbar-rail-bg: #eeeeee;--mdb-scrollbar-thumb-bg: #9e9e9e;--mdb-picker-header-bg: #3b71ca;--mdb-timepicker-clock-face-bg: var(--mdb-secondary-bg);--mdb-sidenav-backdrop-opacity: 0.1;--mdb-form-control-border-color: #bdbdbd;--mdb-form-control-label-color: #757575;--mdb-form-control-disabled-bg: #e0e0e0;--mdb-box-shadow-color: #000;--mdb-box-shadow-color-rgb: 0, 0, 0;--mdb-stepper-mobile-bg: #fbfbfb}[data-mdb-theme=dark]{color-scheme:dark;--mdb-surface-color: #fff;--mdb-surface-color-rgb: 255, 255, 255;--mdb-surface-bg: #424242;--mdb-surface-inverted-color: #fff;--mdb-surface-inverted-color-rgb: 255, 255, 255;--mdb-surface-inverted-bg: #757575;--mdb-divider-color: rgba(255, 255, 255, 0.12);--mdb-divider-blurry-color: hsl(0, 0%, 70%);--mdb-highlight-bg-color: #3c3c3c;--mdb-scrollbar-rail-bg: #9e9e9e;--mdb-scrollbar-thumb-bg: #eeeeee;--mdb-picker-header-bg: #323232;--mdb-timepicker-clock-face-bg: #616161;--mdb-sidenav-backdrop-opacity: 0.5;--mdb-form-control-border-color: rgba(255, 255, 255, 0.7);--mdb-form-control-label-color: #bdbdbd;--mdb-form-control-disabled-bg: #616161;--mdb-box-shadow-color: #000;--mdb-box-shadow-color-rgb: 0, 0, 0;--mdb-stepper-mobile-bg: #3b3b3b}hr:not([size]).hr{--mdb-divider-height: 2px;--mdb-divider-bg: var(--mdb-divider-color);--mdb-divider-opacity: 1;--mdb-divider-blurry-bg: transparent;--mdb-divider-blurry-bg-image: linear-gradient(90deg, transparent, var(--mdb-divider-blurry-color), transparent);--mdb-divider-blurry-height: 1px;--mdb-divider-blurry-opacity: 0.25;height:var(--mdb-divider-height);background-color:var(--mdb-divider-bg);opacity:var(--mdb-divider-opacity)}hr:not([size]).hr.hr-blurry{background-color:var(--mdb-divider-blurry-bg);background-image:var(--mdb-divider-blurry-bg-image);height:var(--mdb-divider-blurry-height);opacity:var(--mdb-divider-blurry-opacity)}hr:not([size]).vr{height:auto}hr.hr,hr.vr{border-top:none !important}.vr{--mdb-divider-width: 2px;--mdb-divider-bg: var(--mdb-divider-color);--mdb-divider-opacity: 1;width:var(--mdb-divider-width);background-color:var(--mdb-divider-bg);opacity:var(--mdb-divider-opacity)}.vr-blurry{--mdb-divider-blurry-vr-bg-image: linear-gradient(180deg, transparent, var(--mdb-divider-blurry-color), transparent);--mdb-divider-blurry-vr-width: 1px;--mdb-divider-blurry-opacity: 0.25;background-image:var(--mdb-divider-blurry-vr-bg-image);width:var(--mdb-divider-blurry-vr-width);opacity:var(--mdb-divider-blurry-opacity)}a{--mdb-link-decoration: none;text-decoration:var(--mdb-link-decoration)}.note{--mdb-note-padding: 10px;--mdb-note-border-width: 6px;--mdb-note-border-radius: 5px;--mdb-note-strong-font-weight: 600;padding:var(--mdb-note-padding);border-left:var(--mdb-note-border-width) solid;border-radius:var(--mdb-note-border-radius)}.note strong{font-weight:var(--mdb-note-strong-font-weight)}.note-primary{background-color:var(--mdb-primary-bg-subtle);color:var(--mdb-primary-text-emphasis)}.note-secondary{background-color:var(--mdb-secondary-bg-subtle);color:var(--mdb-secondary-text-emphasis)}.note-success{background-color:var(--mdb-success-bg-subtle);color:var(--mdb-success-text-emphasis)}.note-danger{background-color:var(--mdb-danger-bg-subtle);color:var(--mdb-danger-text-emphasis)}.note-warning{background-color:var(--mdb-warning-bg-subtle);color:var(--mdb-warning-text-emphasis)}.note-info{background-color:var(--mdb-info-bg-subtle);color:var(--mdb-info-text-emphasis)}.note-light{background-color:var(--mdb-light-bg-subtle);color:var(--mdb-light-text-emphasis)}.note-dark{background-color:var(--mdb-dark-bg-subtle);color:var(--mdb-dark-text-emphasis)}@media(min-width: 1199px){.w-responsive{width:75%}}.bg-primary{--mdb--bg-opacity: 1;background-color:rgba(59, 113, 202, var(--mdb--bg-opacity))}.bg-secondary{--mdb--bg-opacity: 1;background-color:rgba(159, 166, 178, var(--mdb--bg-opacity))}.bg-success{--mdb--bg-opacity: 1;background-color:rgba(20, 164, 77, var(--mdb--bg-opacity))}.bg-danger{--mdb--bg-opacity: 1;background-color:rgba(220, 76, 100, var(--mdb--bg-opacity))}.bg-warning{--mdb--bg-opacity: 1;background-color:rgba(228, 161, 27, var(--mdb--bg-opacity))}.bg-info{--mdb--bg-opacity: 1;background-color:rgba(84, 180, 211, var(--mdb--bg-opacity))}.bg-light{--mdb--bg-opacity: 1;background-color:rgba(251, 251, 251, var(--mdb--bg-opacity))}.bg-dark{--mdb--bg-opacity: 1;background-color:rgba(51, 45, 45, var(--mdb--bg-opacity))}/*! - * # Semantic UI 2.4.2 - Flag - * http://github.com/semantic-org/semantic-ui/ - * - * - * Released under the MIT license - * http://opensource.org/licenses/MIT - * - */#mdb-table-flag tr{cursor:pointer}.mdb-flag-selected{border-top-left-radius:5px;border-top-right-radius:5px;text-align:center;max-width:150px;margin:0 auto;margin-top:10px}.mdb-selected-flag-text{margin:0 auto;max-width:150px}i.flag:not(.icon){display:inline-block;width:16px;height:11px;margin:0 .5em 0 0;line-height:11px;text-decoration:inherit;vertical-align:baseline;backface-visibility:hidden}i.flag::before{display:inline-block;width:16px;height:11px;content:"";background:url("https://mdbootstrap.com/img/svg/flags.png") no-repeat -108px -1976px}i.flag-ad:before,i.flag-andorra:before{background-position:0 0 !important}i.flag-ae:before,i.flag-united-arab-emirates:before,i.flag-uae:before{background-position:0 -26px !important}i.flag-af:before,i.flag-afghanistan:before{background-position:0 -52px !important}i.flag-ag:before,i.flag-antigua:before{background-position:0 -78px !important}i.flag-ai:before,i.flag-anguilla:before{background-position:0 -104px !important}i.flag-al:before,i.flag-albania:before{background-position:0 -130px !important}i.flag-am:before,i.flag-armenia:before{background-position:0 -156px !important}i.flag-an:before,i.flag-netherlands-antilles:before{background-position:0 -182px !important}i.flag-ao:before,i.flag-angola:before{background-position:0 -208px !important}i.flag-ar:before,i.flag-argentina:before{background-position:0 -234px !important}i.flag-as:before,i.flag-american-samoa:before{background-position:0 -260px !important}i.flag-at:before,i.flag-austria:before{background-position:0 -286px !important}i.flag-au:before,i.flag-australia:before{background-position:0 -312px !important}i.flag-aw:before,i.flag-aruba:before{background-position:0 -338px !important}i.flag-ax:before,i.flag-aland-islands:before{background-position:0 -364px !important}i.flag-az:before,i.flag-azerbaijan:before{background-position:0 -390px !important}i.flag-ba:before,i.flag-bosnia:before{background-position:0 -416px !important}i.flag-bb:before,i.flag-barbados:before{background-position:0 -442px !important}i.flag-bd:before,i.flag-bangladesh:before{background-position:0 -468px !important}i.flag-be:before,i.flag-belgium:before{background-position:0 -494px !important}i.flag-bf:before,i.flag-burkina-faso:before{background-position:0 -520px !important}i.flag-bg:before,i.flag-bulgaria:before{background-position:0 -546px !important}i.flag-bh:before,i.flag-bahrain:before{background-position:0 -572px !important}i.flag-bi:before,i.flag-burundi:before{background-position:0 -598px !important}i.flag-bj:before,i.flag-benin:before{background-position:0 -624px !important}i.flag-bm:before,i.flag-bermuda:before{background-position:0 -650px !important}i.flag-bn:before,i.flag-brunei:before{background-position:0 -676px !important}i.flag-bo:before,i.flag-bolivia:before{background-position:0 -702px !important}i.flag-br:before,i.flag-brazil:before{background-position:0 -728px !important}i.flag-bs:before,i.flag-bahamas:before{background-position:0 -754px !important}i.flag-bt:before,i.flag-bhutan:before{background-position:0 -780px !important}i.flag-bv:before,i.flag-bouvet-island:before{background-position:0 -806px !important}i.flag-bw:before,i.flag-botswana:before{background-position:0 -832px !important}i.flag-by:before,i.flag-belarus:before{background-position:0 -858px !important}i.flag-bz:before,i.flag-belize:before{background-position:0 -884px !important}i.flag-ca:before,i.flag-canada:before{background-position:0 -910px !important}i.flag-cc:before,i.flag-cocos-islands:before{background-position:0 -962px !important}i.flag-cd:before,i.flag-congo:before{background-position:0 -988px !important}i.flag-cf:before,i.flag-central-african-republic:before{background-position:0 -1014px !important}i.flag-cg:before,i.flag-congo-brazzaville:before{background-position:0 -1040px !important}i.flag-ch:before,i.flag-switzerland:before{background-position:0 -1066px !important}i.flag-ci:before,i.flag-cote-divoire:before{background-position:0 -1092px !important}i.flag-ck:before,i.flag-cook-islands:before{background-position:0 -1118px !important}i.flag-cl:before,i.flag-chile:before{background-position:0 -1144px !important}i.flag-cm:before,i.flag-cameroon:before{background-position:0 -1170px !important}i.flag-cn:before,i.flag-china:before{background-position:0 -1196px !important}i.flag-co:before,i.flag-colombia:before{background-position:0 -1222px !important}i.flag-cr:before,i.flag-costa-rica:before{background-position:0 -1248px !important}i.flag-cs:before,i.flag-serbia:before{background-position:0 -1274px !important}i.flag-cu:before,i.flag-cuba:before{background-position:0 -1300px !important}i.flag-cv:before,i.flag-cape-verde:before{background-position:0 -1326px !important}i.flag-cx:before,i.flag-christmas-island:before{background-position:0 -1352px !important}i.flag-cy:before,i.flag-cyprus:before{background-position:0 -1378px !important}i.flag-cz:before,i.flag-czech-republic:before{background-position:0 -1404px !important}i.flag-de:before,i.flag-germany:before{background-position:0 -1430px !important}i.flag-dj:before,i.flag-djibouti:before{background-position:0 -1456px !important}i.flag-dk:before,i.flag-denmark:before{background-position:0 -1482px !important}i.flag-dm:before,i.flag-dominica:before{background-position:0 -1508px !important}i.flag-do:before,i.flag-dominican-republic:before{background-position:0 -1534px !important}i.flag-dz:before,i.flag-algeria:before{background-position:0 -1560px !important}i.flag-ec:before,i.flag-ecuador:before{background-position:0 -1586px !important}i.flag-ee:before,i.flag-estonia:before{background-position:0 -1612px !important}i.flag-eg:before,i.flag-egypt:before{background-position:0 -1638px !important}i.flag-eh:before,i.flag-western-sahara:before{background-position:0 -1664px !important}i.flag-gb-eng:before,i.flag-england:before{background-position:0 -1690px !important}i.flag-er:before,i.flag-eritrea:before{background-position:0 -1716px !important}i.flag-es:before,i.flag-spain:before{background-position:0 -1742px !important}i.flag-et:before,i.flag-ethiopia:before{background-position:0 -1768px !important}i.flag-eu:before,i.flag-european-union:before{background-position:0 -1794px !important}i.flag-fi:before,i.flag-finland:before{background-position:0 -1846px !important}i.flag-fj:before,i.flag-fiji:before{background-position:0 -1872px !important}i.flag-fk:before,i.flag-falkland-islands:before{background-position:0 -1898px !important}i.flag-fm:before,i.flag-micronesia:before{background-position:0 -1924px !important}i.flag-fo:before,i.flag-faroe-islands:before{background-position:0 -1950px !important}i.flag-fr:before,i.flag-france:before{background-position:0 -1976px !important}i.flag-ga:before,i.flag-gabon:before{background-position:-36px 0 !important}i.flag-gb:before,i.flag-uk:before,i.flag-united-kingdom:before{background-position:-36px -26px !important}i.flag-gd:before,i.flag-grenada:before{background-position:-36px -52px !important}i.flag-ge:before,i.flag-georgia:before{background-position:-36px -78px !important}i.flag-gf:before,i.flag-french-guiana:before{background-position:-36px -104px !important}i.flag-gh:before,i.flag-ghana:before{background-position:-36px -130px !important}i.flag-gi:before,i.flag-gibraltar:before{background-position:-36px -156px !important}i.flag-gl:before,i.flag-greenland:before{background-position:-36px -182px !important}i.flag-gm:before,i.flag-gambia:before{background-position:-36px -208px !important}i.flag-gn:before,i.flag-guinea:before{background-position:-36px -234px !important}i.flag-gp:before,i.flag-guadeloupe:before{background-position:-36px -260px !important}i.flag-gq:before,i.flag-equatorial-guinea:before{background-position:-36px -286px !important}i.flag-gr:before,i.flag-greece:before{background-position:-36px -312px !important}i.flag-gs:before,i.flag-sandwich-islands:before{background-position:-36px -338px !important}i.flag-gt:before,i.flag-guatemala:before{background-position:-36px -364px !important}i.flag-gu:before,i.flag-guam:before{background-position:-36px -390px !important}i.flag-gw:before,i.flag-guinea-bissau:before{background-position:-36px -416px !important}i.flag-gy:before,i.flag-guyana:before{background-position:-36px -442px !important}i.flag-hk:before,i.flag-hong-kong:before{background-position:-36px -468px !important}i.flag-hm:before,i.flag-heard-island:before{background-position:-36px -494px !important}i.flag-hn:before,i.flag-honduras:before{background-position:-36px -520px !important}i.flag-hr:before,i.flag-croatia:before{background-position:-36px -546px !important}i.flag-ht:before,i.flag-haiti:before{background-position:-36px -572px !important}i.flag-hu:before,i.flag-hungary:before{background-position:-36px -598px !important}i.flag-id:before,i.flag-indonesia:before{background-position:-36px -624px !important}i.flag-ie:before,i.flag-ireland:before{background-position:-36px -650px !important}i.flag-il:before,i.flag-israel:before{background-position:-36px -676px !important}i.flag-in:before,i.flag-india:before{background-position:-36px -702px !important}i.flag-io:before,i.flag-indian-ocean-territory:before{background-position:-36px -728px !important}i.flag-iq:before,i.flag-iraq:before{background-position:-36px -754px !important}i.flag-ir:before,i.flag-iran:before{background-position:-36px -780px !important}i.flag-is:before,i.flag-iceland:before{background-position:-36px -806px !important}i.flag-it:before,i.flag-italy:before{background-position:-36px -832px !important}i.flag-jm:before,i.flag-jamaica:before{background-position:-36px -858px !important}i.flag-jo:before,i.flag-jordan:before{background-position:-36px -884px !important}i.flag-jp:before,i.flag-japan:before{background-position:-36px -910px !important}i.flag-ke:before,i.flag-kenya:before{background-position:-36px -936px !important}i.flag-kg:before,i.flag-kyrgyzstan:before{background-position:-36px -962px !important}i.flag-kh:before,i.flag-cambodia:before{background-position:-36px -988px !important}i.flag-ki:before,i.flag-kiribati:before{background-position:-36px -1014px !important}i.flag-km:before,i.flag-comoros:before{background-position:-36px -1040px !important}i.flag-kn:before,i.flag-saint-kitts-and-nevis:before{background-position:-36px -1066px !important}i.flag-kp:before,i.flag-north-korea:before{background-position:-36px -1092px !important}i.flag-kr:before,i.flag-south-korea:before{background-position:-36px -1118px !important}i.flag-kw:before,i.flag-kuwait:before{background-position:-36px -1144px !important}i.flag-ky:before,i.flag-cayman-islands:before{background-position:-36px -1170px !important}i.flag-kz:before,i.flag-kazakhstan:before{background-position:-36px -1196px !important}i.flag-la:before,i.flag-laos:before{background-position:-36px -1222px !important}i.flag-lb:before,i.flag-lebanon:before{background-position:-36px -1248px !important}i.flag-lc:before,i.flag-saint-lucia:before{background-position:-36px -1274px !important}i.flag-li:before,i.flag-liechtenstein:before{background-position:-36px -1300px !important}i.flag-lk:before,i.flag-sri-lanka:before{background-position:-36px -1326px !important}i.flag-lr:before,i.flag-liberia:before{background-position:-36px -1352px !important}i.flag-ls:before,i.flag-lesotho:before{background-position:-36px -1378px !important}i.flag-lt:before,i.flag-lithuania:before{background-position:-36px -1404px !important}i.flag-lu:before,i.flag-luxembourg:before{background-position:-36px -1430px !important}i.flag-lv:before,i.flag-latvia:before{background-position:-36px -1456px !important}i.flag-ly:before,i.flag-libya:before{background-position:-36px -1482px !important}i.flag-ma:before,i.flag-morocco:before{background-position:-36px -1508px !important}i.flag-mc:before,i.flag-monaco:before{background-position:-36px -1534px !important}i.flag-md:before,i.flag-moldova:before{background-position:-36px -1560px !important}i.flag-me:before,i.flag-montenegro:before{background-position:-36px -1586px !important}i.flag-mg:before,i.flag-madagascar:before{background-position:-36px -1613px !important}i.flag-mh:before,i.flag-marshall-islands:before{background-position:-36px -1639px !important}i.flag-mk:before,i.flag-macedonia:before{background-position:-36px -1665px !important}i.flag-ml:before,i.flag-mali:before{background-position:-36px -1691px !important}i.flag-mm:before,i.flag-myanmar:before,i.flag-burma:before{background-position:-73px -1821px !important}i.flag-mn:before,i.flag-mongolia:before{background-position:-36px -1743px !important}i.flag-mo:before,i.flag-macau:before{background-position:-36px -1769px !important}i.flag-mp:before,i.flag-northern-mariana-islands:before{background-position:-36px -1795px !important}i.flag-mq:before,i.flag-martinique:before{background-position:-36px -1821px !important}i.flag-mr:before,i.flag-mauritania:before{background-position:-36px -1847px !important}i.flag-ms:before,i.flag-montserrat:before{background-position:-36px -1873px !important}i.flag-mt:before,i.flag-malta:before{background-position:-36px -1899px !important}i.flag-mu:before,i.flag-mauritius:before{background-position:-36px -1925px !important}i.flag-mv:before,i.flag-maldives:before{background-position:-36px -1951px !important}i.flag-mw:before,i.flag-malawi:before{background-position:-36px -1977px !important}i.flag-mx:before,i.flag-mexico:before{background-position:-72px 0 !important}i.flag-my:before,i.flag-malaysia:before{background-position:-72px -26px !important}i.flag-mz:before,i.flag-mozambique:before{background-position:-72px -52px !important}i.flag-na:before,i.flag-namibia:before{background-position:-72px -78px !important}i.flag-nc:before,i.flag-new-caledonia:before{background-position:-72px -104px !important}i.flag-ne:before,i.flag-niger:before{background-position:-72px -130px !important}i.flag-nf:before,i.flag-norfolk-island:before{background-position:-72px -156px !important}i.flag-ng:before,i.flag-nigeria:before{background-position:-72px -182px !important}i.flag-ni:before,i.flag-nicaragua:before{background-position:-72px -208px !important}i.flag-nl:before,i.flag-netherlands:before{background-position:-72px -234px !important}i.flag-no:before,i.flag-norway:before{background-position:-72px -260px !important}i.flag-np:before,i.flag-nepal:before{background-position:-72px -286px !important}i.flag-nr:before,i.flag-nauru:before{background-position:-72px -312px !important}i.flag-nu:before,i.flag-niue:before{background-position:-72px -338px !important}i.flag-nz:before,i.flag-new-zealand:before{background-position:-72px -364px !important}i.flag-om:before,i.flag-oman:before{background-position:-72px -390px !important}i.flag-pa:before,i.flag-panama:before{background-position:-72px -416px !important}i.flag-pe:before,i.flag-peru:before{background-position:-72px -442px !important}i.flag-pf:before,i.flag-french-polynesia:before{background-position:-72px -468px !important}i.flag-pg:before,i.flag-new-guinea:before{background-position:-72px -494px !important}i.flag-ph:before,i.flag-philippines:before{background-position:-72px -520px !important}i.flag-pk:before,i.flag-pakistan:before{background-position:-72px -546px !important}i.flag-pl:before,i.flag-poland:before{background-position:-72px -572px !important}i.flag-pm:before,i.flag-saint-pierre:before{background-position:-72px -598px !important}i.flag-pn:before,i.flag-pitcairn-islands:before{background-position:-72px -624px !important}i.flag-pr:before,i.flag-puerto-rico:before{background-position:-72px -650px !important}i.flag-ps:before,i.flag-palestine:before{background-position:-72px -676px !important}i.flag-pt:before,i.flag-portugal:before{background-position:-72px -702px !important}i.flag-pw:before,i.flag-palau:before{background-position:-72px -728px !important}i.flag-py:before,i.flag-paraguay:before{background-position:-72px -754px !important}i.flag-qa:before,i.flag-qatar:before{background-position:-72px -780px !important}i.flag-re:before,i.flag-reunion:before{background-position:-72px -806px !important}i.flag-ro:before,i.flag-romania:before{background-position:-72px -832px !important}i.flag-rs:before,i.flag-serbia:before{background-position:-72px -858px !important}i.flag-ru:before,i.flag-russia:before{background-position:-72px -884px !important}i.flag-rw:before,i.flag-rwanda:before{background-position:-72px -910px !important}i.flag-sa:before,i.flag-saudi-arabia:before{background-position:-72px -936px !important}i.flag-sb:before,i.flag-solomon-islands:before{background-position:-72px -962px !important}i.flag-sc:before,i.flag-seychelles:before{background-position:-72px -988px !important}i.flag-gb-sct:before,i.flag-scotland:before{background-position:-72px -1014px !important}i.flag-sd:before,i.flag-sudan:before{background-position:-72px -1040px !important}i.flag-se:before,i.flag-sweden:before{background-position:-72px -1066px !important}i.flag-sg:before,i.flag-singapore:before{background-position:-72px -1092px !important}i.flag-sh:before,i.flag-saint-helena:before{background-position:-72px -1118px !important}i.flag-si:before,i.flag-slovenia:before{background-position:-72px -1144px !important}i.flag-sj:before,i.flag-svalbard:before,i.flag-jan-mayen:before{background-position:-72px -1170px !important}i.flag-sk:before,i.flag-slovakia:before{background-position:-72px -1196px !important}i.flag-sl:before,i.flag-sierra-leone:before{background-position:-72px -1222px !important}i.flag-sm:before,i.flag-san-marino:before{background-position:-72px -1248px !important}i.flag-sn:before,i.flag-senegal:before{background-position:-72px -1274px !important}i.flag-so:before,i.flag-somalia:before{background-position:-72px -1300px !important}i.flag-sr:before,i.flag-suriname:before{background-position:-72px -1326px !important}i.flag-st:before,i.flag-sao-tome:before{background-position:-72px -1352px !important}i.flag-sv:before,i.flag-el-salvador:before{background-position:-72px -1378px !important}i.flag-sy:before,i.flag-syria:before{background-position:-72px -1404px !important}i.flag-sz:before,i.flag-swaziland:before{background-position:-72px -1430px !important}i.flag-tc:before,i.flag-caicos-islands:before{background-position:-72px -1456px !important}i.flag-td:before,i.flag-chad:before{background-position:-72px -1482px !important}i.flag-tf:before,i.flag-french-territories:before{background-position:-72px -1508px !important}i.flag-tg:before,i.flag-togo:before{background-position:-72px -1534px !important}i.flag-th:before,i.flag-thailand:before{background-position:-72px -1560px !important}i.flag-tj:before,i.flag-tajikistan:before{background-position:-72px -1586px !important}i.flag-tk:before,i.flag-tokelau:before{background-position:-72px -1612px !important}i.flag-tl:before,i.flag-timorleste:before{background-position:-72px -1638px !important}i.flag-tm:before,i.flag-turkmenistan:before{background-position:-72px -1664px !important}i.flag-tn:before,i.flag-tunisia:before{background-position:-72px -1690px !important}i.flag-to:before,i.flag-tonga:before{background-position:-72px -1716px !important}i.flag-tr:before,i.flag-turkey:before{background-position:-72px -1742px !important}i.flag-tt:before,i.flag-trinidad:before{background-position:-72px -1768px !important}i.flag-tv:before,i.flag-tuvalu:before{background-position:-72px -1794px !important}i.flag-tw:before,i.flag-taiwan:before{background-position:-72px -1820px !important}i.flag-tz:before,i.flag-tanzania:before{background-position:-72px -1846px !important}i.flag-ua:before,i.flag-ukraine:before{background-position:-72px -1872px !important}i.flag-ug:before,i.flag-uganda:before{background-position:-72px -1898px !important}i.flag-um:before,i.flag-us-minor-islands:before{background-position:-72px -1924px !important}i.flag-us:before,i.flag-america:before,i.flag-united-states:before{background-position:-72px -1950px !important}i.flag-uy:before,i.flag-uruguay:before{background-position:-72px -1976px !important}i.flag-uz:before,i.flag-uzbekistan:before{background-position:-108px 0 !important}i.flag-va:before,i.flag-vatican-city:before{background-position:-108px -26px !important}i.flag-vc:before,i.flag-saint-vincent:before{background-position:-108px -52px !important}i.flag-ve:before,i.flag-venezuela:before{background-position:-108px -78px !important}i.flag-vg:before,i.flag-british-virgin-islands:before{background-position:-108px -104px !important}i.flag-vi:before,i.flag-us-virgin-islands:before{background-position:-108px -130px !important}i.flag-vn:before,i.flag-vietnam:before{background-position:-108px -156px !important}i.flag-vu:before,i.flag-vanuatu:before{background-position:-108px -182px !important}i.flag-gb-wls:before,i.flag-wales:before{background-position:-108px -208px !important}i.flag-wf:before,i.flag-wallis-and-futuna:before{background-position:-108px -234px !important}i.flag-ws:before,i.flag-samoa:before{background-position:-108px -260px !important}i.flag-ye:before,i.flag-yemen:before{background-position:-108px -286px !important}i.flag-yt:before,i.flag-mayotte:before{background-position:-108px -312px !important}i.flag-za:before,i.flag-south-africa:before{background-position:-108px -338px !important}i.flag-zm:before,i.flag-zambia:before{background-position:-108px -364px !important}i.flag-zw:before,i.flag-zimbabwe:before{background-position:-108px -390px !important}.bg-fixed{background-attachment:fixed}.bg-image{position:relative;overflow:hidden;background-repeat:no-repeat;background-size:cover;background-position:center center}.mask{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:hidden;background-attachment:fixed}.hover-overlay .mask{--mdb-image-hover-transition: all 0.3s ease-in-out;opacity:0;transition:var(--mdb-image-hover-transition)}.hover-overlay .mask:hover{opacity:1}.hover-zoom{--mdb-image-hover-zoom-transition: all 0.3s linear;--mdb-image-hover-zoom-transform: scale(1.1)}.hover-zoom img,.hover-zoom video{transition:var(--mdb-image-hover-zoom-transition)}.hover-zoom:hover img,.hover-zoom:hover video{transform:var(--mdb-image-hover-zoom-transform)}.hover-shadow,.card.hover-shadow,.hover-shadow-soft,.card.hover-shadow-soft{--mdb-image-hover-shadow-transition: all 0.3s ease-in-out;transition:var(--mdb-image-hover-shadow-transition)}.hover-shadow:hover,.card.hover-shadow:hover,.hover-shadow-soft:hover,.card.hover-shadow-soft:hover{transition:var(--mdb-image-hover-shadow-transition)}.hover-shadow,.card.hover-shadow{--mdb-image-hover-shadow-box-shadow: 0 2px 15px -3px rgba(var(--mdb-box-shadow-color-rgb), 0.16), 0 10px 20px -2px rgba(var(--mdb-box-shadow-color-rgb), 0.1);box-shadow:none}.hover-shadow:hover,.card.hover-shadow:hover{box-shadow:var(--mdb-image-hover-shadow-box-shadow)}.hover-shadow-soft,.card.hover-shadow-soft{--mdb-image-hover-shadow-box-shadow-soft: 0 2px 25px -5px rgba(var(--mdb-box-shadow-color-rgb), 0.07), 0 25px 21px -5px rgba(var(--mdb-box-shadow-color-rgb), 0.04);box-shadow:none}.hover-shadow-soft:hover,.card.hover-shadow-soft:hover{box-shadow:var(--mdb-image-hover-shadow-box-shadow-soft)}.form-control{min-height:auto;padding:4.5px 12px 3.68px 12px;transition:all .1s linear;box-shadow:none}.form-control:focus{box-shadow:none;transition:all .1s linear;border-color:#3b71ca;box-shadow:inset 0px 0px 0px 1px #3b71ca}.form-control.form-control-sm{font-size:.775rem;line-height:1.5}.form-control.form-control-lg{line-height:2.15;border-radius:.25rem}.form-outline{position:relative;width:100%}.form-outline .form-helper{width:100%;position:absolute;font-size:.875em;color:#757575}.form-outline .form-helper .form-counter{text-align:right}.form-outline .trailing{position:absolute;right:10px;left:initial;top:50%;transform:translateY(-50%);pointer-events:none;color:var(--mdb-surface-color)}.form-outline .form-icon-trailing{padding-right:2rem !important}.form-outline .form-control{min-height:auto;padding-top:.32rem;padding-bottom:.32rem;padding-left:.75rem;padding-right:.75rem;border:0;background:rgba(0,0,0,0);transition:all .2s linear}.form-outline .form-control~.form-label{position:absolute;top:0;max-width:90%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;left:.75rem;padding-top:.37rem;pointer-events:none;transform-origin:0 0;transition:all .2s ease-out;color:var(--mdb-form-control-label-color);margin-bottom:0}.form-outline .form-control~.form-notch{display:flex;position:absolute;left:0;top:0;width:100%;max-width:100%;height:100%;text-align:left;pointer-events:none}.form-outline .form-control~.form-notch div{pointer-events:none;border:1px solid;border-color:var(--mdb-form-control-border-color);box-sizing:border-box;background:rgba(0,0,0,0);transition:all .2s linear}.form-outline .form-control~.form-notch .form-notch-leading{left:0;top:0;height:100%;width:.5rem;border-right:none;border-radius:.25rem 0 0 .25rem}.form-outline .form-control~.form-notch .form-notch-middle{flex:0 0 auto;width:auto;max-width:calc(100% - 1rem);height:100%;border-right:none;border-left:none}.form-outline .form-control~.form-notch .form-notch-trailing{flex-grow:1;height:100%;border-left:none;border-radius:0 .25rem .25rem 0}.form-outline .form-control:not(.placeholder-active)::placeholder{opacity:0}.form-outline .form-control:focus::placeholder,.form-outline .form-control.active::placeholder{opacity:1}.form-outline .form-control:focus{box-shadow:none !important}.form-outline .form-control:focus~.form-label,.form-outline .form-control.active~.form-label{transform:translateY(-1rem) translateY(0.1rem) scale(0.8)}.form-outline .form-control:focus~.form-label{color:#3b71ca}.form-outline .form-control:focus~.form-notch .form-notch-middle,.form-outline .form-control.active~.form-notch .form-notch-middle{border-right:none;border-left:none;border-top:1px solid rgba(0,0,0,0)}.form-outline .form-control:focus~.form-notch .form-notch-middle{border-color:#3b71ca;box-shadow:0 1px 0 0 #3b71ca;border-top:1px solid rgba(0,0,0,0)}.form-outline .form-control:focus~.form-notch .form-notch-leading,.form-outline .form-control.active~.form-notch .form-notch-leading{border-right:none}.form-outline .form-control:focus~.form-notch .form-notch-leading{border-color:#3b71ca;box-shadow:-1px 0 0 0 #3b71ca,0 1px 0 0 #3b71ca,0 -1px 0 0 #3b71ca}.form-outline .form-control:focus~.form-notch .form-notch-trailing,.form-outline .form-control.active~.form-notch .form-notch-trailing{border-left:none}.form-outline .form-control:focus~.form-notch .form-notch-trailing{border-color:#3b71ca;box-shadow:1px 0 0 0 #3b71ca,0 -1px 0 0 #3b71ca,0 1px 0 0 #3b71ca}.form-outline .form-control:disabled,.form-outline .form-control.disabled,.form-outline .form-control[readonly]{background-color:var(--mdb-form-control-disabled-bg)}.form-outline .form-control:disabled~.timepicker-toggle-button,.form-outline .form-control:disabled~.datepicker-toggle-button,.form-outline .form-control:disabled~.datetimepicker-toggle-button,.form-outline .form-control:disabled~.select-arrow,.form-outline .form-control:disabled~.trailing,.form-outline .form-control.disabled~.timepicker-toggle-button,.form-outline .form-control.disabled~.datepicker-toggle-button,.form-outline .form-control.disabled~.datetimepicker-toggle-button,.form-outline .form-control.disabled~.select-arrow,.form-outline .form-control.disabled~.trailing,.form-outline .form-control[readonly]~.timepicker-toggle-button,.form-outline .form-control[readonly]~.datepicker-toggle-button,.form-outline .form-control[readonly]~.datetimepicker-toggle-button,.form-outline .form-control[readonly]~.select-arrow,.form-outline .form-control[readonly]~.trailing{color:rgba(var(--mdb-surface-color-rgb), 0.5)}.form-outline .form-control.form-control-lg{font-size:1rem;line-height:2.15}.form-outline .form-control.form-control-lg~.form-label{padding-top:.7rem}.form-outline .form-control.form-control-lg:focus~.form-label,.form-outline .form-control.form-control-lg.active~.form-label{transform:translateY(-1.25rem) translateY(0.1rem) scale(0.8)}.form-outline .form-control.form-control-sm{padding-top:.32rem;padding-bottom:.32rem;font-size:.775rem;line-height:1.5}.form-outline .form-control.form-control-sm~.form-label{padding-top:.33rem;font-size:.775rem}.form-outline .form-control.form-control-sm:focus~.form-label,.form-outline .form-control.form-control-sm.active~.form-label{transform:translateY(-0.85rem) translateY(0.1rem) scale(0.8)}.form-outline.form-white .form-control{color:#fff}.form-outline.form-white .form-control~.form-label{color:#fbfbfb}.form-outline.form-white .form-control~.form-notch div{border-color:#fbfbfb}.form-outline.form-white .form-control:focus~.form-label{color:#fff}.form-outline.form-white .form-control:focus~.form-notch .form-notch-middle{border-color:#fff;box-shadow:0 1px 0 0 #fff;border-top:1px solid rgba(0,0,0,0)}.form-outline.form-white .form-control:focus~.form-notch .form-notch-leading{border-color:#fff;box-shadow:-1px 0 0 0 #fff,0 1px 0 0 #fff,0 -1px 0 0 #fff}.form-outline.form-white .form-control:focus~.form-notch .form-notch-trailing{border-color:#fff;box-shadow:1px 0 0 0 #fff,0 -1px 0 0 #fff,0 1px 0 0 #fff}.form-outline.form-white .form-control::placeholder{color:rgba(255,255,255,.7)}.form-outline.form-white .form-control:disabled,.form-outline.form-white .form-control.disabled,.form-outline.form-white .form-control[readonly]{background-color:rgba(255,255,255,.45)}.select-input.form-control[readonly]:not([disabled]){background-color:rgba(0,0,0,0)}.form-select{transition:all .2s linear}.form-select:focus{border-color:#3b71ca;outline:0;box-shadow:inset 0px 0px 0px 1px #3b71ca}.form-check{min-height:1.5rem}.form-check-input{position:relative;width:1.125rem;height:1.125rem;background-color:var(--mdb-body-bg);border:.125rem solid var(--mdb-form-control-border-color)}.form-check-input:before{content:"";position:absolute;box-shadow:0px 0px 0px 13px rgba(0,0,0,0);border-radius:50%;width:.875rem;height:.875rem;background-color:rgba(0,0,0,0);opacity:0;pointer-events:none;transform:scale(0)}.form-check-input:hover{cursor:pointer}.form-check-input:hover:before{opacity:.04;box-shadow:0px 0px 0px 13px rgba(var(--mdb-box-shadow-color-rgb), 0.6)}.form-check-input:focus{box-shadow:none;border-color:var(--mdb-form-control-border-color);transition:border-color .2s}.form-check-input:focus:before{opacity:.12;box-shadow:0px 0px 0px 13px rgba(var(--mdb-box-shadow-color-rgb), 0.6);transform:scale(1);transition:box-shadow .2s,transform .2s}.form-check-input:checked{border-color:#3b71ca}.form-check-input:checked:before{opacity:.16}.form-check-input:checked:after{content:"";position:absolute}.form-check-input:checked:focus{border-color:#3b71ca}.form-check-input:checked:focus:before{box-shadow:0px 0px 0px 13px #3b71ca;transform:scale(1);transition:box-shadow .2s,transform .2s}.form-check-input:indeterminate:focus:before{box-shadow:0px 0px 0px 13px #3b71ca}.form-check-input[type=checkbox]{border-radius:.25rem;margin-top:.19em;margin-right:6px}.form-check-input[type=checkbox]:focus:after{content:"";position:absolute;width:.875rem;height:.875rem;z-index:1;display:block;border-radius:0;background-color:var(--mdb-body-bg)}.form-check-input[type=checkbox]:checked{background-image:none;background-color:#3b71ca}.form-check-input[type=checkbox]:checked:after{display:block;transform:rotate(45deg) /*!rtl:ignore*/;border-width:.125rem;border-color:#fff;width:.375rem;height:.8125rem;border-style:solid;border-top:0;border-left:0 /*!rtl:ignore*/;margin-left:.25rem;margin-top:-1px;background-color:rgba(0,0,0,0)}.form-check-input[type=checkbox]:checked:focus{background-color:#3b71ca}.form-check-input[type=checkbox]:indeterminate{border-color:#3b71ca}.form-check-input[type=radio]{border-radius:50%;width:1.25rem;height:1.25rem;margin-top:.125em;margin-right:4px}.form-check-input[type=radio]:before{width:1rem;height:1rem}.form-check-input[type=radio]:after{content:"";position:absolute;width:1rem;height:1rem;z-index:1;display:block;border-radius:50%;background-color:var(--mdb-body-bg)}.form-check-input[type=radio]:checked{background-image:none;background-color:var(--mdb-body-bg)}.form-check-input[type=radio]:checked:after{border-radius:50%;width:.625rem;height:.625rem;border-color:#3b71ca;background-color:#3b71ca;transition:border-color;transform:translate(-50%, -50%);position:absolute;left:50%;top:50%}.form-check-input[type=radio]:checked:focus{background-color:var(--mdb-body-bg)}.form-check-label{padding-left:.15rem}.form-check-label:hover{cursor:pointer}.form-switch .form-check-input{background-image:none;border-width:0;border-radius:.4375rem;width:2rem;height:.875rem;background-color:rgba(var(--mdb-emphasis-color-rgb), 0.25);margin-top:.3em;margin-right:8px}.form-switch .form-check-input:after{content:"";position:absolute;border:none;z-index:2;border-radius:50%;width:1.25rem;height:1.25rem;background-color:var(--mdb-surface-bg);margin-top:-0.1875rem;box-shadow:0 0px 3px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.07),0 2px 2px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.04);transition:background-color .2s,transform .2s}.form-switch .form-check-input:focus{background-image:none}.form-switch .form-check-input:focus:before{box-shadow:3px -1px 0px 13px rgba(var(--mdb-box-shadow-color-rgb), 0.6);transform:scale(1);transition:box-shadow .2s,transform .2s}.form-switch .form-check-input:focus:after{border-radius:50%;width:1.25rem;height:1.25rem}.form-switch .form-check-input:checked{background-image:none}.form-switch .form-check-input:checked:focus{background-image:none}.form-switch .form-check-input:checked:focus:before{margin-left:1.0625rem;box-shadow:3px -1px 0px 13px #3b71ca;transform:scale(1);transition:box-shadow .2s,transform .2s}.form-switch .form-check-input:checked[type=checkbox]{background-image:none}.form-switch .form-check-input:checked[type=checkbox]:after{content:"";position:absolute;border:none;z-index:2;border-radius:50%;width:1.25rem;height:1.25rem;background-color:#3b71ca;margin-top:-3px;margin-left:1.0625rem;box-shadow:0 3px 1px -2px rgba(var(--mdb-box-shadow-color-rgb), 0.2),0 2px 2px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.14),0 1px 5px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.12);transition:background-color .2s,transform .2s}.form-control[type=file]{border-color:var(--mdb-form-control-border-color)}.form-control[type=file]::-webkit-file-upload-button{background-color:rgba(0,0,0,0)}.form-control[type=file]:disabled{background-color:var(--mdb-form-control-disabled-bg);color:rgba(var(--mdb-surface-color-rgb), 0.5)}.form-control[type=file]:disabled::file-selector-button{color:rgba(var(--mdb-surface-color-rgb), 0.5)}.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button{background-color:rgba(0,0,0,0)}.input-group{flex-wrap:nowrap}.input-group>.form-control{min-height:calc(2.08rem + 2px);height:calc(2.08rem + 2px);padding-top:.27rem;padding-bottom:.27rem;transition:all .2s linear}.input-group>.form-control:focus{transition:all .2s linear;border-color:#3b71ca;outline:0;box-shadow:inset 0 0 0 1px #3b71ca}.input-group-text{background-color:rgba(0,0,0,0);padding-top:.26rem;padding-bottom:.26rem}.input-group-text>.form-check-input[type=checkbox]{margin-left:1px;margin-right:1px}.input-group-text>.form-check-input[type=radio]{margin-right:0}.input-group-lg>.form-control{height:calc(2.645rem + 2px);font-size:1rem;padding-top:.33rem;padding-bottom:.33rem}.input-group-lg .input-group-text{font-size:1rem}.input-group-sm>.form-control{min-height:calc(1.66rem + 2px);height:calc(1.66rem + 2px);font-size:.775rem;padding-top:.33rem;padding-bottom:.33rem}.input-group-sm .input-group-text{font-size:.775rem;line-height:1.5}.input-group.form-outline .input-group-text{border-left:0}.input-group.form-outline input+.input-group-text{border:0;border-left:1px solid #bdbdbd}.input-group .form-outline:not(:first-child),.input-group .select-wrapper:not(:first-child),.input-group .form-outline:not(:first-child) .form-notch-leading,.input-group .select-wrapper:not(:first-child) .form-notch-leading{border-top-left-radius:0 !important;border-bottom-left-radius:0 !important}.input-group .form-outline:not(:last-child),.input-group .select-wrapper:not(:last-child),.input-group .form-outline:not(:last-child) .form-notch-trailing,.input-group .select-wrapper:not(:last-child) .form-notch-trailing{border-top-right-radius:0 !important;border-bottom-right-radius:0 !important}.input-group>[class*=btn-outline-]+[class*=btn-outline-]{border-left:0}.input-group>.btn[class*=btn-outline-]{padding-top:.47rem}.input-group>.btn{padding-top:.59rem}.input-group.input-group-lg .input-group-text{height:calc(2.645rem + 2px)}.input-group .input-group-text{height:calc(2.08rem + 2px)}.input-group .btn{line-height:1}.input-group.input-group-sm .input-group-text{height:calc(1.66rem + 2px)}.was-validated .input-group .invalid-feedback,.was-validated .input-group .valid-feedback{margin-top:2.5rem}.input-group .invalid-feedback,.input-group .valid-feedback{margin-top:2.5rem}.valid-feedback{position:absolute;display:none;width:auto;margin-top:.25rem;font-size:.875rem;color:#14a44d;margin-top:-0.75rem}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:6px 16px;margin-top:.1rem;font-size:.875rem;background-color:rgba(20,164,77,.9);border-radius:.25rem !important;color:#fff}.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip,.is-valid~.valid-feedback,.is-valid~.valid-tooltip{display:block}.was-validated .form-control:valid,.form-control.is-valid{margin-bottom:1rem;background-image:none;border-color:#14a44d}.was-validated .form-control:valid:focus,.form-control.is-valid:focus{border-color:#14a44d;box-shadow:0 0 0 .25rem rgba(20,164,77,.25)}.was-validated .form-outline .form-control:valid~.form-label,.form-outline .form-control.is-valid~.form-label{color:#14a44d}.was-validated .form-outline .form-control:valid~.form-notch .form-notch-leading,.was-validated .form-outline .form-control:valid~.form-notch .form-notch-middle,.was-validated .form-outline .form-control:valid~.form-notch .form-notch-trailing,.form-outline .form-control.is-valid~.form-notch .form-notch-leading,.form-outline .form-control.is-valid~.form-notch .form-notch-middle,.form-outline .form-control.is-valid~.form-notch .form-notch-trailing{border-color:#14a44d}.was-validated .form-outline .form-control:valid:focus~.form-notch .form-notch-middle,.was-validated .form-outline .form-control:valid.active~.form-notch .form-notch-middle,.form-outline .form-control.is-valid:focus~.form-notch .form-notch-middle,.form-outline .form-control.is-valid.active~.form-notch .form-notch-middle{border-top:1px solid rgba(0,0,0,0)}.was-validated .form-outline .form-control:valid:focus~.form-notch .form-notch-middle,.form-outline .form-control.is-valid:focus~.form-notch .form-notch-middle{box-shadow:0 1px 0 0 #14a44d}.was-validated .form-outline .form-control:valid:focus~.form-notch .form-notch-leading,.form-outline .form-control.is-valid:focus~.form-notch .form-notch-leading{box-shadow:-1px 0 0 0 #14a44d,0 1px 0 0 #14a44d,0 -1px 0 0 #14a44d}.was-validated .form-outline .form-control:valid:focus~.form-notch .form-notch-trailing,.form-outline .form-control.is-valid:focus~.form-notch .form-notch-trailing{box-shadow:1px 0 0 0 #14a44d,0 -1px 0 0 #14a44d,0 1px 0 0 #14a44d}.was-validated .form-outline .form-control:valid.select-input.focused~.form-notch .form-notch-leading,.form-outline .form-control.is-valid.select-input.focused~.form-notch .form-notch-leading{box-shadow:-1px 0 0 0 #14a44d,0 1px 0 0 #14a44d,0 -1px 0 0 #14a44d}.was-validated .form-outline .form-control:valid.select-input.focused~.form-notch .form-notch-middle,.form-outline .form-control.is-valid.select-input.focused~.form-notch .form-notch-middle{box-shadow:0 1px 0 0 #14a44d;border-top:1px solid rgba(0,0,0,0)}.was-validated .form-outline .form-control:valid.select-input.focused~.form-notch .form-notch-trailing,.form-outline .form-control.is-valid.select-input.focused~.form-notch .form-notch-trailing{box-shadow:1px 0 0 0 #14a44d,0 -1px 0 0 #14a44d,0 1px 0 0 #14a44d}.was-validated .form-select:valid,.form-select.is-valid{border-color:#14a44d}.was-validated .form-select:valid:focus,.form-select.is-valid:focus{border-color:#14a44d;box-shadow:0 0 0 .25rem rgba(20,164,77,.25)}.was-validated .form-select:valid~.valid-feedback,.form-select.is-valid~.valid-feedback{margin-top:0}.was-validated .input-group .form-control:valid,.input-group .form-control.is-valid{margin-bottom:0}.was-validated input[type=file].form-control:valid .valid-feedback,input[type=file].form-control.is-valid .valid-feedback{margin-top:0}.was-validated input[type=file].form-control:valid:focus,input[type=file].form-control.is-valid:focus{box-shadow:inset 0 0 0 1px #14a44d;border-color:#14a44d}.was-validated input[type=file].form-control:valid:focus~.form-file-label,input[type=file].form-control.is-valid:focus~.form-file-label{box-shadow:none}.was-validated input[type=file].form-control:valid:focus-within~.form-file-label .form-file-text,.was-validated input[type=file].form-control:valid:focus-within~.form-file-label .form-file-button,input[type=file].form-control.is-valid:focus-within~.form-file-label .form-file-text,input[type=file].form-control.is-valid:focus-within~.form-file-label .form-file-button{border-color:#14a44d}.was-validated .form-check-input:valid,.form-check-input.is-valid{border-color:#14a44d}.was-validated .form-check-input:valid:checked,.form-check-input.is-valid:checked{background-color:#14a44d}.was-validated .form-check-input:valid:checked:focus:before,.form-check-input.is-valid:checked:focus:before{box-shadow:0px 0px 0px 13px #14a44d}.was-validated .form-check-input:valid:focus,.form-check-input.is-valid:focus{box-shadow:none}.was-validated .form-check-input:valid:focus:before,.form-check-input.is-valid:focus:before{box-shadow:0px 0px 0px 13px #14a44d}.was-validated .form-check-input:valid~.form-check-label,.form-check-input.is-valid~.form-check-label{color:#14a44d;margin-bottom:1rem}.was-validated .form-check-input:valid[type=checkbox]:checked:focus,.form-check-input.is-valid[type=checkbox]:checked:focus{background-color:#14a44d;border-color:#14a44d}.was-validated .form-check-input:valid[type=radio]:checked,.form-check-input.is-valid[type=radio]:checked{border-color:#14a44d;background-color:#fff}.was-validated .form-check-input:valid[type=radio]:checked:focus:before,.form-check-input.is-valid[type=radio]:checked:focus:before{box-shadow:0px 0px 0px 13px #14a44d}.was-validated .form-check-input:valid[type=radio]:checked:after,.form-check-input.is-valid[type=radio]:checked:after{border-color:#14a44d;background-color:#14a44d}.form-check-inline .form-check-input~.valid-feedback{margin-left:.5em}.was-validated .form-switch .form-check-input:valid:focus:before,.form-switch .form-check-input.is-valid:focus:before{box-shadow:3px -1px 0px 13px rgba(var(--mdb-box-shadow-color-rgb), 0.6)}.was-validated .form-switch .form-check-input:valid:checked[type=checkbox]:after,.form-switch .form-check-input.is-valid:checked[type=checkbox]:after{background-color:#14a44d;box-shadow:0 3px 1px -2px rgba(var(--mdb-box-shadow-color-rgb), 0.2),0 2px 2px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.14),0 1px 5px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.12)}.was-validated .form-switch .form-check-input:valid:checked:focus:before,.form-switch .form-check-input.is-valid:checked:focus:before{box-shadow:3px -1px 0px 13px #14a44d}.invalid-feedback{position:absolute;display:none;width:auto;margin-top:.25rem;font-size:.875rem;color:#dc4c64;margin-top:-0.75rem}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:6px 16px;margin-top:.1rem;font-size:.875rem;background-color:rgba(220,76,100,.9);border-radius:.25rem !important;color:#fff}.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip,.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip{display:block}.was-validated .form-control:invalid,.form-control.is-invalid{margin-bottom:1rem;background-image:none;border-color:#dc4c64}.was-validated .form-control:invalid:focus,.form-control.is-invalid:focus{border-color:#dc4c64;box-shadow:0 0 0 .25rem rgba(220,76,100,.25)}.was-validated .form-outline .form-control:invalid~.form-label,.form-outline .form-control.is-invalid~.form-label{color:#dc4c64}.was-validated .form-outline .form-control:invalid~.form-notch .form-notch-leading,.was-validated .form-outline .form-control:invalid~.form-notch .form-notch-middle,.was-validated .form-outline .form-control:invalid~.form-notch .form-notch-trailing,.form-outline .form-control.is-invalid~.form-notch .form-notch-leading,.form-outline .form-control.is-invalid~.form-notch .form-notch-middle,.form-outline .form-control.is-invalid~.form-notch .form-notch-trailing{border-color:#dc4c64}.was-validated .form-outline .form-control:invalid:focus~.form-notch .form-notch-middle,.was-validated .form-outline .form-control:invalid.active~.form-notch .form-notch-middle,.form-outline .form-control.is-invalid:focus~.form-notch .form-notch-middle,.form-outline .form-control.is-invalid.active~.form-notch .form-notch-middle{border-top:1px solid rgba(0,0,0,0)}.was-validated .form-outline .form-control:invalid:focus~.form-notch .form-notch-middle,.form-outline .form-control.is-invalid:focus~.form-notch .form-notch-middle{box-shadow:0 1px 0 0 #dc4c64}.was-validated .form-outline .form-control:invalid:focus~.form-notch .form-notch-leading,.form-outline .form-control.is-invalid:focus~.form-notch .form-notch-leading{box-shadow:-1px 0 0 0 #dc4c64,0 1px 0 0 #dc4c64,0 -1px 0 0 #dc4c64}.was-validated .form-outline .form-control:invalid:focus~.form-notch .form-notch-trailing,.form-outline .form-control.is-invalid:focus~.form-notch .form-notch-trailing{box-shadow:1px 0 0 0 #dc4c64,0 -1px 0 0 #dc4c64,0 1px 0 0 #dc4c64}.was-validated .form-outline .form-control:invalid.select-input.focused~.form-notch .form-notch-leading,.form-outline .form-control.is-invalid.select-input.focused~.form-notch .form-notch-leading{box-shadow:-1px 0 0 0 #dc4c64,0 1px 0 0 #dc4c64,0 -1px 0 0 #dc4c64}.was-validated .form-outline .form-control:invalid.select-input.focused~.form-notch .form-notch-middle,.form-outline .form-control.is-invalid.select-input.focused~.form-notch .form-notch-middle{box-shadow:0 1px 0 0 #dc4c64;border-top:1px solid rgba(0,0,0,0)}.was-validated .form-outline .form-control:invalid.select-input.focused~.form-notch .form-notch-trailing,.form-outline .form-control.is-invalid.select-input.focused~.form-notch .form-notch-trailing{box-shadow:1px 0 0 0 #dc4c64,0 -1px 0 0 #dc4c64,0 1px 0 0 #dc4c64}.was-validated .form-select:invalid,.form-select.is-invalid{border-color:#dc4c64}.was-validated .form-select:invalid:focus,.form-select.is-invalid:focus{border-color:#dc4c64;box-shadow:0 0 0 .25rem rgba(220,76,100,.25)}.was-validated .form-select:invalid~.invalid-feedback,.form-select.is-invalid~.invalid-feedback{margin-top:0}.was-validated .input-group .form-control:invalid,.input-group .form-control.is-invalid{margin-bottom:0}.was-validated input[type=file].form-control:invalid .invalid-feedback,input[type=file].form-control.is-invalid .invalid-feedback{margin-top:0}.was-validated input[type=file].form-control:invalid:focus,input[type=file].form-control.is-invalid:focus{box-shadow:inset 0 0 0 1px #dc4c64;border-color:#dc4c64}.was-validated input[type=file].form-control:invalid:focus~.form-file-label,input[type=file].form-control.is-invalid:focus~.form-file-label{box-shadow:none}.was-validated input[type=file].form-control:invalid:focus-within~.form-file-label .form-file-text,.was-validated input[type=file].form-control:invalid:focus-within~.form-file-label .form-file-button,input[type=file].form-control.is-invalid:focus-within~.form-file-label .form-file-text,input[type=file].form-control.is-invalid:focus-within~.form-file-label .form-file-button{border-color:#dc4c64}.was-validated .form-check-input:invalid,.form-check-input.is-invalid{border-color:#dc4c64}.was-validated .form-check-input:invalid:checked,.form-check-input.is-invalid:checked{background-color:#dc4c64}.was-validated .form-check-input:invalid:checked:focus:before,.form-check-input.is-invalid:checked:focus:before{box-shadow:0px 0px 0px 13px #dc4c64}.was-validated .form-check-input:invalid:focus,.form-check-input.is-invalid:focus{box-shadow:none}.was-validated .form-check-input:invalid:focus:before,.form-check-input.is-invalid:focus:before{box-shadow:0px 0px 0px 13px #dc4c64}.was-validated .form-check-input:invalid~.form-check-label,.form-check-input.is-invalid~.form-check-label{color:#dc4c64;margin-bottom:1rem}.was-validated .form-check-input:invalid[type=checkbox]:checked:focus,.form-check-input.is-invalid[type=checkbox]:checked:focus{background-color:#dc4c64;border-color:#dc4c64}.was-validated .form-check-input:invalid[type=radio]:checked,.form-check-input.is-invalid[type=radio]:checked{border-color:#dc4c64;background-color:#fff}.was-validated .form-check-input:invalid[type=radio]:checked:focus:before,.form-check-input.is-invalid[type=radio]:checked:focus:before{box-shadow:0px 0px 0px 13px #dc4c64}.was-validated .form-check-input:invalid[type=radio]:checked:after,.form-check-input.is-invalid[type=radio]:checked:after{border-color:#dc4c64;background-color:#dc4c64}.form-check-inline .form-check-input~.invalid-feedback{margin-left:.5em}.was-validated .form-switch .form-check-input:invalid:focus:before,.form-switch .form-check-input.is-invalid:focus:before{box-shadow:3px -1px 0px 13px rgba(var(--mdb-box-shadow-color-rgb), 0.6)}.was-validated .form-switch .form-check-input:invalid:checked[type=checkbox]:after,.form-switch .form-check-input.is-invalid:checked[type=checkbox]:after{background-color:#dc4c64;box-shadow:0 3px 1px -2px rgba(var(--mdb-box-shadow-color-rgb), 0.2),0 2px 2px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.14),0 1px 5px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.12)}.was-validated .form-switch .form-check-input:invalid:checked:focus:before,.form-switch .form-check-input.is-invalid:checked:focus:before{box-shadow:3px -1px 0px 13px #dc4c64}.form-range:focus{box-shadow:none}.form-range:focus::-webkit-slider-thumb{box-shadow:none}.form-range:focus::-moz-range-thumb{box-shadow:none}.form-range:focus::-ms-thumb{box-shadow:none}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{margin-top:-6px;box-shadow:none;appearance:none}.form-range::-webkit-slider-runnable-track{height:4px;border-radius:0;box-shadow:none;background-color:var(--mdb-secondary-bg)}.form-range::-moz-range-thumb{box-shadow:none;appearance:none}.form-range::-moz-range-track{box-shadow:none}.table{--mdb-table-font-size: 0.9rem;--mdb-table-divider-color: currentcolor;font-size:var(--mdb-table-font-size)}.table th{font-weight:500}.table tbody{font-weight:400}.table>:not(:last-child)>:last-child>*{border-bottom-color:inherit}.table-primary{--mdb-table-color: #000;--mdb-table-bg: #d8e3f4;--mdb-table-border-color: #adb6c3;--mdb-table-striped-bg: #cdd8e8;--mdb-table-striped-color: #000;--mdb-table-active-bg: #c2ccdc;--mdb-table-active-color: #000;--mdb-table-hover-bg: #c8d2e2;--mdb-table-hover-color: #000;color:var(--mdb-table-color);border-color:var(--mdb-table-border-color)}.table-secondary{--mdb-table-color: #000;--mdb-table-bg: #ecedf0;--mdb-table-border-color: #bdbec0;--mdb-table-striped-bg: #e0e1e4;--mdb-table-striped-color: #000;--mdb-table-active-bg: #d4d5d8;--mdb-table-active-color: #000;--mdb-table-hover-bg: #dadbde;--mdb-table-hover-color: #000;color:var(--mdb-table-color);border-color:var(--mdb-table-border-color)}.table-success{--mdb-table-color: #000;--mdb-table-bg: #d0eddb;--mdb-table-border-color: #a6beaf;--mdb-table-striped-bg: #c6e1d0;--mdb-table-striped-color: #000;--mdb-table-active-bg: #bbd5c5;--mdb-table-active-color: #000;--mdb-table-hover-bg: #c0dbcb;--mdb-table-hover-color: #000;color:var(--mdb-table-color);border-color:var(--mdb-table-border-color)}.table-info{--mdb-table-color: #000;--mdb-table-bg: #ddf0f6;--mdb-table-border-color: #b1c0c5;--mdb-table-striped-bg: #d2e4ea;--mdb-table-striped-color: #000;--mdb-table-active-bg: #c7d8dd;--mdb-table-active-color: #000;--mdb-table-hover-bg: #ccdee4;--mdb-table-hover-color: #000;color:var(--mdb-table-color);border-color:var(--mdb-table-border-color)}.table-warning{--mdb-table-color: #000;--mdb-table-bg: #faecd1;--mdb-table-border-color: #c8bda7;--mdb-table-striped-bg: #eee0c7;--mdb-table-striped-color: #000;--mdb-table-active-bg: #e1d4bc;--mdb-table-active-color: #000;--mdb-table-hover-bg: #e7dac1;--mdb-table-hover-color: #000;color:var(--mdb-table-color);border-color:var(--mdb-table-border-color)}.table-danger{--mdb-table-color: #000;--mdb-table-bg: #f8dbe0;--mdb-table-border-color: #c6afb3;--mdb-table-striped-bg: #ecd0d5;--mdb-table-striped-color: #000;--mdb-table-active-bg: #dfc5ca;--mdb-table-active-color: #000;--mdb-table-hover-bg: #e5cbcf;--mdb-table-hover-color: #000;color:var(--mdb-table-color);border-color:var(--mdb-table-border-color)}.table-light{--mdb-table-color: #000;--mdb-table-bg: #fbfbfb;--mdb-table-border-color: #c9c9c9;--mdb-table-striped-bg: #eeeeee;--mdb-table-striped-color: #000;--mdb-table-active-bg: #e2e2e2;--mdb-table-active-color: #000;--mdb-table-hover-bg: #e8e8e8;--mdb-table-hover-color: #000;color:var(--mdb-table-color);border-color:var(--mdb-table-border-color)}.table-dark{--mdb-table-color: #fff;--mdb-table-bg: #332d2d;--mdb-table-border-color: #5c5757;--mdb-table-striped-bg: #3d3838;--mdb-table-striped-color: #fff;--mdb-table-active-bg: #474242;--mdb-table-active-color: #fff;--mdb-table-hover-bg: #423d3d;--mdb-table-hover-color: #fff;color:var(--mdb-table-color);border-color:var(--mdb-table-border-color)}.table-hover>tbody>tr{transition:.5s}.table-hover>tbody>tr:hover{--mdb-table-accent-bg: transparent;background-color:var(--mdb-table-hover-bg)}.table-group-divider{border-top:calc(2*var(--mdb-border-width)) solid;border-top-color:inherit}.table-divider-color{border-top-color:var(--mdb-table-divider-color)}.btn{--mdb-btn-padding-top: 0.625rem;--mdb-btn-padding-bottom: 0.5rem;--mdb-btn-border-width: 0;--mdb-btn-border-color: none;--mdb-btn-border-radius: 0.25rem;--mdb-btn-box-shadow: 0 4px 9px -4px rgba(var(--mdb-box-shadow-color-rgb), 0.35);--mdb-btn-hover-box-shadow: 0 8px 9px -4px rgba(var(--mdb-box-shadow-color-rgb), 0.15), 0 4px 18px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.1);--mdb-btn-focus-box-shadow: 0 8px 9px -4px rgba(var(--mdb-box-shadow-color-rgb), 0.15), 0 4px 18px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.1);--mdb-btn-active-box-shadow: 0 8px 9px -4px rgba(var(--mdb-box-shadow-color-rgb), 0.15), 0 4px 18px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.1);padding-top:var(--mdb-btn-padding-top);padding-bottom:var(--mdb-btn-padding-bottom);text-transform:uppercase;vertical-align:bottom;border:0;border-radius:var(--mdb-btn-border-radius);box-shadow:var(--mdb-btn-box-shadow)}:not(.btn-check)+.btn:hover,.btn:first-child:hover,.btn:focus-visible,.btn:hover{box-shadow:var(--mdb-btn-hover-box-shadow)}.btn-check:focus-visible+.btn,.btn-check:focus+.btn,.btn:focus{box-shadow:var(--mdb-btn-focus-box-shadow)}.btn-check:checked+.btn,.btn-check:active+.btn,.btn:active,.btn.active,.btn.show{box-shadow:var(--mdb-btn-active-box-shadow)}.btn-check:checked+.btn:focus,.btn-check:active+.btn:focus,.btn:active:focus,.btn.active:focus,.btn.show:focus{box-shadow:var(--mdb-btn-focus-box-shadow)}.btn:disabled,.btn.disabled,fieldset:disabled .btn{box-shadow:var(--mdb-btn-box-shadow)}[class*=btn-outline-]{--mdb-btn-padding-top: 0.5rem;--mdb-btn-padding-bottom: 0.375rem;--mdb-btn-padding-x: 1.375rem;--mdb-btn-border-width: 2px;--mdb-btn-line-height: 1.5;padding:var(--mdb-btn-padding-top) var(--mdb-btn-padding-x) var(--mdb-btn-padding-bottom);border-width:var(--mdb-btn-border-width);border-style:solid;box-shadow:none}:not(.btn-check)+[class*=btn-outline-]:hover,[class*=btn-outline-]:first-child:hover,[class*=btn-outline-]:focus-visible,[class*=btn-outline-]:hover{box-shadow:none}.btn-check:focus-visible+[class*=btn-outline-],.btn-check:focus+[class*=btn-outline-],[class*=btn-outline-]:focus{box-shadow:none}.btn-check:checked+[class*=btn-outline-],.btn-check:active+[class*=btn-outline-],[class*=btn-outline-]:active,[class*=btn-outline-].active,[class*=btn-outline-].show{box-shadow:none}.btn-check:checked+[class*=btn-outline-]:focus,.btn-check:active+[class*=btn-outline-]:focus,[class*=btn-outline-]:active:focus,[class*=btn-outline-].active:focus,[class*=btn-outline-].show:focus{box-shadow:none}[class*=btn-outline-]:disabled,[class*=btn-outline-].disabled,fieldset:disabled [class*=btn-outline-]{box-shadow:none}[class*=btn-outline-].btn-lg,.btn-group-lg>[class*=btn-outline-].btn{--mdb-btn-padding-top: 0.625rem;--mdb-btn-padding-bottom: 0.5625rem;--mdb-btn-padding-x: 1.5625rem;--mdb-btn-font-size:0.875rem;--mdb-btn-line-height: 1.6}[class*=btn-outline-].btn-sm,.btn-group-sm>[class*=btn-outline-].btn{--mdb-btn-padding-top: 0.25rem;--mdb-btn-padding-bottom: 0.1875rem;--mdb-btn-padding-x: 0.875rem;--mdb-btn-font-size:0.75rem;--mdb-btn-line-height: 1.5}.btn-secondary{box-shadow:none}:not(.btn-check)+.btn-secondary:hover,.btn-secondary:first-child:hover,.btn-secondary:focus-visible,.btn-secondary:hover{box-shadow:none !important}.btn-check:focus-visible+.btn-secondary,.btn-check:focus+.btn-secondary,.btn-secondary:focus{box-shadow:none}.btn-check:checked+.btn-secondary,.btn-check:active+.btn-secondary,.btn-secondary:active,.btn-secondary.active,.btn-secondary.show{box-shadow:none}.btn-check:checked+.btn-secondary:focus,.btn-check:active+.btn-secondary:focus,.btn-secondary:active:focus,.btn-secondary.active:focus,.btn-secondary.show:focus{box-shadow:none}.btn-secondary:disabled,.btn-secondary.disabled,fieldset:disabled .btn-secondary{box-shadow:none}.btn-primary{--mdb-btn-bg: #3b71ca;--mdb-btn-color: #fff;--mdb-btn-box-shadow: 0 4px 9px -4px #386bc0;--mdb-btn-hover-bg: #386bc0;--mdb-btn-hover-color: #fff;--mdb-btn-focus-bg: #386bc0;--mdb-btn-focus-color: #fff;--mdb-btn-active-bg: #3566b6;--mdb-btn-active-color: #fff;--mdb-btn-box-shadow-state: 0 8px 9px -4px rgba(56, 107, 192, 0.3), 0 4px 18px 0 rgba(56, 107, 192, 0.2)}:not(.btn-check)+.btn-primary:hover,.btn-primary:first-child:hover,.btn-primary:focus-visible,.btn-primary:hover{box-shadow:var(--mdb-btn-box-shadow-state)}.btn-check:focus-visible+.btn-primary,.btn-check:focus+.btn-primary,.btn-primary:focus{box-shadow:var(--mdb-btn-box-shadow-state);background-color:var(--mdb-btn-focus-bg)}.btn-check:checked+.btn-primary,.btn-check:active+.btn-primary,.btn-primary:active,.btn-primary.active,.btn-primary.show{box-shadow:var(--mdb-btn-box-shadow-state)}.btn-check:checked+.btn-primary:focus,.btn-check:active+.btn-primary:focus,.btn-primary:active:focus,.btn-primary.active:focus,.btn-primary.show:focus{box-shadow:var(--mdb-btn-box-shadow-state)}.btn-check:checked+.btn-primary:hover,.btn-check:active+.btn-primary:hover,.btn-primary:active:hover,.btn-primary.active:hover,.btn-primary.show:hover{background-color:var(--mdb-btn-active-bg)}.btn-primary:disabled,.btn-primary.disabled,fieldset:disabled .btn-primary{box-shadow:var(--mdb-btn-box-shadow)}[data-mdb-theme=dark] .btn-primary{box-shadow:0 4px 9px -4px rgba(0,0,0,.35)}[data-mdb-theme=dark] .btn-primary:hover,[data-mdb-theme=dark] .btn-primary:active,[data-mdb-theme=dark] .btn-primary:focus{box-shadow:0 4px 18px -2px rgba(0,0,0,.7)}.btn-secondary{--mdb-btn-bg: #e2eaf7;--mdb-btn-color: #294f8d;--mdb-btn-box-shadow: 0 4px 9px -4px #e3ebf7;--mdb-btn-hover-bg: #d7deeb;--mdb-btn-hover-color: #294f8d;--mdb-btn-focus-bg: #d7deeb;--mdb-btn-focus-color: #294f8d;--mdb-btn-active-bg: #d7deeb;--mdb-btn-active-color: #294f8d;--mdb-btn-box-shadow-state: transparent}:not(.btn-check)+.btn-secondary:hover,.btn-secondary:first-child:hover,.btn-secondary:focus-visible,.btn-secondary:hover{box-shadow:var(--mdb-btn-box-shadow-state)}.btn-check:focus-visible+.btn-secondary,.btn-check:focus+.btn-secondary,.btn-secondary:focus{box-shadow:var(--mdb-btn-box-shadow-state);background-color:var(--mdb-btn-focus-bg)}.btn-check:checked+.btn-secondary,.btn-check:active+.btn-secondary,.btn-secondary:active,.btn-secondary.active,.btn-secondary.show{box-shadow:var(--mdb-btn-box-shadow-state)}.btn-check:checked+.btn-secondary:focus,.btn-check:active+.btn-secondary:focus,.btn-secondary:active:focus,.btn-secondary.active:focus,.btn-secondary.show:focus{box-shadow:var(--mdb-btn-box-shadow-state)}.btn-check:checked+.btn-secondary:hover,.btn-check:active+.btn-secondary:hover,.btn-secondary:active:hover,.btn-secondary.active:hover,.btn-secondary.show:hover{background-color:var(--mdb-btn-active-bg)}.btn-secondary:disabled,.btn-secondary.disabled,fieldset:disabled .btn-secondary{box-shadow:var(--mdb-btn-box-shadow)}.btn-success{--mdb-btn-bg: #14a44d;--mdb-btn-color: #fff;--mdb-btn-box-shadow: 0 4px 9px -4px #139c49;--mdb-btn-hover-bg: #139c49;--mdb-btn-hover-color: #fff;--mdb-btn-focus-bg: #139c49;--mdb-btn-focus-color: #fff;--mdb-btn-active-bg: #129445;--mdb-btn-active-color: #fff;--mdb-btn-box-shadow-state: 0 8px 9px -4px rgba(19, 156, 73, 0.3), 0 4px 18px 0 rgba(19, 156, 73, 0.2)}:not(.btn-check)+.btn-success:hover,.btn-success:first-child:hover,.btn-success:focus-visible,.btn-success:hover{box-shadow:var(--mdb-btn-box-shadow-state)}.btn-check:focus-visible+.btn-success,.btn-check:focus+.btn-success,.btn-success:focus{box-shadow:var(--mdb-btn-box-shadow-state);background-color:var(--mdb-btn-focus-bg)}.btn-check:checked+.btn-success,.btn-check:active+.btn-success,.btn-success:active,.btn-success.active,.btn-success.show{box-shadow:var(--mdb-btn-box-shadow-state)}.btn-check:checked+.btn-success:focus,.btn-check:active+.btn-success:focus,.btn-success:active:focus,.btn-success.active:focus,.btn-success.show:focus{box-shadow:var(--mdb-btn-box-shadow-state)}.btn-check:checked+.btn-success:hover,.btn-check:active+.btn-success:hover,.btn-success:active:hover,.btn-success.active:hover,.btn-success.show:hover{background-color:var(--mdb-btn-active-bg)}.btn-success:disabled,.btn-success.disabled,fieldset:disabled .btn-success{box-shadow:var(--mdb-btn-box-shadow)}[data-mdb-theme=dark] .btn-success{box-shadow:0 4px 9px -4px rgba(0,0,0,.35)}[data-mdb-theme=dark] .btn-success:hover,[data-mdb-theme=dark] .btn-success:active,[data-mdb-theme=dark] .btn-success:focus{box-shadow:0 4px 18px -2px rgba(0,0,0,.7)}.btn-danger{--mdb-btn-bg: #dc4c64;--mdb-btn-color: #fff;--mdb-btn-box-shadow: 0 4px 9px -4px #d1485f;--mdb-btn-hover-bg: #d1485f;--mdb-btn-hover-color: #fff;--mdb-btn-focus-bg: #d1485f;--mdb-btn-focus-color: #fff;--mdb-btn-active-bg: #c6445a;--mdb-btn-active-color: #fff;--mdb-btn-box-shadow-state: 0 8px 9px -4px rgba(209, 72, 95, 0.3), 0 4px 18px 0 rgba(209, 72, 95, 0.2)}:not(.btn-check)+.btn-danger:hover,.btn-danger:first-child:hover,.btn-danger:focus-visible,.btn-danger:hover{box-shadow:var(--mdb-btn-box-shadow-state)}.btn-check:focus-visible+.btn-danger,.btn-check:focus+.btn-danger,.btn-danger:focus{box-shadow:var(--mdb-btn-box-shadow-state);background-color:var(--mdb-btn-focus-bg)}.btn-check:checked+.btn-danger,.btn-check:active+.btn-danger,.btn-danger:active,.btn-danger.active,.btn-danger.show{box-shadow:var(--mdb-btn-box-shadow-state)}.btn-check:checked+.btn-danger:focus,.btn-check:active+.btn-danger:focus,.btn-danger:active:focus,.btn-danger.active:focus,.btn-danger.show:focus{box-shadow:var(--mdb-btn-box-shadow-state)}.btn-check:checked+.btn-danger:hover,.btn-check:active+.btn-danger:hover,.btn-danger:active:hover,.btn-danger.active:hover,.btn-danger.show:hover{background-color:var(--mdb-btn-active-bg)}.btn-danger:disabled,.btn-danger.disabled,fieldset:disabled .btn-danger{box-shadow:var(--mdb-btn-box-shadow)}[data-mdb-theme=dark] .btn-danger{box-shadow:0 4px 9px -4px rgba(0,0,0,.35)}[data-mdb-theme=dark] .btn-danger:hover,[data-mdb-theme=dark] .btn-danger:active,[data-mdb-theme=dark] .btn-danger:focus{box-shadow:0 4px 18px -2px rgba(0,0,0,.7)}.btn-warning{--mdb-btn-bg: #e4a11b;--mdb-btn-color: #fff;--mdb-btn-box-shadow: 0 4px 9px -4px #d9991a;--mdb-btn-hover-bg: #d9991a;--mdb-btn-hover-color: #fff;--mdb-btn-focus-bg: #d9991a;--mdb-btn-focus-color: #fff;--mdb-btn-active-bg: #cd9118;--mdb-btn-active-color: #fff;--mdb-btn-box-shadow-state: 0 8px 9px -4px rgba(217, 153, 26, 0.3), 0 4px 18px 0 rgba(217, 153, 26, 0.2)}:not(.btn-check)+.btn-warning:hover,.btn-warning:first-child:hover,.btn-warning:focus-visible,.btn-warning:hover{box-shadow:var(--mdb-btn-box-shadow-state)}.btn-check:focus-visible+.btn-warning,.btn-check:focus+.btn-warning,.btn-warning:focus{box-shadow:var(--mdb-btn-box-shadow-state);background-color:var(--mdb-btn-focus-bg)}.btn-check:checked+.btn-warning,.btn-check:active+.btn-warning,.btn-warning:active,.btn-warning.active,.btn-warning.show{box-shadow:var(--mdb-btn-box-shadow-state)}.btn-check:checked+.btn-warning:focus,.btn-check:active+.btn-warning:focus,.btn-warning:active:focus,.btn-warning.active:focus,.btn-warning.show:focus{box-shadow:var(--mdb-btn-box-shadow-state)}.btn-check:checked+.btn-warning:hover,.btn-check:active+.btn-warning:hover,.btn-warning:active:hover,.btn-warning.active:hover,.btn-warning.show:hover{background-color:var(--mdb-btn-active-bg)}.btn-warning:disabled,.btn-warning.disabled,fieldset:disabled .btn-warning{box-shadow:var(--mdb-btn-box-shadow)}[data-mdb-theme=dark] .btn-warning{box-shadow:0 4px 9px -4px rgba(0,0,0,.35)}[data-mdb-theme=dark] .btn-warning:hover,[data-mdb-theme=dark] .btn-warning:active,[data-mdb-theme=dark] .btn-warning:focus{box-shadow:0 4px 18px -2px rgba(0,0,0,.7)}.btn-info{--mdb-btn-bg: #54b4d3;--mdb-btn-color: #fff;--mdb-btn-box-shadow: 0 4px 9px -4px #50abc8;--mdb-btn-hover-bg: #50abc8;--mdb-btn-hover-color: #fff;--mdb-btn-focus-bg: #50abc8;--mdb-btn-focus-color: #fff;--mdb-btn-active-bg: #4ca2be;--mdb-btn-active-color: #fff;--mdb-btn-box-shadow-state: 0 8px 9px -4px rgba(80, 171, 200, 0.3), 0 4px 18px 0 rgba(80, 171, 200, 0.2)}:not(.btn-check)+.btn-info:hover,.btn-info:first-child:hover,.btn-info:focus-visible,.btn-info:hover{box-shadow:var(--mdb-btn-box-shadow-state)}.btn-check:focus-visible+.btn-info,.btn-check:focus+.btn-info,.btn-info:focus{box-shadow:var(--mdb-btn-box-shadow-state);background-color:var(--mdb-btn-focus-bg)}.btn-check:checked+.btn-info,.btn-check:active+.btn-info,.btn-info:active,.btn-info.active,.btn-info.show{box-shadow:var(--mdb-btn-box-shadow-state)}.btn-check:checked+.btn-info:focus,.btn-check:active+.btn-info:focus,.btn-info:active:focus,.btn-info.active:focus,.btn-info.show:focus{box-shadow:var(--mdb-btn-box-shadow-state)}.btn-check:checked+.btn-info:hover,.btn-check:active+.btn-info:hover,.btn-info:active:hover,.btn-info.active:hover,.btn-info.show:hover{background-color:var(--mdb-btn-active-bg)}.btn-info:disabled,.btn-info.disabled,fieldset:disabled .btn-info{box-shadow:var(--mdb-btn-box-shadow)}[data-mdb-theme=dark] .btn-info{box-shadow:0 4px 9px -4px rgba(0,0,0,.35)}[data-mdb-theme=dark] .btn-info:hover,[data-mdb-theme=dark] .btn-info:active,[data-mdb-theme=dark] .btn-info:focus{box-shadow:0 4px 18px -2px rgba(0,0,0,.7)}.btn-light{--mdb-btn-bg: #f5f5f5;--mdb-btn-color: #616161;--mdb-btn-box-shadow: 0 4px 9px -4px #f6f6f6;--mdb-btn-hover-bg: #e9e9e9;--mdb-btn-hover-color: #616161;--mdb-btn-focus-bg: #f6f6f6;--mdb-btn-focus-color: #616161;--mdb-btn-active-bg: #dddddd;--mdb-btn-active-color: #616161;--mdb-btn-box-shadow-state: 0 8px 9px -4px rgba(238, 238, 238, 0.3), 0 4px 18px 0 rgba(238, 238, 238, 0.2)}:not(.btn-check)+.btn-light:hover,.btn-light:first-child:hover,.btn-light:focus-visible,.btn-light:hover{box-shadow:var(--mdb-btn-box-shadow-state)}.btn-check:focus-visible+.btn-light,.btn-check:focus+.btn-light,.btn-light:focus{box-shadow:var(--mdb-btn-box-shadow-state);background-color:var(--mdb-btn-focus-bg)}.btn-check:checked+.btn-light,.btn-check:active+.btn-light,.btn-light:active,.btn-light.active,.btn-light.show{box-shadow:var(--mdb-btn-box-shadow-state)}.btn-check:checked+.btn-light:focus,.btn-check:active+.btn-light:focus,.btn-light:active:focus,.btn-light.active:focus,.btn-light.show:focus{box-shadow:var(--mdb-btn-box-shadow-state)}.btn-check:checked+.btn-light:hover,.btn-check:active+.btn-light:hover,.btn-light:active:hover,.btn-light.active:hover,.btn-light.show:hover{background-color:var(--mdb-btn-active-bg)}.btn-light:disabled,.btn-light.disabled,fieldset:disabled .btn-light{box-shadow:var(--mdb-btn-box-shadow)}[data-mdb-theme=dark] .btn-light{box-shadow:0 4px 9px -4px rgba(0,0,0,.35)}[data-mdb-theme=dark] .btn-light:hover,[data-mdb-theme=dark] .btn-light:active,[data-mdb-theme=dark] .btn-light:focus{box-shadow:0 4px 18px -2px rgba(0,0,0,.7)}.btn-dark{--mdb-btn-bg: #262626;--mdb-btn-color: #eeeeee;--mdb-btn-box-shadow: 0 4px 9px -4px #313131;--mdb-btn-hover-bg: #313131;--mdb-btn-hover-color: #eeeeee;--mdb-btn-focus-bg: #313131;--mdb-btn-focus-color: #eeeeee;--mdb-btn-active-bg: #3c3c3c;--mdb-btn-active-color: #eeeeee;--mdb-btn-box-shadow-state: 0 8px 9px -4px rgba(48, 43, 43, 0.3), 0 4px 18px 0 rgba(48, 43, 43, 0.2)}:not(.btn-check)+.btn-dark:hover,.btn-dark:first-child:hover,.btn-dark:focus-visible,.btn-dark:hover{box-shadow:var(--mdb-btn-box-shadow-state)}.btn-check:focus-visible+.btn-dark,.btn-check:focus+.btn-dark,.btn-dark:focus{box-shadow:var(--mdb-btn-box-shadow-state);background-color:var(--mdb-btn-focus-bg)}.btn-check:checked+.btn-dark,.btn-check:active+.btn-dark,.btn-dark:active,.btn-dark.active,.btn-dark.show{box-shadow:var(--mdb-btn-box-shadow-state)}.btn-check:checked+.btn-dark:focus,.btn-check:active+.btn-dark:focus,.btn-dark:active:focus,.btn-dark.active:focus,.btn-dark.show:focus{box-shadow:var(--mdb-btn-box-shadow-state)}.btn-check:checked+.btn-dark:hover,.btn-check:active+.btn-dark:hover,.btn-dark:active:hover,.btn-dark.active:hover,.btn-dark.show:hover{background-color:var(--mdb-btn-active-bg)}.btn-dark:disabled,.btn-dark.disabled,fieldset:disabled .btn-dark{box-shadow:var(--mdb-btn-box-shadow)}[data-mdb-theme=dark] .btn-dark{box-shadow:0 4px 9px -4px rgba(0,0,0,.35)}[data-mdb-theme=dark] .btn-dark:hover,[data-mdb-theme=dark] .btn-dark:active,[data-mdb-theme=dark] .btn-dark:focus{box-shadow:0 4px 18px -2px rgba(0,0,0,.7)}.btn-outline-primary{--mdb-btn-bg: transparent;--mdb-btn-color: #3b71ca;--mdb-btn-hover-bg: #f5f8fc;--mdb-btn-hover-color: #386bc0;--mdb-btn-focus-bg: #f5f8fc;--mdb-btn-focus-color: #386bc0;--mdb-btn-active-bg: #f5f8fc;--mdb-btn-active-color: #3566b6;--mdb-btn-outline-border-color: #3b71ca;--mdb-btn-outline-focus-border-color: #2f5aa2;--mdb-btn-outline-hover-border-color: #2f5aa2;border-color:var(--mdb-btn-outline-border-color)}:not(.btn-check)+.btn-outline-primary:hover,.btn-outline-primary:first-child:hover,.btn-outline-primary:focus-visible,.btn-outline-primary:hover{border-color:var(--mdb-btn-outline-hover-border-color)}.btn-check:focus-visible+.btn-outline-primary,.btn-check:focus+.btn-outline-primary,.btn-outline-primary:focus{border-color:var(--mdb-btn-outline-focus-border-color)}.btn-check:checked+.btn-outline-primary,.btn-check:active+.btn-outline-primary,.btn-outline-primary:active,.btn-outline-primary.active,.btn-outline-primary.show{border-color:var(--mdb-btn-outline-active-border-color)}.btn-check:checked+.btn-outline-primary:focus,.btn-check:active+.btn-outline-primary:focus,.btn-outline-primary:active:focus,.btn-outline-primary.active:focus,.btn-outline-primary.show:focus{border-color:var(--mdb-btn-outline-focus-border-color)}.btn-outline-primary:disabled,.btn-outline-primary.disabled,fieldset:disabled .btn-outline-primary{border-color:var(--mdb-btn-outline-border-color)}[data-mdb-theme=dark] .btn-outline-primary{--mdb-btn-bg: transparent;--mdb-btn-color: #628dd5;--mdb-btn-hover-bg: #12223d;--mdb-btn-hover-color: #386bc0;--mdb-btn-focus-bg: #12223d;--mdb-btn-focus-color: #386bc0;--mdb-btn-active-bg: #12223d;--mdb-btn-active-color: #3566b6}.btn-outline-secondary{--mdb-btn-bg: transparent;--mdb-btn-color: #294f8d;--mdb-btn-hover-bg: #f4f6f9;--mdb-btn-hover-color: #294f8d;--mdb-btn-focus-bg: #f4f6f9;--mdb-btn-focus-color: #294f8d;--mdb-btn-active-bg: #f4f6f9;--mdb-btn-active-color: #294f8d;--mdb-btn-outline-border-color: #e2eaf7;--mdb-btn-outline-focus-border-color: #d7deeb;--mdb-btn-outline-hover-border-color: #d7deeb;border-color:var(--mdb-btn-outline-border-color)}:not(.btn-check)+.btn-outline-secondary:hover,.btn-outline-secondary:first-child:hover,.btn-outline-secondary:focus-visible,.btn-outline-secondary:hover{border-color:var(--mdb-btn-outline-hover-border-color)}.btn-check:focus-visible+.btn-outline-secondary,.btn-check:focus+.btn-outline-secondary,.btn-outline-secondary:focus{border-color:var(--mdb-btn-outline-focus-border-color)}.btn-check:checked+.btn-outline-secondary,.btn-check:active+.btn-outline-secondary,.btn-outline-secondary:active,.btn-outline-secondary.active,.btn-outline-secondary.show{border-color:var(--mdb-btn-outline-active-border-color)}.btn-check:checked+.btn-outline-secondary:focus,.btn-check:active+.btn-outline-secondary:focus,.btn-outline-secondary:active:focus,.btn-outline-secondary.active:focus,.btn-outline-secondary.show:focus{border-color:var(--mdb-btn-outline-focus-border-color)}.btn-outline-secondary:disabled,.btn-outline-secondary.disabled,fieldset:disabled .btn-outline-secondary{border-color:var(--mdb-btn-outline-border-color)}[data-mdb-theme=dark] .btn-outline-secondary{--mdb-btn-bg: transparent;--mdb-btn-color: #c4d4ef;--mdb-btn-hover-bg: #182d51;--mdb-btn-hover-color: #b1c6ea;--mdb-btn-focus-bg: #182d51;--mdb-btn-focus-color: #b1c6ea;--mdb-btn-active-bg: #182d51;--mdb-btn-active-color: #b1c6ea;--mdb-btn-outline-border-color: #9db8e5;--mdb-btn-outline-focus-border-color: #95afda;--mdb-btn-outline-hover-border-color: #95afda;border-color:var(--mdb-btn-outline-border-color)}.btn-outline-success{--mdb-btn-bg: transparent;--mdb-btn-color: #14a44d;--mdb-btn-hover-bg: #f3faf6;--mdb-btn-hover-color: #139c49;--mdb-btn-focus-bg: #f3faf6;--mdb-btn-focus-color: #139c49;--mdb-btn-active-bg: #f3faf6;--mdb-btn-active-color: #129445;--mdb-btn-outline-border-color: #14a44d;--mdb-btn-outline-focus-border-color: #10833e;--mdb-btn-outline-hover-border-color: #10833e;border-color:var(--mdb-btn-outline-border-color)}:not(.btn-check)+.btn-outline-success:hover,.btn-outline-success:first-child:hover,.btn-outline-success:focus-visible,.btn-outline-success:hover{border-color:var(--mdb-btn-outline-hover-border-color)}.btn-check:focus-visible+.btn-outline-success,.btn-check:focus+.btn-outline-success,.btn-outline-success:focus{border-color:var(--mdb-btn-outline-focus-border-color)}.btn-check:checked+.btn-outline-success,.btn-check:active+.btn-outline-success,.btn-outline-success:active,.btn-outline-success.active,.btn-outline-success.show{border-color:var(--mdb-btn-outline-active-border-color)}.btn-check:checked+.btn-outline-success:focus,.btn-check:active+.btn-outline-success:focus,.btn-outline-success:active:focus,.btn-outline-success.active:focus,.btn-outline-success.show:focus{border-color:var(--mdb-btn-outline-focus-border-color)}.btn-outline-success:disabled,.btn-outline-success.disabled,fieldset:disabled .btn-outline-success{border-color:var(--mdb-btn-outline-border-color)}[data-mdb-theme=dark] .btn-outline-success{--mdb-btn-bg: transparent;--mdb-btn-color: #43b671;--mdb-btn-hover-bg: #063117;--mdb-btn-hover-color: #139c49;--mdb-btn-focus-bg: #063117;--mdb-btn-focus-color: #139c49;--mdb-btn-active-bg: #063117;--mdb-btn-active-color: #129445}.btn-outline-danger{--mdb-btn-bg: transparent;--mdb-btn-color: #dc4c64;--mdb-btn-hover-bg: #fdf6f7;--mdb-btn-hover-color: #d1485f;--mdb-btn-focus-bg: #fdf6f7;--mdb-btn-focus-color: #d1485f;--mdb-btn-active-bg: #fdf6f7;--mdb-btn-active-color: #c6445a;--mdb-btn-outline-border-color: #dc4c64;--mdb-btn-outline-focus-border-color: #b03d50;--mdb-btn-outline-hover-border-color: #b03d50;border-color:var(--mdb-btn-outline-border-color)}:not(.btn-check)+.btn-outline-danger:hover,.btn-outline-danger:first-child:hover,.btn-outline-danger:focus-visible,.btn-outline-danger:hover{border-color:var(--mdb-btn-outline-hover-border-color)}.btn-check:focus-visible+.btn-outline-danger,.btn-check:focus+.btn-outline-danger,.btn-outline-danger:focus{border-color:var(--mdb-btn-outline-focus-border-color)}.btn-check:checked+.btn-outline-danger,.btn-check:active+.btn-outline-danger,.btn-outline-danger:active,.btn-outline-danger.active,.btn-outline-danger.show{border-color:var(--mdb-btn-outline-active-border-color)}.btn-check:checked+.btn-outline-danger:focus,.btn-check:active+.btn-outline-danger:focus,.btn-outline-danger:active:focus,.btn-outline-danger.active:focus,.btn-outline-danger.show:focus{border-color:var(--mdb-btn-outline-focus-border-color)}.btn-outline-danger:disabled,.btn-outline-danger.disabled,fieldset:disabled .btn-outline-danger{border-color:var(--mdb-btn-outline-border-color)}[data-mdb-theme=dark] .btn-outline-danger{--mdb-btn-bg: transparent;--mdb-btn-color: #e37083;--mdb-btn-hover-bg: #42171e;--mdb-btn-hover-color: #d1485f;--mdb-btn-focus-bg: #42171e;--mdb-btn-focus-color: #d1485f;--mdb-btn-active-bg: #42171e;--mdb-btn-active-color: #c6445a}.btn-outline-warning{--mdb-btn-bg: transparent;--mdb-btn-color: #e4a11b;--mdb-btn-hover-bg: #fefaf4;--mdb-btn-hover-color: #d9991a;--mdb-btn-focus-bg: #fefaf4;--mdb-btn-focus-color: #d9991a;--mdb-btn-active-bg: #fefaf4;--mdb-btn-active-color: #cd9118;--mdb-btn-outline-border-color: #e4a11b;--mdb-btn-outline-focus-border-color: #b68116;--mdb-btn-outline-hover-border-color: #b68116;border-color:var(--mdb-btn-outline-border-color)}:not(.btn-check)+.btn-outline-warning:hover,.btn-outline-warning:first-child:hover,.btn-outline-warning:focus-visible,.btn-outline-warning:hover{border-color:var(--mdb-btn-outline-hover-border-color)}.btn-check:focus-visible+.btn-outline-warning,.btn-check:focus+.btn-outline-warning,.btn-outline-warning:focus{border-color:var(--mdb-btn-outline-focus-border-color)}.btn-check:checked+.btn-outline-warning,.btn-check:active+.btn-outline-warning,.btn-outline-warning:active,.btn-outline-warning.active,.btn-outline-warning.show{border-color:var(--mdb-btn-outline-active-border-color)}.btn-check:checked+.btn-outline-warning:focus,.btn-check:active+.btn-outline-warning:focus,.btn-outline-warning:active:focus,.btn-outline-warning.active:focus,.btn-outline-warning.show:focus{border-color:var(--mdb-btn-outline-focus-border-color)}.btn-outline-warning:disabled,.btn-outline-warning.disabled,fieldset:disabled .btn-outline-warning{border-color:var(--mdb-btn-outline-border-color)}[data-mdb-theme=dark] .btn-outline-warning{--mdb-btn-bg: transparent;--mdb-btn-color: #e9b449;--mdb-btn-hover-bg: #443008;--mdb-btn-hover-color: #d9991a;--mdb-btn-focus-bg: #443008;--mdb-btn-focus-color: #d9991a;--mdb-btn-active-bg: #443008;--mdb-btn-active-color: #cd9118}.btn-outline-info{--mdb-btn-bg: transparent;--mdb-btn-color: #54b4d3;--mdb-btn-hover-bg: #f6fbfd;--mdb-btn-hover-color: #50abc8;--mdb-btn-focus-bg: #f6fbfd;--mdb-btn-focus-color: #50abc8;--mdb-btn-active-bg: #f6fbfd;--mdb-btn-active-color: #4ca2be;--mdb-btn-outline-border-color: #54b4d3;--mdb-btn-outline-focus-border-color: #4390a9;--mdb-btn-outline-hover-border-color: #4390a9;border-color:var(--mdb-btn-outline-border-color)}:not(.btn-check)+.btn-outline-info:hover,.btn-outline-info:first-child:hover,.btn-outline-info:focus-visible,.btn-outline-info:hover{border-color:var(--mdb-btn-outline-hover-border-color)}.btn-check:focus-visible+.btn-outline-info,.btn-check:focus+.btn-outline-info,.btn-outline-info:focus{border-color:var(--mdb-btn-outline-focus-border-color)}.btn-check:checked+.btn-outline-info,.btn-check:active+.btn-outline-info,.btn-outline-info:active,.btn-outline-info.active,.btn-outline-info.show{border-color:var(--mdb-btn-outline-active-border-color)}.btn-check:checked+.btn-outline-info:focus,.btn-check:active+.btn-outline-info:focus,.btn-outline-info:active:focus,.btn-outline-info.active:focus,.btn-outline-info.show:focus{border-color:var(--mdb-btn-outline-focus-border-color)}.btn-outline-info:disabled,.btn-outline-info.disabled,fieldset:disabled .btn-outline-info{border-color:var(--mdb-btn-outline-border-color)}[data-mdb-theme=dark] .btn-outline-info{--mdb-btn-bg: transparent;--mdb-btn-color: #76c3dc;--mdb-btn-hover-bg: #19363f;--mdb-btn-hover-color: #50abc8;--mdb-btn-focus-bg: #19363f;--mdb-btn-focus-color: #50abc8;--mdb-btn-active-bg: #19363f;--mdb-btn-active-color: #4ca2be}.btn-outline-light{--mdb-btn-bg: transparent;--mdb-btn-color: #fbfbfb;--mdb-btn-hover-bg: white;--mdb-btn-hover-color: #eeeeee;--mdb-btn-focus-bg: white;--mdb-btn-focus-color: #eeeeee;--mdb-btn-active-bg: white;--mdb-btn-active-color: #e2e2e2;--mdb-btn-outline-border-color: #fbfbfb;--mdb-btn-outline-focus-border-color: #c9c9c9;--mdb-btn-outline-hover-border-color: #c9c9c9;border-color:var(--mdb-btn-outline-border-color)}:not(.btn-check)+.btn-outline-light:hover,.btn-outline-light:first-child:hover,.btn-outline-light:focus-visible,.btn-outline-light:hover{border-color:var(--mdb-btn-outline-hover-border-color)}.btn-check:focus-visible+.btn-outline-light,.btn-check:focus+.btn-outline-light,.btn-outline-light:focus{border-color:var(--mdb-btn-outline-focus-border-color)}.btn-check:checked+.btn-outline-light,.btn-check:active+.btn-outline-light,.btn-outline-light:active,.btn-outline-light.active,.btn-outline-light.show{border-color:var(--mdb-btn-outline-active-border-color)}.btn-check:checked+.btn-outline-light:focus,.btn-check:active+.btn-outline-light:focus,.btn-outline-light:active:focus,.btn-outline-light.active:focus,.btn-outline-light.show:focus{border-color:var(--mdb-btn-outline-focus-border-color)}.btn-outline-light:disabled,.btn-outline-light.disabled,fieldset:disabled .btn-outline-light{border-color:var(--mdb-btn-outline-border-color)}[data-mdb-theme=dark] .btn-outline-light{--mdb-btn-bg: transparent;--mdb-btn-color: #fcfcfc;--mdb-btn-hover-bg: #4b4b4b;--mdb-btn-hover-color: #eeeeee;--mdb-btn-focus-bg: #4b4b4b;--mdb-btn-focus-color: #eeeeee;--mdb-btn-active-bg: #4b4b4b;--mdb-btn-active-color: #e2e2e2}.btn-outline-dark{--mdb-btn-bg: transparent;--mdb-btn-color: #332d2d;--mdb-btn-hover-bg: whitesmoke;--mdb-btn-hover-color: #302b2b;--mdb-btn-focus-bg: whitesmoke;--mdb-btn-focus-color: #302b2b;--mdb-btn-active-bg: whitesmoke;--mdb-btn-active-color: #2e2929;--mdb-btn-outline-border-color: #332d2d;--mdb-btn-outline-focus-border-color: #292424;--mdb-btn-outline-hover-border-color: #292424;border-color:var(--mdb-btn-outline-border-color)}:not(.btn-check)+.btn-outline-dark:hover,.btn-outline-dark:first-child:hover,.btn-outline-dark:focus-visible,.btn-outline-dark:hover{border-color:var(--mdb-btn-outline-hover-border-color)}.btn-check:focus-visible+.btn-outline-dark,.btn-check:focus+.btn-outline-dark,.btn-outline-dark:focus{border-color:var(--mdb-btn-outline-focus-border-color)}.btn-check:checked+.btn-outline-dark,.btn-check:active+.btn-outline-dark,.btn-outline-dark:active,.btn-outline-dark.active,.btn-outline-dark.show{border-color:var(--mdb-btn-outline-active-border-color)}.btn-check:checked+.btn-outline-dark:focus,.btn-check:active+.btn-outline-dark:focus,.btn-outline-dark:active:focus,.btn-outline-dark.active:focus,.btn-outline-dark.show:focus{border-color:var(--mdb-btn-outline-focus-border-color)}.btn-outline-dark:disabled,.btn-outline-dark.disabled,fieldset:disabled .btn-outline-dark{border-color:var(--mdb-btn-outline-border-color)}[data-mdb-theme=dark] .btn-outline-dark{--mdb-btn-bg: transparent;--mdb-btn-color: #5c5757;--mdb-btn-hover-bg: #0f0e0e;--mdb-btn-hover-color: #302b2b;--mdb-btn-focus-bg: #0f0e0e;--mdb-btn-focus-color: #302b2b;--mdb-btn-active-bg: #0f0e0e;--mdb-btn-active-color: #2e2929}.btn-link{--mdb-btn-font-weight: 500;--mdb-btn-color: #3b71ca;--mdb-btn-hover-color: #386bc0;--mdb-btn-hover-bg: hsl(0, 0%, 96%);--mdb-btn-focus-color: #3566b6;--mdb-btn-active-color: #3260ac;--mdb-btn-disabled-color: #9e9e9e;--mdb-btn-box-shadow: none;text-decoration:none;box-shadow:var(--mdb-btn-box-shadow)}:not(.btn-check)+.btn-link:hover,.btn-link:first-child:hover,.btn-link:focus-visible,.btn-link:hover{text-decoration:none;box-shadow:var(--mdb-btn-box-shadow)}.btn-check:focus-visible+.btn-link,.btn-check:focus+.btn-link,.btn-link:focus{color:var(--mdb-btn-focus-color);box-shadow:var(--mdb-btn-box-shadow)}.btn-check:checked+.btn-link,.btn-check:active+.btn-link,.btn-link:active,.btn-link.active,.btn-link.show{color:var(--mdb-btn-active-color);box-shadow:var(--mdb-btn-box-shadow)}.btn-check:checked+.btn-link:focus,.btn-check:active+.btn-link:focus,.btn-link:active:focus,.btn-link.active:focus,.btn-link.show:focus{color:var(--mdb-btn-focus-color);box-shadow:var(--mdb-btn-box-shadow)}.btn-link:disabled,.btn-link.disabled,fieldset:disabled .btn-link{box-shadow:var(--mdb-btn-box-shadow)}.btn-tertiary{--mdb-btn-font-weight: 500;--mdb-btn-color: #3b71ca;--mdb-btn-hover-color: #386bc0;--mdb-btn-hover-bg: transparent;--mdb-btn-focus-color: #3566b6;--mdb-btn-active-color: #3260ac;--mdb-btn-disabled-color: #9e9e9e;--mdb-btn-box-shadow: none;padding-left:0px;padding-right:0px;text-decoration:none;box-shadow:var(--mdb-btn-box-shadow)}:not(.btn-check)+.btn-tertiary:hover,.btn-tertiary:first-child:hover,.btn-tertiary:focus-visible,.btn-tertiary:hover{text-decoration:none;box-shadow:var(--mdb-btn-box-shadow)}.btn-check:focus-visible+.btn-tertiary,.btn-check:focus+.btn-tertiary,.btn-tertiary:focus{color:var(--mdb-btn-focus-color);box-shadow:var(--mdb-btn-box-shadow)}.btn-check:checked+.btn-tertiary,.btn-check:active+.btn-tertiary,.btn-tertiary:active,.btn-tertiary.active,.btn-tertiary.show{color:var(--mdb-btn-active-color);box-shadow:var(--mdb-btn-box-shadow)}.btn-check:checked+.btn-tertiary:focus,.btn-check:active+.btn-tertiary:focus,.btn-tertiary:active:focus,.btn-tertiary.active:focus,.btn-tertiary.show:focus{color:var(--mdb-btn-focus-color);box-shadow:var(--mdb-btn-box-shadow)}.btn-tertiary:disabled,.btn-tertiary.disabled,fieldset:disabled .btn-tertiary{box-shadow:var(--mdb-btn-box-shadow)}[data-mdb-theme=dark] .btn-secondary{--mdb-btn-bg: #b1c6ea;--mdb-btn-hover-bg: #9db8e5;--mdb-btn-focus-bg: #9db8e5;--mdb-btn-active-bg: #9db8e5}[data-mdb-theme=dark] .btn-link{--mdb-btn-color: #9fa6b2;--mdb-btn-hover-color: #bcc1c9;--mdb-btn-hover-bg: #404247;--mdb-btn-focus-color: #bcc1c9;--mdb-btn-active-color: #bcc1c9}[data-mdb-theme=dark] .btn-tertiary{--mdb-btn-color: #9fa6b2;--mdb-btn-hover-color: #bcc1c9;--mdb-btn-focus-color: #bcc1c9;--mdb-btn-active-color: #bcc1c9}.btn-lg,.btn-group-lg>.btn{--mdb-btn-padding-top: 0.75rem;--mdb-btn-padding-bottom: 0.6875rem;--mdb-btn-padding-x: 1.6875rem;--mdb-btn-font-size:0.875rem;--mdb-btn-line-height: 1.6}.btn-sm,.btn-group-sm>.btn{--mdb-btn-padding-top: 0.375rem;--mdb-btn-padding-bottom: 0.3125rem;--mdb-btn-padding-x: 1rem;--mdb-btn-font-size:0.75rem;--mdb-btn-line-height: 1.5}.btn-rounded{--mdb-btn-border-radius: 10rem;border-radius:var(--mdb-btn-border-radius)}.btn-floating,[class*=btn-outline-].btn-floating{--mdb-btn-border-radius: 50%;border-radius:var(--mdb-btn-border-radius);padding:0;position:relative;display:inline-flex;align-items:center;justify-content:center}.btn-floating{--mdb-btn-width: 2.3125rem;--mdb-btn-height: 2.3125rem;--mdb-btn-icon-width: 2.3125rem;--mdb-btn-icon-line-height: 2.3125rem;--mdb-btn-width-lg: 2.8125rem;--mdb-btn-height-lg: 2.8125rem;--mdb-btn-icon-width-lg: 2.8125rem;--mdb-btn-icon-line-height-lg: 2.8125rem;--mdb-btn-width-sm: 1.8125rem;--mdb-btn-height-sm: 1.8125rem;--mdb-btn-icon-width-sm: 1.8125rem;--mdb-btn-icon-line-height-sm: 1.8125rem;width:var(--mdb-btn-width);height:var(--mdb-btn-height)}.btn-floating .fas,.btn-floating .far,.btn-floating .fab{width:var(--mdb-btn-icon-width);line-height:var(--mdb-btn-icon-line-height)}.btn-floating.btn-lg,.btn-group-lg>.btn-floating.btn{width:var(--mdb-btn-width-lg);height:var(--mdb-btn-height-lg)}.btn-floating.btn-lg .fas,.btn-group-lg>.btn-floating.btn .fas,.btn-floating.btn-lg .far,.btn-group-lg>.btn-floating.btn .far,.btn-floating.btn-lg .fab,.btn-group-lg>.btn-floating.btn .fab{width:var(--mdb-btn-icon-width-lg);line-height:var(--mdb-btn-icon-line-height-lg)}.btn-floating.btn-sm,.btn-group-sm>.btn-floating.btn{width:var(--mdb-btn-width-sm);height:var(--mdb-btn-height-sm)}.btn-floating.btn-sm .fas,.btn-group-sm>.btn-floating.btn .fas,.btn-floating.btn-sm .far,.btn-group-sm>.btn-floating.btn .far,.btn-floating.btn-sm .fab,.btn-group-sm>.btn-floating.btn .fab{width:var(--mdb-btn-icon-width-sm);line-height:var(--mdb-btn-icon-line-height-sm)}[class*=btn-outline-].btn-floating{--mdb-btn-icon-width: 2.0625rem;--mdb-btn-icon-width-lg: 2.5625rem;--mdb-btn-icon-width-sm: 1.5625rem;--mdb-btn-icon-line-height: 2.0625rem;--mdb-btn-icon-line-height-lg: 2.5625rem;--mdb-btn-icon-line-height-sm: 1.5625rem}[class*=btn-outline-].btn-floating .fas,[class*=btn-outline-].btn-floating .far,[class*=btn-outline-].btn-floating .fab{width:var(--mdb-btn-icon-width);line-height:var(--mdb-btn-icon-line-height)}[class*=btn-outline-].btn-floating.btn-lg .fas,.btn-group-lg>[class*=btn-outline-].btn-floating.btn .fas,[class*=btn-outline-].btn-floating.btn-lg .far,.btn-group-lg>[class*=btn-outline-].btn-floating.btn .far,[class*=btn-outline-].btn-floating.btn-lg .fab,.btn-group-lg>[class*=btn-outline-].btn-floating.btn .fab{width:var(--mdb-btn-icon-width-lg);line-height:var(--mdb-btn-icon-line-height-lg)}[class*=btn-outline-].btn-floating.btn-sm .fas,.btn-group-sm>[class*=btn-outline-].btn-floating.btn .fas,[class*=btn-outline-].btn-floating.btn-sm .far,.btn-group-sm>[class*=btn-outline-].btn-floating.btn .far,[class*=btn-outline-].btn-floating.btn-sm .fab,.btn-group-sm>[class*=btn-outline-].btn-floating.btn .fab{width:var(--mdb-btn-icon-width-sm);line-height:var(--mdb-btn-icon-line-height-sm)}.fixed-action-btn{--mdb-btn-right: 2.1875rem;--mdb-btn-bottom: 2.1875rem;--mdb-btn-zindex: 1030;--mdb-btn-padding-top: 0.9375rem;--mdb-btn-padding-bottom: 1.25rem;--mdb-btn-padding-x: 1.25rem;--mdb-btn-margin-bottom: 1.5rem;position:fixed;right:var(--mdb-btn-right);bottom:var(--mdb-btn-bottom);z-index:var(--mdb-btn-zindex);display:flex;flex-flow:column-reverse nowrap;align-items:center;padding:var(--mdb-btn-padding-top) var(--mdb-btn-padding-x) var(--mdb-btn-padding-bottom);margin-bottom:0;height:auto;overflow:hidden}.fixed-action-btn>.btn-floating{position:relative;transform:scale(1.2);z-index:10}.fixed-action-btn ul{position:absolute;bottom:0;left:0;right:0;display:flex;flex-direction:column;padding:0;margin:0;margin-bottom:0;text-align:center;opacity:0;transition:transform .4s,opacity .4s;z-index:-1}.fixed-action-btn ul li{z-index:0;display:flex;margin-right:auto;margin-bottom:var(--mdb-btn-margin-bottom);margin-left:auto}.fixed-action-btn ul li:first-of-type{margin-top:calc(var(--mdb-btn-margin-bottom)*.5)}.fixed-action-btn ul a.btn{opacity:0;transition:opacity .4s ease-in}.fixed-action-btn ul a.btn.shown{opacity:1}.fixed-action-btn.active ul{opacity:1}.btn-block{--mdb-btn-margin-top: 0.5rem;display:block;width:100%}.btn-block+.btn-block{margin-top:var(--mdb-btn-margin-top)}hr.divider-horizontal:not([size]){height:2px}.divider-horizontal{opacity:1;background-color:#f5f5f5;height:2px}.divider-vertical{opacity:1;background-color:#f5f5f5;display:inline-block;width:2px;margin:0 1rem}hr.divider-horizontal-blurry{background-image:linear-gradient(90deg, transparent, hsl(0, 0%, 40%), transparent);background-color:rgba(0,0,0,0)}hr.divider-vertical-blurry{background-image:linear-gradient(180deg, transparent, hsl(0, 0%, 40%), transparent);background-color:rgba(0,0,0,0);width:1px;top:0;right:0}.dropdown-menu{--mdb-dropdown-item-border-radius: 0.5rem;color:var(--mdb-dropdown-color);margin:0;padding-top:0;padding-bottom:0;border:0;box-shadow:var(--mdb-dropdown-box-shadow);font-size:var(--mdb-dropdown-font-size);top:100%;left:0;margin-top:var(--mdb-dropdown-spacer)}.dropdown-menu>li{border-radius:0}.dropdown-menu>li:first-child{border-top-left-radius:var(--mdb-dropdown-item-border-radius);border-top-right-radius:var(--mdb-dropdown-item-border-radius);border-bottom-left-radius:0;border-bottom-right-radius:0}.dropdown-menu>li:first-child .dropdown-item{border-top-left-radius:var(--mdb-dropdown-item-border-radius);border-top-right-radius:var(--mdb-dropdown-item-border-radius);border-bottom-left-radius:0;border-bottom-right-radius:0}.dropdown-menu>li:not(:first-child):not(:last-child) .dropdown-item{border-radius:0}.dropdown-menu>li:last-child{border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:var(--mdb-dropdown-item-border-radius);border-bottom-right-radius:var(--mdb-dropdown-item-border-radius)}.dropdown-menu>li:last-child .dropdown-item{border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:var(--mdb-dropdown-item-border-radius);border-bottom-right-radius:var(--mdb-dropdown-item-border-radius)}.dropdown-menu.animation{--mdb-dropdown-menu-animated-animation-duration: 0.55s;--mdb-dropdown-menu-animated-animation-timing-function: ease;display:block;animation-duration:var(--mdb-dropdown-menu-animated-animation-duration);animation-timing-function:var(--mdb-dropdown-menu-animated-animation-timing-function)}.dropdown-item{--mdb-dropdown-state-color: var(--mdb-surface-color);--mdb-dropdown-state-background-color: var(--mdb-highlight-bg-color);padding:var(--mdb-dropdown-item-padding-y) var(--mdb-dropdown-item-padding-x);color:var(--mdb-dropdown-color);border-radius:0}.dropdown-item:hover,.dropdown-item:focus{color:var(--mdb-dropdown-state-color);background-color:var(--mdb-dropdown-state-background-color)}.dropdown-item.active,.dropdown-item:active{color:var(--mdb-dropdown-state-color);background-color:var(--mdb-dropdown-state-background-color)}.dropdown-item:focus{outline:none}.hidden-arrow.dropdown-toggle:after{display:none}.animation{animation-duration:1s;animation-fill-mode:both;padding:auto}@media(prefers-reduced-motion){.animation{transition:none !important;animation:unset !important}}@keyframes fade-in{from{opacity:0}to{opacity:1}}.fade-in{animation-name:fade-in}@keyframes fade-out{from{opacity:1}to{opacity:0}}.fade-out{animation-name:fade-out}.dropdown-divider{--mdb-dropdown-divider-border-top-width: 2px;--mdb-dropdown-divider-border-top-bg: var(--mdb-divider-color);border-top:var(--mdb-dropdown-divider-border-top-width) solid var(--mdb-dropdown-divider-border-top-bg);opacity:1}.dropdown-menu INPUT:not(:-webkit-autofill),.dropdown-menu SELECT:not(:-webkit-autofill),.dropdown-menu TEXTAREA:not(:-webkit-autofill){animation-name:none !important}.btn-group,.btn-group-vertical{--mdb-btn-box-shadow: 0 4px 9px -4px rgba(var(--mdb-box-shadow-color-rgb), 0.35);--mdb-btn-hover-box-shadow: 0 8px 9px -4px rgba(var(--mdb-box-shadow-color-rgb), 0.15), 0 4px 18px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.1);--mdb-btn-focus-box-shadow: 0 8px 9px -4px rgba(var(--mdb-box-shadow-color-rgb), 0.15), 0 4px 18px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.1);--mdb-btn-active-box-shadow: 0 8px 9px -4px rgba(var(--mdb-box-shadow-color-rgb), 0.15), 0 4px 18px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.1);--mdb-btn-group-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;box-shadow:var(--mdb-btn-box-shadow);transition:var(--mdb-btn-group-transition)}.btn-group:hover,.btn-group-vertical:hover{box-shadow:var(--mdb-btn-hover-box-shadow)}.btn-group:focus,.btn-group.focus,.btn-group-vertical:focus,.btn-group-vertical.focus{box-shadow:var(--mdb-btn-focus-box-shadow)}.btn-group:active,.btn-group.active,.btn-group-vertical:active,.btn-group-vertical.active{box-shadow:var(--mdb-btn-active-box-shadow)}.btn-group:active:focus,.btn-group.active:focus,.btn-group-vertical:active:focus,.btn-group-vertical.active:focus{box-shadow:var(--mdb-btn-focus-box-shadow)}.btn-group:disabled,.btn-group.disabled,fieldset:disabled .btn-group,.btn-group-vertical:disabled,.btn-group-vertical.disabled,fieldset:disabled .btn-group-vertical{box-shadow:var(--mdb-btn-box-shadow);border:0}.btn-group>.btn,.btn-group-vertical>.btn{box-shadow:none}:not(.btn-check)+.btn-group>.btn:hover,.btn-group>.btn:first-child:hover,.btn-group>.btn:focus-visible,.btn-group>.btn:hover,:not(.btn-check)+.btn-group-vertical>.btn:hover,.btn-group-vertical>.btn:first-child:hover,.btn-group-vertical>.btn:focus-visible,.btn-group-vertical>.btn:hover{box-shadow:none !important}.btn-check:focus-visible+.btn-group>.btn,.btn-check:focus+.btn-group>.btn,.btn-group>.btn:focus,.btn-check:focus-visible+.btn-group-vertical>.btn,.btn-check:focus+.btn-group-vertical>.btn,.btn-group-vertical>.btn:focus{box-shadow:none}.btn-check:checked+.btn-group>.btn,.btn-check:active+.btn-group>.btn,.btn-group>.btn:active,.btn-group>.btn.active,.btn-group>.btn.show,.btn-check:checked+.btn-group-vertical>.btn,.btn-check:active+.btn-group-vertical>.btn,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn.active,.btn-group-vertical>.btn.show{box-shadow:none}.btn-check:checked+.btn-group>.btn:focus,.btn-check:active+.btn-group>.btn:focus,.btn-group>.btn:active:focus,.btn-group>.btn.active:focus,.btn-group>.btn.show:focus,.btn-check:checked+.btn-group-vertical>.btn:focus,.btn-check:active+.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:active:focus,.btn-group-vertical>.btn.active:focus,.btn-group-vertical>.btn.show:focus{box-shadow:none}.btn-group>.btn:disabled,.btn-group>.btn.disabled,fieldset:disabled .btn-group>.btn,.btn-group-vertical>.btn:disabled,.btn-group-vertical>.btn.disabled,fieldset:disabled .btn-group-vertical>.btn{box-shadow:none}.btn-group>.btn-group,.btn-group-vertical>.btn-group{box-shadow:none}.btn-group>.btn-link:first-child,.btn-group>.btn-tertiary:first-child,.btn-group-vertical>.btn-link:first-child,.btn-group-vertical>.btn-tertiary:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.btn-group>.btn-link:last-child,.btn-group>.btn-tertiary:last-child,.btn-group-vertical>.btn-link:last-child,.btn-group-vertical>.btn-tertiary:last-child{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group,.btn-group-lg>.btn,.btn-group-sm>.btn{--mdb-btn-border-radius: 0.25rem;border-radius:var(--mdb-btn-border-radius)}.nav-tabs{border-bottom:0}.nav-tabs .nav-link{--mdb-nav-tabs-link-font-weight: 500;--mdb-nav-tabs-link-font-size: 12px;--mdb-nav-tabs-link-color: rgba(var(--mdb-emphasis-color-rgb), 0.55);--mdb-nav-tabs-link-padding-top: 17px;--mdb-nav-tabs-link-padding-bottom: 16px;--mdb-nav-tabs-link-padding-x: 29px;--mdb-nav-tabs-link-hover-bgc: var(--mdb-highlight-bg-color);--mdb-nav-tabs-link-border-bottom-width: 2px;--mdb-nav-tabs-link-active-color: #3b71ca;--mdb-nav-tabs-link-active-border-color: #3b71ca;border-width:0;border-bottom:var(--mdb-nav-tabs-link-border-bottom-width) solid rgba(0,0,0,0);border-radius:0;text-transform:uppercase;line-height:1;font-weight:var(--mdb-nav-tabs-link-font-weight);font-size:var(--mdb-nav-tabs-link-font-size);color:var(--mdb-nav-tabs-link-color);padding:var(--mdb-nav-tabs-link-padding-top) var(--mdb-nav-tabs-link-padding-x) var(--mdb-nav-tabs-link-padding-bottom) var(--mdb-nav-tabs-link-padding-x)}.nav-tabs .nav-link:hover{background-color:var(--mdb-nav-tabs-link-hover-bgc);border-color:rgba(0,0,0,0)}.nav-tabs .nav-link:focus{border-color:rgba(0,0,0,0)}.nav-tabs .nav-link.active,.nav-tabs .nav-item.show .nav-link{color:var(--mdb-nav-tabs-link-active-color);border-color:var(--mdb-nav-tabs-link-active-border-color)}.nav-pills{margin-left:-0.5rem}.nav-pills .nav-link{--mdb-nav-pills-link-border-radius: 0.25rem;--mdb-nav-pills-link-font-size: 12px;--mdb-nav-pills-link-padding-top: 17px;--mdb-nav-pills-link-padding-bottom: 16px;--mdb-nav-pills-link-padding-x: 29px;--mdb-nav-pills-link-line-height: 1;--mdb-nav-pills-link-hover-bg: var(--mdb-highlight-bg-color);--mdb-nav-pills-link-font-weight: 500;--mdb-nav-pills-link-color: rgba(var(--mdb-emphasis-color-rgb), 0.55);--mdb-nav-pills-margin: 0.5rem;border-radius:var(--mdb-nav-pills-link-border-radius);font-size:var(--mdb-nav-pills-link-font-size);text-transform:uppercase;padding:var(--mdb-nav-pills-link-padding-top) var(--mdb-nav-pills-link-padding-x) var(--mdb-nav-pills-link-padding-bottom) var(--mdb-nav-pills-link-padding-x);line-height:var(--mdb-nav-pills-link-line-height);background-color:var(--mdb-nav-pills-link-hover-bg);font-weight:var(--mdb-nav-pills-link-font-weight);color:var(--mdb-nav-pills-link-color);margin:var(--mdb-nav-pills-margin)}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{--mdb-nav-pills-link-active-bg: var(--mdb-primary-bg-subtle);--mdb-nav-pills-link-active-color: var(--mdb-primary-text-emphasis);background-color:var(--mdb-nav-pills-link-active-bg);color:var(--mdb-nav-pills-link-active-color)}.nav-fill .nav-item .nav-link,.nav-justified .nav-item .nav-link{width:auto}.navbar{--mdb-navbar-box-shadow: 0 4px 12px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.07), 0 2px 4px rgba(var(--mdb-box-shadow-color-rgb), 0.05);--mdb-navbar-padding-top: 0.5625rem;--mdb-navbar-brand-img-margin-right: 0.25rem;box-shadow:var(--mdb-navbar-box-shadow);padding-top:var(--mdb-navbar-padding-top)}.navbar-toggler{border:0}.navbar-toggler:focus{box-shadow:none}.navbar-dark .navbar-toggler,.navbar-light .navbar-toggler{border:0}.navbar-brand{display:flex;align-items:center}.navbar-brand img{margin-right:var(--mdb-navbar-brand-img-margin-right)}.navbar-nav .dropdown-menu{position:absolute}.navbar-light .navbar-toggler-icon{background-image:none}.navbar-dark .navbar-toggler-icon{background-image:none}.navbar-dark,.navbar[data-mdb-theme=dark]{--mdb-navbar-color: rgba(255, 255, 255, 0.55);--mdb-navbar-hover-color: rgba(255, 255, 255, 0.75);--mdb-navbar-disabled-color: rgba(255, 255, 255, 0.25);--mdb-navbar-active-color: #fff;--mdb-navbar-brand-color: #fff;--mdb-navbar-brand-hover-color: #fff;--mdb-navbar-toggler-border-color: rgba(255, 255, 255, 0.1);--mdb-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.card{border:0}.card .bg-image{border-top-left-radius:var(--mdb-card-border-radius);border-top-right-radius:var(--mdb-card-border-radius)}.card[class*=bg-] .card-header{--mdb-card-header-border-bottom-color: rgba(0, 0, 0, 0.175);border-bottom-color:var(--mdb-card-header-border-bottom-color)}.card[class*=bg-] .card-footer{--mdb-card-footer-border-top-color: rgba(0, 0, 0, 0.175);border-top-color:var(--mdb-card-footer-border-top-color)}.card-header{--mdb-card-header-border-width: 2px;--mdb-card-header-border-color: var(--mdb-divider-color);border-bottom:var(--mdb-card-header-border-width) solid var(--mdb-card-header-border-color)}.card-body[class*=bg-]{border-bottom-left-radius:var(--mdb-card-border-radius);border-bottom-right-radius:var(--mdb-card-border-radius)}.card-footer{--mdb-card-footer-border-color: var(--mdb-divider-color);--mdb-card-footer-border-width: 2px;border-top:var(--mdb-card-footer-border-width) solid var(--mdb-card-footer-border-color)}.card-img-left{border-top-left-radius:var(--mdb-card-border-radius);border-bottom-left-radius:var(--mdb-card-border-radius)}.navbar .breadcrumb{--mdb-breadcrumb-item-color: rgba(var(--mdb-emphasis-color-rgb), 0.55);--mdb-breadcrumb-item-hover-color: rgba(var(--mdb-emphasis-color-rgb), 0.7);--mdb-breadcrumb-item-before-color: rgba(var(--mdb-emphasis-color-rgb), 0.55);--mdb-breadcrumb-item-transition: color 0.15s ease-in-out;background-color:rgba(0,0,0,0);margin-bottom:0}.navbar .breadcrumb .breadcrumb-item a{color:var(--mdb-breadcrumb-item-color);transition:var(--mdb-breadcrumb-item-transition)}.navbar .breadcrumb .breadcrumb-item a:hover,.navbar .breadcrumb .breadcrumb-item a:focus{color:var(--mdb-breadcrumb-item-hover-color)}.navbar .breadcrumb .breadcrumb-item+.breadcrumb-item:before{color:var(--mdb-breadcrumb-item-before-color)}.pagination{--mdb-pagination-border-radius: 0.25rem;--mdb-pagination-active-transition: all 0.2s linear;--mdb-pagination-active-font-weight: 500;--mdb-pagination-circle-border-radius: 50%;--mdb-pagination-circle-padding-x: 0.841rem;--mdb-pagination-circle-padding-l-lg: 1.399414rem;--mdb-pagination-circle-padding-r-lg: 1.399415rem;--mdb-pagination-circle-padding-l-sm: 0.696rem;--mdb-pagination-circle-padding-r-sm: 0.688rem}.page-link{background-color:rgba(0,0,0,0);border:0;outline:0;border-radius:var(--mdb-pagination-border-radius)}.page-link:focus{box-shadow:none}.page-link.active,.active>.page-link{border:0;transition:var(--mdb-pagination-active-transition);font-weight:var(--mdb-pagination-active-font-weight)}.page-item:not(:first-child) .page-link{margin-left:0}.page-item:first-child .page-link{border-top-left-radius:var(--mdb-pagination-border-radius);border-bottom-left-radius:var(--mdb-pagination-border-radius)}.page-item:last-child .page-link{border-top-right-radius:var(--mdb-pagination-border-radius);border-bottom-right-radius:var(--mdb-pagination-border-radius)}.pagination-circle .page-item:first-child .page-link{border-radius:var(--mdb-pagination-circle-border-radius)}.pagination-circle .page-item:last-child .page-link{border-radius:var(--mdb-pagination-circle-border-radius)}.pagination-circle .page-link{border-radius:var(--mdb-pagination-circle-border-radius);padding-left:var(--mdb-pagination-circle-padding-x);padding-right:var(--mdb-pagination-circle-padding-x)}.pagination-circle.pagination-lg .page-link{padding-left:var(--mdb-pagination-circle-padding-l-lg);padding-right:var(--mdb-pagination-circle-padding-r-lg)}.pagination-circle.pagination-sm .page-link{padding-left:var(--mdb-pagination-circle-padding-l-sm);padding-right:var(--mdb-pagination-circle-padding-r-sm)}.badge-dot{--mdb-badge-border-radius: 4.5px;--mdb-badge-height: 9px;--mdb-badge-width: 9px;--mdb-badge-margin-left: -0.3125rem;position:absolute;min-width:0;width:var(--mdb-badge-width);height:var(--mdb-badge-height);border-radius:var(--mdb-badge-border-radius);padding:0;margin-left:var(--mdb-badge-margin-left)}.badge-dot:empty{display:inline-block}.badge-notification{--mdb-badge-font-size: 0.6rem;--mdb-badge-padding-x: 0.45em;--mdb-badge-padding-y: 0.2em;--mdb-badge-margin-top: -0.1rem;--mdb-badge-margin-left: -0.5rem;position:absolute;font-size:var(--mdb-badge-font-size);padding:var(--mdb-badge-padding-y) var(--mdb-badge-padding-x);margin-top:var(--mdb-badge-margin-top);margin-left:var(--mdb-badge-margin-left)}.badge-primary{background-color:var(--mdb-primary-bg-subtle);color:var(--mdb-primary-text-emphasis)}.badge-primary i{color:var(--mdb-primary-text-emphasis)}.badge-secondary{background-color:var(--mdb-secondary-bg-subtle);color:var(--mdb-secondary-text-emphasis)}.badge-secondary i{color:var(--mdb-secondary-text-emphasis)}.badge-success{background-color:var(--mdb-success-bg-subtle);color:var(--mdb-success-text-emphasis)}.badge-success i{color:var(--mdb-success-text-emphasis)}.badge-danger{background-color:var(--mdb-danger-bg-subtle);color:var(--mdb-danger-text-emphasis)}.badge-danger i{color:var(--mdb-danger-text-emphasis)}.badge-warning{background-color:var(--mdb-warning-bg-subtle);color:var(--mdb-warning-text-emphasis)}.badge-warning i{color:var(--mdb-warning-text-emphasis)}.badge-info{background-color:var(--mdb-info-bg-subtle);color:var(--mdb-info-text-emphasis)}.badge-info i{color:var(--mdb-info-text-emphasis)}.badge-light{background-color:var(--mdb-light-bg-subtle);color:var(--mdb-light-text-emphasis)}.badge-light i{color:var(--mdb-light-text-emphasis)}.badge-dark{background-color:var(--mdb-dark-bg-subtle);color:var(--mdb-dark-text-emphasis)}.badge-dark i{color:var(--mdb-dark-text-emphasis)}.alert{border:0}.alert-absolute{position:absolute}.alert-fixed{--mdb-alert-fixed-z-index: 1070;position:fixed;z-index:var(--mdb-alert-fixed-z-index)}.parent-alert-relative{position:relative}.alert-primary{background-color:var(--mdb-primary-bg-subtle);color:var(--mdb-primary-text-emphasis)}.alert-primary i{color:var(--mdb-primary-text-emphasis)}.alert-primary .alert-link{color:var(--mdb-primary-text-emphasis)}.alert-primary .alert-link:hover{color:rgba(var(--mdb-primary-text-emphasis), var(--mdb-text-hover-opacity))}.alert-secondary{background-color:var(--mdb-secondary-bg-subtle);color:var(--mdb-secondary-text-emphasis)}.alert-secondary i{color:var(--mdb-secondary-text-emphasis)}.alert-secondary .alert-link{color:var(--mdb-secondary-text-emphasis)}.alert-secondary .alert-link:hover{color:rgba(var(--mdb-secondary-text-emphasis), var(--mdb-text-hover-opacity))}.alert-success{background-color:var(--mdb-success-bg-subtle);color:var(--mdb-success-text-emphasis)}.alert-success i{color:var(--mdb-success-text-emphasis)}.alert-success .alert-link{color:var(--mdb-success-text-emphasis)}.alert-success .alert-link:hover{color:rgba(var(--mdb-success-text-emphasis), var(--mdb-text-hover-opacity))}.alert-danger{background-color:var(--mdb-danger-bg-subtle);color:var(--mdb-danger-text-emphasis)}.alert-danger i{color:var(--mdb-danger-text-emphasis)}.alert-danger .alert-link{color:var(--mdb-danger-text-emphasis)}.alert-danger .alert-link:hover{color:rgba(var(--mdb-danger-text-emphasis), var(--mdb-text-hover-opacity))}.alert-warning{background-color:var(--mdb-warning-bg-subtle);color:var(--mdb-warning-text-emphasis)}.alert-warning i{color:var(--mdb-warning-text-emphasis)}.alert-warning .alert-link{color:var(--mdb-warning-text-emphasis)}.alert-warning .alert-link:hover{color:rgba(var(--mdb-warning-text-emphasis), var(--mdb-text-hover-opacity))}.alert-info{background-color:var(--mdb-info-bg-subtle);color:var(--mdb-info-text-emphasis)}.alert-info i{color:var(--mdb-info-text-emphasis)}.alert-info .alert-link{color:var(--mdb-info-text-emphasis)}.alert-info .alert-link:hover{color:rgba(var(--mdb-info-text-emphasis), var(--mdb-text-hover-opacity))}.alert-light{background-color:var(--mdb-light-bg-subtle);color:var(--mdb-light-text-emphasis)}.alert-light i{color:var(--mdb-light-text-emphasis)}.alert-light .alert-link{color:var(--mdb-light-text-emphasis)}.alert-light .alert-link:hover{color:rgba(var(--mdb-light-text-emphasis), var(--mdb-text-hover-opacity))}.alert-dark{background-color:var(--mdb-dark-bg-subtle);color:var(--mdb-dark-text-emphasis)}.alert-dark i{color:var(--mdb-dark-text-emphasis)}.alert-dark .alert-link{color:var(--mdb-dark-text-emphasis)}.alert-dark .alert-link:hover{color:rgba(var(--mdb-dark-text-emphasis), var(--mdb-text-hover-opacity))}.progress{border-radius:0;box-shadow:none}.list-group{--mdb-list-group-item-transition-time: 0.5s}.list-group-item-action{transition:var(--mdb-list-group-item-transition-time)}.list-group-item-action:hover{transition:var(--mdb-list-group-item-transition-time)}.list-group-light{--mdb-list-group-light-item-py: 1rem;--mdb-list-group-light-item-border: 2px solid var(--mdb-divider-color);--mdb-list-group-light-item-border-width: 2px;--mdb-list-group-light-active-border-radius: 0.5rem;--mdb-list-group-light-active-bg: var(--mdb-primary-bg-subtle);--mdb-list-group-light-active-color: var(--mdb-primary-text-emphasis)}.list-group-light .list-group-item{padding:var(--mdb-list-group-light-item-py) 0;border:var(--mdb-list-group-light-item-border)}.list-group-light>.list-group-item{border-width:0 0 var(--mdb-list-group-light-item-border-width)}.list-group-light>.list-group-item:last-of-type{border:none}.list-group-light .active{border:none;border-radius:var(--mdb-list-group-light-active-border-radius);background-color:var(--mdb-list-group-light-active-bg);color:var(--mdb-list-group-light-active-color)}.list-group-light .list-group-item-action:hover{border-radius:var(--mdb-list-group-light-active-border-radius)}.list-group-light .list-group-item-action:focus{border-radius:var(--mdb-list-group-light-active-border-radius)}.list-group-small{--mdb-list-group-small-item-py: 0.5rem}.list-group-small .list-group-item{padding:var(--mdb-list-group-small-item-py) 0}.list-group-item-primary{background-color:var(--mdb-primary-bg-subtle);color:var(--mdb-primary-text-emphasis)}.list-group-item-primary i{color:var(--mdb-primary-link-emphasis)}.list-group-item-secondary{background-color:var(--mdb-secondary-bg-subtle);color:var(--mdb-secondary-text-emphasis)}.list-group-item-secondary i{color:var(--mdb-secondary-link-emphasis)}.list-group-item-success{background-color:var(--mdb-success-bg-subtle);color:var(--mdb-success-text-emphasis)}.list-group-item-success i{color:var(--mdb-success-link-emphasis)}.list-group-item-danger{background-color:var(--mdb-danger-bg-subtle);color:var(--mdb-danger-text-emphasis)}.list-group-item-danger i{color:var(--mdb-danger-link-emphasis)}.list-group-item-warning{background-color:var(--mdb-warning-bg-subtle);color:var(--mdb-warning-text-emphasis)}.list-group-item-warning i{color:var(--mdb-warning-link-emphasis)}.list-group-item-info{background-color:var(--mdb-info-bg-subtle);color:var(--mdb-info-text-emphasis)}.list-group-item-info i{color:var(--mdb-info-link-emphasis)}.list-group-item-light{background-color:var(--mdb-light-bg-subtle);color:var(--mdb-light-text-emphasis)}.list-group-item-light i{color:var(--mdb-light-link-emphasis)}.list-group-item-dark{background-color:var(--mdb-dark-bg-subtle);color:var(--mdb-dark-text-emphasis)}.list-group-item-dark i{color:var(--mdb-dark-link-emphasis)}.btn-close:focus{box-shadow:none}.modal-content{--mdb-modal-box-shadow: 0 2px 15px -3px rgba(var(--mdb-box-shadow-color-rgb), 0.07), 0 10px 20px -2px rgba(var(--mdb-box-shadow-color-rgb), 0.04);border:0;box-shadow:var(--mdb-modal-box-shadow)}.toast{--mdb-toast-border-bottom-width: 2px;--mdb-toast-btn-close-width: 1.3em;--mdb-toast-btn-close-mr: -0.375rem;--mdb-toast-btn-close-ml: 0.75rem;--mdb-toast-bg: var(--mdb-surface-bg);--mdb-toast-header-bg: var(--mdb-surface-bg);border:0}.toast .btn-close{width:var(--mdb-toast-btn-close-width)}.toast-header{border-bottom-width:var(--mdb-toast-border-bottom-width)}.toast-header .btn-close{margin-right:var(--mdb-toast-btn-close-mr);margin-left:var(--mdb-toast-btn-close-ml)}.parent-toast-relative{position:relative}.toast-absolute{position:absolute}.toast-fixed{position:fixed;z-index:var(--mdb-toast-zindex)}.toast-primary{background-color:var(--mdb-primary-bg-subtle);color:var(--mdb-primary-text-emphasis);border-color:var(--mdb-primary-border-subtle)}.toast-primary i{color:var(--mdb-primary-text-emphasis)}.toast-secondary{background-color:var(--mdb-secondary-bg-subtle);color:var(--mdb-secondary-text-emphasis);border-color:var(--mdb-secondary-border-subtle)}.toast-secondary i{color:var(--mdb-secondary-text-emphasis)}.toast-success{background-color:var(--mdb-success-bg-subtle);color:var(--mdb-success-text-emphasis);border-color:var(--mdb-success-border-subtle)}.toast-success i{color:var(--mdb-success-text-emphasis)}.toast-danger{background-color:var(--mdb-danger-bg-subtle);color:var(--mdb-danger-text-emphasis);border-color:var(--mdb-danger-border-subtle)}.toast-danger i{color:var(--mdb-danger-text-emphasis)}.toast-warning{background-color:var(--mdb-warning-bg-subtle);color:var(--mdb-warning-text-emphasis);border-color:var(--mdb-warning-border-subtle)}.toast-warning i{color:var(--mdb-warning-text-emphasis)}.toast-info{background-color:var(--mdb-info-bg-subtle);color:var(--mdb-info-text-emphasis);border-color:var(--mdb-info-border-subtle)}.toast-info i{color:var(--mdb-info-text-emphasis)}.toast-light{background-color:var(--mdb-light-bg-subtle);color:var(--mdb-light-text-emphasis);border-color:var(--mdb-light-border-subtle)}.toast-light i{color:var(--mdb-light-text-emphasis)}.toast-dark{background-color:var(--mdb-dark-bg-subtle);color:var(--mdb-dark-text-emphasis);border-color:var(--mdb-dark-border-subtle)}.toast-dark i{color:var(--mdb-dark-text-emphasis)}.tooltip{--mdb-tooltip-font-size: 14px}.tooltip.show{opacity:1}.tooltip .tooltip-arrow{display:none}.tooltip-inner{font-size:var(--mdb-tooltip-font-size)}.popover{--mdb-popover-border-bottom-width: 2px}.popover .popover-arrow{display:none}.popover-header{border-bottom:var(--mdb-popover-border-bottom-width) solid var(--mdb-popover-border-color)}.nav-pills.menu-sidebar .nav-link{--mdb-scrollspy-menu-sidebar-font-size: 0.8rem;--mdb-scrollspy-menu-sidebar-color: var(--mdb-body-color);--mdb-scrollspy-menu-sidebar-line-height: 1.1rem;--mdb-scrollspy-menu-sidebar-padding-x: 5px;--mdb-scrollspy-menu-sidebar-font-weight: 400;--mdb-scrollspy-menu-sidebar-transition: all 0.2s ease-in-out;--mdb-scrollspy-menu-sidebar-margin-y: 3px;font-size:var(--mdb-scrollspy-menu-sidebar-font-size);background-color:rgba(0,0,0,0);color:var(--mdb-scrollspy-menu-sidebar-color);line-height:var(--mdb-scrollspy-menu-sidebar-line-height);padding:0 var(--mdb-scrollspy-menu-sidebar-padding-x);font-weight:var(--mdb-scrollspy-menu-sidebar-font-weight);transition:var(--mdb-scrollspy-menu-sidebar-transition);text-transform:initial;margin-top:var(--mdb-scrollspy-menu-sidebar-margin-y);margin-bottom:var(--mdb-scrollspy-menu-sidebar-margin-y)}.nav-pills.menu-sidebar .nav-link.active,.nav-pills.menu-sidebar .show>.nav-link{--mdb-scrollspy-menu-sidebar-active-color: #3b71ca;--mdb-scrollspy-menu-sidebar-active-font-weight: 600;--mdb-scrollspy-menu-sidebar-active-border-width: 0.125rem;--mdb-scrollspy-menu-sidebar-active-border-color: #3b71ca;background-color:rgba(0,0,0,0);box-shadow:none;color:var(--mdb-scrollspy-menu-sidebar-active-color);font-weight:var(--mdb-scrollspy-menu-sidebar-active-font-weight);border-left:var(--mdb-scrollspy-menu-sidebar-active-border-width) solid var(--mdb-scrollspy-menu-sidebar-active-border-color);border-radius:0}.nav-pills.menu-sidebar .collapsible-scrollspy~.nav{--mdb-scrollspy-collapsible-nav-transition-time: 0.5s;transition:height var(--mdb-scrollspy-collapsible-nav-transition-time) ease;flex-wrap:nowrap}.ripple-surface{position:relative;overflow:hidden;display:inline-block;vertical-align:bottom}.ripple-surface-unbound{overflow:visible}.ripple-wave{--mdb-ripple-wave-cubicBezier: cubic-bezier(0, 0, 0.15, 1);--mdb-ripple-wave-border-radius: 50%;--mdb-ripple-wave-opacity: 0.5;--mdb-ripple-wave-transform: scale(0);--mdb-ripple-wave-z-index: 999;--mdb-ripple-wave-active-transform: scale(1);background-image:radial-gradient(circle, rgba(0, 0, 0, 0.2) 0, rgba(0, 0, 0, 0.3) 40%, rgba(0, 0, 0, 0.4) 50%, rgba(0, 0, 0, 0.5) 60%, rgba(0, 0, 0, 0) 70%);border-radius:var(--mdb-ripple-wave-border-radius);opacity:var(--mdb-ripple-wave-opacity);pointer-events:none;position:absolute;touch-action:none;transform:var(--mdb-ripple-wave-transform);transition-property:transform,opacity;transition-timing-function:var(--mdb-ripple-wave-cubicBezier),var(--mdb-ripple-wave-cubicBezier);z-index:var(--mdb-ripple-wave-z-index)}.ripple-wave.active{transform:var(--mdb-ripple-wave-active-transform);opacity:0}.btn .ripple-wave{background-image:radial-gradient(circle, rgba(255, 255, 255, 0.2) 0, rgba(255, 255, 255, 0.3) 40%, rgba(255, 255, 255, 0.4) 50%, rgba(255, 255, 255, 0.5) 60%, rgba(255, 255, 255, 0) 70%)}.input-wrapper .ripple-wave{background-image:radial-gradient(circle, rgba(255, 255, 255, 0.2) 0, rgba(255, 255, 255, 0.3) 40%, rgba(255, 255, 255, 0.4) 50%, rgba(255, 255, 255, 0.5) 60%, rgba(255, 255, 255, 0) 70%)}.ripple-surface-primary .ripple-wave{background-image:radial-gradient(circle, rgba(59, 113, 202, 0.2) 0, rgba(59, 113, 202, 0.3) 40%, rgba(59, 113, 202, 0.4) 50%, rgba(59, 113, 202, 0.5) 60%, rgba(59, 113, 202, 0) 70%)}.ripple-surface-secondary .ripple-wave{background-image:radial-gradient(circle, rgba(227, 235, 247, 0.2) 0, rgba(227, 235, 247, 0.3) 40%, rgba(227, 235, 247, 0.4) 50%, rgba(227, 235, 247, 0.5) 60%, rgba(227, 235, 247, 0) 70%)}.ripple-surface-success .ripple-wave{background-image:radial-gradient(circle, rgba(20, 164, 77, 0.2) 0, rgba(20, 164, 77, 0.3) 40%, rgba(20, 164, 77, 0.4) 50%, rgba(20, 164, 77, 0.5) 60%, rgba(20, 164, 77, 0) 70%)}.ripple-surface-danger .ripple-wave{background-image:radial-gradient(circle, rgba(220, 76, 100, 0.2) 0, rgba(220, 76, 100, 0.3) 40%, rgba(220, 76, 100, 0.4) 50%, rgba(220, 76, 100, 0.5) 60%, rgba(220, 76, 100, 0) 70%)}.ripple-surface-warning .ripple-wave{background-image:radial-gradient(circle, rgba(228, 161, 27, 0.2) 0, rgba(228, 161, 27, 0.3) 40%, rgba(228, 161, 27, 0.4) 50%, rgba(228, 161, 27, 0.5) 60%, rgba(228, 161, 27, 0) 70%)}.ripple-surface-info .ripple-wave{background-image:radial-gradient(circle, rgba(84, 180, 211, 0.2) 0, rgba(84, 180, 211, 0.3) 40%, rgba(84, 180, 211, 0.4) 50%, rgba(84, 180, 211, 0.5) 60%, rgba(84, 180, 211, 0) 70%)}.ripple-surface-light .ripple-wave{background-image:radial-gradient(circle, rgba(251, 251, 251, 0.2) 0, rgba(251, 251, 251, 0.3) 40%, rgba(251, 251, 251, 0.4) 50%, rgba(251, 251, 251, 0.5) 60%, rgba(251, 251, 251, 0) 70%)}.ripple-surface-dark .ripple-wave{background-image:radial-gradient(circle, rgba(51, 45, 45, 0.2) 0, rgba(51, 45, 45, 0.3) 40%, rgba(51, 45, 45, 0.4) 50%, rgba(51, 45, 45, 0.5) 60%, rgba(51, 45, 45, 0) 70%)}.range{--mdb-range-thumb-height: 30px;--mdb-range-thumb-width: 30px;--mdb-range-thumb-top: -35px;--mdb-range-thumb-margin-left: -15px;--mdb-range-thumb-border-radius: 50% 50% 50% 0;--mdb-range-thumb-transform: scale(0);--mdb-range-thumb-transition: transform 0.2s ease-in-out;--mdb-range-thumb-value-font-size: 12px;--mdb-range-thumb-value-line-height: 30px;--mdb-range-thumb-value-color: #fff;--mdb-range-thumb-value-font-weight: 500;--mdb-range-thumb-background: #3b71ca;position:relative}.range .thumb{position:absolute;display:block;height:var(--mdb-range-thumb-height);width:var(--mdb-range-thumb-width);top:var(--mdb-range-thumb-top);margin-left:var(--mdb-range-thumb-margin-left);text-align:center;border-radius:var(--mdb-range-thumb-border-radius);transform:var(--mdb-range-thumb-transform);transform-origin:bottom;transition:var(--mdb-range-thumb-transition)}.range .thumb:after{position:absolute;display:block;content:"";transform:translateX(-50%);width:100%;height:100%;top:0;border-radius:var(--mdb-range-thumb-border-radius);transform:rotate(-45deg);background:var(--mdb-range-thumb-background);z-index:-1}.range .thumb .thumb-value{display:block;font-size:var(--mdb-range-thumb-value-font-size);line-height:var(--mdb-range-thumb-value-line-height);color:var(--mdb-range-thumb-value-color);font-weight:var(--mdb-range-thumb-value-font-weight);z-index:2}.range .thumb.thumb-active{transform:scale(1)}.accordion-button:not(.collapsed):focus{box-shadow:var(--mdb-accordion-btn-focus-box-shadow)}.accordion-button:focus{border-color:var(--mdb-accordion-btn-focus-border-color);outline:0;box-shadow:none}.accordion-flush{--mdb-accordion-flush-btn-box-shadow: inset 0 -2px 0 var(--mdb-divider-color);--mdb-accordion-flush-border-bottom: 2px solid var(--mdb-divider-color)}.accordion-flush .accordion-button:not(.collapsed){box-shadow:var(--mdb-accordion-flush-btn-box-shadow)}.accordion-flush .accordion-item{border-bottom:var(--mdb-accordion-flush-border-bottom)}.accordion-borderless{--mdb-accordion-borderless-btn-border-radius: 0.5rem;--mdb-accordion-borderless-btn-bg: var(--mdb-primary-bg-subtle);--mdb-accordion-borderless-btn-color: var(--mdb-primary-text-emphasis)}.accordion-borderless .accordion-item{border:0}.accordion-borderless .accordion-item .accordion-button{border-radius:var(--mdb-accordion-borderless-btn-border-radius)}.accordion-borderless .accordion-item .accordion-button:not(.collapsed){background-color:var(--mdb-accordion-borderless-btn-bg);color:var(--mdb-accordion-borderless-btn-color);box-shadow:none}.carousel-control-prev-icon::after{content:"";--mdb-carousel-control-icon-font-size: 1.7rem;--mdb-carousel-control-icon-font-weight: 700;font-weight:var(--mdb-carousel-control-icon-font-weight);font-size:var(--mdb-carousel-control-icon-font-size);font-family:"Font Awesome 6 Pro","Font Awesome 6 Free"}.carousel-control-next-icon::after{content:"";--mdb-carousel-control-icon-font-size: 1.7rem;--mdb-carousel-control-icon-font-weight: 700;font-weight:var(--mdb-carousel-control-icon-font-weight);font-size:var(--mdb-carousel-control-icon-font-size);font-family:"Font Awesome 6 Pro","Font Awesome 6 Free"}body{background-color:#303030;color:#fff}.bg-body{background-color:#303030 !important}.bg-primary{background-color:#3b71ca !important;color:#fff}.bg-secondary{background-color:#e3ebf7 !important;color:#fff}.border-top,.border-right,.border-bottom,.border-left,.border{border-color:rgba(255,255,255,.12) !important}.border-primary{border-color:#3b71ca !important}.border-secondary{border-color:#e3ebf7 !important}a:not(.sidenav-link):not(.btn):not(.dropdown-item):not(.nav-link):not(.navbar-brand):not(.page-link):not(.carousel-control-prev):not(.carousel-control-next){color:#8babe0}a:not(.sidenav-link):not(.btn):not(.dropdown-item):not(.nav-link):not(.navbar-brand):not(.page-link):not(.carousel-control-prev):not(.carousel-control-next):hover{color:#779dda}.text-primary{color:#3b71ca !important}.text-secondary{color:#e3ebf7 !important}.note{color:#424242}.note-primary{background-color:#e8eef9;border-color:#3b71ca}.note-secondary{background-color:#fff;border-color:#e3ebf7}.alert-primary{--mdb-alert-color: var(--mdb-primary-text-emphasis);--mdb-alert-bg: var(--mdb-primary-bg-subtle);--mdb-alert-border-color: var(--mdb-primary-border-subtle)}.alert-secondary{--mdb-alert-color: var(--mdb-secondary-text-emphasis);--mdb-alert-bg: var(--mdb-secondary-bg-subtle);--mdb-alert-border-color: var(--mdb-secondary-border-subtle)}.btn-primary{background-color:#3b71ca;color:#fff}.btn-primary:hover{background-color:#2f60af;color:#fff}.btn-primary:focus,.btn-primary.focus{background-color:#2f60af;color:#fff}.btn-check:checked+.btn-primary,.btn-check:active+.btn-primary,.btn-primary:active,.btn-primary.active,.show>.btn-primary.dropdown-toggle{background-color:#22447d;color:#fff}.btn-primary:disabled,.btn-primary.disabled{background-color:#3b71ca;color:#fff}.btn-secondary{background-color:#e3ebf7;color:#262626}.btn-secondary:hover{background-color:#c5d6ef;color:#262626}.btn-secondary:focus,.btn-secondary.focus{background-color:#c5d6ef;color:#262626}.btn-check:checked+.btn-secondary,.btn-check:active+.btn-secondary,.btn-secondary:active,.btn-secondary.active,.show>.btn-secondary.dropdown-toggle{background-color:#94b2e0;color:#262626}.btn-secondary:disabled,.btn-secondary.disabled{background-color:#e3ebf7;color:#262626}.btn-outline-primary{color:#3b71ca;border-color:#3b71ca}.btn-outline-primary:hover{color:#3b71ca;border-color:#3b71ca}.btn-outline-primary:focus,.btn-outline-primary.focus{color:#3b71ca}.btn-outline-primary:active,.btn-outline-primary.active,.btn-outline-primary.dropdown-toggle.show{color:#3b71ca}.btn-outline-primary:disabled,.btn-outline-primary.disabled{color:#3b71ca}.btn-outline-secondary{color:#e3ebf7;border-color:#e3ebf7}.btn-outline-secondary:hover{color:#e3ebf7;border-color:#e3ebf7}.btn-outline-secondary:focus,.btn-outline-secondary.focus{color:#e3ebf7}.btn-outline-secondary:active,.btn-outline-secondary.active,.btn-outline-secondary.dropdown-toggle.show{color:#e3ebf7}.btn-outline-secondary:disabled,.btn-outline-secondary.disabled{color:#e3ebf7}.btn-link{color:#8babe0}.btn-link:hover{background-color:rgba(0,0,0,.15);color:#779dda}.btn-link:focus,.btn-link.focus{background-color:rgba(0,0,0,.15)}.btn-link:active,.btn-link.active{background-color:rgba(0,0,0,.15)}.btn-link:active:focus,.btn-link.active:focus{background-color:rgba(0,0,0,.15)}.list-group-item{background-color:#424242;border-color:rgba(255,255,255,.12)}.list-group-item.active{background-color:#3b71ca;border-color:#3b71ca}.list-group-item.disabled,.list-group-item:disabled{background-color:#424242}.list-group-item-action.active:hover,.list-group-item-action.active:focus{background-color:#3b71ca;border-color:#3b71ca}.list-group-item-action{color:#fff}.list-group-item-action:hover,.list-group-item-action:focus{color:#fff;background:rgba(255,255,255,.3)}.list-group-item-action:active{color:#fff;background:rgba(255,255,255,.3)}.list-group-item-action.list-group-item-primary{color:#9fbae5}.list-group-item-action.list-group-item-primary:hover{color:#779dda;background-color:#dce5f5}.list-group-item-action.list-group-item-secondary:hover{color:#a8c1e6;background-color:#fff}.list-group-item-primary{color:#3b71ca}.list-group-item-secondary{color:#e3ebf7}.card{background-color:#424242;box-shadow:0 10px 20px 0 rgba(0,0,0,.25)}.card-header{background-color:#424242 !important;border-bottom-color:rgba(255,255,255,.12)}.card-footer{border-top-color:rgba(255,255,255,.12);background-color:#424242 !important}.card-link{color:#8babe0}.card-link:hover{color:#779dda}.modal-content{background-color:#424242}.modal-header{border-bottom-color:rgba(255,255,255,.12);color:#fff}.modal-footer{border-top-color:rgba(255,255,255,.12)}.btn-close{filter:invert(1) grayscale(100%) brightness(200%);width:20px}.dropdown-menu{color:#fff;background-color:#424242;box-shadow:0 5px 15px 0 rgba(0,0,0,.25)}.dropdown-item{color:#fff}.dropdown-item:hover,.dropdown-item:focus{color:#fff;background:rgba(255,255,255,.3)}.dropdown-item.active,.dropdown-item:active{color:#fff;background:rgba(255,255,255,.3)}.dropdown-divider{border-color:rgba(255,255,255,.12)}.dropdown-item-text{color:#dee2e6}.dropdown-header{color:#dee2e6}.navbar .breadcrumb .breadcrumb-item a{color:#fff}.navbar .breadcrumb .breadcrumb-item a:hover,.navbar .breadcrumb .breadcrumb-item a:focus{color:#fff}.navbar .breadcrumb .breadcrumb-item+.breadcrumb-item:before{color:#fff}.nav-tabs .nav-link{border-color:rgba(0,0,0,0);color:#dee2e6}.nav-tabs .nav-link:hover{background-color:rgba(0,0,0,0);border-color:rgba(0,0,0,0)}.nav-tabs .nav-link:focus{border-color:rgba(0,0,0,0)}.nav-tabs .nav-link.active,.nav-tabs .nav-item.show .nav-link{color:#3b71ca;border-color:#3b71ca;background-color:rgba(0,0,0,0)}.nav-pills:not(.menu-sidebar) .nav-link{background-color:#424242;color:#fff}.nav-pills:not(.menu-sidebar) .nav-link.active,.nav-pills:not(.menu-sidebar) .show>.nav-link{color:#fff;background-color:#3b71ca}.navbar-brand{color:#fff}.navbar-brand:hover{color:#fff}.navbar-nav .nav-link{color:#fff}.navbar-nav .nav-link:hover,.navbar-nav .nav-link:focus{color:#fff}.navbar-scroll .nav-link,.navbar-scroll .fa-bars{color:#fff}.navbar-scrolled .nav-link,.navbar-scrolled .fa-bars{color:#fff}.navbar-scrolled{background-color:#3b71ca}.navbar.navbar-light.bg-light .breadcrumb .breadcrumb-item a{color:rgba(0,0,0,.55)}.navbar.navbar-light.bg-light .breadcrumb .breadcrumb-item a:hover{color:rgba(0,0,0,.7)}.navbar.navbar-light.bg-light .breadcrumb .breadcrumb-item+.breadcrumb-item:before{color:rgba(0,0,0,.55)}.page-link{color:#fff}.page-link:hover{color:#fff;background:rgba(0,0,0,.15)}.page-link:focus{color:#fff;background-color:rgba(0,0,0,.15)}.page-item.active .page-link{background-color:#3b71ca}.page-item.disabled .page-link{background-color:rgba(0,0,0,.15)}.popover{background-color:#424242}.popover-body{color:#fff}.popover-header{background-color:#424242;border-bottom-color:rgba(255,255,255,.12)}.progress-bar{background-color:#3b71ca}.ripple-surface-primary .ripple-wave{background-image:radial-gradient(circle, rgba(59, 113, 202, 0.2) 0, rgba(59, 113, 202, 0.3) 40%, rgba(59, 113, 202, 0.4) 50%, rgba(59, 113, 202, 0.5) 60%, rgba(59, 113, 202, 0) 70%)}.ripple-surface-secondary .ripple-wave{background-image:radial-gradient(circle, rgba(227, 235, 247, 0.2) 0, rgba(227, 235, 247, 0.3) 40%, rgba(227, 235, 247, 0.4) 50%, rgba(227, 235, 247, 0.5) 60%, rgba(59, 113, 202, 0) 70%)}.nav-pills.menu-sidebar .nav-link{color:#fff}.nav-pills.menu-sidebar .nav-link.active,.nav-pills.menu-sidebar .show>.nav-link{color:#8babe0;border-left-color:#8babe0}.accordion-item{background-color:#424242;border:1px solid rgba(255,255,255,.2)}.accordion-button{background-color:#424242;color:#fff}.accordion-button:not(.collapsed){color:#fff;background-color:#424242;-webkit-box-shadow:inset 0 -1px 0 rgba(255,255,255,.2);box-shadow:inset 0 -1px 0 rgba(255,255,255,.2)}.accordion-button:after{background-image:url("data:image/svg+xml;charset=utf-8,")}.accordion-button:not(.collapsed):after{background-image:url("data:image/svg+xml;charset=utf-8,")}.accordion-button:not(.collapsed):focus{-webkit-box-shadow:inset 0 -1px 0 rgba(255,255,255,.2);box-shadow:inset 0 -1px 0 rgba(255,255,255,.2)}.shadow-1-primary{box-shadow:0px 2px 5px 0px rgba(59,113,202,.25),0px 3px 10px 0px rgba(59,113,202,.2)}.shadow-2-primary{box-shadow:0px 4px 8px 0px rgba(59,113,202,.25),0px 5px 15px 2px rgba(59,113,202,.2)}.shadow-3-primary{box-shadow:0px 6px 11px 0px rgba(59,113,202,.25),0px 7px 20px 3px rgba(59,113,202,.2)}.shadow-4-primary{box-shadow:0px 6px 14px 0px rgba(59,113,202,.25),0px 10px 30px 4px rgba(59,113,202,.2)}.shadow-5-primary{box-shadow:0px 6px 20px 0px rgba(59,113,202,.25),0px 12px 40px 5px rgba(59,113,202,.2)}.shadow-1-secondary{box-shadow:0px 2px 5px 0px rgba(227,235,247,.25),0px 3px 10px 0px rgba(227,235,247,.2)}.shadow-2-secondary{box-shadow:0px 4px 8px 0px rgba(227,235,247,.25),0px 5px 15px 2px rgba(227,235,247,.2)}.shadow-3-secondary{box-shadow:0px 6px 11px 0px rgba(227,235,247,.25),0px 7px 20px 3px rgba(227,235,247,.2)}.shadow-4-secondary{box-shadow:0px 6px 14px 0px rgba(227,235,247,.25),0px 10px 30px 4px rgba(227,235,247,.2)}.shadow-5-secondary{box-shadow:0px 6px 20px 0px rgba(227,235,247,.25),0px 12px 40px 5px rgba(227,235,247,.2)}.table{background:#424242;color:#fff;border-color:rgba(255,255,255,.12)}.table>:not(:last-child)>:last-child>*{border-bottom-color:rgba(255,255,255,.12)}.text-muted{color:#a3a3a3 !important}th,td{border-color:rgba(255,255,255,.12)}.table-active{color:#fff}.table-striped>tbody>tr:nth-of-type(odd){color:#fff}.table-hover>tbody>tr:hover{color:#fff}.table-light{background-color:#323232;color:#fff}caption{color:#dee2e6}.link-primary{color:#8babe0}.link-primary:hover{color:#779dda}.link-secondary{color:#fff}.link-secondary:hover{color:#fff}.tooltip-inner{color:#fff;background-color:#757575}.form-check-input{background-color:rgba(0,0,0,0);border-color:rgba(255,255,255,.7)}.form-check-input:before{background-color:rgba(0,0,0,0);box-shadow:0px 0px 0px 13px rgba(0,0,0,0)}.form-check-input:hover:before{box-shadow:rgba(0,0,0,0)}.form-check-input:focus{border-color:rgba(255,255,255,.7)}.form-check-input:focus:before{box-shadow:0px 0px 0px 13px rgba(255,255,255,.6)}.form-check-input:checked{border-color:#3b71ca}.form-check-input:checked:focus{border-color:#3b71ca}.form-check-input:checked:focus:before{box-shadow:0px 0px 0px 13px #3b71ca}.form-check-input:indeterminate:focus:before{box-shadow:0px 0px 0px 13px #3b71ca}.form-check-input[type=checkbox]:focus:after{background-color:#303030}.form-check-input[type=checkbox]:checked{background-color:#3b71ca}.form-check-input[type=checkbox]:checked:after{border-color:#fff;background-color:rgba(0,0,0,0)}.form-check-input[type=checkbox]:checked:focus{background-color:#3b71ca}.form-check-input[type=checkbox]:indeterminate{background-color:rgba(0,0,0,0);border-color:rgba(255,255,255,.7)}.form-check-input[type=checkbox]:indeterminate:after{border-color:#fff}.form-check-input[type=checkbox]:indeterminate:focus{background-color:#3b71ca;border-color:#3b71ca}.form-check-input[type=radio]:after{background-color:rgba(0,0,0,0)}.form-check-input[type=radio]:checked{background-color:rgba(0,0,0,0)}.form-check-input[type=radio]:checked:after{border-color:#3b71ca;background-color:#3b71ca}.form-check-input[type=radio]:checked:focus{background-color:rgba(0,0,0,0)}.form-switch .form-check-input{background-color:rgba(255,255,255,.38)}.form-switch .form-check-input:after{background-color:#dee2e6;box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)}.form-switch .form-check-input:focus:before{box-shadow:3px -1px 0px 13px rgba(0,0,0,.6)}.form-switch .form-check-input[type=checkbox]:focus:after{background-color:#dee2e6}.form-switch .form-check-input:checked{background-color:#3b71ca}.form-switch .form-check-input:checked:focus:before{box-shadow:3px -1px 0px 13px #3b71ca}.form-switch .form-check-input:checked[type=checkbox]:after{background-color:#3b71ca;box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)}.form-label{color:rgba(255,255,255,.7)}.form-control{background-color:rgba(0,0,0,0)}.form-control:focus{background-color:rgba(0,0,0,0);color:rgba(255,255,255,.7)}.form-control::placeholder{color:#6c757d}.form-control{color:rgba(255,255,255,.7)}.form-control:focus{border-color:#3b71ca;box-shadow:inset 0px 0px 0px 1px #3b71ca}.form-outline .form-control{background:rgba(0,0,0,0);color:rgba(255,255,255,.7)}.form-outline .form-control~.form-label{color:rgba(255,255,255,.7)}.form-outline .form-control~.form-notch div{border-color:rgba(255,255,255,.7);background:rgba(0,0,0,0)}.form-outline .form-control:focus~.form-label{color:#3b71ca}.form-outline .form-control:focus~.form-notch .form-notch-middle{border-color:#3b71ca;box-shadow:0 1px 0 0 #3b71ca;border-top:1px solid rgba(0,0,0,0)}.form-outline .form-control:focus~.form-notch .form-notch-leading{border-color:#3b71ca;box-shadow:-1px 0 0 0 #3b71ca,0 1px 0 0 #3b71ca,0 -1px 0 0 #3b71ca}.form-outline .form-control:focus~.form-notch .form-notch-trailing{border-color:#3b71ca;box-shadow:1px 0 0 0 #3b71ca,0 -1px 0 0 #3b71ca,0 1px 0 0 #3b71ca}.form-outline .form-control:disabled,.form-outline .form-control.disabled,.form-outline .form-control[readonly]:not(.select-input){background-color:rgba(255,255,255,.2)}.select-input.focused~.form-notch .form-notch-leading{border-color:#3b71ca;box-shadow:-1px 0 0 0 #3b71ca,0 1px 0 0 #3b71ca,0 -1px 0 0 #3b71ca}.select-input.focused~.form-notch .form-notch-middle{border-color:#3b71ca;box-shadow:0 1px 0 0 #3b71ca;border-top:1px solid rgba(0,0,0,0)}.select-input.focused~.form-notch .form-notch-trailing{border-color:#3b71ca;box-shadow:1px 0 0 0 #3b71ca,0 -1px 0 0 #3b71ca,0 1px 0 0 #3b71ca}.form-range::-webkit-slider-thumb{background-color:#3b71ca}.form-range::-moz-range-thumb{background-color:#3b71ca}.form-range::-ms-thumb{background-color:#3b71ca}.form-range:focus::-webkit-slider-thumb{background-color:#3b71ca}.form-range:focus::-moz-range-thumb{background-color:#3b71ca}.form-range:focus::-ms-thumb{background-color:#3b71ca}.form-file-input:focus-within~.form-file-label{border-color:#3b71ca;box-shadow:0px 0px 0px 1px #3b71ca}.form-file-input[disabled]~.form-file-label .form-file-text,.form-file-input:disabled~.form-file-label .form-file-text,.form-file-input[disabled]~.form-file-label .form-file-button,.form-file-input:disabled~.form-file-label .form-file-button{background-color:rgba(255,255,255,.2)}.form-file-label{border-color:rgba(255,255,255,.7)}.form-file-button{background-color:rgba(0,0,0,0);color:rgba(255,255,255,.7)}.form-file-text{background-color:rgba(0,0,0,0);color:rgba(255,255,255,.7)}.form-control::-webkit-file-upload-button{color:rgba(255,255,255,.7)}.input-group>.form-control:focus{border-color:#3b71ca;box-shadow:inset 0 0 0 1px #3b71ca}.input-group-text{background-color:rgba(0,0,0,0);color:rgba(255,255,255,.7)}.input-group.form-outline input+.input-group-text{border-left-color:rgba(255,255,255,.7)}.loading-spinner{color:#3b71ca}/*# sourceMappingURL=mdb.dark.min.css.map */ diff --git a/EnvelopeGenerator.Web/wwwroot/lib/MDB/css/mdb.dark.min.css.map b/EnvelopeGenerator.Web/wwwroot/lib/MDB/css/mdb.dark.min.css.map deleted file mode 100644 index 3e1a7f11..00000000 --- a/EnvelopeGenerator.Web/wwwroot/lib/MDB/css/mdb.dark.min.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sourceRoot":"","sources":["../../mdb.scss","../../src/scss/bootstrap-rtl-fix/_root.scss","../../src/scss/bootstrap-rtl-fix/vendor/_rfs.scss","../../src/scss/bootstrap-rtl-fix/mixins/_color-mode.scss","../../src/scss/bootstrap-rtl-fix/_reboot.scss","../../src/scss/bootstrap-rtl-fix/_variables.scss","../../src/scss/free/_variables.scss","../../src/scss/bootstrap-rtl-fix/mixins/_border-radius.scss","../../src/scss/bootstrap-rtl-fix/_type.scss","../../src/scss/bootstrap-rtl-fix/mixins/_lists.scss","../../src/scss/bootstrap-rtl-fix/_images.scss","../../src/scss/bootstrap-rtl-fix/mixins/_image.scss","../../src/scss/bootstrap-rtl-fix/mixins/_box-shadow.scss","../../src/scss/bootstrap-rtl-fix/_containers.scss","../../src/scss/bootstrap-rtl-fix/mixins/_container.scss","../../src/scss/bootstrap-rtl-fix/mixins/_breakpoints.scss","../../src/scss/bootstrap-rtl-fix/_grid.scss","../../src/scss/bootstrap-rtl-fix/mixins/_grid.scss","../../src/scss/bootstrap-rtl-fix/_tables.scss","../../src/scss/bootstrap-rtl-fix/mixins/_table-variants.scss","../../src/scss/bootstrap-rtl-fix/forms/_labels.scss","../../src/scss/bootstrap-rtl-fix/forms/_form-text.scss","../../src/scss/bootstrap-rtl-fix/forms/_form-control.scss","../../src/scss/bootstrap-rtl-fix/mixins/_transition.scss","../../src/scss/bootstrap-rtl-fix/mixins/_gradients.scss","../../src/scss/bootstrap-rtl-fix/forms/_form-select.scss","../../src/scss/bootstrap-rtl-fix/forms/_form-check.scss","../../src/scss/bootstrap-rtl-fix/forms/_form-range.scss","../../src/scss/bootstrap-rtl-fix/forms/_floating-labels.scss","../../src/scss/bootstrap-rtl-fix/forms/_input-group.scss","../../src/scss/bootstrap-rtl-fix/mixins/_forms.scss","../../src/scss/bootstrap-rtl-fix/_buttons.scss","../../src/scss/bootstrap-rtl-fix/mixins/_buttons.scss","../../src/scss/bootstrap-rtl-fix/_transitions.scss","../../src/scss/bootstrap-rtl-fix/_dropdown.scss","../../src/scss/bootstrap-rtl-fix/mixins/_caret.scss","../../src/scss/bootstrap-rtl-fix/_button-group.scss","../../src/scss/bootstrap-rtl-fix/_nav.scss","../../src/scss/bootstrap-rtl-fix/_navbar.scss","../../src/scss/bootstrap-rtl-fix/_card.scss","../../src/scss/bootstrap-rtl-fix/_accordion.scss","../../src/scss/bootstrap-rtl-fix/_breadcrumb.scss","../../src/scss/bootstrap-rtl-fix/_pagination.scss","../../src/scss/bootstrap-rtl-fix/mixins/_pagination.scss","../../src/scss/bootstrap-rtl-fix/_badge.scss","../../src/scss/bootstrap-rtl-fix/_alert.scss","../../src/scss/bootstrap-rtl-fix/_progress.scss","../../src/scss/bootstrap-rtl-fix/_list-group.scss","../../src/scss/bootstrap-rtl-fix/_close.scss","../../src/scss/bootstrap-rtl-fix/_toasts.scss","../../src/scss/bootstrap-rtl-fix/_modal.scss","../../src/scss/bootstrap-rtl-fix/mixins/_backdrop.scss","../../src/scss/bootstrap-rtl-fix/_tooltip.scss","../../src/scss/bootstrap-rtl-fix/mixins/_reset-text.scss","../../src/scss/bootstrap-rtl-fix/_popover.scss","../../src/scss/bootstrap-rtl-fix/_carousel.scss","../../src/scss/bootstrap-rtl-fix/mixins/_clearfix.scss","../../src/scss/bootstrap-rtl-fix/_spinners.scss","../../src/scss/bootstrap-rtl-fix/_offcanvas.scss","../../src/scss/bootstrap-rtl-fix/_placeholders.scss","../../src/scss/bootstrap-rtl-fix/helpers/_color-bg.scss","../../src/scss/bootstrap-rtl-fix/helpers/_colored-links.scss","../../src/scss/bootstrap-rtl-fix/helpers/_focus-ring.scss","../../src/scss/bootstrap-rtl-fix/helpers/_icon-link.scss","../../src/scss/bootstrap-rtl-fix/helpers/_ratio.scss","../../src/scss/bootstrap-rtl-fix/helpers/_position.scss","../../src/scss/bootstrap-rtl-fix/helpers/_stacks.scss","../../src/scss/bootstrap-rtl-fix/helpers/_visually-hidden.scss","../../src/scss/bootstrap-rtl-fix/mixins/_visually-hidden.scss","../../src/scss/bootstrap-rtl-fix/helpers/_stretched-link.scss","../../src/scss/bootstrap-rtl-fix/helpers/_text-truncation.scss","../../src/scss/bootstrap-rtl-fix/mixins/_text-truncate.scss","../../src/scss/bootstrap-rtl-fix/helpers/_vr.scss","../../src/scss/free/_utilities.scss","../../src/scss/bootstrap-rtl-fix/mixins/_utilities.scss","../../src/scss/bootstrap-rtl-fix/utilities/_api.scss","../../src/scss/free/_root.scss","../../src/scss/free/_reboot.scss","../../src/scss/free/_type.scss","../../src/scss/free/_colors.scss","../../src/scss/free/_flag.scss","../../src/scss/free/_images.scss","../../src/scss/free/forms/_form-control.scss","../../src/scss/free/forms/_form-select.scss","../../src/scss/free/forms/_form-check.scss","../../src/scss/free/forms/_form-file.scss","../../src/scss/free/forms/_input-group.scss","../../src/scss/free/forms/_validation.scss","../../src/scss/free/forms/_form-range.scss","../../src/scss/free/_tables.scss","../../src/scss/free/_buttons.scss","../../src/scss/free/mixins/_buttons.scss","../../src/scss/free/_deprecated.scss","../../src/scss/free/_dropdown.scss","../../src/scss/free/_button-group.scss","../../src/scss/free/_nav.scss","../../src/scss/free/_navbar.scss","../../src/scss/free/_card.scss","../../src/scss/free/_breadcrumb.scss","../../src/scss/free/_pagination.scss","../../src/scss/free/_badge.scss","../../src/scss/free/_alert.scss","../../src/scss/free/_progress.scss","../../src/scss/free/_list-group.scss","../../src/scss/free/_close.scss","../../src/scss/free/_modal.scss","../../src/scss/free/_toasts.scss","../../src/scss/free/_tooltip.scss","../../src/scss/free/_popover.scss","../../src/scss/free/_scrollspy.scss","../../src/scss/free/_ripple.scss","../../src/scss/free/mixins/_ripple.scss","../../src/scss/free/_range.scss","../../src/scss/free/_accordion.scss","../../src/scss/free/_carousel.scss","../../src/scss/pro/theme/components/_core-theme.scss","../../src/scss/pro/theme/components/_colors-theme.scss","../../src/scss/pro/theme/components/_type-theme.scss","../../src/scss/pro/theme/components/_alert-theme.scss","../../src/scss/pro/theme/components/_button-theme.scss","../../src/scss/pro/theme/components/_list-group-theme.scss","../../src/scss/pro/theme/components/_card-theme.scss","../../src/scss/pro/theme/components/_modal-theme.scss","../../src/scss/pro/theme/components/_dropdown-theme.scss","../../src/scss/pro/theme/components/_breadcrumb-theme.scss","../../src/scss/pro/theme/components/_nav-theme.scss","../../src/scss/pro/theme/components/_navbar-theme.scss","../../src/scss/pro/theme/components/_pagination-theme.scss","../../src/scss/pro/theme/components/_popover-theme.scss","../../src/scss/pro/theme/components/_progress-theme.scss","../../src/scss/pro/theme/components/_ripple-theme.scss","../../src/scss/pro/theme/components/_scrollspy-theme.scss","../../src/scss/pro/theme/components/_accordion-theme.scss","../../src/scss/pro/theme/components/_shadows-theme.scss","../../src/scss/pro/theme/components/_tables-theme.scss","../../src/scss/pro/theme/components/_tooltips-theme.scss","../../src/scss/pro/theme/components/_form-check-theme.scss","../../src/scss/pro/theme/components/_form-control-theme.scss","../../src/scss/pro/theme/components/_form-range-theme.scss","../../src/scss/pro/theme/components/_form-file-theme.scss","../../src/scss/pro/theme/components/_input-group-theme.scss","../../src/scss/pro/theme/components/_loading-theme.scss"],"names":[],"mappings":"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A,gEACA,+CACA,2CAEA,WACA,cbkYO,KajYP,ebqsB0B,IapsB1B,2CAOA,yBACE,oBAEA,wFAIA,qCACA,oBb0sBiB,wBazsBjB,8GAOF,aACE,uBAGF,aACE,sBAIJ,qBACE,yDAOF,aACE,iBASA,4BACE,oBAcF,gCACE,uCAGA,kCACE,uCAOJ,oCACE,sBAGF,qCACE,mBAUF,2CACE,uDACA,iDAMF,yDACE,uDACA,iDAQJ,cACE,uDACA,iDAQA,8BACE,sDACA,gDCjJF,eAOE,wBACA,wBACA,kCACA,gCACA,gCACA,+BACA,+BACA,8BACA,8BAEA,6BACA,2CAlBF,iBAOE,wBACA,wBACA,kCACA,gCACA,gCACA,+BACA,+BACA,8BACA,8BAEA,6BACA,2CAlBF,eAOE,wBACA,wBACA,kCACA,gCACA,gCACA,+BACA,+BACA,8BACA,8BAEA,6BACA,2CAlBF,YAOE,wBACA,wBACA,kCACA,gCACA,gCACA,+BACA,+BACA,8BACA,8BAEA,6BACA,2CAlBF,eAOE,wBACA,wBACA,kCACA,gCACA,gCACA,+BACA,+BACA,8BACA,8BAEA,6BACA,2CAlBF,cAOE,wBACA,wBACA,kCACA,gCACA,gCACA,+BACA,+BACA,8BACA,8BAEA,6BACA,2CAlBF,aAOE,wBACA,wBACA,kCACA,gCACA,gCACA,+BACA,+BACA,8BACA,8BAEA,6BACA,2CAlBF,YAOE,wBACA,wBACA,kCACA,gCACA,gCACA,+BACA,+BACA,8BACA,8BAEA,6BACA,2CDqJA,kBACE,gBACA,iCH3FF,4BGyFA,qBACE,gBACA,kCH3FF,4BGyFA,qBACE,gBACA,kCH3FF,4BGyFA,qBACE,gBACA,kCH3FF,6BGyFA,qBACE,gBACA,kCH3FF,6BGyFA,sBACE,gBACA,kCEvKN,YACE,cfm2ByB,Me/1BzB,MdkhCiB,oCc7gCnB,gBACE,qDACA,wDACA,gBlBkRI,UALI,QkBzQR,Yd4yBiB,Ic3yBjB,MdqgCiB,oCclgCnB,mBACE,mDACA,sDlBwQI,UALI,KkB/PV,mBACE,oDACA,uDlBkQI,UALI,SmB1RV,WACE,WhB21BqB,OH7jBjB,UALI,QmBrRR,MhB21BgB,2BiBh2BlB,cACE,cACA,WACA,uBpB4RI,UALI,KoBpRR,YjBimBmB,IiBhmBnB,YhBszBiB,IgBrzBjB,MhBygCY,yBgBxgCZ,gBACA,iBjBi3BS,mBiBh3BT,4BACA,6DfGE,uCKLE,WARW,4BWUX,WDMJ,eCFI,uCDhBN,cCiBQ,iBDGN,yBACE,gBAEA,wDACE,eAKJ,oBACE,MhBm/BU,yBgBl/BV,iBjB41BO,mBiB31BP,ahBylBM,QgBxlBN,UVvBE,WARW,8DUwCf,2CAME,eAMA,aAKA,SAKF,qCACE,cACA,UAIF,2BACE,MhB28BsB,wCgBz8BtB,UAQF,uBAEE,iBjB0yBgB,wBiBvyBhB,UAIF,oCACE,uBACA,0BACA,kBjBirBkB,OiBhrBlB,MhBm7BU,yBkBjhCZ,iBnB8iCoB,uBiB98BlB,oBACA,qBACA,mBACA,eACA,wBjB6rBqB,wBiB5rBrB,gBCzFE,WD0FF,mHCtFE,uCD0EJ,oCCzEM,iBDwFN,yEACE,iBjBq8BwB,wBiB57B5B,wBACE,cACA,WACA,kBACA,gBACA,YhBqsBiB,IgBpsBjB,MjBuxBsB,sBiBtxBtB,+BACA,2BACA,uCAEA,8BACE,UAGF,gFAEE,gBACA,eAWJ,iBACE,WjB6wBgB,yDiB5wBhB,qBpB6II,UALI,SK3QN,0CeuIF,uCACE,qBACA,wBACA,kBjBioBqB,MiB7nBzB,iBACE,WjBowBgB,uDiBnwBhB,mBpBgII,UALI,KK3QN,0CeoJF,uCACE,mBACA,qBACA,kBjBwnBqB,KiBhnBvB,sBACE,WjB2uBW,0DiBxuBb,yBACE,WjB2uBc,yDiBxuBhB,yBACE,WjB2uBc,uDiBtuBlB,oBACE,MjB4uBiB,KiB3uBjB,OjB4tBa,0DiB3tBb,QjB8kBoB,QiB5kBpB,mDACE,eAGF,uCACE,oBfvLA,uCe2LF,0CACE,oBf5LA,uCegMF,oCACE,OjB8sBc,yDiB5sBhB,oCACE,OjB+sBc,uDoBj6BlB,aACE,0PAEA,cACA,WACA,uCvByRI,UALI,KuBhRR,YpB6lBmB,IoB5lBnB,YnBkzBiB,ImBjzBjB,MnBqgCY,yBmBpgCZ,gBACA,iBpB62BS,mBoB52BT,oFACA,4BACA,oBpBq+BwB,oBoBp+BxB,gBpBq+BoB,UoBp+BpB,6DlBJE,uCKLE,WARW,4BWUX,WEUJ,eFNI,uCEfN,aFgBQ,iBEON,mBACE,anBgmBM,QmB/lBN,UbhBE,WARW,8DaiCf,0DAEE,cpByuBkB,OoBxuBlB,sBAGF,sBAEE,iBpBk1BgB,wBoB70BlB,4BACE,oBACA,2CAIJ,gBACE,YpBkuBuB,OoBjuBvB,epBiuBuB,OoBhuBvB,apBiuBuB,MH3fnB,UALI,SK3QN,0CkB+CJ,gBACE,YpB8tBuB,MoB7tBvB,epB6tBuB,MoB5tBvB,apB6tBuB,KH/fnB,UALI,KK3QN,0CkByDA,mCACE,uPCzEN,YACE,cACA,WrB46BsB,OqB36BtB,arB46ByB,MqB36BzB,crB46ByB,QqB16BzB,8BACE,WACA,mBAIJ,oBACE,crBk6ByB,MqBj6BzB,eACA,iBAEA,sCACE,YACA,oBACA,cAIJ,kBACE,wCAEA,cACA,MrBi5BuB,IqBh5BvB,OrBg5BuB,IqB/4BvB,gBACA,mBACA,gBACA,0CACA,gDACA,4BACA,2BACA,wBACA,OrBk5BwB,sDqBj5BxB,yBAGA,iCnB3BE,oBmB+BF,8BAEE,crB04B6B,IqBv4B/B,yBACE,OrBi4B6B,gBqB93B/B,wBACE,apBikBM,QoBhkBN,UACA,WrB0foB,kCqBvftB,0BACE,iBpB2jBM,QoB1jBN,apB0jBM,QoBxjBN,yCAKI,yPAIJ,sCAKI,iKAKN,+CACE,iBpBoiBM,QoBniBN,apB9EO,QoBoFL,mPAIJ,2BACE,oBACA,YACA,QrBs2BgC,GqB/1BhC,2FACE,eACA,QrB61B8B,GqB/0BpC,aACE,arBw1B0B,MqBt1B1B,+BACE,6KAEA,MrBk1BgB,IqBj1BhB,mBACA,2CACA,gCnBpHA,kBgBHE,WGyHF,qCHrHE,uCG6GJ,+BH5GM,iBGsHJ,qCACE,+JAGF,uCACE,oBrBi1B4B,aqB30B1B,4JAKN,gCACE,crB2zBwB,MqB1zBxB,eAEA,kDACE,oBACA,cAKN,mBACE,qBACA,arByyB6B,KqBtyB/B,WACE,kBACA,sBACA,oBAIE,mDACE,oBACA,YACA,QrB8oBiB,IqBvoBnB,+EACE,mLCvLN,YACE,WACA,cACA,UACA,gBACA,+BAEA,kBACE,UAIA,wCACE,WtBqhC8B,iDsBnhChC,oCACE,WtBkhC8B,iDsB9gClC,8BACE,SAGF,kCACE,MtBmgCqB,KsBlgCrB,OtBkgCqB,KsBjgCrB,oBACA,gBH9BF,iBlBynBQ,QqBzlBN,OtBigCsB,EElhCtB,mBKLE,WARW,8BWUX,WIuBF,4FJnBE,uCIUJ,kCJTM,iBIoBJ,yCHrCF,iBnBsiC2B,QsB5/B3B,2CACE,MtB4+BqB,KsB3+BrB,OtB4+BsB,MsB3+BtB,oBACA,OtB2+BsB,QsB1+BtB,iBtB2+BkB,wBsB1+BlB,2BpBjCA,mBKLE,WARW,4BemDf,8BACE,MtBw+BqB,KsBv+BrB,OtBu+BqB,KsBt+BrB,gBHxDF,iBlBynBQ,QqB/jBN,OtBu+BsB,EElhCtB,mBKLE,WARW,8BWUX,WIiDF,4FJ7CE,uCIqCJ,8BJpCM,iBI8CJ,qCH/DF,iBnBsiC2B,QsBl+B3B,8BACE,MtBk9BqB,KsBj9BrB,OtBk9BsB,MsBj9BtB,oBACA,OtBi9BsB,QsBh9BtB,iBtBi9BkB,wBsBh9BlB,2BpB3DA,mBKLE,WARW,4Be6Ef,qBACE,oBAEA,2CACE,iBrBk8CyB,oCqB/7C3B,uCACE,iBrB87CyB,oCsBzhD/B,eACE,kBAEA,gGAGE,OvBijCmB,iDuBhjCnB,WvBgjCmB,iDuB/iCnB,YvBgjCwB,KuB7iC1B,qBACE,kBACA,MACA,OACA,UACA,YACA,oBACA,gBACA,iBACA,uBACA,mBACA,oBACA,mDACA,qBLRE,WKSF,kDLLE,uCKTJ,qBLUM,iBKON,oEAEE,oBAEA,8FACE,oBAGF,oMAEE,YvBqhC0B,SuBphC1B,evBqhC0B,QuBlhC5B,sGACE,YvBghC0B,SuB/gC1B,evBghC0B,QuB5gC9B,4BACE,YvB0gC4B,SuBzgC5B,evB0gC4B,QuBngC5B,mLACE,4CACA,UvBogC0B,oDuBlgC1B,+MACE,kBACA,mBACA,WACA,OvB4/BqB,MuB3/BrB,WACA,iBvB4zBG,mBE52BP,uCqBuDA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,sBACA,gCACA,4BACA,4BACA,sCACA,0CACA,6BACA,6BACA,uCACA,6IACA,+BACA,+BACA,yCDoEA,aCjFA,sBACA,sBACA,gCACA,4BACA,4BACA,sCACA,yCACA,6BACA,6BACA,uCACA,6IACA,+BACA,+BACA,yCDoEA,UCjFA,sBACA,sBACA,gCACA,4BACA,4BACA,sCACA,0CACA,6BACA,6BACA,uCACA,6IACA,+BACA,+BACA,yCDoEA,WCjFA,sBACA,sBACA,gCACA,4BACA,4BACA,sCACA,0CACA,6BACA,6BACA,uCACA,6IACA,+BACA,+BACA,yCDoEA,UCjFA,sBACA,sBACA,gCACA,4BACA,4BACA,sCACA,uCACA,6BACA,6BACA,uCACA,6IACA,+BACA,+BACA,yCD8FA,qBClFA,yBACA,gCACA,4BACA,4BACA,sCACA,yCACA,6BACA,6BACA,uCACA,6IACA,kCACA,mCACA,yCACA,qBDqEA,uBClFA,yBACA,gCACA,4BACA,4BACA,sCACA,0CACA,6BACA,6BACA,uCACA,6IACA,kCACA,mCACA,yCACA,qBDqEA,qBClFA,yBACA,gCACA,4BACA,4BACA,sCACA,wCACA,6BACA,6BACA,uCACA,6IACA,kCACA,mCACA,yCACA,qBDqEA,oBClFA,yBACA,gCACA,4BACA,4BACA,sCACA,yCACA,6BACA,6BACA,uCACA,6IACA,kCACA,mCACA,yCACA,qBDqEA,qBClFA,yBACA,gCACA,4BACA,4BACA,sCACA,yCACA,6BACA,6BACA,uCACA,6IACA,kCACA,mCACA,yCACA,qBDqEA,kBClFA,yBACA,gCACA,4BACA,4BACA,sCACA,yCACA,6BACA,6BACA,uCACA,6IACA,kCACA,mCACA,yCACA,qBDqEA,mBClFA,yBACA,gCACA,4BACA,4BACA,sCACA,0CACA,6BACA,6BACA,uCACA,6IACA,kCACA,mCACA,yCACA,qBDqEA,kBClFA,yBACA,gCACA,4BACA,4BACA,sCACA,uCACA,6BACA,6BACA,uCACA,6IACA,kCACA,mCACA,yCACA,qBDgFF,UACE,2BACA,yBACA,0BA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CE,mDACA,kDAIJ,qCACE,iBAGF,mCACE,wBACA,gBAGF,kCACE,aAGF,6BAEE,gBACA,aACA,YACA,sBACA,uBACA,8BACA,0CACA,oBACA,0B1B5NJ,WARW,KWUX,We4NI,KAGA,+CACE,aAGF,6CACE,aACA,YACA,UACA,oBvBpLR,yBuB8HA,kBAEI,iBACA,2BAEA,8BACE,mBAEA,6CACE,kBAGF,wCACE,mDACA,kDAIJ,qCACE,iBAGF,mCACE,wBACA,gBAGF,kCACE,aAGF,6BAEE,gBACA,aACA,YACA,sBACA,uBACA,8BACA,0CACA,oBACA,0B1B5NJ,WARW,KWUX,We4NI,KAGA,+CACE,aAGF,6CACE,aACA,YACA,UACA,oBvBpLR,yBuB8HA,kBAEI,iBACA,2BAEA,8BACE,mBAEA,6CACE,kBAGF,wCACE,mDACA,kDAIJ,qCACE,iBAGF,mCACE,wBACA,gBAGF,kCACE,aAGF,6BAEE,gBACA,aACA,YACA,sBACA,uBACA,8BACA,0CACA,oBACA,0B1B5NJ,WARW,KWUX,We4NI,KAGA,+CACE,aAGF,6CACE,aACA,YACA,UACA,oBvBpLR,0BuB8HA,kBAEI,iBACA,2BAEA,8BACE,mBAEA,6CACE,kBAGF,wCACE,mDACA,kDAIJ,qCACE,iBAGF,mCACE,wBACA,gBAGF,kCACE,aAGF,6BAEE,gBACA,aACA,YACA,sBACA,uBACA,8BACA,0CACA,oBACA,0B1B5NJ,WARW,KWUX,We4NI,KAGA,+CACE,aAGF,6CACE,aACA,YACA,UACA,oBvBpLR,0BuB8HA,mBAEI,iBACA,2BAEA,+BACE,mBAEA,8CACE,kBAGF,yCACE,mDACA,kDAIJ,sCACE,iBAGF,oCACE,wBACA,gBAGF,mCACE,aAGF,8BAEE,gBACA,aACA,YACA,sBACA,uBACA,8BACA,0CACA,oBACA,0B1B5NJ,WARW,KWUX,We4NI,KAGA,gDACE,aAGF,8CACE,aACA,YACA,UACA,oBAtDR,eAEI,iBACA,2BAEA,2BACE,mBAEA,0CACE,kBAGF,qCACE,mDACA,kDAIJ,kCACE,iBAGF,gCACE,wBACA,gBAGF,+BACE,aAGF,0BAEE,gBACA,aACA,YACA,sBACA,uBACA,8BACA,0CACA,oBACA,0B1B5NJ,WARW,KWUX,We4NI,KAGA,4CACE,aAGF,0CACE,aACA,YACA,UACA,mBAiBZ,0CAGE,8CACA,oDACA,uDACA,gCACA,+BACA,qCACA,4DACA,gRAME,2CACE,gRCrRN,MAEE,4BACA,4BACA,kCACA,yBACA,4BACA,iDACA,8CACA,iCACA,iJACA,yEACA,kCACA,iCACA,0CACA,uBACA,oBACA,mBACA,qCACA,uCACA,iCAGA,kBACA,aACA,sBACA,YACA,8BACA,4BACA,qBACA,oCACA,2BACA,uEhCjBE,4CKLE,WARW,2B2BkCf,SACE,eACA,cAGF,kBACE,mBACA,sBAEA,8BACE,mBhCvBF,2DACA,4DgC0BA,6BACE,sBhCdF,+DACA,8DgCoBF,8DAEE,aAIJ,WAGE,cACA,0DACA,4BAGF,YACE,6CACA,kCAGF,eACE,qDAGA,gBACA,qCAGF,sBACE,gBAQA,sBACE,qCAQJ,aACE,oEACA,gBACA,gCACA,wCACA,8EAEA,yBhC/FE,0FgCsGJ,aACE,oEACA,gCACA,wCACA,2EAEA,wBhC5GE,0FgCuHJ,kBACE,sDAGA,qDAGA,qDAGA,gBAEA,mCACE,oCACA,uCAIJ,mBACE,sDAGA,qDAMF,kBACE,kBACA,MACA,QACA,SACA,OACA,4ChCzJE,kDgC6JJ,yCAGE,WAGF,wBhC3JI,2DACA,4DgC+JJ,2BhClJI,+DACA,8DgC6JF,kBACE,2CxBrIA,yBwBiIJ,YAQI,aACA,mBAGA,kBAEE,YACA,gBAEA,wBACE,cACA,cAKA,mChC1LJ,0BACA,6BgC4LM,iGAGE,0BAEF,oGAGE,6BAIJ,oChC3LJ,yBACA,4BgC6LM,mGAGE,yBAEF,sGAGE,6BClPZ,WAEE,gDACA,uCACA,gLACA,sDACA,sDACA,sCACA,8EACA,sCACA,uCACA,oDACA,gDACA,6TACA,wCACA,oDACA,gEACA,iTACA,gDACA,6EACA,uCACA,wCACA,sCACA,iDAIF,kBACE,kBACA,aACA,mBACA,WACA,8EtC+PI,UALI,KsCxPR,qCACA,gBACA,6CACA,SjCtBE,gBiCwBF,qBjB3BI,WiB4BJ,gCjBxBI,uCiBWN,kBjBVQ,iBiByBN,kCACE,wCACA,gDACA,kGAGA,yCACE,sDACA,kDAKJ,yBACE,cACA,0CACA,2CACA,iBACA,WACA,+CACA,4BACA,oDjBnDE,WiBoDF,yCjBhDE,uCiBuCJ,yBjBtCM,iBiBkDN,wBACE,UAGF,wBACE,UACA,yDACA,UACA,qDAIJ,kBACE,gBAGF,gBACE,iCACA,yCACA,iFAEA,8BjCjEE,0DACA,2DiCmEA,gDjCpEA,gEACA,iEiCwEF,oCACE,aAIF,6BjChEE,8DACA,6DiCmEE,yDjCpEF,oEACA,mEiCwEA,iDjCzEA,8DACA,6DiC8EJ,gBACE,gFAQA,qCACE,eAGF,iCACE,eACA,cjCpHA,gBiCuHA,6CACE,aAEF,4CACE,gBAIA,gHjC/HF,gBiCyIA,+CACE,uSACA,iTC9JN,YAEE,8BACA,8BACA,qCAEA,sBACA,iCACA,0EACA,wCACA,8EAGA,aACA,eACA,wEACA,kDvCmRI,UALI,gCuC5QR,gBACA,4FAMA,kCACE,kDAEA,0CACE,WACA,mDACA,0CACA,yFAOJ,wBACE,8CCxCJ,YAEE,oCACA,qCxCgSI,2BALI,OwCzRR,8CACA,wCACA,uDACA,uDACA,wCACA,oDACA,yDACA,6DACA,0DACA,yDACA,0EACA,gEACA,yDACA,8CACA,uEACA,0CACA,gEAGA,ajCpBA,eACA,gBiCuBF,WACE,kBACA,cACA,wExCoQI,UALI,gCwC7PR,kCAEA,0CACA,mFnBpBI,WmBqBJ,enBjBI,uCmBQN,WnBPQ,iBmBkBN,iBACE,UACA,wCAEA,gDACA,sDAGF,iBACE,UACA,wCACA,gDACA,QrCyvCuB,EqCxvCvB,kDAGF,qCAEE,UACA,yClBtDF,iBkBuDuB,gCACrB,uDAGF,yCAEE,2CACA,oBACA,mDACA,yDAKF,wCACE,YrC0tCsB,iCqCrtCpB,kCnC/BF,2DACA,8DmCoCE,iCnCnDF,4DACA,+DmCkEJ,eCjGE,mCACA,oCzC8RI,2BALI,QyCvRR,4DDuGF,eC1GE,mCACA,oCzC8RI,2BALI,SyCvRR,4DCFF,OAEE,8BACA,8B1C2RI,sBALI,O0CpRR,6BACA,wBACA,mCAGA,qBACA,8D1CmRI,UALI,2B0C5QR,yCACA,cACA,6BACA,kBACA,mBACA,wBrCJE,6CqCSF,aACE,aAKJ,YACE,kBACA,SChCF,OAEE,4BACA,8BACA,+BACA,gCACA,2BACA,sCACA,gFACA,kCACA,gCAGA,kBACA,8DACA,6CACA,6BACA,qCACA,+BtCHE,6CsCQJ,eAEE,cAIF,YACE,YxC4kBiB,IwC3kBjB,kCAOF,mBACE,cxCs/C4B,OwCn/C5B,8BACE,kBACA,MACA,QACA,UACA,yBAOF,eACE,oDACA,6CACA,2DACA,yDAJF,iBACE,sDACA,+CACA,6DACA,2DAJF,eACE,oDACA,6CACA,2DACA,yDAJF,cACE,mDACA,4CACA,0DACA,wDAJF,eACE,oDACA,6CACA,2DACA,yDAJF,YACE,iDACA,0CACA,wDACA,sDAJF,aACE,kDACA,2CACA,yDACA,uDAJF,YACE,iDACA,0CACA,wDACA,sDC1DF,gCACE,GACE,sBxC6/CY,KwCv/ClB,4BAGE,2B5CoRI,yBALI,Q4C7QR,2CACA,uDACA,uDACA,+BACA,+BACA,+CAGA,aACA,kCACA,gB5CwQI,UALI,8B4CjQR,wCvCVE,gDKLE,WARW,+BkC4BjB,cACE,aACA,sBACA,uBACA,gBACA,oCACA,kBACA,mBACA,4CvB1BI,WuB2BJ,mCvBvBI,uCuBcN,cvBbQ,iBuByBR,sBtBsBE,qMsBpBA,sEAGF,4BACE,iBAGF,0CACE,WAIA,uBACE,kDAGE,uCAJJ,uBAKM,gBC7DR,YAEE,8CACA,iCACA,uDACA,uDACA,uCACA,wCACA,wCACA,0DACA,+DACA,yDACA,4DACA,2DACA,sEACA,0CACA,oCACA,oCACA,8CAGA,aACA,sBAGA,eACA,gBxCXE,kDwCeJ,qBACE,qBACA,sBAEA,8CAEE,oCACA,0BASJ,wBACE,WACA,yCACA,mBAGA,4DAEE,UACA,+CACA,qBACA,uDAGF,+BACE,gDACA,wDAQJ,iBACE,kBACA,cACA,kFACA,kCAEA,0CACA,mFAEA,6BxCxDE,+BACA,gCwC2DF,4BxC9CE,mCACA,kCwCiDF,oDAEE,2CACA,oBACA,mDAIF,wBACE,UACA,yCACA,iDACA,uDAIF,kCACE,mBAEA,yCACE,uDAGA,oDAaF,uBACE,mBAGE,qExC1DJ,8DAZA,0BwC2EI,qExC3EJ,4DAYA,4BwCoEI,+CACE,aAGF,yDACE,oDACA,oBAEA,gEACE,wDAGA,qDhCtFR,yBgC4DA,0BACE,mBAGE,wExC1DJ,8DAZA,0BwC2EI,wExC3EJ,4DAYA,4BwCoEI,kDACE,aAGF,4DACE,oDACA,oBAEA,mEACE,wDAGA,sDhCtFR,yBgC4DA,0BACE,mBAGE,wExC1DJ,8DAZA,0BwC2EI,wExC3EJ,4DAYA,4BwCoEI,kDACE,aAGF,4DACE,oDACA,oBAEA,mEACE,wDAGA,sDhCtFR,yBgC4DA,0BACE,mBAGE,wExC1DJ,8DAZA,0BwC2EI,wExC3EJ,4DAYA,4BwCoEI,kDACE,aAGF,4DACE,oDACA,oBAEA,mEACE,wDAGA,sDhCtFR,0BgC4DA,0BACE,mBAGE,wExC1DJ,8DAZA,0BwC2EI,wExC3EJ,4DAYA,4BwCoEI,kDACE,aAGF,4DACE,oDACA,oBAEA,mEACE,wDAGA,sDhCtFR,0BgC4DA,2BACE,mBAGE,yExC1DJ,8DAZA,0BwC2EI,yExC3EJ,4DAYA,4BwCoEI,mDACE,aAGF,6DACE,oDACA,oBAEA,oEACE,wDAGA,sDAaZ,kBxCnJI,gBwCsJF,mCACE,oDAEA,8CACE,sBAYJ,yBACE,yDACA,kDACA,gEACA,+DACA,mEACA,gEACA,oEACA,4DACA,6DACA,uEAVF,2BACE,2DACA,oDACA,kEACA,+DACA,qEACA,gEACA,sEACA,8DACA,+DACA,yEAVF,yBACE,yDACA,kDACA,gEACA,+DACA,mEACA,gEACA,oEACA,4DACA,6DACA,uEAVF,wBACE,wDACA,iDACA,+DACA,+DACA,kEACA,gEACA,mEACA,2DACA,4DACA,sEAVF,yBACE,yDACA,kDACA,gEACA,+DACA,mEACA,gEACA,oEACA,4DACA,6DACA,uEAVF,sBACE,sDACA,+CACA,6DACA,+DACA,gEACA,gEACA,iEACA,yDACA,0DACA,oEAVF,uBACE,uDACA,gDACA,8DACA,+DACA,iEACA,gEACA,kEACA,0DACA,2DACA,qEAVF,sBACE,sDACA,+CACA,6DACA,+DACA,gEACA,gEACA,iEACA,yDACA,0DACA,oEC9LJ,WAEE,4BACA,sVACA,6BACA,oCACA,qEACA,iCACA,uCACA,yEAGA,uBACA,M3C8pDgB,I2C7pDhB,O3C6pDgB,I2C5pDhB,oBACA,iCACA,2EACA,SzCJE,qByCMF,qCAGA,iBACE,iCACA,qBACA,2CAGF,iBACE,UACA,6CACA,2CAGF,wCAEE,oBACA,iBACA,8CAQJ,iBAHE,yCASE,iCATF,yCCjDF,OAEE,yBACA,4BACA,+BACA,4BACA,6B/C6RI,sBALI,S+CtRR,oBACA,sCACA,kDACA,8DACA,kCACA,kJACA,qDACA,6CACA,qEAGA,iCACA,e/C+QI,UALI,2B+CxQR,6BACA,oBACA,qCACA,4BACA,yEACA,uC1CRE,6C0CWF,eACE,UAGF,kBACE,aAIJ,iBACE,yBAEA,kBACA,gCACA,kBACA,eACA,oBAEA,mCACE,uCAIJ,cACE,aACA,mBACA,8DACA,oCACA,4CACA,4BACA,uF1CjCE,4FACA,6F0CsCF,yBACE,mDAGA,uCAIJ,YACE,mCACA,qBCpEF,OAEE,yBACA,yBACA,0BACA,2BACA,4CACA,sCACA,8DACA,kDACA,kCACA,iDACA,0EACA,mCACA,mCACA,sCACA,0DACA,qCACA,mCACA,+BACA,wBACA,0DACA,qCAGA,eACA,MACA,OACA,gCACA,aACA,WACA,YACA,kBACA,gBAGA,UAOF,cACE,kBACA,WACA,+BAEA,oBAGA,0B3B3CI,W2B4CF,uBACA,U7Cm9CmB,oBkB5/CjB,uC2BuCJ,0B3BtCM,iB2B0CN,0BACE,U7Ci9CmB,K6C78CrB,kCACE,U7C88CoB,Y6C18CxB,yBACE,8CAEA,wCACE,gBACA,gBAGF,qCACE,gBAIJ,uBACE,aACA,mBACA,kDAIF,eACE,kBACA,aACA,sBACA,WAEA,6BACA,oBACA,qCACA,4BACA,yE3CpFE,6CKLE,WARW,4BsCqGf,UAIF,gBAEE,4BACA,wBAC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BpB,6HAEE,U5Ew1BgC,mD4El1BpC,uCACE,M5ErNE,K4EsNF,mDACE,M5EtNE,Q4EyNF,uDACE,a5E1NA,Q4E6NJ,yDACE,M5E/NA,K4EiOF,4EACE,a5ElOA,K4EmOA,0BACA,mCAEF,6EACE,a5EvOA,K4EwOA,0DAIF,8EACE,a5E7OA,K4E8OA,yDAIF,oDACE,M5Eo0BuB,qB4El0BzB,iJAGE,iB5Eg0BkB,sB6EzjCtB,qDACE,+BAKN,aACE,W7E+sCuB,e6E5sCzB,mBACE,a7E8mBQ,Q6E7mBR,UACA,W7E2sCoC,8B8ExtCtC,YACE,kBAGF,kBACE,kBACA,M9EujC0B,S8EtjC1B,O9EsjC0B,S8ErjC1B,iB9EujCkC,mB8EtjClC,0DAEA,yBACE,WACA,kBACA,W9EqjCiC,+B8EpjCjC,c9EqjCoC,I8EpjCpC,M9EqjC4B,Q8EpjC5B,O9EojC4B,Q8EnjC5B,+BACA,UACA,oBACA,U9EkjCgC,S8E/iClC,wBACE,eAEA,+BACE,Q9E6iCkC,I8E5iClC,W9E6iCqC,4D8EziCzC,wBACE,gBACA,a9E8hC4B,qC8E7hC5B,W9E0iCgC,iB8ExiChC,+BACE,Q9EyiCkC,I8ExiClC,W9EkiCqC,4D8EjiCrC,U9EyiCoC,S8ExiCpC,W9EyiCqC,6B8EriCzC,0BACE,a9E0kBM,Q8ExkBN,iCACE,Q9EoiCoC,I8EjiCtC,gCACE,WACA,kBAGF,gCACE,a9E8jBI,Q8E5jBJ,uCACE,W9E0hC2C,yB8EzhC3C,U9EmhCkC,S8ElhClC,W9EmhCmC,6B8E5gCrC,6CACE,W9EmiCiD,yB8E9hCvD,iCACE,c9E8gCsC,O8E7gCtC,iBACA,iBAGE,6CACE,WACA,kBACA,M9EugCsC,Q8EtgCtC,O9EsgCsC,Q8ErgCtC,UACA,cACA,gBACA,iB9EogCiD,mB8EhgCrD,yCACE,sBACA,iB9EwhBI,Q8EthBJ,+CACE,cACA,wCACA,a9E8/B+C,Q8E7/B/C,a9EtGA,K8EuGA,M9E8/BwC,Q8E7/BxC,O9E8/ByC,S8E7/BzC,mBACA,aACA,8BACA,Y9E2/B8C,O8E1/B9C,W9E2/B6C,K8E1/B7C,+BAGF,+CACE,iB9EsgBE,Q8ElgBN,+CACE,a9EigBI,Q8E7fR,8BACE,c9E0/BmC,I8Ez/BnC,M9E0/B2B,Q8Ez/B3B,O9Ey/B2B,Q8Ex/B3B,kBACA,iBAEA,qCACE,M9Eu/BgC,K8Et/BhC,O9Es/BgC,K8En/BlC,oCACE,WACA,kBACA,M9Eg/BgC,K8E/+BhC,O9E++BgC,K8E9+BhC,UACA,cACA,c9Ew+BiC,I8Ev+BjC,iB9Ei/B0C,mB8E9+B5C,sCACE,sBACA,iB9E8+B4C,mB8E5+B5C,4CACE,c9E+9B+B,I8E99B/B,M9E4+BqC,Q8E3+BrC,O9E2+BqC,Q8E1+BrC,a9E8dE,Q8E7dF,iB9E6dE,Q8E5dF,W9E8+B0C,a8E7+B1C,gCACA,kBACA,SACA,QAGF,4CACE,iB9Eu+BgD,mB8Ej+BxD,kBACE,oBACA,wBACE,eASF,+BACE,sBACA,eACA,c9Eq9ByC,S8Ep9BzC,M9Eq9BiC,K8Ep9BjC,O9Eq9BkC,Q8Ep9BlC,iB9Eq9B4C,0C8Ep9B5C,gBACA,iBAEA,qCACE,WACA,kBACA,YACA,UACA,c9Em9B6C,I8El9B7C,M9Em9BqC,Q8El9BrC,O9Ek9BqC,Q8Ej9BrC,iB9Em9BgD,sB8El9BhD,W9Em9B0C,W8El9B1C,W9EgiBS,gH8E/hBT,W9Em9B0C,mC8Eh9B5C,qCACE,sBAEA,4CACE,W9E88B+C,6D8E78B/C,U9E88B8C,S8E78B9C,W9E88B+C,6B8E38BjD,2CACE,c9Eg8B2C,I8E/7B3C,M9E48ByC,Q8E38BzC,O9E28ByC,Q8Ev8B7C,uCACE,sBAEA,6CACE,sBAEA,oDACE,Y9Em8BsD,U8El8BtD,W9Em8BqD,0B8El8BrD,U9Em8BoD,S8El8BpD,W9Em8BqD,6B8E/7BzD,sDACE,sBAEA,4DACE,WACA,kBACA,YACA,UACA,c9Ey7B0D,I8Ex7B1D,M9Ey7BkD,Q8Ex7BlD,O9Ey7BmD,Q8Ex7BnD,iB9EiYA,Q8EhYA,W9Ey7BuD,K8Ex7BvD,Y9Ey7BwD,U8Ex7BxD,W9Ey7BuD,0K8Ex7BvD,W9E27BuD,mC+E1rC/D,yBACE,kDACA,qDACE,+BAEF,kCACE,qDACA,8CAEA,wDACE,8CAKJ,+EACE,+BCbN,aACE,iBAEA,2BACE,WhFytCiB,oBgFxtCjB,OhFwtCiB,oBgFvtCjB,YhFytCoB,OgFxtCpB,ehFwtCoB,OgFvtCpB,WhFwtCqB,egFttCrB,iCACE,WhFqtCmB,egFptCnB,ahF6mBI,QgF5mBJ,UACA,WhFstCyB,wBgFjtC/B,kBACE,+BACA,YhFitC2B,OgFhtC3B,ehFgtC2B,OgF/sC3B,mDACE,gBACA,iBAEF,gDACE,eAKF,8BACE,OhFssCoB,qBgFrsCpB,UhFssCuB,KgFrsCvB,YhFssCuB,OgFrsCvB,ehFqsCuB,OgFlsCzB,kCACE,UhFgsCuB,KgF3rCzB,8BACE,WhF8rCoB,oBgF7rCpB,OhF6rCoB,oBgF5rCpB,UhF8rCuB,QgF7rCvB,YhFwrCuB,OgFvrCvB,ehFurCuB,OgFprCzB,kCACE,UhFwrCuB,QgFvrCvB,YhF0rC8B,IgFprC9B,4CACE,cAEF,kDACE,SACA,8BAIJ,gOAIE,oCACA,uCAEF,8NAIE,qCACA,wCAIJ,yDACE,cAGF,uCACE,mBAGF,kBACE,mBAKE,8CACE,OhFkoCkB,qBgF5nCtB,+BACE,OhFgnCiB,oBgF9mCnB,kBACE,cAMA,8CACE,OhFsnCkB,oBiFp/BxB,0FAEE,kBAGF,4DAEE,kBA5OA,gBACE,kBACA,aACA,WACA,WlFo0BmB,OkFn0BnB,kBAEA,MjFwuCyB,QiFvuCzB,oBAGF,eACE,kBACA,SACA,UACA,aACA,eACA,iBACA,iBACA,kBAEA,iBAxBiB,mBAyBjB,gCACA,MjF1CI,KiF8CJ,8HAEE,cA/CF,0DAqDE,mBACA,sBACA,ajF0sCuB,QiFxsCvB,sEACE,ajFusCqB,QiFtsCrB,WA3Ca,iCAmDb,8GACE,MjF6rCmB,QiF1rCrB,kcAGE,ajFurCmB,QiFprCrB,kUAEE,mCAEF,gKACE,6BAEF,kKACE,mEAEF,oKACE,kEAIA,gMACE,mEAGF,8LACE,6BACA,mCAGF,kMACE,kEAtGR,wDA+GE,ajFkpCuB,QiFhpCvB,oEACE,ajF+oCqB,QiF9oCrB,WAnGa,iCAsGf,wFACE,aAvHJ,oFA+HI,gBAOF,0HACE,aAGF,sGACE,mCACA,ajFqnCqB,QiFnnCrB,wIACE,gBAMA,gXAEE,ajF0mCiB,QiFjwCzB,kEAgKE,ajFimCuB,QiF/lCvB,kFACE,iBjF8lCqB,QiFzlCnB,4GACE,oCAKN,8EACE,gBAEA,4FACE,oCAIJ,sGACE,MjF0kCqB,QiFzkCrB,mBAKE,4HACE,iBjFmkCiB,QiFlkCjB,ajFkkCiB,QiF5jCrB,0GACE,ajF2jCmB,QiF1jCnB,iBjFxMF,KiF2MI,oIACE,oCAIJ,sHACE,ajFijCiB,QiFhjCjB,iBjFgjCiB,QiFziCzB,qDACE,iBAQI,sHACE,WjF67B2C,6DiFx7B3C,sJACE,iBjFyhCe,QiFxhCf,WjFy8BmD,0KiFr8BrD,sIACE,qCA5NZ,kBACE,kBACA,aACA,WACA,WlFo0BmB,OkFn0BnB,kBAEA,MjFwuCyB,QiFvuCzB,oBAGF,iBACE,kBACA,SACA,UACA,aACA,eACA,iBACA,iBACA,kBAEA,iBAxBiB,oBAyBjB,gCACA,MjF1CI,KiF8CJ,8IAEE,cA/CF,8DAqDE,mBACA,sBACA,ajF0sCuB,QiFxsCvB,0EACE,ajFusCqB,QiFtsCrB,WA3Ca,kCAmDb,kHACE,MjF6rCmB,QiF1rCrB,8cAGE,ajFurCmB,QiFprCrB,0UAEE,mCAEF,oKACE,6BAEF,sKACE,mEAEF,wKACE,kEAIA,oMACE,mEAGF,kMACE,6BACA,mCAGF,sMACE,kEAtGR,4DA+GE,ajFkpCuB,QiFhpCvB,wEACE,ajF+oCqB,QiF9oCrB,WAnGa,kCAsGf,gGACE,aAvHJ,wFA+HI,gBAOF,kIACE,aAGF,0GACE,mCACA,ajFqnCqB,QiFnnCrB,4IACE,gBAMA,wXAEE,ajF0mCiB,QiFjwCzB,sEAgKE,ajFimCuB,QiF/lCvB,sFACE,iBjF8lCqB,QiFzlCnB,gHACE,oCAKN,kFACE,gBAEA,gGACE,oCAIJ,0GACE,MjF0kCqB,QiFzkCrB,mBAKE,gIACE,iBjFmkCiB,QiFlkCjB,ajFkkCiB,QiF5jCrB,8GACE,ajF2jCmB,QiF1jCnB,iBjFxMF,KiF2MI,wIACE,oCAIJ,0HACE,ajFijCiB,QiFhjCjB,iBjFgjCiB,QiFziCzB,uDACE,iBAQI,0HACE,WjF67B2C,6DiFx7B3C,0JACE,iBjFyhCe,QiFxhCf,WjFy8BmD,0KiFr8BrD,0IACE,qCC7OZ,kBACE,gBAIA,wCACE,gBAEF,oCACE,gBAEF,6BACE,gBAIJ,8BACE,SAGF,kCACE,WlFksCwC,KkFjsCxC,gBACA,gBAGF,2CACE,OlF6rC6C,IkF5rC7C,gBACA,gBACA,yCAGF,8BACE,gBACA,gBAGF,8BACE,gBC1CJ,OACE,8BACA,wCAEA,qCAEA,UACE,YnFqzBiB,ImFlzBnB,aACE,YpF4lBiB,IoFzlBnB,uCACE,oBnFu0B0B,Qax1B5B,eAOE,wBACA,wBACA,kCACA,gCACA,gCACA,+BACA,+BACA,8BACA,8BAEA,6BACA,2CAlBF,iBAOE,wBACA,wBACA,kCACA,gCACA,gCACA,+BACA,+BACA,8BACA,8BAEA,6BACA,2CAlBF,eAOE,wBACA,wBACA,kCACA,gCACA,gCACA,+BACA,+BACA,8BACA,8BAEA,6BACA,2CAlBF,YAOE,wBACA,wBACA,kCACA,gCACA,gCACA,+BACA,+BACA,8BACA,8BAEA,6BACA,2CAlBF,eAOE,wBACA,wBACA,kCACA,gCACA,gCACA,+BACA,+BACA,8BACA,8BAEA,6BACA,2CAlBF,cAOE,wBACA,wBACA,kCACA,gCACA,gCACA,+BACA,+BACA,8BACA,8BAEA,6BACA,2CAlBF,aAOE,wBACA,wBACA,kCACA,gCACA,gCACA,+BACA,+BACA,8BACA,8BAEA,6BACA,2CAlBF,YAOE,wBACA,wBACA,kCACA,gCACA,gCACA,+BACA,+BACA,8BACA,8BAEA,6BACA,2CsEQF,sBACE,WnF2zBqB,ImFzzBvB,4BACE,mCACA,2CAIJ,qBACE,iDACA,yBAGF,qBACE,gDCvCF,KAEE,gCACA,iCACA,0BACA,6BACA,iCACA,iFACA,gJACA,gJACA,iJAGA,uCACA,6CACA,yBACA,sBACA,SnFFE,2CmFIF,qCAEA,iFAIE,2CAGF,+DAGE,2CAGF,iFAKE,4CAEA,+GACE,2CAIJ,mDAGE,qCAQJ,sBAEE,8BACA,mCACA,8BACA,4BACA,2BAGA,0FAEA,y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A,+BACA,+BACA,gCAOF,2BCrbE,+BACA,oCACA,+BzF4MI,oBALI,SyFrMR,2BD2bF,2BC/bE,gCACA,oCACA,0BzF4MI,oBALI,QyFrMR,2BDycF,aACE,+BAEA,2CAOF,iDAEE,6BAEA,2CACA,UACA,kBACA,oBACA,mBACA,uBAGF,cACE,2BACA,4BACA,gCACA,sCACA,8BACA,+BACA,mCACA,yCACA,8BACA,+BACA,mCACA,yCAEA,2BACA,6BAEA,yDAGE,gCACA,4CAGF,qDACE,8BACA,gCAEA,6LAGE,mCACA,+CAIJ,qDACE,8BACA,gCAEA,6LAGE,mCACA,+CAKN,mCACE,gCACA,mCACA,mCACA,sCACA,yCACA,yCAEA,wHAGE,gCACA,4CAIA,2TAGE,mCACA,+CAKF,2TAGE,mCACA,+CASN,kBACE,2BACA,4BACA,uBACA,iCACA,kCACA,6BACA,gCAEA,eACA,2BACA,6BACA,8BACA,aACA,gCACA,mBACA,0FAEA,gBACA,YACA,gBAEA,gCACE,kBACA,qBACA,WAGF,qBACE,kBACA,SACA,OACA,QACA,aACA,sBACA,UACA,SACA,gBACA,kBACA,UACA,qCACA,WAEA,wBACE,UACA,aACA,kBACA,2CACA,iBAEA,sCACE,iDAKF,2BACE,UACA,+BAEA,iCACE,UAMR,4BACE,UAQJ,WACE,6BAEA,cACA,WAGA,sBACE,qCEjuBJ,kCACE,WAGF,oBACE,UACA,yBACA,WAGF,kBACE,UACA,yBACA,qBACA,UACA,cAGF,6BACE,mFACA,+BAGF,2BACE,oFACA,+BACA,UACA,MACA,QC1BF,eACE,0CAEA,gCACA,SACA,cACA,iBACA,SACA,0CACA,wCACA,SACA,OACA,sCAEA,kBACE,gBACA,8BACE,8DACA,+DACA,4BACA,6BACA,6CACE,8DACA,+DACA,4BACA,6BAKF,oEACE,gBAIJ,6BACE,yBACA,0BACA,iEACA,kEACA,4CACE,yBACA,0BACA,iEACA,kEAKN,yBACE,uDACA,6DAEA,cAEA,wEACA,sFAIJ,eACE,qDACA,qEAEA,8EACA,gCACA,gBAEA,0CAEE,sCACA,4DAGF,4CAEE,sCACA,4DAGF,qBACE,aAKF,oCACE,aAIJ,WACE,sBACA,yBACA,aAGF,+BACE,WACE,2BACA,4BAIJ,mBACE,KACE,UAGF,GACE,WAIJ,SACE,uBAGF,oBACE,KACE,UAGF,GACE,WAIJ,UACE,wBAGF,kBACE,6CACA,+DAEA,wGAEA,UAIA,wIAGE,+BCjJJ,+BAEE,iFACA,gJACA,gJACA,iJACA,sJAEA,qCACA,2CAEA,2CACE,2CAGF,sFAEE,2CAGF,0FAEE,4CAEA,kHACE,2CAIJ,qKAGE,qCACA,SAGF,yCACE,gBAEA,8RAIE,2BAGF,2NAGE,gBAGF,6TAKE,gBAEA,yXACE,gBAIJ,mMAGE,gBAIJ,qDACE,gBAKA,8JACE,yBACA,4BAGF,0JACE,0BACA,6BAKN,iDAGE,iCAEA,2CC1FF,UACE,gBAEA,oBACE,qCACA,oCACA,qEACA,sCACA,yCACA,oCACA,6DACA,6CACA,0CACA,iDACA,eACA,+EACA,gBACA,yBACA,cACA,iDACA,6CACA,qCACA,2JAGA,0BACE,oDACA,2BAGF,0BACE,2BAIJ,8DAEE,4CACA,0DAQJ,WACE,oBAEA,qBACE,4CACA,qCACA,uCACA,0CACA,qCACA,oCACA,6DACA,sCACA,sEACA,+BAEA,sDACA,8CACA,yBACA,+JAEA,kDACA,oDACA,kDACA,sCACA,mCAGF,uDAEE,6DACA,oEAEA,qDACA,6CAQA,iEACE,WC5FN,QACE,yIACA,oCACA,6CAEA,wCACA,0CAGF,gBACE,SAEA,sBACE,gBAIJ,2DAEE,SAGF,cACE,aACA,mBACA,kBACE,sDAIJ,2BACE,kBAKA,mCACE,sBAKF,kCACE,sBAIJ,0CAGE,8CACA,oDACA,uDACA,gCACA,+BACA,qCACA,4DACA,gRCzDF,MACE,SAEA,gBACE,qDACA,sDAIA,+BACE,4DAEA,+DAEF,+BACE,yDAEA,yDAKN,aACE,oCACA,yDAEA,4FAKA,uBACE,wDACA,yDAIJ,aACE,yDACA,oCAEA,yFAIF,eACE,qDACA,wDC9CA,oBAEE,uEACA,4EACA,8EACA,0DAGA,+BACA,gBAGE,uCACE,uCACA,iDAEA,0FAEE,6CAKF,6DACE,8CCzBV,YAEE,wCACA,oDACA,yCACA,2CACA,4CACA,kDACA,kDACA,+CACA,+CAIF,WACE,+BACA,SACA,UACA,kDAEA,iBACE,gBAGF,qCAEE,SACA,mDACA,qDAMA,wCACE,cAKF,kCACE,2DACA,8DAKF,iCACE,4DACA,+DAYA,qDACE,yDAKF,oDACE,yDAKN,8BACE,yDACA,oDACA,qDAIA,4CACE,uDACA,wDAKF,4CACE,uDACA,wDCvFN,WACE,iCACA,wBACA,uBACA,oCAEA,kBACA,YACA,6BACA,+BACA,6CACA,UACA,yCAEA,iBACE,qBAKJ,oBACE,8BACA,8BACA,6BACA,gCACA,iCAEA,kBACA,qCACA,8DACA,uCACA,yCAKA,eACE,8CACA,uCAEA,iBACE,uCALJ,iBACE,gDACA,yCAEA,mBACE,yCALJ,eACE,8CACA,uCAEA,iBACE,uCALJ,cACE,6CACA,sCAEA,gBACE,sCALJ,eACE,8CACA,uCAEA,iBACE,uCALJ,YACE,2CACA,oCAEA,cACE,oCALJ,aACE,4CACA,qCAEA,eACE,qCALJ,YACE,2CACA,oCAEA,cACE,oCC7CN,OACE,SAGF,gBACE,kBAGF,aACE,gCAEA,eACA,uCAGF,uBACE,kBAIA,eACE,8CACA,uCAEA,iBACE,uCAGF,2BACE,uCAEA,iCACE,4EAZN,iBACE,gDACA,yCAEA,mBACE,yCAGF,6BACE,yCAEA,mCACE,8EAZN,eACE,8CACA,uCAEA,iBACE,uCAGF,2BACE,uCAEA,iCACE,4EAZN,cACE,6CACA,sCAEA,gBACE,sCAGF,0BACE,sCAEA,gCACE,2EAZN,eACE,8CACA,uCAEA,iBACE,uCAGF,2BACE,uCAEA,iCACE,4EAZN,YACE,2CACA,oCAEA,cACE,oCAGF,wBACE,oCAEA,8BACE,yEAZN,aACE,4CACA,qCAEA,eACE,qCAGF,yBACE,qCAEA,+BACE,0EAZN,YACE,2CACA,oCAEA,cACE,oCAGF,wBACE,oCAEA,8BACE,yEChCR,UACE,gBACA,4BCCA,4CAGF,wBACE,sDAGA,8BACE,sDAIJ,kBACE,qCACA,uEACA,8CACA,oDACA,+DACA,sEAEA,mCACE,8CACA,+CAEF,mCACE,+DACA,gDACE,YAGJ,0BACE,YACA,+DACA,uDACA,+CAGA,gDACE,+DAEF,gDACE,+DAKN,kBACE,uCACA,mCACE,8CAKF,yBACE,8CACA,uCAEA,2BACE,uCALJ,2BACE,gDACA,yCAEA,6BACE,yCALJ,yBACE,8CACA,uCAEA,2BACE,uCALJ,wBACE,6CACA,sCAEA,0BACE,sCALJ,yBACE,8CACA,uCAEA,2BACE,uCALJ,sBACE,2CACA,oCAEA,wBACE,oCALJ,uBACE,4CACA,qCAEA,yBACE,qCALJ,sBACE,2CACA,oCAEA,wBACE,oCC1DJ,iBACE,gBCHJ,eAEE,kJAGA,SACA,uCCNF,OAEE,qCACA,mCACA,oCACA,kCACA,sCACA,6CAGA,SAEA,kBACE,uCAIJ,cACE,yDAEA,yBACE,2CACA,0CAIJ,uBACE,kBAGF,gBACE,kBAGF,aACE,eACA,gCAIA,eACE,8CACA,uCACA,8CAEA,iBACE,uCANJ,iBACE,gDACA,yCACA,gDAEA,mBACE,yCANJ,eACE,8CACA,uCACA,8CAEA,iBACE,uCANJ,cACE,6CACA,sCACA,6CAEA,gBACE,sCANJ,eACE,8CACA,uCACA,8CAEA,iBACE,uCANJ,YACE,2CACA,oCACA,2CAEA,cACE,oCANJ,aACE,4CACA,qCACA,4CAEA,eACE,qCANJ,YACE,2CACA,oCACA,2CAEA,cACE,oCChDN,SACE,8BAEA,cACE,UAGF,wBACE,aAIJ,eACE,uCCXF,SAEE,uCAGA,wBACE,aAIJ,gBACE,2FCXE,kCACE,+CACA,0DACA,iDACA,4CACA,8CACA,8DACA,2CAEA,sDACA,+BACA,8CACA,0DACA,sDACA,0DACA,wDACA,uBACA,sDACA,yDAGF,iFAEE,mDACA,qDACA,2DACA,0DAEA,+BACA,gBACA,qDACA,iEACA,8HAEA,gBAGF,oDACE,sDAEA,4EACA,iBC7CN,gBACE,kBACA,gBACA,qBACA,sBAGF,wBACE,iBAGF,aACE,2DACA,qCACA,+BACA,sCACA,+BACA,6CCSA,6JDNA,mDACA,uCACA,oBAC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","file":"mdb.dark.min.css","sourcesContent":["/*!\n* MDB5\n* Version: FREE 7.2.0\n*\n*\n* Copyright: Material Design for Bootstrap\n* https://mdbootstrap.com/\n*\n* Read the license: https://mdbootstrap.com/general/license/\n*\n*\n* Documentation: https://mdbootstrap.com/docs/standard/\n*\n* Support: https://mdbootstrap.com/support/\n*\n* Contact: contact@mdbootstrap.com\n*\n*/\n\n@import './src/scss/mdb.dark.free.scss'\n",":root,\n[data-mdb-theme='light'] {\n // Note: Custom variable values only support SassScript inside `#{}`.\n\n // Colors\n //\n // Generate palettes for full colors, grays, and theme colors.\n\n @each $color, $value in $colors {\n --#{$prefix}#{$color}: #{$value};\n }\n\n @each $color, $value in $grays {\n --#{$prefix}gray-#{$color}: #{$value};\n }\n\n @each $color, $value in $theme-colors {\n --#{$prefix}#{$color}: #{$value};\n }\n\n @each $color, $value in $theme-colors-rgb {\n --#{$prefix}#{$color}-rgb: #{$value};\n }\n\n @each $color, $value in $theme-colors-text {\n --#{$prefix}#{$color}-text-emphasis: #{$value};\n }\n\n @each $color, $value in $theme-colors-bg-subtle {\n --#{$prefix}#{$color}-bg-subtle: #{$value};\n }\n\n @each $color, $value in $theme-colors-border-subtle {\n --#{$prefix}#{$color}-border-subtle: #{$value};\n }\n\n --#{$prefix}white-rgb: #{to-rgb($white)};\n --#{$prefix}black-rgb: #{to-rgb($black)};\n\n // Fonts\n\n // Note: Use `inspect` for lists so that quoted items keep the quotes.\n // See https://github.com/sass/sass/issues/2383#issuecomment-336349172\n --#{$prefix}font-sans-serif: #{inspect($font-family-sans-serif)};\n --#{$prefix}font-monospace: #{inspect($font-family-monospace)};\n --#{$prefix}gradient: #{$gradient};\n\n // Root and body\n // scss-docs-start root-body-variables\n @if $font-size-root != null {\n --#{$prefix}root-font-size: #{$font-size-root};\n }\n --#{$prefix}body-font-family: #{inspect($font-family-base)};\n @include rfs($font-size-base, --#{$prefix}body-font-size);\n --#{$prefix}body-font-weight: #{$font-weight-base};\n --#{$prefix}body-line-height: #{$line-height-base};\n @if $body-text-align != null {\n --#{$prefix}body-text-align: #{$body-text-align};\n }\n\n --#{$prefix}body-color: #{$body-color};\n --#{$prefix}body-color-rgb: #{to-rgb($body-color)};\n --#{$prefix}body-bg: #{$body-bg};\n --#{$prefix}body-bg-rgb: #{to-rgb($body-bg)};\n\n --#{$prefix}emphasis-color: #{$body-emphasis-color};\n --#{$prefix}emphasis-color-rgb: #{to-rgb($body-emphasis-color)};\n\n --#{$prefix}secondary-color: #{$body-secondary-color};\n --#{$prefix}secondary-color-rgb: #{to-rgb($body-secondary-color)};\n --#{$prefix}secondary-bg: #{$body-secondary-bg};\n --#{$prefix}secondary-bg-rgb: #{to-rgb($body-secondary-bg)};\n\n --#{$prefix}tertiary-color: #{$body-tertiary-color};\n --#{$prefix}tertiary-color-rgb: #{to-rgb($body-tertiary-color)};\n --#{$prefix}tertiary-bg: #{$body-tertiary-bg};\n --#{$prefix}tertiary-bg-rgb: #{to-rgb($body-tertiary-bg)};\n // scss-docs-end root-body-variables\n\n --#{$prefix}heading-color: #{$headings-color};\n\n --#{$prefix}link-color: #{$link-color};\n --#{$prefix}link-color-rgb: #{to-rgb($link-color)};\n --#{$prefix}link-decoration: #{$link-decoration};\n\n --#{$prefix}link-hover-color: #{$link-hover-color};\n --#{$prefix}link-hover-color-rgb: #{to-rgb($link-hover-color)};\n\n @if $link-hover-decoration != null {\n --#{$prefix}link-hover-decoration: #{$link-hover-decoration};\n }\n\n --#{$prefix}code-color: #{$code-color};\n --#{$prefix}highlight-color: #{$mark-color};\n --#{$prefix}highlight-bg: #{$mark-bg};\n\n // scss-docs-start root-border-var\n --#{$prefix}border-width: #{$border-width};\n --#{$prefix}border-style: #{$border-style};\n --#{$prefix}border-color: #{$border-color};\n --#{$prefix}border-color-translucent: #{$border-color-translucent};\n\n --#{$prefix}border-radius: #{$border-radius};\n --#{$prefix}border-radius-sm: #{$border-radius-sm};\n --#{$prefix}border-radius-lg: #{$border-radius-lg};\n --#{$prefix}border-radius-xl: #{$border-radius-xl};\n --#{$prefix}border-radius-xxl: #{$border-radius-xxl};\n --#{$prefix}border-radius-2xl: var(\n --#{$prefix}border-radius-xxl\n ); // Deprecated in v5.3.0 for consistency\n --#{$prefix}border-radius-pill: #{$border-radius-pill};\n // scss-docs-end root-border-var\n\n --#{$prefix}box-shadow: #{$box-shadow};\n --#{$prefix}box-shadow-sm: #{$box-shadow-sm};\n --#{$prefix}box-shadow-lg: #{$box-shadow-lg};\n --#{$prefix}box-shadow-inset: #{$box-shadow-inset};\n\n // Focus styles\n // scss-docs-start root-focus-variables\n --#{$prefix}focus-ring-width: #{$focus-ring-width};\n --#{$prefix}focus-ring-opacity: #{$focus-ring-opacity};\n --#{$prefix}focus-ring-color: #{$focus-ring-color};\n // scss-docs-end root-focus-variables\n\n // scss-docs-start root-form-validation-variables\n --#{$prefix}form-valid-color: #{$form-valid-color};\n --#{$prefix}form-valid-border-color: #{$form-valid-border-color};\n --#{$prefix}form-invalid-color: #{$form-invalid-color};\n --#{$prefix}form-invalid-border-color: #{$form-invalid-border-color};\n // scss-docs-end root-form-validation-variables\n}\n\n@if $enable-dark-mode {\n @include color-mode(dark, true) {\n color-scheme: dark;\n\n // scss-docs-start root-dark-mode-vars\n --#{$prefix}body-color: #{$body-color-dark};\n --#{$prefix}body-color-rgb: #{to-rgb($body-color-dark)};\n --#{$prefix}body-bg: #{$body-bg-dark};\n --#{$prefix}body-bg-rgb: #{to-rgb($body-bg-dark)};\n\n --#{$prefix}emphasis-color: #{$body-emphasis-color-dark};\n --#{$prefix}emphasis-color-rgb: #{to-rgb($body-emphasis-color-dark)};\n\n --#{$prefix}secondary-color: #{$body-secondary-color-dark};\n --#{$prefix}secondary-color-rgb: #{to-rgb($body-secondary-color-dark)};\n --#{$prefix}secondary-bg: #{$body-secondary-bg-dark};\n --#{$prefix}secondary-bg-rgb: #{to-rgb($body-secondary-bg-dark)};\n\n --#{$prefix}tertiary-color: #{$body-tertiary-color-dark};\n --#{$prefix}tertiary-color-rgb: #{to-rgb($body-tertiary-color-dark)};\n --#{$prefix}tertiary-bg: #{$body-tertiary-bg-dark};\n --#{$prefix}tertiary-bg-rgb: #{to-rgb($body-tertiary-bg-dark)};\n\n @each $color, $value in $theme-colors-text-dark {\n --#{$prefix}#{$color}-text-emphasis: #{$value};\n }\n\n @each $color, $value in $theme-colors-bg-subtle-dark {\n --#{$prefix}#{$color}-bg-subtle: #{$value};\n }\n\n @each $color, $value in $theme-colors-border-subtle-dark {\n --#{$prefix}#{$color}-border-subtle: #{$value};\n }\n\n --#{$prefix}heading-color: #{$headings-color-dark};\n\n --#{$prefix}link-color: #{$link-color-dark};\n --#{$prefix}link-hover-color: #{$link-hover-color-dark};\n --#{$prefix}link-color-rgb: #{to-rgb($link-color-dark)};\n --#{$prefix}link-hover-color-rgb: #{to-rgb($link-hover-color-dark)};\n\n --#{$prefix}code-color: #{$code-color-dark};\n --#{$prefix}highlight-color: #{$mark-color-dark};\n --#{$prefix}highlight-bg: #{$mark-bg-dark};\n\n --#{$prefix}border-color: #{$border-color-dark};\n --#{$prefix}border-color-translucent: #{$border-color-translucent-dark};\n\n --#{$prefix}form-valid-color: #{$form-valid-color-dark};\n --#{$prefix}form-valid-border-color: #{$form-valid-border-color-dark};\n --#{$prefix}form-invalid-color: #{$form-invalid-color-dark};\n --#{$prefix}form-invalid-border-color: #{$form-invalid-border-color-dark};\n // scss-docs-end root-dark-mode-vars\n }\n}\n","// stylelint-disable scss/dimension-no-non-numeric-values\n\n// SCSS RFS mixin\n//\n// Automated responsive values for font sizes, paddings, margins and much more\n//\n// Licensed under MIT (https://github.com/twbs/rfs/blob/main/LICENSE)\n\n// Configuration\n\n// Base value\n$rfs-base-value: 1.25rem !default;\n$rfs-unit: rem !default;\n\n@if $rfs-unit != rem and $rfs-unit != px {\n @error \"`#{$rfs-unit}` is not a valid unit for $rfs-unit. Use `px` or `rem`.\";\n}\n\n// Breakpoint at where values start decreasing if screen width is smaller\n$rfs-breakpoint: 1200px !default;\n$rfs-breakpoint-unit: px !default;\n\n@if $rfs-breakpoint-unit != px and $rfs-breakpoint-unit != em and $rfs-breakpoint-unit != rem {\n @error \"`#{$rfs-breakpoint-unit}` is not a valid unit for $rfs-breakpoint-unit. Use `px`, `em` or `rem`.\";\n}\n\n// Resize values based on screen height and width\n$rfs-two-dimensional: false !default;\n\n// Factor of decrease\n$rfs-factor: 10 !default;\n\n@if type-of($rfs-factor) != number or $rfs-factor <= 1 {\n @error \"`#{$rfs-factor}` is not a valid $rfs-factor, it must be greater than 1.\";\n}\n\n// Mode. Possibilities: \"min-media-query\", \"max-media-query\"\n$rfs-mode: min-media-query !default;\n\n// Generate enable or disable classes. Possibilities: false, \"enable\" or \"disable\"\n$rfs-class: false !default;\n\n// 1 rem = $rfs-rem-value px\n$rfs-rem-value: 16 !default;\n\n// Safari iframe resize bug: https://github.com/twbs/rfs/issues/14\n$rfs-safari-iframe-resize-bug-fix: false !default;\n\n// Disable RFS by setting $enable-rfs to false\n$enable-rfs: true !default;\n\n// Cache $rfs-base-value unit\n$rfs-base-value-unit: unit($rfs-base-value);\n\n@function divide($dividend, $divisor, $precision: 10) {\n $sign: if($dividend > 0 and $divisor > 0 or $dividend < 0 and $divisor < 0, 1, -1);\n $dividend: abs($dividend);\n $divisor: abs($divisor);\n @if $dividend == 0 {\n @return 0;\n }\n @if $divisor == 0 {\n @error \"Cannot divide by 0\";\n }\n $remainder: $dividend;\n $result: 0;\n $factor: 10;\n @while ($remainder > 0 and $precision >= 0) {\n $quotient: 0;\n @while ($remainder >= $divisor) {\n $remainder: $remainder - $divisor;\n $quotient: $quotient + 1;\n }\n $result: $result * 10 + $quotient;\n $factor: $factor * 0.1;\n $remainder: $remainder * 10;\n $precision: $precision - 1;\n @if ($precision < 0 and $remainder >= $divisor * 5) {\n $result: $result + 1;\n }\n }\n $result: $result * $factor * $sign;\n $dividend-unit: unit($dividend);\n $divisor-unit: unit($divisor);\n $unit-map: (\n 'px': 1px,\n 'rem': 1rem,\n 'em': 1em,\n '%': 1%,\n );\n @if ($dividend-unit != $divisor-unit and map-has-key($unit-map, $dividend-unit)) {\n $result: $result * map-get($unit-map, $dividend-unit);\n }\n @return $result;\n}\n\n// Remove px-unit from $rfs-base-value for calculations\n@if $rfs-base-value-unit == px {\n $rfs-base-value: divide($rfs-base-value, $rfs-base-value * 0 + 1);\n} @else if $rfs-base-value-unit == rem {\n $rfs-base-value: divide($rfs-base-value, divide($rfs-base-value * 0 + 1, $rfs-rem-value));\n}\n\n// Cache $rfs-breakpoint unit to prevent multiple calls\n$rfs-breakpoint-unit-cache: unit($rfs-breakpoint);\n\n// Remove unit from $rfs-breakpoint for calculations\n@if $rfs-breakpoint-unit-cache == px {\n $rfs-breakpoint: divide($rfs-breakpoint, $rfs-breakpoint * 0 + 1);\n} @else if $rfs-breakpoint-unit-cache == rem or $rfs-breakpoint-unit-cache == 'em' {\n $rfs-breakpoint: divide($rfs-breakpoint, divide($rfs-breakpoint * 0 + 1, $rfs-rem-value));\n}\n\n// Calculate the media query value\n$rfs-mq-value: if(\n $rfs-breakpoint-unit == px,\n #{$rfs-breakpoint}px,\n #{divide($rfs-breakpoint, $rfs-rem-value)}#{$rfs-breakpoint-unit}\n);\n$rfs-mq-property-width: if($rfs-mode == max-media-query, max-width, min-width);\n$rfs-mq-property-height: if($rfs-mode == max-media-query, max-height, min-height);\n\n// Internal mixin used to determine which media query needs to be used\n@mixin _rfs-media-query {\n @if $rfs-two-dimensional {\n @if $rfs-mode == max-media-query {\n @media (#{$rfs-mq-property-width}: #{$rfs-mq-value}), (#{$rfs-mq-property-height}: #{$rfs-mq-value}) {\n @content;\n }\n } @else {\n @media (#{$rfs-mq-property-width}: #{$rfs-mq-value}) and (#{$rfs-mq-property-height}: #{$rfs-mq-value}) {\n @content;\n }\n }\n } @else {\n @media (#{$rfs-mq-property-width}: #{$rfs-mq-value}) {\n @content;\n }\n }\n}\n\n// Internal mixin that adds disable classes to the selector if needed.\n@mixin _rfs-rule {\n @if $rfs-class == disable and $rfs-mode == max-media-query {\n // Adding an extra class increases specificity, which prevents the media query to override the property\n &,\n .disable-rfs &,\n &.disable-rfs {\n @content;\n }\n } @else if $rfs-class == enable and $rfs-mode == min-media-query {\n .enable-rfs &,\n &.enable-rfs {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Internal mixin that adds enable classes to the selector if needed.\n@mixin _rfs-media-query-rule {\n @if $rfs-class == enable {\n @if $rfs-mode == min-media-query {\n @content;\n }\n\n @include _rfs-media-query() {\n .enable-rfs &,\n &.enable-rfs {\n @content;\n }\n }\n } @else {\n @if $rfs-class == disable and $rfs-mode == min-media-query {\n .disable-rfs &,\n &.disable-rfs {\n @content;\n }\n }\n @include _rfs-media-query() {\n @content;\n }\n }\n}\n\n// Helper function to get the formatted non-responsive value\n@function rfs-value($values) {\n // Convert to list\n $values: if(type-of($values) != list, ($values), $values);\n\n $val: '';\n\n // Loop over each value and calculate value\n @each $value in $values {\n @if $value == 0 {\n $val: $val + ' 0';\n } @else {\n // Cache $value unit\n $unit: if(type-of($value) == 'number', unit($value), false);\n\n @if $unit == px {\n // Convert to rem if needed\n $val: $val +\n ' ' +\n if($rfs-unit == rem, #{divide($value, $value * 0 + $rfs-rem-value)}rem, $value);\n } @else if $unit == rem {\n // Convert to px if needed\n $val: $val +\n ' ' +\n if($rfs-unit == px, #{divide($value, $value * 0 + 1) * $rfs-rem-value}px, $value);\n } @else {\n // If $value isn't a number (like inherit) or $value has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\n $val: $val + ' ' + $value;\n }\n }\n }\n\n // Remove first space\n @return unquote(str-slice($val, 2));\n}\n\n// Helper function to get the responsive value calculated by RFS\n@function rfs-fluid-value($values) {\n // Convert to list\n $values: if(type-of($values) != list, ($values), $values);\n\n $val: '';\n\n // Loop over each value and calculate value\n @each $value in $values {\n @if $value == 0 {\n $val: $val + ' 0';\n } @else {\n // Cache $value unit\n $unit: if(type-of($value) == 'number', unit($value), false);\n\n // If $value isn't a number (like inherit) or $value has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\n @if not $unit or $unit != px and $unit != rem {\n $val: $val + ' ' + $value;\n } @else {\n // Remove unit from $value for calculations\n $value: divide($value, $value * 0 + if($unit == px, 1, divide(1, $rfs-rem-value)));\n\n // Only add the media query if the value is greater than the minimum value\n @if abs($value) <= $rfs-base-value or not $enable-rfs {\n $val: $val +\n ' ' +\n if($rfs-unit == rem, #{divide($value, $rfs-rem-value)}rem, #{$value}px);\n } @else {\n // Calculate the minimum value\n $value-min: $rfs-base-value + divide(abs($value) - $rfs-base-value, $rfs-factor);\n\n // Calculate difference between $value and the minimum value\n $value-diff: abs($value) - $value-min;\n\n // Base value formatting\n $min-width: if(\n $rfs-unit == rem,\n #{divide($value-min, $rfs-rem-value)}rem,\n #{$value-min}px\n );\n\n // Use negative value if needed\n $min-width: if($value < 0, -$min-width, $min-width);\n\n // Use `vmin` if two-dimensional is enabled\n $variable-unit: if($rfs-two-dimensional, vmin, vw);\n\n // Calculate the variable width between 0 and $rfs-breakpoint\n $variable-width: #{divide($value-diff * 100, $rfs-breakpoint)}#{$variable-unit};\n\n // Return the calculated value\n $val: $val + ' calc(' + $min-width + if($value < 0, ' - ', ' + ') + $variable-width + ')';\n }\n }\n }\n }\n\n // Remove first space\n @return unquote(str-slice($val, 2));\n}\n\n// RFS mixin\n@mixin rfs($values, $property: font-size) {\n @if $values != null {\n $val: rfs-value($values);\n $fluid-val: rfs-fluid-value($values);\n\n // Do not print the media query if responsive & non-responsive values are the same\n @if $val == $fluid-val {\n #{$property}: $val;\n } @else {\n @include _rfs-rule() {\n #{$property}: if($rfs-mode == max-media-query, $val, $fluid-val);\n\n // Include safari iframe resize fix if needed\n min-width: if($rfs-safari-iframe-resize-bug-fix, (0 * 1vw), null);\n }\n\n @include _rfs-media-query-rule() {\n #{$property}: if($rfs-mode == max-media-query, $fluid-val, $val);\n }\n }\n }\n}\n\n// Shorthand helper mixins\n@mixin font-size($value) {\n @include rfs($value);\n}\n\n@mixin padding($value) {\n @include rfs($value, padding);\n}\n\n@mixin padding-top($value) {\n @include rfs($value, padding-top);\n}\n\n@mixin padding-right($value) {\n @include rfs($value, padding-right);\n}\n\n@mixin padding-bottom($value) {\n @include rfs($value, padding-bottom);\n}\n\n@mixin padding-left($value) {\n @include rfs($value, padding-left);\n}\n\n@mixin margin($value) {\n @include rfs($value, margin);\n}\n\n@mixin margin-top($value) {\n @include rfs($value, margin-top);\n}\n\n@mixin margin-right($value) {\n @include rfs($value, margin-right);\n}\n\n@mixin margin-bottom($value) {\n @include rfs($value, margin-bottom);\n}\n\n@mixin margin-left($value) {\n @include rfs($value, margin-left);\n}\n","// scss-docs-start color-mode-mixin\n@mixin color-mode($mode: light, $root: false) {\n @if $color-mode-type == 'media-query' {\n @if $root == true {\n @media (prefers-color-scheme: $mode) {\n :root {\n @content;\n }\n }\n } @else {\n @media (prefers-color-scheme: $mode) {\n @content;\n }\n }\n } @else {\n [data-mdb-theme='#{$mode}'] {\n @content;\n }\n }\n}\n// scss-docs-end color-mode-mixin\n","// stylelint-disable declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\n\n// Reboot\n//\n// Normalization of HTML elements, manually forked from Normalize.css to remove\n// styles targeting irrelevant browsers while applying new styles.\n//\n// Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n// Document\n//\n// Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\n// Root\n//\n// Ability to the value of the root font sizes, affecting the value of `rem`.\n// null by default, thus nothing is generated.\n\n:root {\n @if $font-size-root != null {\n @include font-size(var(--#{$prefix}root-font-size));\n }\n\n @if $enable-smooth-scroll {\n @media (prefers-reduced-motion: no-preference) {\n scroll-behavior: smooth;\n }\n }\n}\n\n// Body\n//\n// 1. Remove the margin in all browsers.\n// 2. As a best practice, apply a default `background-color`.\n// 3. Prevent adjustments of font size after orientation changes in iOS.\n// 4. Change the default tap highlight to be completely transparent in iOS.\n\n// scss-docs-start reboot-body-rules\nbody {\n margin: 0; // 1\n font-family: var(--#{$prefix}body-font-family);\n @include font-size(var(--#{$prefix}body-font-size));\n font-weight: var(--#{$prefix}body-font-weight);\n line-height: var(--#{$prefix}body-line-height);\n color: var(--#{$prefix}body-color);\n text-align: var(--#{$prefix}body-text-align);\n background-color: var(--#{$prefix}body-bg); // 2\n -webkit-text-size-adjust: 100%; // 3\n -webkit-tap-highlight-color: rgba($black, 0); // 4\n}\n// scss-docs-end reboot-body-rules\n\n// Content grouping\n//\n// 1. Reset Firefox's gray color\n\nhr {\n margin: $hr-margin-y 0;\n color: $hr-color; // 1\n border: 0;\n border-top: $hr-border-width solid $hr-border-color;\n opacity: $hr-opacity;\n}\n\n// Typography\n//\n// 1. Remove top margins from headings\n// By default, `

`-`

` all receive top and bottom margins. We nuke the top\n// margin for easier control within type scales as it avoids margin collapsing.\n\n%heading {\n margin-top: 0; // 1\n margin-bottom: $headings-margin-bottom;\n font-family: $headings-font-family;\n font-style: $headings-font-style;\n font-weight: $headings-font-weight;\n line-height: $headings-line-height;\n color: var(--#{$prefix}heading-color);\n}\n\nh1 {\n @extend %heading;\n @include font-size($h1-font-size);\n}\n\nh2 {\n @extend %heading;\n @include font-size($h2-font-size);\n}\n\nh3 {\n @extend %heading;\n @include font-size($h3-font-size);\n}\n\nh4 {\n @extend %heading;\n @include font-size($h4-font-size);\n}\n\nh5 {\n @extend %heading;\n @include font-size($h5-font-size);\n}\n\nh6 {\n @extend %heading;\n @include font-size($h6-font-size);\n}\n\n// Reset margins on paragraphs\n//\n// Similarly, the top margin on `

`s get reset. However, we also reset the\n// bottom margin to use `rem` units instead of `em`.\n\np {\n margin-top: 0;\n margin-bottom: $paragraph-margin-bottom;\n}\n\n// Abbreviations\n//\n// 1. Add the correct text decoration in Chrome, Edge, Opera, and Safari.\n// 2. Add explicit cursor to indicate changed behavior.\n// 3. Prevent the text-decoration to be skipped.\n\nabbr[title] {\n text-decoration: underline dotted; // 1\n cursor: help; // 2\n text-decoration-skip-ink: none; // 3\n}\n\n// Address\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\n// Lists\n\nol,\nul {\n padding-left: 2rem;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: $dt-font-weight;\n}\n\n// 1. Undo browser default\n\ndd {\n margin-bottom: 0.5rem;\n margin-left: 0; // 1\n}\n\n// Blockquote\n\nblockquote {\n margin: 0 0 1rem;\n}\n\n// Strong\n//\n// Add the correct font weight in Chrome, Edge, and Safari\n\nb,\nstrong {\n font-weight: $font-weight-bolder;\n}\n\n// Small\n//\n// Add the correct font size in all browsers\n\nsmall {\n @include font-size($small-font-size);\n}\n\n// Mark\n\nmark {\n padding: $mark-padding;\n color: var(--#{$prefix}highlight-color);\n background-color: var(--#{$prefix}highlight-bg);\n}\n\n// Sub and Sup\n//\n// Prevent `sub` and `sup` elements from affecting the line height in\n// all browsers.\n\nsub,\nsup {\n position: relative;\n @include font-size($sub-sup-font-size);\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\nsup {\n top: -0.5em;\n}\n\n// Links\n\na {\n color: rgba(var(--#{$prefix}link-color-rgb), var(--#{$prefix}link-opacity, 1));\n text-decoration: $link-decoration;\n\n &:hover {\n --#{$prefix}link-color-rgb: var(--#{$prefix}link-hover-color-rgb);\n text-decoration: $link-hover-decoration;\n }\n}\n\n// And undo these styles for placeholder links/named anchors (without href).\n// It would be more straightforward to just use a[href] in previous block, but that\n// causes specificity issues in many other styles that are too complex to fix.\n// See https://github.com/twbs/bootstrap/issues/19402\n\na:not([href]):not([class]) {\n &,\n &:hover {\n color: inherit;\n text-decoration: none;\n }\n}\n\n// Code\n\npre,\ncode,\nkbd,\nsamp {\n font-family: $font-family-code;\n @include font-size(1em); // Correct the odd `em` font sizing in all browsers.\n}\n\n// 1. Remove browser default top margin\n// 2. Reset browser default of `1em` to use `rem`s\n// 3. Don't allow content to break outside\n\npre {\n display: block;\n margin-top: 0; // 1\n margin-bottom: 1rem; // 2\n overflow: auto; // 3\n @include font-size($code-font-size);\n color: $pre-color;\n\n // Account for some code outputs that place code tags in pre tags\n code {\n @include font-size(inherit);\n color: inherit;\n word-break: normal;\n }\n}\n\ncode {\n @include font-size($code-font-size);\n color: var(--#{$prefix}code-color);\n word-wrap: break-word;\n\n // Streamline the style when inside anchors to avoid broken underline and more\n a > & {\n color: inherit;\n }\n}\n\nkbd {\n padding: $kbd-padding-y $kbd-padding-x;\n @include font-size($kbd-font-size);\n color: $kbd-color;\n background-color: $kbd-bg;\n @include border-radius($border-radius-sm);\n\n kbd {\n padding: 0;\n @include font-size(1em);\n font-weight: $nested-kbd-font-weight;\n }\n}\n\n// Figures\n//\n// Apply a consistent margin strategy (matches our type styles).\n\nfigure {\n margin: 0 0 1rem;\n}\n\n// Images and content\n\nimg,\nsvg {\n vertical-align: middle;\n}\n\n// Tables\n//\n// Prevent double borders\n\ntable {\n caption-side: bottom;\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: $table-cell-padding-y;\n padding-bottom: $table-cell-padding-y;\n color: $table-caption-color;\n text-align: left;\n}\n\n// 1. Removes font-weight bold by inheriting\n// 2. Matches default `` alignment by inheriting `text-align`.\n// 3. Fix alignment for Safari\n\nth {\n font-weight: $table-th-font-weight; // 1\n text-align: inherit; // 2\n text-align: -webkit-match-parent; // 3\n}\n\nthead,\ntbody,\ntfoot,\ntr,\ntd,\nth {\n border-color: inherit;\n border-style: solid;\n border-width: 0;\n}\n\n// Forms\n//\n// 1. Allow labels to use `margin` for spacing.\n\nlabel {\n display: inline-block; // 1\n}\n\n// Remove the default `border-radius` that macOS Chrome adds.\n// See https://github.com/twbs/bootstrap/issues/24093\n\nbutton {\n // stylelint-disable-next-line property-disallowed-list\n border-radius: 0;\n}\n\n// Explicitly remove focus outline in Chromium when it shouldn't be\n// visible (e.g. as result of mouse click or touch tap). It already\n// should be doing this automatically, but seems to currently be\n// confused and applies its very visible two-tone outline anyway.\n\nbutton:focus:not(:focus-visible) {\n outline: 0;\n}\n\n// 1. Remove the margin in Firefox and Safari\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0; // 1\n font-family: inherit;\n @include font-size(inherit);\n line-height: inherit;\n}\n\n// Remove the inheritance of text transform in Firefox\nbutton,\nselect {\n text-transform: none;\n}\n// Set the cursor for non-`

-
    - ${descriptionList} -
- ` - } - self.modalContent = ` -
` - if (!getCookie(self.props.cookieName) && self.props.autoShowModal) { - showDialog() - } - } - - function showDialog() { - documentReady(function () { - self.modalElement = document.getElementById(self.props.modalId) - if (!self.modalElement) { - self.modalElement = document.createElement("div") - self.modalElement.id = self.props.modalId - self.modalElement.setAttribute("class", "modal fade") - self.modalElement.setAttribute("tabindex", "-1") - self.modalElement.setAttribute("role", "dialog") - self.modalElement.setAttribute("aria-labelledby", self.props.modalId) - self.modalElement.innerHTML = self.modalContent - document.body.append(self.modalElement) - if (self.props.postSelectionCallback) { - self.modalElement.addEventListener("hidden.bs.modal", function () { - self.props.postSelectionCallback() - }) - } - self.modal = new bootstrap.Modal(self.modalElement, { - backdrop: "static", - keyboard: false - }) - self.modal.show() - self.buttonDoNotAgree = self.modalElement.querySelector("#bccs-buttonDoNotAgree") - self.buttonAgree = self.modalElement.querySelector("#bccs-buttonAgree") - self.buttonSave = self.modalElement.querySelector("#bccs-buttonSave") - self.buttonAgreeAll = self.modalElement.querySelector("#bccs-buttonAgreeAll") - updateButtons() - updateOptionsFromCookie() - self.modalElement.querySelector("#bccs-options").addEventListener("hide.bs.collapse", function () { - detailedSettingsShown = false - updateButtons() - }) - self.modalElement.querySelector("#bccs-options").addEventListener("show.bs.collapse", function () { - detailedSettingsShown = true - updateButtons() - }) - self.buttonDoNotAgree.addEventListener("click", function () { - doNotAgree() - }) - self.buttonAgree.addEventListener("click", function () { - agreeAll() - }) - self.buttonSave.addEventListener("click", function () { - saveSettings() - }) - self.buttonAgreeAll.addEventListener("click", function () { - agreeAll() - }) - } else { - self.modal.show() - } - }.bind(this)) - } - - function updateOptionsFromCookie() { - const settings = self.getSettings() - if (settings) { - for (let setting in settings) { - const checkboxElement = self.modalElement.querySelector("#bccs-checkbox-" + setting) - checkboxElement.checked = settings[setting] === "true" - } - } - const checkboxNecessary = self.modalElement.querySelector("#bccs-checkbox-necessary") - checkboxNecessary.checked = true - checkboxNecessary.disabled = true - } - - function updateButtons() { - if (detailedSettingsShown) { - self.buttonDoNotAgree.style.display = "none" - self.buttonAgree.style.display = "none" - self.buttonSave.style.removeProperty("display") - self.buttonAgreeAll.style.removeProperty("display") - } else { - self.buttonDoNotAgree.style.removeProperty("display") - self.buttonAgree.style.removeProperty("display") - self.buttonSave.style.display = "none" - self.buttonAgreeAll.style.display = "none" - } - } - - function gatherOptions(setAllTo = undefined) { - const options = {} - for (const category of self.props.categories) { - if (setAllTo === undefined) { - const checkbox = self.modalElement.querySelector("#bccs-checkbox-" + category) - if (!checkbox) { - console.error("checkbox not found for category", category) - } - options[category] = checkbox.checked - } else { - options[category] = setAllTo - } - } - options["necessary"] = true // necessary is necessary - return options - } - - function agreeAll() { - setCookie(self.props.cookieName, gatherOptions(true), self.props.cookieStorageDays) - self.modal.hide() - } - - function doNotAgree() { - setCookie(self.props.cookieName, gatherOptions(false), self.props.cookieStorageDays) - self.modal.hide() - } - - function saveSettings() { - setCookie(self.props.cookieName, gatherOptions(), self.props.cookieStorageDays) - self.modal.hide() - } - - function fetchContent(lang, callback) { - const request = new XMLHttpRequest() - request.overrideMimeType("application/json") - const url = self.props.contentURL + '/' + lang + '.json' - request.open('GET', url, true) - request.onreadystatechange = function () { - if (request.readyState === 4 && request.status === 200) { - if (request.status === 200) { - callback(request.responseText) - } else { - console.error(url, request.status) - } - } - } - request.onloadend = function () { - if (request.status === 404 && lang !== self.props.defaultLang) { - console.warn("language " + lang + " not found trying defaultLang " + self.props.defaultLang) - fetchContent(self.props.defaultLang, callback) - } - } - request.send(null) - } - - function setCookie(name, object, days) { - let expires = "" - if (days) { - const date = new Date() - date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)) - expires = "; expires=" + date.toUTCString() - } - const value = new URLSearchParams(object).toString() - document.cookie = name + "=" + (value || "") + expires + "; Path=/; SameSite=Strict;" - // store value also in localStorage - localStorage.setItem(name, value) - } - - function getCookie(name) { - const nameEQ = name + "=" - const ca = document.cookie.split(';') - for (let i = 0; i < ca.length; i++) { - let c = ca[i] - while (c.charAt(0) === ' ') { - c = c.substring(1, c.length) - } - if (c.indexOf(nameEQ) === 0) { - const urlSearchParams = new URLSearchParams(c.substring(nameEQ.length, c.length)) - const result = {} - for (const [key, value] of urlSearchParams) { - result[key] = value - } - return result - } - } - // if cookie not found, try localStorage - const value = localStorage.getItem(name) - if (value) { - const urlSearchParams = new URLSearchParams(value) - const result = {} - for (const [key, value] of urlSearchParams) { - result[key] = value - } - setCookie(name, result, self.props.cookieStorageDays) - return result - } - return null - } - - function removeCookie(name) { - document.cookie = name + '=; Path=/; SameSite=Strict; Expires=Thu, 01 Jan 1970 00:00:01 GMT;' - } - - function documentReady(callback) { - if (document.readyState !== 'loading') { - callback() - } else { - document.addEventListener('DOMContentLoaded', callback) - } - } - - // API - this.showDialog = function () { - showDialog() - } - this.getSettings = function (optionName) { - const cookieContent = getCookie(self.props.cookieName) - if (cookieContent) { - if (optionName === undefined) { - return cookieContent - } else { - if (cookieContent) { - return cookieContent[optionName] - } else { - return false - } - } - } else { - return undefined - } - } - this.setSetting = function (name, value) { - let settings = self.getSettings() || {} - for (const category of this.props.categories) { - if(settings[category] === undefined) { - settings[category] = true - } - } - settings[name] = value - setCookie(self.props.cookieName, settings, self.props.cookieStorageDays) - } -} diff --git a/EnvelopeGenerator.Web/wwwroot/lib/bootstrap-cookie-consent-settings-main/bootstrap-cookie-consent-settings.min.js b/EnvelopeGenerator.Web/wwwroot/lib/bootstrap-cookie-consent-settings-main/bootstrap-cookie-consent-settings.min.js deleted file mode 100644 index 61b990a9..00000000 --- a/EnvelopeGenerator.Web/wwwroot/lib/bootstrap-cookie-consent-settings-main/bootstrap-cookie-consent-settings.min.js +++ /dev/null @@ -1,41 +0,0 @@ -"use strict";function BootstrapCookieConsentSettings(n){function v(){const n=t.content,r=''+n.privacyPolicy+"<\/a>",u=''+n.legalNotice+"<\/a>";t.content[t.lang]===undefined&&(t.lang=t.props.defaultLang);t.content.body=t.content.body.replace(/--privacy-policy--/,r);let i="";for(const n of t.props.categories){const r=t.content.categories[n];r||console.error("no content for category",n,"found in language file",t.lang);let u="";for(const n of r.description)u+=`
  • ${n}
  • `;i+=`
    -
    - - -
    -
      - ${u} -
    -
    `}t.modalContent=` -
    `;!e(t.props.cookieName)&&t.props.autoShowModal&&s()}function s(){b(function(){t.modalElement=document.getElementById(t.props.modalId);t.modalElement?t.modal.show():(t.modalElement=document.createElement("div"),t.modalElement.id=t.props.modalId,t.modalElement.setAttribute("class","modal fade"),t.modalElement.setAttribute("tabindex","-1"),t.modalElement.setAttribute("role","dialog"),t.modalElement.setAttribute("aria-labelledby",t.props.modalId),t.modalElement.innerHTML=t.modalContent,document.body.append(t.modalElement),t.props.postSelectionCallback&&t.modalElement.addEventListener("hidden.bs.modal",function(){t.props.postSelectionCallback()}),t.modal=new bootstrap.Modal(t.modalElement,{backdrop:"static",keyboard:!1}),t.modal.show(),t.buttonDoNotAgree=t.modalElement.querySelector("#bccs-buttonDoNotAgree"),t.buttonAgree=t.modalElement.querySelector("#bccs-buttonAgree"),t.buttonSave=t.modalElement.querySelector("#bccs-buttonSave"),t.buttonAgreeAll=t.modalElement.querySelector("#bccs-buttonAgreeAll"),u(),y(),t.modalElement.querySelector("#bccs-options").addEventListener("hide.bs.collapse",function(){r=!1;u()}),t.modalElement.querySelector("#bccs-options").addEventListener("show.bs.collapse",function(){r=!0;u()}),t.buttonDoNotAgree.addEventListener("click",function(){p()}),t.buttonAgree.addEventListener("click",function(){h()}),t.buttonSave.addEventListener("click",function(){w()}),t.buttonAgreeAll.addEventListener("click",function(){h()}))}.bind(this))}function y(){const n=t.getSettings();if(n)for(let i in n){const r=t.modalElement.querySelector("#bccs-checkbox-"+i);r.checked=n[i]==="true"}const i=t.modalElement.querySelector("#bccs-checkbox-necessary");i.checked=!0;i.disabled=!0}function u(){r?(t.buttonDoNotAgree.style.display="none",t.buttonAgree.style.display="none",t.buttonSave.style.removeProperty("display"),t.buttonAgreeAll.style.removeProperty("display")):(t.buttonDoNotAgree.style.removeProperty("display"),t.buttonAgree.style.removeProperty("display"),t.buttonSave.style.display="none",t.buttonAgreeAll.style.display="none")}function f(n=undefined){const i={};for(const r of t.props.categories)if(n===undefined){const n=t.modalElement.querySelector("#bccs-checkbox-"+r);n||console.error("checkbox not found for category",r);i[r]=n.checked}else i[r]=n;return i.necessary=!0,i}function h(){i(t.props.cookieName,f(!0),t.props.cookieStorageDays);t.modal.hide()}function p(){i(t.props.cookieName,f(!1),t.props.cookieStorageDays);t.modal.hide()}function w(){i(t.props.cookieName,f(),t.props.cookieStorageDays);t.modal.hide()}function c(n,i){const r=new XMLHttpRequest;r.overrideMimeType("application/json");const u=t.props.contentURL+"/"+n+".json";r.open("GET",u,!0);r.onreadystatechange=function(){r.readyState===4&&r.status===200&&(r.status===200?i(r.responseText):console.error(u,r.status))};r.onloadend=function(){r.status===404&&n!==t.props.defaultLang&&(console.warn("language "+n+" not found trying defaultLang "+t.props.defaultLang),c(t.props.defaultLang,i))};r.send(null)}function i(n,t,i){let r="";if(i){const n=new Date;n.setTime(n.getTime()+i*864e5);r="; expires="+n.toUTCString()}const u=new URLSearchParams(t).toString();document.cookie=n+"="+(u||"")+r+"; Path=/; SameSite=Strict;";localStorage.setItem(n,u)}function e(n){const r=n+"=",u=document.cookie.split(";");for(let n=0;n{t.content=JSON.parse(n),v()});this.showDialog=function(){s()};this.getSettings=function(n){const i=e(t.props.cookieName);return i?n===undefined?i:i?i[n]:!1:undefined};this.setSetting=function(n,r){let u=t.getSettings()||{};for(const n of this.props.categories)u[n]===undefined&&(u[n]=!0);u[n]=r;i(t.props.cookieName,u,t.props.cookieStorageDays)}} \ No newline at end of file diff --git a/EnvelopeGenerator.Web/wwwroot/lib/typed.js@2.1.0/LICENSE.txt b/EnvelopeGenerator.Web/wwwroot/lib/typed.js@2.1.0/LICENSE.txt new file mode 100644 index 00000000..45daf09a --- /dev/null +++ b/EnvelopeGenerator.Web/wwwroot/lib/typed.js@2.1.0/LICENSE.txt @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2023 Matt Boldt + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/EnvelopeGenerator.Web/wwwroot/lib/typed.js@2.1.0/README.md b/EnvelopeGenerator.Web/wwwroot/lib/typed.js@2.1.0/README.md new file mode 100644 index 00000000..63420f3a --- /dev/null +++ b/EnvelopeGenerator.Web/wwwroot/lib/typed.js@2.1.0/README.md @@ -0,0 +1,378 @@ +[![Code Climate](https://codeclimate.com/github/mattboldt/typed.js/badges/gpa.svg)](https://codeclimate.com/github/mattboldt/typed.js) +[![GitHub release](https://img.shields.io/github/release/mattboldt/typed.js.svg)]() +[![npm](https://img.shields.io/npm/dt/typed.js.svg)](https://img.shields.io/npm/dt/typed.js.svg) +[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://raw.githubusercontent.com/mattboldt/typed.js/master/LICENSE.txt) + + + +### [Live Demo](http://www.mattboldt.com/demos/typed-js/) | [View All Demos](http://mattboldt.github.io/typed.js/) | [View Full Docs](http://mattboldt.github.io/typed.js/docs) | [mattboldt.com](http://www.mattboldt.com) + +Typed.js is a library that types. Enter in any string, and watch it type at the speed you've set, backspace what it's typed, and begin a new sentence for however many strings you've set. + +--- + +## Installation + +### CDN + +```html + +``` + +For use directly in the browser via ` + + + + +``` + +### As an ESModule + +For use with a build tool like [Vite](https://vitejs.dev/), and/or in a React application, install with NPM or Yarn. + +#### NPM + +``` +npm install typed.js +``` + +#### Yarn + +``` +yarn add typed.js +``` + +#### General ESM Usage + +```js +import Typed from 'typed.js'; + +const typed = new Typed('#element', { + strings: ['First sentence.', '& a second sentence.'], + typeSpeed: 50, +}); +``` + +### ReactJS Usage + +```js +import React from 'react'; +import Typed from 'typed.js'; + +function MyComponent() { + // Create reference to store the DOM element containing the animation + const el = React.useRef(null); + + React.useEffect(() => { + const typed = new Typed(el.current, { + strings: ['First sentence.', '& a second sentence.'], + typeSpeed: 50, + }); + + return () => { + // Destroy Typed instance during cleanup to stop animation + typed.destroy(); + }; + }, []); + + return ( +
    + +
    + ); +} +``` + +More complex hook-based function component: https://jsfiddle.net/mattboldt/60h9an7y/ + +Class component: https://jsfiddle.net/mattboldt/ovat9jmp/ + +### Use with Vue.js + +Check out the Vue.js component: https://github.com/Orlandster/vue-typed-js + +### Use it as WebComponent + +Check out the WebComponent: https://github.com/Orlandster/wc-typed-js + +## Wonderful sites that have used (or are using) Typed.js + +https://github.com/features/package-registry + +https://slack.com/ + +https://envato.com/ + +https://gorails.com/ + +https://productmap.co/ + +https://www.typed.com/ + +https://apeiron.io + +https://git.market/ + +https://commando.io/ + +http://testdouble.com/agency.html + +https://www.capitalfactory.com/ + +http://www.maxcdn.com/ + +https://www.powerauth.com/ + +--- + +### Strings from static HTML (SEO Friendly) + +Rather than using the `strings` array to insert strings, you can place an HTML `div` on the page and read from it. +This allows bots and search engines, as well as users with JavaScript disabled, to see your text on the page. + +```javascript + +``` + +```html +
    +

    Typed.js is a JavaScript library.

    +

    It types out sentences.

    +
    + +``` + +### Type Pausing + +You can pause in the middle of a string for a given amount of time by including an escape character. + +```javascript +var typed = new Typed('#element', { + // Waits 1000ms after typing "First" + strings: ['First ^1000 sentence.', 'Second sentence.'], +}); +``` + +### Smart Backspacing + +In the following example, this would only backspace the words after "This is a" + +```javascript +var typed = new Typed('#element', { + strings: ['This is a JavaScript library', 'This is an ES6 module'], + smartBackspace: true, // Default value +}); +``` + +### Bulk Typing + +The following example would emulate how a terminal acts when typing a command and seeing its result. + +```javascript +var typed = new Typed('#element', { + strings: ['git push --force ^1000\n `pushed to origin with option force`'], +}); +``` + +### CSS + +CSS animations are built upon initialization in JavaScript. But, you can customize them at your will! These classes are: + +```css +/* Cursor */ +.typed-cursor { +} + +/* If fade out option is set */ +.typed-fade-out { +} +``` + +## Customization + +```javascript +var typed = new Typed('#element', { + /** + * @property {array} strings strings to be typed + * @property {string} stringsElement ID of element containing string children + */ + strings: [ + 'These are the default values...', + 'You know what you should do?', + 'Use your own!', + 'Have a great day!', + ], + stringsElement: null, + + /** + * @property {number} typeSpeed type speed in milliseconds + */ + typeSpeed: 0, + + /** + * @property {number} startDelay time before typing starts in milliseconds + */ + startDelay: 0, + + /** + * @property {number} backSpeed backspacing speed in milliseconds + */ + backSpeed: 0, + + /** + * @property {boolean} smartBackspace only backspace what doesn't match the previous string + */ + smartBackspace: true, + + /** + * @property {boolean} shuffle shuffle the strings + */ + shuffle: false, + + /** + * @property {number} backDelay time before backspacing in milliseconds + */ + backDelay: 700, + + /** + * @property {boolean} fadeOut Fade out instead of backspace + * @property {string} fadeOutClass css class for fade animation + * @property {boolean} fadeOutDelay Fade out delay in milliseconds + */ + fadeOut: false, + fadeOutClass: 'typed-fade-out', + fadeOutDelay: 500, + + /** + * @property {boolean} loop loop strings + * @property {number} loopCount amount of loops + */ + loop: false, + loopCount: Infinity, + + /** + * @property {boolean} showCursor show cursor + * @property {string} cursorChar character for cursor + * @property {boolean} autoInsertCss insert CSS for cursor and fadeOut into HTML + */ + showCursor: true, + cursorChar: '|', + autoInsertCss: true, + + /** + * @property {string} attr attribute for typing + * Ex: input placeholder, value, or just HTML text + */ + attr: null, + + /** + * @property {boolean} bindInputFocusEvents bind to focus and blur if el is text input + */ + bindInputFocusEvents: false, + + /** + * @property {string} contentType 'html' or 'null' for plaintext + */ + contentType: 'html', + + /** + * Before it begins typing + * @param {Typed} self + */ + onBegin: (self) => {}, + + /** + * All typing is complete + * @param {Typed} self + */ + onComplete: (self) => {}, + + /** + * Before each string is typed + * @param {number} arrayPos + * @param {Typed} self + */ + preStringTyped: (arrayPos, self) => {}, + + /** + * After each string is typed + * @param {number} arrayPos + * @param {Typed} self + */ + onStringTyped: (arrayPos, self) => {}, + + /** + * During looping, after last string is typed + * @param {Typed} self + */ + onLastStringBackspaced: (self) => {}, + + /** + * Typing has been stopped + * @param {number} arrayPos + * @param {Typed} self + */ + onTypingPaused: (arrayPos, self) => {}, + + /** + * Typing has been started after being stopped + * @param {number} arrayPos + * @param {Typed} self + */ + onTypingResumed: (arrayPos, self) => {}, + + /** + * After reset + * @param {Typed} self + */ + onReset: (self) => {}, + + /** + * After stop + * @param {number} arrayPos + * @param {Typed} self + */ + onStop: (arrayPos, self) => {}, + + /** + * After start + * @param {number} arrayPos + * @param {Typed} self + */ + onStart: (arrayPos, self) => {}, + + /** + * After destroy + * @param {Typed} self + */ + onDestroy: (self) => {}, +}); +``` + +## Contributing + +### [View Contribution Guidelines](./.github/CONTRIBUTING.md) + +## end + +Thanks for checking this out. If you have any questions, I'll be on [Twitter](https://twitter.com/atmattb). + +If you're using this, let me know! I'd love to see it. + +It would also be great if you mentioned me or my website somewhere. [www.mattboldt.com](http://www.mattboldt.com) diff --git a/EnvelopeGenerator.Web/wwwroot/lib/typed.js@2.1.0/dist/typed.cjs b/EnvelopeGenerator.Web/wwwroot/lib/typed.js@2.1.0/dist/typed.cjs new file mode 100644 index 00000000..c30dbd77 --- /dev/null +++ b/EnvelopeGenerator.Web/wwwroot/lib/typed.js@2.1.0/dist/typed.cjs @@ -0,0 +1,2 @@ +function t(){return t=Object.assign?Object.assign.bind():function(t){for(var s=1;s0&&(e.strPos=e.currentElContent.length-1,e.strings.unshift(e.currentElContent)),e.sequence=[],e.strings)e.sequence[u]=u;e.arrayPos=0,e.stopNum=0,e.loop=e.options.loop,e.loopCount=e.options.loopCount,e.curLoop=0,e.shuffle=e.options.shuffle,e.pause={status:!1,typewrite:!0,curString:"",curStrPos:0},e.typingComplete=!1,e.autoInsertCss=e.options.autoInsertCss,e.autoInsertCss&&(this.appendCursorAnimationCss(e),this.appendFadeOutAnimationCss(e))},n.getCurrentElContent=function(t){return t.attr?t.el.getAttribute(t.attr):t.isInput?t.el.value:"html"===t.contentType?t.el.innerHTML:t.el.textContent},n.appendCursorAnimationCss=function(t){var s="data-typed-js-cursor-css";if(t.showCursor&&!document.querySelector("["+s+"]")){var e=document.createElement("style");e.setAttribute(s,"true"),e.innerHTML="\n .typed-cursor{\n opacity: 1;\n }\n .typed-cursor.typed-cursor--blink{\n animation: typedjsBlink 0.7s infinite;\n -webkit-animation: typedjsBlink 0.7s infinite;\n animation: typedjsBlink 0.7s infinite;\n }\n @keyframes typedjsBlink{\n 50% { opacity: 0.0; }\n }\n @-webkit-keyframes typedjsBlink{\n 0% { opacity: 1; }\n 50% { opacity: 0.0; }\n 100% { opacity: 1; }\n }\n ",document.body.appendChild(e)}},n.appendFadeOutAnimationCss=function(t){var s="data-typed-fadeout-js-css";if(t.fadeOut&&!document.querySelector("["+s+"]")){var e=document.createElement("style");e.setAttribute(s,"true"),e.innerHTML="\n .typed-fade-out{\n opacity: 0;\n transition: opacity .25s;\n }\n .typed-cursor.typed-cursor--blink.typed-fade-out{\n -webkit-animation: 0;\n animation: 0;\n }\n ",document.body.appendChild(e)}},e}()),n=new(/*#__PURE__*/function(){function t(){}var s=t.prototype;return s.typeHtmlChars=function(t,s,e){if("html"!==e.contentType)return s;var n=t.substring(s).charAt(0);if("<"===n||"&"===n){var i;for(i="<"===n?">":";";t.substring(s+1).charAt(0)!==i&&!(1+ ++s>t.length););s++}return s},s.backSpaceHtmlChars=function(t,s,e){if("html"!==e.contentType)return s;var n=t.substring(s).charAt(0);if(">"===n||";"===n){var i;for(i=">"===n?"<":"&";t.substring(s-1).charAt(0)!==i&&!(--s<0););s--}return s},t}());module.exports=/*#__PURE__*/function(){function t(t,s){e.load(this,s,t),this.begin()}var s=t.prototype;return s.toggle=function(){this.pause.status?this.start():this.stop()},s.stop=function(){this.typingComplete||this.pause.status||(this.toggleBlinking(!0),this.pause.status=!0,this.options.onStop(this.arrayPos,this))},s.start=function(){this.typingComplete||this.pause.status&&(this.pause.status=!1,this.pause.typewrite?this.typewrite(this.pause.curString,this.pause.curStrPos):this.backspace(this.pause.curString,this.pause.curStrPos),this.options.onStart(this.arrayPos,this))},s.destroy=function(){this.reset(!1),this.options.onDestroy(this)},s.reset=function(t){void 0===t&&(t=!0),clearInterval(this.timeout),this.replaceText(""),this.cursor&&this.cursor.parentNode&&(this.cursor.parentNode.removeChild(this.cursor),this.cursor=null),this.strPos=0,this.arrayPos=0,this.curLoop=0,t&&(this.insertCursor(),this.options.onReset(this),this.begin())},s.begin=function(){var t=this;this.options.onBegin(this),this.typingComplete=!1,this.shuffleStringsIfNeeded(this),this.insertCursor(),this.bindInputFocusEvents&&this.bindFocusEvents(),this.timeout=setTimeout(function(){0===t.strPos?t.typewrite(t.strings[t.sequence[t.arrayPos]],t.strPos):t.backspace(t.strings[t.sequence[t.arrayPos]],t.strPos)},this.startDelay)},s.typewrite=function(t,s){var e=this;this.fadeOut&&this.el.classList.contains(this.fadeOutClass)&&(this.el.classList.remove(this.fadeOutClass),this.cursor&&this.cursor.classList.remove(this.fadeOutClass));var i=this.humanizer(this.typeSpeed),r=1;!0!==this.pause.status?this.timeout=setTimeout(function(){s=n.typeHtmlChars(t,s,e);var i=0,o=t.substring(s);if("^"===o.charAt(0)&&/^\^\d+/.test(o)){var a=1;a+=(o=/\d+/.exec(o)[0]).length,i=parseInt(o),e.temporaryPause=!0,e.options.onTypingPaused(e.arrayPos,e),t=t.substring(0,s)+t.substring(s+a),e.toggleBlinking(!0)}if("`"===o.charAt(0)){for(;"`"!==t.substring(s+r).charAt(0)&&(r++,!(s+r>t.length)););var u=t.substring(0,s),p=t.substring(u.length+1,s+r),c=t.substring(s+r+1);t=u+p+c,r--}e.timeout=setTimeout(function(){e.toggleBlinking(!1),s>=t.length?e.doneTyping(t,s):e.keepTyping(t,s,r),e.temporaryPause&&(e.temporaryPause=!1,e.options.onTypingResumed(e.arrayPos,e))},i)},i):this.setPauseStatus(t,s,!0)},s.keepTyping=function(t,s,e){0===s&&(this.toggleBlinking(!1),this.options.preStringTyped(this.arrayPos,this));var n=t.substring(0,s+=e);this.replaceText(n),this.typewrite(t,s)},s.doneTyping=function(t,s){var e=this;this.options.onStringTyped(this.arrayPos,this),this.toggleBlinking(!0),this.arrayPos===this.strings.length-1&&(this.complete(),!1===this.loop||this.curLoop===this.loopCount)||(this.timeout=setTimeout(function(){e.backspace(t,s)},this.backDelay))},s.backspace=function(t,s){var e=this;if(!0!==this.pause.status){if(this.fadeOut)return this.initFadeOut();this.toggleBlinking(!1);var i=this.humanizer(this.backSpeed);this.timeout=setTimeout(function(){s=n.backSpaceHtmlChars(t,s,e);var i=t.substring(0,s);if(e.replaceText(i),e.smartBackspace){var r=e.strings[e.arrayPos+1];e.stopNum=r&&i===r.substring(0,s)?s:0}s>e.stopNum?(s--,e.backspace(t,s)):s<=e.stopNum&&(e.arrayPos++,e.arrayPos===e.strings.length?(e.arrayPos=0,e.options.onLastStringBackspaced(),e.shuffleStringsIfNeeded(),e.begin()):e.typewrite(e.strings[e.sequence[e.arrayPos]],s))},i)}else this.setPauseStatus(t,s,!1)},s.complete=function(){this.options.onComplete(this),this.loop?this.curLoop++:this.typingComplete=!0},s.setPauseStatus=function(t,s,e){this.pause.typewrite=e,this.pause.curString=t,this.pause.curStrPos=s},s.toggleBlinking=function(t){this.cursor&&(this.pause.status||this.cursorBlinking!==t&&(this.cursorBlinking=t,t?this.cursor.classList.add("typed-cursor--blink"):this.cursor.classList.remove("typed-cursor--blink")))},s.humanizer=function(t){return Math.round(Math.random()*t/2)+t},s.shuffleStringsIfNeeded=function(){this.shuffle&&(this.sequence=this.sequence.sort(function(){return Math.random()-.5}))},s.initFadeOut=function(){var t=this;return this.el.className+=" "+this.fadeOutClass,this.cursor&&(this.cursor.className+=" "+this.fadeOutClass),setTimeout(function(){t.arrayPos++,t.replaceText(""),t.strings.length>t.arrayPos?t.typewrite(t.strings[t.sequence[t.arrayPos]],0):(t.typewrite(t.strings[0],0),t.arrayPos=0)},this.fadeOutDelay)},s.replaceText=function(t){this.attr?this.el.setAttribute(this.attr,t):this.isInput?this.el.value=t:"html"===this.contentType?this.el.innerHTML=t:this.el.textContent=t},s.bindFocusEvents=function(){var t=this;this.isInput&&(this.el.addEventListener("focus",function(s){t.stop()}),this.el.addEventListener("blur",function(s){t.el.value&&0!==t.el.value.length||t.start()}))},s.insertCursor=function(){this.showCursor&&(this.cursor||(this.cursor=document.createElement("span"),this.cursor.className="typed-cursor",this.cursor.setAttribute("aria-hidden",!0),this.cursor.innerHTML=this.cursorChar,this.el.parentNode&&this.el.parentNode.insertBefore(this.cursor,this.el.nextSibling)))},t}(); +//# sourceMappingURL=typed.cjs.map diff --git a/EnvelopeGenerator.Web/wwwroot/lib/typed.js@2.1.0/dist/typed.cjs.map b/EnvelopeGenerator.Web/wwwroot/lib/typed.js@2.1.0/dist/typed.cjs.map new file mode 100644 index 00000000..1bd8c864 --- /dev/null +++ b/EnvelopeGenerator.Web/wwwroot/lib/typed.js@2.1.0/dist/typed.cjs.map @@ -0,0 +1 @@ +{"version":3,"file":"typed.cjs","sources":["../src/defaults.js","../src/initializer.js","../src/html-parser.js","../src/typed.js"],"sourcesContent":["/**\n * Defaults & options\n * @returns {object} Typed defaults & options\n * @public\n */\n\nconst defaults = {\n /**\n * @property {array} strings strings to be typed\n * @property {string} stringsElement ID of element containing string children\n */\n strings: [\n 'These are the default values...',\n 'You know what you should do?',\n 'Use your own!',\n 'Have a great day!',\n ],\n stringsElement: null,\n\n /**\n * @property {number} typeSpeed type speed in milliseconds\n */\n typeSpeed: 0,\n\n /**\n * @property {number} startDelay time before typing starts in milliseconds\n */\n startDelay: 0,\n\n /**\n * @property {number} backSpeed backspacing speed in milliseconds\n */\n backSpeed: 0,\n\n /**\n * @property {boolean} smartBackspace only backspace what doesn't match the previous string\n */\n smartBackspace: true,\n\n /**\n * @property {boolean} shuffle shuffle the strings\n */\n shuffle: false,\n\n /**\n * @property {number} backDelay time before backspacing in milliseconds\n */\n backDelay: 700,\n\n /**\n * @property {boolean} fadeOut Fade out instead of backspace\n * @property {string} fadeOutClass css class for fade animation\n * @property {boolean} fadeOutDelay Fade out delay in milliseconds\n */\n fadeOut: false,\n fadeOutClass: 'typed-fade-out',\n fadeOutDelay: 500,\n\n /**\n * @property {boolean} loop loop strings\n * @property {number} loopCount amount of loops\n */\n loop: false,\n loopCount: Infinity,\n\n /**\n * @property {boolean} showCursor show cursor\n * @property {string} cursorChar character for cursor\n * @property {boolean} autoInsertCss insert CSS for cursor and fadeOut into HTML \n */\n showCursor: true,\n cursorChar: '|',\n autoInsertCss: true,\n\n /**\n * @property {string} attr attribute for typing\n * Ex: input placeholder, value, or just HTML text\n */\n attr: null,\n\n /**\n * @property {boolean} bindInputFocusEvents bind to focus and blur if el is text input\n */\n bindInputFocusEvents: false,\n\n /**\n * @property {string} contentType 'html' or 'null' for plaintext\n */\n contentType: 'html',\n\n /**\n * Before it begins typing\n * @param {Typed} self\n */\n onBegin: (self) => {},\n\n /**\n * All typing is complete\n * @param {Typed} self\n */\n onComplete: (self) => {},\n\n /**\n * Before each string is typed\n * @param {number} arrayPos\n * @param {Typed} self\n */\n preStringTyped: (arrayPos, self) => {},\n\n /**\n * After each string is typed\n * @param {number} arrayPos\n * @param {Typed} self\n */\n onStringTyped: (arrayPos, self) => {},\n\n /**\n * During looping, after last string is typed\n * @param {Typed} self\n */\n onLastStringBackspaced: (self) => {},\n\n /**\n * Typing has been stopped\n * @param {number} arrayPos\n * @param {Typed} self\n */\n onTypingPaused: (arrayPos, self) => {},\n\n /**\n * Typing has been started after being stopped\n * @param {number} arrayPos\n * @param {Typed} self\n */\n onTypingResumed: (arrayPos, self) => {},\n\n /**\n * After reset\n * @param {Typed} self\n */\n onReset: (self) => {},\n\n /**\n * After stop\n * @param {number} arrayPos\n * @param {Typed} self\n */\n onStop: (arrayPos, self) => {},\n\n /**\n * After start\n * @param {number} arrayPos\n * @param {Typed} self\n */\n onStart: (arrayPos, self) => {},\n\n /**\n * After destroy\n * @param {Typed} self\n */\n onDestroy: (self) => {},\n};\n\nexport default defaults;\n","import defaults from './defaults.js';\n/**\n * Initialize the Typed object\n */\n\nexport default class Initializer {\n /**\n * Load up defaults & options on the Typed instance\n * @param {Typed} self instance of Typed\n * @param {object} options options object\n * @param {string} elementId HTML element ID _OR_ instance of HTML element\n * @private\n */\n\n load(self, options, elementId) {\n // chosen element to manipulate text\n if (typeof elementId === 'string') {\n self.el = document.querySelector(elementId);\n } else {\n self.el = elementId;\n }\n\n self.options = { ...defaults, ...options };\n\n // attribute to type into\n self.isInput = self.el.tagName.toLowerCase() === 'input';\n self.attr = self.options.attr;\n self.bindInputFocusEvents = self.options.bindInputFocusEvents;\n\n // show cursor\n self.showCursor = self.isInput ? false : self.options.showCursor;\n\n // custom cursor\n self.cursorChar = self.options.cursorChar;\n\n // Is the cursor blinking\n self.cursorBlinking = true;\n\n // text content of element\n self.elContent = self.attr\n ? self.el.getAttribute(self.attr)\n : self.el.textContent;\n\n // html or plain text\n self.contentType = self.options.contentType;\n\n // typing speed\n self.typeSpeed = self.options.typeSpeed;\n\n // add a delay before typing starts\n self.startDelay = self.options.startDelay;\n\n // backspacing speed\n self.backSpeed = self.options.backSpeed;\n\n // only backspace what doesn't match the previous string\n self.smartBackspace = self.options.smartBackspace;\n\n // amount of time to wait before backspacing\n self.backDelay = self.options.backDelay;\n\n // Fade out instead of backspace\n self.fadeOut = self.options.fadeOut;\n self.fadeOutClass = self.options.fadeOutClass;\n self.fadeOutDelay = self.options.fadeOutDelay;\n\n // variable to check whether typing is currently paused\n self.isPaused = false;\n\n // input strings of text\n self.strings = self.options.strings.map((s) => s.trim());\n\n // div containing strings\n if (typeof self.options.stringsElement === 'string') {\n self.stringsElement = document.querySelector(self.options.stringsElement);\n } else {\n self.stringsElement = self.options.stringsElement;\n }\n\n if (self.stringsElement) {\n self.strings = [];\n self.stringsElement.style.cssText =\n 'clip: rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px;';\n\n const strings = Array.prototype.slice.apply(self.stringsElement.children);\n const stringsLength = strings.length;\n\n if (stringsLength) {\n for (let i = 0; i < stringsLength; i += 1) {\n const stringEl = strings[i];\n self.strings.push(stringEl.innerHTML.trim());\n }\n }\n }\n\n // character number position of current string\n self.strPos = 0;\n\n // If there is some text in the element\n self.currentElContent = this.getCurrentElContent(self);\n\n if (self.currentElContent && self.currentElContent.length > 0) {\n self.strPos = self.currentElContent.length - 1;\n self.strings.unshift(self.currentElContent);\n }\n\n // the order of strings\n self.sequence = [];\n\n // Set the order in which the strings are typed\n for (let i in self.strings) {\n self.sequence[i] = i;\n }\n\n // current array position\n self.arrayPos = 0;\n\n // index of string to stop backspacing on\n self.stopNum = 0;\n\n // Looping logic\n self.loop = self.options.loop;\n self.loopCount = self.options.loopCount;\n self.curLoop = 0;\n\n // shuffle the strings\n self.shuffle = self.options.shuffle;\n\n self.pause = {\n status: false,\n typewrite: true,\n curString: '',\n curStrPos: 0,\n };\n\n // When the typing is complete (when not looped)\n self.typingComplete = false;\n\n self.autoInsertCss = self.options.autoInsertCss;\n\n if (self.autoInsertCss) {\n this.appendCursorAnimationCss(self);\n this.appendFadeOutAnimationCss(self);\n }\n }\n\n getCurrentElContent(self) {\n let elContent = '';\n if (self.attr) {\n elContent = self.el.getAttribute(self.attr);\n } else if (self.isInput) {\n elContent = self.el.value;\n } else if (self.contentType === 'html') {\n elContent = self.el.innerHTML;\n } else {\n elContent = self.el.textContent;\n }\n return elContent;\n }\n\n appendCursorAnimationCss(self) {\n const cssDataName = 'data-typed-js-cursor-css';\n\n if (!self.showCursor || document.querySelector(`[${cssDataName}]`)) {\n return;\n }\n\n let css = document.createElement('style');\n css.setAttribute(cssDataName, 'true');\n\n css.innerHTML = `\n .typed-cursor{\n opacity: 1;\n }\n .typed-cursor.typed-cursor--blink{\n animation: typedjsBlink 0.7s infinite;\n -webkit-animation: typedjsBlink 0.7s infinite;\n animation: typedjsBlink 0.7s infinite;\n }\n @keyframes typedjsBlink{\n 50% { opacity: 0.0; }\n }\n @-webkit-keyframes typedjsBlink{\n 0% { opacity: 1; }\n 50% { opacity: 0.0; }\n 100% { opacity: 1; }\n }\n `;\n\n document.body.appendChild(css);\n }\n\n appendFadeOutAnimationCss(self) {\n const cssDataName = 'data-typed-fadeout-js-css';\n\n if (!self.fadeOut || document.querySelector(`[${cssDataName}]`)) {\n return;\n }\n\n let css = document.createElement('style');\n css.setAttribute(cssDataName, 'true');\n\n css.innerHTML = `\n .typed-fade-out{\n opacity: 0;\n transition: opacity .25s;\n }\n .typed-cursor.typed-cursor--blink.typed-fade-out{\n -webkit-animation: 0;\n animation: 0;\n }\n `;\n\n document.body.appendChild(css);\n }\n}\n\nexport let initializer = new Initializer();\n","/**\n * TODO: These methods can probably be combined somehow\n * Parse HTML tags & HTML Characters\n */\n\nexport default class HTMLParser {\n /**\n * Type HTML tags & HTML Characters\n * @param {string} curString Current string\n * @param {number} curStrPos Position in current string\n * @param {Typed} self instance of Typed\n * @returns {number} a new string position\n * @private\n */\n\n typeHtmlChars(curString, curStrPos, self) {\n if (self.contentType !== 'html') return curStrPos;\n const curChar = curString.substring(curStrPos).charAt(0);\n if (curChar === '<' || curChar === '&') {\n let endTag = '';\n if (curChar === '<') {\n endTag = '>';\n } else {\n endTag = ';';\n }\n while (curString.substring(curStrPos + 1).charAt(0) !== endTag) {\n curStrPos++;\n if (curStrPos + 1 > curString.length) {\n break;\n }\n }\n curStrPos++;\n }\n return curStrPos;\n }\n\n /**\n * Backspace HTML tags and HTML Characters\n * @param {string} curString Current string\n * @param {number} curStrPos Position in current string\n * @param {Typed} self instance of Typed\n * @returns {number} a new string position\n * @private\n */\n backSpaceHtmlChars(curString, curStrPos, self) {\n if (self.contentType !== 'html') return curStrPos;\n const curChar = curString.substring(curStrPos).charAt(0);\n if (curChar === '>' || curChar === ';') {\n let endTag = '';\n if (curChar === '>') {\n endTag = '<';\n } else {\n endTag = '&';\n }\n while (curString.substring(curStrPos - 1).charAt(0) !== endTag) {\n curStrPos--;\n if (curStrPos < 0) {\n break;\n }\n }\n curStrPos--;\n }\n return curStrPos;\n }\n}\n\nexport let htmlParser = new HTMLParser();\n","import { initializer } from './initializer.js';\nimport { htmlParser } from './html-parser.js';\n\n/**\n * Welcome to Typed.js!\n * @param {string} elementId HTML element ID _OR_ HTML element\n * @param {object} options options object\n * @returns {object} a new Typed object\n */\nexport default class Typed {\n constructor(elementId, options) {\n // Initialize it up\n initializer.load(this, options, elementId);\n // All systems go!\n this.begin();\n }\n\n /**\n * Toggle start() and stop() of the Typed instance\n * @public\n */\n toggle() {\n this.pause.status ? this.start() : this.stop();\n }\n\n /**\n * Stop typing / backspacing and enable cursor blinking\n * @public\n */\n stop() {\n if (this.typingComplete) return;\n if (this.pause.status) return;\n this.toggleBlinking(true);\n this.pause.status = true;\n this.options.onStop(this.arrayPos, this);\n }\n\n /**\n * Start typing / backspacing after being stopped\n * @public\n */\n start() {\n if (this.typingComplete) return;\n if (!this.pause.status) return;\n this.pause.status = false;\n if (this.pause.typewrite) {\n this.typewrite(this.pause.curString, this.pause.curStrPos);\n } else {\n this.backspace(this.pause.curString, this.pause.curStrPos);\n }\n this.options.onStart(this.arrayPos, this);\n }\n\n /**\n * Destroy this instance of Typed\n * @public\n */\n destroy() {\n this.reset(false);\n this.options.onDestroy(this);\n }\n\n /**\n * Reset Typed and optionally restarts\n * @param {boolean} restart\n * @public\n */\n reset(restart = true) {\n clearInterval(this.timeout);\n this.replaceText('');\n if (this.cursor && this.cursor.parentNode) {\n this.cursor.parentNode.removeChild(this.cursor);\n this.cursor = null;\n }\n this.strPos = 0;\n this.arrayPos = 0;\n this.curLoop = 0;\n if (restart) {\n this.insertCursor();\n this.options.onReset(this);\n this.begin();\n }\n }\n\n /**\n * Begins the typing animation\n * @private\n */\n begin() {\n this.options.onBegin(this);\n this.typingComplete = false;\n this.shuffleStringsIfNeeded(this);\n this.insertCursor();\n if (this.bindInputFocusEvents) this.bindFocusEvents();\n this.timeout = setTimeout(() => {\n // If the strPos is 0, we're starting from the beginning of a string\n // else, we're starting with a previous string that needs to be backspaced first\n if (this.strPos === 0) {\n this.typewrite(this.strings[this.sequence[this.arrayPos]], this.strPos);\n } else {\n this.backspace(this.strings[this.sequence[this.arrayPos]], this.strPos);\n }\n }, this.startDelay);\n }\n\n /**\n * Called for each character typed\n * @param {string} curString the current string in the strings array\n * @param {number} curStrPos the current position in the curString\n * @private\n */\n typewrite(curString, curStrPos) {\n if (this.fadeOut && this.el.classList.contains(this.fadeOutClass)) {\n this.el.classList.remove(this.fadeOutClass);\n if (this.cursor) this.cursor.classList.remove(this.fadeOutClass);\n }\n\n const humanize = this.humanizer(this.typeSpeed);\n let numChars = 1;\n\n if (this.pause.status === true) {\n this.setPauseStatus(curString, curStrPos, true);\n return;\n }\n\n // contain typing function in a timeout humanize'd delay\n this.timeout = setTimeout(() => {\n // skip over any HTML chars\n curStrPos = htmlParser.typeHtmlChars(curString, curStrPos, this);\n\n let pauseTime = 0;\n let substr = curString.substring(curStrPos);\n // check for an escape character before a pause value\n // format: \\^\\d+ .. eg: ^1000 .. should be able to print the ^ too using ^^\n // single ^ are removed from string\n if (substr.charAt(0) === '^') {\n if (/^\\^\\d+/.test(substr)) {\n let skip = 1; // skip at least 1\n substr = /\\d+/.exec(substr)[0];\n skip += substr.length;\n pauseTime = parseInt(substr);\n this.temporaryPause = true;\n this.options.onTypingPaused(this.arrayPos, this);\n // strip out the escape character and pause value so they're not printed\n curString =\n curString.substring(0, curStrPos) +\n curString.substring(curStrPos + skip);\n this.toggleBlinking(true);\n }\n }\n\n // check for skip characters formatted as\n // \"this is a `string to print NOW` ...\"\n if (substr.charAt(0) === '`') {\n while (curString.substring(curStrPos + numChars).charAt(0) !== '`') {\n numChars++;\n if (curStrPos + numChars > curString.length) break;\n }\n // strip out the escape characters and append all the string in between\n const stringBeforeSkip = curString.substring(0, curStrPos);\n const stringSkipped = curString.substring(\n stringBeforeSkip.length + 1,\n curStrPos + numChars\n );\n const stringAfterSkip = curString.substring(curStrPos + numChars + 1);\n curString = stringBeforeSkip + stringSkipped + stringAfterSkip;\n numChars--;\n }\n\n // timeout for any pause after a character\n this.timeout = setTimeout(() => {\n // Accounts for blinking while paused\n this.toggleBlinking(false);\n\n // We're done with this sentence!\n if (curStrPos >= curString.length) {\n this.doneTyping(curString, curStrPos);\n } else {\n this.keepTyping(curString, curStrPos, numChars);\n }\n // end of character pause\n if (this.temporaryPause) {\n this.temporaryPause = false;\n this.options.onTypingResumed(this.arrayPos, this);\n }\n }, pauseTime);\n\n // humanized value for typing\n }, humanize);\n }\n\n /**\n * Continue to the next string & begin typing\n * @param {string} curString the current string in the strings array\n * @param {number} curStrPos the current position in the curString\n * @private\n */\n keepTyping(curString, curStrPos, numChars) {\n // call before functions if applicable\n if (curStrPos === 0) {\n this.toggleBlinking(false);\n this.options.preStringTyped(this.arrayPos, this);\n }\n // start typing each new char into existing string\n // curString: arg, this.el.html: original text inside element\n curStrPos += numChars;\n const nextString = curString.substring(0, curStrPos);\n this.replaceText(nextString);\n // loop the function\n this.typewrite(curString, curStrPos);\n }\n\n /**\n * We're done typing the current string\n * @param {string} curString the current string in the strings array\n * @param {number} curStrPos the current position in the curString\n * @private\n */\n doneTyping(curString, curStrPos) {\n // fires callback function\n this.options.onStringTyped(this.arrayPos, this);\n this.toggleBlinking(true);\n // is this the final string\n if (this.arrayPos === this.strings.length - 1) {\n // callback that occurs on the last typed string\n this.complete();\n // quit if we wont loop back\n if (this.loop === false || this.curLoop === this.loopCount) {\n return;\n }\n }\n this.timeout = setTimeout(() => {\n this.backspace(curString, curStrPos);\n }, this.backDelay);\n }\n\n /**\n * Backspaces 1 character at a time\n * @param {string} curString the current string in the strings array\n * @param {number} curStrPos the current position in the curString\n * @private\n */\n backspace(curString, curStrPos) {\n if (this.pause.status === true) {\n this.setPauseStatus(curString, curStrPos, false);\n return;\n }\n if (this.fadeOut) return this.initFadeOut();\n\n this.toggleBlinking(false);\n const humanize = this.humanizer(this.backSpeed);\n\n this.timeout = setTimeout(() => {\n curStrPos = htmlParser.backSpaceHtmlChars(curString, curStrPos, this);\n // replace text with base text + typed characters\n const curStringAtPosition = curString.substring(0, curStrPos);\n this.replaceText(curStringAtPosition);\n\n // if smartBack is enabled\n if (this.smartBackspace) {\n // the remaining part of the current string is equal of the same part of the new string\n let nextString = this.strings[this.arrayPos + 1];\n if (\n nextString &&\n curStringAtPosition === nextString.substring(0, curStrPos)\n ) {\n this.stopNum = curStrPos;\n } else {\n this.stopNum = 0;\n }\n }\n\n // if the number (id of character in current string) is\n // less than the stop number, keep going\n if (curStrPos > this.stopNum) {\n // subtract characters one by one\n curStrPos--;\n // loop the function\n this.backspace(curString, curStrPos);\n } else if (curStrPos <= this.stopNum) {\n // if the stop number has been reached, increase\n // array position to next string\n this.arrayPos++;\n // When looping, begin at the beginning after backspace complete\n if (this.arrayPos === this.strings.length) {\n this.arrayPos = 0;\n this.options.onLastStringBackspaced();\n this.shuffleStringsIfNeeded();\n this.begin();\n } else {\n this.typewrite(this.strings[this.sequence[this.arrayPos]], curStrPos);\n }\n }\n // humanized value for typing\n }, humanize);\n }\n\n /**\n * Full animation is complete\n * @private\n */\n complete() {\n this.options.onComplete(this);\n if (this.loop) {\n this.curLoop++;\n } else {\n this.typingComplete = true;\n }\n }\n\n /**\n * Has the typing been stopped\n * @param {string} curString the current string in the strings array\n * @param {number} curStrPos the current position in the curString\n * @param {boolean} isTyping\n * @private\n */\n setPauseStatus(curString, curStrPos, isTyping) {\n this.pause.typewrite = isTyping;\n this.pause.curString = curString;\n this.pause.curStrPos = curStrPos;\n }\n\n /**\n * Toggle the blinking cursor\n * @param {boolean} isBlinking\n * @private\n */\n toggleBlinking(isBlinking) {\n if (!this.cursor) return;\n // if in paused state, don't toggle blinking a 2nd time\n if (this.pause.status) return;\n if (this.cursorBlinking === isBlinking) return;\n this.cursorBlinking = isBlinking;\n if (isBlinking) {\n this.cursor.classList.add('typed-cursor--blink');\n } else {\n this.cursor.classList.remove('typed-cursor--blink');\n }\n }\n\n /**\n * Speed in MS to type\n * @param {number} speed\n * @private\n */\n humanizer(speed) {\n return Math.round((Math.random() * speed) / 2) + speed;\n }\n\n /**\n * Shuffle the sequence of the strings array\n * @private\n */\n shuffleStringsIfNeeded() {\n if (!this.shuffle) return;\n this.sequence = this.sequence.sort(() => Math.random() - 0.5);\n }\n\n /**\n * Adds a CSS class to fade out current string\n * @private\n */\n initFadeOut() {\n this.el.className += ` ${this.fadeOutClass}`;\n if (this.cursor) this.cursor.className += ` ${this.fadeOutClass}`;\n return setTimeout(() => {\n this.arrayPos++;\n this.replaceText('');\n\n // Resets current string if end of loop reached\n if (this.strings.length > this.arrayPos) {\n this.typewrite(this.strings[this.sequence[this.arrayPos]], 0);\n } else {\n this.typewrite(this.strings[0], 0);\n this.arrayPos = 0;\n }\n }, this.fadeOutDelay);\n }\n\n /**\n * Replaces current text in the HTML element\n * depending on element type\n * @param {string} str\n * @private\n */\n replaceText(str) {\n if (this.attr) {\n this.el.setAttribute(this.attr, str);\n } else {\n if (this.isInput) {\n this.el.value = str;\n } else if (this.contentType === 'html') {\n this.el.innerHTML = str;\n } else {\n this.el.textContent = str;\n }\n }\n }\n\n /**\n * If using input elements, bind focus in order to\n * start and stop the animation\n * @private\n */\n bindFocusEvents() {\n if (!this.isInput) return;\n this.el.addEventListener('focus', (e) => {\n this.stop();\n });\n this.el.addEventListener('blur', (e) => {\n if (this.el.value && this.el.value.length !== 0) {\n return;\n }\n this.start();\n });\n }\n\n /**\n * On init, insert the cursor element\n * @private\n */\n insertCursor() {\n if (!this.showCursor) return;\n if (this.cursor) return;\n this.cursor = document.createElement('span');\n this.cursor.className = 'typed-cursor';\n this.cursor.setAttribute('aria-hidden', true);\n this.cursor.innerHTML = this.cursorChar;\n this.el.parentNode &&\n this.el.parentNode.insertBefore(this.cursor, this.el.nextSibling);\n }\n}\n"],"names":["defaults","strings","stringsElement","typeSpeed","startDelay","backSpeed","smartBackspace","shuffle","backDelay","fadeOut","fadeOutClass","fadeOutDelay","loop","loopCount","Infinity","showCursor","cursorChar","autoInsertCss","attr","bindInputFocusEvents","contentType","onBegin","self","onComplete","preStringTyped","arrayPos","onStringTyped","onLastStringBackspaced","onTypingPaused","onTypingResumed","onReset","onStop","onStart","onDestroy","initializer","Initializer","_proto","prototype","load","options","elementId","el","document","querySelector","_extends","isInput","tagName","toLowerCase","cursorBlinking","elContent","getAttribute","textContent","isPaused","map","s","trim","style","cssText","Array","slice","apply","children","stringsLength","length","i","push","innerHTML","strPos","currentElContent","this","getCurrentElContent","unshift","sequence","stopNum","curLoop","pause","status","typewrite","curString","curStrPos","typingComplete","appendCursorAnimationCss","appendFadeOutAnimationCss","value","cssDataName","css","createElement","setAttribute","body","appendChild","htmlParser","HTMLParser","typeHtmlChars","curChar","substring","charAt","endTag","backSpaceHtmlChars","Typed","begin","toggle","start","stop","toggleBlinking","backspace","destroy","reset","restart","clearInterval","timeout","replaceText","cursor","parentNode","removeChild","insertCursor","_this","shuffleStringsIfNeeded","bindFocusEvents","setTimeout","_this2","classList","contains","remove","humanize","humanizer","numChars","pauseTime","substr","test","skip","exec","parseInt","temporaryPause","stringBeforeSkip","stringSkipped","stringAfterSkip","doneTyping","keepTyping","setPauseStatus","nextString","_this3","complete","_this4","initFadeOut","curStringAtPosition","isTyping","isBlinking","add","speed","Math","round","random","sort","_this5","className","str","_this6","addEventListener","e","insertBefore","nextSibling"],"mappings":"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"} \ No newline at end of file diff --git a/EnvelopeGenerator.Web/wwwroot/lib/typed.js@2.1.0/dist/typed.module.js b/EnvelopeGenerator.Web/wwwroot/lib/typed.js@2.1.0/dist/typed.module.js new file mode 100644 index 00000000..0246dae6 --- /dev/null +++ b/EnvelopeGenerator.Web/wwwroot/lib/typed.js@2.1.0/dist/typed.module.js @@ -0,0 +1,2 @@ +function t(){return t=Object.assign?Object.assign.bind():function(t){for(var s=1;s0&&(e.strPos=e.currentElContent.length-1,e.strings.unshift(e.currentElContent)),e.sequence=[],e.strings)e.sequence[u]=u;e.arrayPos=0,e.stopNum=0,e.loop=e.options.loop,e.loopCount=e.options.loopCount,e.curLoop=0,e.shuffle=e.options.shuffle,e.pause={status:!1,typewrite:!0,curString:"",curStrPos:0},e.typingComplete=!1,e.autoInsertCss=e.options.autoInsertCss,e.autoInsertCss&&(this.appendCursorAnimationCss(e),this.appendFadeOutAnimationCss(e))},n.getCurrentElContent=function(t){return t.attr?t.el.getAttribute(t.attr):t.isInput?t.el.value:"html"===t.contentType?t.el.innerHTML:t.el.textContent},n.appendCursorAnimationCss=function(t){var s="data-typed-js-cursor-css";if(t.showCursor&&!document.querySelector("["+s+"]")){var e=document.createElement("style");e.setAttribute(s,"true"),e.innerHTML="\n .typed-cursor{\n opacity: 1;\n }\n .typed-cursor.typed-cursor--blink{\n animation: typedjsBlink 0.7s infinite;\n -webkit-animation: typedjsBlink 0.7s infinite;\n animation: typedjsBlink 0.7s infinite;\n }\n @keyframes typedjsBlink{\n 50% { opacity: 0.0; }\n }\n @-webkit-keyframes typedjsBlink{\n 0% { opacity: 1; }\n 50% { opacity: 0.0; }\n 100% { opacity: 1; }\n }\n ",document.body.appendChild(e)}},n.appendFadeOutAnimationCss=function(t){var s="data-typed-fadeout-js-css";if(t.fadeOut&&!document.querySelector("["+s+"]")){var e=document.createElement("style");e.setAttribute(s,"true"),e.innerHTML="\n .typed-fade-out{\n opacity: 0;\n transition: opacity .25s;\n }\n .typed-cursor.typed-cursor--blink.typed-fade-out{\n -webkit-animation: 0;\n animation: 0;\n }\n ",document.body.appendChild(e)}},e}()),n=new(/*#__PURE__*/function(){function t(){}var s=t.prototype;return s.typeHtmlChars=function(t,s,e){if("html"!==e.contentType)return s;var n=t.substring(s).charAt(0);if("<"===n||"&"===n){var i;for(i="<"===n?">":";";t.substring(s+1).charAt(0)!==i&&!(1+ ++s>t.length););s++}return s},s.backSpaceHtmlChars=function(t,s,e){if("html"!==e.contentType)return s;var n=t.substring(s).charAt(0);if(">"===n||";"===n){var i;for(i=">"===n?"<":"&";t.substring(s-1).charAt(0)!==i&&!(--s<0););s--}return s},t}()),i=/*#__PURE__*/function(){function t(t,s){e.load(this,s,t),this.begin()}var s=t.prototype;return s.toggle=function(){this.pause.status?this.start():this.stop()},s.stop=function(){this.typingComplete||this.pause.status||(this.toggleBlinking(!0),this.pause.status=!0,this.options.onStop(this.arrayPos,this))},s.start=function(){this.typingComplete||this.pause.status&&(this.pause.status=!1,this.pause.typewrite?this.typewrite(this.pause.curString,this.pause.curStrPos):this.backspace(this.pause.curString,this.pause.curStrPos),this.options.onStart(this.arrayPos,this))},s.destroy=function(){this.reset(!1),this.options.onDestroy(this)},s.reset=function(t){void 0===t&&(t=!0),clearInterval(this.timeout),this.replaceText(""),this.cursor&&this.cursor.parentNode&&(this.cursor.parentNode.removeChild(this.cursor),this.cursor=null),this.strPos=0,this.arrayPos=0,this.curLoop=0,t&&(this.insertCursor(),this.options.onReset(this),this.begin())},s.begin=function(){var t=this;this.options.onBegin(this),this.typingComplete=!1,this.shuffleStringsIfNeeded(this),this.insertCursor(),this.bindInputFocusEvents&&this.bindFocusEvents(),this.timeout=setTimeout(function(){0===t.strPos?t.typewrite(t.strings[t.sequence[t.arrayPos]],t.strPos):t.backspace(t.strings[t.sequence[t.arrayPos]],t.strPos)},this.startDelay)},s.typewrite=function(t,s){var e=this;this.fadeOut&&this.el.classList.contains(this.fadeOutClass)&&(this.el.classList.remove(this.fadeOutClass),this.cursor&&this.cursor.classList.remove(this.fadeOutClass));var i=this.humanizer(this.typeSpeed),r=1;!0!==this.pause.status?this.timeout=setTimeout(function(){s=n.typeHtmlChars(t,s,e);var i=0,o=t.substring(s);if("^"===o.charAt(0)&&/^\^\d+/.test(o)){var a=1;a+=(o=/\d+/.exec(o)[0]).length,i=parseInt(o),e.temporaryPause=!0,e.options.onTypingPaused(e.arrayPos,e),t=t.substring(0,s)+t.substring(s+a),e.toggleBlinking(!0)}if("`"===o.charAt(0)){for(;"`"!==t.substring(s+r).charAt(0)&&(r++,!(s+r>t.length)););var u=t.substring(0,s),p=t.substring(u.length+1,s+r),c=t.substring(s+r+1);t=u+p+c,r--}e.timeout=setTimeout(function(){e.toggleBlinking(!1),s>=t.length?e.doneTyping(t,s):e.keepTyping(t,s,r),e.temporaryPause&&(e.temporaryPause=!1,e.options.onTypingResumed(e.arrayPos,e))},i)},i):this.setPauseStatus(t,s,!0)},s.keepTyping=function(t,s,e){0===s&&(this.toggleBlinking(!1),this.options.preStringTyped(this.arrayPos,this));var n=t.substring(0,s+=e);this.replaceText(n),this.typewrite(t,s)},s.doneTyping=function(t,s){var e=this;this.options.onStringTyped(this.arrayPos,this),this.toggleBlinking(!0),this.arrayPos===this.strings.length-1&&(this.complete(),!1===this.loop||this.curLoop===this.loopCount)||(this.timeout=setTimeout(function(){e.backspace(t,s)},this.backDelay))},s.backspace=function(t,s){var e=this;if(!0!==this.pause.status){if(this.fadeOut)return this.initFadeOut();this.toggleBlinking(!1);var i=this.humanizer(this.backSpeed);this.timeout=setTimeout(function(){s=n.backSpaceHtmlChars(t,s,e);var i=t.substring(0,s);if(e.replaceText(i),e.smartBackspace){var r=e.strings[e.arrayPos+1];e.stopNum=r&&i===r.substring(0,s)?s:0}s>e.stopNum?(s--,e.backspace(t,s)):s<=e.stopNum&&(e.arrayPos++,e.arrayPos===e.strings.length?(e.arrayPos=0,e.options.onLastStringBackspaced(),e.shuffleStringsIfNeeded(),e.begin()):e.typewrite(e.strings[e.sequence[e.arrayPos]],s))},i)}else this.setPauseStatus(t,s,!1)},s.complete=function(){this.options.onComplete(this),this.loop?this.curLoop++:this.typingComplete=!0},s.setPauseStatus=function(t,s,e){this.pause.typewrite=e,this.pause.curString=t,this.pause.curStrPos=s},s.toggleBlinking=function(t){this.cursor&&(this.pause.status||this.cursorBlinking!==t&&(this.cursorBlinking=t,t?this.cursor.classList.add("typed-cursor--blink"):this.cursor.classList.remove("typed-cursor--blink")))},s.humanizer=function(t){return Math.round(Math.random()*t/2)+t},s.shuffleStringsIfNeeded=function(){this.shuffle&&(this.sequence=this.sequence.sort(function(){return Math.random()-.5}))},s.initFadeOut=function(){var t=this;return this.el.className+=" "+this.fadeOutClass,this.cursor&&(this.cursor.className+=" "+this.fadeOutClass),setTimeout(function(){t.arrayPos++,t.replaceText(""),t.strings.length>t.arrayPos?t.typewrite(t.strings[t.sequence[t.arrayPos]],0):(t.typewrite(t.strings[0],0),t.arrayPos=0)},this.fadeOutDelay)},s.replaceText=function(t){this.attr?this.el.setAttribute(this.attr,t):this.isInput?this.el.value=t:"html"===this.contentType?this.el.innerHTML=t:this.el.textContent=t},s.bindFocusEvents=function(){var t=this;this.isInput&&(this.el.addEventListener("focus",function(s){t.stop()}),this.el.addEventListener("blur",function(s){t.el.value&&0!==t.el.value.length||t.start()}))},s.insertCursor=function(){this.showCursor&&(this.cursor||(this.cursor=document.createElement("span"),this.cursor.className="typed-cursor",this.cursor.setAttribute("aria-hidden",!0),this.cursor.innerHTML=this.cursorChar,this.el.parentNode&&this.el.parentNode.insertBefore(this.cursor,this.el.nextSibling)))},t}();export{i as default}; +//# sourceMappingURL=typed.module.js.map diff --git a/EnvelopeGenerator.Web/wwwroot/lib/typed.js@2.1.0/dist/typed.module.js.map b/EnvelopeGenerator.Web/wwwroot/lib/typed.js@2.1.0/dist/typed.module.js.map new file mode 100644 index 00000000..3945a044 --- /dev/null +++ b/EnvelopeGenerator.Web/wwwroot/lib/typed.js@2.1.0/dist/typed.module.js.map @@ -0,0 +1 @@ +{"version":3,"file":"typed.module.js","sources":["../src/defaults.js","../src/initializer.js","../src/html-parser.js","../src/typed.js"],"sourcesContent":["/**\n * Defaults & options\n * @returns {object} Typed defaults & options\n * @public\n */\n\nconst defaults = {\n /**\n * @property {array} strings strings to be typed\n * @property {string} stringsElement ID of element containing string children\n */\n strings: [\n 'These are the default values...',\n 'You know what you should do?',\n 'Use your own!',\n 'Have a great day!',\n ],\n stringsElement: null,\n\n /**\n * @property {number} typeSpeed type speed in milliseconds\n */\n typeSpeed: 0,\n\n /**\n * @property {number} startDelay time before typing starts in milliseconds\n */\n startDelay: 0,\n\n /**\n * @property {number} backSpeed backspacing speed in milliseconds\n */\n backSpeed: 0,\n\n /**\n * @property {boolean} smartBackspace only backspace what doesn't match the previous string\n */\n smartBackspace: true,\n\n /**\n * @property {boolean} shuffle shuffle the strings\n */\n shuffle: false,\n\n /**\n * @property {number} backDelay time before backspacing in milliseconds\n */\n backDelay: 700,\n\n /**\n * @property {boolean} fadeOut Fade out instead of backspace\n * @property {string} fadeOutClass css class for fade animation\n * @property {boolean} fadeOutDelay Fade out delay in milliseconds\n */\n fadeOut: false,\n fadeOutClass: 'typed-fade-out',\n fadeOutDelay: 500,\n\n /**\n * @property {boolean} loop loop strings\n * @property {number} loopCount amount of loops\n */\n loop: false,\n loopCount: Infinity,\n\n /**\n * @property {boolean} showCursor show cursor\n * @property {string} cursorChar character for cursor\n * @property {boolean} autoInsertCss insert CSS for cursor and fadeOut into HTML \n */\n showCursor: true,\n cursorChar: '|',\n autoInsertCss: true,\n\n /**\n * @property {string} attr attribute for typing\n * Ex: input placeholder, value, or just HTML text\n */\n attr: null,\n\n /**\n * @property {boolean} bindInputFocusEvents bind to focus and blur if el is text input\n */\n bindInputFocusEvents: false,\n\n /**\n * @property {string} contentType 'html' or 'null' for plaintext\n */\n contentType: 'html',\n\n /**\n * Before it begins typing\n * @param {Typed} self\n */\n onBegin: (self) => {},\n\n /**\n * All typing is complete\n * @param {Typed} self\n */\n onComplete: (self) => {},\n\n /**\n * Before each string is typed\n * @param {number} arrayPos\n * @param {Typed} self\n */\n preStringTyped: (arrayPos, self) => {},\n\n /**\n * After each string is typed\n * @param {number} arrayPos\n * @param {Typed} self\n */\n onStringTyped: (arrayPos, self) => {},\n\n /**\n * During looping, after last string is typed\n * @param {Typed} self\n */\n onLastStringBackspaced: (self) => {},\n\n /**\n * Typing has been stopped\n * @param {number} arrayPos\n * @param {Typed} self\n */\n onTypingPaused: (arrayPos, self) => {},\n\n /**\n * Typing has been started after being stopped\n * @param {number} arrayPos\n * @param {Typed} self\n */\n onTypingResumed: (arrayPos, self) => {},\n\n /**\n * After reset\n * @param {Typed} self\n */\n onReset: (self) => {},\n\n /**\n * After stop\n * @param {number} arrayPos\n * @param {Typed} self\n */\n onStop: (arrayPos, self) => {},\n\n /**\n * After start\n * @param {number} arrayPos\n * @param {Typed} self\n */\n onStart: (arrayPos, self) => {},\n\n /**\n * After destroy\n * @param {Typed} self\n */\n onDestroy: (self) => {},\n};\n\nexport default defaults;\n","import defaults from './defaults.js';\n/**\n * Initialize the Typed object\n */\n\nexport default class Initializer {\n /**\n * Load up defaults & options on the Typed instance\n * @param {Typed} self instance of Typed\n * @param {object} options options object\n * @param {string} elementId HTML element ID _OR_ instance of HTML element\n * @private\n */\n\n load(self, options, elementId) {\n // chosen element to manipulate text\n if (typeof elementId === 'string') {\n self.el = document.querySelector(elementId);\n } else {\n self.el = elementId;\n }\n\n self.options = { ...defaults, ...options };\n\n // attribute to type into\n self.isInput = self.el.tagName.toLowerCase() === 'input';\n self.attr = self.options.attr;\n self.bindInputFocusEvents = self.options.bindInputFocusEvents;\n\n // show cursor\n self.showCursor = self.isInput ? false : self.options.showCursor;\n\n // custom cursor\n self.cursorChar = self.options.cursorChar;\n\n // Is the cursor blinking\n self.cursorBlinking = true;\n\n // text content of element\n self.elContent = self.attr\n ? self.el.getAttribute(self.attr)\n : self.el.textContent;\n\n // html or plain text\n self.contentType = self.options.contentType;\n\n // typing speed\n self.typeSpeed = self.options.typeSpeed;\n\n // add a delay before typing starts\n self.startDelay = self.options.startDelay;\n\n // backspacing speed\n self.backSpeed = self.options.backSpeed;\n\n // only backspace what doesn't match the previous string\n self.smartBackspace = self.options.smartBackspace;\n\n // amount of time to wait before backspacing\n self.backDelay = self.options.backDelay;\n\n // Fade out instead of backspace\n self.fadeOut = self.options.fadeOut;\n self.fadeOutClass = self.options.fadeOutClass;\n self.fadeOutDelay = self.options.fadeOutDelay;\n\n // variable to check whether typing is currently paused\n self.isPaused = false;\n\n // input strings of text\n self.strings = self.options.strings.map((s) => s.trim());\n\n // div containing strings\n if (typeof self.options.stringsElement === 'string') {\n self.stringsElement = document.querySelector(self.options.stringsElement);\n } else {\n self.stringsElement = self.options.stringsElement;\n }\n\n if (self.stringsElement) {\n self.strings = [];\n self.stringsElement.style.cssText =\n 'clip: rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px;';\n\n const strings = Array.prototype.slice.apply(self.stringsElement.children);\n const stringsLength = strings.length;\n\n if (stringsLength) {\n for (let i = 0; i < stringsLength; i += 1) {\n const stringEl = strings[i];\n self.strings.push(stringEl.innerHTML.trim());\n }\n }\n }\n\n // character number position of current string\n self.strPos = 0;\n\n // If there is some text in the element\n self.currentElContent = this.getCurrentElContent(self);\n\n if (self.currentElContent && self.currentElContent.length > 0) {\n self.strPos = self.currentElContent.length - 1;\n self.strings.unshift(self.currentElContent);\n }\n\n // the order of strings\n self.sequence = [];\n\n // Set the order in which the strings are typed\n for (let i in self.strings) {\n self.sequence[i] = i;\n }\n\n // current array position\n self.arrayPos = 0;\n\n // index of string to stop backspacing on\n self.stopNum = 0;\n\n // Looping logic\n self.loop = self.options.loop;\n self.loopCount = self.options.loopCount;\n self.curLoop = 0;\n\n // shuffle the strings\n self.shuffle = self.options.shuffle;\n\n self.pause = {\n status: false,\n typewrite: true,\n curString: '',\n curStrPos: 0,\n };\n\n // When the typing is complete (when not looped)\n self.typingComplete = false;\n\n self.autoInsertCss = self.options.autoInsertCss;\n\n if (self.autoInsertCss) {\n this.appendCursorAnimationCss(self);\n this.appendFadeOutAnimationCss(self);\n }\n }\n\n getCurrentElContent(self) {\n let elContent = '';\n if (self.attr) {\n elContent = self.el.getAttribute(self.attr);\n } else if (self.isInput) {\n elContent = self.el.value;\n } else if (self.contentType === 'html') {\n elContent = self.el.innerHTML;\n } else {\n elContent = self.el.textContent;\n }\n return elContent;\n }\n\n appendCursorAnimationCss(self) {\n const cssDataName = 'data-typed-js-cursor-css';\n\n if (!self.showCursor || document.querySelector(`[${cssDataName}]`)) {\n return;\n }\n\n let css = document.createElement('style');\n css.setAttribute(cssDataName, 'true');\n\n css.innerHTML = `\n .typed-cursor{\n opacity: 1;\n }\n .typed-cursor.typed-cursor--blink{\n animation: typedjsBlink 0.7s infinite;\n -webkit-animation: typedjsBlink 0.7s infinite;\n animation: typedjsBlink 0.7s infinite;\n }\n @keyframes typedjsBlink{\n 50% { opacity: 0.0; }\n }\n @-webkit-keyframes typedjsBlink{\n 0% { opacity: 1; }\n 50% { opacity: 0.0; }\n 100% { opacity: 1; }\n }\n `;\n\n document.body.appendChild(css);\n }\n\n appendFadeOutAnimationCss(self) {\n const cssDataName = 'data-typed-fadeout-js-css';\n\n if (!self.fadeOut || document.querySelector(`[${cssDataName}]`)) {\n return;\n }\n\n let css = document.createElement('style');\n css.setAttribute(cssDataName, 'true');\n\n css.innerHTML = `\n .typed-fade-out{\n opacity: 0;\n transition: opacity .25s;\n }\n .typed-cursor.typed-cursor--blink.typed-fade-out{\n -webkit-animation: 0;\n animation: 0;\n }\n `;\n\n document.body.appendChild(css);\n }\n}\n\nexport let initializer = new Initializer();\n","/**\n * TODO: These methods can probably be combined somehow\n * Parse HTML tags & HTML Characters\n */\n\nexport default class HTMLParser {\n /**\n * Type HTML tags & HTML Characters\n * @param {string} curString Current string\n * @param {number} curStrPos Position in current string\n * @param {Typed} self instance of Typed\n * @returns {number} a new string position\n * @private\n */\n\n typeHtmlChars(curString, curStrPos, self) {\n if (self.contentType !== 'html') return curStrPos;\n const curChar = curString.substring(curStrPos).charAt(0);\n if (curChar === '<' || curChar === '&') {\n let endTag = '';\n if (curChar === '<') {\n endTag = '>';\n } else {\n endTag = ';';\n }\n while (curString.substring(curStrPos + 1).charAt(0) !== endTag) {\n curStrPos++;\n if (curStrPos + 1 > curString.length) {\n break;\n }\n }\n curStrPos++;\n }\n return curStrPos;\n }\n\n /**\n * Backspace HTML tags and HTML Characters\n * @param {string} curString Current string\n * @param {number} curStrPos Position in current string\n * @param {Typed} self instance of Typed\n * @returns {number} a new string position\n * @private\n */\n backSpaceHtmlChars(curString, curStrPos, self) {\n if (self.contentType !== 'html') return curStrPos;\n const curChar = curString.substring(curStrPos).charAt(0);\n if (curChar === '>' || curChar === ';') {\n let endTag = '';\n if (curChar === '>') {\n endTag = '<';\n } else {\n endTag = '&';\n }\n while (curString.substring(curStrPos - 1).charAt(0) !== endTag) {\n curStrPos--;\n if (curStrPos < 0) {\n break;\n }\n }\n curStrPos--;\n }\n return curStrPos;\n }\n}\n\nexport let htmlParser = new HTMLParser();\n","import { initializer } from './initializer.js';\nimport { htmlParser } from './html-parser.js';\n\n/**\n * Welcome to Typed.js!\n * @param {string} elementId HTML element ID _OR_ HTML element\n * @param {object} options options object\n * @returns {object} a new Typed object\n */\nexport default class Typed {\n constructor(elementId, options) {\n // Initialize it up\n initializer.load(this, options, elementId);\n // All systems go!\n this.begin();\n }\n\n /**\n * Toggle start() and stop() of the Typed instance\n * @public\n */\n toggle() {\n this.pause.status ? this.start() : this.stop();\n }\n\n /**\n * Stop typing / backspacing and enable cursor blinking\n * @public\n */\n stop() {\n if (this.typingComplete) return;\n if (this.pause.status) return;\n this.toggleBlinking(true);\n this.pause.status = true;\n this.options.onStop(this.arrayPos, this);\n }\n\n /**\n * Start typing / backspacing after being stopped\n * @public\n */\n start() {\n if (this.typingComplete) return;\n if (!this.pause.status) return;\n this.pause.status = false;\n if (this.pause.typewrite) {\n this.typewrite(this.pause.curString, this.pause.curStrPos);\n } else {\n this.backspace(this.pause.curString, this.pause.curStrPos);\n }\n this.options.onStart(this.arrayPos, this);\n }\n\n /**\n * Destroy this instance of Typed\n * @public\n */\n destroy() {\n this.reset(false);\n this.options.onDestroy(this);\n }\n\n /**\n * Reset Typed and optionally restarts\n * @param {boolean} restart\n * @public\n */\n reset(restart = true) {\n clearInterval(this.timeout);\n this.replaceText('');\n if (this.cursor && this.cursor.parentNode) {\n this.cursor.parentNode.removeChild(this.cursor);\n this.cursor = null;\n }\n this.strPos = 0;\n this.arrayPos = 0;\n this.curLoop = 0;\n if (restart) {\n this.insertCursor();\n this.options.onReset(this);\n this.begin();\n }\n }\n\n /**\n * Begins the typing animation\n * @private\n */\n begin() {\n this.options.onBegin(this);\n this.typingComplete = false;\n this.shuffleStringsIfNeeded(this);\n this.insertCursor();\n if (this.bindInputFocusEvents) this.bindFocusEvents();\n this.timeout = setTimeout(() => {\n // If the strPos is 0, we're starting from the beginning of a string\n // else, we're starting with a previous string that needs to be backspaced first\n if (this.strPos === 0) {\n this.typewrite(this.strings[this.sequence[this.arrayPos]], this.strPos);\n } else {\n this.backspace(this.strings[this.sequence[this.arrayPos]], this.strPos);\n }\n }, this.startDelay);\n }\n\n /**\n * Called for each character typed\n * @param {string} curString the current string in the strings array\n * @param {number} curStrPos the current position in the curString\n * @private\n */\n typewrite(curString, curStrPos) {\n if (this.fadeOut && this.el.classList.contains(this.fadeOutClass)) {\n this.el.classList.remove(this.fadeOutClass);\n if (this.cursor) this.cursor.classList.remove(this.fadeOutClass);\n }\n\n const humanize = this.humanizer(this.typeSpeed);\n let numChars = 1;\n\n if (this.pause.status === true) {\n this.setPauseStatus(curString, curStrPos, true);\n return;\n }\n\n // contain typing function in a timeout humanize'd delay\n this.timeout = setTimeout(() => {\n // skip over any HTML chars\n curStrPos = htmlParser.typeHtmlChars(curString, curStrPos, this);\n\n let pauseTime = 0;\n let substr = curString.substring(curStrPos);\n // check for an escape character before a pause value\n // format: \\^\\d+ .. eg: ^1000 .. should be able to print the ^ too using ^^\n // single ^ are removed from string\n if (substr.charAt(0) === '^') {\n if (/^\\^\\d+/.test(substr)) {\n let skip = 1; // skip at least 1\n substr = /\\d+/.exec(substr)[0];\n skip += substr.length;\n pauseTime = parseInt(substr);\n this.temporaryPause = true;\n this.options.onTypingPaused(this.arrayPos, this);\n // strip out the escape character and pause value so they're not printed\n curString =\n curString.substring(0, curStrPos) +\n curString.substring(curStrPos + skip);\n this.toggleBlinking(true);\n }\n }\n\n // check for skip characters formatted as\n // \"this is a `string to print NOW` ...\"\n if (substr.charAt(0) === '`') {\n while (curString.substring(curStrPos + numChars).charAt(0) !== '`') {\n numChars++;\n if (curStrPos + numChars > curString.length) break;\n }\n // strip out the escape characters and append all the string in between\n const stringBeforeSkip = curString.substring(0, curStrPos);\n const stringSkipped = curString.substring(\n stringBeforeSkip.length + 1,\n curStrPos + numChars\n );\n const stringAfterSkip = curString.substring(curStrPos + numChars + 1);\n curString = stringBeforeSkip + stringSkipped + stringAfterSkip;\n numChars--;\n }\n\n // timeout for any pause after a character\n this.timeout = setTimeout(() => {\n // Accounts for blinking while paused\n this.toggleBlinking(false);\n\n // We're done with this sentence!\n if (curStrPos >= curString.length) {\n this.doneTyping(curString, curStrPos);\n } else {\n this.keepTyping(curString, curStrPos, numChars);\n }\n // end of character pause\n if (this.temporaryPause) {\n this.temporaryPause = false;\n this.options.onTypingResumed(this.arrayPos, this);\n }\n }, pauseTime);\n\n // humanized value for typing\n }, humanize);\n }\n\n /**\n * Continue to the next string & begin typing\n * @param {string} curString the current string in the strings array\n * @param {number} curStrPos the current position in the curString\n * @private\n */\n keepTyping(curString, curStrPos, numChars) {\n // call before functions if applicable\n if (curStrPos === 0) {\n this.toggleBlinking(false);\n this.options.preStringTyped(this.arrayPos, this);\n }\n // start typing each new char into existing string\n // curString: arg, this.el.html: original text inside element\n curStrPos += numChars;\n const nextString = curString.substring(0, curStrPos);\n this.replaceText(nextString);\n // loop the function\n this.typewrite(curString, curStrPos);\n }\n\n /**\n * We're done typing the current string\n * @param {string} curString the current string in the strings array\n * @param {number} curStrPos the current position in the curString\n * @private\n */\n doneTyping(curString, curStrPos) {\n // fires callback function\n this.options.onStringTyped(this.arrayPos, this);\n this.toggleBlinking(true);\n // is this the final string\n if (this.arrayPos === this.strings.length - 1) {\n // callback that occurs on the last typed string\n this.complete();\n // quit if we wont loop back\n if (this.loop === false || this.curLoop === this.loopCount) {\n return;\n }\n }\n this.timeout = setTimeout(() => {\n this.backspace(curString, curStrPos);\n }, this.backDelay);\n }\n\n /**\n * Backspaces 1 character at a time\n * @param {string} curString the current string in the strings array\n * @param {number} curStrPos the current position in the curString\n * @private\n */\n backspace(curString, curStrPos) {\n if (this.pause.status === true) {\n this.setPauseStatus(curString, curStrPos, false);\n return;\n }\n if (this.fadeOut) return this.initFadeOut();\n\n this.toggleBlinking(false);\n const humanize = this.humanizer(this.backSpeed);\n\n this.timeout = setTimeout(() => {\n curStrPos = htmlParser.backSpaceHtmlChars(curString, curStrPos, this);\n // replace text with base text + typed characters\n const curStringAtPosition = curString.substring(0, curStrPos);\n this.replaceText(curStringAtPosition);\n\n // if smartBack is enabled\n if (this.smartBackspace) {\n // the remaining part of the current string is equal of the same part of the new string\n let nextString = this.strings[this.arrayPos + 1];\n if (\n nextString &&\n curStringAtPosition === nextString.substring(0, curStrPos)\n ) {\n this.stopNum = curStrPos;\n } else {\n this.stopNum = 0;\n }\n }\n\n // if the number (id of character in current string) is\n // less than the stop number, keep going\n if (curStrPos > this.stopNum) {\n // subtract characters one by one\n curStrPos--;\n // loop the function\n this.backspace(curString, curStrPos);\n } else if (curStrPos <= this.stopNum) {\n // if the stop number has been reached, increase\n // array position to next string\n this.arrayPos++;\n // When looping, begin at the beginning after backspace complete\n if (this.arrayPos === this.strings.length) {\n this.arrayPos = 0;\n this.options.onLastStringBackspaced();\n this.shuffleStringsIfNeeded();\n this.begin();\n } else {\n this.typewrite(this.strings[this.sequence[this.arrayPos]], curStrPos);\n }\n }\n // humanized value for typing\n }, humanize);\n }\n\n /**\n * Full animation is complete\n * @private\n */\n complete() {\n this.options.onComplete(this);\n if (this.loop) {\n this.curLoop++;\n } else {\n this.typingComplete = true;\n }\n }\n\n /**\n * Has the typing been stopped\n * @param {string} curString the current string in the strings array\n * @param {number} curStrPos the current position in the curString\n * @param {boolean} isTyping\n * @private\n */\n setPauseStatus(curString, curStrPos, isTyping) {\n this.pause.typewrite = isTyping;\n this.pause.curString = curString;\n this.pause.curStrPos = curStrPos;\n }\n\n /**\n * Toggle the blinking cursor\n * @param {boolean} isBlinking\n * @private\n */\n toggleBlinking(isBlinking) {\n if (!this.cursor) return;\n // if in paused state, don't toggle blinking a 2nd time\n if (this.pause.status) return;\n if (this.cursorBlinking === isBlinking) return;\n this.cursorBlinking = isBlinking;\n if (isBlinking) {\n this.cursor.classList.add('typed-cursor--blink');\n } else {\n this.cursor.classList.remove('typed-cursor--blink');\n }\n }\n\n /**\n * Speed in MS to type\n * @param {number} speed\n * @private\n */\n humanizer(speed) {\n return Math.round((Math.random() * speed) / 2) + speed;\n }\n\n /**\n * Shuffle the sequence of the strings array\n * @private\n */\n shuffleStringsIfNeeded() {\n if (!this.shuffle) return;\n this.sequence = this.sequence.sort(() => Math.random() - 0.5);\n }\n\n /**\n * Adds a CSS class to fade out current string\n * @private\n */\n initFadeOut() {\n this.el.className += ` ${this.fadeOutClass}`;\n if (this.cursor) this.cursor.className += ` ${this.fadeOutClass}`;\n return setTimeout(() => {\n this.arrayPos++;\n this.replaceText('');\n\n // Resets current string if end of loop reached\n if (this.strings.length > this.arrayPos) {\n this.typewrite(this.strings[this.sequence[this.arrayPos]], 0);\n } else {\n this.typewrite(this.strings[0], 0);\n this.arrayPos = 0;\n }\n }, this.fadeOutDelay);\n }\n\n /**\n * Replaces current text in the HTML element\n * depending on element type\n * @param {string} str\n * @private\n */\n replaceText(str) {\n if (this.attr) {\n this.el.setAttribute(this.attr, str);\n } else {\n if (this.isInput) {\n this.el.value = str;\n } else if (this.contentType === 'html') {\n this.el.innerHTML = str;\n } else {\n this.el.textContent = str;\n }\n }\n }\n\n /**\n * If using input elements, bind focus in order to\n * start and stop the animation\n * @private\n */\n bindFocusEvents() {\n if (!this.isInput) return;\n this.el.addEventListener('focus', (e) => {\n this.stop();\n });\n this.el.addEventListener('blur', (e) => {\n if (this.el.value && this.el.value.length !== 0) {\n return;\n }\n this.start();\n });\n }\n\n /**\n * On init, insert the cursor element\n * @private\n */\n insertCursor() {\n if (!this.showCursor) return;\n if (this.cursor) return;\n this.cursor = document.createElement('span');\n this.cursor.className = 'typed-cursor';\n this.cursor.setAttribute('aria-hidden', true);\n this.cursor.innerHTML = this.cursorChar;\n this.el.parentNode &&\n this.el.parentNode.insertBefore(this.cursor, this.el.nextSibling);\n }\n}\n"],"names":["defaults","strings","stringsElement","typeSpeed","startDelay","backSpeed","smartBackspace","shuffle","backDelay","fadeOut","fadeOutClass","fadeOutDelay","loop","loopCount","Infinity","showCursor","cursorChar","autoInsertCss","attr","bindInputFocusEvents","contentType","onBegin","self","onComplete","preStringTyped","arrayPos","onStringTyped","onLastStringBackspaced","onTypingPaused","onTypingResumed","onReset","onStop","onStart","onDestroy","initializer","Initializer","_proto","prototype","load","options","elementId","el","document","querySelector","_extends","isInput","tagName","toLowerCase","cursorBlinking","elContent","getAttribute","textContent","isPaused","map","s","trim","style","cssText","Array","slice","apply","children","stringsLength","length","i","push","innerHTML","strPos","currentElContent","this","getCurrentElContent","unshift","sequence","stopNum","curLoop","pause","status","typewrite","curString","curStrPos","typingComplete","appendCursorAnimationCss","appendFadeOutAnimationCss","value","cssDataName","css","createElement","setAttribute","body","appendChild","htmlParser","HTMLParser","typeHtmlChars","curChar","substring","charAt","endTag","backSpaceHtmlChars","Typed","begin","toggle","start","stop","toggleBlinking","backspace","destroy","reset","restart","clearInterval","timeout","replaceText","cursor","parentNode","removeChild","insertCursor","_this","shuffleStringsIfNeeded","bindFocusEvents","setTimeout","_this2","classList","contains","remove","humanize","humanizer","numChars","pauseTime","substr","test","skip","exec","parseInt","temporaryPause","stringBeforeSkip","stringSkipped","stringAfterSkip","doneTyping","keepTyping","setPauseStatus","nextString","_this3","complete","_this4","initFadeOut","curStringAtPosition","isTyping","isBlinking","add","speed","Math","round","random","sort","_this5","className","str","_this6","addEventListener","e","insertBefore","nextSibling"],"mappings":"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"} \ No newline at end of file diff --git a/EnvelopeGenerator.Web/wwwroot/lib/typed.js@2.1.0/dist/typed.umd.js b/EnvelopeGenerator.Web/wwwroot/lib/typed.js@2.1.0/dist/typed.umd.js new file mode 100644 index 00000000..0a4e41d6 --- /dev/null +++ b/EnvelopeGenerator.Web/wwwroot/lib/typed.js@2.1.0/dist/typed.umd.js @@ -0,0 +1,3 @@ +!function(t,s){"object"==typeof exports&&"undefined"!=typeof module?module.exports=s():"function"==typeof define&&define.amd?define(s):(t||self).Typed=s()}(this,function(){function t(){return t=Object.assign?Object.assign.bind():function(t){for(var s=1;s0&&(e.strPos=e.currentElContent.length-1,e.strings.unshift(e.currentElContent)),e.sequence=[],e.strings)e.sequence[u]=u;e.arrayPos=0,e.stopNum=0,e.loop=e.options.loop,e.loopCount=e.options.loopCount,e.curLoop=0,e.shuffle=e.options.shuffle,e.pause={status:!1,typewrite:!0,curString:"",curStrPos:0},e.typingComplete=!1,e.autoInsertCss=e.options.autoInsertCss,e.autoInsertCss&&(this.appendCursorAnimationCss(e),this.appendFadeOutAnimationCss(e))},n.getCurrentElContent=function(t){return t.attr?t.el.getAttribute(t.attr):t.isInput?t.el.value:"html"===t.contentType?t.el.innerHTML:t.el.textContent},n.appendCursorAnimationCss=function(t){var s="data-typed-js-cursor-css";if(t.showCursor&&!document.querySelector("["+s+"]")){var e=document.createElement("style");e.setAttribute(s,"true"),e.innerHTML="\n .typed-cursor{\n opacity: 1;\n }\n .typed-cursor.typed-cursor--blink{\n animation: typedjsBlink 0.7s infinite;\n -webkit-animation: typedjsBlink 0.7s infinite;\n animation: typedjsBlink 0.7s infinite;\n }\n @keyframes typedjsBlink{\n 50% { opacity: 0.0; }\n }\n @-webkit-keyframes typedjsBlink{\n 0% { opacity: 1; }\n 50% { opacity: 0.0; }\n 100% { opacity: 1; }\n }\n ",document.body.appendChild(e)}},n.appendFadeOutAnimationCss=function(t){var s="data-typed-fadeout-js-css";if(t.fadeOut&&!document.querySelector("["+s+"]")){var e=document.createElement("style");e.setAttribute(s,"true"),e.innerHTML="\n .typed-fade-out{\n opacity: 0;\n transition: opacity .25s;\n }\n .typed-cursor.typed-cursor--blink.typed-fade-out{\n -webkit-animation: 0;\n animation: 0;\n }\n ",document.body.appendChild(e)}},e}()),n=new(/*#__PURE__*/function(){function t(){}var s=t.prototype;return s.typeHtmlChars=function(t,s,e){if("html"!==e.contentType)return s;var n=t.substring(s).charAt(0);if("<"===n||"&"===n){var i;for(i="<"===n?">":";";t.substring(s+1).charAt(0)!==i&&!(1+ ++s>t.length););s++}return s},s.backSpaceHtmlChars=function(t,s,e){if("html"!==e.contentType)return s;var n=t.substring(s).charAt(0);if(">"===n||";"===n){var i;for(i=">"===n?"<":"&";t.substring(s-1).charAt(0)!==i&&!(--s<0););s--}return s},t}());/*#__PURE__*/ +return function(){function t(t,s){e.load(this,s,t),this.begin()}var s=t.prototype;return s.toggle=function(){this.pause.status?this.start():this.stop()},s.stop=function(){this.typingComplete||this.pause.status||(this.toggleBlinking(!0),this.pause.status=!0,this.options.onStop(this.arrayPos,this))},s.start=function(){this.typingComplete||this.pause.status&&(this.pause.status=!1,this.pause.typewrite?this.typewrite(this.pause.curString,this.pause.curStrPos):this.backspace(this.pause.curString,this.pause.curStrPos),this.options.onStart(this.arrayPos,this))},s.destroy=function(){this.reset(!1),this.options.onDestroy(this)},s.reset=function(t){void 0===t&&(t=!0),clearInterval(this.timeout),this.replaceText(""),this.cursor&&this.cursor.parentNode&&(this.cursor.parentNode.removeChild(this.cursor),this.cursor=null),this.strPos=0,this.arrayPos=0,this.curLoop=0,t&&(this.insertCursor(),this.options.onReset(this),this.begin())},s.begin=function(){var t=this;this.options.onBegin(this),this.typingComplete=!1,this.shuffleStringsIfNeeded(this),this.insertCursor(),this.bindInputFocusEvents&&this.bindFocusEvents(),this.timeout=setTimeout(function(){0===t.strPos?t.typewrite(t.strings[t.sequence[t.arrayPos]],t.strPos):t.backspace(t.strings[t.sequence[t.arrayPos]],t.strPos)},this.startDelay)},s.typewrite=function(t,s){var e=this;this.fadeOut&&this.el.classList.contains(this.fadeOutClass)&&(this.el.classList.remove(this.fadeOutClass),this.cursor&&this.cursor.classList.remove(this.fadeOutClass));var i=this.humanizer(this.typeSpeed),r=1;!0!==this.pause.status?this.timeout=setTimeout(function(){s=n.typeHtmlChars(t,s,e);var i=0,o=t.substring(s);if("^"===o.charAt(0)&&/^\^\d+/.test(o)){var a=1;a+=(o=/\d+/.exec(o)[0]).length,i=parseInt(o),e.temporaryPause=!0,e.options.onTypingPaused(e.arrayPos,e),t=t.substring(0,s)+t.substring(s+a),e.toggleBlinking(!0)}if("`"===o.charAt(0)){for(;"`"!==t.substring(s+r).charAt(0)&&(r++,!(s+r>t.length)););var u=t.substring(0,s),p=t.substring(u.length+1,s+r),c=t.substring(s+r+1);t=u+p+c,r--}e.timeout=setTimeout(function(){e.toggleBlinking(!1),s>=t.length?e.doneTyping(t,s):e.keepTyping(t,s,r),e.temporaryPause&&(e.temporaryPause=!1,e.options.onTypingResumed(e.arrayPos,e))},i)},i):this.setPauseStatus(t,s,!0)},s.keepTyping=function(t,s,e){0===s&&(this.toggleBlinking(!1),this.options.preStringTyped(this.arrayPos,this));var n=t.substring(0,s+=e);this.replaceText(n),this.typewrite(t,s)},s.doneTyping=function(t,s){var e=this;this.options.onStringTyped(this.arrayPos,this),this.toggleBlinking(!0),this.arrayPos===this.strings.length-1&&(this.complete(),!1===this.loop||this.curLoop===this.loopCount)||(this.timeout=setTimeout(function(){e.backspace(t,s)},this.backDelay))},s.backspace=function(t,s){var e=this;if(!0!==this.pause.status){if(this.fadeOut)return this.initFadeOut();this.toggleBlinking(!1);var i=this.humanizer(this.backSpeed);this.timeout=setTimeout(function(){s=n.backSpaceHtmlChars(t,s,e);var i=t.substring(0,s);if(e.replaceText(i),e.smartBackspace){var r=e.strings[e.arrayPos+1];e.stopNum=r&&i===r.substring(0,s)?s:0}s>e.stopNum?(s--,e.backspace(t,s)):s<=e.stopNum&&(e.arrayPos++,e.arrayPos===e.strings.length?(e.arrayPos=0,e.options.onLastStringBackspaced(),e.shuffleStringsIfNeeded(),e.begin()):e.typewrite(e.strings[e.sequence[e.arrayPos]],s))},i)}else this.setPauseStatus(t,s,!1)},s.complete=function(){this.options.onComplete(this),this.loop?this.curLoop++:this.typingComplete=!0},s.setPauseStatus=function(t,s,e){this.pause.typewrite=e,this.pause.curString=t,this.pause.curStrPos=s},s.toggleBlinking=function(t){this.cursor&&(this.pause.status||this.cursorBlinking!==t&&(this.cursorBlinking=t,t?this.cursor.classList.add("typed-cursor--blink"):this.cursor.classList.remove("typed-cursor--blink")))},s.humanizer=function(t){return Math.round(Math.random()*t/2)+t},s.shuffleStringsIfNeeded=function(){this.shuffle&&(this.sequence=this.sequence.sort(function(){return Math.random()-.5}))},s.initFadeOut=function(){var t=this;return this.el.className+=" "+this.fadeOutClass,this.cursor&&(this.cursor.className+=" "+this.fadeOutClass),setTimeout(function(){t.arrayPos++,t.replaceText(""),t.strings.length>t.arrayPos?t.typewrite(t.strings[t.sequence[t.arrayPos]],0):(t.typewrite(t.strings[0],0),t.arrayPos=0)},this.fadeOutDelay)},s.replaceText=function(t){this.attr?this.el.setAttribute(this.attr,t):this.isInput?this.el.value=t:"html"===this.contentType?this.el.innerHTML=t:this.el.textContent=t},s.bindFocusEvents=function(){var t=this;this.isInput&&(this.el.addEventListener("focus",function(s){t.stop()}),this.el.addEventListener("blur",function(s){t.el.value&&0!==t.el.value.length||t.start()}))},s.insertCursor=function(){this.showCursor&&(this.cursor||(this.cursor=document.createElement("span"),this.cursor.className="typed-cursor",this.cursor.setAttribute("aria-hidden",!0),this.cursor.innerHTML=this.cursorChar,this.el.parentNode&&this.el.parentNode.insertBefore(this.cursor,this.el.nextSibling)))},t}()}); +//# sourceMappingURL=typed.umd.js.map diff --git a/EnvelopeGenerator.Web/wwwroot/lib/typed.js@2.1.0/dist/typed.umd.js.map b/EnvelopeGenerator.Web/wwwroot/lib/typed.js@2.1.0/dist/typed.umd.js.map new file mode 100644 index 00000000..697553cd --- /dev/null +++ b/EnvelopeGenerator.Web/wwwroot/lib/typed.js@2.1.0/dist/typed.umd.js.map @@ -0,0 +1 @@ +{"version":3,"file":"typed.umd.js","sources":["../src/defaults.js","../src/initializer.js","../src/html-parser.js","../src/typed.js"],"sourcesContent":["/**\n * Defaults & options\n * @returns {object} Typed defaults & options\n * @public\n */\n\nconst defaults = {\n /**\n * @property {array} strings strings to be typed\n * @property {string} stringsElement ID of element containing string children\n */\n strings: [\n 'These are the default values...',\n 'You know what you should do?',\n 'Use your own!',\n 'Have a great day!',\n ],\n stringsElement: null,\n\n /**\n * @property {number} typeSpeed type speed in milliseconds\n */\n typeSpeed: 0,\n\n /**\n * @property {number} startDelay time before typing starts in milliseconds\n */\n startDelay: 0,\n\n /**\n * @property {number} backSpeed backspacing speed in milliseconds\n */\n backSpeed: 0,\n\n /**\n * @property {boolean} smartBackspace only backspace what doesn't match the previous string\n */\n smartBackspace: true,\n\n /**\n * @property {boolean} shuffle shuffle the strings\n */\n shuffle: false,\n\n /**\n * @property {number} backDelay time before backspacing in milliseconds\n */\n backDelay: 700,\n\n /**\n * @property {boolean} fadeOut Fade out instead of backspace\n * @property {string} fadeOutClass css class for fade animation\n * @property {boolean} fadeOutDelay Fade out delay in milliseconds\n */\n fadeOut: false,\n fadeOutClass: 'typed-fade-out',\n fadeOutDelay: 500,\n\n /**\n * @property {boolean} loop loop strings\n * @property {number} loopCount amount of loops\n */\n loop: false,\n loopCount: Infinity,\n\n /**\n * @property {boolean} showCursor show cursor\n * @property {string} cursorChar character for cursor\n * @property {boolean} autoInsertCss insert CSS for cursor and fadeOut into HTML \n */\n showCursor: true,\n cursorChar: '|',\n autoInsertCss: true,\n\n /**\n * @property {string} attr attribute for typing\n * Ex: input placeholder, value, or just HTML text\n */\n attr: null,\n\n /**\n * @property {boolean} bindInputFocusEvents bind to focus and blur if el is text input\n */\n bindInputFocusEvents: false,\n\n /**\n * @property {string} contentType 'html' or 'null' for plaintext\n */\n contentType: 'html',\n\n /**\n * Before it begins typing\n * @param {Typed} self\n */\n onBegin: (self) => {},\n\n /**\n * All typing is complete\n * @param {Typed} self\n */\n onComplete: (self) => {},\n\n /**\n * Before each string is typed\n * @param {number} arrayPos\n * @param {Typed} self\n */\n preStringTyped: (arrayPos, self) => {},\n\n /**\n * After each string is typed\n * @param {number} arrayPos\n * @param {Typed} self\n */\n onStringTyped: (arrayPos, self) => {},\n\n /**\n * During looping, after last string is typed\n * @param {Typed} self\n */\n onLastStringBackspaced: (self) => {},\n\n /**\n * Typing has been stopped\n * @param {number} arrayPos\n * @param {Typed} self\n */\n onTypingPaused: (arrayPos, self) => {},\n\n /**\n * Typing has been started after being stopped\n * @param {number} arrayPos\n * @param {Typed} self\n */\n onTypingResumed: (arrayPos, self) => {},\n\n /**\n * After reset\n * @param {Typed} self\n */\n onReset: (self) => {},\n\n /**\n * After stop\n * @param {number} arrayPos\n * @param {Typed} self\n */\n onStop: (arrayPos, self) => {},\n\n /**\n * After start\n * @param {number} arrayPos\n * @param {Typed} self\n */\n onStart: (arrayPos, self) => {},\n\n /**\n * After destroy\n * @param {Typed} self\n */\n onDestroy: (self) => {},\n};\n\nexport default defaults;\n","import defaults from './defaults.js';\n/**\n * Initialize the Typed object\n */\n\nexport default class Initializer {\n /**\n * Load up defaults & options on the Typed instance\n * @param {Typed} self instance of Typed\n * @param {object} options options object\n * @param {string} elementId HTML element ID _OR_ instance of HTML element\n * @private\n */\n\n load(self, options, elementId) {\n // chosen element to manipulate text\n if (typeof elementId === 'string') {\n self.el = document.querySelector(elementId);\n } else {\n self.el = elementId;\n }\n\n self.options = { ...defaults, ...options };\n\n // attribute to type into\n self.isInput = self.el.tagName.toLowerCase() === 'input';\n self.attr = self.options.attr;\n self.bindInputFocusEvents = self.options.bindInputFocusEvents;\n\n // show cursor\n self.showCursor = self.isInput ? false : self.options.showCursor;\n\n // custom cursor\n self.cursorChar = self.options.cursorChar;\n\n // Is the cursor blinking\n self.cursorBlinking = true;\n\n // text content of element\n self.elContent = self.attr\n ? self.el.getAttribute(self.attr)\n : self.el.textContent;\n\n // html or plain text\n self.contentType = self.options.contentType;\n\n // typing speed\n self.typeSpeed = self.options.typeSpeed;\n\n // add a delay before typing starts\n self.startDelay = self.options.startDelay;\n\n // backspacing speed\n self.backSpeed = self.options.backSpeed;\n\n // only backspace what doesn't match the previous string\n self.smartBackspace = self.options.smartBackspace;\n\n // amount of time to wait before backspacing\n self.backDelay = self.options.backDelay;\n\n // Fade out instead of backspace\n self.fadeOut = self.options.fadeOut;\n self.fadeOutClass = self.options.fadeOutClass;\n self.fadeOutDelay = self.options.fadeOutDelay;\n\n // variable to check whether typing is currently paused\n self.isPaused = false;\n\n // input strings of text\n self.strings = self.options.strings.map((s) => s.trim());\n\n // div containing strings\n if (typeof self.options.stringsElement === 'string') {\n self.stringsElement = document.querySelector(self.options.stringsElement);\n } else {\n self.stringsElement = self.options.stringsElement;\n }\n\n if (self.stringsElement) {\n self.strings = [];\n self.stringsElement.style.cssText =\n 'clip: rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px;';\n\n const strings = Array.prototype.slice.apply(self.stringsElement.children);\n const stringsLength = strings.length;\n\n if (stringsLength) {\n for (let i = 0; i < stringsLength; i += 1) {\n const stringEl = strings[i];\n self.strings.push(stringEl.innerHTML.trim());\n }\n }\n }\n\n // character number position of current string\n self.strPos = 0;\n\n // If there is some text in the element\n self.currentElContent = this.getCurrentElContent(self);\n\n if (self.currentElContent && self.currentElContent.length > 0) {\n self.strPos = self.currentElContent.length - 1;\n self.strings.unshift(self.currentElContent);\n }\n\n // the order of strings\n self.sequence = [];\n\n // Set the order in which the strings are typed\n for (let i in self.strings) {\n self.sequence[i] = i;\n }\n\n // current array position\n self.arrayPos = 0;\n\n // index of string to stop backspacing on\n self.stopNum = 0;\n\n // Looping logic\n self.loop = self.options.loop;\n self.loopCount = self.options.loopCount;\n self.curLoop = 0;\n\n // shuffle the strings\n self.shuffle = self.options.shuffle;\n\n self.pause = {\n status: false,\n typewrite: true,\n curString: '',\n curStrPos: 0,\n };\n\n // When the typing is complete (when not looped)\n self.typingComplete = false;\n\n self.autoInsertCss = self.options.autoInsertCss;\n\n if (self.autoInsertCss) {\n this.appendCursorAnimationCss(self);\n this.appendFadeOutAnimationCss(self);\n }\n }\n\n getCurrentElContent(self) {\n let elContent = '';\n if (self.attr) {\n elContent = self.el.getAttribute(self.attr);\n } else if (self.isInput) {\n elContent = self.el.value;\n } else if (self.contentType === 'html') {\n elContent = self.el.innerHTML;\n } else {\n elContent = self.el.textContent;\n }\n return elContent;\n }\n\n appendCursorAnimationCss(self) {\n const cssDataName = 'data-typed-js-cursor-css';\n\n if (!self.showCursor || document.querySelector(`[${cssDataName}]`)) {\n return;\n }\n\n let css = document.createElement('style');\n css.setAttribute(cssDataName, 'true');\n\n css.innerHTML = `\n .typed-cursor{\n opacity: 1;\n }\n .typed-cursor.typed-cursor--blink{\n animation: typedjsBlink 0.7s infinite;\n -webkit-animation: typedjsBlink 0.7s infinite;\n animation: typedjsBlink 0.7s infinite;\n }\n @keyframes typedjsBlink{\n 50% { opacity: 0.0; }\n }\n @-webkit-keyframes typedjsBlink{\n 0% { opacity: 1; }\n 50% { opacity: 0.0; }\n 100% { opacity: 1; }\n }\n `;\n\n document.body.appendChild(css);\n }\n\n appendFadeOutAnimationCss(self) {\n const cssDataName = 'data-typed-fadeout-js-css';\n\n if (!self.fadeOut || document.querySelector(`[${cssDataName}]`)) {\n return;\n }\n\n let css = document.createElement('style');\n css.setAttribute(cssDataName, 'true');\n\n css.innerHTML = `\n .typed-fade-out{\n opacity: 0;\n transition: opacity .25s;\n }\n .typed-cursor.typed-cursor--blink.typed-fade-out{\n -webkit-animation: 0;\n animation: 0;\n }\n `;\n\n document.body.appendChild(css);\n }\n}\n\nexport let initializer = new Initializer();\n","/**\n * TODO: These methods can probably be combined somehow\n * Parse HTML tags & HTML Characters\n */\n\nexport default class HTMLParser {\n /**\n * Type HTML tags & HTML Characters\n * @param {string} curString Current string\n * @param {number} curStrPos Position in current string\n * @param {Typed} self instance of Typed\n * @returns {number} a new string position\n * @private\n */\n\n typeHtmlChars(curString, curStrPos, self) {\n if (self.contentType !== 'html') return curStrPos;\n const curChar = curString.substring(curStrPos).charAt(0);\n if (curChar === '<' || curChar === '&') {\n let endTag = '';\n if (curChar === '<') {\n endTag = '>';\n } else {\n endTag = ';';\n }\n while (curString.substring(curStrPos + 1).charAt(0) !== endTag) {\n curStrPos++;\n if (curStrPos + 1 > curString.length) {\n break;\n }\n }\n curStrPos++;\n }\n return curStrPos;\n }\n\n /**\n * Backspace HTML tags and HTML Characters\n * @param {string} curString Current string\n * @param {number} curStrPos Position in current string\n * @param {Typed} self instance of Typed\n * @returns {number} a new string position\n * @private\n */\n backSpaceHtmlChars(curString, curStrPos, self) {\n if (self.contentType !== 'html') return curStrPos;\n const curChar = curString.substring(curStrPos).charAt(0);\n if (curChar === '>' || curChar === ';') {\n let endTag = '';\n if (curChar === '>') {\n endTag = '<';\n } else {\n endTag = '&';\n }\n while (curString.substring(curStrPos - 1).charAt(0) !== endTag) {\n curStrPos--;\n if (curStrPos < 0) {\n break;\n }\n }\n curStrPos--;\n }\n return curStrPos;\n }\n}\n\nexport let htmlParser = new HTMLParser();\n","import { initializer } from './initializer.js';\nimport { htmlParser } from './html-parser.js';\n\n/**\n * Welcome to Typed.js!\n * @param {string} elementId HTML element ID _OR_ HTML element\n * @param {object} options options object\n * @returns {object} a new Typed object\n */\nexport default class Typed {\n constructor(elementId, options) {\n // Initialize it up\n initializer.load(this, options, elementId);\n // All systems go!\n this.begin();\n }\n\n /**\n * Toggle start() and stop() of the Typed instance\n * @public\n */\n toggle() {\n this.pause.status ? this.start() : this.stop();\n }\n\n /**\n * Stop typing / backspacing and enable cursor blinking\n * @public\n */\n stop() {\n if (this.typingComplete) return;\n if (this.pause.status) return;\n this.toggleBlinking(true);\n this.pause.status = true;\n this.options.onStop(this.arrayPos, this);\n }\n\n /**\n * Start typing / backspacing after being stopped\n * @public\n */\n start() {\n if (this.typingComplete) return;\n if (!this.pause.status) return;\n this.pause.status = false;\n if (this.pause.typewrite) {\n this.typewrite(this.pause.curString, this.pause.curStrPos);\n } else {\n this.backspace(this.pause.curString, this.pause.curStrPos);\n }\n this.options.onStart(this.arrayPos, this);\n }\n\n /**\n * Destroy this instance of Typed\n * @public\n */\n destroy() {\n this.reset(false);\n this.options.onDestroy(this);\n }\n\n /**\n * Reset Typed and optionally restarts\n * @param {boolean} restart\n * @public\n */\n reset(restart = true) {\n clearInterval(this.timeout);\n this.replaceText('');\n if (this.cursor && this.cursor.parentNode) {\n this.cursor.parentNode.removeChild(this.cursor);\n this.cursor = null;\n }\n this.strPos = 0;\n this.arrayPos = 0;\n this.curLoop = 0;\n if (restart) {\n this.insertCursor();\n this.options.onReset(this);\n this.begin();\n }\n }\n\n /**\n * Begins the typing animation\n * @private\n */\n begin() {\n this.options.onBegin(this);\n this.typingComplete = false;\n this.shuffleStringsIfNeeded(this);\n this.insertCursor();\n if (this.bindInputFocusEvents) this.bindFocusEvents();\n this.timeout = setTimeout(() => {\n // If the strPos is 0, we're starting from the beginning of a string\n // else, we're starting with a previous string that needs to be backspaced first\n if (this.strPos === 0) {\n this.typewrite(this.strings[this.sequence[this.arrayPos]], this.strPos);\n } else {\n this.backspace(this.strings[this.sequence[this.arrayPos]], this.strPos);\n }\n }, this.startDelay);\n }\n\n /**\n * Called for each character typed\n * @param {string} curString the current string in the strings array\n * @param {number} curStrPos the current position in the curString\n * @private\n */\n typewrite(curString, curStrPos) {\n if (this.fadeOut && this.el.classList.contains(this.fadeOutClass)) {\n this.el.classList.remove(this.fadeOutClass);\n if (this.cursor) this.cursor.classList.remove(this.fadeOutClass);\n }\n\n const humanize = this.humanizer(this.typeSpeed);\n let numChars = 1;\n\n if (this.pause.status === true) {\n this.setPauseStatus(curString, curStrPos, true);\n return;\n }\n\n // contain typing function in a timeout humanize'd delay\n this.timeout = setTimeout(() => {\n // skip over any HTML chars\n curStrPos = htmlParser.typeHtmlChars(curString, curStrPos, this);\n\n let pauseTime = 0;\n let substr = curString.substring(curStrPos);\n // check for an escape character before a pause value\n // format: \\^\\d+ .. eg: ^1000 .. should be able to print the ^ too using ^^\n // single ^ are removed from string\n if (substr.charAt(0) === '^') {\n if (/^\\^\\d+/.test(substr)) {\n let skip = 1; // skip at least 1\n substr = /\\d+/.exec(substr)[0];\n skip += substr.length;\n pauseTime = parseInt(substr);\n this.temporaryPause = true;\n this.options.onTypingPaused(this.arrayPos, this);\n // strip out the escape character and pause value so they're not printed\n curString =\n curString.substring(0, curStrPos) +\n curString.substring(curStrPos + skip);\n this.toggleBlinking(true);\n }\n }\n\n // check for skip characters formatted as\n // \"this is a `string to print NOW` ...\"\n if (substr.charAt(0) === '`') {\n while (curString.substring(curStrPos + numChars).charAt(0) !== '`') {\n numChars++;\n if (curStrPos + numChars > curString.length) break;\n }\n // strip out the escape characters and append all the string in between\n const stringBeforeSkip = curString.substring(0, curStrPos);\n const stringSkipped = curString.substring(\n stringBeforeSkip.length + 1,\n curStrPos + numChars\n );\n const stringAfterSkip = curString.substring(curStrPos + numChars + 1);\n curString = stringBeforeSkip + stringSkipped + stringAfterSkip;\n numChars--;\n }\n\n // timeout for any pause after a character\n this.timeout = setTimeout(() => {\n // Accounts for blinking while paused\n this.toggleBlinking(false);\n\n // We're done with this sentence!\n if (curStrPos >= curString.length) {\n this.doneTyping(curString, curStrPos);\n } else {\n this.keepTyping(curString, curStrPos, numChars);\n }\n // end of character pause\n if (this.temporaryPause) {\n this.temporaryPause = false;\n this.options.onTypingResumed(this.arrayPos, this);\n }\n }, pauseTime);\n\n // humanized value for typing\n }, humanize);\n }\n\n /**\n * Continue to the next string & begin typing\n * @param {string} curString the current string in the strings array\n * @param {number} curStrPos the current position in the curString\n * @private\n */\n keepTyping(curString, curStrPos, numChars) {\n // call before functions if applicable\n if (curStrPos === 0) {\n this.toggleBlinking(false);\n this.options.preStringTyped(this.arrayPos, this);\n }\n // start typing each new char into existing string\n // curString: arg, this.el.html: original text inside element\n curStrPos += numChars;\n const nextString = curString.substring(0, curStrPos);\n this.replaceText(nextString);\n // loop the function\n this.typewrite(curString, curStrPos);\n }\n\n /**\n * We're done typing the current string\n * @param {string} curString the current string in the strings array\n * @param {number} curStrPos the current position in the curString\n * @private\n */\n doneTyping(curString, curStrPos) {\n // fires callback function\n this.options.onStringTyped(this.arrayPos, this);\n this.toggleBlinking(true);\n // is this the final string\n if (this.arrayPos === this.strings.length - 1) {\n // callback that occurs on the last typed string\n this.complete();\n // quit if we wont loop back\n if (this.loop === false || this.curLoop === this.loopCount) {\n return;\n }\n }\n this.timeout = setTimeout(() => {\n this.backspace(curString, curStrPos);\n }, this.backDelay);\n }\n\n /**\n * Backspaces 1 character at a time\n * @param {string} curString the current string in the strings array\n * @param {number} curStrPos the current position in the curString\n * @private\n */\n backspace(curString, curStrPos) {\n if (this.pause.status === true) {\n this.setPauseStatus(curString, curStrPos, false);\n return;\n }\n if (this.fadeOut) return this.initFadeOut();\n\n this.toggleBlinking(false);\n const humanize = this.humanizer(this.backSpeed);\n\n this.timeout = setTimeout(() => {\n curStrPos = htmlParser.backSpaceHtmlChars(curString, curStrPos, this);\n // replace text with base text + typed characters\n const curStringAtPosition = curString.substring(0, curStrPos);\n this.replaceText(curStringAtPosition);\n\n // if smartBack is enabled\n if (this.smartBackspace) {\n // the remaining part of the current string is equal of the same part of the new string\n let nextString = this.strings[this.arrayPos + 1];\n if (\n nextString &&\n curStringAtPosition === nextString.substring(0, curStrPos)\n ) {\n this.stopNum = curStrPos;\n } else {\n this.stopNum = 0;\n }\n }\n\n // if the number (id of character in current string) is\n // less than the stop number, keep going\n if (curStrPos > this.stopNum) {\n // subtract characters one by one\n curStrPos--;\n // loop the function\n this.backspace(curString, curStrPos);\n } else if (curStrPos <= this.stopNum) {\n // if the stop number has been reached, increase\n // array position to next string\n this.arrayPos++;\n // When looping, begin at the beginning after backspace complete\n if (this.arrayPos === this.strings.length) {\n this.arrayPos = 0;\n this.options.onLastStringBackspaced();\n this.shuffleStringsIfNeeded();\n this.begin();\n } else {\n this.typewrite(this.strings[this.sequence[this.arrayPos]], curStrPos);\n }\n }\n // humanized value for typing\n }, humanize);\n }\n\n /**\n * Full animation is complete\n * @private\n */\n complete() {\n this.options.onComplete(this);\n if (this.loop) {\n this.curLoop++;\n } else {\n this.typingComplete = true;\n }\n }\n\n /**\n * Has the typing been stopped\n * @param {string} curString the current string in the strings array\n * @param {number} curStrPos the current position in the curString\n * @param {boolean} isTyping\n * @private\n */\n setPauseStatus(curString, curStrPos, isTyping) {\n this.pause.typewrite = isTyping;\n this.pause.curString = curString;\n this.pause.curStrPos = curStrPos;\n }\n\n /**\n * Toggle the blinking cursor\n * @param {boolean} isBlinking\n * @private\n */\n toggleBlinking(isBlinking) {\n if (!this.cursor) return;\n // if in paused state, don't toggle blinking a 2nd time\n if (this.pause.status) return;\n if (this.cursorBlinking === isBlinking) return;\n this.cursorBlinking = isBlinking;\n if (isBlinking) {\n this.cursor.classList.add('typed-cursor--blink');\n } else {\n this.cursor.classList.remove('typed-cursor--blink');\n }\n }\n\n /**\n * Speed in MS to type\n * @param {number} speed\n * @private\n */\n humanizer(speed) {\n return Math.round((Math.random() * speed) / 2) + speed;\n }\n\n /**\n * Shuffle the sequence of the strings array\n * @private\n */\n shuffleStringsIfNeeded() {\n if (!this.shuffle) return;\n this.sequence = this.sequence.sort(() => Math.random() - 0.5);\n }\n\n /**\n * Adds a CSS class to fade out current string\n * @private\n */\n initFadeOut() {\n this.el.className += ` ${this.fadeOutClass}`;\n if (this.cursor) this.cursor.className += ` ${this.fadeOutClass}`;\n return setTimeout(() => {\n this.arrayPos++;\n this.replaceText('');\n\n // Resets current string if end of loop reached\n if (this.strings.length > this.arrayPos) {\n this.typewrite(this.strings[this.sequence[this.arrayPos]], 0);\n } else {\n this.typewrite(this.strings[0], 0);\n this.arrayPos = 0;\n }\n }, this.fadeOutDelay);\n }\n\n /**\n * Replaces current text in the HTML element\n * depending on element type\n * @param {string} str\n * @private\n */\n replaceText(str) {\n if (this.attr) {\n this.el.setAttribute(this.attr, str);\n } else {\n if (this.isInput) {\n this.el.value = str;\n } else if (this.contentType === 'html') {\n this.el.innerHTML = str;\n } else {\n this.el.textContent = str;\n }\n }\n }\n\n /**\n * If using input elements, bind focus in order to\n * start and stop the animation\n * @private\n */\n bindFocusEvents() {\n if (!this.isInput) return;\n this.el.addEventListener('focus', (e) => {\n this.stop();\n });\n this.el.addEventListener('blur', (e) => {\n if (this.el.value && this.el.value.length !== 0) {\n return;\n }\n this.start();\n });\n }\n\n /**\n * On init, insert the cursor element\n * @private\n */\n insertCursor() {\n if (!this.showCursor) return;\n if (this.cursor) return;\n this.cursor = document.createElement('span');\n this.cursor.className = 'typed-cursor';\n this.cursor.setAttribute('aria-hidden', true);\n this.cursor.innerHTML = this.cursorChar;\n this.el.parentNode &&\n this.el.parentNode.insertBefore(this.cursor, this.el.nextSibling);\n }\n}\n"],"names":["defaults","strings","stringsElement","typeSpeed","startDelay","backSpeed","smartBackspace","shuffle","backDelay","fadeOut","fadeOutClass","fadeOutDelay","loop","loopCount","Infinity","showCursor","cursorChar","autoInsertCss","attr","bindInputFocusEvents","contentType","onBegin","self","onComplete","preStringTyped","arrayPos","onStringTyped","onLastStringBackspaced","onTypingPaused","onTypingResumed","onReset","onStop","onStart","onDestroy","initializer","Initializer","_proto","prototype","load","options","elementId","el","document","querySelector","_extends","isInput","tagName","toLowerCase","cursorBlinking","elContent","getAttribute","textContent","isPaused","map","s","trim","style","cssText","Array","slice","apply","children","stringsLength","length","i","push","innerHTML","strPos","currentElContent","this","getCurrentElContent","unshift","sequence","stopNum","curLoop","pause","status","typewrite","curString","curStrPos","typingComplete","appendCursorAnimationCss","appendFadeOutAnimationCss","value","cssDataName","css","createElement","setAttribute","body","appendChild","htmlParser","HTMLParser","typeHtmlChars","curChar","substring","charAt","endTag","backSpaceHtmlChars","Typed","begin","toggle","start","stop","toggleBlinking","backspace","destroy","reset","restart","clearInterval","timeout","replaceText","cursor","parentNode","removeChild","insertCursor","_this","shuffleStringsIfNeeded","bindFocusEvents","setTimeout","_this2","classList","contains","remove","humanize","humanizer","numChars","pauseTime","substr","test","skip","exec","parseInt","temporaryPause","stringBeforeSkip","stringSkipped","stringAfterSkip","doneTyping","keepTyping","setPauseStatus","nextString","_this3","complete","_this4","initFadeOut","curStringAtPosition","isTyping","isBlinking","add","speed","Math","round","random","sort","_this5","className","str","_this6","addEventListener","e","insertBefore","nextSibling"],"mappings":"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"} \ No newline at end of file diff --git a/EnvelopeGenerator.Web/wwwroot/lib/typed.js@2.1.0/index.d.ts b/EnvelopeGenerator.Web/wwwroot/lib/typed.js@2.1.0/index.d.ts new file mode 100644 index 00000000..625ca333 --- /dev/null +++ b/EnvelopeGenerator.Web/wwwroot/lib/typed.js@2.1.0/index.d.ts @@ -0,0 +1,257 @@ +/** + * Welcome to Typed.js! + * @param {string} elementId HTML element ID _OR_ HTML element + * @param {object} options options object + * @returns {object} a new Typed object + */ + +declare module 'typed.js' { + export interface TypedOptions { + /** + * strings to be typed + */ + strings?: string[]; + /** + * ID or instance of HTML element of element containing string children + */ + stringsElement?: string | Element; + /** + * type speed in milliseconds + */ + typeSpeed?: number; + /** + * time before typing starts in milliseconds + */ + startDelay?: number; + /** + * backspacing speed in milliseconds + */ + backSpeed?: number; + /** + * only backspace what doesn't match the previous string + */ + smartBackspace?: boolean; + /** + * shuffle the strings + */ + shuffle?: boolean; + /** + * time before backspacing in milliseconds + */ + backDelay?: number; + /** + * Fade out instead of backspace + */ + fadeOut?: boolean; + /** + * css class for fade animation + */ + fadeOutClass?: string; + /** + * Fade out delay in milliseconds + */ + fadeOutDelay?: number; + /** + * loop strings + */ + loop?: boolean; + /** + * amount of loops + */ + loopCount?: number; + /** + * show cursor + */ + showCursor?: boolean; + /** + * character for cursor + */ + cursorChar?: string; + /** + * insert CSS for cursor and fadeOut into HTML + */ + autoInsertCss?: boolean; + /** + * attribute for typing Ex: input placeholder, value, or just HTML text + */ + attr?: string; + /** + * bind to focus and blur if el is text input + */ + bindInputFocusEvents?: boolean; + /** + * 'html' or 'null' for plaintext + */ + contentType?: string; + /** + * Before it begins typing the first string + */ + onBegin?(self: Typed): void; + /** + * All typing is complete + */ + onComplete?(self: Typed): void; + /** + * Before each string is typed + */ + preStringTyped?(arrayPos: number, self: Typed): void; + /** + * After each string is typed + */ + onStringTyped?(arrayPos: number, self: Typed): void; + /** + * During looping, after last string is typed + */ + onLastStringBackspaced?(self: Typed): void; + /** + * Typing has been stopped + */ + onTypingPaused?(arrayPos: number, self: Typed): void; + /** + * Typing has been started after being stopped + */ + onTypingResumed?(arrayPos: number, self: Typed): void; + /** + * After reset + */ + onReset?(self: Typed): void; + /** + * After stop + */ + onStop?(arrayPos: number, self: Typed): void; + /** + * After start + */ + onStart?(arrayPos: number, self: Typed): void; + /** + * After destroy + */ + onDestroy?(self: Typed): void; + } + + export default class Typed { + constructor(elementId: any, options: TypedOptions); + /** + * Toggle start() and stop() of the Typed instance + * @public + */ + public toggle(): void; + /** + * Stop typing / backspacing and enable cursor blinking + * @public + */ + public stop(): void; + /** + * Start typing / backspacing after being stopped + * @public + */ + public start(): void; + /** + * Destroy this instance of Typed + * @public + */ + public destroy(): void; + /** + * Reset Typed and optionally restarts + * @param {boolean} restart + * @public + */ + public reset(restart?: boolean): void; + cursor: HTMLSpanElement; + strPos: number; + arrayPos: number; + curLoop: number; + /** + * Begins the typing animation + * @private + */ + private begin; + typingComplete: boolean; + timeout: any; + /** + * Called for each character typed + * @param {string} curString the current string in the strings array + * @param {number} curStrPos the current position in the curString + * @private + */ + private typewrite; + temporaryPause: boolean; + /** + * Continue to the next string & begin typing + * @param {string} curString the current string in the strings array + * @param {number} curStrPos the current position in the curString + * @private + */ + private keepTyping; + /** + * We're done typing the current string + * @param {string} curString the current string in the strings array + * @param {number} curStrPos the current position in the curString + * @private + */ + private doneTyping; + /** + * Backspaces 1 character at a time + * @param {string} curString the current string in the strings array + * @param {number} curStrPos the current position in the curString + * @private + */ + private backspace; + stopNum: number; + /** + * Full animation is complete + * @private + */ + private complete; + /** + * Has the typing been stopped + * @param {string} curString the current string in the strings array + * @param {number} curStrPos the current position in the curString + * @param {boolean} isTyping + * @private + */ + private setPauseStatus; + /** + * Toggle the blinking cursor + * @param {boolean} isBlinking + * @private + */ + private toggleBlinking; + cursorBlinking: any; + /** + * Speed in MS to type + * @param {number} speed + * @private + */ + private humanizer; + /** + * Shuffle the sequence of the strings array + * @private + */ + private shuffleStringsIfNeeded; + sequence: any; + /** + * Adds a CSS class to fade out current string + * @private + */ + private initFadeOut; + /** + * Replaces current text in the HTML element + * depending on element type + * @param {string} str + * @private + */ + private replaceText; + /** + * If using input elements, bind focus in order to + * start and stop the animation + * @private + */ + private bindFocusEvents; + /** + * On init, insert the cursor element + * @private + */ + private insertCursor; + } +} diff --git a/EnvelopeGenerator.Web/wwwroot/lib/typed.js@2.1.0/package.json b/EnvelopeGenerator.Web/wwwroot/lib/typed.js@2.1.0/package.json new file mode 100644 index 00000000..be1ab844 --- /dev/null +++ b/EnvelopeGenerator.Web/wwwroot/lib/typed.js@2.1.0/package.json @@ -0,0 +1,36 @@ +{ + "name": "typed.js", + "version": "2.1.0", + "homepage": "https://github.com/mattboldt/typed.js", + "repository": "https://github.com/mattboldt/typed.js", + "license": "MIT", + "author": "Matt Boldt", + "description": "A JavaScript Typing Animation Library", + "type": "module", + "source": "src/typed.js", + "types": "./index.d.ts", + "files": [ + "dist", + "index.d.ts" + ], + "exports": { + "require": "./dist/typed.cjs", + "import": "./dist/typed.module.js", + "types": "./index.d.ts" + }, + "main": "./dist/typed.cjs", + "module": "./dist/typed.module.js", + "unpkg": "./dist/typed.umd.js", + "keywords": [ + "typed", + "animation" + ], + "devDependencies": { + "microbundle": "^0.15.1" + }, + "scripts": { + "build": "microbundle --name=Typed", + "dev": "microbundle --name=Typed watch", + "diff": "git diff -- ':^docs'" + } +} diff --git a/EnvelopeGenerator.sln b/EnvelopeGenerator.sln index 650cab96..900a5ca6 100644 --- a/EnvelopeGenerator.sln +++ b/EnvelopeGenerator.sln @@ -21,6 +21,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EnvelopeGenerator.Applicati EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EnvelopeGenerator.GeneratorAPI", "EnvelopeGenerator.GeneratorAPI\EnvelopeGenerator.GeneratorAPI.csproj", "{E5E12BA4-60C1-48BA-9053-0F8B62B38124}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EnvelopeGenerator.Extensions", "EnvelopeGenerator.Extensions\EnvelopeGenerator.Extensions.csproj", "{47F98812-4280-4D53-B04A-2AAEEA5EBC31}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -63,6 +65,10 @@ Global {E5E12BA4-60C1-48BA-9053-0F8B62B38124}.Debug|Any CPU.Build.0 = Debug|Any CPU {E5E12BA4-60C1-48BA-9053-0F8B62B38124}.Release|Any CPU.ActiveCfg = Release|Any CPU {E5E12BA4-60C1-48BA-9053-0F8B62B38124}.Release|Any CPU.Build.0 = Release|Any CPU + {47F98812-4280-4D53-B04A-2AAEEA5EBC31}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {47F98812-4280-4D53-B04A-2AAEEA5EBC31}.Debug|Any CPU.Build.0 = Debug|Any CPU + {47F98812-4280-4D53-B04A-2AAEEA5EBC31}.Release|Any CPU.ActiveCfg = Release|Any CPU + {47F98812-4280-4D53-B04A-2AAEEA5EBC31}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/Visual Studio 2022/Visualizers/attribcache140.bin b/Visual Studio 2022/Visualizers/attribcache140.bin deleted file mode 100644 index 30406106..00000000 Binary files a/Visual Studio 2022/Visualizers/attribcache140.bin and /dev/null differ