diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..9df7a52 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,317 @@ +# Visual Studio generated .editorconfig file with C++ settings. +root = true + +# Windows style newlines +[*] +end_of_line = crlf +insert_final_newline = false + +[*.{c++,cc,cpp,cppm,cxx,h,h++,hh,hpp,hxx,inl,ipp,ixx,tlh,tli}] +charset = utf-8 +indent_style = tab + +# Visual C++ Code Style settings + +cpp_generate_documentation_comments = xml + +# Visual C++ Formatting settings + +cpp_indent_braces = false +cpp_indent_multi_line_relative_to = innermost_parenthesis +cpp_indent_within_parentheses = indent +cpp_indent_preserve_within_parentheses = true +cpp_indent_case_contents = true +cpp_indent_case_labels = false +cpp_indent_case_contents_when_block = false +cpp_indent_lambda_braces_when_parameter = true +cpp_indent_goto_labels = one_left +cpp_indent_preprocessor = leftmost_column +cpp_indent_access_specifiers = false +cpp_indent_namespace_contents = true +cpp_indent_preserve_comments = false +cpp_new_line_before_open_brace_namespace = ignore +cpp_new_line_before_open_brace_type = ignore +cpp_new_line_before_open_brace_function = ignore +cpp_new_line_before_open_brace_block = ignore +cpp_new_line_before_open_brace_lambda = ignore +cpp_new_line_scope_braces_on_separate_lines = false +cpp_new_line_close_brace_same_line_empty_type = false +cpp_new_line_close_brace_same_line_empty_function = false +cpp_new_line_before_catch = true +cpp_new_line_before_else = true +cpp_new_line_before_while_in_do_while = false +cpp_space_before_function_open_parenthesis = remove +cpp_space_within_parameter_list_parentheses = true +cpp_space_between_empty_parameter_list_parentheses = true +cpp_space_after_keywords_in_control_flow_statements = true +cpp_space_within_control_flow_statement_parentheses = true +cpp_space_before_lambda_open_parenthesis = false +cpp_space_within_cast_parentheses = false +cpp_space_after_cast_close_parenthesis = false +cpp_space_within_expression_parentheses = true +cpp_space_before_block_open_brace = true +cpp_space_between_empty_braces = true +cpp_space_before_initializer_list_open_brace = false +cpp_space_within_initializer_list_braces = true +cpp_space_preserve_in_initializer_list = false +cpp_space_before_open_square_bracket = false +cpp_space_within_square_brackets = true +cpp_space_before_empty_square_brackets = false +cpp_space_between_empty_square_brackets = true +cpp_space_group_square_brackets = true +cpp_space_within_lambda_brackets = false +cpp_space_between_empty_lambda_brackets = false +cpp_space_before_comma = true +cpp_space_after_comma = true +cpp_space_remove_around_member_operators = true +cpp_space_before_inheritance_colon = true +cpp_space_before_constructor_colon = true +cpp_space_remove_before_semicolon = false +cpp_space_after_semicolon = true +cpp_space_remove_around_unary_operator = true +cpp_space_around_binary_operator = insert +cpp_space_around_assignment_operator = insert +cpp_space_pointer_reference_alignment = ignore +cpp_space_around_ternary_operator = insert +cpp_use_unreal_engine_macro_formatting = true +cpp_wrap_preserve_blocks = one_liners + +# Visual C++ Inlcude Cleanup settings + +cpp_include_cleanup_add_missing_error_tag_type = suggestion +cpp_include_cleanup_remove_unused_error_tag_type = dimmed +cpp_include_cleanup_sort_after_edits = false +cpp_sort_includes_error_tag_type = none +cpp_sort_includes_priority_case_sensitive = false +cpp_sort_includes_priority_style = quoted +cpp_includes_style = default +cpp_includes_use_forward_slash = true + +# C# files +[*.cs] + +#### Core EditorConfig Options #### + +# Indentation and spacing +indent_size = 4 +indent_style = space +tab_width = 4 + +# New line preferences +end_of_line = crlf +insert_final_newline = false + +#### .NET Coding Conventions #### + +# Organize usings +dotnet_separate_import_directive_groups = false +dotnet_sort_system_directives_first = false +file_header_template = unset + +# this. and Me. preferences +dotnet_style_qualification_for_event = false +dotnet_style_qualification_for_field = false +dotnet_style_qualification_for_method = false +dotnet_style_qualification_for_property = false + +# Language keywords vs BCL types preferences +dotnet_style_predefined_type_for_locals_parameters_members = true +dotnet_style_predefined_type_for_member_access = true + +# Parentheses preferences +dotnet_style_parentheses_in_arithmetic_binary_operators = always_for_clarity +dotnet_style_parentheses_in_other_binary_operators = always_for_clarity +dotnet_style_parentheses_in_other_operators = never_if_unnecessary +dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity + +# Modifier preferences +dotnet_style_require_accessibility_modifiers = for_non_interface_members + +# Expression-level preferences +dotnet_style_coalesce_expression = true +dotnet_style_collection_initializer = true +dotnet_style_explicit_tuple_names = true +dotnet_style_namespace_match_folder = true +dotnet_style_null_propagation = true +dotnet_style_object_initializer = true +dotnet_style_operator_placement_when_wrapping = beginning_of_line +dotnet_style_prefer_auto_properties = true +dotnet_style_prefer_collection_expression = when_types_loosely_match +dotnet_style_prefer_compound_assignment = true +dotnet_style_prefer_conditional_expression_over_assignment = true +dotnet_style_prefer_conditional_expression_over_return = true +dotnet_style_prefer_foreach_explicit_cast_in_source = when_strongly_typed +dotnet_style_prefer_inferred_anonymous_type_member_names = true +dotnet_style_prefer_inferred_tuple_names = true +dotnet_style_prefer_is_null_check_over_reference_equality_method = true +dotnet_style_prefer_simplified_boolean_expressions = true +dotnet_style_prefer_simplified_interpolation = true + +# Field preferences +dotnet_style_readonly_field = true + +# Parameter preferences +dotnet_code_quality_unused_parameters = all + +# Suppression preferences +dotnet_remove_unnecessary_suppression_exclusions = none + +# New line preferences +dotnet_style_allow_multiple_blank_lines_experimental = true +dotnet_style_allow_statement_immediately_after_block_experimental = true + +#### C# Coding Conventions #### + +# var preferences +csharp_style_var_elsewhere = false +csharp_style_var_for_built_in_types = false +csharp_style_var_when_type_is_apparent = false + +# Expression-bodied members +csharp_style_expression_bodied_accessors = true +csharp_style_expression_bodied_constructors = false +csharp_style_expression_bodied_indexers = true +csharp_style_expression_bodied_lambdas = true +csharp_style_expression_bodied_local_functions = false +csharp_style_expression_bodied_methods = false +csharp_style_expression_bodied_operators = false +csharp_style_expression_bodied_properties = true + +# Pattern matching preferences +csharp_style_pattern_matching_over_as_with_null_check = true +csharp_style_pattern_matching_over_is_with_cast_check = true +csharp_style_prefer_extended_property_pattern = true +csharp_style_prefer_not_pattern = true +csharp_style_prefer_pattern_matching = true +csharp_style_prefer_switch_expression = true + +# Null-checking preferences +csharp_style_conditional_delegate_call = true + +# Modifier preferences +csharp_prefer_static_local_function = true +csharp_preferred_modifier_order = public,private,protected,internal,file,static,extern,new,virtual,abstract,sealed,override,readonly,unsafe,required,volatile,async +csharp_style_prefer_readonly_struct = true +csharp_style_prefer_readonly_struct_member = true + +# Code-block preferences +csharp_prefer_braces = true +csharp_prefer_simple_using_statement = true +csharp_style_namespace_declarations = block_scoped +csharp_style_prefer_method_group_conversion = true +csharp_style_prefer_primary_constructors = true +csharp_style_prefer_top_level_statements = true + +# Expression-level preferences +csharp_prefer_simple_default_expression = true +csharp_style_deconstructed_variable_declaration = true +csharp_style_implicit_object_creation_when_type_is_apparent = true +csharp_style_inlined_variable_declaration = true +csharp_style_prefer_index_operator = true +csharp_style_prefer_local_over_anonymous_function = true +csharp_style_prefer_null_check_over_type_check = true +csharp_style_prefer_range_operator = true +csharp_style_prefer_tuple_swap = true +csharp_style_prefer_utf8_string_literals = true +csharp_style_throw_expression = true +csharp_style_unused_value_assignment_preference = discard_variable +csharp_style_unused_value_expression_statement_preference = discard_variable + +# 'using' directive preferences +csharp_using_directive_placement = outside_namespace + +# New line preferences +csharp_style_allow_blank_line_after_colon_in_constructor_initializer_experimental = true +csharp_style_allow_blank_line_after_token_in_arrow_expression_clause_experimental = true +csharp_style_allow_blank_line_after_token_in_conditional_expression_experimental = true +csharp_style_allow_blank_lines_between_consecutive_braces_experimental = true +csharp_style_allow_embedded_statements_on_same_line_experimental = true + +#### C# Formatting Rules #### + +# New line preferences +csharp_new_line_before_catch = true +csharp_new_line_before_else = true +csharp_new_line_before_finally = true +csharp_new_line_before_members_in_anonymous_types = true +csharp_new_line_before_members_in_object_initializers = true +csharp_new_line_before_open_brace = all +csharp_new_line_between_query_expression_clauses = true + +# Indentation preferences +csharp_indent_block_contents = true +csharp_indent_braces = false +csharp_indent_case_contents = true +csharp_indent_case_contents_when_block = false +csharp_indent_labels = no_change +csharp_indent_switch_labels = false + +# Space preferences +csharp_space_after_cast = false +csharp_space_after_colon_in_inheritance_clause = true +csharp_space_after_comma = true +csharp_space_after_dot = false +csharp_space_after_keywords_in_control_flow_statements = true +csharp_space_after_semicolon_in_for_statement = true +csharp_space_around_binary_operators = before_and_after +csharp_space_around_declaration_statements = ignore +csharp_space_before_colon_in_inheritance_clause = true +csharp_space_before_comma = true +csharp_space_before_dot = false +csharp_space_before_open_square_brackets = false +csharp_space_before_semicolon_in_for_statement = true +csharp_space_between_empty_square_brackets = false +csharp_space_between_method_call_empty_parameter_list_parentheses = true +csharp_space_between_method_call_name_and_opening_parenthesis = false +csharp_space_between_method_call_parameter_list_parentheses = true +csharp_space_between_method_declaration_empty_parameter_list_parentheses = true +csharp_space_between_method_declaration_name_and_open_parenthesis = false +csharp_space_between_method_declaration_parameter_list_parentheses = true +csharp_space_between_parentheses = expressions,control_flow_statements +csharp_space_between_square_brackets = false + +# Wrapping preferences +csharp_preserve_single_line_blocks = true +csharp_preserve_single_line_statements = true + +#### Naming styles #### + +# Naming rules + +dotnet_naming_rule.interface_should_be_begins_with_i.severity = suggestion +dotnet_naming_rule.interface_should_be_begins_with_i.symbols = interface +dotnet_naming_rule.interface_should_be_begins_with_i.style = begins_with_i + +dotnet_naming_rule.types_should_be_pascal_case.severity = suggestion +dotnet_naming_rule.types_should_be_pascal_case.symbols = types +dotnet_naming_rule.types_should_be_pascal_case.style = pascal_case + +dotnet_naming_rule.non_field_members_should_be_pascal_case.severity = suggestion +dotnet_naming_rule.non_field_members_should_be_pascal_case.symbols = non_field_members +dotnet_naming_rule.non_field_members_should_be_pascal_case.style = pascal_case + +# Symbol specifications + +dotnet_naming_symbols.interface.applicable_kinds = interface +dotnet_naming_symbols.interface.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected +dotnet_naming_symbols.interface.required_modifiers = + +dotnet_naming_symbols.types.applicable_kinds = class, struct, interface, enum +dotnet_naming_symbols.types.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected +dotnet_naming_symbols.types.required_modifiers = + +dotnet_naming_symbols.non_field_members.applicable_kinds = property, event, method +dotnet_naming_symbols.non_field_members.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected +dotnet_naming_symbols.non_field_members.required_modifiers = + +# Naming styles + +dotnet_naming_style.pascal_case.required_prefix = +dotnet_naming_style.pascal_case.required_suffix = +dotnet_naming_style.pascal_case.word_separator = +dotnet_naming_style.pascal_case.capitalization = pascal_case + +dotnet_naming_style.begins_with_i.required_prefix = I +dotnet_naming_style.begins_with_i.required_suffix = +dotnet_naming_style.begins_with_i.word_separator = +dotnet_naming_style.begins_with_i.capitalization = pascal_case diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3a51714 --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +.* +!.gitignore +!.editorconfig +appsettings.json +bin/ +obj/ diff --git a/Api/RepositoryApi.cs b/Api/RepositoryApi.cs new file mode 100644 index 0000000..20b5284 --- /dev/null +++ b/Api/RepositoryApi.cs @@ -0,0 +1,180 @@ +using BitMiracle.LibTiff.Classic; +using Microsoft.AspNetCore.Mvc; +using SkiaSharp; +using System.Buffers.Text; +using Microsoft.Data.SqlClient; +using System.IO; + +namespace Library.Api; + +[Route( "Api/Repository/[action]/{id?}" )] +public class RepositoryApi : APIController +{ + public RepositoryApi( ILogger logger , IConfiguration configuration ) + : base( logger , configuration ) + { + } + + [HttpPost] + [DisableRequestSizeLimit] + public IActionResult UploadCoverImage( int id , List? file ) + { + Trace( "/Api/Repository/UploadCoverImage" ); + if ( file == null || file.Count <= 0 ) + return Error( "Missing file" ); + + using SKBitmap? bitmap = PreprocessImage( file[0] ); + if ( bitmap == null ) + return Error( "Invalid image" ); + + SqlDataReader reader = PrepareSQL(@"update gnm set uuid = REPLACE(NEWID( ),'-',''),data_format='jpg' OUTPUT INSERTED.uuid WHERE id = @id") + .AddParameter( "@id" , id ) + .ExecuteReader( ); + + if ( !reader.Read( ) ) + return Error( "No such book!" ); + + string? new_uuid = reader.String( 0 ); + if ( string.IsNullOrEmpty( new_uuid ) ) + return Error( "No such book!" ); + + string original = GetDataDirectory( ) + new_uuid + ".jpg"; + + using SKData bitmap_data = bitmap.Encode( SKEncodedImageFormat.Jpeg , 80 ); + byte [] bitmap_data_array = bitmap_data.ToArray( ); + System.IO.File.WriteAllBytes( original , bitmap_data_array ); + + return Success( new_uuid ); + } + + [HttpPost] + [DisableRequestSizeLimit] + public IActionResult UploadPDFAttachment( int id , List? file ) + { + Trace( "/Api/Repository/UploadPDFAttachment" ); + if ( file == null || file.Count <= 0 ) + return Error( "Missing file" ); + + byte [] ? pdf_data_array = PreprocessPDF( file[0] ); + if ( pdf_data_array == null ) + return Error( "Invalid file" ); + + SqlDataReader reader = PrepareSQL(@"update gnm_rec set uuid = REPLACE(NEWID( ),'-',''),data_format='pdf' OUTPUT INSERTED.uuid WHERE id = @id") + .AddParameter( "@id" , id ) + .ExecuteReader( ); + + if ( !reader.Read( ) ) + return Error( "No such attachment!" ); + + string? new_uuid = reader.String( 0 ); + if ( string.IsNullOrEmpty( new_uuid ) ) + return Error( "No such attachment!" ); + + string original = GetDataDirectory( ) + new_uuid + ".pdf"; + System.IO.File.WriteAllBytes( original , pdf_data_array ); + + return Success( new_uuid ); + } + + [HttpPost] + [DisableRequestSizeLimit] + public IActionResult UploadImageAttachment( int id , List? file ) + { + Trace( "/Api/Repository/UploadImageAttachment" ); + if ( file == null || file.Count <= 0 ) + return Error( "Missing file" ); + + using SKBitmap? bitmap = PreprocessImage( file[0] ); + if ( bitmap == null ) + return Error( "Invalid image" ); + + SqlDataReader reader = PrepareSQL(@"update gnm_rec set uuid = REPLACE(NEWID( ),'-',''),data_format='jpg' OUTPUT INSERTED.uuid WHERE id = @id") + .AddParameter( "@id" , id ) + .ExecuteReader( ); + + if ( !reader.Read( ) ) + return Error( "No such attachment!" ); + + string? new_uuid = reader.String( 0 ); + if ( string.IsNullOrEmpty( new_uuid ) ) + return Error( "No such attachment!" ); + + string original = GetDataDirectory( ) + new_uuid + ".jpg"; + + using SKData bitmap_data = bitmap.Encode( SKEncodedImageFormat.Jpeg , 80 ); + byte [] bitmap_data_array = bitmap_data.ToArray( ); + System.IO.File.WriteAllBytes( original , bitmap_data_array ); + + return Success( new_uuid ); + } + + + private static SKBitmap? PreprocessImage( IFormFile form_file ) + { + SKBitmap? bitmap = SKBitmap.Decode( form_file.OpenReadStream( ) ); + if ( bitmap == null ) + { + bitmap = ConvertTiffToSKBitmap( form_file.OpenReadStream( ) ); + if ( bitmap == null ) + return null; + } + + if ( bitmap!.IsEmpty || bitmap.IsNull || bitmap.Width < 16 || bitmap.Height < 16 ) + return null; + + return bitmap; + } + + private static byte[]? PreprocessPDF( IFormFile form_file ) + { + using MemoryStream file_contents = new( ); + form_file.CopyTo( file_contents ); + + byte[] file_bytes = file_contents.ToArray( ); + if ( file_bytes.Length < 10 ) + return null; + + if ( file_bytes[0] != (byte)'%' || file_bytes[1] != (byte)'P' || file_bytes[2] != 'D' || file_bytes[3] != 'F' ) + return null; + + + return file_bytes; + } + + public static SKBitmap? ConvertTiffToSKBitmap( Stream tifImage ) + { + SKColor[] pixels; + int width, height; + // open a Tiff stored in the memory stream, and grab its pixels + using ( Tiff tifImg = Tiff.ClientOpen( "in-memory" , "r" , tifImage , new TiffStream( ) ) ) + { + FieldValue[] value = tifImg.GetField(TiffTag.IMAGEWIDTH); + width = value[0].ToInt( ); + + value = tifImg.GetField( TiffTag.IMAGELENGTH ); + height = value[0].ToInt( ); + + // Read the image into the memory buffer + int[] raster = new int[width * height]; + if ( !tifImg.ReadRGBAImageOriented( width , height , raster , Orientation.TOPLEFT ) ) + { + // Not a valid TIF image. + } + // store the pixels + pixels = new SKColor[width * height]; + for ( int y = 0 ; y < height ; y++ ) + { + for ( int x = 0 ; x < width ; x++ ) + { + int arrayOffset = y * width + x; + int rgba = raster[arrayOffset]; + pixels[arrayOffset] = new SKColor( (byte)Tiff.GetR( rgba ) , (byte)Tiff.GetG( rgba ) , (byte)Tiff.GetB( rgba ) , (byte)Tiff.GetA( rgba ) ); + } + } + } + + return new SKBitmap( width , height ) { + Pixels = pixels + }; + } +} diff --git a/Api/UploadApi.cs b/Api/UploadApi.cs new file mode 100644 index 0000000..0f67535 --- /dev/null +++ b/Api/UploadApi.cs @@ -0,0 +1,276 @@ +using BitMiracle.LibTiff.Classic; +using Microsoft.AspNetCore.Mvc; +using SkiaSharp; +using Microsoft.Data.SqlClient; + +namespace Library.Api; + +[Route( "Api/Upload/[action]/{id?}" )] +public class UploadApi : APIController +{ + private readonly string m_TempDirectory; + + public UploadApi( ILogger logger , IConfiguration configuration ) + : base( logger , configuration ) + { + m_TempDirectory = configuration.GetValue( "TempDirectory" ) ?? string.Empty; + } + + [HttpPost] + public IActionResult StartUpload( ) + { + Trace( "/Api/Repository/StartUpload" ); + string session = Guid.NewGuid( ).ToString( ).Replace( "-" , null ); + using FileStream stream = new( m_TempDirectory + session! , FileMode.CreateNew , FileAccess.Write , FileShare.None ); + return Success( session! ); + } + + [HttpPost] + public IActionResult UploadChunk( string? session , string? payload , long offset ) + { + if ( session == null ) + return Error( "Invalid call. (session)" ); + + if ( !ValidateOffset( session , offset ) ) + return Error( "Invalid call. (Bad offset)" ); + + byte[]? bytes = Base64DecodeSafe( payload ); + if ( bytes == null ) + return Error( "Invalid call. (Bad payload)" ); + + using FileStream stream = new( m_TempDirectory + session! , FileMode.Append , FileAccess.Write , FileShare.None ); + stream.Write( bytes , 0 , bytes.Length ); + return Success( "OK" ); + } + + private static byte[]? PreprocessMP4( string form_file ) + { + byte[] file_bytes = System.IO.File.ReadAllBytes( form_file ); + if ( file_bytes.Length < 100 ) + return null; + + return file_bytes; + } + + [HttpPost] + public IActionResult SaveMP4Attachment( string? session , long offset , int id ) + { + if ( session == null ) + return Error( "Invalid call. (Invalid parameters)" ); + + /* if ( !ValidateOffset( session , offset ) ) + return Error( "Invalid call. (Bad offset)" ); + */ + byte [] ? pdf_data_array = PreprocessMP4( m_TempDirectory + session! ); + if ( pdf_data_array == null ) + return Error( "Invalid file" ); + + SqlDataReader reader = PrepareSQL(@"update gnm_rec set uuid = REPLACE(NEWID( ),'-',''),data_format='mp4' OUTPUT INSERTED.uuid WHERE id = @id") + .AddParameter( "@id" , id ) + .ExecuteReader( ); + + if ( !reader.Read( ) ) + return Error( "No such attachment!" ); + + string? new_uuid = reader.String( 0 ); + if ( string.IsNullOrEmpty( new_uuid ) ) + return Error( "No such attachment!" ); + + string original = GetDataDirectory( ) + new_uuid + ".mp4"; + System.IO.File.WriteAllBytes( original , pdf_data_array ); + + return Success( new_uuid ); + } + + [HttpPost] + public IActionResult SaveCoverImage( string? session , long offset , int id ) + { + if ( session == null ) + return Error( "Invalid call. (Invalid parameters)" ); + + if ( !ValidateOffset( session , offset ) ) + return Error( "Invalid call. (Bad offset)" ); + + using SKBitmap? bitmap = PreprocessImage( m_TempDirectory + session! ); + if ( bitmap == null ) + return Error( "Invalid image" ); + + SqlDataReader reader = PrepareSQL(@"update gnm set uuid = REPLACE(NEWID( ),'-',''),data_format='jpg' OUTPUT INSERTED.uuid WHERE id = @id") + .AddParameter( "@id" , id ) + .ExecuteReader( ); + + if ( !reader.Read( ) ) + return Error( "No such book!" ); + + string? new_uuid = reader.String( 0 ); + if ( string.IsNullOrEmpty( new_uuid ) ) + return Error( "No such book!" ); + + string original = GetDataDirectory( ) + new_uuid + ".jpg"; + + using SKData bitmap_data = bitmap.Encode( SKEncodedImageFormat.Jpeg , 80 ); + byte [] bitmap_data_array = bitmap_data.ToArray( ); + System.IO.File.WriteAllBytes( original , bitmap_data_array ); + + return Success( new_uuid ); + } + + [HttpPost] + public IActionResult SavePDFAttachment( string? session , long offset , int id ) + { + if ( session == null ) + return Error( "Invalid call. (Invalid parameters)" ); + + if ( !ValidateOffset( session , offset ) ) + return Error( "Invalid call. (Bad offset)" ); + + byte [] ? pdf_data_array = PreprocessPDF( m_TempDirectory + session! ); + if ( pdf_data_array == null ) + return Error( "Invalid file" ); + + SqlDataReader reader = PrepareSQL(@"update gnm_rec set uuid = REPLACE(NEWID( ),'-',''),data_format='pdf' OUTPUT INSERTED.uuid WHERE id = @id") + .AddParameter( "@id" , id ) + .ExecuteReader( ); + + if ( !reader.Read( ) ) + return Error( "No such attachment!" ); + + string? new_uuid = reader.String( 0 ); + if ( string.IsNullOrEmpty( new_uuid ) ) + return Error( "No such attachment!" ); + + string original = GetDataDirectory( ) + new_uuid + ".pdf"; + System.IO.File.WriteAllBytes( original , pdf_data_array ); + + return Success( new_uuid ); + } + + [HttpPost] + public IActionResult SaveImageAttachment( string? session , long offset , int id ) + { + if ( session == null ) + return Error( "Invalid call. (Invalid parameters)" ); + + if ( !ValidateOffset( session , offset ) ) + return Error( "Invalid call. (Bad offset)" ); + + using SKBitmap? bitmap = PreprocessImage( m_TempDirectory + session! ); + if ( bitmap == null ) + return Error( "Invalid image" ); + + SqlDataReader reader = PrepareSQL(@"update gnm_rec set uuid = REPLACE(NEWID( ),'-',''),data_format='jpg' OUTPUT INSERTED.uuid WHERE id = @id") + .AddParameter( "@id" , id ) + .ExecuteReader( ); + + if ( !reader.Read( ) ) + return Error( "No such attachment!" ); + + string? new_uuid = reader.String( 0 ); + if ( string.IsNullOrEmpty( new_uuid ) ) + return Error( "No such attachment!" ); + + string original = GetDataDirectory( ) + new_uuid + ".jpg"; + + using SKData bitmap_data = bitmap.Encode( SKEncodedImageFormat.Jpeg , 80 ); + byte [] bitmap_data_array = bitmap_data.ToArray( ); + System.IO.File.WriteAllBytes( original , bitmap_data_array ); + + return Success( new_uuid ); + } + + private static byte[]? Base64DecodeSafe( string? b ) + { + if ( b == null ) + return null; + + try + { + return Convert.FromBase64String( b! ); + } + catch ( Exception ) + { + } + + return null; + } + + private bool ValidateOffset( string session , long expected ) + { + try + { + FileInfo fi = new( m_TempDirectory + session ); + return fi.Length == expected; + } + catch ( Exception ) + { + } + + return false; + } + + private static SKBitmap? PreprocessImage( string local_file ) + { + SKBitmap? bitmap = SKBitmap.Decode( local_file ); + if ( bitmap == null ) + { + bitmap = ConvertTiffToSKBitmap( local_file ); + if ( bitmap == null ) + return null; + } + + if ( bitmap!.IsEmpty || bitmap.IsNull || bitmap.Width < 16 || bitmap.Height < 16 ) + return null; + + return bitmap; + } + + private static SKBitmap? ConvertTiffToSKBitmap( string local_file ) + { + SKColor[] pixels; + int width, height; + // open a Tiff stored in the memory stream, and grab its pixels + using ( Tiff tifImg = Tiff.ClientOpen( local_file , "r" , null , new TiffStream( ) ) ) + { + FieldValue[] value = tifImg.GetField(TiffTag.IMAGEWIDTH); + width = value[0].ToInt( ); + + value = tifImg.GetField( TiffTag.IMAGELENGTH ); + height = value[0].ToInt( ); + + // Read the image into the memory buffer + int[] raster = new int[width * height]; + if ( !tifImg.ReadRGBAImageOriented( width , height , raster , Orientation.TOPLEFT ) ) + { + // Not a valid TIF image. + } + // store the pixels + pixels = new SKColor[width * height]; + for ( int y = 0 ; y < height ; y++ ) + { + for ( int x = 0 ; x < width ; x++ ) + { + int arrayOffset = y * width + x; + int rgba = raster[arrayOffset]; + pixels[arrayOffset] = new SKColor( (byte)Tiff.GetR( rgba ) , (byte)Tiff.GetG( rgba ) , (byte)Tiff.GetB( rgba ) , (byte)Tiff.GetA( rgba ) ); + } + } + } + + return new SKBitmap( width , height ) + { + Pixels = pixels + }; + } + + private static byte[]? PreprocessPDF( string form_file ) + { + byte[] file_bytes = System.IO.File.ReadAllBytes( form_file ); + if ( file_bytes.Length < 10 ) + return null; + + if ( file_bytes[0] != (byte)'%' || file_bytes[1] != (byte)'P' || file_bytes[2] != 'D' || file_bytes[3] != 'F' ) + return null; + + return file_bytes; + } +} diff --git a/Api/UserApi.cs b/Api/UserApi.cs new file mode 100644 index 0000000..f80d026 --- /dev/null +++ b/Api/UserApi.cs @@ -0,0 +1,178 @@ +using Microsoft.AspNetCore.Mvc; + +namespace Library.Api; + +[Route( "Api/User/[action]/{id?}" )] +public class UserApi : APIController +{ + public UserApi( ILogger logger , IConfiguration configuration ) + : base( logger , configuration ) + { + } + + [HttpPost] + public IActionResult Login( string username , string password ) + { + Trace( "/UserAPI/Login" ); + + string? session_id = PrepareSQL( "EXECUTE [usp_user_login] @user , @pass" ) + .AddParameter( "@user" , username ) + .AddParameter( "@pass" , password ) + .ReadSingleString( ); + + if ( string.IsNullOrWhiteSpace( session_id ) ) + return Error( "Невалидно потребителско име/парола" ); + + SessionStart( session_id ); + + return Success( session_id ); + } + + [HttpPost] + public IActionResult EditDetails( int id , string? name , string? email ) + { + Trace( "/UserAPI/EditDetails" ); + + AssertID( id ); + AssertParameter( name , 2 ); + AssertEmail( email , false ); + AssertLogin( null ); + + if ( id != GetUserData( )!.ID && !GetUserData( )!.IsAdmin ) + return Error( "Access denied" ); + + if ( email == null ) + { + PrepareSQL( "UPDATE [dom] SET [ime]=@name WHERE id=@id" ) + .AddParameter( "@name" , name ) + .AddParameter( "@id" , id ) + .ExecuteNonQuery( ); + } + else + { + PrepareSQL( "UPDATE [dom] SET [ime]=@name,[mail]=@email WHERE id=@id" ) + .AddParameter( "@name" , name ) + .AddParameter( "@email" , email ) + .AddParameter( "@id" , id ) + .ExecuteNonQuery( ); + } + + return Success( ); + } + + [HttpPost] + public IActionResult EditPassword( int id , string? password ) + { + Trace( "/UserAPI/EditPassword" ); + + AssertID( id ); + AssertParameter( password , 5 ); + AssertLogin( null ); + + if ( id != GetUserData( )!.ID && !GetUserData( )!.IsAdmin ) + return Error( "Access denied" ); + + PrepareSQL( "UPDATE [dom] SET [prl] = @new_pass WHERE id=@id" ) + .AddParameter( "@new_pass" , password ) + .AddParameter( "@id" , id ) + .ExecuteNonQuery( ); + + return Success( ); + } + + [HttpGet] + public IActionResult Activate( int id ) + { + Trace( "/UserAPI/Activate" ); + + AssertID( id ); + AssertAdmin( ); + + PrepareSQL( "UPDATE [dom] SET [is_active]=1 WHERE id=@id" ) + .AddParameter( "@id" , id ) + .ExecuteNonQuery( ); + + return Success( ); + } + + [HttpGet] + public IActionResult Deactivate( int id ) + { + Trace( "/UserAPI/Deactivate" ); + + AssertID( id ); + AssertAdmin( ); + + if ( id == GetUserData( )!.ID ) + return Error( "Не може да деактивирате себе си!" ); + + PrepareSQL( "UPDATE [dom] SET [is_active]=0 WHERE id=@id" ) + .AddParameter( "@id" , id ) + .ExecuteNonQuery( ); + + return Success( ); + } + + [HttpPost] + public IActionResult Register( string? username , string? password , string? name ) + { + Trace( "/UserAPI/Register" ); + + AssertEmail( username , true ); + AssertParameter( password , 5 ); + AssertParameter( name , 2 ); + + string? new_user_id = PrepareSQL( "INSERT INTO [dom] ([mail],[prl],[ime]) OUTPUT INSERTED.id VALUES (@user,@pass,@name)" ) + .AddParameter( "@user" , username ) + .AddParameter( "@pass" , password ) + .AddParameter( "@name" , name ) + .ReadSingleString( ); + + if ( new_user_id == null ) + return Error( "Емайл адреса вече е регистриран" ); + + string? session_id = PrepareSQL( "EXECUTE [usp_user_login] @user , @pass" ) + .AddParameter( "@user" , username ) + .AddParameter( "@pass" , password ) + .ReadSingleString( ); + + if ( session_id == null ) + return Error( "Емайл адреса вече е регистриран" ); + + SessionStart( session_id ); + + return Success( session_id ); + } + + [HttpPost] + public IActionResult Forgot( string ? username ) + { + Trace( "/UserAPI/Forgot" ); + + AssertEmail( username , true ); + + string? password = PrepareSQL( "SELECT [prl] FROM [dom] WHERE [mail]=@user" ) + .AddParameter( "@user" , username ) + .ReadSingleString( ); + + if ( string.IsNullOrWhiteSpace( password ) ) + return Error( "Невалидно потребителско име" ); + + return Error( "Тук се очаква да се изпрати код за ресет на мейла. Засега ето това е паролата: " + password ); + } + + [HttpGet] + public IActionResult Logout( ) + { + Trace( "/UserAPI/Logout" ); + + if ( GetUserData( ) != null ) + { + PrepareSQL( "EXECUTE [usp_user_logout] @session_id" ) + .AddParameter( "@session_id" , GetUserData( )!.SessionID ) + .ExecuteNonQuery( ); + } + SessionCancel( ); + return Success( "1" ); + } +} diff --git a/App_Code/ContextExtensions.cs b/App_Code/ContextExtensions.cs new file mode 100644 index 0000000..d8acb33 --- /dev/null +++ b/App_Code/ContextExtensions.cs @@ -0,0 +1,41 @@ +namespace Library; +public static class ContextExtensions +{ + public static void SetUserID( this HttpContext context , int id ) + { + context.Items.Add( "CONTEXT_USER_ID" , id ); + } + + public static int GetUserID( this HttpContext context ) + { + if ( !context.Items.TryGetValue( "CONTEXT_USER_ID" , out object? value ) ) + return 0; + + if ( value == null ) + return 0; + + if ( value is int v ) + return v; + + return 0; + } + + public static void SetSystemAdmin( this HttpContext context , bool is_admin ) + { + context.Items.Add( "CONTEXT_IS_ADMIN" , is_admin ); + } + + public static bool IsSystemAdmin( this HttpContext context ) + { + if ( !context.Items.TryGetValue( "CONTEXT_IS_ADMIN" , out object? value ) ) + return false; + + if ( value == null ) + return false; + + if ( value is bool v ) + return v; + + return false; + } +} \ No newline at end of file diff --git a/App_Code/Controller/APIController.cs b/App_Code/Controller/APIController.cs new file mode 100644 index 0000000..63fef4f --- /dev/null +++ b/App_Code/Controller/APIController.cs @@ -0,0 +1,94 @@ +using Microsoft.AspNetCore.Mvc; +using System.Text; +using System.Text.Json; + +namespace Library; + +public class APIController : AbstractController +{ + protected APIController( ILogger logger , IConfiguration configuration ) + : base( logger , configuration ) + { + } + + protected void AssertID( int value ) + { + if ( value <= 0 ) + throw new APIErrorException( "Invalid id parameter" ); + } + + protected void AssertParameter( int value , int min_value ) + { + if ( value < min_value ) + throw new APIErrorException( "Invalid int parameter" ); + } + + protected void AssertParameter( string? value , int min_length ) + { + if ( !ValidateString( value , min_length ) ) + throw new APIErrorException( "Invalid string parameter" ); + } + + protected void AssertURL( string? value , bool mandatory ) + { + if ( !ValidateURL( value , mandatory ) ) + throw new APIErrorException( "Invalid url parameter" ); + } + + protected void AssertEmail( string? value , bool mandatory ) + { + if ( !ValidateEmail( value , mandatory ) ) + throw new APIErrorException( "Invalid email parameter" ); + } + + protected override void OnInvalidLogin( ) + { + throw new APIErrorException( "Access denied." ); + } + + protected override void OnInvalidAdminLogin( ) + { + throw new APIErrorException( "Access denied (admin)." ); + } + + protected ContentResult Error( string message ) + { + using MemoryStream stream = new( ); + + using Utf8JsonWriter writer = new( stream ); + writer.WriteStartObject( ); + writer.WriteBoolean( "Success" , false ); + writer.WriteString( "ErrorMessage" , message ); + writer.WriteEndObject( ); + writer.Dispose( ); + + return new ContentResult( ) + { + ContentType = System.Net.Mime.MediaTypeNames.Application.Json , + Content = Encoding.UTF8.GetString( stream.ToArray( ) ) + }; + } + + protected ContentResult Success( ) + { + return Success( "true" ); + } + + protected ContentResult Success( string data ) + { + using MemoryStream stream = new( ); + + using Utf8JsonWriter writer = new( stream ); + writer.WriteStartObject( ); + writer.WriteBoolean( "Success" , true ); + writer.WriteString( "Result" , data ); + writer.WriteEndObject( ); + writer.Dispose( ); + + return new ContentResult( ) + { + ContentType = System.Net.Mime.MediaTypeNames.Application.Json , + Content = Encoding.UTF8.GetString( stream.ToArray( ) ) + }; + } +} \ No newline at end of file diff --git a/App_Code/Controller/AbstractController.cs b/App_Code/Controller/AbstractController.cs new file mode 100644 index 0000000..45730bd --- /dev/null +++ b/App_Code/Controller/AbstractController.cs @@ -0,0 +1,202 @@ +using Microsoft.AspNetCore.Mvc; +using Microsoft.Data.SqlClient; +using System.Text.RegularExpressions; + +namespace Library; + +public abstract class AbstractController : Controller +{ + private const string SESSION_COOKIE_NAME = "X-VTU"; + + private readonly ILogger m_Logger; + private readonly IConfiguration m_Configuration; + private readonly string m_DataDirectory = string.Empty; + + protected AbstractController( ILogger logger , IConfiguration configuration ) + { + m_Logger = logger; + m_Configuration = configuration; + m_DataDirectory = configuration.GetValue( "DataDirectory" ) ?? string.Empty; + } + + protected string GetDataDirectory( ) + { + return m_DataDirectory; + } + + protected void Trace( string function ) + { +#pragma warning disable CA2254 // Template should be a static expression + m_Logger.Log( LogLevel.Trace , function + " called" ); +#pragma warning restore CA2254 // Template should be a static expression + } + + private SqlConnection? m_DBConnection = null; + protected SqlConnection GetDBConnection( ) + { + if ( m_DBConnection == null ) + { + try + { + m_DBConnection = new SqlConnection( m_Configuration.GetValue( "ConnectionString" ) ); + m_DBConnection.Open( ); + HttpContext.Response.RegisterForDispose( m_DBConnection ); + } + catch ( SqlException ) + { + if ( m_DBConnection != null ) + { + m_DBConnection.Dispose( ); + m_DBConnection = null; + } + throw; + } + } + + return m_DBConnection; + } + + protected void SessionStart( string session_id ) + { + CookieOptions cookieOptions = new( ) + { + Secure = false, // only when HTTPS + HttpOnly = true, + IsEssential = true, + }; + Response.Cookies.Append( SESSION_COOKIE_NAME , session_id , cookieOptions ); + } + + protected void SessionCancel( ) + { + Response.Cookies.Delete( SESSION_COOKIE_NAME ); + } + + protected string? GetSessionKey( ) + { + if ( !Request.Cookies.TryGetValue( SESSION_COOKIE_NAME , out string? session_id ) || string.IsNullOrEmpty( session_id ) ) + return null; + return session_id; + } + + private UserData? m_CurrentUser = null; + private bool m_bUserValidated = false; + protected UserData? GetUserData( ) + { + if ( m_bUserValidated ) + return m_CurrentUser; + + m_bUserValidated = true; + + if ( m_CurrentUser != null ) + return m_CurrentUser; + + string? session_id = GetSessionKey( ); + if ( session_id == null ) + return null; + + m_CurrentUser = UserData.FromSession( GetDBConnection( ) , session_id! ); + if ( m_CurrentUser == null ) + return null; + + HttpContext.SetUserID( m_CurrentUser!.ID ); + HttpContext.Items.Add( "CONTEXT_IS_ADMIN" , m_CurrentUser?.IsAdmin ?? false ); + + return m_CurrentUser; + } + + protected SQLBuilder PrepareSQL( string query , string? order_by = null ) + { + return new SQLBuilder( GetDBConnection( ) , query , order_by ); + } + + protected void AssertLogin( string? id ) + { + string? session_id = GetSessionKey( ); + if ( session_id != null ) + { + string? sql = + @"select rec.idgnm, gnm.idlis1, lis.ime, c.* + from gnm_rec rec + left join gnm on gnm.id = rec.idgnm + left join lis on lis.id = gnm.idlis1 + left join tbl_cross c on + c.id1 = (select top 1 iddom from livelog where id_session = @session_id) + and c.id2 = gnm.idlis1 + where rec.uuid = @id + and c.id is not null"; + SqlDataReader reader_x = PrepareSQL( sql ) + .AddParameter( "@id" , id ) + .AddParameter( "@session_id" , session_id ) + .ExecuteReader( ); + bool res_x = reader_x.Read( ); + reader_x.Close( ); + + if ( res_x == false ) + OnInvalidLogin( ); + } + else + { + if ( id == null ) + { + if ( GetUserData( ) == null ) + OnInvalidLogin( ); + } + else + { + if ( GetUserData( ) != null ) + return; + + SqlDataReader reader = PrepareSQL( @"SELECT gnm.access FROM gnm_rec left join gnm on gnm.id = gnm_rec.idgnm WHERE gnm.access is not null and gnm_rec.uuid = @uuid and gnm_rec.data_format = 'pdf'" ) + .AddParameter( "@uuid" , id ) + .ExecuteReader( ); + bool res = reader.Read( ); + reader.Close( ); + if ( res == true ) + OnInvalidLogin( ); + } + } + } + + protected void AssertAdmin( ) + { + if ( GetUserData( ) == null || GetUserData( )!.IsAdmin == false ) + OnInvalidLogin( ); + } + + protected abstract void OnInvalidLogin( ); + protected abstract void OnInvalidAdminLogin( ); + + protected bool ValidateString( string? parameter , int min_length ) + { + int length = parameter?.Length ?? 0; + return length >= min_length; + } + + private const string EMAIL_REGEX = @"^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$"; + protected bool ValidateEmail( string? email , bool required ) + { + return ValidateRegex( EMAIL_REGEX , email , required ); + } + + private const string URL_REGEX = @"(?i)(http(s)?:\/\/)?(\w{2,25}\.)+\w{3}([a-z0-9\-?=$-_.+!*()]+)(?i)"; + protected bool ValidateURL( string? email , bool required ) + { + return ValidateRegex( URL_REGEX , email , required ); + } + + protected bool ValidateRegex( string regex , string? value , bool is_required ) + { + if ( value == null ) + return is_required == false; + + try + { + return Regex.IsMatch( value! , regex , RegexOptions.IgnoreCase , TimeSpan.FromMilliseconds( 250 ) ); + } + catch ( RegexMatchTimeoutException ) + { + return false; + } + } +} \ No newline at end of file diff --git a/App_Code/Controller/PageController.cs b/App_Code/Controller/PageController.cs new file mode 100644 index 0000000..40035a7 --- /dev/null +++ b/App_Code/Controller/PageController.cs @@ -0,0 +1,43 @@ +using Microsoft.AspNetCore.Mvc; +using Library.Models; + +namespace Library; + +public class PageController : AbstractController +{ + protected PageController( ILogger logger , IConfiguration configuration ) + : base( logger , configuration ) + { + } + + protected IActionResult View( BasePageModel page_model ) + { + page_model.UserData = GetUserData( ); + return base.View( page_model ); + } + + protected IActionResult View( string view_name , BasePageModel page_model) + { + page_model.UserData = GetUserData( ); + return base.View( view_name , page_model ); + } + + protected override void OnInvalidLogin( ) + { + throw new ErrorException( "Access denied." ); + } + + protected override void OnInvalidAdminLogin( ) + { + throw new ErrorException( "Access denied." ); + } + + protected IActionResult RawText( string text ) + { + return new ContentResult( ) + { + ContentType = System.Net.Mime.MediaTypeNames.Text.Plain , + Content = text + }; + } +} \ No newline at end of file diff --git a/App_Code/Exceptions/APIErrorException.cs b/App_Code/Exceptions/APIErrorException.cs new file mode 100644 index 0000000..ca71a0b --- /dev/null +++ b/App_Code/Exceptions/APIErrorException.cs @@ -0,0 +1,16 @@ +namespace Library; + +public class APIErrorException : Exception +{ + private readonly string m_ErrorMessage; + + public APIErrorException( string message ) + { + m_ErrorMessage = message; + } + + public string ErrorMessage + { + get { return m_ErrorMessage; } + } +} \ No newline at end of file diff --git a/App_Code/Exceptions/ErrorException.cs b/App_Code/Exceptions/ErrorException.cs new file mode 100644 index 0000000..e9e1c91 --- /dev/null +++ b/App_Code/Exceptions/ErrorException.cs @@ -0,0 +1,16 @@ +namespace Library; + +public class ErrorException : Exception +{ + private readonly string m_ErrorMessage; + + public ErrorException( string message ) + { + m_ErrorMessage = message; + } + + public string ErrorMessage + { + get { return m_ErrorMessage; } + } +} \ No newline at end of file diff --git a/App_Code/Exceptions/ExceptionMiddleware.cs b/App_Code/Exceptions/ExceptionMiddleware.cs new file mode 100644 index 0000000..6065a03 --- /dev/null +++ b/App_Code/Exceptions/ExceptionMiddleware.cs @@ -0,0 +1,72 @@ +using Microsoft.AspNetCore.Http; +using System.Net; +using System.Text; +using System.Text.Json; + +namespace Library; + +public class ExceptionMiddleware +{ + private readonly RequestDelegate _next; + + public ExceptionMiddleware( RequestDelegate next ) + { + _next = next; + } + + public async Task InvokeAsync( HttpContext httpContext ) + { + try + { + await _next( httpContext ); + } + catch ( RedirectException exception ) + { + HandleExceptionAsync( httpContext , exception ); + } + catch ( ErrorException exception ) + { + await HandleErrorAsync( httpContext , exception ); + } + catch ( APIErrorException exception ) + { + await HandleApiErrorAsync( httpContext , exception ); + } + catch ( Exception exception ) + { + await HandleExceptionAsync( httpContext , exception ); + } + } + + private void HandleExceptionAsync( HttpContext context , RedirectException exception ) + { + context.Response.Redirect( exception.Destination ); + } + + private static Task HandleErrorAsync( HttpContext context , ErrorException exception ) + { + context.Response.StatusCode = 500; + return context.Response.WriteAsync( exception.ErrorMessage ); + } + private static Task HandleApiErrorAsync( HttpContext context , APIErrorException exception ) + { + using MemoryStream stream = new( ); + + using Utf8JsonWriter writer = new( stream ); + writer.WriteStartObject( ); + writer.WriteBoolean( "Success" , false ); + writer.WriteString( "ErrorMessage" , exception.ErrorMessage ); + writer.WriteEndObject( ); + writer.Dispose( ); + + context.Response.ContentType = System.Net.Mime.MediaTypeNames.Application.Json; + return context.Response.WriteAsync( Encoding.UTF8.GetString( stream.ToArray( ) ) ); + } + + private static Task HandleExceptionAsync( HttpContext context , Exception exception ) + { + context.Response.ContentType = System.Net.Mime.MediaTypeNames.Text.Plain; + context.Response.StatusCode = (int)HttpStatusCode.InternalServerError; + return context.Response.WriteAsync( exception.ToString( ) ); + } +} \ No newline at end of file diff --git a/App_Code/Exceptions/RedirectException.cs b/App_Code/Exceptions/RedirectException.cs new file mode 100644 index 0000000..1cc9de7 --- /dev/null +++ b/App_Code/Exceptions/RedirectException.cs @@ -0,0 +1,16 @@ +namespace Library; + +public class RedirectException : Exception +{ + private readonly string m_Destination; + + public RedirectException( string destination ) + { + m_Destination = destination; + } + + public string Destination + { + get { return m_Destination; } + } +} \ No newline at end of file diff --git a/App_Code/HtmlExtensions.cs b/App_Code/HtmlExtensions.cs new file mode 100644 index 0000000..8d2d750 --- /dev/null +++ b/App_Code/HtmlExtensions.cs @@ -0,0 +1,21 @@ +using Microsoft.AspNetCore.Mvc.Rendering; + +namespace Library; + +public static class HtmlExtensions +{ + public static string IsNull( this IHtmlHelper htmlHelper , object? attempt , string fallback ) + { + return htmlHelper.Encode( attempt?.ToString( ) ?? fallback ); + } + + public static string IF( this IHtmlHelper htmlHelper , bool test , string value ) + { + return htmlHelper.Encode( test ? value : "" ); + } + + public static string IIF( this IHtmlHelper htmlHelper , bool test , string value_1 , string value_2 ) + { + return htmlHelper.Encode( test ? value_1 : value_2 ); + } +}; diff --git a/App_Code/SQLBuilder.cs b/App_Code/SQLBuilder.cs new file mode 100644 index 0000000..6eeb2ac --- /dev/null +++ b/App_Code/SQLBuilder.cs @@ -0,0 +1,226 @@ +using Microsoft.Data.SqlClient; +using System.Text; +using System.Data; +using System.Data.SqlTypes; + +namespace Library; + +public class SQLBuilder +{ + private readonly SqlConnection m_DBConnection; + private readonly string m_BaseQuery; + private readonly string? m_OrderBy; + private List? m_Where; + private Dictionary? m_Parameters; + + private struct OutputParameter + { + public OutputParameter( string id , SqlDbType type ) + { + m_ID = id; + m_Parameter = new SqlParameter + { + ParameterName = id , + SqlDbType = type , + Direction = ParameterDirection.Output , + }; + } + + public string ID + { + get { return m_ID; } + } + + public SqlParameter Parameter + { + get { return m_Parameter; } + } + + private readonly string m_ID; + private readonly SqlParameter m_Parameter; + } + private List? m_OutputParameters; + + private int m_ItemsPerPage = 0; + private int m_CurrentPage = 0; + + public SQLBuilder( SqlConnection conn , string query , string? order_by = null ) + { + m_DBConnection = conn; + m_BaseQuery = query; + m_OrderBy = order_by; + } + + public SQLBuilder SetPaging( int page , int items_per_page ) + { + m_ItemsPerPage = items_per_page; + m_CurrentPage = page; + return this; + } + + public SQLBuilder AddWhere( string where ) + { + if ( m_Where == null ) + m_Where = new( ); + m_Where.Add( where ); + return this; + } + + public SQLBuilder AddClause( string where , string parameter , object value ) + { + AddWhere( where ); + AddParameter( parameter , value ); + return this; + } + + static private string StripVariable( string input ) + { + StringBuilder result = new( ); + foreach ( char c in input ) + if ( char.IsLetterOrDigit( c ) ) + result.Append( c ); + return result.ToString( ); + } + + public SQLBuilder AddLike( string column , string value ) + { + if ( value == null || value.Length <= 0 ) + return this; + + string[] parts = value.Split( ' ' , System.StringSplitOptions.RemoveEmptyEntries ); + if ( parts != null && parts.Length > 0 ) + { + int part_index = 0; + string variable_prefix = StripVariable( column ); + foreach ( string p in parts ) + { + string variable = "@" + variable_prefix + (++part_index).ToString( ) + "@"; + AddClause( column + " LIKE " + variable , variable , "%" + p + "%" ); + } + } + return this; + } + + public SQLBuilder AddParameter( string name , object? value ) + { + if ( m_Parameters == null ) + m_Parameters = new( ); + m_Parameters[name] = value; + return this; + } + + public SQLBuilder AddOutputParameter( string name , SqlDbType type ) + { + if ( m_OutputParameters == null ) + m_OutputParameters = new( ); + m_OutputParameters.Add( new OutputParameter( name , type ) ); + return this; + } + + public object? GetOutputParameter( string name ) + { + if ( m_OutputParameters == null ) + return null; + + foreach ( OutputParameter p in m_OutputParameters ) + { + if ( p.ID == name ) + return p.Parameter.Value; + } + + return null; + } + + public SqlCommand PrepareCommand( ) + { + string sql = m_BaseQuery; + if ( m_Where != null && m_Where.Count > 0 ) + { + sql += " WHERE ( " + m_Where[0] + " ) "; + for ( int x = 1 ; x < m_Where.Count ; x++ ) + sql += " AND ( " + m_Where[x] + " ) "; + } + if ( m_OrderBy != null ) + sql += " ORDER BY " + m_OrderBy; + + if ( m_ItemsPerPage > 0 ) + sql += " OFFSET " + ( m_CurrentPage * m_ItemsPerPage ).ToString( ) + " ROWS FETCH FIRST " + m_ItemsPerPage.ToString( ) + " ROWS ONLY"; + + SqlCommand command = new( sql , m_DBConnection ); + command.CommandType = CommandType.Text; + if ( m_Parameters != null ) + { + foreach ( var it in m_Parameters ) + { + if ( it.Value != null ) + command.Parameters.AddWithValue( it.Key , it.Value! ); + else + command.Parameters.AddWithValue( it.Key , System.DBNull.Value ); + } + } + + if ( m_OutputParameters != null ) + { + foreach ( var it in m_OutputParameters ) + command.Parameters.Add( it.Parameter ); + } + + return command; + } + + public SqlDataReader ExecuteReader( ) + { + return PrepareCommand( ).ExecuteReader( ); + } + + public int ExecuteNonQuery( ) + { + return PrepareCommand( ).ExecuteNonQuery( ); + } + public int ExecuteAndReadInteger( int on_error_value ) + { + using SqlDataReader reader = ExecuteReader( ); + if ( reader == null || !reader.Read( ) ) + return on_error_value; + + SqlInt32 value = reader.GetSqlInt32( 0 ); + if ( value.IsNull ) + return on_error_value; + + return value.Value; + } + + public int ReadSingleInteger( int on_error_value ) + { + using SqlDataReader reader = ExecuteReader( ); + if ( reader == null || !reader.Read( ) ) + return on_error_value; + + SqlInt32 value = reader.GetSqlInt32( 0 ); + if ( value.IsNull ) + return on_error_value; + + return value.Value; + } + + public string? ReadSingleStringUnsafe( ) + { + using SqlDataReader reader = ExecuteReader( ); + if ( reader == null || !reader.Read( ) ) + return null; + + return reader.String( 0 ); + } + + public string? ReadSingleString( ) + { + try + { + return ReadSingleStringUnsafe( ); + } + catch ( Exception ) + { + return null; + } + } +} \ No newline at end of file diff --git a/App_Code/SQLExtensions.cs b/App_Code/SQLExtensions.cs new file mode 100644 index 0000000..10591e1 --- /dev/null +++ b/App_Code/SQLExtensions.cs @@ -0,0 +1,154 @@ +using Microsoft.Data.SqlClient; +using System.Data.SqlTypes; + +namespace Library; + +public static class SQLExtensions +{ + public static string? String( this SqlDataReader reader , string column_id ) + { + int column_index = reader.FindColumn( column_id ); + if ( column_index < 0 ) + return null; + + return reader.String( column_index ); + } + + public static string? String( this SqlDataReader reader , int column_index ) + { + if ( reader.IsDBNull( column_index ) ) + return null; + + string? o = reader[ column_index ].ToString( ); + if ( o == null ) + return null; + + return o!; + } + + public static string StringSafe( this SqlDataReader reader , string column_id ) + { + int column_index = reader.FindColumn( column_id ); + if ( column_index < 0 ) + return ""; + + return reader.StringSafe( column_index ); + } + + public static string StringSafe( this SqlDataReader reader , int column_index ) + { + if ( reader.IsDBNull( column_index ) ) + return ""; + + string? o = reader[ column_index ].ToString( ); + if ( o == null ) return ""; + + return o!; + } + + public static DateTime DateTime( this SqlDataReader reader , string column_id ) + { + int column_index = reader.FindColumn( column_id ); + if ( column_index < 0 ) + return System.DateTime.MinValue; + + return reader.DateTime( column_index ); + } + + public static DateTime DateTime( this SqlDataReader reader , int column_index ) + { + object data_value = reader[ column_index ]; + if ( data_value is DateTime date_time_result ) + return date_time_result; + + return System.DateTime.MinValue; + } + + public static int Int( this SqlDataReader reader , string column_id , int fallback = 0 ) + { + int column_index = reader.FindColumn( column_id ); + if ( column_index < 0 ) + return fallback; + + return reader.Int( column_index , fallback ); + } + + public static int Int( this SqlDataReader reader , int column_index , int fallback = 0 ) + { + object data = reader[ column_index ]; + if ( data == null ) + return fallback; + + try + { + return Convert.ToInt32( data ); + } + catch + { + } + + if ( int.TryParse( data.ToString( ) , out int result ) ) + return result; + + return fallback; + } + + public static long Int64( this SqlDataReader reader , string column_id , long fallback ) + { + int column_index = reader.FindColumn( column_id ); + if ( column_index < 0 ) + return fallback; + + return reader.Int64( column_index , fallback ); + } + + public static long Int64( this SqlDataReader reader , int column_index , long fallback ) + { + object data = reader[ column_index ]; + if ( data == null ) + return fallback; + + try + { + return Convert.ToInt64( data ); + } + catch + { + } + + if ( long.TryParse( data.ToString( ) , out long result ) ) + return result; + + return fallback; + } + + public static decimal Numeric( this SqlDataReader reader , string column_id , decimal fallback ) + { + int column_index = reader.FindColumn( column_id ); + if ( column_index < 0 ) + return fallback; + + return reader.Numeric( column_index , fallback ); + } + + public static decimal Numeric( this SqlDataReader reader , int column_index , decimal fallback ) + { + SqlDecimal data = reader.GetSqlDecimal( column_index ); + if ( data.IsNull ) + return 0; + return data.Value; + } + + + public static int FindColumn( this SqlDataReader reader , string column_id ) + { + try + { + return reader.GetOrdinal( column_id ); + } + catch ( Exception ) + { + return -1; + } + } +} \ No newline at end of file diff --git a/App_Code/ViewScriptTagHelper.cs b/App_Code/ViewScriptTagHelper.cs new file mode 100644 index 0000000..6d635dc --- /dev/null +++ b/App_Code/ViewScriptTagHelper.cs @@ -0,0 +1,60 @@ +using Microsoft.AspNetCore.Mvc.Rendering; +using Microsoft.AspNetCore.Mvc.ViewFeatures; +using Microsoft.AspNetCore.Razor.TagHelpers; + +namespace Library; + +public class ViewScriptTagHelper : TagHelper +{ + private readonly IWebHostEnvironment environment; + private readonly IFileVersionProvider fileVersionProvider; + private const string AppendVersionAttributeName = "append-version"; + + public ViewScriptTagHelper( IWebHostEnvironment environment , IFileVersionProvider fileVersionProvider ) + { + this.environment = environment; + this.fileVersionProvider = fileVersionProvider; + } + + [ViewContext] + public ViewContext? ViewContext { get; set; } + + /// + /// Value indicating if file version should be appended to src urls. + /// + /// + /// A query string "v" with the encoded content of the file is added. + /// + [HtmlAttributeName( AppendVersionAttributeName )] + public bool? AppendVersion { get; set; } + + public override void Process( TagHelperContext context , TagHelperOutput output ) + { + // remove the `page-script` tag if script doesn't exist + output.TagName = null; + output.TagMode = TagMode.StartTagAndEndTag; + + var viewPath = ViewContext?.View.Path; + var src = $"{viewPath}.js"; + + /* When the app is published, the framework automatically moves the script to the web root. + So we should check both places, with the content root first for development */ + var fileInfo = environment.ContentRootFileProvider.GetFileInfo(src) ?? + environment.WebRootFileProvider.GetFileInfo(src); + + if ( fileInfo is { Exists: true } ) + { + // switch it to script now + output.TagName = "script"; + output.Content = new DefaultTagHelperContent( ); + + if ( AppendVersion == true ) + { + // people love their cache busting versions + src = fileVersionProvider.AddFileVersionToPath( src , src ); + } + + output.Attributes.Add( "src" , src ); + } + } +} diff --git a/Controllers/HomeController.cs b/Controllers/HomeController.cs new file mode 100644 index 0000000..4411b73 --- /dev/null +++ b/Controllers/HomeController.cs @@ -0,0 +1,65 @@ +using Microsoft.AspNetCore.Mvc; +using System.Diagnostics; +using Library.Models; + +namespace Library.Controllers; + +public class HomeController : PageController +{ + public HomeController( ILogger logger , IConfiguration configuration ) + : base( logger , configuration ) + { + } + + [Route( "" )] + [Route( "Home/Index" )] + public IActionResult Index( ) + { + Trace( "/Home/Index" ); + return View( new BasePageModel( GetDBConnection( ) ) ); + } + + [Route( "Login" )] + public IActionResult Login( ) + { + Trace( "/Home/Login" ); + return View( new BasePageModel( GetDBConnection( ) ) ); + } + + [Route( "Sitemap" )] + public IActionResult Sitemap( ) + { + Trace( "/Home/Sitemap" ); + return View( new BasePageModel( GetDBConnection( ) ) ); + } + + [Route( "Search" )] + public IActionResult Search( string q , int page ) + { + Trace( "/Home/Search" ); + return View( new SearchPageModel( GetDBConnection( ) , q , page ) ); + } + + [Route( "Repository" )] + [Route( "Repository/{id?}" )] + public IActionResult Repository( int id , int page ) + { + Trace( "/Home/Repository" ); + return View( new RepositoryPageModel( GetDBConnection( ) , id , page ) ); + } + + [Route( "Repository/Details" )] + [Route( "Repository/Details/{id?}" )] + public IActionResult RepositoryDetails( int id ) + { + Trace( "/Home/RepositoryDetails" ); + return View( new RepositoryDetailsPageModel( GetDBConnection( ) , id ) ); + } + + [ResponseCache( Duration = 0 , Location = ResponseCacheLocation.None , NoStore = true )] + public IActionResult Error( ) + { + Trace( "/Home/Error" ); + return View( new ErrorPageModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier } ); + } +} diff --git a/Controllers/RepositoryController.cs b/Controllers/RepositoryController.cs new file mode 100644 index 0000000..0319b85 --- /dev/null +++ b/Controllers/RepositoryController.cs @@ -0,0 +1,212 @@ +using Microsoft.AspNetCore.Mvc; +using Microsoft.Data.SqlClient; +using Docnet.Core; +using Docnet.Core.Models; +using Docnet.Core.Readers; +using SkiaSharp; +using System.Runtime.InteropServices; + +namespace Library.Controllers; + +public class RepositoryController : PageController +{ + public RepositoryController( ILogger logger , IConfiguration configuration ) + : base( logger , configuration ) + { + } + + public IActionResult Cover( string? id ) + { + Trace( "/Repository/Cover" ); + if ( id?.Length != 32 ) + return RawText( "No such cover!" ); + + using SqlDataReader reader = PrepareSQL( @"SELECT uuid,data_format FROM gnm WHERE uuid=@uuid" ) + .AddParameter( "@uuid" , id ) + .ExecuteReader( ); + + if ( !reader.Read( ) ) + return RawText( "No such cover!" ); + if ( System.IO.File.Exists( GetDataDirectory( ) + id + ".jpg" ) ) + { + byte [] bytes = System.IO.File.ReadAllBytes( GetDataDirectory( ) + id + ".jpg"); + HttpContext.Response.Headers.ContentDisposition = "inline;filename=" + id + ".jpg"; + return File( bytes , System.Net.Mime.MediaTypeNames.Image.Jpeg ); + } + return RawText( "No such cover!" ); + } + + public IActionResult Video( string? id ) + { + Trace( "/Repository/Video" ); + if ( id?.Length != 32 ) + return RawText( "No such video!" ); + + if ( GetUserData( ) != null && !GetUserData( )!.IsAdmin ) + { + SqlDataReader reader_u = PrepareSQL( @"update gnm_rec set cnt = isnull(cnt,0) + 1 where gnm_rec.uuid = @uuid") + .AddParameter( "@uuid" , id ) + .ExecuteReader( ); + reader_u.Close( ); + } + using SqlDataReader reader = PrepareSQL( @"SELECT uuid,data_format FROM gnm_rec WHERE uuid=@uuid and data_format='mp4'" ) + .AddParameter( "@uuid" , id ) + .ExecuteReader( ); + + if ( !reader.Read( ) ) + return RawText( "No such file!" ); + + byte [] bytes = System.IO.File.ReadAllBytes( GetDataDirectory( ) + id + ".mp4"); + + HttpContext.Response.Headers.ContentDisposition = "inline;filename=" + id + ".mp4"; + return File( bytes , "video/mp4" ); + } + + private string? ReadPDFTitle( string id ) + { + AssertLogin( id ); + if ( id.Length != 32 ) + return null; + + using SqlDataReader reader = PrepareSQL( @"SELECT gnm.ime FROM gnm_rec left join gnm on gnm.id = gnm_rec.idgnm WHERE gnm_rec.uuid = @uuid and gnm_rec.data_format = 'pdf'" ) + .AddParameter( "@uuid" , id ) + .ExecuteReader( ); + + if ( !reader.Read( ) ) + return null; + + return reader.String( 0 ); + } + + private byte[]? ReadPDFBytes( string id ) + { + // return System.IO.File.ReadAllBytes( "c:/Users/gbromov/Downloads/3950.pdf" ); + return System.IO.File.ReadAllBytes( GetDataDirectory( ) + id + ".pdf" ); + } + + private IActionResult RenderPDFPage( string id , int page , int width , int height ) + { + if ( ReadPDFTitle( id ) == null ) + return RawText( "No such file!" ); + + byte[]? bytes = ReadPDFBytes( id ); + if ( bytes == null ) + return RawText( "No such file!" ); + + using IDocReader doc_reader = DocLib.Instance.GetDocReader( bytes , new PageDimensions( width , height ) ); + + using IPageReader page_reader = doc_reader.GetPageReader( page ); + byte [] rgb_bytes = page_reader.GetImage( ); + width = page_reader.GetPageWidth( ); + height = page_reader.GetPageHeight( ); + + GCHandle data_handle = GCHandle.Alloc( rgb_bytes , GCHandleType.Pinned ); + SKImageInfo info = new( width , height , SKColorType.Bgra8888 , SKAlphaType.Unpremul ); + + using SKBitmap bitmap = new( ); + bitmap.InstallPixels( info , data_handle.AddrOfPinnedObject( ) , info.RowBytes , delegate { data_handle.Free( ); } , null ); + + using SKBitmap background = new( width , height , SKColorType.Bgra8888 , SKAlphaType.Opaque ); + background.Erase( new SKColor( 255 , 255 , 255 ) ); + + using SKCanvas canvas = new(background); + canvas.DrawBitmap( bitmap , 0 , 0 , SKSamplingOptions.Default ); + + using SKData bitmap_data = background.Encode( SKEncodedImageFormat.Jpeg , 80 ); + byte [] bitmap_data_array = bitmap_data.ToArray( ); + + return File( bitmap_data_array , System.Net.Mime.MediaTypeNames.Image.Jpeg ); + } + + [Route( "Repository/PDFPage/{id}/{page?}" )] + public IActionResult PDFPage( string id , int page = 0 ) + { + Trace( "/Repository/PDFPage" ); + return RenderPDFPage( id , page , 1080 , 1920 ); + } + + [Route( "Repository/PDFThumb/{id}/{page?}" )] + public IActionResult PDFThumb( string id , int page = 0 ) + { + Trace( "/Repository/PDFPage" ); + return RenderPDFPage( id , page , 135 , 240 ); + } + + [Route( "Repository/PDFView/{id}" )] + public IActionResult PDFView( string id ) + { + Trace( "/Repository/PDFView" ); + + string? pdf_title = ReadPDFTitle( id ); + if ( pdf_title == null ) + throw new RedirectException( "/" ); + + byte[]? bytes = ReadPDFBytes( id ); + if ( bytes == null ) + throw new RedirectException( "/" ); + + // if ( GetUserData( ) != null && !GetUserData( )!.IsAdmin ) --- è àäìèíà, è âñåêè ìîæå äà îòâàðÿ PDF --- increment counter + { + SqlDataReader reader_u = PrepareSQL( @"update gnm_rec set cnt = isnull(cnt,0) + 1 where gnm_rec.uuid = @uuid") + .AddParameter( "@uuid" , id ) + .ExecuteReader( ); + + reader_u.Close( ); + } + + using IDocReader doc_reader = DocLib.Instance.GetDocReader( bytes , new PageDimensions( 1080 , 1920 ) ); + int page_count = doc_reader.GetPageCount( ); + + return View( new Models.PDFViewModel( GetDBConnection( ) , id , page_count ) + { + Title = pdf_title + } ); + } + + public IActionResult PDF( string? id ) + { + Trace( "/Repository/PDF" ); + AssertLogin( id ); + + if ( id?.Length != 32 ) + return RawText( "No such file!" ); + + using SqlDataReader reader = PrepareSQL( @"SELECT gnm.access, gnm_rec.uuid, gnm_rec.data_format FROM gnm_rec left join gnm on gnm.id = gnm_rec.idgnm WHERE gnm_rec.uuid = @uuid and gnm_rec.data_format = 'pdf'" ) + .AddParameter( "@uuid" , id ) + .ExecuteReader( ); + + if ( !reader.Read( ) ) + return RawText( "No such file!" ); + + byte [] bytes = System.IO.File.ReadAllBytes( GetDataDirectory( ) + id + ".pdf"); + + HttpContext.Response.Headers.ContentDisposition = "inline;filename=" + id + ".pdf"; + return File( bytes , System.Net.Mime.MediaTypeNames.Application.Pdf ); + } + + public IActionResult Image( string? id ) + { + Trace( "/Repository/Image" ); + if ( id?.Length != 32 ) + return RawText( "No such image!" ); + + if ( GetUserData( ) != null && !GetUserData( )!.IsAdmin ) + { + SqlDataReader reader_u = PrepareSQL( @"update gnm_rec set cnt = isnull(cnt,0) + 1 where gnm_rec.uuid = @uuid") + .AddParameter( "@uuid" , id ) + .ExecuteReader( ); + reader_u.Close( ); + } + using SqlDataReader reader = PrepareSQL( @"SELECT uuid,data_format FROM gnm_rec WHERE uuid=@uuid and data_format='jpg'" ) + .AddParameter( "@uuid" , id ) + .ExecuteReader( ); + + if ( !reader.Read( ) ) + return RawText( "No such file!" ); + + byte [] bytes = System.IO.File.ReadAllBytes( GetDataDirectory( ) + id + ".jpg"); + + HttpContext.Response.Headers.ContentDisposition = "inline;filename=" + id + ".jpg"; + return File( bytes , System.Net.Mime.MediaTypeNames.Image.Jpeg ); + } +} \ No newline at end of file diff --git a/Data/AttachmentData.cs b/Data/AttachmentData.cs new file mode 100644 index 0000000..37b984b --- /dev/null +++ b/Data/AttachmentData.cs @@ -0,0 +1,37 @@ +using System.Collections.Generic; +using Microsoft.Data.SqlClient; + +namespace Library; + +public class AttachmentData +{ + public int ID { init; get; } = 0; + public string Title { init; get; } = null!; + public string? UUID { init; get; } = null; + public string? Link { init; get; } = null; + public string? Format { init; get; } = null; + + public static List GetList( SqlConnection connection , int repository_id ) + { + using SqlDataReader reader = new SQLBuilder( connection , "SELECT * FROM [v_attachment] WHERE repository_id = @repository_id" ) + .AddParameter( "@repository_id" , repository_id ) + .ExecuteReader( ); + + List result = new( ); + while ( reader.Read( ) ) + { + AttachmentData attachment = new( ) + { + ID = reader.Int( "id" ) , + UUID = reader.StringSafe( "uuid" ) , + Title = reader.StringSafe( "title" ) , + Link = reader.StringSafe( "link" ) , + Format = reader.String( "format" ) , + }; + result.Add( attachment ); + } + + return result; + } + +} diff --git a/Data/BookData.cs b/Data/BookData.cs new file mode 100644 index 0000000..33a180b --- /dev/null +++ b/Data/BookData.cs @@ -0,0 +1,94 @@ +using Microsoft.Data.SqlClient; + +namespace Library; + +public class BookData +{ + public int ID { init; get; } = 0; + public string UUID { init; get; } = ""; + + public int CategoryID { init; get; } = 0; + public string CategoryName { init; get; } = ""; + + public int BookTypeID { init; get; } = 0; + public string BookTypeName { init; get; } = ""; + + public string Title { init; get; } = ""; + public string Author { init; get; } = ""; + public string Access { init; get; } = ""; + public string Publisher { init; get; } = ""; + public string PublishYear { init; get; } = ""; + public string Keywords { init; get; } = ""; + public string Description { init; get; } = ""; + public DateTime CreateDate { init; get; } = DateTime.Now; + public string Opisanie { init; get; } = ""; + public string KodDrugi { init; get; } = ""; + + + public static BookData? WithID( SqlConnection connection , int id ) + { + using SqlDataReader reader = new SQLBuilder( connection , "SELECT * FROM v_repository WHERE id = @id" ) + .AddParameter( "@id" , id ) + .ExecuteReader( ); + + if ( !reader.Read( ) ) + return null; + + return new BookData( ) + { + ID = reader.Int( "id" ) , + UUID = reader.StringSafe( "uuid" ) , + CategoryID = reader.Int( "category_id" ) , + CategoryName = reader.StringSafe( "category_name" ) , + BookTypeID = reader.Int( "book_type_id" ) , + BookTypeName = reader.StringSafe( "book_type_name" ) , + Title = reader.StringSafe( "title" ) , + Author = reader.StringSafe( "author" ) , + Access = reader.StringSafe( "access" ) , + Publisher = reader.StringSafe( "publisher" ) , + PublishYear = reader.StringSafe( "publish_year" ) , + Keywords = reader.StringSafe( "keywords" ) , + Description = reader.StringSafe( "description" ) , + CreateDate = reader.DateTime( "create_date" ) , + Opisanie = reader.StringSafe( "opisanie" ) , + KodDrugi = reader.StringSafe( "koddrugi" ) , + }; + } +} +public class BookDataMini +{ + public int ID { init; get; } = 0; + public string UUID { init; get; } = ""; + + public int CategoryID { init; get; } = 0; + public string CategoryName { init; get; } = ""; + + public int BookTypeID { init; get; } = 0; + public string BookTypeName { init; get; } = ""; + + public string Title { init; get; } = ""; + public string Author { init; get; } = ""; + public string Access { init; get; } = ""; + public static BookDataMini? WithID( SqlConnection connection , int id ) + { + using SqlDataReader reader = new SQLBuilder( connection , "SELECT * FROM v_repository WHERE id = @id" ) + .AddParameter( "@id" , id ) + .ExecuteReader( ); + + if ( !reader.Read( ) ) + return null; + + return new BookDataMini( ) + { + ID = reader.Int( "id" ) , + UUID = reader.StringSafe( "uuid" ) , + CategoryID = reader.Int( "category_id" ) , + CategoryName = reader.StringSafe( "category_name" ) , + BookTypeID = reader.Int( "book_type_id" ) , + BookTypeName = reader.StringSafe( "book_type_name" ) , + Title = reader.StringSafe( "title" ) , + Author = reader.StringSafe( "author" ) , + Access = reader.StringSafe( "access" ) , + }; + } +} \ No newline at end of file diff --git a/Data/BookListData.cs b/Data/BookListData.cs new file mode 100644 index 0000000..a559b46 --- /dev/null +++ b/Data/BookListData.cs @@ -0,0 +1,108 @@ +using System.Collections; +using Microsoft.Data.SqlClient; + +namespace Library; + +public class BookListData : IEnumerable +{ + private readonly List m_Elements = new( ); + + public IEnumerator GetEnumerator( ) + { + return m_Elements.GetEnumerator( ); + } + + IEnumerator IEnumerable.GetEnumerator( ) + { + return m_Elements.GetEnumerator( ); + } + + static public int GetCategoryCount( SqlConnection connection , int category_id ) + { + return new SQLBuilder( connection , @"SELECT count(*) FROM v_repository WHERE category_id=@category and include_category_id=@category" ) + .AddParameter( "@category" , category_id ) + .ExecuteAndReadInteger( 0 ); + } + + public static int GetTotalSearchCount( SqlConnection connection , string term ) + { + return new SQLBuilder( connection , "SELECT count(*) FROM v_repository_search" ) + .AddLike( "search_index" , term ) + .ExecuteAndReadInteger( 0 ); + } + + public void LoadSearch( SqlConnection connection , string term , int page , int items_per_page ) + { + using SqlDataReader reader = new SQLBuilder( connection , "SELECT * FROM v_repository_search" , "title" ) + .AddLike( "search_index" , term ) + .SetPaging( page , items_per_page ) + .ExecuteReader( ); + + while ( reader.Read( ) ) + { + BookData book = new( ) + { + ID = reader.Int( "id" ) , + UUID = reader.StringSafe( "uuid" ) , + CategoryID = reader.Int( "category_id" ) , + CategoryName = reader.StringSafe( "category_name" ) , + BookTypeID = reader.Int( "book_type_id" ) , + BookTypeName = reader.StringSafe( "book_type_name" ) , + Title = reader.StringSafe( "title" ) , + Author = reader.StringSafe( "author" ) , + Access = reader.StringSafe( "access" ) , + Keywords = reader.StringSafe( "keywords" ) , +/* Publisher = reader.StringSafe( "publisher" ) , + PublishYear = reader.StringSafe( "publish_year" ) , + Keywords = reader.StringSafe( "keywords" ) , + Description = reader.StringSafe( "description" ) , + CreateDate = reader.DateTime( "create_date" ) , + Opisanie = reader.StringSafe( "opisanie" ) , + KodDrugi = reader.StringSafe( "koddrugi" ) , +*/ + }; + m_Elements.Add( book ); + } + } + + + public void LoadCategory( SqlConnection connection , int category_id , int page , int books_per_page ) + { + using SqlDataReader reader = new SQLBuilder( connection , + // "select * from v_repository where include_category_id=category_id" + @"SELECT * FROM v_repository + WHERE category_id=@category and include_category_id=@category + ORDER BY sort, title + OFFSET @offset ROWS + FETCH NEXT @rows ROWS ONLY" + ) + .AddParameter( "@category" , category_id ) + .AddParameter( "@offset" , page * books_per_page ) + .AddParameter( "@rows" , books_per_page ) + .ExecuteReader( ); + + while ( reader.Read( ) ) + { + BookData book = new( ) + { + ID = reader.Int( "id" ) , + UUID = reader.StringSafe( "uuid" ) , + CategoryID = reader.Int( "category_id" ) , + CategoryName = reader.StringSafe( "category_name" ) , + BookTypeID = reader.Int( "book_type_id" ) , + BookTypeName = reader.StringSafe( "book_type_name" ) , + Title = reader.StringSafe( "title" ) , + Author = reader.StringSafe( "author" ) , + Access = reader.StringSafe( "access" ) , +/* Publisher = reader.StringSafe( "publisher" ) , + PublishYear = reader.StringSafe( "publish_year" ) , + Keywords = reader.StringSafe( "keywords" ) , + Description = reader.StringSafe( "description" ) , + CreateDate = reader.DateTime( "create_date" ) , + Opisanie = reader.StringSafe( "opisanie" ) , + KodDrugi = reader.StringSafe( "koddrugi" ) , */ + }; + m_Elements.Add( book ); + } + } +} diff --git a/Data/CategoryItemData.cs b/Data/CategoryItemData.cs new file mode 100644 index 0000000..fc38340 --- /dev/null +++ b/Data/CategoryItemData.cs @@ -0,0 +1,12 @@ +namespace Library; + +public class CategoryItemData +{ + public int ID { init; get; } = 0; + public int ParentID { init; get; } = 0; + public int ElementCount { init; get; } = 0; + public int Depth { init; get; } = 0; + public string Name { init; get; } = ""; + public string Catego_opis { init; get; } = ""; + public List Children { init; get; } = new( ); +} diff --git a/Data/CategoryTreeData.cs b/Data/CategoryTreeData.cs new file mode 100644 index 0000000..db69303 --- /dev/null +++ b/Data/CategoryTreeData.cs @@ -0,0 +1,54 @@ +using Microsoft.Data.SqlClient; + +namespace Library; + +public class CategoryTreeData +{ + private readonly List m_RootElements = new( ); + public List RootElements { get => m_RootElements; } + + private readonly Dictionary m_AllElements = new( ); + + public int GetRootID( ) + { + if ( m_RootElements.Count == 0 ) + return 0; + return m_RootElements[0].ID; + } + + public CategoryItemData? FindCategory( int id ) + { + if ( m_AllElements.TryGetValue( id , out CategoryItemData? value ) ) + return value; + return null; + } + + public void LoadCategoryTree( SqlConnection connection ) + { + using SqlDataReader reader = new SQLBuilder( connection , "select id,idfat,label,ime_x,cnt,lis_txt from [select_razdeli]" ) + .ExecuteReader( ); + + while ( reader.Read( ) ) + { + CategoryItemData model = new( ) + { + ID = reader.Int( "id" ) , + ParentID = reader.Int( "idfat" ) , + ElementCount = reader.Int( "cnt" ) , + Depth = reader.Int( "label" ) , + Name = reader.StringSafe( "ime_x" ).Trim( ), + Catego_opis = reader.StringSafe( "lis_txt" ).Trim( ) + }; + m_AllElements[model.ID] = model; + } + + foreach ( CategoryItemData m in m_AllElements.Values ) + { + if ( m_AllElements.TryGetValue( m.ParentID , out CategoryItemData? parent ) ) + parent.Children.Add( m ); + else + m_RootElements.Add( m ); + } + } + +} diff --git a/Data/PagingData.cs b/Data/PagingData.cs new file mode 100644 index 0000000..de8c73f --- /dev/null +++ b/Data/PagingData.cs @@ -0,0 +1,19 @@ +namespace Library; + +public class PagingData +{ + public int CurrentPage { init; get; } = 0; + public int LastPage { init; get; } = 0; + public int TotalPages { init; get; } = 0; + + private readonly string m_BaseURL = ""; + public string Url( int page ) => m_BaseURL + page.ToString( ); + + public PagingData( string base_url , int current_page , int total_items , int items_per_page ) + { + m_BaseURL = base_url; + CurrentPage = current_page; + LastPage = ( total_items - 1 ) / items_per_page; + TotalPages = ( total_items + items_per_page - 1 ) / items_per_page; + } +} diff --git a/Data/UserData.cs b/Data/UserData.cs new file mode 100644 index 0000000..3319eeb --- /dev/null +++ b/Data/UserData.cs @@ -0,0 +1,65 @@ +using Microsoft.Data.SqlClient; + +namespace Library; + +public class UserData +{ + public int ID = 0; + public string Name = default!; + public string Email = default!; + public string SessionID = default!; + public bool IsActive = true; + public bool IsAdmin = false; + + public static UserData? FromSession( SqlConnection connection , string session_id ) + { + using SqlDataReader reader = new SQLBuilder( connection , "EXEC [usp_user_session_validate] @session_id" ) + .AddParameter( "@session_id" , session_id ) + .ExecuteReader( ); + + if ( reader == null || !reader.Read( ) ) + return null; + + int user_id = reader.Int( "id" , 0 ); + if ( user_id <= 0 ) + return null; + + return new( ) + { + ID = user_id , + Name = reader.String( "display_name" ) ?? "" , + Email = reader.String( "email" ) ?? "" , + SessionID = session_id , + IsAdmin = reader.Int( "is_admin" , 0 ) == 1 , + IsActive = true + }; + } + + public static UserData? FromID( SqlConnection connection , int id ) + { + using SqlDataReader reader = new SQLBuilder( connection , "SELECT [id],[ime],[user_tip],[mail],[is_active] FROM [dom] WHERE [id]=@id" ) + .AddParameter( "@id" , id ) + .ExecuteReader( ); + + if ( reader == null || !reader.Read( ) ) + return null; + + return FromReader( reader ); + } + + public static UserData? FromReader( SqlDataReader reader ) + { + int user_id = reader.Int( "id" , 0 ); + if ( user_id <= 0 ) + return null; + + return new( ) + { + ID = user_id , + Name = reader.String( "ime" ) ?? "" , + Email = reader.String( "mail" ) ?? "" , + IsAdmin = ( reader.String( "user_tip" ) ?? "" ) == "admin" , + IsActive = reader.Int( "is_active" , 0 ) != 0 + }; + } +} diff --git a/GlobalSuppressions.cs b/GlobalSuppressions.cs new file mode 100644 index 0000000..658a273 --- /dev/null +++ b/GlobalSuppressions.cs @@ -0,0 +1,14 @@ +// This file is used by Code Analysis to maintain SuppressMessage +// attributes that are applied to this project. +// Project-level suppressions either have no target or are given +// a specific target and scoped to a namespace, type, member, etc. + +using System.Diagnostics.CodeAnalysis; + +[assembly: SuppressMessage( "Style" , "IDE0130:Namespace does not match folder structure" , + Justification = "" , + Scope = "module" )] + +[assembly: SuppressMessage( "Style" , "IDE0290:Use primary constructor" , + Justification = "" , + Scope = "module" )] diff --git a/LibraryWeb.csproj b/LibraryWeb.csproj new file mode 100644 index 0000000..323b913 --- /dev/null +++ b/LibraryWeb.csproj @@ -0,0 +1,30 @@ + + + + net10.0 + enable + enable + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/LibraryWeb.sln b/LibraryWeb.sln new file mode 100644 index 0000000..f8045dc --- /dev/null +++ b/LibraryWeb.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.3.32929.385 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LibraryWeb", "LibraryWeb.csproj", "{CBC258EA-359C-49BD-9E2C-71E6C317A7C2}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {CBC258EA-359C-49BD-9E2C-71E6C317A7C2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CBC258EA-359C-49BD-9E2C-71E6C317A7C2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CBC258EA-359C-49BD-9E2C-71E6C317A7C2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CBC258EA-359C-49BD-9E2C-71E6C317A7C2}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {92464CCA-A46F-456C-A15A-6B6B9BA5D749} + EndGlobalSection +EndGlobal diff --git a/Models/BasePageModel.cs b/Models/BasePageModel.cs new file mode 100644 index 0000000..ec7b342 --- /dev/null +++ b/Models/BasePageModel.cs @@ -0,0 +1,19 @@ +using Microsoft.Data.SqlClient; + +namespace Library.Models; + +public class BasePageModel +{ + public string PageTitle = ""; + public UserData? UserData = null; + + public CategoryTreeData CategoryTree { init => m_CategoryTree = value; get => m_CategoryTree; } + private CategoryTreeData m_CategoryTree = new( ); + public BasePageModel( SqlConnection? db ) + { + if ( db != null ) + { + m_CategoryTree.LoadCategoryTree( db! ); + } + } +} diff --git a/Models/ErrorPageModel.cs b/Models/ErrorPageModel.cs new file mode 100644 index 0000000..9146f1f --- /dev/null +++ b/Models/ErrorPageModel.cs @@ -0,0 +1,13 @@ +namespace Library.Models; + +public class ErrorPageModel : BasePageModel +{ + public string? RequestId { get; set; } + + public bool ShowRequestId => !string.IsNullOrEmpty(RequestId); + + public ErrorPageModel( ) + : base( null ) + { + } +} diff --git a/Models/PDFViewModel.cs b/Models/PDFViewModel.cs new file mode 100644 index 0000000..93f9f94 --- /dev/null +++ b/Models/PDFViewModel.cs @@ -0,0 +1,17 @@ +using Microsoft.Data.SqlClient; + +namespace Library.Models; + +public class PDFViewModel : BasePageModel +{ + public readonly int PageCount = 4; + public string UUID { init; get; } = null!; + public string Title { init; get; } = "Áåç çàãëàâèå"; + + public PDFViewModel( SqlConnection? db , string uuid , int page_count ) + : base( db ) + { + PageCount = page_count; + UUID = uuid; + } +} diff --git a/Models/RepositoryDetailsPageModel.cs b/Models/RepositoryDetailsPageModel.cs new file mode 100644 index 0000000..0cad5dc --- /dev/null +++ b/Models/RepositoryDetailsPageModel.cs @@ -0,0 +1,47 @@ +using Microsoft.Data.SqlClient; +using System.Net.Mail; + +namespace Library.Models; + +public class RepositoryDetailsPageModel : BasePageModel +{ + public BookData BookData { get; } = null!; + public List CategoryPath { init; get; } = new( ); + public List Attachments { init; get; } = new( ); + + // public CategoryItemData CategoryData { init; get; } = null!; + // public PagingData PagingData { init; get; } = null!; + + public RepositoryDetailsPageModel( SqlConnection? db , int element_id ) + : base( db ) + { + BookData = BookData.WithID( db! , element_id )!; + Attachments = AttachmentData.GetList( db! , element_id ); + BuildCategoryPath( CategoryTree.FindCategory( BookData.CategoryID ) ); + /* CategoryData = LookupCategoryData( category_index ); + BuildCategoryPath( CategoryTree.FindCategory( CategoryData.ParentID ) ); + Books.LoadCategory( db! , CategoryData.ID , page_index , 20 ); + int books_in_category = BookListData.GetCategoryCount( db! , category_index ); + PagingData = new PagingData( "/Repository/" + category_index + "?page=" , page_index , books_in_category , 20 ); */ + } + +/* private CategoryItemData LookupCategoryData( int category_index ) + { + CategoryItemData? category_data = CategoryTree.FindCategory( category_index ); + if ( category_data != null ) + return category_data!; + return CategoryTree.FindCategory( CategoryTree.GetRootID( ) )!; + } +*/ + private void BuildCategoryPath( CategoryItemData? item ) + { + if ( item == null ) + return; + + CategoryItemData? parent_item = CategoryTree.FindCategory( item!.ParentID ); + if ( parent_item != null ) + BuildCategoryPath( parent_item ); + + CategoryPath.Add( item! ); + } +} diff --git a/Models/RepositoryPageModel.cs b/Models/RepositoryPageModel.cs new file mode 100644 index 0000000..650693a --- /dev/null +++ b/Models/RepositoryPageModel.cs @@ -0,0 +1,44 @@ +using Microsoft.Data.SqlClient; + +namespace Library.Models; + +public class RepositoryPageModel : BasePageModel +{ + public BookListData Books { get; } = new( ); + public CategoryItemData CategoryData { init; get; } = null!; + public List CategoryPath { init; get; } = new( ); + public PagingData PagingData { init; get; } = null!; + + public RepositoryPageModel( SqlConnection? db , int category_index , int page_index ) + : base( db ) + { + CategoryData = LookupCategoryData( category_index ); + BuildCategoryPath( CategoryTree.FindCategory( CategoryData.ParentID ) ); + Books.LoadCategory( db! , CategoryData.ID , page_index , 20 ); + + int books_in_category = BookListData.GetCategoryCount( db! , category_index ); + PagingData = new PagingData( "/Repository/" + category_index + "?page=" , page_index , books_in_category , 20 ); + } + + private CategoryItemData LookupCategoryData( int category_index ) + { + CategoryItemData? category_data = CategoryTree.FindCategory( category_index ); + if ( category_data != null ) + return category_data!; + return CategoryTree.FindCategory( CategoryTree.GetRootID( ) )!; + } + + private void BuildCategoryPath( CategoryItemData? item ) + { + if ( item == null ) + return; + + CategoryItemData? parent_item = CategoryTree.FindCategory( item!.ParentID ); + if ( parent_item != null ) + BuildCategoryPath( parent_item ); + + CategoryPath.Add( item! ); + } + + +} diff --git a/Models/SearchPageModel.cs b/Models/SearchPageModel.cs new file mode 100644 index 0000000..ad92e5b --- /dev/null +++ b/Models/SearchPageModel.cs @@ -0,0 +1,49 @@ +using Microsoft.Data.SqlClient; + +namespace Library.Models; + +public class SearchPageModel : BasePageModel +{ + public BookListData Books { get; } = new( ); + public PagingData PagingData { init; get; } = null!; + public string SearchTerm { init; get; } = null!; + + public SearchPageModel( SqlConnection? db , string term , int page ) + : base( db ) + { + SearchTerm = term; + Books.LoadSearch( db! , term , page , 20 ); + + int books_in_search = BookListData.GetTotalSearchCount( db! , term ); + PagingData = new PagingData( "/Search?q=" + term + "&page=" , page , books_in_search , 20 ); + +/* CategoryData = LookupCategoryData( category_index ); + BuildCategoryPath( CategoryTree.FindCategory( CategoryData.ParentID ) ); + Books.LoadCategory( db! , CategoryData.ID , page_index , 20 ); + + int books_in_category = BookListData.GetCategoryCount( db! , category_index ); + PagingData = new PagingData( "/Repository/" + category_index + "?page=" , page_index , books_in_category , 20 );*/ + } + +/* private CategoryItemData LookupCategoryData( int category_index ) + { + CategoryItemData? category_data = CategoryTree.FindCategory( category_index ); + if ( category_data != null ) + return category_data!; + return CategoryTree.FindCategory( CategoryTree.GetRootID( ) )!; + } + + private void BuildCategoryPath( CategoryItemData? item ) + { + if ( item == null ) + return; + + CategoryItemData? parent_item = CategoryTree.FindCategory( item!.ParentID ); + if ( parent_item != null ) + BuildCategoryPath( parent_item ); + + CategoryPath.Add( item! ); + } */ + + +} diff --git a/Program.cs b/Program.cs new file mode 100644 index 0000000..9e1af78 --- /dev/null +++ b/Program.cs @@ -0,0 +1,32 @@ +using Microsoft.AspNetCore.Server.Kestrel.Core; +using Library; + +var builder = WebApplication.CreateBuilder(args); + +// Add services to the container. +builder.Services + .Configure( builder.Configuration.GetSection( "Kestrel" ) ) +// .Configure( x => { x.ValueLengthLimit = int.MaxValue; x.MultipartBodyLengthLimit = int.MaxValue; x.MultipartHeadersLengthLimit = int.MaxValue; } ) + .AddControllersWithViews( ) + .AddRazorRuntimeCompilation( ); + +var app = builder.Build(); + +// Configure the HTTP request pipeline. +if (!app.Environment.IsDevelopment()) +{ + app.UseExceptionHandler("/Home/Error"); +} +app.UseStaticFiles(); + +app.UseMiddleware( ); + +app.UseRouting(); + +app.UseAuthorization(); + +app.MapControllerRoute( + name: "default", + pattern: "{controller=Home}/{action=Index}/{id?}"); + +app.Run(); diff --git a/Properties/launchSettings.json b/Properties/launchSettings.json new file mode 100644 index 0000000..0776b57 --- /dev/null +++ b/Properties/launchSettings.json @@ -0,0 +1,12 @@ +{ + "profiles": { + "Library": { + "commandName": "Project", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + }, + "applicationUrl": "http://localhost:5000" + } + } +} \ No newline at end of file diff --git a/Views/Home/Index.cshtml b/Views/Home/Index.cshtml new file mode 100644 index 0000000..e403c0d --- /dev/null +++ b/Views/Home/Index.cshtml @@ -0,0 +1,13 @@ +@model BasePageModel + +
+ Дигитална библиотека +
+ +
+ Дигитална библиотека +
+
+
+ +
diff --git a/Views/Home/Login.cshtml b/Views/Home/Login.cshtml new file mode 100644 index 0000000..cb51fc3 --- /dev/null +++ b/Views/Home/Login.cshtml @@ -0,0 +1,8 @@ +@model BasePageModel + +
+LOGIN +
+ +
+
diff --git a/Views/Home/Repository.cshtml b/Views/Home/Repository.cshtml new file mode 100644 index 0000000..d9e5196 --- /dev/null +++ b/Views/Home/Repository.cshtml @@ -0,0 +1,94 @@ +@model RepositoryPageModel + +
+ ДИГИТАЛНИ КОЛЕКЦИИ +
+ + +@if (Model.CategoryData.Depth == 0) +{ +
+
+ @foreach (CategoryItemData category in Model.CategoryData.Children) + { + int q = category.Depth; +
+
+ +
+ +
+ } +
+
+} +else +{ +
+ +
+
+ Публикации в категория + @Model.CategoryData.Name +
+ + + @Model.CategoryData.Catego_opis + + +
+ +
+} + +
+ @foreach ( BookData book in Model.Books ) { + @await Html.PartialAsync("~/Views/Shared/RepositoryBookElement.cshtml", book); + } +
+@await Html.PartialAsync( "~/Views/Shared/PagingArea.cshtml" , Model.PagingData ) diff --git a/Views/Home/RepositoryDetails.cshtml b/Views/Home/RepositoryDetails.cshtml new file mode 100644 index 0000000..26d7968 --- /dev/null +++ b/Views/Home/RepositoryDetails.cshtml @@ -0,0 +1,85 @@ +@model RepositoryDetailsPageModel + + +
+ ДИГИТАЛНИ КОЛЕКЦИИ +
+ +
+ +
+ +@await Html.PartialAsync("~/Views/Shared/RepositoryBookElement_1.cshtml", Model.BookData) + +
+
+
+ Съдържание +
+
+ @foreach ( AttachmentData attachment in Model.Attachments ) + { + if ( attachment.Format == "pdf") + { + +
@attachment.Title
+
+ } + else if (attachment.Format == "jpg") + { + +
@attachment.Title
+
+ } + else if (attachment.Format == "mp4") + { + +
@attachment.Title
+
+ } + else + { + +
@attachment.Title
+
+ } + } +
+
+
+ + +
+
+
+ Преглед +
+
+
+ +
+
+
+
+ diff --git a/Views/Home/Search.cshtml b/Views/Home/Search.cshtml new file mode 100644 index 0000000..85e4e90 --- /dev/null +++ b/Views/Home/Search.cshtml @@ -0,0 +1,25 @@ +@model SearchPageModel + +
+ Търсене +
+ +
+ + +
+ +
+ Резултати за : @Model.SearchTerm +
+ + +
+ @foreach (BookData book in Model.Books) + { + @await Html.PartialAsync("~/Views/Shared/RepositoryBookElement.cshtml", book) + } +
+ + +@await Html.PartialAsync( "~/Views/Shared/PagingArea.cshtml" , Model.PagingData ) diff --git a/Views/Home/Sitemap.cshtml b/Views/Home/Sitemap.cshtml new file mode 100644 index 0000000..43d8fc8 --- /dev/null +++ b/Views/Home/Sitemap.cshtml @@ -0,0 +1,5 @@ +@model BasePageModel +
+ Карта на сайта +
+@await Html.PartialAsync( "~/Views/Shared/SiteMapTree.cshtml" , Model.CategoryTree ) \ No newline at end of file diff --git a/Views/Repository/PDFView.cshtml b/Views/Repository/PDFView.cshtml new file mode 100644 index 0000000..19dfa31 --- /dev/null +++ b/Views/Repository/PDFView.cshtml @@ -0,0 +1,51 @@ +@model PDFViewModel +@{ + Layout = null; +} + + + + + + + + Виртуална библиотека + + + +
+
+
+ +
+
@Model.Title
+
Страница: 1 / @Model.PageCount
+
+ +
+ + +
+ +
+
+ +
+
+
+ + + + + + diff --git a/Views/Shared/PagingArea.cshtml b/Views/Shared/PagingArea.cshtml new file mode 100644 index 0000000..6536aed --- /dev/null +++ b/Views/Shared/PagingArea.cshtml @@ -0,0 +1,59 @@ +@model PagingData +@{ + bool has_previous = Model.CurrentPage > 0; + bool has_next = Model.CurrentPage < Model.LastPage; + + int first_page = Math.Max( 0 , Model.CurrentPage - 3 ); + int last_page = Math.Min( first_page + 6 , Model.LastPage ); + if ( last_page - first_page < 6 ) + first_page = Math.Max( 0 , last_page - 6 ); + + bool show_dots_before = first_page > 0; + if ( show_dots_before ) + first_page += 2; // shift first page to make room for [1][...] + + bool show_dots_after = last_page < Model.LastPage; + if (show_dots_after) + last_page -= 2; // shift last page to make room for [...][last] +} + +@if ( Model.LastPage > 0 ) +{ + +} \ No newline at end of file diff --git a/Views/Shared/RepositoryBookElement.cshtml b/Views/Shared/RepositoryBookElement.cshtml new file mode 100644 index 0000000..cdaa79c --- /dev/null +++ b/Views/Shared/RepositoryBookElement.cshtml @@ -0,0 +1,58 @@ +@model BookData + + +
+
+
+ @Model.BookTypeName +
+
+ @if (!string.IsNullOrEmpty(Model.UUID)) + { + + } + +
@Model.Title
+
+

+ Автор : @Model.Author
+ Ключови думи : @Model.Keywords
+ @if (!string.IsNullOrEmpty(Model.Publisher)) + { Издат.данни : @Model.Publisher
} + @if (!string.IsNullOrEmpty(Model.PublishYear)) + { Год.издаване : @Model.PublishYear
} + @if (!string.IsNullOrEmpty(Model.Description)) + { Размер : @Model.Description
} + @if (!string.IsNullOrEmpty(Model.Opisanie)) + { Описание : @Model.Opisanie
} + @if (!string.IsNullOrEmpty(Model.KodDrugi)) + { Език : @Model.KodDrugi
} + @if (!string.IsNullOrEmpty(Model.Access)) + { Access : @Model.Access
} +
+

+
+
+
+ + diff --git a/Views/Shared/RepositoryBookElement_1.cshtml b/Views/Shared/RepositoryBookElement_1.cshtml new file mode 100644 index 0000000..91cec3b --- /dev/null +++ b/Views/Shared/RepositoryBookElement_1.cshtml @@ -0,0 +1,35 @@ +@model BookData + +
+
+
+ @Model.BookTypeName +
+
+ @if (!string.IsNullOrEmpty(Model.UUID)) + { + + } + +
@Model.Title
+
+

+ Автор : @Model.Author
+ Ключови думи : @Model.Keywords
+ @if (!string.IsNullOrEmpty(Model.Publisher)) + { Издат.данни : @Model.Publisher
} + @if (!string.IsNullOrEmpty(Model.PublishYear)) + { Год.издаване : @Model.PublishYear
} + @if (!string.IsNullOrEmpty(Model.Description)) + { Размер : @Model.Description
} + @if (!string.IsNullOrEmpty(Model.Opisanie)) + { Описание : @Model.Opisanie
} + @if (!string.IsNullOrEmpty(Model.KodDrugi)) + { Език : @Model.KodDrugi
} + @if (!string.IsNullOrEmpty(Model.Access)) + { Access : @Model.Access
} +
+

+
+
+
diff --git a/Views/Shared/SiteMapTree.cshtml b/Views/Shared/SiteMapTree.cshtml new file mode 100644 index 0000000..e8ecc4f --- /dev/null +++ b/Views/Shared/SiteMapTree.cshtml @@ -0,0 +1,8 @@ +@model CategoryTreeData + + diff --git a/Views/Shared/SiteMapTreeItem.cshtml b/Views/Shared/SiteMapTreeItem.cshtml new file mode 100644 index 0000000..c68dc27 --- /dev/null +++ b/Views/Shared/SiteMapTreeItem.cshtml @@ -0,0 +1,19 @@ +@model CategoryItemData + + + +@foreach ( CategoryItemData child in Model.Children ) +{ + @await Html.PartialAsync( "~/Views/Shared/SiteMapTreeItem.cshtml" , child ) +} diff --git a/Views/Shared/_DialogForgotPassword.cshtml b/Views/Shared/_DialogForgotPassword.cshtml new file mode 100644 index 0000000..b088a5c --- /dev/null +++ b/Views/Shared/_DialogForgotPassword.cshtml @@ -0,0 +1,22 @@ + \ No newline at end of file diff --git a/Views/Shared/_DialogLogin.cshtml b/Views/Shared/_DialogLogin.cshtml new file mode 100644 index 0000000..983b131 --- /dev/null +++ b/Views/Shared/_DialogLogin.cshtml @@ -0,0 +1,35 @@ + diff --git a/Views/Shared/_DialogRegister.cshtml b/Views/Shared/_DialogRegister.cshtml new file mode 100644 index 0000000..4871691 --- /dev/null +++ b/Views/Shared/_DialogRegister.cshtml @@ -0,0 +1,38 @@ + diff --git a/Views/Shared/_DialogWait.cshtml b/Views/Shared/_DialogWait.cshtml new file mode 100644 index 0000000..fa30e10 --- /dev/null +++ b/Views/Shared/_DialogWait.cshtml @@ -0,0 +1,14 @@ + diff --git a/Views/Shared/_LayoutDefault.cshtml b/Views/Shared/_LayoutDefault.cshtml new file mode 100644 index 0000000..8014e58 --- /dev/null +++ b/Views/Shared/_LayoutDefault.cshtml @@ -0,0 +1,98 @@ +@model BasePageModel + + + + + + Виртуална библиотека + + + + @await RenderSectionAsync("Styles", required: false) + + + +
+ +
+ +
+
+ @RenderBody( ) +
+
+ +
+ +
+ + @if (Model.UserData == null) + { + @await Html.PartialAsync( "~/Views/Shared/_DialogLogin.cshtml" ); + @await Html.PartialAsync( "~/Views/Shared/_DialogRegister.cshtml" ); + @await Html.PartialAsync( "~/Views/Shared/_DialogForgotPassword.cshtml" ); + @await Html.PartialAsync( "~/Views/Shared/_DialogWait.cshtml" ); + } + + + + + + + + + @await RenderSectionAsync("Scripts", required: false) + + + diff --git a/Views/Shared/_LayoutEmpty.cshtml b/Views/Shared/_LayoutEmpty.cshtml new file mode 100644 index 0000000..db6783d --- /dev/null +++ b/Views/Shared/_LayoutEmpty.cshtml @@ -0,0 +1,30 @@ +@model BasePageModel + + + + + + Виртуална библиотека + + + + @await RenderSectionAsync("Styles", required: false) + + + + +
+ @RenderBody( ) +
+ + + + + + + + + @await RenderSectionAsync("Scripts", required: false) + + + diff --git a/Views/_ViewImports.cshtml b/Views/_ViewImports.cshtml new file mode 100644 index 0000000..4dcb055 --- /dev/null +++ b/Views/_ViewImports.cshtml @@ -0,0 +1,7 @@ +@using Library +@using Library.Models +@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers +@addTagHelper *, Library + +@using Microsoft.Extensions.Configuration +@inject IConfiguration Configuration \ No newline at end of file diff --git a/Views/_ViewStart.cshtml b/Views/_ViewStart.cshtml new file mode 100644 index 0000000..908eae0 --- /dev/null +++ b/Views/_ViewStart.cshtml @@ -0,0 +1,3 @@ +@{ + Layout = "_LayoutDefault"; +} diff --git a/appsettings.json.template b/appsettings.json.template new file mode 100644 index 0000000..d20d375 --- /dev/null +++ b/appsettings.json.template @@ -0,0 +1,23 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + }, + "Kestrel": { + "EndpointDefaults": { + "Protocols": "Http1AndHttp2" + }, + "Endpoints": { + "Http": { + "Url": "http://localhost:52557" + } + } + }, + "AllowedHosts": "*", + "ConnectionString": "Server=tcp:,;UID=;PWD=;Database=", + "DataDirectory": "", + "TempDirectory": "", + "ImagesPath": "img/" +} diff --git a/wwwroot/css/common.css b/wwwroot/css/common.css new file mode 100644 index 0000000..fef1b3e --- /dev/null +++ b/wwwroot/css/common.css @@ -0,0 +1,100 @@ + +:focus { + outline: none; +} + +.page-title-color { + color: #b32d00; /* #b74040; �.������ */ +} + +/* Footer styles */ + +.footer { + display: flex; + flex-grow: 1; + align-items: center; + flex-flow: column nowrap; +} + +/* Header styles */ + +.navbar { + background-color: #355b9c; /* ����� ��� = title �1d4a9b, ������ ��� #e3f2fd*/ +} + +.navbar-brand > img { + height: 2em; +} + +.navbar-brand > span { + font-size: smaller; + margin-left: 10px; + color: #04763a; /* �. ����� */ + text-decoration: none; +} + +.navbar-brand:hover > span { + font-size: smaller; + margin-left: 10px; + color: #1560a1; /* �.��� */ + text-decoration: underline; +} + +.nav-link, .nav-link:visited, .nav-link:active { + color: #04763a !important; /* �.����� */ + text-decoration: none; +} + +.nav-link:hover { + color: #1560a1 !important; /* �.��� */ + text-decoration: underline; +} + +/* Navigation tree (sitemap) styles */ + +.nav_tree .nav_tree_item_container:first-child { + border-top: 1px solid rgba(0, 0, 0, 0.125); +} + +.nav_tree_item_container:hover { + background-color: antiquewhite; /* #faebd7 - ��.����� */ +} + +.nav_tree_item_container { + display: flex; + align-items: center; + border: 1px solid rgba(0, 0, 0, 0.125); + border-top: none; +} + +.nav_tree_item_container span.indent { + margin-left: 1em; + margin-right: 1em; +} + +.nav_tree_item_data { + display: flex; + flex-grow: 1; + align-items: flex-start; + flex-flow: column nowrap; + padding: 0.25rem 0.5rem; + border-left: 1px solid rgba(0, 0, 0, 0.125); +} + +.nav_tree_item_data span { + color: #033; + font-size: smaller; + font-weight: bold; + float: right; +} + +.nav_tree_item_data a, +.nav_tree_item_data a:visited { + color: #033; + text-decoration: underline; +} + +.nav_tree_item_data a:hover { + color: #099; + text-decoration: underline; +} \ No newline at end of file diff --git a/wwwroot/css/pdf_view.css b/wwwroot/css/pdf_view.css new file mode 100644 index 0000000..bdeb06a --- /dev/null +++ b/wwwroot/css/pdf_view.css @@ -0,0 +1,141 @@ +body, main { + padding: 0; + margin: 0; + border: 0; +} + +a { + text-decoration: none; +} + +img { + vertical-align: middle; +} + +.pdf-page-link { + display: block !important; + width: 135px; + height: 250px; + position: relative; + border: 1px solid #ccc; + margin: 5px; +} + + .pdf-page-link.selected, + .pdf-page-link.selected:active, + .pdf-page-link.selected:hover { + border: 1px solid #f96; + cursor: auto; + } + + .pdf-page-link:hover { + border: 1px solid #9f9; + } + + .pdf-page-link:active { + border: 1px solid #cfc; + } + + .pdf-page-link > .pdf-page-thumb { + margin: 0; + position: absolute; + top: 50%; + left: 50%; + -ms-transform: translate(-50%, -50%); + transform: translate(-50%, -50%); + } + + .pdf-page-link > .pdf-page-label { + display: inline; + position: absolute; + width: 100%; + z-index: 1; + text-align: center; + color: #000; + background-color: #ccc; + margin: 0; + padding: 0; + } + + .pdf-page-link.selected > .pdf-page-label, + .pdf-page-link.selected:active > .pdf-page-label, + .pdf-page-link.selected:hover > .pdf-page-label { + background-color: #f96; + } + + .pdf-page-link:hover > .pdf-page-label { + background-color: #9f9; + } + + .pdf-page-link:active > .pdf-page-label { + background-color: #cfc; + } + +.full-width { + width: 100%; +} + +.full-height { + height: 100%; +} + +.full-view-height { + height: 100vh; +} + +.no-padding { + padding: 0; +} + +.vlayout { + display: flex; + flex-direction: column; +} + +.hlayout { + display: flex; + flex-direction: row; +} + +.layout-scale-1 { + flex-grow: 1; +} + +.header { + align-self: stretch; + background-color: #444; + color: #fff; + display: flex; + padding: 10px; + flex-direction: row; +} + +.header-info-bar { + flex-grow: 1; + align-self: center; +} + +.header-paging-bar { + text-align: center; + align-self: center; +} + +.overflow-auto { + overflow: auto; +} + +.navigation-bar { + align-self: stretch; + overflow: auto; + flex-grow: 0; + width: 160px; + min-width: 160px; + background-color: #444; +} + +.content-area { + background-color: #999; + align-self: stretch; + flex-grow: 1; + text-align: center; +} diff --git a/wwwroot/css/vendor/bootstrap.css b/wwwroot/css/vendor/bootstrap.css new file mode 100644 index 0000000..2fccded --- /dev/null +++ b/wwwroot/css/vendor/bootstrap.css @@ -0,0 +1,11228 @@ +@charset "UTF-8"; +/*! + * Bootstrap v5.1.0 (https://getbootstrap.com/) + * Copyright 2011-2021 The Bootstrap Authors + * Copyright 2011-2021 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */ +:root { + --bs-blue: #008ae6; /*#0d6efd;*/ + --bs-indigo: #6610f2; + --bs-purple: #6f42c1; + --bs-pink: #d63384; + --bs-red: #dc3545; + --bs-orange: #fd7e14; + --bs-yellow: #ffc107; + --bs-green: #198754; + --bs-teal: #20c997; + --bs-cyan: #0dcaf0; + --bs-white: #fff; + --bs-gray: #6c757d; + --bs-gray-dark: #343a40; + --bs-gray-100: #f8f9fa; + --bs-gray-200: #e9ecef; + --bs-gray-300: #dee2e6; + --bs-gray-400: #ced4da; + --bs-gray-500: #adb5bd; + --bs-gray-600: #6c757d; + --bs-gray-700: #495057; + --bs-gray-800: #343a40; + --bs-gray-900: #212529; + --bs-primary: #008ae6; /*#0d6efd;*/ + --bs-secondary: #6c757d; + --bs-success: #198754; + --bs-info: #0dcaf0; + --bs-warning: #ffc107; + --bs-danger: #dc3545; + --bs-light: #f8f9fa; + --bs-dark: #212529; + --bs-primary-rgb: 13, 110, 253; + --bs-secondary-rgb: 108, 117, 125; + --bs-success-rgb: 25, 135, 84; + --bs-info-rgb: 13, 202, 240; + --bs-warning-rgb: 255, 193, 7; + --bs-danger-rgb: 220, 53, 69; + --bs-light-rgb: 248, 249, 250; + --bs-dark-rgb: 33, 37, 41; + --bs-white-rgb: 255, 255, 255; + --bs-black-rgb: 0, 0, 0; + --bs-body-rgb: 33, 37, 41; + --bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + --bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; + --bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0)); + --bs-body-font-family: var(--bs-font-sans-serif); + --bs-body-font-size: 1rem; + --bs-body-font-weight: 400; + --bs-body-line-height: 1.5; + --bs-body-color: #212529; + --bs-body-color2: #b32d00; + --bs-body-bg: #fff; +} + +*, +*::before, +*::after { + box-sizing: border-box; +} + +@media (prefers-reduced-motion: no-preference) { + :root { + scroll-behavior: smooth; + } +} + +body { + margin: 0; + font-family: var(--bs-body-font-family); + font-size: var(--bs-body-font-size); + font-weight: var(--bs-body-font-weight); + line-height: var(--bs-body-line-height); + color: var(--bs-body-color); + text-align: var(--bs-body-text-align); + background-color: var(--bs-body-bg); + -webkit-text-size-adjust: 100%; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); +} + +hr { + margin: 1rem 0; + color: inherit; + background-color: currentColor; + border: 0; + opacity: 0.25; +} + +hr:not([size]) { + height: 1px; +} + +h6, .h6, h5, .h5, h4, .h4, h3, .h3, h2, .h2, h1, .h1 { + margin-top: 0; + margin-bottom: 0.5rem; + font-weight: 500; + line-height: 1.2; +} + +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], +abbr[data-bs-original-title] { + -webkit-text-decoration: underline dotted; + text-decoration: underline dotted; + cursor: help; + -webkit-text-decoration-skip-ink: none; + 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: 0.5rem; + margin-left: 0; +} + +blockquote { + margin: 0 0 1rem; +} + +b, +strong { + font-weight: bolder; +} + +small, .small { + font-size: 0.875em; +} + +mark, .mark { + padding: 0.2em; + background-color: #fcf8e3; +} + +sub, +sup { + position: relative; + font-size: 0.75em; + line-height: 0; + vertical-align: baseline; +} + +sub { + bottom: -0.25em; +} + +sup { + top: -0.5em; +} + +a { + color: #008ae6; /*#0d6efd;*/ + text-decoration: underline; /* син */ +} +a:hover { + color: #0a58ca; +} + +a:not([href]):not([class]), a:not([href]):not([class]):hover { + color: inherit; + text-decoration: none; +} + +pre, +code, +kbd, +samp { + font-family: var(--bs-font-monospace); + font-size: 1em; + direction: ltr /* rtl:ignore */; + unicode-bidi: bidi-override; +} + +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: #d63384; + word-wrap: break-word; +} +a > code { + color: inherit; +} + +kbd { + padding: 0.2rem 0.4rem; + font-size: 0.875em; + color: #fff; + background-color: #212529; + border-radius: 0.2rem; +} +kbd kbd { + padding: 0; + font-size: 1em; + font-weight: 700; +} + +figure { + margin: 0 0 1rem; +} + +img, +svg { + vertical-align: middle; +} + +table { + caption-side: bottom; + border-collapse: collapse; +} + +caption { + padding-top: 0.5rem; + padding-bottom: 0.5rem; + color: #6c757d; + 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]::-webkit-calendar-picker-indicator { + display: none; +} + +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: 0.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] { + outline-offset: -2px; + -webkit-appearance: textfield; +} + +/* rtl:raw: +[type="tel"], +[type="url"], +[type="email"], +[type="number"] { + direction: ltr; +} +*/ +::-webkit-search-decoration { + -webkit-appearance: none; +} + +::-webkit-color-swatch-wrapper { + padding: 0; +} + +::file-selector-button { + font: inherit; +} + +::-webkit-file-upload-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: 250; + line-height: 1.2; +} +@media (min-width: 1200px) { + .display-6 { + font-size: 1.8rem; + } +} + +.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: 0.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: #6c757d; +} +.blockquote-footer::before { + content: "— "; +} + +.img-fluid { + max-width: 100%; + height: auto; +} + +.img-thumbnail { + padding: 0.25rem; + background-color: #fff; + border: 1px solid #dee2e6; + border-radius: 0.25rem; + max-width: 100%; + height: auto; +} + +.figure { + display: inline-block; +} + +.figure-img { + margin-bottom: 0.5rem; + line-height: 1; +} + +.figure-caption { + font-size: 0.875em; + color: #6c757d; +} + +.container, +.container-fluid, +.container-xxl, +.container-xl, +.container-lg, +.container-md, +.container-sm { + width: 100%; + padding-right: var(--bs-gutter-x, 0.75rem); + padding-left: var(--bs-gutter-x, 0.75rem); + 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; + } +} +.row { + --bs-gutter-x: 1.5rem; + --bs-gutter-y: 0; + display: flex; + flex-wrap: wrap; + margin-top: calc(var(--bs-gutter-y) * -1); + margin-right: calc(var(--bs-gutter-x) * -.5); + margin-left: calc(var(--bs-gutter-x) * -.5); +} +.row > * { + flex-shrink: 0; + width: 100%; + max-width: 100%; + padding-right: calc(var(--bs-gutter-x) * .5); + padding-left: calc(var(--bs-gutter-x) * .5); + margin-top: var(--bs-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.3333333333%; +} + +.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.6666666667%; +} + +.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 { + --bs-gutter-x: 0; +} + +.g-0, +.gy-0 { + --bs-gutter-y: 0; +} + +.g-1, +.gx-1 { + --bs-gutter-x: 0.25rem; +} + +.g-1, +.gy-1 { + --bs-gutter-y: 0.25rem; +} + +.g-2, +.gx-2 { + --bs-gutter-x: 0.5rem; +} + +.g-2, +.gy-2 { + --bs-gutter-y: 0.5rem; +} + +.g-3, +.gx-3 { + --bs-gutter-x: 1rem; +} + +.g-3, +.gy-3 { + --bs-gutter-y: 1rem; +} + +.g-4, +.gx-4 { + --bs-gutter-x: 1.5rem; +} + +.g-4, +.gy-4 { + --bs-gutter-y: 1.5rem; +} + +.g-5, +.gx-5 { + --bs-gutter-x: 3rem; +} + +.g-5, +.gy-5 { + --bs-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.3333333333%; + } + + .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.6666666667%; + } + + .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 { + --bs-gutter-x: 0; + } + + .g-sm-0, +.gy-sm-0 { + --bs-gutter-y: 0; + } + + .g-sm-1, +.gx-sm-1 { + --bs-gutter-x: 0.25rem; + } + + .g-sm-1, +.gy-sm-1 { + --bs-gutter-y: 0.25rem; + } + + .g-sm-2, +.gx-sm-2 { + --bs-gutter-x: 0.5rem; + } + + .g-sm-2, +.gy-sm-2 { + --bs-gutter-y: 0.5rem; + } + + .g-sm-3, +.gx-sm-3 { + --bs-gutter-x: 1rem; + } + + .g-sm-3, +.gy-sm-3 { + --bs-gutter-y: 1rem; + } + + .g-sm-4, +.gx-sm-4 { + --bs-gutter-x: 1.5rem; + } + + .g-sm-4, +.gy-sm-4 { + --bs-gutter-y: 1.5rem; + } + + .g-sm-5, +.gx-sm-5 { + --bs-gutter-x: 3rem; + } + + .g-sm-5, +.gy-sm-5 { + --bs-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.3333333333%; + } + + .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.6666666667%; + } + + .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 { + --bs-gutter-x: 0; + } + + .g-md-0, +.gy-md-0 { + --bs-gutter-y: 0; + } + + .g-md-1, +.gx-md-1 { + --bs-gutter-x: 0.25rem; + } + + .g-md-1, +.gy-md-1 { + --bs-gutter-y: 0.25rem; + } + + .g-md-2, +.gx-md-2 { + --bs-gutter-x: 0.5rem; + } + + .g-md-2, +.gy-md-2 { + --bs-gutter-y: 0.5rem; + } + + .g-md-3, +.gx-md-3 { + --bs-gutter-x: 1rem; + } + + .g-md-3, +.gy-md-3 { + --bs-gutter-y: 1rem; + } + + .g-md-4, +.gx-md-4 { + --bs-gutter-x: 1.5rem; + } + + .g-md-4, +.gy-md-4 { + --bs-gutter-y: 1.5rem; + } + + .g-md-5, +.gx-md-5 { + --bs-gutter-x: 3rem; + } + + .g-md-5, +.gy-md-5 { + --bs-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.3333333333%; + } + + .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.6666666667%; + } + + .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 { + --bs-gutter-x: 0; + } + + .g-lg-0, +.gy-lg-0 { + --bs-gutter-y: 0; + } + + .g-lg-1, +.gx-lg-1 { + --bs-gutter-x: 0.25rem; + } + + .g-lg-1, +.gy-lg-1 { + --bs-gutter-y: 0.25rem; + } + + .g-lg-2, +.gx-lg-2 { + --bs-gutter-x: 0.5rem; + } + + .g-lg-2, +.gy-lg-2 { + --bs-gutter-y: 0.5rem; + } + + .g-lg-3, +.gx-lg-3 { + --bs-gutter-x: 1rem; + } + + .g-lg-3, +.gy-lg-3 { + --bs-gutter-y: 1rem; + } + + .g-lg-4, +.gx-lg-4 { + --bs-gutter-x: 1.5rem; + } + + .g-lg-4, +.gy-lg-4 { + --bs-gutter-y: 1.5rem; + } + + .g-lg-5, +.gx-lg-5 { + --bs-gutter-x: 3rem; + } + + .g-lg-5, +.gy-lg-5 { + --bs-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.3333333333%; + } + + .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.6666666667%; + } + + .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 { + --bs-gutter-x: 0; + } + + .g-xl-0, +.gy-xl-0 { + --bs-gutter-y: 0; + } + + .g-xl-1, +.gx-xl-1 { + --bs-gutter-x: 0.25rem; + } + + .g-xl-1, +.gy-xl-1 { + --bs-gutter-y: 0.25rem; + } + + .g-xl-2, +.gx-xl-2 { + --bs-gutter-x: 0.5rem; + } + + .g-xl-2, +.gy-xl-2 { + --bs-gutter-y: 0.5rem; + } + + .g-xl-3, +.gx-xl-3 { + --bs-gutter-x: 1rem; + } + + .g-xl-3, +.gy-xl-3 { + --bs-gutter-y: 1rem; + } + + .g-xl-4, +.gx-xl-4 { + --bs-gutter-x: 1.5rem; + } + + .g-xl-4, +.gy-xl-4 { + --bs-gutter-y: 1.5rem; + } + + .g-xl-5, +.gx-xl-5 { + --bs-gutter-x: 3rem; + } + + .g-xl-5, +.gy-xl-5 { + --bs-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.3333333333%; + } + + .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.6666666667%; + } + + .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 { + --bs-gutter-x: 0; + } + + .g-xxl-0, +.gy-xxl-0 { + --bs-gutter-y: 0; + } + + .g-xxl-1, +.gx-xxl-1 { + --bs-gutter-x: 0.25rem; + } + + .g-xxl-1, +.gy-xxl-1 { + --bs-gutter-y: 0.25rem; + } + + .g-xxl-2, +.gx-xxl-2 { + --bs-gutter-x: 0.5rem; + } + + .g-xxl-2, +.gy-xxl-2 { + --bs-gutter-y: 0.5rem; + } + + .g-xxl-3, +.gx-xxl-3 { + --bs-gutter-x: 1rem; + } + + .g-xxl-3, +.gy-xxl-3 { + --bs-gutter-y: 1rem; + } + + .g-xxl-4, +.gx-xxl-4 { + --bs-gutter-x: 1.5rem; + } + + .g-xxl-4, +.gy-xxl-4 { + --bs-gutter-y: 1.5rem; + } + + .g-xxl-5, +.gx-xxl-5 { + --bs-gutter-x: 3rem; + } + + .g-xxl-5, +.gy-xxl-5 { + --bs-gutter-y: 3rem; + } +} +.table { + --bs-table-bg: transparent; + --bs-table-accent-bg: transparent; + --bs-table-striped-color: #212529; + --bs-table-striped-bg: rgba(0, 0, 0, 0.05); + --bs-table-active-color: #212529; + --bs-table-active-bg: rgba(0, 0, 0, 0.1); + --bs-table-hover-color: #212529; + --bs-table-hover-bg: rgba(0, 0, 0, 0.075); + width: 100%; + margin-bottom: 1rem; + color: #212529; + vertical-align: top; + border-color: #dee2e6; +} +.table > :not(caption) > * > * { + padding: 0.5rem 0.5rem; + background-color: var(--bs-table-bg); + border-bottom-width: 1px; + box-shadow: inset 0 0 0 9999px var(--bs-table-accent-bg); +} +.table > tbody { + vertical-align: inherit; +} +.table > thead { + vertical-align: bottom; +} +.table > :not(:last-child) > :last-child > * { + border-bottom-color: currentColor; +} + +.caption-top { + caption-side: top; +} + +.table-sm > :not(caption) > * > * { + padding: 0.25rem 0.25rem; +} + +.table-bordered > :not(caption) > * { + border-width: 1px 0; +} +.table-bordered > :not(caption) > * > * { + border-width: 0 1px; +} + +.table-borderless > :not(caption) > * > * { + border-bottom-width: 0; +} + +.table-striped > tbody > tr:nth-of-type(odd) { + --bs-table-accent-bg: var(--bs-table-striped-bg); + color: var(--bs-table-striped-color); +} + +.table-active { + --bs-table-accent-bg: var(--bs-table-active-bg); + color: var(--bs-table-active-color); +} + +.table-hover > tbody > tr:hover { + --bs-table-accent-bg: var(--bs-table-hover-bg); + color: var(--bs-table-hover-color); +} + +.table-primary { + --bs-table-bg: #cfe2ff; + --bs-table-striped-bg: #c5d7f2; + --bs-table-striped-color: #000; + --bs-table-active-bg: #bacbe6; + --bs-table-active-color: #000; + --bs-table-hover-bg: #bfd1ec; + --bs-table-hover-color: #000; + color: #000; + border-color: #bacbe6; +} + +.table-secondary { + --bs-table-bg: #e2e3e5; + --bs-table-striped-bg: #d7d8da; + --bs-table-striped-color: #000; + --bs-table-active-bg: #cbccce; + --bs-table-active-color: #000; + --bs-table-hover-bg: #d1d2d4; + --bs-table-hover-color: #000; + color: #000; + border-color: #cbccce; +} + +.table-success { + --bs-table-bg: #d1e7dd; + --bs-table-striped-bg: #c7dbd2; + --bs-table-striped-color: #000; + --bs-table-active-bg: #bcd0c7; + --bs-table-active-color: #000; + --bs-table-hover-bg: #c1d6cc; + --bs-table-hover-color: #000; + color: #000; + border-color: #bcd0c7; +} + +.table-info { + --bs-table-bg: #cff4fc; + --bs-table-striped-bg: #c5e8ef; + --bs-table-striped-color: #000; + --bs-table-active-bg: #badce3; + --bs-table-active-color: #000; + --bs-table-hover-bg: #bfe2e9; + --bs-table-hover-color: #000; + color: #000; + border-color: #badce3; +} + +.table-warning { + --bs-table-bg: #fff3cd; + --bs-table-striped-bg: #f2e7c3; + --bs-table-striped-color: #000; + --bs-table-active-bg: #e6dbb9; + --bs-table-active-color: #000; + --bs-table-hover-bg: #ece1be; + --bs-table-hover-color: #000; + color: #000; + border-color: #e6dbb9; +} + +.table-danger { + --bs-table-bg: #f8d7da; + --bs-table-striped-bg: #eccccf; + --bs-table-striped-color: #000; + --bs-table-active-bg: #dfc2c4; + --bs-table-active-color: #000; + --bs-table-hover-bg: #e5c7ca; + --bs-table-hover-color: #000; + color: #000; + border-color: #dfc2c4; +} + +.table-light { + --bs-table-bg: #f8f9fa; + --bs-table-striped-bg: #ecedee; + --bs-table-striped-color: #000; + --bs-table-active-bg: #dfe0e1; + --bs-table-active-color: #000; + --bs-table-hover-bg: #e5e6e7; + --bs-table-hover-color: #000; + color: #000; + border-color: #dfe0e1; +} + +.table-dark { + --bs-table-bg: #212529; + --bs-table-striped-bg: #2c3034; + --bs-table-striped-color: #fff; + --bs-table-active-bg: #373b3e; + --bs-table-active-color: #fff; + --bs-table-hover-bg: #323539; + --bs-table-hover-color: #fff; + color: #fff; + border-color: #373b3e; +} + +.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: 0.5rem; +} + +.col-form-label { + padding-top: calc(0.375rem + 1px); + padding-bottom: calc(0.375rem + 1px); + margin-bottom: 0; + font-size: inherit; + line-height: 1.5; +} + +.col-form-label-lg { + padding-top: calc(0.5rem + 1px); + padding-bottom: calc(0.5rem + 1px); + font-size: 1.25rem; +} + +.col-form-label-sm { + padding-top: calc(0.25rem + 1px); + padding-bottom: calc(0.25rem + 1px); + font-size: 0.875rem; +} + +.form-text { + margin-top: 0.25rem; + font-size: 0.875em; + color: #6c757d; +} + +.form-control { + display: block; + width: 100%; + padding: 0.375rem 0.75rem; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #212529; + background-color: #fff; + background-clip: padding-box; + border: 1px solid #ced4da; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + border-radius: 0.25rem; + transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} +@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: #212529; + background-color: #fff; + border-color: #86b7fe; + outline: 0; +###### box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); +} +.form-control::-webkit-date-and-time-value { + height: 1.5em; +} +.form-control::-moz-placeholder { + color: #6c757d; + opacity: 1; +} +.form-control::placeholder { + color: #6c757d; + opacity: 1; +} +.form-control:disabled, .form-control[readonly] { + background-color: #e9ecef; + opacity: 1; +} +.form-control::file-selector-button { + padding: 0.375rem 0.75rem; + margin: -0.375rem -0.75rem; + -webkit-margin-end: 0.75rem; + margin-inline-end: 0.75rem; + color: #212529; + background-color: #e9ecef; + pointer-events: none; + border-color: inherit; + border-style: solid; + border-width: 0; + border-inline-end-width: 1px; + border-radius: 0; + 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; +} +@media (prefers-reduced-motion: reduce) { + .form-control::file-selector-button { + transition: none; + } +} +.form-control:hover:not(:disabled):not([readonly])::file-selector-button { + background-color: #dde0e3; +} +.form-control::-webkit-file-upload-button { + padding: 0.375rem 0.75rem; + margin: -0.375rem -0.75rem; + -webkit-margin-end: 0.75rem; + margin-inline-end: 0.75rem; + color: #212529; + background-color: #e9ecef; + pointer-events: none; + border-color: inherit; + border-style: solid; + border-width: 0; + border-inline-end-width: 1px; + border-radius: 0; + -webkit-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; + 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; +} +@media (prefers-reduced-motion: reduce) { + .form-control::-webkit-file-upload-button { + -webkit-transition: none; + transition: none; + } +} +.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button { + background-color: #dde0e3; +} + +.form-control-plaintext { + display: block; + width: 100%; + padding: 0.375rem 0; + margin-bottom: 0; + line-height: 1.5; + color: #212529; + background-color: transparent; + border: solid transparent; + border-width: 1px 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.5em + 0.5rem + 2px); + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + border-radius: 0.2rem; +} +.form-control-sm::file-selector-button { + padding: 0.25rem 0.5rem; + margin: -0.25rem -0.5rem; + -webkit-margin-end: 0.5rem; + margin-inline-end: 0.5rem; +} +.form-control-sm::-webkit-file-upload-button { + padding: 0.25rem 0.5rem; + margin: -0.25rem -0.5rem; + -webkit-margin-end: 0.5rem; + margin-inline-end: 0.5rem; +} + +.form-control-lg { + min-height: calc(1.5em + 1rem + 2px); + padding: 0.5rem 1rem; + font-size: 1.25rem; + border-radius: 0.3rem; +} +.form-control-lg::file-selector-button { + padding: 0.5rem 1rem; + margin: -0.5rem -1rem; + -webkit-margin-end: 1rem; + margin-inline-end: 1rem; +} +.form-control-lg::-webkit-file-upload-button { + padding: 0.5rem 1rem; + margin: -0.5rem -1rem; + -webkit-margin-end: 1rem; + margin-inline-end: 1rem; +} + +textarea.form-control { + min-height: calc(1.5em + 0.75rem + 2px); +} +textarea.form-control-sm { + min-height: calc(1.5em + 0.5rem + 2px); +} +textarea.form-control-lg { + min-height: calc(1.5em + 1rem + 2px); +} + +.form-control-color { + width: 3rem; + height: auto; + padding: 0.375rem; +} +.form-control-color:not(:disabled):not([readonly]) { + cursor: pointer; +} +.form-control-color::-moz-color-swatch { + height: 1.5em; + border-radius: 0.25rem; +} +.form-control-color::-webkit-color-swatch { + height: 1.5em; + border-radius: 0.25rem; +} + +.form-select { + display: block; + width: 100%; + padding: 0.375rem 2.25rem 0.375rem 0.75rem; + -moz-padding-start: calc(0.75rem - 3px); + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #212529; + background-color: #fff; + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"); + background-repeat: no-repeat; + background-position: right 0.75rem center; + background-size: 16px 12px; + border: 1px solid #ced4da; + border-radius: 0.25rem; + transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; +} +@media (prefers-reduced-motion: reduce) { + .form-select { + transition: none; + } +} +.form-select:focus { + border-color: #86b7fe; + outline: 0; +###### box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); +} +.form-select[multiple], .form-select[size]:not([size="1"]) { + padding-right: 0.75rem; + background-image: none; +} +.form-select:disabled { + background-color: #e9ecef; +} +.form-select:-moz-focusring { + color: transparent; + text-shadow: 0 0 0 #212529; +} + +.form-select-sm { + padding-top: 0.25rem; + padding-bottom: 0.25rem; + padding-left: 0.5rem; + font-size: 0.875rem; +} + +.form-select-lg { + padding-top: 0.5rem; + padding-bottom: 0.5rem; + padding-left: 1rem; + font-size: 1.25rem; +} + +.form-check { + display: block; + min-height: 1.5rem; + padding-left: 1.5em; + margin-bottom: 0.125rem; +} +.form-check .form-check-input { + float: left; + margin-left: -1.5em; +} + +.form-check-input { + width: 1em; + height: 1em; + margin-top: 0.25em; + vertical-align: top; + background-color: #fff; + background-repeat: no-repeat; + background-position: center; + background-size: contain; + border: 1px solid rgba(0, 0, 0, 0.25); + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + -webkit-print-color-adjust: exact; + color-adjust: exact; +} +.form-check-input[type=checkbox] { + border-radius: 0.25em; +} +.form-check-input[type=radio] { + border-radius: 50%; +} +.form-check-input:active { + filter: brightness(90%); +} +.form-check-input:focus { + border-color: #86b7fe; + outline: 0; +###### box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); +} + .form-check-input:checked { + background-color: #008ae6; /*#0d6efd;*/ + border-color: #008ae6; /*#0d6efd;*/ + } +.form-check-input:checked[type=checkbox] { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10l3 3l6-6'/%3e%3c/svg%3e"); +} +.form-check-input:checked[type=radio] { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e"); +} + .form-check-input[type=checkbox]:indeterminate { + background-color: #008ae6; /*#0d6efd;*/ + border-color: #008ae6; /*#0d6efd;*/ + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%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: 0.5; +} +.form-check-input[disabled] ~ .form-check-label, .form-check-input:disabled ~ .form-check-label { + opacity: 0.5; +} + +.form-switch { + padding-left: 2.5em; +} +.form-switch .form-check-input { + width: 2em; + margin-left: -2.5em; + background-image: 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"); + background-position: left center; + border-radius: 2em; + transition: background-position 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .form-switch .form-check-input { + transition: none; + } +} +.form-switch .form-check-input:focus { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2386b7fe'/%3e%3c/svg%3e"); +} +.form-switch .form-check-input:checked { + background-position: right center; + background-image: 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-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: 0.65; +} + +.form-range { + width: 100%; + height: 1.5rem; + padding: 0; + background-color: transparent; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; +} +.form-range:focus { + outline: 0; +} +.form-range:focus::-webkit-slider-thumb { + box-shadow: 0 0 0 1px #fff, 0 0 0 0.25rem rgba(13, 110, 253, 0.25); +} +.form-range:focus::-moz-range-thumb { + box-shadow: 0 0 0 1px #fff, 0 0 0 0.25rem rgba(13, 110, 253, 0.25); +} +.form-range::-moz-focus-outer { + border: 0; +} + .form-range::-webkit-slider-thumb { + width: 1rem; + height: 1rem; + margin-top: -0.25rem; + background-color: #008ae6; /*#0d6efd;*/ + border: 0; + border-radius: 1rem; + -webkit-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + -webkit-appearance: none; + appearance: none; + } +@media (prefers-reduced-motion: reduce) { + .form-range::-webkit-slider-thumb { + -webkit-transition: none; + transition: none; + } +} +.form-range::-webkit-slider-thumb:active { + background-color: #b6d4fe; +} +.form-range::-webkit-slider-runnable-track { + width: 100%; + height: 0.5rem; + color: transparent; + cursor: pointer; + background-color: #dee2e6; + border-color: transparent; + border-radius: 1rem; +} +.form-range::-moz-range-thumb { + width: 1rem; + height: 1rem; + background-color: #008ae6; /*#0d6efd;*/ + border: 0; + border-radius: 1rem; + -moz-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + -moz-appearance: none; + appearance: none; +} +@media (prefers-reduced-motion: reduce) { + .form-range::-moz-range-thumb { + -moz-transition: none; + transition: none; + } +} +.form-range::-moz-range-thumb:active { + background-color: #b6d4fe; +} +.form-range::-moz-range-track { + width: 100%; + height: 0.5rem; + color: transparent; + cursor: pointer; + background-color: #dee2e6; + border-color: transparent; + border-radius: 1rem; +} +.form-range:disabled { + pointer-events: none; +} +.form-range:disabled::-webkit-slider-thumb { + background-color: #adb5bd; +} +.form-range:disabled::-moz-range-thumb { + background-color: #adb5bd; +} + +.form-floating { + position: relative; +} +.form-floating > .form-control, +.form-floating > .form-select { + height: calc(3.5rem + 2px); + line-height: 1.25; +} +.form-floating > label { + position: absolute; + top: 0; + left: 0; + height: 100%; + padding: 1rem 0.75rem; + pointer-events: none; + border: 1px solid transparent; + transform-origin: 0 0; + transition: opacity 0.1s ease-in-out, transform 0.1s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .form-floating > label { + transition: none; + } +} +.form-floating > .form-control { + padding: 1rem 0.75rem; +} +.form-floating > .form-control::-moz-placeholder { + color: transparent; +} +.form-floating > .form-control::placeholder { + color: transparent; +} +.form-floating > .form-control:not(:-moz-placeholder-shown) { + padding-top: 1.625rem; + padding-bottom: 0.625rem; +} +.form-floating > .form-control:focus, .form-floating > .form-control:not(:placeholder-shown) { + padding-top: 1.625rem; + padding-bottom: 0.625rem; +} +.form-floating > .form-control:-webkit-autofill { + padding-top: 1.625rem; + padding-bottom: 0.625rem; +} +.form-floating > .form-select { + padding-top: 1.625rem; + padding-bottom: 0.625rem; +} +.form-floating > .form-control:not(:-moz-placeholder-shown) ~ label { + opacity: 0.65; + transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem); +} +.form-floating > .form-control:focus ~ label, +.form-floating > .form-control:not(:placeholder-shown) ~ label, +.form-floating > .form-select ~ label { + opacity: 0.65; + transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem); +} +.form-floating > .form-control:-webkit-autofill ~ label { + opacity: 0.65; + transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem); +} + +.input-group { + position: relative; + display: flex; + flex-wrap: wrap; + align-items: stretch; + width: 100%; +} +.input-group > .form-control, +.input-group > .form-select { + position: relative; + flex: 1 1 auto; + width: 1%; + min-width: 0; +} +.input-group > .form-control:focus, +.input-group > .form-select:focus { + z-index: 3; +} +.input-group .btn { + position: relative; + z-index: 2; +} +.input-group .btn:focus { + z-index: 3; +} + +.input-group-text { + display: flex; + align-items: center; + padding: 0.375rem 0.75rem; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #212529; + text-align: center; + white-space: nowrap; + background-color: #e9ecef; + border: 1px solid #ced4da; + border-radius: 0.25rem; +} + +.input-group-lg > .form-control, +.input-group-lg > .form-select, +.input-group-lg > .input-group-text, +.input-group-lg > .btn { + padding: 0.5rem 1rem; + font-size: 1.25rem; + border-radius: 0.3rem; +} + +.input-group-sm > .form-control, +.input-group-sm > .form-select, +.input-group-sm > .input-group-text, +.input-group-sm > .btn { + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + border-radius: 0.2rem; +} + +.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), +.input-group:not(.has-validation) > .dropdown-toggle:nth-last-child(n+3) { + 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), +.input-group.has-validation > .dropdown-toggle:nth-last-child(n+4) { + 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: -1px; + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.valid-feedback { + display: none; + width: 100%; + margin-top: 0.25rem; + font-size: 0.875em; + color: #198754; +} + +.valid-tooltip { + position: absolute; + top: 100%; + z-index: 5; + display: none; + max-width: 100%; + padding: 0.25rem 0.5rem; + margin-top: 0.1rem; + font-size: 0.875rem; + color: #fff; + background-color: rgba(25, 135, 84, 0.9); + border-radius: 0.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: #198754; + padding-right: calc(1.5em + 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='%23198754' d='M2.3 6.73L.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.375em + 0.1875rem) center; + background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); +} +.was-validated .form-control:valid:focus, .form-control.is-valid:focus { + border-color: #198754; +###### box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.25); +} + +.was-validated textarea.form-control:valid, textarea.form-control.is-valid { + padding-right: calc(1.5em + 0.75rem); + background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); +} + +.was-validated .form-select:valid, .form-select.is-valid { + border-color: #198754; +} +.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"] { + padding-right: 4.125rem; + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"), url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73L.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-position: right 0.75rem center, center right 2.25rem; + background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); +} +.was-validated .form-select:valid:focus, .form-select.is-valid:focus { + border-color: #198754; +###### box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.25); +} + +.was-validated .form-check-input:valid, .form-check-input.is-valid { + border-color: #198754; +} +.was-validated .form-check-input:valid:checked, .form-check-input.is-valid:checked { + background-color: #198754; +} +.was-validated .form-check-input:valid:focus, .form-check-input.is-valid:focus { +###### box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.25); +} +.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label { + color: #198754; +} + +.form-check-inline .form-check-input ~ .valid-feedback { + margin-left: 0.5em; +} + +.was-validated .input-group .form-control:valid, .input-group .form-control.is-valid, +.was-validated .input-group .form-select:valid, +.input-group .form-select.is-valid { + z-index: 1; +} +.was-validated .input-group .form-control:valid:focus, .input-group .form-control.is-valid:focus, +.was-validated .input-group .form-select:valid:focus, +.input-group .form-select.is-valid:focus { + z-index: 3; +} + +.invalid-feedback { + display: none; + width: 100%; + margin-top: 0.25rem; + font-size: 0.875em; + color: #dc3545; +} + +.invalid-tooltip { + position: absolute; + top: 100%; + z-index: 5; + display: none; + max-width: 100%; + padding: 0.25rem 0.5rem; + margin-top: 0.1rem; + font-size: 0.875rem; + color: #fff; + background-color: rgba(220, 53, 69, 0.9); + border-radius: 0.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: #dc3545; + padding-right: calc(1.5em + 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='%23dc3545'%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='%23dc3545' stroke='none'/%3e%3c/svg%3e"); + background-repeat: no-repeat; + background-position: right calc(0.375em + 0.1875rem) center; + background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); +} +.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus { + border-color: #dc3545; +###### box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.25); +} + +.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid { + padding-right: calc(1.5em + 0.75rem); + background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); +} + +.was-validated .form-select:invalid, .form-select.is-invalid { + border-color: #dc3545; +} +.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"] { + padding-right: 4.125rem; + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"), 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='%23dc3545'%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='%23dc3545' stroke='none'/%3e%3c/svg%3e"); + background-position: right 0.75rem center, center right 2.25rem; + background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); +} +.was-validated .form-select:invalid:focus, .form-select.is-invalid:focus { + border-color: #dc3545; +###### box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.25); +} + +.was-validated .form-check-input:invalid, .form-check-input.is-invalid { + border-color: #dc3545; +} +.was-validated .form-check-input:invalid:checked, .form-check-input.is-invalid:checked { + background-color: #dc3545; +} +.was-validated .form-check-input:invalid:focus, .form-check-input.is-invalid:focus { +###### box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.25); +} +.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label { + color: #dc3545; +} + +.form-check-inline .form-check-input ~ .invalid-feedback { + margin-left: 0.5em; +} + +.was-validated .input-group .form-control:invalid, .input-group .form-control.is-invalid, +.was-validated .input-group .form-select:invalid, +.input-group .form-select.is-invalid { + z-index: 2; +} +.was-validated .input-group .form-control:invalid:focus, .input-group .form-control.is-invalid:focus, +.was-validated .input-group .form-select:invalid:focus, +.input-group .form-select.is-invalid:focus { + z-index: 3; +} + +.btn { + display: inline-block; + font-weight: 400; + line-height: 1.5; + color: #212529; + text-align: center; + text-decoration: none; + vertical-align: middle; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + background-color: transparent; + border: 1px solid transparent; + padding: 0.375rem 0.75rem; + font-size: 1rem; + border-radius: 0.25rem; + 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; +} +@media (prefers-reduced-motion: reduce) { + .btn { + transition: none; + } +} +.btn:hover { + color: #212529; +} +.btn-check:focus + .btn, .btn:focus { + outline: 0; +###### box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); +} +.btn:disabled, .btn.disabled, fieldset:disabled .btn { + pointer-events: none; + opacity: 0.65; +} + +.btn-primary { + color: #fff; + background-color: #008ae6; /*#0d6efd;*/ + border-color: #008ae6; /*#0d6efd;*/ +} +.btn-primary:hover { + color: #fff; + background-color: #0b5ed7; + border-color: #0a58ca; +} +.btn-check:focus + .btn-primary, .btn-primary:focus { + color: #fff; + background-color: #0b5ed7; + border-color: #0a58ca; +###### box-shadow: 0 0 0 0.25rem rgba(49, 132, 253, 0.5); +} +.btn-check:checked + .btn-primary, .btn-check:active + .btn-primary, .btn-primary:active, .btn-primary.active, .show > .btn-primary.dropdown-toggle { + color: #fff; + background-color: #0a58ca; + border-color: #0a53be; +} +.btn-check:checked + .btn-primary:focus, .btn-check:active + .btn-primary:focus, .btn-primary:active:focus, .btn-primary.active:focus, .show > .btn-primary.dropdown-toggle:focus { +###### box-shadow: 0 0 0 0.25rem rgba(49, 132, 253, 0.5); +} + .btn-primary:disabled, .btn-primary.disabled { + color: #fff; + background-color: #008ae6; /*#0d6efd;*/ + border-color: #008ae6; /*#0d6efd;*/ + } + +.btn-secondary { + color: #fff; + background-color: #6c757d; + border-color: #6c757d; +} +.btn-secondary:hover { + color: #fff; + background-color: #5c636a; + border-color: #565e64; +} +.btn-check:focus + .btn-secondary, .btn-secondary:focus { + color: #fff; + background-color: #5c636a; + border-color: #565e64; +###### box-shadow: 0 0 0 0.25rem rgba(130, 138, 145, 0.5); +} +.btn-check:checked + .btn-secondary, .btn-check:active + .btn-secondary, .btn-secondary:active, .btn-secondary.active, .show > .btn-secondary.dropdown-toggle { + color: #fff; + background-color: #565e64; + border-color: #51585e; +} +.btn-check:checked + .btn-secondary:focus, .btn-check:active + .btn-secondary:focus, .btn-secondary:active:focus, .btn-secondary.active:focus, .show > .btn-secondary.dropdown-toggle:focus { +###### box-shadow: 0 0 0 0.25rem rgba(130, 138, 145, 0.5); +} +.btn-secondary:disabled, .btn-secondary.disabled { + color: #fff; + background-color: #6c757d; + border-color: #6c757d; +} + +.btn-success { + color: #fff; + background-color: #1c975d; + border-color: #1c975d; +} + .btn-success:hover { + color: #fff; + background-color: #188150;/*#157347;*/ + border-color: #146c43; + } +.btn-check:focus + .btn-success, .btn-success:focus { + color: #fff; + background-color: #157347; + border-color: #146c43; +###### box-shadow: 0 0 0 0.25rem rgba(60, 153, 110, 0.5); +} +.btn-check:checked + .btn-success, .btn-check:active + .btn-success, .btn-success:active, .btn-success.active, .show > .btn-success.dropdown-toggle { + color: #fff; + background-color: #146c43; + border-color: #13653f; +} +.btn-check:checked + .btn-success:focus, .btn-check:active + .btn-success:focus, .btn-success:active:focus, .btn-success.active:focus, .show > .btn-success.dropdown-toggle:focus { +###### box-shadow: 0 0 0 0.25rem rgba(60, 153, 110, 0.5); +} +.btn-success:disabled, .btn-success.disabled { + color: #fff; + background-color: #198754; + border-color: #198754; +} + +.btn-info { + color: #000; + background-color: #0dcaf0; + border-color: #0dcaf0; +} +.btn-info:hover { + color: #000; + background-color: #31d2f2; + border-color: #25cff2; +} +.btn-check:focus + .btn-info, .btn-info:focus { + color: #000; + background-color: #31d2f2; + border-color: #25cff2; +###### box-shadow: 0 0 0 0.25rem rgba(11, 172, 204, 0.5); +} +.btn-check:checked + .btn-info, .btn-check:active + .btn-info, .btn-info:active, .btn-info.active, .show > .btn-info.dropdown-toggle { + color: #000; + background-color: #3dd5f3; + border-color: #25cff2; +} +.btn-check:checked + .btn-info:focus, .btn-check:active + .btn-info:focus, .btn-info:active:focus, .btn-info.active:focus, .show > .btn-info.dropdown-toggle:focus { +###### box-shadow: 0 0 0 0.25rem rgba(11, 172, 204, 0.5); +} +.btn-info:disabled, .btn-info.disabled { + color: #000; + background-color: #0dcaf0; + border-color: #0dcaf0; +} + +.btn-warning { + color: #000; + background-color: #ffcf66; /* т.жълто */ + border-color: #ffcf66; /* т.жълто */ +} +.btn-warning:hover { + color: #000; + background-color: #ffd780; /* ср.жълто */ + border-color: #ffdf99; /* св.жълто */ +} +.btn-check:focus + .btn-warning, .btn-warning:focus { + color: #000; + background-color: #ffd780; /* ср.жълто */ + border-color: #ffd780; /* ср.жълто */ + ###### box-shadow: 0 0 0 0.25rem rgba(217, 164, 6, 0.5); +} +.btn-check:checked + .btn-warning, .btn-check:active + .btn-warning, .btn-warning:active, .btn-warning.active, .show > .btn-warning.dropdown-toggle { + color: #000; + background-color: #ffdf99; /* св.жълто */ + border-color: #ffd780; /* ср.жълто */ +} +.btn-check:checked + .btn-warning:focus, .btn-check:active + .btn-warning:focus, .btn-warning:active:focus, .btn-warning.active:focus, .show > .btn-warning.dropdown-toggle:focus { +###### box-shadow: 0 0 0 0.25rem rgba(217, 164, 6, 0.5); +} +.btn-warning:disabled, .btn-warning.disabled { + color: #000; + background-color: #ffcf66; /* т.жълто */ + border-color: #ffcf66; /* т.жълто */ +} + +.btn-danger { + color: #fff; + background-color: #e62e00; /* червено #ff471a; /* #dc3545; */ + border-color: #e62e00; /* червено #ff471a; /* #dc3545; */ +} +.btn-danger:hover { + color: #fff; + background-color: #cc2900; /* т.червено #bb2d3b; */ + border-color: #cc2900; /* т.червено #b02a37; */ +} +.btn-check:focus + .btn-danger, .btn-danger:focus { + color: #fff; + background-color: #cc2900; /* т.червено #bb2d3b; */ + border-color: #cc2900; /* т.червено #b02a37; */ + ###### box-shadow: 0 0 0 0.25rem rgba(225, 83, 97, 0.5); +} +.btn-check:checked + .btn-danger, .btn-check:active + .btn-danger, .btn-danger:active, .btn-danger.active, .show > .btn-danger.dropdown-toggle { + color: #fff; + background-color: #cc2900; /* т.червено #b02a37; */ + border-color: #b32400; /* #a52834; */ +} +.btn-check:checked + .btn-danger:focus, .btn-check:active + .btn-danger:focus, .btn-danger:active:focus, .btn-danger.active:focus, .show > .btn-danger.dropdown-toggle:focus { +###### box-shadow: 0 0 0 0.25rem rgba(225, 83, 97, 0.5); +} +.btn-danger:disabled, .btn-danger.disabled { + color: #fff; + background-color: #e62e00 /* червено #ff471a; /* #dc3545; */ + border-color: #e62e00 /* червено #ff471a; /* #dc3545; */ +} + +.btn-light { + color: #000; + background-color: #f8f9fa; + border-color: #f8f9fa; +} +.btn-light:hover { + color: #000; + background-color: #f9fafb; + border-color: #f9fafb; +} +.btn-check:focus + .btn-light, .btn-light:focus { + color: #000; + background-color: #f9fafb; + border-color: #f9fafb; +###### box-shadow: 0 0 0 0.25rem rgba(211, 212, 213, 0.5); +} +.btn-check:checked + .btn-light, .btn-check:active + .btn-light, .btn-light:active, .btn-light.active, .show > .btn-light.dropdown-toggle { + color: #000; + background-color: #f9fafb; + border-color: #f9fafb; +} +.btn-check:checked + .btn-light:focus, .btn-check:active + .btn-light:focus, .btn-light:active:focus, .btn-light.active:focus, .show > .btn-light.dropdown-toggle:focus { +###### box-shadow: 0 0 0 0.25rem rgba(211, 212, 213, 0.5); +} +.btn-light:disabled, .btn-light.disabled { + color: #000; + background-color: #f8f9fa; + border-color: #f8f9fa; +} + +.btn-dark { + color: #fff; + background-color: #212529; + border-color: #212529; +} +.btn-dark:hover { + color: #fff; + background-color: #1c1f23; + border-color: #1a1e21; +} +.btn-check:focus + .btn-dark, .btn-dark:focus { + color: #fff; + background-color: #1c1f23; + border-color: #1a1e21; +###### box-shadow: 0 0 0 0.25rem rgba(66, 70, 73, 0.5); +} +.btn-check:checked + .btn-dark, .btn-check:active + .btn-dark, .btn-dark:active, .btn-dark.active, .show > .btn-dark.dropdown-toggle { + color: #fff; + background-color: #1a1e21; + border-color: #191c1f; +} +.btn-check:checked + .btn-dark:focus, .btn-check:active + .btn-dark:focus, .btn-dark:active:focus, .btn-dark.active:focus, .show > .btn-dark.dropdown-toggle:focus { +###### box-shadow: 0 0 0 0.25rem rgba(66, 70, 73, 0.5); +} +.btn-dark:disabled, .btn-dark.disabled { + color: #fff; + background-color: #212529; + border-color: #212529; +} + +.btn-outline-primary { + color: #008ae6; /*#0d6efd;*/ + border-color: #008ae6; /*#0d6efd;*/ +} + .btn-outline-primary:hover { + color: #fff; + background-color: #008ae6; /*#0d6efd;*/ + border-color: #008ae6; /*#0d6efd;*/ + } +.btn-check:focus + .btn-outline-primary, .btn-outline-primary:focus { +###### box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.5); +} + .btn-check:checked + .btn-outline-primary, .btn-check:active + .btn-outline-primary, .btn-outline-primary:active, .btn-outline-primary.active, .btn-outline-primary.dropdown-toggle.show { + color: #fff; + background-color: #008ae6; /*#0d6efd;*/ + border-color: #008ae6; /*#0d6efd;*/ + } +.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.dropdown-toggle.show:focus { +###### box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.5); +} + .btn-outline-primary:disabled, .btn-outline-primary.disabled { + color: #008ae6; /*#0d6efd;*/ + background-color: transparent; + } + +.btn-outline-secondary { + color: #6c757d; + border-color: #6c757d; +} +.btn-outline-secondary:hover { + color: #fff; + background-color: #6c757d; + border-color: #6c757d; +} +.btn-check:focus + .btn-outline-secondary, .btn-outline-secondary:focus { +###### box-shadow: 0 0 0 0.25rem rgba(108, 117, 125, 0.5); +} +.btn-check:checked + .btn-outline-secondary, .btn-check:active + .btn-outline-secondary, .btn-outline-secondary:active, .btn-outline-secondary.active, .btn-outline-secondary.dropdown-toggle.show { + color: #fff; + background-color: #6c757d; + border-color: #6c757d; +} +.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.dropdown-toggle.show:focus { +###### box-shadow: 0 0 0 0.25rem rgba(108, 117, 125, 0.5); +} +.btn-outline-secondary:disabled, .btn-outline-secondary.disabled { + color: #6c757d; + background-color: transparent; +} + +.btn-outline-success { + color: #198754; + border-color: #198754; +} +.btn-outline-success:hover { + color: #fff; + background-color: #198754; + border-color: #198754; +} +.btn-check:focus + .btn-outline-success, .btn-outline-success:focus { +###### box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.5); +} +.btn-check:checked + .btn-outline-success, .btn-check:active + .btn-outline-success, .btn-outline-success:active, .btn-outline-success.active, .btn-outline-success.dropdown-toggle.show { + color: #fff; + background-color: #198754; + border-color: #198754; +} +.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.dropdown-toggle.show:focus { +### box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.5); +} +.btn-outline-success:disabled, .btn-outline-success.disabled { + color: #198754; + background-color: transparent; +} + +.btn-outline-info { + color: #0dcaf0; + border-color: #0dcaf0; +} +.btn-outline-info:hover { + color: #000; + background-color: #0dcaf0; + border-color: #0dcaf0; +} +.btn-check:focus + .btn-outline-info, .btn-outline-info:focus { +### box-shadow: 0 0 0 0.25rem rgba(13, 202, 240, 0.5); +} +.btn-check:checked + .btn-outline-info, .btn-check:active + .btn-outline-info, .btn-outline-info:active, .btn-outline-info.active, .btn-outline-info.dropdown-toggle.show { + color: #000; + background-color: #0dcaf0; + border-color: #0dcaf0; +} +.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.dropdown-toggle.show:focus { +### box-shadow: 0 0 0 0.25rem rgba(13, 202, 240, 0.5); +} +.btn-outline-info:disabled, .btn-outline-info.disabled { + color: #0dcaf0; + background-color: transparent; +} + +.btn-outline-warning { + color: #ffc107; + border-color: #ffc107; +} +.btn-outline-warning:hover { + color: #000; + background-color: #ffc107; + border-color: #ffc107; +} +.btn-check:focus + .btn-outline-warning, .btn-outline-warning:focus { +### box-shadow: 0 0 0 0.25rem rgba(255, 193, 7, 0.5); +} +.btn-check:checked + .btn-outline-warning, .btn-check:active + .btn-outline-warning, .btn-outline-warning:active, .btn-outline-warning.active, .btn-outline-warning.dropdown-toggle.show { + color: #000; + background-color: #ffc107; + border-color: #ffc107; +} +.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.dropdown-toggle.show:focus { +### box-shadow: 0 0 0 0.25rem rgba(255, 193, 7, 0.5); +} +.btn-outline-warning:disabled, .btn-outline-warning.disabled { + color: #ffc107; + background-color: transparent; +} + +.btn-outline-danger { + color: #dc3545; + border-color: #dc3545; +} +.btn-outline-danger:hover { + color: #fff; + background-color: #dc3545; + border-color: #dc3545; +} +.btn-check:focus + .btn-outline-danger, .btn-outline-danger:focus { +### box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.5); +} +.btn-check:checked + .btn-outline-danger, .btn-check:active + .btn-outline-danger, .btn-outline-danger:active, .btn-outline-danger.active, .btn-outline-danger.dropdown-toggle.show { + color: #fff; + background-color: #dc3545; + border-color: #dc3545; +} +.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.dropdown-toggle.show:focus { +### box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.5); +} +.btn-outline-danger:disabled, .btn-outline-danger.disabled { + color: #dc3545; + background-color: transparent; +} + +.btn-outline-light { + color: #f8f9fa; + border-color: #f8f9fa; +} +.btn-outline-light:hover { + color: #000; + background-color: #f8f9fa; + border-color: #f8f9fa; +} +.btn-check:focus + .btn-outline-light, .btn-outline-light:focus { +### box-shadow: 0 0 0 0.25rem rgba(248, 249, 250, 0.5); +} +.btn-check:checked + .btn-outline-light, .btn-check:active + .btn-outline-light, .btn-outline-light:active, .btn-outline-light.active, .btn-outline-light.dropdown-toggle.show { + color: #000; + background-color: #f8f9fa; + border-color: #f8f9fa; +} +.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.dropdown-toggle.show:focus { +### box-shadow: 0 0 0 0.25rem rgba(248, 249, 250, 0.5); +} +.btn-outline-light:disabled, .btn-outline-light.disabled { + color: #f8f9fa; + background-color: transparent; +} + +.btn-outline-dark { + color: #212529; + border-color: #212529; +} +.btn-outline-dark:hover { + color: #fff; + background-color: #212529; + border-color: #212529; +} +.btn-check:focus + .btn-outline-dark, .btn-outline-dark:focus { +### box-shadow: 0 0 0 0.25rem rgba(33, 37, 41, 0.5); +} +.btn-check:checked + .btn-outline-dark, .btn-check:active + .btn-outline-dark, .btn-outline-dark:active, .btn-outline-dark.active, .btn-outline-dark.dropdown-toggle.show { + color: #fff; + background-color: #212529; + border-color: #212529; +} +.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.dropdown-toggle.show:focus { +### box-shadow: 0 0 0 0.25rem rgba(33, 37, 41, 0.5); +} +.btn-outline-dark:disabled, .btn-outline-dark.disabled { + color: #212529; + background-color: transparent; +} + +.btn-link { + font-weight: 400; + color: #008ae6; /*#0d6efd;*/ /* син */ + text-decoration: underline; +} +.btn-link:hover { + color: #0a58ca; +} +.btn-link:disabled, .btn-link.disabled { + color: #6c757d; +} + +.btn-lg, .btn-group-lg > .btn { + padding: 0.5rem 1rem; + font-size: 1.25rem; + border-radius: 0.3rem; +} + +.btn-sm, .btn-group-sm > .btn { + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + border-radius: 0.2rem; +} + +.fade { + transition: opacity 0.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 0.35s ease; +} +@media (prefers-reduced-motion: reduce) { + .collapsing { + transition: none; + } +} +.collapsing.collapse-horizontal { + width: 0; + height: auto; + transition: width 0.35s ease; +} +@media (prefers-reduced-motion: reduce) { + .collapsing.collapse-horizontal { + transition: none; + } +} + +.dropup, +.dropend, +.dropdown, +.dropstart { + position: relative; +} + +.dropdown-toggle { + white-space: nowrap; +} +.dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid; + border-right: 0.3em solid transparent; + border-bottom: 0; + border-left: 0.3em solid transparent; +} +.dropdown-toggle:empty::after { + margin-left: 0; +} + +.dropdown-menu { + position: absolute; + z-index: 1000; + display: none; + min-width: 10rem; + padding: 0.5rem 0; + margin: 0; + font-size: 1rem; + color: #212529; + text-align: left; + list-style: none; + background-color: #fff; + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.15); + border-radius: 0.25rem; +} +.dropdown-menu[data-bs-popper] { + top: 100%; + left: 0; + margin-top: 0.125rem; +} + +.dropdown-menu-start { + --bs-position: start; +} +.dropdown-menu-start[data-bs-popper] { + right: auto; + left: 0; +} + +.dropdown-menu-end { + --bs-position: end; +} +.dropdown-menu-end[data-bs-popper] { + right: 0; + left: auto; +} + +@media (min-width: 576px) { + .dropdown-menu-sm-start { + --bs-position: start; + } + .dropdown-menu-sm-start[data-bs-popper] { + right: auto; + left: 0; + } + + .dropdown-menu-sm-end { + --bs-position: end; + } + .dropdown-menu-sm-end[data-bs-popper] { + right: 0; + left: auto; + } +} +@media (min-width: 768px) { + .dropdown-menu-md-start { + --bs-position: start; + } + .dropdown-menu-md-start[data-bs-popper] { + right: auto; + left: 0; + } + + .dropdown-menu-md-end { + --bs-position: end; + } + .dropdown-menu-md-end[data-bs-popper] { + right: 0; + left: auto; + } +} +@media (min-width: 992px) { + .dropdown-menu-lg-start { + --bs-position: start; + } + .dropdown-menu-lg-start[data-bs-popper] { + right: auto; + left: 0; + } + + .dropdown-menu-lg-end { + --bs-position: end; + } + .dropdown-menu-lg-end[data-bs-popper] { + right: 0; + left: auto; + } +} +@media (min-width: 1200px) { + .dropdown-menu-xl-start { + --bs-position: start; + } + .dropdown-menu-xl-start[data-bs-popper] { + right: auto; + left: 0; + } + + .dropdown-menu-xl-end { + --bs-position: end; + } + .dropdown-menu-xl-end[data-bs-popper] { + right: 0; + left: auto; + } +} +@media (min-width: 1400px) { + .dropdown-menu-xxl-start { + --bs-position: start; + } + .dropdown-menu-xxl-start[data-bs-popper] { + right: auto; + left: 0; + } + + .dropdown-menu-xxl-end { + --bs-position: end; + } + .dropdown-menu-xxl-end[data-bs-popper] { + right: 0; + left: auto; + } +} +.dropup .dropdown-menu[data-bs-popper] { + top: auto; + bottom: 100%; + margin-top: 0; + margin-bottom: 0.125rem; +} +.dropup .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0; + border-right: 0.3em solid transparent; + border-bottom: 0.3em solid; + border-left: 0.3em solid transparent; +} +.dropup .dropdown-toggle:empty::after { + margin-left: 0; +} + +.dropend .dropdown-menu[data-bs-popper] { + top: 0; + right: auto; + left: 100%; + margin-top: 0; + margin-left: 0.125rem; +} +.dropend .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid transparent; + border-right: 0; + border-bottom: 0.3em solid transparent; + border-left: 0.3em solid; +} +.dropend .dropdown-toggle:empty::after { + margin-left: 0; +} +.dropend .dropdown-toggle::after { + vertical-align: 0; +} + +.dropstart .dropdown-menu[data-bs-popper] { + top: 0; + right: 100%; + left: auto; + margin-top: 0; + margin-right: 0.125rem; +} +.dropstart .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; +} +.dropstart .dropdown-toggle::after { + display: none; +} +.dropstart .dropdown-toggle::before { + display: inline-block; + margin-right: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid transparent; + border-right: 0.3em solid; + border-bottom: 0.3em solid transparent; +} +.dropstart .dropdown-toggle:empty::after { + margin-left: 0; +} +.dropstart .dropdown-toggle::before { + vertical-align: 0; +} + +.dropdown-divider { + height: 0; + margin: 0.5rem 0; + overflow: hidden; + border-top: 1px solid rgba(0, 0, 0, 0.15); +} + +.dropdown-item { + display: block; + width: 100%; + padding: 0.25rem 1rem; + clear: both; + font-weight: 400; + color: #212529; + text-align: inherit; + text-decoration: none; + white-space: nowrap; + background-color: transparent; + border: 0; +} +.dropdown-item:hover, .dropdown-item:focus { + color: #1e2125; + background-color: #e9ecef; +} + .dropdown-item.active, .dropdown-item:active { + color: #fff; + text-decoration: none; + background-color: #008ae6; /*#0d6efd;*/ + } +.dropdown-item.disabled, .dropdown-item:disabled { + color: #adb5bd; + pointer-events: none; + background-color: transparent; +} + +.dropdown-menu.show { + display: block; +} + +.dropdown-header { + display: block; + padding: 0.5rem 1rem; + margin-bottom: 0; + font-size: 0.875rem; + color: #6c757d; + white-space: nowrap; +} + +.dropdown-item-text { + display: block; + padding: 0.25rem 1rem; + color: #212529; +} + +.dropdown-menu-dark { + color: #dee2e6; + background-color: #343a40; + border-color: rgba(0, 0, 0, 0.15); +} +.dropdown-menu-dark .dropdown-item { + color: #dee2e6; +} +.dropdown-menu-dark .dropdown-item:hover, .dropdown-menu-dark .dropdown-item:focus { + color: #fff; + background-color: rgba(255, 255, 255, 0.15); +} + .dropdown-menu-dark .dropdown-item.active, .dropdown-menu-dark .dropdown-item:active { + color: #fff; + background-color: #008ae6; /*#0d6efd;*/ + } +.dropdown-menu-dark .dropdown-item.disabled, .dropdown-menu-dark .dropdown-item:disabled { + color: #adb5bd; +} +.dropdown-menu-dark .dropdown-divider { + border-color: rgba(0, 0, 0, 0.15); +} +.dropdown-menu-dark .dropdown-item-text { + color: #dee2e6; +} +.dropdown-menu-dark .dropdown-header { + color: #adb5bd; +} + +.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 > .btn:not(:first-child), +.btn-group > .btn-group:not(:first-child) { + margin-left: -1px; +} +.btn-group > .btn:not(:last-child):not(.dropdown-toggle), +.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: 0.5625rem; + padding-left: 0.5625rem; +} +.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: 0.375rem; + padding-left: 0.375rem; +} + +.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split { + padding-right: 0.75rem; + padding-left: 0.75rem; +} + +.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: -1px; +} +.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 { + display: flex; + flex-wrap: wrap; + padding-left: 0; + margin-bottom: 0; + list-style: none; +} + +.nav-link { + display: block; + padding: 0.5rem 1rem; + color: #008ae6; /*#0d6efd;*/ + text-decoration: none; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .nav-link { + transition: none; + } +} +.nav-link:hover, .nav-link:focus { + color: #0a58ca; +} +.nav-link.disabled { + color: #6c757d; + pointer-events: none; + cursor: default; +} + +.nav-tabs { + border-bottom: 1px solid #dee2e6; +} +.nav-tabs .nav-link { + margin-bottom: -1px; + background: none; + border: 1px solid transparent; + border-top-left-radius: 0.25rem; + border-top-right-radius: 0.25rem; +} +.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus { + border-color: #e9ecef #e9ecef #dee2e6; + isolation: isolate; +} +.nav-tabs .nav-link.disabled { + color: #6c757d; + background-color: transparent; + border-color: transparent; +} +.nav-tabs .nav-link.active, +.nav-tabs .nav-item.show .nav-link { + color: #495057; + background-color: #fff; + border-color: #dee2e6 #dee2e6 #fff; +} +.nav-tabs .dropdown-menu { + margin-top: -1px; + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.nav-pills .nav-link { + background: none; + border: 0; + border-radius: 0.25rem; +} + .nav-pills .nav-link.active, + .nav-pills .show > .nav-link { + color: #fff; + background-color: #008ae6; /*#0d6efd;*/ + } + +.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 { + position: relative; + display: flex; + flex-wrap: wrap; + align-items: center; + justify-content: space-between; + padding-top: 0.5rem; + padding-bottom: 0.5rem; +} +.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: 0.3125rem; + padding-bottom: 0.3125rem; + margin-right: 1rem; + font-size: 1.25rem; + text-decoration: none; + white-space: nowrap; +} +.navbar-nav { + display: flex; + flex-direction: column; + padding-left: 0; + margin-bottom: 0; + list-style: none; +} +.navbar-nav .nav-link { + padding-right: 0; + padding-left: 0; +} +.navbar-nav .dropdown-menu { + position: static; +} + +.navbar-text { + padding-top: 0.5rem; + padding-bottom: 0.5rem; +} + +.navbar-collapse { + flex-basis: 100%; + flex-grow: 1; + align-items: center; +} + +.navbar-toggler { + padding: 0.25rem 0.75rem; + font-size: 1.25rem; + line-height: 1; + background-color: transparent; + border: 1px solid transparent; + border-radius: 0.25rem; + transition: box-shadow 0.15s ease-in-out; +} +@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 0.25rem; +} + +.navbar-toggler-icon { + display: inline-block; + width: 1.5em; + height: 1.5em; + vertical-align: middle; + background-repeat: no-repeat; + background-position: center; + background-size: 100%; +} + +.navbar-nav-scroll { + max-height: var(--bs-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: 0.5rem; + padding-left: 0.5rem; + } + .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-header { + display: none; + } + .navbar-expand-sm .offcanvas { + position: inherit; + bottom: 0; + z-index: 1000; + flex-grow: 1; + visibility: visible !important; + background-color: transparent; + border-right: 0; + border-left: 0; + transition: none; + transform: none; + } + .navbar-expand-sm .offcanvas-top, +.navbar-expand-sm .offcanvas-bottom { + height: auto; + border-top: 0; + border-bottom: 0; + } + .navbar-expand-sm .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: 0.5rem; + padding-left: 0.5rem; + } + .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-header { + display: none; + } + .navbar-expand-md .offcanvas { + position: inherit; + bottom: 0; + z-index: 1000; + flex-grow: 1; + visibility: visible !important; + background-color: transparent; + border-right: 0; + border-left: 0; + transition: none; + transform: none; + } + .navbar-expand-md .offcanvas-top, +.navbar-expand-md .offcanvas-bottom { + height: auto; + border-top: 0; + border-bottom: 0; + } + .navbar-expand-md .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: 0.5rem; + padding-left: 0.5rem; + } + .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-header { + display: none; + } + .navbar-expand-lg .offcanvas { + position: inherit; + bottom: 0; + z-index: 1000; + flex-grow: 1; + visibility: visible !important; + background-color: transparent; + border-right: 0; + border-left: 0; + transition: none; + transform: none; + } + .navbar-expand-lg .offcanvas-top, +.navbar-expand-lg .offcanvas-bottom { + height: auto; + border-top: 0; + border-bottom: 0; + } + .navbar-expand-lg .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: 0.5rem; + padding-left: 0.5rem; + } + .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-header { + display: none; + } + .navbar-expand-xl .offcanvas { + position: inherit; + bottom: 0; + z-index: 1000; + flex-grow: 1; + visibility: visible !important; + background-color: transparent; + border-right: 0; + border-left: 0; + transition: none; + transform: none; + } + .navbar-expand-xl .offcanvas-top, +.navbar-expand-xl .offcanvas-bottom { + height: auto; + border-top: 0; + border-bottom: 0; + } + .navbar-expand-xl .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: 0.5rem; + padding-left: 0.5rem; + } + .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-header { + display: none; + } + .navbar-expand-xxl .offcanvas { + position: inherit; + bottom: 0; + z-index: 1000; + flex-grow: 1; + visibility: visible !important; + background-color: transparent; + border-right: 0; + border-left: 0; + transition: none; + transform: none; + } + .navbar-expand-xxl .offcanvas-top, +.navbar-expand-xxl .offcanvas-bottom { + height: auto; + border-top: 0; + border-bottom: 0; + } + .navbar-expand-xxl .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: 0.5rem; + padding-left: 0.5rem; +} +.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-header { + display: none; +} +.navbar-expand .offcanvas { + position: inherit; + bottom: 0; + z-index: 1000; + flex-grow: 1; + visibility: visible !important; + background-color: transparent; + border-right: 0; + border-left: 0; + transition: none; + transform: none; +} +.navbar-expand .offcanvas-top, +.navbar-expand .offcanvas-bottom { + height: auto; + border-top: 0; + border-bottom: 0; +} +.navbar-expand .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; +} + +.navbar-light .navbar-brand { + color: rgba(0, 0, 0, 0.9); +} +.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus { + color: rgba(0, 0, 0, 0.9); +} +.navbar-light .navbar-nav .nav-link { + color: rgba(0, 0, 0, 0.55); +} +.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus { + color: rgba(0, 0, 0, 0.7); +} +.navbar-light .navbar-nav .nav-link.disabled { + color: rgba(0, 0, 0, 0.3); +} +.navbar-light .navbar-nav .show > .nav-link, +.navbar-light .navbar-nav .nav-link.active { + color: rgba(0, 0, 0, 0.9); +} +.navbar-light .navbar-toggler { + color: rgba(0, 0, 0, 0.55); + border-color: rgba(0, 0, 0, 0.1); +} +.navbar-light .navbar-toggler-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); +} +.navbar-light .navbar-text { + color: rgba(0, 0, 0, 0.55); +} +.navbar-light .navbar-text a, +.navbar-light .navbar-text a:hover, +.navbar-light .navbar-text a:focus { + color: rgba(0, 0, 0, 0.9); +} + +.navbar-dark .navbar-brand { + color: #fff; +} +.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus { + color: #fff; +} +.navbar-dark .navbar-nav .nav-link { + color: rgba(255, 255, 255, 0.55); +} +.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus { + color: rgba(255, 255, 255, 0.75); +} +.navbar-dark .navbar-nav .nav-link.disabled { + color: rgba(255, 255, 255, 0.25); +} +.navbar-dark .navbar-nav .show > .nav-link, +.navbar-dark .navbar-nav .nav-link.active { + color: #fff; +} +.navbar-dark .navbar-toggler { + color: rgba(255, 255, 255, 0.55); + border-color: rgba(255, 255, 255, 0.1); +} +.navbar-dark .navbar-toggler-icon { + background-image: 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"); +} +.navbar-dark .navbar-text { + color: rgba(255, 255, 255, 0.55); +} +.navbar-dark .navbar-text a, +.navbar-dark .navbar-text a:hover, +.navbar-dark .navbar-text a:focus { + color: #fff; +} + +.card { + position: relative; + display: flex; + flex-direction: column; + min-width: 0; + word-wrap: break-word; + background-color: #fff; + background-clip: border-box; + border: 1px solid rgba(0, 0, 0, 0.125); + border-radius: 0.25rem; +} +.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: calc(0.25rem - 1px); + border-top-right-radius: calc(0.25rem - 1px); +} +.card > .list-group:last-child { + border-bottom-width: 0; + border-bottom-right-radius: calc(0.25rem - 1px); + border-bottom-left-radius: calc(0.25rem - 1px); +} +.card > .card-header + .list-group, +.card > .list-group + .card-footer { + border-top: 0; +} + +.card-body { + flex: 1 1 auto; + padding: 1rem 1rem; +} + +.card-title { + margin-bottom: 0.5rem; +} + +.card-subtitle { + margin-top: -0.25rem; + margin-bottom: 0; +} + +.card-text:last-child { + margin-bottom: 0; +} + +.card-link + .card-link { + margin-left: 1rem; +} + +.card-header { + padding: 0.5rem 1rem; + margin-bottom: 0; + background-color: rgba(0, 0, 0, 0.03); + border-bottom: 1px solid rgba(0, 0, 0, 0.125); +} +.card-header:first-child { + border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0; +} + +.card-footer { + padding: 0.5rem 1rem; + background-color: rgba(0, 0, 0, 0.03); + border-top: 1px solid rgba(0, 0, 0, 0.125); +} +.card-footer:last-child { + border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px); +} + +.card-header-tabs { + margin-right: -0.5rem; + margin-bottom: -0.5rem; + margin-left: -0.5rem; + border-bottom: 0; +} + +.card-header-pills { + margin-right: -0.5rem; + margin-left: -0.5rem; +} + +.card-img-overlay { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + padding: 1rem; + border-radius: calc(0.25rem - 1px); +} + +.card-img, +.card-img-top, +.card-img-bottom { + width: 100%; +} + +.card-img, +.card-img-top { + border-top-left-radius: calc(0.25rem - 1px); + border-top-right-radius: calc(0.25rem - 1px); +} + +.card-img, +.card-img-bottom { + border-bottom-right-radius: calc(0.25rem - 1px); + border-bottom-left-radius: calc(0.25rem - 1px); +} + +.card-group > .card { + margin-bottom: 0.75rem; +} +@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-button { + position: relative; + display: flex; + align-items: center; + width: 100%; + padding: 1rem 1.25rem; + font-size: 1rem; + color: #212529; + text-align: left; + background-color: #fff; + border: 0; + border-radius: 0; + overflow-anchor: none; + 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; +} +@media (prefers-reduced-motion: reduce) { + .accordion-button { + transition: none; + } +} +.accordion-button:not(.collapsed) { + color: #0c63e4; + background-color: #e7f1ff; + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.125); +} +.accordion-button:not(.collapsed)::after { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%230c63e4'%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"); + transform: rotate(-180deg); +} +.accordion-button::after { + flex-shrink: 0; + width: 1.25rem; + height: 1.25rem; + margin-left: auto; + content: ""; + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23212529'%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"); + background-repeat: no-repeat; + background-size: 1.25rem; + transition: transform 0.2s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .accordion-button::after { + transition: none; + } +} +.accordion-button:hover { + z-index: 2; +} +.accordion-button:focus { + z-index: 3; + border-color: #86b7fe; + outline: 0; +### box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); +} + +.accordion-header { + margin-bottom: 0; +} + +.accordion-item { + background-color: #fff; + border: 1px solid rgba(0, 0, 0, 0.125); +} +.accordion-item:first-of-type { + border-top-left-radius: 0.25rem; + border-top-right-radius: 0.25rem; +} +.accordion-item:first-of-type .accordion-button { + border-top-left-radius: calc(0.25rem - 1px); + border-top-right-radius: calc(0.25rem - 1px); +} +.accordion-item:not(:first-of-type) { + border-top: 0; +} +.accordion-item:last-of-type { + border-bottom-right-radius: 0.25rem; + border-bottom-left-radius: 0.25rem; +} +.accordion-item:last-of-type .accordion-button.collapsed { + border-bottom-right-radius: calc(0.25rem - 1px); + border-bottom-left-radius: calc(0.25rem - 1px); +} +.accordion-item:last-of-type .accordion-collapse { + border-bottom-right-radius: 0.25rem; + border-bottom-left-radius: 0.25rem; +} + +.accordion-body { + padding: 1rem 1.25rem; +} + +.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 { + border-radius: 0; +} + +.breadcrumb { + display: flex; + flex-wrap: wrap; + padding: 0 0; + margin-bottom: 1rem; + list-style: none; +} + +.breadcrumb-item + .breadcrumb-item { + padding-left: 0.5rem; +} +.breadcrumb-item + .breadcrumb-item::before { + float: left; + padding-right: 0.5rem; + color: #6c757d; + content: var(--bs-breadcrumb-divider, "/") /* rtl: var(--bs-breadcrumb-divider, "/") */; +} +.breadcrumb-item.active { + color: #6c757d; +} + +.pagination { + display: flex; + padding: 0 0; + list-style: none; +} + +.page-link { + position: relative; + display: block; + color: #008ae6; /*#0d6efd;*/ + text-decoration: none; + background-color: #fff; + border: 1px solid #dee2e6; + 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; +} +@media (prefers-reduced-motion: reduce) { + .page-link { + transition: none; + + } +} +.page-link:hover { + z-index: 2; + color: #0a58ca; + background-color: #e9ecef; + border-color: #dee2e6; +} +.page-link:focus { + z-index: 3; + color: #0a58ca; + background-color: #e9ecef; + outline: 0; + ### box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); +} + +.page-item:not(:first-child) .page-link { + margin-left: -1px; +} +.page-item.active .page-link { + z-index: 3; + color: #fff; + background-color: #008ae6; /*#0d6efd;*/ + border-color: #008ae6; /*#0d6efd;*/ +} +.page-item.disabled .page-link { + color: #6c757d; + pointer-events: none; + background-color: #fff; + border-color: #dee2e6; +} + +.page-link { + padding: 0.375rem 0.75rem; +} + +.page-item:first-child .page-link { + border-top-left-radius: 0.25rem; + border-bottom-left-radius: 0.25rem; +} +.page-item:last-child .page-link { + border-top-right-radius: 0.25rem; + border-bottom-right-radius: 0.25rem; +} + +.pagination-lg .page-link { + padding: 0.75rem 1.5rem; + font-size: 1.25rem; +} +.pagination-lg .page-item:first-child .page-link { + border-top-left-radius: 0.3rem; + border-bottom-left-radius: 0.3rem; +} +.pagination-lg .page-item:last-child .page-link { + border-top-right-radius: 0.3rem; + border-bottom-right-radius: 0.3rem; +} + +.pagination-sm .page-link { + padding: 0.25rem 0.5rem; + font-size: 0.875rem; +} +.pagination-sm .page-item:first-child .page-link { + border-top-left-radius: 0.2rem; + border-bottom-left-radius: 0.2rem; +} +.pagination-sm .page-item:last-child .page-link { + border-top-right-radius: 0.2rem; + border-bottom-right-radius: 0.2rem; +} + +.badge { + display: inline-block; + padding: 0.35em 0.65em; + font-size: 0.75em; + font-weight: 700; + line-height: 1; + color: #fff; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + border-radius: 0.25rem; +} +.badge:empty { + display: none; +} + +.btn .badge { + position: relative; + top: -1px; +} + +.alert { + position: relative; + padding: 1rem 1rem; + margin-bottom: 1rem; + border: 1px solid transparent; + border-radius: 0.25rem; +} + +.alert-heading { + color: inherit; +} + +.alert-link { + font-weight: 700; +} + +.alert-dismissible { + padding-right: 3rem; +} +.alert-dismissible .btn-close { + position: absolute; + top: 0; + right: 0; + z-index: 2; + padding: 1.25rem 1rem; +} + +.alert-primary { + color: #084298; + background-color: #cfe2ff; + border-color: #b6d4fe; +} +.alert-primary .alert-link { + color: #06357a; +} + +.alert-secondary { + color: #41464b; + background-color: #e2e3e5; + border-color: #d3d6d8; +} +.alert-secondary .alert-link { + color: #34383c; +} + +.alert-success { + color: #0f5132; + background-color: #d1e7dd; + border-color: #badbcc; +} +.alert-success .alert-link { + color: #0c4128; +} + +.alert-info { + color: #055160; + background-color: #cff4fc; + border-color: #b6effb; +} +.alert-info .alert-link { + color: #04414d; +} + +.alert-warning { + color: #664d03; + background-color: #fff3cd; + border-color: #ffecb5; +} +.alert-warning .alert-link { + color: #523e02; +} + +.alert-danger { + color: #842029; + background-color: #f8d7da; + border-color: #f5c2c7; +} +.alert-danger .alert-link { + color: #6a1a21; +} + +.alert-light { + color: #636464; + background-color: #fefefe; + border-color: #fdfdfe; +} +.alert-light .alert-link { + color: #4f5050; +} + +.alert-dark { + color: #141619; + background-color: #d3d3d4; + border-color: #bcbebf; +} +.alert-dark .alert-link { + color: #101214; +} + +@-webkit-keyframes progress-bar-stripes { + 0% { + background-position-x: 1rem; + } +} + +@keyframes progress-bar-stripes { + 0% { + background-position-x: 1rem; + } +} +.progress { + display: flex; + height: 1rem; + overflow: hidden; + font-size: 0.75rem; + background-color: #e9ecef; + border-radius: 0.25rem; +} + +.progress-bar { + display: flex; + flex-direction: column; + justify-content: center; + overflow: hidden; + color: #fff; + text-align: center; + white-space: nowrap; + background-color: #008ae6; /*#0d6efd;*/ + transition: width 0.6s ease; +} +@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: 1rem 1rem; +} + +.progress-bar-animated { + -webkit-animation: 1s linear infinite progress-bar-stripes; + animation: 1s linear infinite progress-bar-stripes; +} +@media (prefers-reduced-motion: reduce) { + .progress-bar-animated { + -webkit-animation: none; + animation: none; + } +} + +.list-group { + display: flex; + flex-direction: column; + padding-left: 0; + margin-bottom: 0; + border-radius: 0.25rem; +} + +.list-group-numbered { + list-style-type: none; + counter-reset: section; +} +.list-group-numbered > li::before { + content: counters(section, ".") ". "; + counter-increment: section; +} + +.list-group-item-action { + width: 100%; + color: #495057; + text-align: inherit; +} +.list-group-item-action:hover, .list-group-item-action:focus { + z-index: 1; + color: #495057; + text-decoration: none; + background-color: #f8f9fa; +} +.list-group-item-action:active { + color: #212529; + background-color: #e9ecef; +} + +.list-group-item { + position: relative; + display: block; + padding: 0.5rem 1rem; + color: #212529; + text-decoration: none; + background-color: #fff; + border: 1px solid rgba(0, 0, 0, 0.125); +} +.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: #6c757d; + pointer-events: none; + background-color: #fff; +} + .list-group-item.active { + z-index: 2; + color: #fff; + background-color: #008ae6; /*#0d6efd;*/ + border-color: #008ae6; /*#0d6efd;*/ + } +.list-group-item + .list-group-item { + border-top-width: 0; +} +.list-group-item + .list-group-item.active { + margin-top: -1px; + border-top-width: 1px; +} + +.list-group-horizontal { + flex-direction: row; +} +.list-group-horizontal > .list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0; +} +.list-group-horizontal > .list-group-item:last-child { + border-top-right-radius: 0.25rem; + 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: 1px; + border-left-width: 0; +} +.list-group-horizontal > .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px; +} + +@media (min-width: 576px) { + .list-group-horizontal-sm { + flex-direction: row; + } + .list-group-horizontal-sm > .list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0; + } + .list-group-horizontal-sm > .list-group-item:last-child { + border-top-right-radius: 0.25rem; + 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: 1px; + border-left-width: 0; + } + .list-group-horizontal-sm > .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px; + } +} +@media (min-width: 768px) { + .list-group-horizontal-md { + flex-direction: row; + } + .list-group-horizontal-md > .list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0; + } + .list-group-horizontal-md > .list-group-item:last-child { + border-top-right-radius: 0.25rem; + 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: 1px; + border-left-width: 0; + } + .list-group-horizontal-md > .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px; + } +} +@media (min-width: 992px) { + .list-group-horizontal-lg { + flex-direction: row; + } + .list-group-horizontal-lg > .list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0; + } + .list-group-horizontal-lg > .list-group-item:last-child { + border-top-right-radius: 0.25rem; + 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: 1px; + border-left-width: 0; + } + .list-group-horizontal-lg > .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px; + } +} +@media (min-width: 1200px) { + .list-group-horizontal-xl { + flex-direction: row; + } + .list-group-horizontal-xl > .list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0; + } + .list-group-horizontal-xl > .list-group-item:last-child { + border-top-right-radius: 0.25rem; + 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: 1px; + border-left-width: 0; + } + .list-group-horizontal-xl > .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px; + } +} +@media (min-width: 1400px) { + .list-group-horizontal-xxl { + flex-direction: row; + } + .list-group-horizontal-xxl > .list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0; + } + .list-group-horizontal-xxl > .list-group-item:last-child { + border-top-right-radius: 0.25rem; + 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: 1px; + border-left-width: 0; + } + .list-group-horizontal-xxl > .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px; + } +} +.list-group-flush { + border-radius: 0; +} +.list-group-flush > .list-group-item { + border-width: 0 0 1px; +} +.list-group-flush > .list-group-item:last-child { + border-bottom-width: 0; +} + +.list-group-item-primary { + color: #084298; + background-color: #cfe2ff; +} +.list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus { + color: #084298; + background-color: #bacbe6; +} +.list-group-item-primary.list-group-item-action.active { + color: #fff; + background-color: #084298; + border-color: #084298; +} + +.list-group-item-secondary { + color: #41464b; + background-color: #e2e3e5; +} +.list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus { + color: #41464b; + background-color: #cbccce; +} +.list-group-item-secondary.list-group-item-action.active { + color: #fff; + background-color: #41464b; + border-color: #41464b; +} + +.list-group-item-success { + color: #0f5132; + background-color: #d1e7dd; +} +.list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus { + color: #0f5132; + background-color: #bcd0c7; +} +.list-group-item-success.list-group-item-action.active { + color: #fff; + background-color: #0f5132; + border-color: #0f5132; +} + +.list-group-item-info { + color: #055160; + background-color: #cff4fc; +} +.list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus { + color: #055160; + background-color: #badce3; +} +.list-group-item-info.list-group-item-action.active { + color: #fff; + background-color: #055160; + border-color: #055160; +} + +.list-group-item-warning { + color: #664d03; + background-color: #fff3cd; +} +.list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus { + color: #664d03; + background-color: #e6dbb9; +} +.list-group-item-warning.list-group-item-action.active { + color: #fff; + background-color: #664d03; + border-color: #664d03; +} + +.list-group-item-danger { + color: #842029; + background-color: #f8d7da; +} +.list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus { + color: #842029; + background-color: #dfc2c4; +} +.list-group-item-danger.list-group-item-action.active { + color: #fff; + background-color: #842029; + border-color: #842029; +} + +.list-group-item-light { + color: #636464; + background-color: #fefefe; +} +.list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus { + color: #636464; + background-color: #e5e5e5; +} +.list-group-item-light.list-group-item-action.active { + color: #fff; + background-color: #636464; + border-color: #636464; +} + +.list-group-item-dark { + color: #141619; + background-color: #d3d3d4; +} +.list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus { + color: #141619; + background-color: #bebebf; +} +.list-group-item-dark.list-group-item-action.active { + color: #fff; + background-color: #141619; + border-color: #141619; +} + +.btn-close { + box-sizing: content-box; + width: 1em; + height: 1em; + padding: 0.25em 0.25em; + color: #000; + background: transparent 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 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e") center/1em auto no-repeat; + border: 0; + border-radius: 0.25rem; + opacity: 0.5; +} +.btn-close:hover { + color: #000; + text-decoration: none; + opacity: 0.75; +} +.btn-close:focus { + outline: 0; +### box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); + opacity: 1; +} +.btn-close:disabled, .btn-close.disabled { + pointer-events: none; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + opacity: 0.25; +} + +.btn-close-white { + filter: invert(1) grayscale(100%) brightness(200%); +} + +.toast { + width: 350px; + max-width: 100%; + font-size: 0.875rem; + pointer-events: auto; + background-color: rgba(255, 255, 255, 0.85); + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.1); + box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15); + border-radius: 0.25rem; +} +.toast.showing { + opacity: 0; +} +.toast:not(.show) { + display: none; +} + +.toast-container { + width: -webkit-max-content; + width: -moz-max-content; + width: max-content; + max-width: 100%; + pointer-events: none; +} +.toast-container > :not(:last-child) { + margin-bottom: 0.75rem; +} + +.toast-header { + display: flex; + align-items: center; + padding: 0.5rem 0.75rem; + color: #6c757d; + background-color: rgba(255, 255, 255, 0.85); + background-clip: padding-box; + border-bottom: 1px solid rgba(0, 0, 0, 0.05); + border-top-left-radius: calc(0.25rem - 1px); + border-top-right-radius: calc(0.25rem - 1px); +} +.toast-header .btn-close { + margin-right: -0.375rem; + margin-left: 0.75rem; +} + +.toast-body { + padding: 0.75rem; + word-wrap: break-word; +} + +.modal { + position: fixed; + top: 0; + left: 0; + z-index: 1055; + display: none; + width: 100%; + height: 100%; + overflow-x: hidden; + overflow-y: auto; + outline: 0; +} + +.modal-dialog { + position: relative; + width: auto; + margin: 0.5rem; + pointer-events: none; +} +.modal.fade .modal-dialog { + transition: transform 0.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% - 1rem); +} +.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% - 1rem); +} + +.modal-content { + position: relative; + display: flex; + flex-direction: column; + width: 100%; + pointer-events: auto; + background-color: #fff; + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 0.3rem; + outline: 0; +} + +.modal-backdrop { + position: fixed; + top: 0; + left: 0; + z-index: 1050; + width: 100vw; + height: 100vh; + background-color: #000; +} +.modal-backdrop.fade { + opacity: 0; +} +.modal-backdrop.show { + opacity: 0.5; +} + +.modal-header { + display: flex; + flex-shrink: 0; + align-items: center; + justify-content: space-between; + padding: 1rem 1rem; + border-bottom: 1px solid #dee2e6; + border-top-left-radius: calc(0.3rem - 1px); + border-top-right-radius: calc(0.3rem - 1px); +} +.modal-header .btn-close { + padding: 0.5rem 0.5rem; + margin: -0.5rem -0.5rem -0.5rem auto; +} + +.modal-title { + margin-bottom: 0; + line-height: 1.5; +} + +.modal-body { + position: relative; + flex: 1 1 auto; + padding: 1rem; +} + +.modal-footer { + display: flex; + flex-wrap: wrap; + flex-shrink: 0; + align-items: center; + justify-content: flex-end; + padding: 0.75rem; + border-top: 1px solid #dee2e6; + border-bottom-right-radius: calc(0.3rem - 1px); + border-bottom-left-radius: calc(0.3rem - 1px); +} +.modal-footer > * { + margin: 0.25rem; +} + +@media (min-width: 576px) { + .modal-dialog { + max-width: 500px; + margin: 1.75rem auto; + } + + .modal-dialog-scrollable { + height: calc(100% - 3.5rem); + } + + .modal-dialog-centered { + min-height: calc(100% - 3.5rem); + } + + .modal-sm { + max-width: 300px; + } +} +@media (min-width: 992px) { + .modal-lg, +.modal-xl { + max-width: 800px; + } +} +@media (min-width: 1200px) { + .modal-xl { + max-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 { + border-radius: 0; +} +.modal-fullscreen .modal-body { + overflow-y: auto; +} +.modal-fullscreen .modal-footer { + border-radius: 0; +} + +@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 { + border-radius: 0; + } + .modal-fullscreen-sm-down .modal-body { + overflow-y: auto; + } + .modal-fullscreen-sm-down .modal-footer { + border-radius: 0; + } +} +@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 { + border-radius: 0; + } + .modal-fullscreen-md-down .modal-body { + overflow-y: auto; + } + .modal-fullscreen-md-down .modal-footer { + border-radius: 0; + } +} +@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 { + border-radius: 0; + } + .modal-fullscreen-lg-down .modal-body { + overflow-y: auto; + } + .modal-fullscreen-lg-down .modal-footer { + border-radius: 0; + } +} +@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 { + border-radius: 0; + } + .modal-fullscreen-xl-down .modal-body { + overflow-y: auto; + } + .modal-fullscreen-xl-down .modal-footer { + border-radius: 0; + } +} +@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 { + border-radius: 0; + } + .modal-fullscreen-xxl-down .modal-body { + overflow-y: auto; + } + .modal-fullscreen-xxl-down .modal-footer { + border-radius: 0; + } +} +.tooltip { + position: absolute; + z-index: 1080; + display: block; + margin: 0; + font-family: var(--bs-font-sans-serif); + font-style: normal; + font-weight: 400; + line-height: 1.5; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + word-spacing: normal; + white-space: normal; + line-break: auto; + font-size: 0.875rem; + word-wrap: break-word; + opacity: 0; +} +.tooltip.show { + opacity: 0.9; +} +.tooltip .tooltip-arrow { + position: absolute; + display: block; + width: 0.8rem; + height: 0.4rem; +} +.tooltip .tooltip-arrow::before { + position: absolute; + content: ""; + border-color: transparent; + border-style: solid; +} + +.bs-tooltip-top, .bs-tooltip-auto[data-popper-placement^=top] { + padding: 0.4rem 0; +} +.bs-tooltip-top .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow { + bottom: 0; +} +.bs-tooltip-top .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before { + top: -1px; + border-width: 0.4rem 0.4rem 0; + border-top-color: #000; +} + +.bs-tooltip-end, .bs-tooltip-auto[data-popper-placement^=right] { + padding: 0 0.4rem; +} +.bs-tooltip-end .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow { + left: 0; + width: 0.4rem; + height: 0.8rem; +} +.bs-tooltip-end .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before { + right: -1px; + border-width: 0.4rem 0.4rem 0.4rem 0; + border-right-color: #000; +} + +.bs-tooltip-bottom, .bs-tooltip-auto[data-popper-placement^=bottom] { + padding: 0.4rem 0; +} +.bs-tooltip-bottom .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow { + top: 0; +} +.bs-tooltip-bottom .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before { + bottom: -1px; + border-width: 0 0.4rem 0.4rem; + border-bottom-color: #000; +} + +.bs-tooltip-start, .bs-tooltip-auto[data-popper-placement^=left] { + padding: 0 0.4rem; +} +.bs-tooltip-start .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow { + right: 0; + width: 0.4rem; + height: 0.8rem; +} +.bs-tooltip-start .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before { + left: -1px; + border-width: 0.4rem 0 0.4rem 0.4rem; + border-left-color: #000; +} + +.tooltip-inner { + max-width: 200px; + padding: 0.25rem 0.5rem; + color: #fff; + text-align: center; + background-color: #000; + border-radius: 0.25rem; +} + +.popover { + position: absolute; + top: 0; + left: 0 /* rtl:ignore */; + z-index: 1070; + display: block; + max-width: 276px; + font-family: var(--bs-font-sans-serif); + font-style: normal; + font-weight: 400; + line-height: 1.5; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + word-spacing: normal; + white-space: normal; + line-break: auto; + font-size: 0.875rem; + word-wrap: break-word; + background-color: #fff; + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 0.3rem; +} +.popover .popover-arrow { + position: absolute; + display: block; + width: 1rem; + height: 0.5rem; +} +.popover .popover-arrow::before, .popover .popover-arrow::after { + position: absolute; + display: block; + content: ""; + border-color: transparent; + border-style: solid; +} + +.bs-popover-top > .popover-arrow, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow { + bottom: calc(-0.5rem - 1px); +} +.bs-popover-top > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::before { + bottom: 0; + border-width: 0.5rem 0.5rem 0; + border-top-color: rgba(0, 0, 0, 0.25); +} +.bs-popover-top > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::after { + bottom: 1px; + border-width: 0.5rem 0.5rem 0; + border-top-color: #fff; +} + +.bs-popover-end > .popover-arrow, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow { + left: calc(-0.5rem - 1px); + width: 0.5rem; + height: 1rem; +} +.bs-popover-end > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::before { + left: 0; + border-width: 0.5rem 0.5rem 0.5rem 0; + border-right-color: rgba(0, 0, 0, 0.25); +} +.bs-popover-end > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::after { + left: 1px; + border-width: 0.5rem 0.5rem 0.5rem 0; + border-right-color: #fff; +} + +.bs-popover-bottom > .popover-arrow, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow { + top: calc(-0.5rem - 1px); +} +.bs-popover-bottom > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::before { + top: 0; + border-width: 0 0.5rem 0.5rem 0.5rem; + border-bottom-color: rgba(0, 0, 0, 0.25); +} +.bs-popover-bottom > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::after { + top: 1px; + border-width: 0 0.5rem 0.5rem 0.5rem; + border-bottom-color: #fff; +} +.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: 1rem; + margin-left: -0.5rem; + content: ""; + border-bottom: 1px solid #f0f0f0; +} + +.bs-popover-start > .popover-arrow, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow { + right: calc(-0.5rem - 1px); + width: 0.5rem; + height: 1rem; +} +.bs-popover-start > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::before { + right: 0; + border-width: 0.5rem 0 0.5rem 0.5rem; + border-left-color: rgba(0, 0, 0, 0.25); +} +.bs-popover-start > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::after { + right: 1px; + border-width: 0.5rem 0 0.5rem 0.5rem; + border-left-color: #fff; +} + +.popover-header { + padding: 0.5rem 1rem; + margin-bottom: 0; + font-size: 1rem; + background-color: #f0f0f0; + border-bottom: 1px solid rgba(0, 0, 0, 0.2); + border-top-left-radius: calc(0.3rem - 1px); + border-top-right-radius: calc(0.3rem - 1px); +} +.popover-header:empty { + display: none; +} + +.popover-body { + padding: 1rem 1rem; + color: #212529; +} + +.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%; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + transition: transform 0.6s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .carousel-item { + transition: none; + } +} + +.carousel-item.active, +.carousel-item-next, +.carousel-item-prev { + display: block; +} + +/* rtl:begin:ignore */ +.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%); +} + +/* rtl:end:ignore */ +.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 0.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: 0.5; + transition: opacity 0.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: 0.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%; +} + +/* rtl:options: { + "autoRename": true, + "stringMap":[ { + "name" : "prev-next", + "search" : "prev", + "replace" : "next" + } ] +} */ +.carousel-control-prev-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e"); +} + +.carousel-control-next-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); +} + +.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%; + list-style: none; +} +.carousel-indicators [data-bs-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 transparent; + border-bottom: 10px solid transparent; + opacity: 0.5; + transition: opacity 0.6s ease; +} +@media (prefers-reduced-motion: reduce) { + .carousel-indicators [data-bs-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-bs-target] { + background-color: #000; +} +.carousel-dark .carousel-caption { + color: #000; +} + +@-webkit-keyframes spinner-border { + to { + transform: rotate(360deg) /* rtl:ignore */; + } +} + +@keyframes spinner-border { + to { + transform: rotate(360deg) /* rtl:ignore */; + } +} +.spinner-border { + display: inline-block; + width: 2rem; + height: 2rem; + vertical-align: -0.125em; + border: 0.25em solid currentColor; + border-right-color: transparent; + border-radius: 50%; + -webkit-animation: 0.75s linear infinite spinner-border; + animation: 0.75s linear infinite spinner-border; +} + +.spinner-border-sm { + width: 1rem; + height: 1rem; + border-width: 0.2em; +} + +@-webkit-keyframes spinner-grow { + 0% { + transform: scale(0); + } + 50% { + opacity: 1; + transform: none; + } +} + +@keyframes spinner-grow { + 0% { + transform: scale(0); + } + 50% { + opacity: 1; + transform: none; + } +} +.spinner-grow { + display: inline-block; + width: 2rem; + height: 2rem; + vertical-align: -0.125em; + background-color: currentColor; + border-radius: 50%; + opacity: 0; + -webkit-animation: 0.75s linear infinite spinner-grow; + animation: 0.75s linear infinite spinner-grow; +} + +.spinner-grow-sm { + width: 1rem; + height: 1rem; +} + +@media (prefers-reduced-motion: reduce) { + .spinner-border, +.spinner-grow { + -webkit-animation-duration: 1.5s; + animation-duration: 1.5s; + } +} +.offcanvas { + position: fixed; + bottom: 0; + z-index: 1045; + display: flex; + flex-direction: column; + max-width: 100%; + visibility: hidden; + background-color: #fff; + background-clip: padding-box; + outline: 0; + transition: transform 0.3s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .offcanvas { + transition: none; + } +} + +.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: 0.5; +} + +.offcanvas-header { + display: flex; + align-items: center; + justify-content: space-between; + padding: 1rem 1rem; +} +.offcanvas-header .btn-close { + padding: 0.5rem 0.5rem; + margin-top: -0.5rem; + margin-right: -0.5rem; + margin-bottom: -0.5rem; +} + +.offcanvas-title { + margin-bottom: 0; + line-height: 1.5; +} + +.offcanvas-body { + flex-grow: 1; + padding: 1rem 1rem; + overflow-y: auto; +} + +.offcanvas-start { + top: 0; + left: 0; + width: 400px; + border-right: 1px solid rgba(0, 0, 0, 0.2); + transform: translateX(-100%); +} + +.offcanvas-end { + top: 0; + right: 0; + width: 400px; + border-left: 1px solid rgba(0, 0, 0, 0.2); + transform: translateX(100%); +} + +.offcanvas-top { + top: 0; + right: 0; + left: 0; + height: 30vh; + max-height: 100%; + border-bottom: 1px solid rgba(0, 0, 0, 0.2); + transform: translateY(-100%); +} + +.offcanvas-bottom { + right: 0; + left: 0; + height: 30vh; + max-height: 100%; + border-top: 1px solid rgba(0, 0, 0, 0.2); + transform: translateY(100%); +} + +.offcanvas.show { + transform: none; +} + +.placeholder { + display: inline-block; + min-height: 1em; + vertical-align: middle; + cursor: wait; + background-color: currentColor; + opacity: 0.5; +} +.placeholder.btn::before { + display: inline-block; + content: ""; +} + +.placeholder-xs { + min-height: 0.6em; +} + +.placeholder-sm { + min-height: 0.8em; +} + +.placeholder-lg { + min-height: 1.2em; +} + +.placeholder-glow .placeholder { + -webkit-animation: placeholder-glow 2s ease-in-out infinite; + animation: placeholder-glow 2s ease-in-out infinite; +} + +@-webkit-keyframes placeholder-glow { + 50% { + opacity: 0.2; + } +} + +@keyframes placeholder-glow { + 50% { + opacity: 0.2; + } +} +.placeholder-wave { + -webkit-mask-image: linear-gradient(130deg, #000 55%, rgba(0, 0, 0, 0.8) 75%, #000 95%); + mask-image: linear-gradient(130deg, #000 55%, rgba(0, 0, 0, 0.8) 75%, #000 95%); + -webkit-mask-size: 200% 100%; + mask-size: 200% 100%; + -webkit-animation: placeholder-wave 2s linear infinite; + animation: placeholder-wave 2s linear infinite; +} + +@-webkit-keyframes placeholder-wave { + 100% { + -webkit-mask-position: -200% 0%; + mask-position: -200% 0%; + } +} + +@keyframes placeholder-wave { + 100% { + -webkit-mask-position: -200% 0%; + mask-position: -200% 0%; + } +} +.clearfix::after { + display: block; + clear: both; + content: ""; +} + +.link-primary { + color: #008ae6; /*#0d6efd;*/ +} +.link-primary:hover, .link-primary:focus { + color: #0a58ca; +} + +.link-secondary { + color: #6c757d; +} +.link-secondary:hover, .link-secondary:focus { + color: #565e64; +} + +.link-success { + color: #198754; +} +.link-success:hover, .link-success:focus { + color: #146c43; +} + +.link-info { + color: #0dcaf0; +} +.link-info:hover, .link-info:focus { + color: #3dd5f3; +} + +.link-warning { + color: #ffc107; +} +.link-warning:hover, .link-warning:focus { + color: #ffcd39; +} + +.link-danger { + color: #dc3545; +} +.link-danger:hover, .link-danger:focus { + color: #b02a37; +} + +.link-light { + color: #f8f9fa; +} +.link-light:hover, .link-light:focus { + color: #f9fafb; +} + +.link-dark { + color: #212529; +} +.link-dark:hover, .link-dark:focus { + color: #1a1e21; +} + +.ratio { + position: relative; + width: 100%; +} +.ratio::before { + display: block; + padding-top: var(--bs-aspect-ratio); + content: ""; +} +.ratio > * { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; +} + +.ratio-1x1 { + --bs-aspect-ratio: 100%; +} + +.ratio-4x3 { + --bs-aspect-ratio: calc(3 / 4 * 100%); +} + +.ratio-16x9 { + --bs-aspect-ratio: calc(9 / 16 * 100%); +} + +.ratio-21x9 { + --bs-aspect-ratio: calc(9 / 21 * 100%); +} + +.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: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020; +} + +@media (min-width: 576px) { + .sticky-sm-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020; + } +} +@media (min-width: 768px) { + .sticky-md-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020; + } +} +@media (min-width: 992px) { + .sticky-lg-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020; + } +} +@media (min-width: 1200px) { + .sticky-xl-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020; + } +} +@media (min-width: 1400px) { + .sticky-xxl-top { + position: -webkit-sticky; + position: sticky; + top: 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) { + position: absolute !important; + 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; +} + +.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: 1px; + min-height: 1em; + background-color: currentColor; + opacity: 0.25; +} + +.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; +} + +.opacity-0 { + opacity: 0 !important; +} + +.opacity-25 { + opacity: 0.25 !important; +} + +.opacity-50 { + opacity: 0.5 !important; +} + +.opacity-75 { + opacity: 0.75 !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; +} + +.d-inline { + display: inline !important; +} + +.d-inline-block { + display: inline-block !important; +} + +.d-block { + display: block !important; +} + +.d-grid { + display: 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: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important; +} + +.shadow-sm { + box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important; +} + +.shadow-lg { + box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important; +} + +.shadow-none { + box-shadow: none !important; +} + +.position-static { + position: static !important; +} + +.position-relative { + position: relative !important; +} + +.position-absolute { + position: absolute !important; +} + +.position-fixed { + position: fixed !important; +} + +.position-sticky { + position: -webkit-sticky !important; + 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: 1px solid #dee2e6 !important; +} + +.border-0 { + border: 0 !important; +} + +.border-top { + border-top: 1px solid #dee2e6 !important; +} + +.border-top-0 { + border-top: 0 !important; +} + +.border-end { + border-right: 1px solid #dee2e6 !important; +} + +.border-end-0 { + border-right: 0 !important; +} + +.border-bottom { + border-bottom: 1px solid #dee2e6 !important; +} + +.border-bottom-0 { + border-bottom: 0 !important; +} + +.border-start { + border-left: 1px solid #dee2e6 !important; +} + +.border-start-0 { + border-left: 0 !important; +} + +.border-primary { + border-color: #008ae6; /*#0d6efd;*/ + !important; +} + +.border-secondary { + border-color: #6c757d !important; +} + +.border-success { + border-color: #198754 !important; +} + +.border-info { + border-color: #0dcaf0 !important; +} + +.border-warning { + border-color: #ffc107 !important; +} + +.border-danger { + border-color: #dc3545 !important; +} + +.border-light { + border-color: #f8f9fa !important; +} + +.border-dark { + border-color: #212529 !important; +} + +.border-white { + border-color: #fff !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; +} + +.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; +} + +.gap-0 { + gap: 0 !important; +} + +.gap-1 { + gap: 0.25rem !important; +} + +.gap-2 { + gap: 0.5rem !important; +} + +.gap-3 { + gap: 1rem !important; +} + +.gap-4 { + gap: 1.5rem !important; +} + +.gap-5 { + gap: 3rem !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: 0.25rem !important; +} + +.m-2 { + margin: 0.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: 0.25rem !important; + margin-left: 0.25rem !important; +} + +.mx-2 { + margin-right: 0.5rem !important; + margin-left: 0.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: 0.25rem !important; + margin-bottom: 0.25rem !important; +} + +.my-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.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: 0.25rem !important; +} + +.mt-2 { + margin-top: 0.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: 0.25rem !important; +} + +.me-2 { + margin-right: 0.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: 0.25rem !important; +} + +.mb-2 { + margin-bottom: 0.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; +} + +.ms-0 { + margin-left: 0 !important; +} + +.ms-1 { + margin-left: 0.25rem !important; +} + +.ms-2 { + margin-left: 0.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; +} + +.p-0 { + padding: 0 !important; +} + +.p-1 { + padding: 0.25rem !important; +} + +.p-2 { + padding: 0.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: 0.25rem !important; + padding-left: 0.25rem !important; +} + +.px-2 { + padding-right: 0.5rem !important; + padding-left: 0.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: 0.25rem !important; + padding-bottom: 0.25rem !important; +} + +.py-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.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: 0.25rem !important; +} + +.pt-2 { + padding-top: 0.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: 0.25rem !important; +} + +.pe-2 { + padding-right: 0.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: 0.25rem !important; +} + +.pb-2 { + padding-bottom: 0.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: 0.25rem !important; +} + +.ps-2 { + padding-left: 0.5rem !important; +} + +.ps-3 { + padding-left: 1rem !important; +} + +.ps-4 { + padding-left: 1.5rem !important; +} + +.ps-5 { + padding-left: 3rem !important; +} + +.font-monospace { + font-family: var(--bs-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-light { + font-weight: 300 !important; +} + +.fw-lighter { + font-weight: lighter !important; +} + +.fw-normal { + font-weight: 400 !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.5 !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; +} + +/* rtl:begin:remove */ +.text-break { + word-wrap: break-word !important; + word-break: break-word !important; +} + +/* rtl:end:remove */ +.text-primary { + --bs-text-opacity: 1; + color: rgba(var(--bs-primary-rgb), var(--bs-text-opacity)) !important; +} + +.text-secondary { + --bs-text-opacity: 1; + color: rgba(var(--bs-secondary-rgb), var(--bs-text-opacity)) !important; +} + +.text-success { + --bs-text-opacity: 1; + color: rgba(var(--bs-success-rgb), var(--bs-text-opacity)) !important; +} + +.text-info { + --bs-text-opacity: 1; + color: rgba(var(--bs-info-rgb), var(--bs-text-opacity)) !important; +} + +.text-warning { + --bs-text-opacity: 1; + color: rgba(var(--bs-warning-rgb), var(--bs-text-opacity)) !important; +} + +.text-danger { + --bs-text-opacity: 1; + color: rgba(var(--bs-danger-rgb), var(--bs-text-opacity)) !important; +} + +.text-light { + --bs-text-opacity: 1; + color: rgba(var(--bs-light-rgb), var(--bs-text-opacity)) !important; +} + +.text-dark { + --bs-text-opacity: 1; + color: rgba(var(--bs-dark-rgb), var(--bs-text-opacity)) !important; +} + +.text-black { + --bs-text-opacity: 1; + color: rgba(var(--bs-black-rgb), var(--bs-text-opacity)) !important; +} + +.text-white { + --bs-text-opacity: 1; + color: rgba(var(--bs-white-rgb), var(--bs-text-opacity)) !important; +} + +.text-body { + --bs-text-opacity: 1; + color: rgba(var(--bs-body-rgb), var(--bs-text-opacity)) !important; +} + +.text-muted { + --bs-text-opacity: 1; + color: #6c757d !important; /* т. сив */ +} +.text-white-70 { + --bs-text-opacity: 1; + color: #00264d !important; /* т. син */ +} +.text-black-50 { + --bs-text-opacity: 1; + color: rgba(0, 0, 0, 0.5) !important; +} + +.text-white-50 { + --bs-text-opacity: 1; + color: rgba(255, 255, 255, 0.5) !important; +} + +.text-reset { + --bs-text-opacity: 1; + color: inherit !important; +} + +.text-opacity-25 { + --bs-text-opacity: 0.25; +} + +.text-opacity-50 { + --bs-text-opacity: 0.5; +} + +.text-opacity-75 { + --bs-text-opacity: 0.75; +} + +.text-opacity-100 { + --bs-text-opacity: 1; +} + +.bg-primary { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-primary-rgb), var(--bs-bg-opacity)) !important; +} + +.bg-secondary { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-secondary-rgb), var(--bs-bg-opacity)) !important; +} + +.bg-success { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-success-rgb), var(--bs-bg-opacity)) !important; +} + +.bg-info { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-info-rgb), var(--bs-bg-opacity)) !important; +} + +.bg-warning { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-warning-rgb), var(--bs-bg-opacity)) !important; +} + +.bg-danger { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-danger-rgb), var(--bs-bg-opacity)) !important; +} + +.bg-light { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-light-rgb), var(--bs-bg-opacity)) !important; +} + +.bg-dark { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-dark-rgb), var(--bs-bg-opacity)) !important; +} + +.bg-black { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-black-rgb), var(--bs-bg-opacity)) !important; +} + +.bg-white { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-white-rgb), var(--bs-bg-opacity)) !important; +} + +.bg-body { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-body-rgb), var(--bs-bg-opacity)) !important; +} + +.bg-transparent { + --bs-bg-opacity: 1; + background-color: transparent !important; +} + +.bg-opacity-10 { + --bs-bg-opacity: 0.1; +} + +.bg-opacity-25 { + --bs-bg-opacity: 0.25; +} + +.bg-opacity-50 { + --bs-bg-opacity: 0.5; +} + +.bg-opacity-75 { + --bs-bg-opacity: 0.75; +} + +.bg-opacity-100 { + --bs-bg-opacity: 1; +} + +.bg-gradient { + background-image: var(--bs-gradient) !important; +} + +.user-select-all { + -webkit-user-select: all !important; + -moz-user-select: all !important; + user-select: all !important; +} + +.user-select-auto { + -webkit-user-select: auto !important; + -moz-user-select: auto !important; + user-select: auto !important; +} + +.user-select-none { + -webkit-user-select: none !important; + -moz-user-select: none !important; + user-select: none !important; +} + +.pe-none { + pointer-events: none !important; +} + +.pe-auto { + pointer-events: auto !important; +} + +.rounded { + border-radius: 0.25rem !important; +} + +.rounded-0 { + border-radius: 0 !important; +} + +.rounded-1 { + border-radius: 0.2rem !important; +} + +.rounded-2 { + border-radius: 0.25rem !important; +} + +.rounded-3 { + border-radius: 0.3rem !important; +} + +.rounded-circle { + border-radius: 50% !important; +} + +.rounded-pill { + border-radius: 50rem !important; +} + +.rounded-top { + border-top-left-radius: 0.25rem !important; + border-top-right-radius: 0.25rem !important; +} + +.rounded-end { + border-top-right-radius: 0.25rem !important; + border-bottom-right-radius: 0.25rem !important; +} + +.rounded-bottom { + border-bottom-right-radius: 0.25rem !important; + border-bottom-left-radius: 0.25rem !important; +} + +.rounded-start { + border-bottom-left-radius: 0.25rem !important; + border-top-left-radius: 0.25rem !important; +} + +.visible { + visibility: visible !important; +} + +.invisible { + visibility: hidden !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-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; + } + + .gap-sm-0 { + gap: 0 !important; + } + + .gap-sm-1 { + gap: 0.25rem !important; + } + + .gap-sm-2 { + gap: 0.5rem !important; + } + + .gap-sm-3 { + gap: 1rem !important; + } + + .gap-sm-4 { + gap: 1.5rem !important; + } + + .gap-sm-5 { + gap: 3rem !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: 0.25rem !important; + } + + .m-sm-2 { + margin: 0.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: 0.25rem !important; + margin-left: 0.25rem !important; + } + + .mx-sm-2 { + margin-right: 0.5rem !important; + margin-left: 0.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: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + + .my-sm-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.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: 0.25rem !important; + } + + .mt-sm-2 { + margin-top: 0.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: 0.25rem !important; + } + + .me-sm-2 { + margin-right: 0.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: 0.25rem !important; + } + + .mb-sm-2 { + margin-bottom: 0.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; + } + + .ms-sm-0 { + margin-left: 0 !important; + } + + .ms-sm-1 { + margin-left: 0.25rem !important; + } + + .ms-sm-2 { + margin-left: 0.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; + } + + .p-sm-0 { + padding: 0 !important; + } + + .p-sm-1 { + padding: 0.25rem !important; + } + + .p-sm-2 { + padding: 0.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: 0.25rem !important; + padding-left: 0.25rem !important; + } + + .px-sm-2 { + padding-right: 0.5rem !important; + padding-left: 0.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: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + + .py-sm-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.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: 0.25rem !important; + } + + .pt-sm-2 { + padding-top: 0.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: 0.25rem !important; + } + + .pe-sm-2 { + padding-right: 0.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: 0.25rem !important; + } + + .pb-sm-2 { + padding-bottom: 0.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: 0.25rem !important; + } + + .ps-sm-2 { + padding-left: 0.5rem !important; + } + + .ps-sm-3 { + padding-left: 1rem !important; + } + + .ps-sm-4 { + padding-left: 1.5rem !important; + } + + .ps-sm-5 { + padding-left: 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-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; + } + + .gap-md-0 { + gap: 0 !important; + } + + .gap-md-1 { + gap: 0.25rem !important; + } + + .gap-md-2 { + gap: 0.5rem !important; + } + + .gap-md-3 { + gap: 1rem !important; + } + + .gap-md-4 { + gap: 1.5rem !important; + } + + .gap-md-5 { + gap: 3rem !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: 0.25rem !important; + } + + .m-md-2 { + margin: 0.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: 0.25rem !important; + margin-left: 0.25rem !important; + } + + .mx-md-2 { + margin-right: 0.5rem !important; + margin-left: 0.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: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + + .my-md-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.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: 0.25rem !important; + } + + .mt-md-2 { + margin-top: 0.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: 0.25rem !important; + } + + .me-md-2 { + margin-right: 0.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: 0.25rem !important; + } + + .mb-md-2 { + margin-bottom: 0.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; + } + + .ms-md-0 { + margin-left: 0 !important; + } + + .ms-md-1 { + margin-left: 0.25rem !important; + } + + .ms-md-2 { + margin-left: 0.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; + } + + .p-md-0 { + padding: 0 !important; + } + + .p-md-1 { + padding: 0.25rem !important; + } + + .p-md-2 { + padding: 0.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: 0.25rem !important; + padding-left: 0.25rem !important; + } + + .px-md-2 { + padding-right: 0.5rem !important; + padding-left: 0.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: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + + .py-md-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.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: 0.25rem !important; + } + + .pt-md-2 { + padding-top: 0.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: 0.25rem !important; + } + + .pe-md-2 { + padding-right: 0.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: 0.25rem !important; + } + + .pb-md-2 { + padding-bottom: 0.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: 0.25rem !important; + } + + .ps-md-2 { + padding-left: 0.5rem !important; + } + + .ps-md-3 { + padding-left: 1rem !important; + } + + .ps-md-4 { + padding-left: 1.5rem !important; + } + + .ps-md-5 { + padding-left: 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-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; + } + + .gap-lg-0 { + gap: 0 !important; + } + + .gap-lg-1 { + gap: 0.25rem !important; + } + + .gap-lg-2 { + gap: 0.5rem !important; + } + + .gap-lg-3 { + gap: 1rem !important; + } + + .gap-lg-4 { + gap: 1.5rem !important; + } + + .gap-lg-5 { + gap: 3rem !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: 0.25rem !important; + } + + .m-lg-2 { + margin: 0.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: 0.25rem !important; + margin-left: 0.25rem !important; + } + + .mx-lg-2 { + margin-right: 0.5rem !important; + margin-left: 0.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: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + + .my-lg-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.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: 0.25rem !important; + } + + .mt-lg-2 { + margin-top: 0.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: 0.25rem !important; + } + + .me-lg-2 { + margin-right: 0.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: 0.25rem !important; + } + + .mb-lg-2 { + margin-bottom: 0.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; + } + + .ms-lg-0 { + margin-left: 0 !important; + } + + .ms-lg-1 { + margin-left: 0.25rem !important; + } + + .ms-lg-2 { + margin-left: 0.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; + } + + .p-lg-0 { + padding: 0 !important; + } + + .p-lg-1 { + padding: 0.25rem !important; + } + + .p-lg-2 { + padding: 0.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: 0.25rem !important; + padding-left: 0.25rem !important; + } + + .px-lg-2 { + padding-right: 0.5rem !important; + padding-left: 0.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: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + + .py-lg-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.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: 0.25rem !important; + } + + .pt-lg-2 { + padding-top: 0.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: 0.25rem !important; + } + + .pe-lg-2 { + padding-right: 0.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: 0.25rem !important; + } + + .pb-lg-2 { + padding-bottom: 0.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: 0.25rem !important; + } + + .ps-lg-2 { + padding-left: 0.5rem !important; + } + + .ps-lg-3 { + padding-left: 1rem !important; + } + + .ps-lg-4 { + padding-left: 1.5rem !important; + } + + .ps-lg-5 { + padding-left: 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-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; + } + + .gap-xl-0 { + gap: 0 !important; + } + + .gap-xl-1 { + gap: 0.25rem !important; + } + + .gap-xl-2 { + gap: 0.5rem !important; + } + + .gap-xl-3 { + gap: 1rem !important; + } + + .gap-xl-4 { + gap: 1.5rem !important; + } + + .gap-xl-5 { + gap: 3rem !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: 0.25rem !important; + } + + .m-xl-2 { + margin: 0.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: 0.25rem !important; + margin-left: 0.25rem !important; + } + + .mx-xl-2 { + margin-right: 0.5rem !important; + margin-left: 0.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: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + + .my-xl-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.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: 0.25rem !important; + } + + .mt-xl-2 { + margin-top: 0.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: 0.25rem !important; + } + + .me-xl-2 { + margin-right: 0.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: 0.25rem !important; + } + + .mb-xl-2 { + margin-bottom: 0.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; + } + + .ms-xl-0 { + margin-left: 0 !important; + } + + .ms-xl-1 { + margin-left: 0.25rem !important; + } + + .ms-xl-2 { + margin-left: 0.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; + } + + .p-xl-0 { + padding: 0 !important; + } + + .p-xl-1 { + padding: 0.25rem !important; + } + + .p-xl-2 { + padding: 0.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: 0.25rem !important; + padding-left: 0.25rem !important; + } + + .px-xl-2 { + padding-right: 0.5rem !important; + padding-left: 0.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: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + + .py-xl-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.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: 0.25rem !important; + } + + .pt-xl-2 { + padding-top: 0.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: 0.25rem !important; + } + + .pe-xl-2 { + padding-right: 0.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: 0.25rem !important; + } + + .pb-xl-2 { + padding-bottom: 0.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: 0.25rem !important; + } + + .ps-xl-2 { + padding-left: 0.5rem !important; + } + + .ps-xl-3 { + padding-left: 1rem !important; + } + + .ps-xl-4 { + padding-left: 1.5rem !important; + } + + .ps-xl-5 { + padding-left: 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-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; + } + + .gap-xxl-0 { + gap: 0 !important; + } + + .gap-xxl-1 { + gap: 0.25rem !important; + } + + .gap-xxl-2 { + gap: 0.5rem !important; + } + + .gap-xxl-3 { + gap: 1rem !important; + } + + .gap-xxl-4 { + gap: 1.5rem !important; + } + + .gap-xxl-5 { + gap: 3rem !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: 0.25rem !important; + } + + .m-xxl-2 { + margin: 0.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: 0.25rem !important; + margin-left: 0.25rem !important; + } + + .mx-xxl-2 { + margin-right: 0.5rem !important; + margin-left: 0.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: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + + .my-xxl-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.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: 0.25rem !important; + } + + .mt-xxl-2 { + margin-top: 0.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: 0.25rem !important; + } + + .me-xxl-2 { + margin-right: 0.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: 0.25rem !important; + } + + .mb-xxl-2 { + margin-bottom: 0.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; + } + + .ms-xxl-0 { + margin-left: 0 !important; + } + + .ms-xxl-1 { + margin-left: 0.25rem !important; + } + + .ms-xxl-2 { + margin-left: 0.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; + } + + .p-xxl-0 { + padding: 0 !important; + } + + .p-xxl-1 { + padding: 0.25rem !important; + } + + .p-xxl-2 { + padding: 0.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: 0.25rem !important; + padding-left: 0.25rem !important; + } + + .px-xxl-2 { + padding-right: 0.5rem !important; + padding-left: 0.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: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + + .py-xxl-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.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: 0.25rem !important; + } + + .pt-xxl-2 { + padding-top: 0.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: 0.25rem !important; + } + + .pe-xxl-2 { + padding-right: 0.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: 0.25rem !important; + } + + .pb-xxl-2 { + padding-bottom: 0.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: 0.25rem !important; + } + + .ps-xxl-2 { + padding-left: 0.5rem !important; + } + + .ps-xxl-3 { + padding-left: 1rem !important; + } + + .ps-xxl-4 { + padding-left: 1.5rem !important; + } + + .ps-xxl-5 { + padding-left: 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-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; + } + +} + +/*# sourceMappingURL=bootstrap.css.map */ \ No newline at end of file diff --git a/wwwroot/css/vendor/bootstrap.css.map b/wwwroot/css/vendor/bootstrap.css.map new file mode 100644 index 0000000..eb2e313 --- /dev/null +++ b/wwwroot/css/vendor/bootstrap.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["bootstrap.css","../../scss/bootstrap.scss","../../scss/_root.scss","../../scss/_reboot.scss","../../scss/vendor/_rfs.scss","../../scss/_variables.scss","../../scss/mixins/_border-radius.scss","../../scss/_type.scss","../../scss/mixins/_lists.scss","../../scss/_images.scss","../../scss/mixins/_image.scss","../../scss/_containers.scss","../../scss/mixins/_container.scss","../../scss/mixins/_breakpoints.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/_tables.scss","../../scss/mixins/_table-variants.scss","../../scss/forms/_labels.scss","../../scss/forms/_form-text.scss","../../scss/forms/_form-control.scss","../../scss/mixins/_transition.scss","../../scss/mixins/_gradients.scss","../../scss/forms/_form-select.scss","../../scss/forms/_form-check.scss","../../scss/forms/_form-range.scss","../../scss/forms/_floating-labels.scss","../../scss/forms/_input-group.scss","../../scss/mixins/_forms.scss","../../scss/_buttons.scss","../../scss/mixins/_buttons.scss","../../scss/_transitions.scss","../../scss/_dropdown.scss","../../scss/mixins/_caret.scss","../../scss/_button-group.scss","../../scss/_nav.scss","../../scss/_navbar.scss","../../scss/_card.scss","../../scss/_accordion.scss","../../scss/_breadcrumb.scss","../../scss/_pagination.scss","../../scss/mixins/_pagination.scss","../../scss/_badge.scss","../../scss/_alert.scss","../../scss/mixins/_alert.scss","../../scss/_progress.scss","../../scss/_list-group.scss","../../scss/mixins/_list-group.scss","../../scss/_close.scss","../../scss/_toasts.scss","../../scss/_modal.scss","../../scss/mixins/_backdrop.scss","../../scss/_tooltip.scss","../../scss/mixins/_reset-text.scss","../../scss/_popover.scss","../../scss/_carousel.scss","../../scss/mixins/_clearfix.scss","../../scss/_spinners.scss","../../scss/_offcanvas.scss","../../scss/_placeholders.scss","../../scss/helpers/_colored-links.scss","../../scss/helpers/_ratio.scss","../../scss/helpers/_position.scss","../../scss/helpers/_stacks.scss","../../scss/helpers/_visually-hidden.scss","../../scss/mixins/_visually-hidden.scss","../../scss/helpers/_stretched-link.scss","../../scss/helpers/_text-truncation.scss","../../scss/mixins/_text-truncate.scss","../../scss/helpers/_vr.scss","../../scss/mixins/_utilities.scss","../../scss/utilities/_api.scss"],"names":[],"mappings":"AAAA,gBAAgB;ACAhB;;;;;EAAA;ACAA;EAQI,kBAAA;EAAA,oBAAA;EAAA,oBAAA;EAAA,kBAAA;EAAA,iBAAA;EAAA,oBAAA;EAAA,oBAAA;EAAA,mBAAA;EAAA,kBAAA;EAAA,kBAAA;EAAA,gBAAA;EAAA,kBAAA;EAAA,uBAAA;EAIA,sBAAA;EAAA,sBAAA;EAAA,sBAAA;EAAA,sBAAA;EAAA,sBAAA;EAAA,sBAAA;EAAA,sBAAA;EAAA,sBAAA;EAAA,sBAAA;EAIA,qBAAA;EAAA,uBAAA;EAAA,qBAAA;EAAA,kBAAA;EAAA,qBAAA;EAAA,oBAAA;EAAA,mBAAA;EAAA,kBAAA;EAIA,8BAAA;EAAA,iCAAA;EAAA,6BAAA;EAAA,2BAAA;EAAA,6BAAA;EAAA,4BAAA;EAAA,6BAAA;EAAA,yBAAA;EAGF,6BAAA;EACA,uBAAA;EACA,yBAAA;EAMA,qNAAA;EACA,yGAAA;EACA,yFAAA;EAQA,gDAAA;EACA,yBAAA;EACA,0BAAA;EACA,0BAAA;EACA,wBAAA;EAIA,kBAAA;AFSF;;AG3CA;;;EAGE,sBAAA;AH8CF;;AG/BI;EANJ;IAOM,uBAAA;EHmCJ;AACF;;AGtBA;EACE,SAAA;EACA,uCAAA;ECmPI,mCALI;ED5OR,uCAAA;EACA,uCAAA;EACA,2BAAA;EACA,qCAAA;EACA,mCAAA;EACA,8BAAA;EACA,6CAAA;AHyBF;;AGfA;EACE,cAAA;EACA,cEqkB4B;EFpkB5B,8BAAA;EACA,SAAA;EACA,aEokB4B;ALljB9B;;AGfA;EACE,WE8a4B;AL5Z9B;;AGRA;EACE,aAAA;EACA,qBE0gB4B;EFvgB5B,gBE0gB4B;EFzgB5B,gBE0gB4B;ALjgB9B;;AGLA;ECwMQ,iCAAA;AJ/LR;AI6BI;EDtCJ;IC+MQ,iBAAA;EJlMN;AACF;;AGTA;ECmMQ,iCAAA;AJtLR;AIoBI;EDjCJ;IC0MQ,eAAA;EJzLN;AACF;;AGbA;EC8LQ,+BAAA;AJ7KR;AIWI;ED5BJ;ICqMQ,kBAAA;EJhLN;AACF;;AGjBA;ECyLQ,iCAAA;AJpKR;AIEI;EDvBJ;ICgMQ,iBAAA;EJvKN;AACF;;AGrBA;ECgLM,kBALI;AJlJV;;AGpBA;EC2KM,eALI;AJ9IV;;AGbA;EACE,aAAA;EACA,mBEwT0B;ALxS5B;;AGLA;;EAEE,yCAAA;EAAA,iCAAA;EACA,YAAA;EACA,sCAAA;EAAA,8BAAA;AHQF;;AGFA;EACE,mBAAA;EACA,kBAAA;EACA,oBAAA;AHKF;;AGCA;;EAEE,kBAAA;AHEF;;AGCA;;;EAGE,aAAA;EACA,mBAAA;AHEF;;AGCA;;;;EAIE,gBAAA;AHEF;;AGCA;EACE,gBE6Y4B;AL3Y9B;;AGGA;EACE,qBAAA;EACA,cAAA;AHAF;;AGMA;EACE,gBAAA;AHHF;;AGWA;;EAEE,mBEsX4B;AL9X9B;;AGgBA;EC4EM,kBALI;AJnFV;;AGmBA;EACE,cEkb4B;EFjb5B,yBEyb4B;ALzc9B;;AGyBA;;EAEE,kBAAA;ECwDI,iBALI;EDjDR,cAAA;EACA,wBAAA;AHtBF;;AGyBA;EAAM,eAAA;AHrBN;;AGsBA;EAAM,WAAA;AHlBN;;AGuBA;EACE,cEpNQ;EFqNR,0BEwLwC;AL5M1C;AGsBE;EACE,cEuLsC;AL3M1C;;AG+BE;EAEE,cAAA;EACA,qBAAA;AH7BJ;;AGoCA;;;;EAIE,qCEmS4B;EDrRxB,cALI;EDPR,+BAAA;EACA,2BAAA;AHjCF;;AGwCA;EACE,cAAA;EACA,aAAA;EACA,mBAAA;EACA,cAAA;ECAI,kBALI;AJ/BV;AGyCE;ECLI,kBALI;EDYN,cAAA;EACA,kBAAA;AHvCJ;;AG2CA;ECZM,kBALI;EDmBR,cE1QQ;EF2QR,qBAAA;AHxCF;AG2CE;EACE,cAAA;AHzCJ;;AG6CA;EACE,sBAAA;ECxBI,kBALI;ED+BR,WEvTS;EFwTT,yBE/SS;ECEP,qBAAA;ANoQJ;AG4CE;EACE,UAAA;EC/BE,cALI;EDsCN,gBEgQ0B;AL1S9B;;AGmDA;EACE,gBAAA;AHhDF;;AGsDA;;EAEE,sBAAA;AHnDF;;AG2DA;EACE,oBAAA;EACA,yBAAA;AHxDF;;AG2DA;EACE,mBE8T4B;EF7T5B,sBE6T4B;EF5T5B,cE1VS;EF2VT,gBAAA;AHxDF;;AG+DA;EAEE,mBAAA;EACA,gCAAA;AH7DF;;AGgEA;;;;;;EAME,qBAAA;EACA,mBAAA;EACA,eAAA;AH7DF;;AGqEA;EACE,qBAAA;AHlEF;;AGwEA;EAEE,gBAAA;AHtEF;;AG8EA;EACE,UAAA;AH3EF;;AGgFA;;;;;EAKE,SAAA;EACA,oBAAA;EC9HI,kBALI;EDqIR,oBAAA;AH7EF;;AGiFA;;EAEE,oBAAA;AH9EF;;AGmFA;EACE,eAAA;AHhFF;;AGmFA;EAGE,iBAAA;AHlFF;AGqFE;EACE,UAAA;AHnFJ;;AG0FA;EACE,aAAA;AHvFF;;AG+FA;;;;EAIE,0BAAA;AH5FF;AG+FI;;;;EACE,eAAA;AH1FN;;AGiGA;EACE,UAAA;EACA,kBAAA;AH9FF;;AGmGA;EACE,gBAAA;AHhGF;;AG0GA;EACE,YAAA;EACA,UAAA;EACA,SAAA;EACA,SAAA;AHvGF;;AG+GA;EACE,WAAA;EACA,WAAA;EACA,UAAA;EACA,qBEmJ4B;EDtWtB,iCAAA;EDsNN,oBAAA;AH7GF;AI3QI;EDiXJ;ICxMQ,iBAAA;EJsGN;AACF;AG0GE;EACE,WAAA;AHxGJ;;AG+GA;;;;;;;EAOE,UAAA;AH5GF;;AG+GA;EACE,YAAA;AH5GF;;AGqHA;EACE,oBAAA;EACA,6BAAA;AHlHF;;AG0HA;;;;;;;CAAA;AAWA;EACE,wBAAA;AH1HF;;AG+HA;EACE,UAAA;AH5HF;;AGkIA;EACE,aAAA;AH/HF;;AGqIA;EACE,aAAA;EACA,0BAAA;AHlIF;;AGuIA;EACE,qBAAA;AHpIF;;AGyIA;EACE,SAAA;AHtIF;;AG6IA;EACE,kBAAA;EACA,eAAA;AH1IF;;AGkJA;EACE,wBAAA;AH/IF;;AGuJA;EACE,wBAAA;AHpJF;;AO/bA;EHyQM,kBALI;EGlQR,gBF6lB4B;AL3J9B;;AO7bE;EHsQM,iCAAA;EGpQJ,gBFglBkB;EE/kBlB,gBFikB0B;ALjI9B;AI/VI;EGpGF;IH6QM,eAAA;EJ0LN;AACF;;AOxcE;EHsQM,iCAAA;EGpQJ,gBFglBkB;EE/kBlB,gBFikB0B;ALtH9B;AI1WI;EGpGF;IH6QM,iBAAA;EJqMN;AACF;;AOndE;EHsQM,iCAAA;EGpQJ,gBFglBkB;EE/kBlB,gBFikB0B;AL3G9B;AIrXI;EGpGF;IH6QM,eAAA;EJgNN;AACF;;AO9dE;EHsQM,iCAAA;EGpQJ,gBFglBkB;EE/kBlB,gBFikB0B;ALhG9B;AIhYI;EGpGF;IH6QM,iBAAA;EJ2NN;AACF;;AOzeE;EHsQM,iCAAA;EGpQJ,gBFglBkB;EE/kBlB,gBFikB0B;ALrF9B;AI3YI;EGpGF;IH6QM,eAAA;EJsON;AACF;;AOpfE;EHsQM,iCAAA;EGpQJ,gBFglBkB;EE/kBlB,gBFikB0B;AL1E9B;AItZI;EGpGF;IH6QM,iBAAA;EJiPN;AACF;;AOzeA;ECrDE,eAAA;EACA,gBAAA;ARkiBF;;AOzeA;EC1DE,eAAA;EACA,gBAAA;ARuiBF;;AO3eA;EACE,qBAAA;AP8eF;AO5eE;EACE,oBFolB0B;ALtG9B;;AOpeA;EHsNM,kBALI;EG/MR,yBAAA;APueF;;AOneA;EACE,mBFgSO;EDjFH,kBALI;AJ6RV;AOpeE;EACE,gBAAA;APseJ;;AOleA;EACE,iBAAA;EACA,mBFsRO;EDjFH,kBALI;EG9LR,cFpFS;ALyjBX;AOneE;EACE,aAAA;APqeJ;;ASnkBA;ECIE,eAAA;EAGA,YAAA;AVikBF;;ASlkBA;EACE,gBJ08CkC;EIz8ClC,sBJPS;EIQT,yBAAA;EHGE,sBAAA;EIRF,eAAA;EAGA,YAAA;AV0kBF;;AS5jBA;EAEE,qBAAA;AT8jBF;;AS3jBA;EACE,qBAAA;EACA,cAAA;AT8jBF;;AS3jBA;EL+PM,kBALI;EKxPR,cJ1BS;ALwlBX;;AWhmBE;;;;;;;ECHA,WAAA;EACA,0CAAA;EACA,yCAAA;EACA,kBAAA;EACA,iBAAA;AZ6mBF;;AarjBI;EF5CE;IACE,gBNuce;EL8JrB;AACF;Aa3jBI;EF5CE;IACE,gBNuce;ELmKrB;AACF;AahkBI;EF5CE;IACE,gBNuce;ELwKrB;AACF;AarkBI;EF5CE;IACE,iBNuce;EL6KrB;AACF;Aa1kBI;EF5CE;IACE,iBNuce;ELkLrB;AACF;AczoBE;ECAA,qBAAA;EACA,gBAAA;EACA,aAAA;EACA,eAAA;EACA,yCAAA;EACA,4CAAA;EACA,2CAAA;Af4oBF;Ac/oBI;ECYF,cAAA;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3BO;Ee4BP,qBfozBoC;EenzBpC,UAAA;EAKE,kDf6rB0B;ALq7ChC;AoB3mEE;EAEE,aAAA;ApB4mEJ;AoBxmEE;EACE,cf1CO;Ee4CP,UAAA;ApBymEJ;AoB5mEE;EACE,cf1CO;Ee4CP,UAAA;ApBymEJ;AoBjmEE;EAEE,yBf1DO;Ee6DP,UAAA;ApBgmEJ;AoB5lEE;EACE,yBAAA;EACA,0BAAA;EACA,2BfgpB0B;EehpB1B,0BfgpB0B;Ee/oB1B,cf9DO;EiBbT,yBjBMS;EeuEP,oBAAA;EACA,qBAAA;EACA,mBAAA;EACA,eAAA;EACA,4Bfsa0B;Eera1B,gBAAA;ECtEE,qIDuEF;ApB8lEJ;AqBjqEM;EDuDJ;ICtDM,gBAAA;ErBoqEN;AACF;AoBhmEE;EACE,yBfm5B8B;AL+sClC;AoB/lEE;EACE,yBAAA;EACA,0BAAA;EACA,2Bf6nB0B;Ee7nB1B,0Bf6nB0B;Ee5nB1B,cfjFO;EiBbT,yBjBMS;Ee0FP,oBAAA;EACA,qBAAA;EACA,mBAAA;EACA,eAAA;EACA,4BfmZ0B;EelZ1B,gBAAA;ECzFE,6ID0FF;EC1FE,qID0FF;ApBimEJ;AqBvrEM;ED0EJ;ICzEM,wBAAA;IAAA,gBAAA;ErB0rEN;AACF;AoBnmEE;EACE,yBfg4B8B;ALquClC;;AoB5lEA;EACE,cAAA;EACA,WAAA;EACA,mBAAA;EACA,gBAAA;EACA,gBf+c4B;Ee9c5B,cf5GS;Ee6GT,6BAAA;EACA,yBAAA;EACA,mBAAA;ApB+lEF;AoB7lEE;EAEE,gBAAA;EACA,eAAA;ApB8lEJ;;AoBnlEA;EACE,sCfstBsC;EertBtC,uBAAA;EhBmJI,mBALI;EE7QN,qBAAA;ANutEJ;AoBplEE;EACE,uBAAA;EACA,wBAAA;EACA,0BfilB0B;EejlB1B,yBfilB0B;ALqgD9B;AoBnlEE;EACE,uBAAA;EACA,wBAAA;EACA,0Bf2kB0B;Ee3kB1B,yBf2kB0B;AL0gD9B;;AoBjlEA;EACE,oCfosBsC;EensBtC,oBAAA;EhBgII,kBALI;EE7QN,qBAAA;ANwuEJ;AoBllEE;EACE,oBAAA;EACA,qBAAA;EACA,wBfkkB0B;EelkB1B,uBfkkB0B;ALkhD9B;AoBjlEE;EACE,oBAAA;EACA,qBAAA;EACA,wBf4jB0B;Ee5jB1B,uBf4jB0B;ALuhD9B;;AoB3kEE;EACE,uCf2qBoC;ALm6CxC;AoB3kEE;EACE,sCfwqBoC;ALq6CxC;AoB1kEE;EACE,oCfqqBoC;ALu6CxC;;AoBvkEA;EACE,WfmqBsC;EelqBtC,YAAA;EACA,iBfkhB4B;ALwjD9B;AoBxkEE;EACE,eAAA;ApB0kEJ;AoBvkEE;EACE,aAAA;Ed/LA,sBAAA;ANywEJ;AoBtkEE;EACE,aAAA;EdpMA,sBAAA;AN6wEJ;;AuB3xEA;EACE,cAAA;EACA,WAAA;EACA,0CAAA;EAEA,uCAAA;EnB2RI,eALI;EmBnRR,gBlBwjB4B;EkBvjB5B,gBlB6jB4B;EkB5jB5B,clBES;EkBDT,sBlBRS;EkBST,iPAAA;EACA,4BAAA;EACA,yClBs6BkC;EkBr6BlC,0BlBs6BkC;EkBr6BlC,yBAAA;EjBFE,sBAAA;EeHE,wEEQJ;EACA,wBAAA;EAAA,qBAAA;EAAA,gBAAA;AvB2xEF;AqBhyEM;EEfN;IFgBQ,gBAAA;ErBmyEN;AACF;AuB9xEE;EACE,qBlB4zBoC;EkB3zBpC,UAAA;EAKE,kDlBu6B4B;ALq3ClC;AuBxxEE;EAEE,sBlBsrB0B;EkBrrB1B,sBAAA;AvByxEJ;AuBtxEE;EAEE,yBlBpCO;AL2zEX;AuBlxEE;EACE,kBAAA;EACA,0BAAA;AvBoxEJ;;AuBhxEA;EACE,oBlB+qB4B;EkB9qB5B,uBlB8qB4B;EkB7qB5B,oBlB8qB4B;EDrcxB,mBALI;AJgjEV;;AuBhxEA;EACE,mBlB4qB4B;EkB3qB5B,sBlB2qB4B;EkB1qB5B,kBlB2qB4B;EDzcxB,kBALI;AJujEV;;AwBn1EA;EACE,cAAA;EACA,kBnB22BwC;EmB12BxC,mBnB22BwC;EmB12BxC,uBnB22BwC;AL2+C1C;AwBp1EE;EACE,WAAA;EACA,mBAAA;AxBs1EJ;;AwBl1EA;EACE,UnB+1BwC;EmB91BxC,WnB81BwC;EmB71BxC,kBAAA;EACA,mBAAA;EACA,sBnBbS;EmBcT,4BAAA;EACA,2BAAA;EACA,wBAAA;EACA,qCnBk2BwC;EmBj2BxC,wBAAA;EAAA,qBAAA;EAAA,gBAAA;EACA,iCAAA;EAAA,mBAAA;AxBq1EF;AwBl1EE;ElBXE,qBAAA;ANg2EJ;AwBj1EE;EAEE,kBnBy1BsC;ALy/C1C;AwB/0EE;EACE,uBnBg1BsC;ALigD1C;AwB90EE;EACE,qBnB4yBoC;EmB3yBpC,UAAA;EACA,kDnByrB4B;ALupDhC;AwB70EE;EACE,yBnBZM;EmBaN,qBnBbM;AL41EV;AwB70EI;EAII,+OAAA;AxB40ER;AwBx0EI;EAII,uJAAA;AxBu0ER;AwBl0EE;EACE,yBnBjCM;EmBkCN,qBnBlCM;EmBuCJ,yOAAA;AxBg0EN;AwB5zEE;EACE,oBAAA;EACA,YAAA;EACA,YnBwzBuC;ALsgD3C;AwBvzEI;EACE,YnBgzBqC;ALygD3C;;AwB3yEA;EACE,mBnB2yBgC;ALmgDlC;AwB5yEE;EACE,UnBuyB8B;EmBtyB9B,mBAAA;EACA,wKAAA;EACA,gCAAA;ElB9FA,kBAAA;EeHE,iDGmGF;AxB8yEJ;AqB74EM;EGyFJ;IHxFM,gBAAA;ErBg5EN;AACF;AwBjzEI;EACE,0JAAA;AxBmzEN;AwBhzEI;EACE,iCnBsyB4B;EmBjyB1B,uJAAA;AxB8yER;;AwBxyEA;EACE,qBAAA;EACA,kBnBywBgC;ALkiDlC;;AwBxyEA;EACE,kBAAA;EACA,sBAAA;EACA,oBAAA;AxB2yEF;AwBvyEI;EACE,oBAAA;EACA,YAAA;EACA,anB2nBwB;AL8qD9B;;AyBv7EA;EACE,WAAA;EACA,cAAA;EACA,UAAA;EACA,6BAAA;EACA,wBAAA;EAAA,qBAAA;EAAA,gBAAA;AzB07EF;AyBx7EE;EACE,UAAA;AzB07EJ;AyBt7EI;EAA0B,kEpBk9Ba;ALu+C3C;AyBx7EI;EAA0B,kEpBi9Ba;AL0+C3C;AyBx7EE;EACE,SAAA;AzB07EJ;AyBv7EE;EACE,WpBm8BuC;EoBl8BvC,YpBk8BuC;EoBj8BvC,oBAAA;EHzBF,yBjBkCQ;EoBPN,SpBk8BuC;EC98BvC,mBAAA;EeHE,oHIkBF;EJlBE,4GIkBF;EACA,wBAAA;EAAA,gBAAA;AzBw7EJ;AqBv8EM;EIMJ;IJLM,wBAAA;IAAA,gBAAA;ErB08EN;AACF;AyB37EI;EHjCF,yBjBk+ByC;AL6/C3C;AyBz7EE;EACE,WpB46B8B;EoB36B9B,cpB46B8B;EoB36B9B,kBAAA;EACA,epB26B8B;EoB16B9B,yBpBpCO;EoBqCP,yBAAA;EnB7BA,mBAAA;ANy9EJ;AyBv7EE;EACE,WpBw6BuC;EoBv6BvC,YpBu6BuC;EiB19BzC,yBjBkCQ;EoBmBN,SpBw6BuC;EC98BvC,mBAAA;EeHE,iHI4CF;EJ5CE,4GI4CF;EACA,qBAAA;EAAA,gBAAA;AzBw7EJ;AqBj+EM;EIiCJ;IJhCM,qBAAA;IAAA,gBAAA;ErBo+EN;AACF;AyB37EI;EH3DF,yBjBk+ByC;ALuhD3C;AyBz7EE;EACE,WpBk5B8B;EoBj5B9B,cpBk5B8B;EoBj5B9B,kBAAA;EACA,epBi5B8B;EoBh5B9B,yBpB9DO;EoB+DP,yBAAA;EnBvDA,mBAAA;ANm/EJ;AyBv7EE;EACE,oBAAA;AzBy7EJ;AyBv7EI;EACE,yBpBtEK;AL+/EX;AyBt7EI;EACE,yBpB1EK;ALkgFX;;A0B/gFA;EACE,kBAAA;A1BkhFF;A0BhhFE;;EAEE,0BrB6+B8B;EqB5+B9B,iBrB6+B8B;ALqiDlC;A0B/gFE;EACE,kBAAA;EACA,MAAA;EACA,OAAA;EACA,YAAA;EACA,qBAAA;EACA,oBAAA;EACA,6BAAA;EACA,qBAAA;ELDE,gEKEF;A1BihFJ;AqB/gFM;EKXJ;ILYM,gBAAA;ErBkhFN;AACF;A0BlhFE;EACE,qBAAA;A1BohFJ;A0BlhFI;EACE,kBAAA;A1BohFN;A0BrhFI;EACE,kBAAA;A1BohFN;A0BjhFI;EAEE,qBrBu9B4B;EqBt9B5B,wBrBu9B4B;AL2jDlC;A0BrhFI;EAEE,qBrBu9B4B;EqBt9B5B,wBrBu9B4B;AL2jDlC;A0B/gFI;EACE,qBrBk9B4B;EqBj9B5B,wBrBk9B4B;AL+jDlC;A0B7gFE;EACE,qBrB48B8B;EqB38B9B,wBrB48B8B;ALmkDlC;A0BzgFI;EACE,arBs8B4B;EqBr8B5B,8DrBs8B4B;ALukDlC;A0B/gFI;;;EACE,arBs8B4B;EqBr8B5B,8DrBs8B4B;ALukDlC;A0BxgFI;EACE,arB+7B4B;EqB97B5B,8DrB+7B4B;AL2kDlC;;A2BhkFA;EACE,kBAAA;EACA,aAAA;EACA,eAAA;EACA,oBAAA;EACA,WAAA;A3BmkFF;A2BjkFE;;EAEE,kBAAA;EACA,cAAA;EACA,SAAA;EACA,YAAA;A3BmkFJ;A2B/jFE;;EAEE,UAAA;A3BikFJ;A2B3jFE;EACE,kBAAA;EACA,UAAA;A3B6jFJ;A2B3jFI;EACE,UAAA;A3B6jFN;;A2BljFA;EACE,aAAA;EACA,mBAAA;EACA,yBAAA;EvBsPI,eALI;EuB/OR,gBtBohB4B;EsBnhB5B,gBtByhB4B;EsBxhB5B,ctBlCS;EsBmCT,kBAAA;EACA,mBAAA;EACA,yBtB5CS;EsB6CT,yBAAA;ErBpCE,sBAAA;AN0lFJ;;A2B5iFA;;;;EAIE,oBAAA;EvBgOI,kBALI;EE7QN,qBAAA;ANmmFJ;;A2B5iFA;;;;EAIE,uBAAA;EvBuNI,mBALI;EE7QN,qBAAA;AN4mFJ;;A2B5iFA;;EAEE,mBAAA;A3B+iFF;;A2BliFI;;ErB/DA,0BAAA;EACA,6BAAA;ANsmFJ;A2BjiFI;;ErBtEA,0BAAA;EACA,6BAAA;AN2mFJ;A2B3hFE;EACE,iBAAA;ErBpEA,yBAAA;EACA,4BAAA;ANkmFJ;;A4B3nFE;EACE,aAAA;EACA,WAAA;EACA,mBvB+wBoC;EDtgBlC,kBALI;EwBjQN,cvB8+BqB;AL+oDzB;;A4B1nFE;EACE,kBAAA;EACA,SAAA;EACA,UAAA;EACA,aAAA;EACA,eAAA;EACA,uBAAA;EACA,kBAAA;ExB4PE,mBALI;EwBpPN,WAvBc;EAwBd,wCAvBiB;EtBHjB,sBAAA;ANupFJ;;A4BxnFI;;;;EAEE,cAAA;A5B6nFN;;A4B3qFI;EAoDE,qBvBm9BmB;EuBh9BjB,oCvBqyBgC;EuBpyBhC,4PAAA;EACA,4BAAA;EACA,2DAAA;EACA,gEAAA;A5BynFR;A4BtnFM;EACE,qBvBw8BiB;EuBv8BjB,iDA/Ca;A5BuqFrB;;A4BxrFI;EAyEI,oCvBmxBgC;EuBlxBhC,kFAAA;A5BmnFR;;A4B7rFI;EAiFE,qBvBs7BmB;AL0rDzB;A4B7mFQ;EAEE,uBvBk2B8B;EuBj2B9B,6dAAA;EACA,+DAAA;EACA,2EAAA;A5B8mFV;A4B1mFM;EACE,qBvBy6BiB;EuBx6BjB,iDA9Ea;A5B0rFrB;;A4B3sFI;EAsGE,qBvBi6BmB;ALwsDzB;A4BvmFM;EACE,yBvB85BiB;AL2sDzB;A4BtmFM;EACE,iDA5Fa;A5BosFrB;A4BrmFM;EACE,cvBs5BiB;ALitDzB;;A4BlmFI;EACE,kBAAA;A5BqmFN;;A4B5tFI;;;EA+HI,UAAA;A5BmmFR;A4B/lFM;;;EACE,UAAA;A5BmmFR;;A4BptFE;EACE,aAAA;EACA,WAAA;EACA,mBvB+wBoC;EDtgBlC,kBALI;EwBjQN,cvB8+BqB;ALwuDzB;;A4BntFE;EACE,kBAAA;EACA,SAAA;EACA,UAAA;EACA,aAAA;EACA,eAAA;EACA,uBAAA;EACA,kBAAA;ExB4PE,mBALI;EwBpPN,WAvBc;EAwBd,wCAvBiB;EtBHjB,sBAAA;ANgvFJ;;A4BjtFI;;;;EAEE,cAAA;A5BstFN;;A4BpwFI;EAoDE,qBvBm9BmB;EuBh9BjB,oCvBqyBgC;EuBpyBhC,4UAAA;EACA,4BAAA;EACA,2DAAA;EACA,gEAAA;A5BktFR;A4B/sFM;EACE,qBvBw8BiB;EuBv8BjB,iDA/Ca;A5BgwFrB;;A4BjxFI;EAyEI,oCvBmxBgC;EuBlxBhC,kFAAA;A5B4sFR;;A4BtxFI;EAiFE,qBvBs7BmB;ALmxDzB;A4BtsFQ;EAEE,uBvBk2B8B;EuBj2B9B,6iBAAA;EACA,+DAAA;EACA,2EAAA;A5BusFV;A4BnsFM;EACE,qBvBy6BiB;EuBx6BjB,iDA9Ea;A5BmxFrB;;A4BpyFI;EAsGE,qBvBi6BmB;ALiyDzB;A4BhsFM;EACE,yBvB85BiB;ALoyDzB;A4B/rFM;EACE,iDA5Fa;A5B6xFrB;A4B9rFM;EACE,cvBs5BiB;AL0yDzB;;A4B3rFI;EACE,kBAAA;A5B8rFN;;A4BrzFI;;;EAiII,UAAA;A5B0rFR;A4BxrFM;;;EACE,UAAA;A5B4rFR;;A6Bl0FA;EACE,qBAAA;EAEA,gBxB8jB4B;EwB7jB5B,gBxBmkB4B;EwBlkB5B,cxBQS;EwBPT,kBAAA;EACA,qBAAA;EAEA,sBAAA;EACA,eAAA;EACA,yBAAA;EAAA,sBAAA;EAAA,iBAAA;EACA,6BAAA;EACA,6BAAA;EC8GA,yBAAA;E1BsKI,eALI;EE7QN,sBAAA;EeHE,qIQGJ;A7Bq0FF;AqBp0FM;EQhBN;IRiBQ,gBAAA;ErBu0FN;AACF;A6Bx0FE;EACE,cxBLO;AL+0FX;A6Bt0FE;EAEE,UAAA;EACA,kDxB0sB4B;AL6nEhC;A6BzzFE;EAGE,oBAAA;EACA,axBguB0B;ALylE9B;;A6B7yFE;ECvCA,WAXQ;ERLR,yBjB4Ea;EyB1Db,qBzB0Da;AL8xFf;A8Br1FE;EACE,WAdY;ERRd,yBQMmB;EAkBjB,qBAjBa;A9Bw2FjB;A8Bp1FE;EAEE,WArBY;ERRd,yBQMmB;EAyBjB,qBAxBa;EA6BX,iDAAA;A9Bi1FN;A8B70FE;EAKE,WAlCa;EAmCb,yBArCkB;EAwClB,qBAvCc;A9Bg3FlB;A8Bv0FI;EAKI,iDAAA;A9Bq0FR;A8Bh0FE;EAEE,WAjDe;EAkDf,yBzBYW;EyBTX,qBzBSW;ALszFf;;A6B30FE;ECvCA,WAXQ;ERLR,yBjB4Ea;EyB1Db,qBzB0Da;AL4zFf;A8Bn3FE;EACE,WAdY;ERRd,yBQMmB;EAkBjB,qBAjBa;A9Bs4FjB;A8Bl3FE;EAEE,WArBY;ERRd,yBQMmB;EAyBjB,qBAxBa;EA6BX,kDAAA;A9B+2FN;A8B32FE;EAKE,WAlCa;EAmCb,yBArCkB;EAwClB,qBAvCc;A9B84FlB;A8Br2FI;EAKI,kDAAA;A9Bm2FR;A8B91FE;EAEE,WAjDe;EAkDf,yBzBYW;EyBTX,qBzBSW;ALo1Ff;;A6Bz2FE;ECvCA,WAXQ;ERLR,yBjB4Ea;EyB1Db,qBzB0Da;AL01Ff;A8Bj5FE;EACE,WAdY;ERRd,yBQMmB;EAkBjB,qBAjBa;A9Bo6FjB;A8Bh5FE;EAEE,WArBY;ERRd,yBQMmB;EAyBjB,qBAxBa;EA6BX,iDAAA;A9B64FN;A8Bz4FE;EAKE,WAlCa;EAmCb,yBArCkB;EAwClB,qBAvCc;A9B46FlB;A8Bn4FI;EAKI,iDAAA;A9Bi4FR;A8B53FE;EAEE,WAjDe;EAkDf,yBzBYW;EyBTX,qBzBSW;ALk3Ff;;A6Bv4FE;ECvCA,WAXQ;ERLR,yBjB4Ea;EyB1Db,qBzB0Da;ALw3Ff;A8B/6FE;EACE,WAdY;ERRd,yBQMmB;EAkBjB,qBAjBa;A9Bk8FjB;A8B96FE;EAEE,WArBY;ERRd,yBQMmB;EAyBjB,qBAxBa;EA6BX,iDAAA;A9B26FN;A8Bv6FE;EAKE,WAlCa;EAmCb,yBArCkB;EAwClB,qBAvCc;A9B08FlB;A8Bj6FI;EAKI,iDAAA;A9B+5FR;A8B15FE;EAEE,WAjDe;EAkDf,yBzBYW;EyBTX,qBzBSW;ALg5Ff;;A6Br6FE;ECvCA,WAXQ;ERLR,yBjB4Ea;EyB1Db,qBzB0Da;ALs5Ff;A8B78FE;EACE,WAdY;ERRd,yBQMmB;EAkBjB,qBAjBa;A9Bg+FjB;A8B58FE;EAEE,WArBY;ERRd,yBQMmB;EAyBjB,qBAxBa;EA6BX,gDAAA;A9By8FN;A8Br8FE;EAKE,WAlCa;EAmCb,yBArCkB;EAwClB,qBAvCc;A9Bw+FlB;A8B/7FI;EAKI,gDAAA;A9B67FR;A8Bx7FE;EAEE,WAjDe;EAkDf,yBzBYW;EyBTX,qBzBSW;AL86Ff;;A6Bn8FE;ECvCA,WAXQ;ERLR,yBjB4Ea;EyB1Db,qBzB0Da;ALo7Ff;A8B3+FE;EACE,WAdY;ERRd,yBQMmB;EAkBjB,qBAjBa;A9B8/FjB;A8B1+FE;EAEE,WArBY;ERRd,yBQMmB;EAyBjB,qBAxBa;EA6BX,gDAAA;A9Bu+FN;A8Bn+FE;EAKE,WAlCa;EAmCb,yBArCkB;EAwClB,qBAvCc;A9BsgGlB;A8B79FI;EAKI,gDAAA;A9B29FR;A8Bt9FE;EAEE,WAjDe;EAkDf,yBzBYW;EyBTX,qBzBSW;AL48Ff;;A6Bj+FE;ECvCA,WAXQ;ERLR,yBjB4Ea;EyB1Db,qBzB0Da;ALk9Ff;A8BzgGE;EACE,WAdY;ERRd,yBQMmB;EAkBjB,qBAjBa;A9B4hGjB;A8BxgGE;EAEE,WArBY;ERRd,yBQMmB;EAyBjB,qBAxBa;EA6BX,kDAAA;A9BqgGN;A8BjgGE;EAKE,WAlCa;EAmCb,yBArCkB;EAwClB,qBAvCc;A9BoiGlB;A8B3/FI;EAKI,kDAAA;A9By/FR;A8Bp/FE;EAEE,WAjDe;EAkDf,yBzBYW;EyBTX,qBzBSW;AL0+Ff;;A6B//FE;ECvCA,WAXQ;ERLR,yBjB4Ea;EyB1Db,qBzB0Da;ALg/Ff;A8BviGE;EACE,WAdY;ERRd,yBQMmB;EAkBjB,qBAjBa;A9B0jGjB;A8BtiGE;EAEE,WArBY;ERRd,yBQMmB;EAyBjB,qBAxBa;EA6BX,+CAAA;A9BmiGN;A8B/hGE;EAKE,WAlCa;EAmCb,yBArCkB;EAwClB,qBAvCc;A9BkkGlB;A8BzhGI;EAKI,+CAAA;A9BuhGR;A8BlhGE;EAEE,WAjDe;EAkDf,yBzBYW;EyBTX,qBzBSW;ALwgGf;;A6BvhGE;ECmBA,czBJa;EyBKb,qBzBLa;AL6gGf;A8BtgGE;EACE,WATY;EAUZ,yBzBTW;EyBUX,qBzBVW;ALkhGf;A8BrgGE;EAEE,iDAAA;A9BsgGJ;A8BngGE;EAKE,WArBa;EAsBb,yBzBxBW;EyByBX,qBzBzBW;AL0hGf;A8B//FI;EAKI,iDAAA;A9B6/FR;A8Bx/FE;EAEE,czBvCW;EyBwCX,6BAAA;A9By/FJ;;A6BhjGE;ECmBA,czBJa;EyBKb,qBzBLa;ALsiGf;A8B/hGE;EACE,WATY;EAUZ,yBzBTW;EyBUX,qBzBVW;AL2iGf;A8B9hGE;EAEE,kDAAA;A9B+hGJ;A8B5hGE;EAKE,WArBa;EAsBb,yBzBxBW;EyByBX,qBzBzBW;ALmjGf;A8BxhGI;EAKI,kDAAA;A9BshGR;A8BjhGE;EAEE,czBvCW;EyBwCX,6BAAA;A9BkhGJ;;A6BzkGE;ECmBA,czBJa;EyBKb,qBzBLa;AL+jGf;A8BxjGE;EACE,WATY;EAUZ,yBzBTW;EyBUX,qBzBVW;ALokGf;A8BvjGE;EAEE,gDAAA;A9BwjGJ;A8BrjGE;EAKE,WArBa;EAsBb,yBzBxBW;EyByBX,qBzBzBW;AL4kGf;A8BjjGI;EAKI,gDAAA;A9B+iGR;A8B1iGE;EAEE,czBvCW;EyBwCX,6BAAA;A9B2iGJ;;A6BlmGE;ECmBA,czBJa;EyBKb,qBzBLa;ALwlGf;A8BjlGE;EACE,WATY;EAUZ,yBzBTW;EyBUX,qBzBVW;AL6lGf;A8BhlGE;EAEE,iDAAA;A9BilGJ;A8B9kGE;EAKE,WArBa;EAsBb,yBzBxBW;EyByBX,qBzBzBW;ALqmGf;A8B1kGI;EAKI,iDAAA;A9BwkGR;A8BnkGE;EAEE,czBvCW;EyBwCX,6BAAA;A9BokGJ;;A6B3nGE;ECmBA,czBJa;EyBKb,qBzBLa;ALinGf;A8B1mGE;EACE,WATY;EAUZ,yBzBTW;EyBUX,qBzBVW;ALsnGf;A8BzmGE;EAEE,gDAAA;A9B0mGJ;A8BvmGE;EAKE,WArBa;EAsBb,yBzBxBW;EyByBX,qBzBzBW;AL8nGf;A8BnmGI;EAKI,gDAAA;A9BimGR;A8B5lGE;EAEE,czBvCW;EyBwCX,6BAAA;A9B6lGJ;;A6BppGE;ECmBA,czBJa;EyBKb,qBzBLa;AL0oGf;A8BnoGE;EACE,WATY;EAUZ,yBzBTW;EyBUX,qBzBVW;AL+oGf;A8BloGE;EAEE,gDAAA;A9BmoGJ;A8BhoGE;EAKE,WArBa;EAsBb,yBzBxBW;EyByBX,qBzBzBW;ALupGf;A8B5nGI;EAKI,gDAAA;A9B0nGR;A8BrnGE;EAEE,czBvCW;EyBwCX,6BAAA;A9BsnGJ;;A6B7qGE;ECmBA,czBJa;EyBKb,qBzBLa;ALmqGf;A8B5pGE;EACE,WATY;EAUZ,yBzBTW;EyBUX,qBzBVW;ALwqGf;A8B3pGE;EAEE,kDAAA;A9B4pGJ;A8BzpGE;EAKE,WArBa;EAsBb,yBzBxBW;EyByBX,qBzBzBW;ALgrGf;A8BrpGI;EAKI,kDAAA;A9BmpGR;A8B9oGE;EAEE,czBvCW;EyBwCX,6BAAA;A9B+oGJ;;A6BtsGE;ECmBA,czBJa;EyBKb,qBzBLa;AL4rGf;A8BrrGE;EACE,WATY;EAUZ,yBzBTW;EyBUX,qBzBVW;ALisGf;A8BprGE;EAEE,+CAAA;A9BqrGJ;A8BlrGE;EAKE,WArBa;EAsBb,yBzBxBW;EyByBX,qBzBzBW;ALysGf;A8B9qGI;EAKI,+CAAA;A9B4qGR;A8BvqGE;EAEE,czBvCW;EyBwCX,6BAAA;A9BwqGJ;;A6BntGA;EACE,gBxBuf4B;EwBtf5B,cxBzCQ;EwB0CR,0BxBmWwC;ALm3F1C;A6BptGE;EACE,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sCAAA;AjC6hHF;AiC5/GI;EACE,cAAA;AjC8/GN;AgCz8GI;EACE,iBAAA;AhC28GN;;AgCp8GA;EACE,SAAA;EACA,gBAAA;EACA,gBAAA;EACA,yCAAA;AhCu8GF;;AgCj8GA;EACE,cAAA;EACA,WAAA;EACA,qBAAA;EACA,WAAA;EACA,gB3B8b4B;E2B7b5B,c3BvHS;E2BwHT,mBAAA;EACA,qBAAA;EACA,mBAAA;EACA,6BAAA;EACA,SAAA;AhCo8GF;AgCt7GE;EAEE,c3B0+BgC;EiBnoClC,yBjBMS;AL2kHX;AgCn7GE;EAEE,W3B5JO;E2B6JP,qBAAA;EVjKF,yBjBkCQ;ALojHV;AgCj7GE;EAEE,c3B9JO;E2B+JP,oBAAA;EACA,6BAAA;AhCk7GJ;;AgC56GA;EACE,cAAA;AhC+6GF;;AgC36GA;EACE,cAAA;EACA,oB3By9BkC;E2Bx9BlC,gBAAA;E5B0GI,mBALI;E4BnGR,c3B/KS;E2BgLT,mBAAA;AhC86GF;;AgC16GA;EACE,cAAA;EACA,qBAAA;EACA,c3BpLS;ALimHX;;AgCz6GA;EACE,c3B/LS;E2BgMT,yB3B3LS;E2B4LT,iC3Bk7BkC;AL0/EpC;AgCz6GE;EACE,c3BrMO;ALgnHX;AgCz6GI;EAEE,W3B5MK;EiBJT,2CjB0pCkC;ALi+EpC;AgCv6GI;EAEE,W3BlNK;EiBJT,yBjBkCQ;AL6lHV;AgCr6GI;EAEE,c3BnNK;ALynHX;AgCl6GE;EACE,iC3By5BgC;AL2gFpC;AgCj6GE;EACE,c3B9NO;ALioHX;AgCh6GE;EACE,c3BhOO;ALkoHX;;AkC9oHA;;EAEE,kBAAA;EACA,oBAAA;EACA,sBAAA;AlCipHF;AkC/oHE;;EACE,kBAAA;EACA,cAAA;AlCkpHJ;AkC7oHE;;;;;;;;;;;;EAME,UAAA;AlCqpHJ;;AkChpHA;EACE,aAAA;EACA,eAAA;EACA,2BAAA;AlCmpHF;AkCjpHE;EACE,WAAA;AlCmpHJ;;AkC7oHE;;EAEE,iBAAA;AlCgpHJ;AkC5oHE;;E5BRE,0BAAA;EACA,6BAAA;ANwpHJ;AkCxoHE;;;E5BHE,yBAAA;EACA,4BAAA;ANgpHJ;;AkC3nHA;EACE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ACA,aAAA;EACA,YAAA;EACA,8BAAA;EACA,6BAAA;EACA,eAAA;EACA,cAAA;EfhMJ,gBeiMI;EACA,eAAA;ApC2gIV;AoCzgIQ;;EAEE,YAAA;EACA,aAAA;EACA,gBAAA;ApC2gIV;AoCxgIQ;EACE,aAAA;EACA,YAAA;EACA,UAAA;EACA,mBAAA;ApC0gIV;;AoC5/HE;EACE,yB/Bw3BgC;ALuoGpC;AoC7/HI;EAEE,yB/Bo3B8B;AL0oGpC;AoCz/HI;EACE,0B/B42B8B;AL+oGpC;AoCz/HM;EAEE,yB/By2B4B;ALipGpC;AoCv/HM;EACE,yB/Bu2B4B;ALkpGpC;AoCr/HI;;EAEE,yB/Bg2B8B;ALupGpC;AoCn/HE;EACE,0B/By1BgC;E+Bx1BhC,gC/B61BgC;ALwpGpC;AoCl/HE;EACE,6PAAA;ApCo/HJ;AoCj/HE;EACE,0B/Bg1BgC;ALmqGpC;AoCj/HI;;;EAGE,yB/B60B8B;ALsqGpC;;AoC5+HE;EACE,W/BzRO;ALwwIX;AoC7+HI;EAEE,W/B7RK;AL2wIX;AoCz+HI;EACE,gC/BkzB8B;ALyrGpC;AoCz+HM;EAEE,gC/B+yB4B;AL2rGpC;AoCv+HM;EACE,gC/B6yB4B;AL4rGpC;AoCr+HI;;EAEE,W/BjTK;ALwxIX;AoCn+HE;EACE,gC/B+xBgC;E+B9xBhC,sC/BmyBgC;ALksGpC;AoCl+HE;EACE,mQAAA;ApCo+HJ;AoCj+HE;EACE,gC/BsxBgC;AL6sGpC;AoCl+HI;;;EAGE,W/BnUK;ALuyIX;;AqC3yIA;EACE,kBAAA;EACA,aAAA;EACA,sBAAA;EACA,YAAA;EAEA,qBAAA;EACA,sBhCHS;EgCIT,2BAAA;EACA,sCAAA;E/BME,sBAAA;ANwyIJ;AqC1yIE;EACE,eAAA;EACA,cAAA;ArC4yIJ;AqCzyIE;EACE,mBAAA;EACA,sBAAA;ArC2yIJ;AqCzyII;EACE,mBAAA;E/BCF,2CAAA;EACA,4CAAA;AN2yIJ;AqCzyII;EACE,sBAAA;E/BUF,+CAAA;EACA,8CAAA;ANkyIJ;AqCtyIE;;EAEE,aAAA;ArCwyIJ;;AqCpyIA;EAGE,cAAA;EACA,kBAAA;ArCqyIF;;AqCjyIA;EACE,qBhCqqCkC;AL+nGpC;;AqCjyIA;EACE,oBAAA;EACA,gBAAA;ArCoyIF;;AqCjyIA;EACE,gBAAA;ArCoyIF;;AqC5xIE;EACE,iBhC8SK;ALi/HT;;AqCvxIA;EACE,oBAAA;EACA,gBAAA;EAEA,qChC+oCkC;EgC9oClC,6CAAA;ArCyxIF;AqCvxIE;E/BpEE,0DAAA;AN81IJ;;AqCrxIA;EACE,oBAAA;EAEA,qChCooCkC;EgCnoClC,0CAAA;ArCuxIF;AqCrxIE;E/B/EE,0DAAA;ANu2IJ;;AqC9wIA;EACE,qBAAA;EACA,sBAAA;EACA,oBAAA;EACA,gBAAA;ArCixIF;;AqCvwIA;EACE,qBAAA;EACA,oBAAA;ArC0wIF;;AqCtwIA;EACE,kBAAA;EACA,MAAA;EACA,QAAA;EACA,SAAA;EACA,OAAA;EACA,ahCgPO;ECnWL,kCAAA;AN63IJ;;AqCtwIA;;;EAGE,WAAA;ArCywIF;;AqCtwIA;;E/BpHI,2CAAA;EACA,4CAAA;AN+3IJ;;AqCvwIA;;E/B3GI,+CAAA;EACA,8CAAA;ANu3IJ;;AqChwIE;EACE,sBhCskCgC;AL6rGpC;Aav2II;EwBgGJ;IAQI,aAAA;IACA,mBAAA;ErCmwIF;EqChwIE;IAEE,YAAA;IACA,gBAAA;ErCiwIJ;EqC/vII;IACE,cAAA;IACA,cAAA;ErCiwIN;EqC5vIM;I/BpJJ,0BAAA;IACA,6BAAA;ENm5IF;EqC7vIQ;;IAGE,0BAAA;ErC8vIV;EqC5vIQ;;IAGE,6BAAA;ErC6vIV;EqCzvIM;I/BrJJ,yBAAA;IACA,4BAAA;ENi5IF;EqC1vIQ;;IAGE,yBAAA;ErC2vIV;EqCzvIQ;;IAGE,4BAAA;ErC0vIV;AACF;;AsCx8IA;EACE,kBAAA;EACA,aAAA;EACA,mBAAA;EACA,WAAA;EACA,qBAAA;ElC4RI,eALI;EkCrRR,cjCMS;EiCLT,gBAAA;EACA,sBjCLS;EiCMT,SAAA;EhCKE,gBAAA;EgCHF,qBAAA;EjBAI,+JiBCJ;AtC28IF;AqBx8IM;EiBhBN;IjBiBQ,gBAAA;ErB28IN;AACF;AsC98IE;EACE,cjC6uCsC;EiC5uCtC,yBjC2uCsC;EiC1uCtC,+CAAA;AtCg9IJ;AsC98II;EACE,iSAAA;EACA,0BjCgvCoC;ALguG1C;AsC38IE;EACE,cAAA;EACA,cjCquCsC;EiCpuCtC,ejCouCsC;EiCnuCtC,iBAAA;EACA,WAAA;EACA,iSAAA;EACA,4BAAA;EACA,wBjC+tCsC;EgBtvCpC,sCiBwBF;AtC68IJ;AqBj+IM;EiBWJ;IjBVM,gBAAA;ErBo+IN;AACF;AsC/8IE;EACE,UAAA;AtCi9IJ;AsC98IE;EACE,UAAA;EACA,qBjCuyBoC;EiCtyBpC,UAAA;EACA,kDjCorB4B;AL4xHhC;;AsC58IA;EACE,gBAAA;AtC+8IF;;AsC58IA;EACE,sBjCpDS;EiCqDT,sCAAA;AtC+8IF;AsC78IE;EhCnCE,+BAAA;EACA,gCAAA;ANm/IJ;AsC98II;EhCtCA,2CAAA;EACA,4CAAA;ANu/IJ;AsC78IE;EACE,aAAA;AtC+8IJ;AsC38IE;EhClCE,mCAAA;EACA,kCAAA;ANg/IJ;AsC38IM;EhCtCF,+CAAA;EACA,8CAAA;ANo/IJ;AsC18II;EhC3CA,mCAAA;EACA,kCAAA;ANw/IJ;;AsCx8IA;EACE,qBAAA;AtC28IF;;AsCl8IE;EACE,eAAA;AtCq8IJ;AsCl8IE;EACE,eAAA;EACA,cAAA;EhCxFA,gBAAA;AN6hJJ;AsCl8II;EAAgB,aAAA;AtCq8IpB;AsCp8II;EAAe,gBAAA;AtCu8InB;AsCr8II;EhC9FA,gBAAA;ANsiJJ;;AuCzjJA;EACE,aAAA;EACA,eAAA;EACA,YAAA;EACA,mBlC4+CkC;EkC1+ClC,gBAAA;AvC2jJF;;AuCpjJE;EACE,oBlCi+CgC;ALslGpC;AuCrjJI;EACE,WAAA;EACA,qBlC69C8B;EkC59C9B,clCLK;EkCML,uFAAA;AvCujJN;AuCnjJE;EACE,clCXO;ALgkJX;;AwC9kJA;EACE,aAAA;EhCGA,eAAA;EACA,gBAAA;AR+kJF;;AwC/kJA;EACE,kBAAA;EACA,cAAA;EACA,cnC8BQ;EmC7BR,qBAAA;EACA,sBnCFS;EmCGT,yBAAA;EnBKI,qImBJJ;AxCklJF;AqB1kJM;EmBfN;InBgBQ,gBAAA;ErB6kJN;AACF;AwCrlJE;EACE,UAAA;EACA,cnCqasC;EmCnatC,yBnCRO;EmCSP,qBnCRO;AL8lJX;AwCnlJE;EACE,UAAA;EACA,cnC6ZsC;EmC5ZtC,yBnCfO;EmCgBP,UnCgqCgC;EmC/pChC,kDnC4sB4B;ALy4HhC;;AwChlJE;EACE,iBnCmpCgC;ALg8GpC;AwChlJE;EACE,UAAA;EACA,WnC9BO;EiBJT,yBjBkCQ;EmCEN,qBnCFM;ALolJV;AwC/kJE;EACE,cnC9BO;EmC+BP,oBAAA;EACA,sBnCtCO;EmCuCP,qBnCpCO;ALqnJX;;AyC5nJE;EACE,yBAAA;AzC+nJJ;;AyCxnJQ;EnCqCJ,+BAAA;EACA,kCAAA;ANulJJ;AyCvnJQ;EnCiBJ,gCAAA;EACA,mCAAA;ANymJJ;;AyCzoJE;EACE,uBAAA;ErCgSE,kBALI;AJk3IV;AyCtoJQ;EnCqCJ,8BAAA;EACA,iCAAA;ANomJJ;AyCpoJQ;EnCiBJ,+BAAA;EACA,kCAAA;ANsnJJ;;AyCtpJE;EACE,uBAAA;ErCgSE,mBALI;AJ+3IV;AyCnpJQ;EnCqCJ,8BAAA;EACA,iCAAA;ANinJJ;AyCjpJQ;EnCiBJ,+BAAA;EACA,kCAAA;ANmoJJ;;A0ClqJA;EACE,qBAAA;EACA,sBAAA;EtC8RI,iBALI;EsCvRR,gBrC6jB4B;EqC5jB5B,cAAA;EACA,WrCHS;EqCIT,kBAAA;EACA,mBAAA;EACA,wBAAA;EpCKE,sBAAA;ANiqJJ;A0CjqJE;EACE,aAAA;A1CmqJJ;;A0C9pJA;EACE,kBAAA;EACA,SAAA;A1CiqJF;;A2CxrJA;EACE,kBAAA;EACA,kBAAA;EACA,mBtCs5C8B;EsCr5C9B,6BAAA;ErCWE,sBAAA;ANirJJ;;A2CvrJA;EAEE,cAAA;A3CyrJF;;A2CrrJA;EACE,gBtCkjB4B;ALsoI9B;;A2ChrJA;EACE,mBtCu4C8B;AL4yGhC;A2ChrJE;EACE,kBAAA;EACA,MAAA;EACA,QAAA;EACA,UAAA;EACA,qBAAA;A3CkrJJ;;A2CnqJE;EClDA,cD8Cc;ErB5Cd,yBqB0CmB;EC1CnB,qBD2Ce;A3C8qJjB;A4CvtJE;EACE,cAAA;A5CytJJ;;A2C5qJE;EClDA,cD8Cc;ErB5Cd,yBqB0CmB;EC1CnB,qBD2Ce;A3CurJjB;A4ChuJE;EACE,cAAA;A5CkuJJ;;A2CrrJE;EClDA,cD8Cc;ErB5Cd,yBqB0CmB;EC1CnB,qBD2Ce;A3CgsJjB;A4CzuJE;EACE,cAAA;A5C2uJJ;;A2C9rJE;EClDA,cDgDgB;ErB9ChB,yBqB0CmB;EC1CnB,qBD2Ce;A3CysJjB;A4ClvJE;EACE,cAAA;A5CovJJ;;A2CvsJE;EClDA,cDgDgB;ErB9ChB,yBqB0CmB;EC1CnB,qBD2Ce;A3CktJjB;A4C3vJE;EACE,cAAA;A5C6vJJ;;A2ChtJE;EClDA,cD8Cc;ErB5Cd,yBqB0CmB;EC1CnB,qBD2Ce;A3C2tJjB;A4CpwJE;EACE,cAAA;A5CswJJ;;A2CztJE;EClDA,cDgDgB;ErB9ChB,yBqB0CmB;EC1CnB,qBD2Ce;A3CouJjB;A4C7wJE;EACE,cAAA;A5C+wJJ;;A2CluJE;EClDA,cD8Cc;ErB5Cd,yBqB0CmB;EC1CnB,qBD2Ce;A3C6uJjB;A4CtxJE;EACE,cAAA;A5CwxJJ;;A6C3xJE;EACE;IAAK,2BxCs6C2B;ELy3GlC;AACF;;A6CjyJE;EACE;IAAK,2BxCs6C2B;ELy3GlC;AACF;A6C3xJA;EACE,aAAA;EACA,YxC+5CkC;EwC95ClC,gBAAA;EzCwRI,kBALI;EyCjRR,yBxCLS;ECSP,sBAAA;AN0xJJ;;A6CzxJA;EACE,aAAA;EACA,sBAAA;EACA,uBAAA;EACA,gBAAA;EACA,WxCjBS;EwCkBT,kBAAA;EACA,mBAAA;EACA,yBxCUQ;EgBtBJ,2BwBaJ;A7C4xJF;AqBryJM;EwBAN;IxBCQ,gBAAA;ErBwyJN;AACF;;A6C9xJA;EvBYE,qMAAA;EuBVA,0BAAA;A7CiyJF;;A6C7xJE;EACE,0DAAA;EAAA,kDAAA;A7CgyJJ;A6C7xJM;EAJJ;IAKM,uBAAA;IAAA,eAAA;E7CgyJN;AACF;;A8Cx0JA;EACE,aAAA;EACA,sBAAA;EAGA,eAAA;EACA,gBAAA;ExCSE,sBAAA;ANi0JJ;;A8Ct0JA;EACE,qBAAA;EACA,sBAAA;A9Cy0JF;A8Cv0JE;EAEE,oCAAA;EACA,0BAAA;A9Cw0JJ;;A8C9zJA;EACE,WAAA;EACA,czClBS;EyCmBT,mBAAA;A9Ci0JF;A8C9zJE;EAEE,UAAA;EACA,czCzBO;EyC0BP,qBAAA;EACA,yBzCjCO;ALg2JX;A8C5zJE;EACE,czC7BO;EyC8BP,yBzCrCO;ALm2JX;;A8CrzJA;EACE,kBAAA;EACA,cAAA;EACA,oBAAA;EACA,czC3CS;EyC4CT,qBAAA;EACA,sBzCtDS;EyCuDT,sCAAA;A9CwzJF;A8CtzJE;ExCrCE,+BAAA;EACA,gCAAA;AN81JJ;A8CtzJE;ExC3BE,mCAAA;EACA,kCAAA;ANo1JJ;A8CtzJE;EAEE,czC7DO;EyC8DP,oBAAA;EACA,sBzCrEO;AL43JX;A8CnzJE;EACE,UAAA;EACA,WzC3EO;EyC4EP,yBzC9CM;EyC+CN,qBzC/CM;ALo2JV;A8ClzJE;EACE,mBAAA;A9CozJJ;A8ClzJI;EACE,gBAAA;EACA,qBzC8ZwB;ALs5I9B;;A8CtyJI;EACE,mBAAA;A9CyyJN;A8CtyJQ;ExCrCJ,kCAAA;EAZA,0BAAA;AN21JJ;A8CryJQ;ExCtDJ,gCAAA;EAYA,4BAAA;ANm1JJ;A8CpyJQ;EACE,aAAA;A9CsyJV;A8CnyJQ;EACE,qBzC6XoB;EyC5XpB,oBAAA;A9CqyJV;A8CnyJU;EACE,iBAAA;EACA,sBzCwXkB;AL66I9B;;Aaz2JI;EiC4CA;IACE,mBAAA;E9Ci0JJ;E8C9zJM;IxCrCJ,kCAAA;IAZA,0BAAA;ENm3JF;E8C7zJM;IxCtDJ,gCAAA;IAYA,4BAAA;EN22JF;E8C5zJM;IACE,aAAA;E9C8zJR;E8C3zJM;IACE,qBzC6XoB;IyC5XpB,oBAAA;E9C6zJR;E8C3zJQ;IACE,iBAAA;IACA,sBzCwXkB;ELq8I5B;AACF;Aal4JI;EiC4CA;IACE,mBAAA;E9Cy1JJ;E8Ct1JM;IxCrCJ,kCAAA;IAZA,0BAAA;EN24JF;E8Cr1JM;IxCtDJ,gCAAA;IAYA,4BAAA;ENm4JF;E8Cp1JM;IACE,aAAA;E9Cs1JR;E8Cn1JM;IACE,qBzC6XoB;IyC5XpB,oBAAA;E9Cq1JR;E8Cn1JQ;IACE,iBAAA;IACA,sBzCwXkB;EL69I5B;AACF;Aa15JI;EiC4CA;IACE,mBAAA;E9Ci3JJ;E8C92JM;IxCrCJ,kCAAA;IAZA,0BAAA;ENm6JF;E8C72JM;IxCtDJ,gCAAA;IAYA,4BAAA;EN25JF;E8C52JM;IACE,aAAA;E9C82JR;E8C32JM;IACE,qBzC6XoB;IyC5XpB,oBAAA;E9C62JR;E8C32JQ;IACE,iBAAA;IACA,sBzCwXkB;ELq/I5B;AACF;Aal7JI;EiC4CA;IACE,mBAAA;E9Cy4JJ;E8Ct4JM;IxCrCJ,kCAAA;IAZA,0BAAA;EN27JF;E8Cr4JM;IxCtDJ,gCAAA;IAYA,4BAAA;ENm7JF;E8Cp4JM;IACE,aAAA;E9Cs4JR;E8Cn4JM;IACE,qBzC6XoB;IyC5XpB,oBAAA;E9Cq4JR;E8Cn4JQ;IACE,iBAAA;IACA,sBzCwXkB;EL6gJ5B;AACF;Aa18JI;EiC4CA;IACE,mBAAA;E9Ci6JJ;E8C95JM;IxCrCJ,kCAAA;IAZA,0BAAA;ENm9JF;E8C75JM;IxCtDJ,gCAAA;IAYA,4BAAA;EN28JF;E8C55JM;IACE,aAAA;E9C85JR;E8C35JM;IACE,qBzC6XoB;IyC5XpB,oBAAA;E9C65JR;E8C35JQ;IACE,iBAAA;IACA,sBzCwXkB;ELqiJ5B;AACF;A8Ch5JA;ExC9HI,gBAAA;ANihKJ;A8Ch5JE;EACE,qBAAA;A9Ck5JJ;A8Ch5JI;EACE,sBAAA;A9Ck5JN;;A+CtiKE;EACE,cDiKyB;EChKzB,yBD+JsB;A9C04J1B;A+CtiKM;EAEE,cD2JqB;EC1JrB,yBAAA;A/CuiKR;A+CpiKM;EACE,W1CRG;E0CSH,yBDqJqB;ECpJrB,qBDoJqB;A9Ck5J7B;;A+CpjKE;EACE,cDiKyB;EChKzB,yBD+JsB;A9Cw5J1B;A+CpjKM;EAEE,cD2JqB;EC1JrB,yBAAA;A/CqjKR;A+CljKM;EACE,W1CRG;E0CSH,yBDqJqB;ECpJrB,qBDoJqB;A9Cg6J7B;;A+ClkKE;EACE,cDiKyB;EChKzB,yBD+JsB;A9Cs6J1B;A+ClkKM;EAEE,cD2JqB;EC1JrB,yBAAA;A/CmkKR;A+ChkKM;EACE,W1CRG;E0CSH,yBDqJqB;ECpJrB,qBDoJqB;A9C86J7B;;A+ChlKE;EACE,cDmK2B;EClK3B,yBD+JsB;A9Co7J1B;A+ChlKM;EAEE,cD6JuB;EC5JvB,yBAAA;A/CilKR;A+C9kKM;EACE,W1CRG;E0CSH,yBDuJuB;ECtJvB,qBDsJuB;A9C07J/B;;A+C9lKE;EACE,cDmK2B;EClK3B,yBD+JsB;A9Ck8J1B;A+C9lKM;EAEE,cD6JuB;EC5JvB,yBAAA;A/C+lKR;A+C5lKM;EACE,W1CRG;E0CSH,yBDuJuB;ECtJvB,qBDsJuB;A9Cw8J/B;;A+C5mKE;EACE,cDiKyB;EChKzB,yBD+JsB;A9Cg9J1B;A+C5mKM;EAEE,cD2JqB;EC1JrB,yBAAA;A/C6mKR;A+C1mKM;EACE,W1CRG;E0CSH,yBDqJqB;ECpJrB,qBDoJqB;A9Cw9J7B;;A+C1nKE;EACE,cDmK2B;EClK3B,yBD+JsB;A9C89J1B;A+C1nKM;EAEE,cD6JuB;EC5JvB,yBAAA;A/C2nKR;A+CxnKM;EACE,W1CRG;E0CSH,yBDuJuB;ECtJvB,qBDsJuB;A9Co+J/B;;A+CxoKE;EACE,cDiKyB;EChKzB,yBD+JsB;A9C4+J1B;A+CxoKM;EAEE,cD2JqB;EC1JrB,yBAAA;A/CyoKR;A+CtoKM;EACE,W1CRG;E0CSH,yBDqJqB;ECpJrB,qBDoJqB;A9Co/J7B;;AgDrpKA;EACE,uBAAA;EACA,U3CyiD2B;E2CxiD3B,W3CwiD2B;E2CviD3B,sBAAA;EACA,W3CQS;E2CPT,2WAAA;EACA,SAAA;E1COE,sBAAA;E0CLF,Y3CyiD2B;AL+mH7B;AgDrpKE;EACE,WAAA;EACA,qBAAA;EACA,a3CoiDyB;ALmnH7B;AgDppKE;EACE,UAAA;EACA,kD3C8sB4B;E2C7sB5B,U3C+hDyB;ALunH7B;AgDnpKE;EAEE,oBAAA;EACA,yBAAA;EAAA,sBAAA;EAAA,iBAAA;EACA,a3CyhDyB;AL2nH7B;;AgDhpKA;EACE,kD3CqhD2B;AL8nH7B;;AiDzrKA;EACE,Y5C40CkC;E4C30ClC,eAAA;E7CmSI,mBALI;E6C3RR,oBAAA;EACA,2C5C40CkC;E4C30ClC,4BAAA;EACA,oCAAA;EACA,6C5CsgB4B;EC5f1B,sBAAA;AN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AAA;AtEq5MZ;;AsE55MQ;EAOI,iBAAA;AtEy5MZ;;AsEh6MQ;EAOI,mBAAA;AtE65MZ;;AsEp6MQ;EAOI,oBAAA;AtEi6MZ;;AsEx6MQ;EAOI,oBAAA;AtEq6MZ;;AsE56MQ;EAOI,sBAAA;AtEy6MZ;;AsEh7MQ;EAOI,uBAAA;AtE66MZ;;AsEp7MQ;EAOI,kBAAA;AtEi7MZ;;AsEx7MQ;EAOI,oBAAA;AtEq7MZ;;AsE57MQ;EAOI,qBAAA;AtEy7MZ;;AsEh8MQ;EAOI,mBAAA;AtE67MZ;;AsEp8MQ;EAOI,qBAAA;AtEi8MZ;;AsEx8MQ;EAOI,sBAAA;AtEq8MZ;;AsE58MQ;EAOI,2CAAA;AtEy8MZ;;AsEh9MQ;EAOI,sCAAA;AtE68MZ;;AsEp9MQ;EAOI,sCAAA;AtEi9MZ;;AsEx9MQ;EAOI,oCAAA;AtEq9MZ;;AsE59MQ;EAOI,oBAAA;AtEy9MZ;;AsEh+MQ;EAOI,wCAAA;AtE69MZ;;AsEp+MQ;EAOI,wBAAA;AtEi+MZ;;AsEx+MQ;EAOI,0CAAA;AtEq+MZ;;AsE5+MQ;EAOI,0BAAA;AtEy+MZ;;AsEh/MQ;EAOI,2CAAA;AtE6+MZ;;AsEp/MQ;EAOI,2BAAA;AtEi/MZ;;AsEx/MQ;EAOI,yCAAA;AtEq/MZ;;AsE5/MQ;EAOI,yBAAA;AtEy/MZ;;AsEhgNQ;EAOI,gCAAA;AtE6/MZ;;AsEpgNQ;EAOI,gCAAA;AtEigNZ;;AsExgNQ;EAOI,gCAAA;AtEqgNZ;;AsE5gNQ;EAOI,gCAAA;AtEygNZ;;AsEhhNQ;EAOI,gCAAA;AtE6gNZ;;AsEphNQ;EAOI,gCAAA;AtEihNZ;;AsExhNQ;EAOI,gCAAA;AtEqhNZ;;AsE5hNQ;EAOI,gCAAA;AtEyhNZ;;AsEhiNQ;EAOI,6BAAA;AtE6hNZ;;AsEpiNQ;EAOI,4BAAA;AtEiiNZ;;AsExiNQ;EAOI,4BAAA;AtEqiNZ;;AsE5iNQ;EAOI,4BAAA;AtEyiNZ;;AsEhjNQ;EAOI,4BAAA;AtE6iNZ;;AsEpjNQ;EAOI,4BAAA;AtEijNZ;;AsExjNQ;EAOI,qBAAA;AtEqjNZ;;AsE5jNQ;EAOI,qBAAA;AtEyjNZ;;AsEhkNQ;EAOI,qBAAA;AtE6jNZ;;AsEpkNQ;EAOI,sBAAA;AtEikNZ;;AsExkNQ;EAOI,sBAAA;AtEqkNZ;;AsE5kNQ;EAOI,0BAAA;AtEykNZ;;AsEhlNQ;EAOI,uBAAA;AtE6kNZ;;AsEplNQ;EAOI,2BAAA;AtEilNZ;;AsExlNQ;EAOI,sBAAA;AtEqlNZ;;AsE5lNQ;EAOI,sBAAA;AtEylNZ;;AsEhmNQ;EAOI,sBAAA;AtE6lNZ;;AsEpmNQ;EAOI,uBAAA;AtEimNZ;;AsExmNQ;EAOI,uBAAA;AtEqmNZ;;AsE5mNQ;EAOI,2BAAA;AtEymNZ;;AsEhnNQ;EAOI,wBAAA;AtE6mNZ;;AsEpnNQ;EAOI,4BAAA;AtEinNZ;;AsExnNQ;EAOI,yBAAA;AtEqnNZ;;AsE5nNQ;EAOI,8BAAA;AtEynNZ;;AsEhoNQ;EAOI,iCAAA;AtE6nNZ;;AsEpoNQ;EAOI,sCAAA;AtEioNZ;;AsExoNQ;EAOI,yCAAA;AtEqoNZ;;AsE5oNQ;EAOI,uBAAA;AtEyoNZ;;AsEhpNQ;EAOI,uBAAA;AtE6oNZ;;AsEppNQ;EAOI,yBAAA;AtEipNZ;;AsExpNQ;EAOI,yBAAA;AtEqpNZ;;AsE5pNQ;EAOI,0BAAA;AtEypNZ;;AsEhqNQ;EAOI,4BAAA;AtE6pNZ;;AsEpqNQ;EAOI,kCAAA;AtEiqNZ;;AsExqNQ;EAOI,iBAAA;AtEqqNZ;;AsE5qNQ;EAOI,uBAAA;AtEyqNZ;;AsEhrNQ;EAOI,sBAAA;AtE6qNZ;;AsEprNQ;EAOI,oBAAA;AtEirNZ;;AsExrNQ;EAOI,sBAAA;AtEqrNZ;;AsE5rNQ;EAOI,oBAAA;AtEyrNZ;;AsEhsNQ;EAOI,sCAAA;AtE6rNZ;;AsEpsNQ;EAOI,oCAAA;AtEisNZ;;AsExsNQ;EAOI,kCAAA;AtEqsNZ;;AsE5sNQ;EAOI,yCAAA;AtEysNZ;;AsEhtNQ;EAOI,wCAAA;AtE6sNZ;;AsEptNQ;EAOI,wCAAA;AtEitNZ;;AsExtNQ;EAOI,kCAAA;AtEqtNZ;;AsE5tNQ;EAOI,gCAAA;AtEytNZ;;AsEhuNQ;EAOI,8BAAA;AtE6tNZ;;AsEpuNQ;EAOI,gCAAA;AtEiuNZ;;AsExuNQ;EAOI,+BAAA;AtEquNZ;;AsE5uNQ;EAOI,oCAAA;AtEyuNZ;;AsEhvNQ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A;EtEwrQV;;EsE/rQM;IAOI,6BAAA;EtE4rQV;AACF;AapsQI;EyDAI;IAOI,sBAAA;EtEisQV;;EsExsQM;IAOI,uBAAA;EtEqsQV;;EsE5sQM;IAOI,sBAAA;EtEysQV;;EsEhtQM;IAOI,0BAAA;EtE6sQV;;EsEptQM;IAOI,gCAAA;EtEitQV;;EsExtQM;IAOI,yBAAA;EtEqtQV;;EsE5tQM;IAOI,wBAAA;EtEytQV;;EsEhuQM;IAOI,yBAAA;EtE6tQV;;EsEpuQM;IAOI,6BAAA;EtEiuQV;;EsExuQM;IAOI,8BAAA;EtEquQV;;EsE5uQM;IAOI,wBAAA;EtEyuQV;;EsEhvQM;IAOI,+BAAA;EtE6uQV;;EsEpvQM;IAOI,wBAAA;EtEivQV;;EsExvQM;IAOI,yBAAA;EtEqvQV;;EsE5vQM;IAOI,8BAAA;EtEyvQV;;EsEhwQM;IAOI,iCAAA;EtE6vQV;;EsEpwQM;IAOI,sCAAA;EtEiwQV;;EsExwQM;IAOI,yCAAA;EtEqwQV;;EsE5wQM;IAOI,uBAAA;EtEywQV;;EsEhxQM;IAOI,uBAAA;EtE6wQV;;EsEpxQM;IAOI,yBAAA;EtEixQV;;EsExxQM;IAOI,yBAAA;EtEqxQV;;EsE5xQM;IAOI,0BAAA;EtEyxQV;;EsEhyQM;IAOI,4BAAA;EtE6xQV;;EsEpyQM;IAOI,kCAAA;EtEiyQV;;EsExyQM;IAOI,iBAAA;EtEqyQV;;EsE5yQM;IAOI,uBAAA;EtEyyQV;;EsEhzQM;IAOI,sBAAA;EtE6yQV;;EsEpzQM;IAOI,oBAAA;EtEizQV;;EsExzQM;IAOI,sBAAA;EtEqzQV;;EsE5zQM;IAOI,oBAAA;EtEyzQV;;EsEh0QM;IAOI,sCAAA;EtE6zQV;;EsEp0QM;IAOI,oCAAA;EtEi0QV;;EsEx0QM;IAOI,kCAAA;EtEq0QV;;EsE50QM;IAOI,yCAAA;EtEy0QV;;EsEh1QM;IAOI,wCAAA;EtE60QV;;EsEp1QM;IAOI,wCAAA;EtEi1QV;;EsEx1QM;IAOI,kCAAA;EtEq1QV;;EsE51QM;IAOI,gCAAA;EtEy1QV;;EsEh2QM;IAOI,8BAAA;EtE61QV;;EsEp2QM;IAOI,gCAAA;EtEi2QV;;EsEx2QM;IAOI,+BAAA;EtEq2QV;;EsE52QM;IAOI,oCAAA;EtEy2QV;;EsEh3QM;IAOI,kCAAA;EtE62QV;;EsEp3QM;IAOI,gCAAA;EtEi3QV;;EsEx3QM;IAOI,uCAAA;EtEq3QV;;EsE53QM;IAOI,sCAAA;EtEy3QV;;EsEh4QM;IAOI,iCAAA;EtE63QV;;EsEp4QM;IAOI,2BAAA;EtEi4QV;;EsEx4QM;IAOI,iCAAA;EtEq4QV;;EsE54QM;IAOI,+BAAA;EtEy4QV;;EsEh5QM;IAOI,6BAAA;EtE64QV;;EsEp5QM;IAOI,+BAAA;EtEi5QV;;EsEx5QM;IAOI,8BAAA;EtEq5QV;;EsE55QM;IAOI,oBAAA;EtEy5QV;;EsEh6QM;IAOI,mBAAA;EtE65QV;;EsEp6QM;IAOI,mBAAA;EtEi6QV;;EsEx6QM;IAOI,mBAAA;EtEq6QV;;EsE56QM;IAOI,mBAAA;EtEy6QV;;EsEh7QM;IAOI,mBAAA;EtE66QV;;EsEp7QM;IAOI,mBAAA;EtEi7QV;;EsEx7QM;IAOI,mBAAA;EtEq7QV;;EsE57QM;IAOI,oBAAA;EtEy7QV;;EsEh8QM;IAOI,0BAAA;EtE67QV;;EsEp8QM;IAOI,yBAAA;EtEi8QV;;EsEx8QM;IAOI,uBAAA;EtEq8QV;;EsE58QM;IAOI,yBAAA;EtEy8QV;;EsEh9QM;IAOI,uBAAA;EtE68QV;;EsEp9QM;IAOI,uBAAA;EtEi9QV;;EsEx9QM;IAOI,0BAAA;IAAA,yBAAA;EtEs9QV;;EsE79QM;IAOI,gCAAA;IAAA,+BAAA;EtE29QV;;EsEl+QM;IAOI,+BAAA;IAAA,8BAAA;EtEg+QV;;EsEv+QM;IAOI,6BAAA;IAAA,4BAAA;EtEq+QV;;EsE5+QM;IAOI,+BAAA;IAAA,8BAAA;EtE0+QV;;EsEj/QM;IAOI,6BAAA;IAAA,4BAAA;EtE++QV;;EsEt/QM;IAOI,6BAAA;IAAA,4BAAA;EtEo/QV;;EsE3/QM;IAOI,wBAAA;IAAA,2BAAA;EtEy/QV;;EsEhgRM;IAOI,8BAAA;IAAA,iCAAA;EtE8/QV;;EsErgRM;IAOI,6BAAA;IAAA,gCAAA;EtEmgRV;;EsE1gRM;IAOI,2BAAA;IAAA,8BAAA;EtEwgRV;;EsE/gRM;IAOI,6BAAA;IAAA,gCAAA;EtE6gRV;;EsEphRM;IAOI,2BAAA;IAAA,8BAAA;EtEkhRV;;EsEzhRM;IAOI,2BAAA;IAAA,8BAAA;EtEuhRV;;EsE9hRM;IAOI,wBAAA;EtE2hRV;;EsEliRM;IAOI,8BAAA;EtE+hRV;;EsEtiRM;IAOI,6BAAA;EtEmiRV;;EsE1iRM;IAOI,2BAAA;EtEuiRV;;EsE9iRM;IAOI,6BAAA;EtE2iRV;;EsEljRM;IAOI,2BAAA;EtE+iRV;;EsEtjRM;IAOI,2BAAA;EtEmjRV;;EsE1jRM;IAOI,0BAAA;EtEujRV;;EsE9jRM;IAOI,gCAAA;EtE2jRV;;EsElkRM;IAOI,+BAAA;EtE+jRV;;EsEtkRM;IAOI,6BAAA;EtEmkRV;;EsE1kRM;IAOI,+BAAA;EtEukRV;;EsE9kRM;IAOI,6BAAA;EtE2kRV;;EsEllRM;IAOI,6BAAA;EtE+kRV;;EsEtlRM;IAOI,2BAAA;EtEmlRV;;EsE1lRM;IAOI,iCAAA;EtEulRV;;EsE9lRM;IAOI,gCAAA;EtE2lRV;;EsElmRM;IAOI,8BAAA;EtE+lRV;;EsEtmRM;IAOI,gCAAA;EtEmmRV;;EsE1mRM;IAOI,8BAAA;EtEumRV;;EsE9mRM;IAOI,8BAAA;EtE2mRV;;EsElnRM;IAOI,yBAAA;EtE+mRV;;EsEtnRM;IAOI,+BAAA;EtEmnRV;;EsE1nRM;IAOI,8BAAA;EtEunRV;;EsE9nRM;IAOI,4BAAA;EtE2nRV;;EsEloRM;IAOI,8BAAA;EtE+nRV;;EsEtoRM;IAOI,4BAAA;EtEmoRV;;EsE1oRM;IAOI,4BAAA;EtEuoRV;;EsE9oRM;IAOI,qBAAA;EtE2oRV;;EsElpRM;IAOI,2BAAA;EtE+oRV;;EsEtpRM;IAOI,0BAAA;EtEmpRV;;EsE1pRM;IAOI,wBAAA;EtEupRV;;EsE9pRM;IAOI,0BAAA;EtE2pRV;;EsElqRM;IAOI,wBAAA;EtE+pRV;;EsEtqRM;IAOI,2BAAA;IAAA,0BAAA;EtEoqRV;;EsE3qRM;IAOI,iCAAA;IAAA,gCAAA;EtEyqRV;;EsEhrRM;IAOI,gCAAA;IAAA,+BAAA;EtE8qRV;;EsErrRM;IAOI,8BAAA;IAAA,6BAAA;EtEmrRV;;EsE1rRM;IAOI,gCAAA;IAAA,+BAAA;EtEwrRV;;EsE/rRM;IAOI,8BAAA;IAAA,6BAAA;EtE6rRV;;EsEpsRM;IAOI,yBAAA;IAAA,4BAAA;EtEksRV;;EsEzsRM;IAOI,+BAAA;IAAA,kCAAA;EtEusRV;;EsE9sRM;IAOI,8BAAA;IAAA,iCAAA;EtE4sRV;;EsEntRM;IAOI,4BAAA;IAAA,+BAAA;EtEitRV;;EsExtRM;IAOI,8BAAA;IAAA,iCAAA;EtEstRV;;EsE7tRM;IAOI,4BAAA;IAAA,+BAAA;EtE2tRV;;EsEluRM;IAOI,yBAAA;EtE+tRV;;EsEtuRM;IAOI,+BAAA;EtEmuRV;;EsE1uRM;IAOI,8BAAA;EtEuuRV;;EsE9uRM;IAOI,4BAAA;EtE2uRV;;EsElvRM;IAOI,8BAAA;EtE+uRV;;EsEtvRM;IAOI,4BAAA;EtEmvRV;;EsE1vRM;IAOI,2BAAA;EtEuvRV;;EsE9vRM;IAOI,iCAAA;EtE2vRV;;EsElwRM;IAOI,gCAAA;EtE+vRV;;EsEtwRM;IAOI,8BAAA;EtEmwRV;;EsE1wRM;IAOI,gCAAA;EtEuwRV;;EsE9wRM;IAOI,8BAAA;EtE2wRV;;EsElxRM;IAOI,4BAAA;EtE+wRV;;EsEtxRM;IAOI,kCAAA;EtEmxRV;;EsE1xRM;IAOI,iCAAA;EtEuxRV;;EsE9xRM;IAOI,+BAAA;EtE2xRV;;EsElyRM;IAOI,iCAAA;EtE+xRV;;EsEtyRM;IAOI,+BAAA;EtEmyRV;;EsE1yRM;IAOI,0BAAA;EtEuyRV;;EsE9yRM;IAOI,gCAAA;EtE2yRV;;EsElzRM;IAOI,+BAAA;EtE+yRV;;EsEtzRM;IAOI,6BAAA;EtEmzRV;;EsE1zRM;IAOI,+BAAA;EtEuzRV;;EsE9zRM;IAOI,6BAAA;EtE2zRV;;EsEl0RM;IAOI,2BAAA;EtE+zRV;;EsEt0RM;IAOI,4BAAA;EtEm0RV;;EsE10RM;IAOI,6BAAA;EtEu0RV;AACF;Aa/0RI;EyDAI;IAOI,sBAAA;EtE40RV;;EsEn1RM;IAOI,uBAAA;EtEg1RV;;EsEv1RM;IAOI,sBAAA;EtEo1RV;;EsE31RM;IAOI,0BAAA;EtEw1RV;;EsE/1RM;IAOI,gCAAA;EtE41RV;;EsEn2RM;IAOI,yBAAA;EtEg2RV;;EsEv2RM;IAOI,wBAAA;EtEo2RV;;EsE32RM;IAOI,yBAAA;EtEw2RV;;EsE/2RM;IAOI,6BAAA;EtE42RV;;EsEn3RM;IAOI,8BAAA;EtEg3RV;;EsEv3RM;IAOI,wBAAA;EtEo3RV;;EsE33RM;IAOI,+BAAA;EtEw3RV;;EsE/3RM;IAOI,wBAAA;EtE43RV;;EsEn4RM;IAOI,yBAAA;EtEg4RV;;EsEv4RM;IAOI,8BAAA;EtEo4RV;;EsE34RM;IAOI,iCAAA;EtEw4RV;;EsE/4RM;IAOI,sCAAA;EtE44RV;;EsEn5RM;IAOI,yCAAA;EtEg5RV;;EsEv5RM;IAOI,uBAAA;EtEo5RV;;EsE35RM;IAOI,uBAAA;EtEw5RV;;EsE/5RM;IAOI,yBAAA;EtE45RV;;EsEn6RM;IAOI,yBAAA;EtEg6RV;;EsEv6RM;IAOI,0BAAA;EtEo6RV;;EsE36RM;IAOI,4BAAA;EtEw6RV;;EsE/6RM;IAOI,kCAAA;EtE46RV;;EsEn7RM;IAOI,iBAAA;EtEg7RV;;EsEv7RM;IAOI,uBAAA;EtEo7RV;;EsE37RM;IAOI,sBAAA;EtEw7RV;;EsE/7RM;IAOI,oBAAA;EtE47RV;;EsEn8RM;IAOI,sBAAA;EtEg8RV;;EsEv8RM;IAOI,oBAAA;EtEo8RV;;EsE38RM;IAOI,sCAAA;EtEw8RV;;EsE/8RM;IAOI,oCAAA;EtE48RV;;EsEn9RM;IAOI,kCAAA;EtEg9RV;;EsEv9RM;IAOI,yCAAA;EtEo9RV;;EsE39RM;IAOI,wCAAA;EtEw9RV;;EsE/9RM;IAOI,wCAAA;EtE49RV;;EsEn+RM;IAOI,kCAAA;EtEg+RV;;EsEv+RM;IAOI,gCAAA;EtEo+RV;;EsE3+RM;IAOI,8BAAA;EtEw+RV;;EsE/+RM;IAOI,gCAAA;EtE4+RV;;EsEn/RM;IAOI,+BAAA;EtEg/RV;;EsEv/RM;IAOI,oCAAA;EtEo/RV;;EsE3/RM;IAOI,kCAAA;EtEw/RV;;EsE//RM;IAOI,gCAAA;EtE4/RV;;EsEngSM;IAOI,uCAAA;EtEggSV;;E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E1/SM;IAOI,6BAAA;EtEu/SV;;EsE9/SM;IAOI,8BAAA;EtE2/SV;;EsElgTM;IAOI,wBAAA;EtE+/SV;;EsEtgTM;IAOI,+BAAA;EtEmgTV;;EsE1gTM;IAOI,wBAAA;EtEugTV;;EsE9gTM;IAOI,yBAAA;EtE2gTV;;EsElhTM;IAOI,8BAAA;EtE+gTV;;EsEthTM;IAOI,iCAAA;EtEmhTV;;EsE1hTM;IAOI,sCAAA;EtEuhTV;;EsE9hTM;IAOI,yCAAA;EtE2hTV;;EsEliTM;IAOI,uBAAA;EtE+hTV;;EsEtiTM;IAOI,uBAAA;EtEmiTV;;EsE1iTM;IAOI,yBAAA;EtEuiTV;;EsE9iTM;IAOI,yBAAA;EtE2iTV;;EsEljTM;IAOI,0BAAA;EtE+iTV;;EsEtjTM;IAOI,4BAAA;EtEmjTV;;EsE1jTM;IAOI,kCAAA;EtEujTV;;EsE9jTM;IAOI,iBAAA;EtE2jTV;;EsElkTM;IAOI,uBAAA;EtE+jTV;;EsEtkTM;IAOI,sBAAA;EtEmkTV;;EsE1kTM;IAOI,oBAAA;EtEukTV;;EsE9kTM;IAOI,sBAAA;EtE2kTV;;EsEllTM;IAOI,oBAAA;EtE+kTV;;EsEtlTM;IAOI,sCAAA;EtEmlTV;;EsE1lTM;IAOI,oCAAA;EtEulTV;;EsE9lTM;IAOI,kCAAA;EtE2lTV;;EsElmTM;IAOI,yCAAA;EtE+lTV;;EsEtmTM;IAOI,wCAAA;EtEmmTV;;EsE1mTM;IAOI,wCAAA;EtEumTV;;EsE9mTM;IAOI,kCAAA;EtE2mTV;;EsElnTM;IAOI,gCAAA;EtE+mTV;;EsEtnTM;IAOI,8BAAA;EtEmnTV;;EsE1nTM;IAOI,gCAAA;EtEunTV;;EsE9nTM;IAOI,+BAAA;EtE2nTV;;EsEloTM;IAOI,oCAAA;EtE+nTV;;EsEtoTM;IAOI,kCAAA;EtEmoTV;;EsE1oTM;IAOI,gCAAA;EtEuoTV;;EsE9oTM;IAOI,uCAAA;EtE2oTV;;EsElpTM;IAOI,sCAAA;EtE+oTV;;EsEtpTM;IAOI,iCAAA;EtEmpTV;;EsE1pTM;IAOI,2BAAA;EtEupTV;;EsE9pTM;IAOI,iCAAA;EtE2pTV;;EsElqTM;IAOI,+BAAA;EtE+pTV;;EsEtqTM;IAOI,6BAAA;EtEmqTV;;EsE1qTM;IAOI,+BAAA;EtEuqTV;;EsE9qTM;IAOI,8BAAA;EtE2qTV;;EsElrTM;IAOI,oBAAA;EtE+qTV;;EsEtrTM;IAOI,mBAAA;EtEmrTV;;EsE1rTM;IAOI,mBAAA;EtEurTV;;EsE9rTM;IAOI,mBAAA;EtE2rTV;;EsElsTM;IAOI,mBAAA;EtE+rTV;;EsEtsTM;IAOI,mBAAA;EtEmsTV;;EsE1sTM;IAOI,mBAAA;EtEusTV;;EsE9sTM;IAOI,mBAAA;EtE2sTV;;EsEltTM;IAOI,oBAAA;EtE+sTV;;EsEttTM;IAOI,0BAAA;EtEmtTV;;EsE1tTM;IAOI,yBAAA;EtEutTV;;EsE9tTM;IAOI,uBAAA;EtE2tTV;;EsEluTM;IAOI,yBAAA;EtE+tTV;;EsEtuTM;IAOI,uBAAA;EtEmuTV;;EsE1uTM;IAOI,uBAAA;EtEuuTV;;EsE9uTM;IAOI,0BAAA;IAAA,yBAAA;EtE4uTV;;EsEnvTM;IAOI,gCAAA;IAAA,+BAAA;EtEivTV;;EsExvTM;IAOI,+BAAA;IAAA,8BAAA;EtEsvTV;;EsE7vTM;IAOI,6BAAA;IAAA,4BAAA;EtE2vTV;;EsElwTM;IAOI,+BAAA;IAAA,8BAAA;EtEgwTV;;EsEvwTM;IAOI,6BAAA;IAAA,4BAAA;EtEqwTV;;EsE5wTM;IAOI,6BAAA;IAAA,4BAAA;EtE0wTV;;EsEjxTM;IAOI,wBAAA;IAAA,2BAAA;EtE+wTV;;EsEtxTM;IAOI,8BAAA;IAAA,iCAAA;EtEoxTV;;EsE3xTM;IAOI,6BAAA;IAAA,gCAAA;EtEyxTV;;EsEhyTM;IAOI,2BAAA;IAAA,8BAAA;EtE8xTV;;EsEryTM;IAOI,6BAAA;IAAA,gCAAA;EtEmyTV;;EsE1yTM;IAOI,2BAAA;IAAA,8BAAA;EtEwyTV;;EsE/yTM;IAOI,2BAAA;IAAA,8BAAA;EtE6yTV;;EsEpzTM;IAOI,wBAAA;EtEizTV;;EsExzTM;IAOI,8BAAA;EtEqzTV;;EsE5zTM;IAOI,6BAAA;EtEyzTV;;EsEh0TM;IAOI,2BAAA;EtE6zTV;;EsEp0TM;IAOI,6BAAA;EtEi0TV;;EsEx0TM;IAOI,2BAAA;EtEq0TV;;EsE50TM;IAOI,2BAAA;EtEy0TV;;EsEh1TM;IAOI,0BAAA;EtE60TV;;EsEp1TM;IAOI,gCAAA;EtEi1TV;;EsEx1TM;IAOI,+BAAA;EtEq1TV;;EsE51TM;IAOI,6BAAA;EtEy1TV;;EsEh2TM;IAOI,+BAAA;EtE61TV;;EsEp2TM;IAOI,6BAAA;EtEi2TV;;EsEx2TM;IAOI,6BAAA;EtEq2TV;;EsE52TM;IAOI,2BAAA;EtEy2TV;;EsEh3TM;IAOI,iCAAA;EtE62TV;;EsEp3TM;IAOI,gCAAA;EtEi3TV;;EsEx3TM;IAOI,8BAAA;EtEq3TV;;EsE53TM;IAOI,gCAAA;EtEy3TV;;EsEh4TM;IAOI,8BAAA;EtE63TV;;EsEp4TM;IAOI,8BAAA;EtEi4TV;;EsEx4TM;IAOI,yBAAA;EtEq4TV;;EsE54TM;IAOI,+BAAA;EtEy4TV;;EsEh5TM;IAOI,8BAAA;EtE64TV;;EsEp5TM;IAOI,4BAAA;EtEi5TV;;EsEx5TM;IAOI,8BAAA;EtEq5TV;;EsE55TM;IAOI,4BAAA;EtEy5TV;;EsEh6TM;IAOI,4BAAA;EtE65TV;;EsEp6TM;IAOI,qBAAA;EtEi6TV;;EsEx6TM;IAOI,2BAAA;EtEq6TV;;EsE56TM;IAOI,0BAAA;EtEy6TV;;EsEh7TM;IAOI,wBAAA;EtE66TV;;EsEp7TM;IAOI,0BAAA;EtEi7TV;;EsEx7TM;IAOI,wBAAA;EtEq7TV;;EsE57TM;IAOI,2BAAA;IAAA,0BAAA;EtE07TV;;EsEj8TM;IAOI,iCAAA;IAAA,gCAAA;EtE+7TV;;EsEt8TM;IAOI,gCAAA;IAAA,+BAAA;EtEo8TV;;EsE38TM;IAOI,8BAAA;IAAA,6BAAA;EtEy8TV;;EsEh9TM;IAOI,gCAAA;IAAA,+BAAA;EtE88TV;;EsEr9TM;IAOI,8BAAA;IAAA,6BAAA;EtEm9TV;;EsE19TM;IAOI,yBAAA;IAAA,4BAAA;EtEw9TV;;EsE/9TM;IAOI,+BAAA;IAAA,kCAAA;EtE69TV;;EsEp+TM;IAOI,8BAAA;IAAA,iCAAA;EtEk+TV;;EsEz+TM;IAOI,4BAAA;IAAA,+BAAA;EtEu+TV;;EsE9+TM;IAOI,8BAAA;IAAA,iCAAA;EtE4+TV;;EsEn/TM;IAOI,4BAAA;IAAA,+BAAA;EtEi/TV;;EsEx/TM;IAOI,yBAAA;EtEq/TV;;EsE5/TM;IAOI,+BAAA;EtEy/TV;;EsEhgUM;IAOI,8BAAA;EtE6/TV;;EsEpgUM;IAOI,4BAAA;EtEigUV;;EsExgUM;IAOI,8BAAA;EtEqgUV;;EsE5gUM;IAOI,4BAAA;EtEygUV;;EsEhhUM;IAOI,2BAAA;EtE6gUV;;EsEphUM;IAOI,iCAAA;EtEihUV;;EsExhUM;IAOI,gCAAA;EtEqhUV;;EsE5hUM;IAOI,8BAAA;EtEyhUV;;EsEhiUM;IAOI,gCAAA;EtE6hUV;;EsEpiUM;IAOI,8BAAA;EtEiiUV;;EsExiUM;IAOI,4BAAA;EtEqiUV;;EsE5iUM;IAOI,kCAAA;EtEyiUV;;EsEhjUM;IAOI,iCAAA;EtE6iUV;;EsEpjUM;IAOI,+BAAA;EtEijUV;;EsExjUM;IAOI,iCAAA;EtEqjUV;;EsE5jUM;IAOI,+BAAA;EtEyjUV;;EsEhkUM;IAOI,0BAAA;EtE6jUV;;EsEpkUM;IAOI,gCAAA;EtEikUV;;EsExkUM;IAOI,+BAAA;EtEqkUV;;EsE5kUM;IAOI,6BAAA;EtEykUV;;EsEhlUM;IAOI,+BAAA;EtE6kUV;;EsEplUM;IAOI,6BAAA;EtEilUV;;EsExlUM;IAOI,2BAAA;EtEqlUV;;EsE5lUM;IAOI,4BAAA;EtEylUV;;EsEhmUM;IAOI,6BAAA;EtE6lUV;AACF;AarmUI;EyDAI;IAOI,sBAAA;EtEkmUV;;EsEzmUM;IAOI,uBAAA;EtEsmUV;;EsE7mUM;IAOI,sBAAA;EtE0mUV;;EsEjnUM;IAOI,0BAAA;EtE8mUV;;EsErnUM;IAOI,gCAAA;EtEknUV;;EsEznUM;IAOI,yBAAA;EtEsnUV;;EsE7nUM;IAOI,wBAAA;EtE0nUV;;EsEjoUM;IAOI,yBAAA;EtE8nUV;;EsEroUM;IAOI,6BAAA;EtEkoUV;;EsEzoUM;IAOI,8BAAA;EtEsoUV;;EsE7oUM;IAOI,wBAAA;EtE0oUV;;EsEjpUM;IAOI,+BAAA;EtE8oUV;;EsErpUM;IAOI,wBAAA;EtEkpUV;;EsEzpUM;IAOI,yBAAA;EtEspUV;;EsE7pUM;IAOI,8BAAA;EtE0pUV;;EsEjqUM;IAOI,iCAAA;EtE8pUV;;EsErqUM;IAOI,sCAAA;EtEkqUV;;EsEzqUM;IAOI,yCAAA;EtEsqUV;;EsE7qUM;IAOI,uBAAA;EtE0qUV;;EsEjrUM;IAOI,uBAAA;EtE8qUV;;EsErrUM;IAOI,yBAAA;EtEkrUV;;EsEzrUM;IAOI,yBAAA;EtEsrUV;;EsE7rUM;IAOI,0BAAA;EtE0rUV;;EsEjsUM;IAOI,4BAAA;EtE8rUV;;EsErsUM;IAOI,kCAAA;EtEksUV;;EsEzsUM;IAOI,iBAAA;EtEssUV;;EsE7sUM;IAOI,uBAAA;EtE0sUV;;EsEjtUM;IAOI,sBAAA;EtE8sUV;;EsErtUM;IAOI,oBAAA;EtEktUV;;EsEztUM;IAOI,sBAAA;EtEstUV;;EsE7tUM;IAOI,oBAAA;EtE0tUV;;EsEjuUM;IAOI,sCAAA;EtE8tUV;;EsEruUM;IAOI,oCAAA;EtEkuUV;;EsEzuUM;IAOI,kCAAA;EtEsuUV;;EsE7uUM;IAOI,yCAAA;EtE0uUV;;EsEjvUM;IAOI,wCAAA;EtE8uUV;;EsErvUM;IAOI,wCAAA;EtEkvUV;;EsEzvUM;IAOI,kCAAA;EtEsvUV;;EsE7vUM;IAOI,gCAAA;EtE0vUV;;EsEjwUM;IAOI,8BAAA;EtE8vUV;;EsErwUM;IAOI,gCAAA;EtEkwUV;;EsEzwUM;IAOI,+BAAA;EtEswUV;;EsE7wUM;IAOI,oCAAA;EtE0wUV;;EsEjxUM;IAOI,kCAAA;EtE8wUV;;EsErxUM;IAOI,gCAAA;EtEkxUV;;EsEzxUM;IAOI,uCAAA;EtEsxUV;;EsE7xUM;IAOI,sCAAA;EtE0xUV;;EsEjyUM;IAOI,iCAAA;EtE8xUV;;EsEryUM;IAOI,2BAAA;EtEkyUV;;EsEzyUM;IAOI,iCAAA;EtEsyUV;;EsE7yUM;IAOI,+BAAA;EtE0yUV;;EsEjzUM;IAOI,6BAAA;EtE8yUV;;EsErzUM;IAOI,+BAAA;EtEkzUV;;EsEzzUM;IAOI,8BAAA;EtEszUV;;EsE7zUM;IAOI,oBAAA;EtE0zUV;;EsEj0UM;IAOI,mBAAA;EtE8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AOI,8BAAA;EtEwoVV;;EsE/oVM;IAOI,4BAAA;EtE4oVV;;EsEnpVM;IAOI,8BAAA;EtEgpVV;;EsEvpVM;IAOI,4BAAA;EtEopVV;;EsE3pVM;IAOI,2BAAA;EtEwpVV;;EsE/pVM;IAOI,iCAAA;EtE4pVV;;EsEnqVM;IAOI,gCAAA;EtEgqVV;;EsEvqVM;IAOI,8BAAA;EtEoqVV;;EsE3qVM;IAOI,gCAAA;EtEwqVV;;EsE/qVM;IAOI,8BAAA;EtE4qVV;;EsEnrVM;IAOI,4BAAA;EtEgrVV;;EsEvrVM;IAOI,kCAAA;EtEorVV;;EsE3rVM;IAOI,iCAAA;EtEwrVV;;EsE/rVM;IAOI,+BAAA;EtE4rVV;;EsEnsVM;IAOI,iCAAA;EtEgsVV;;EsEvsVM;IAOI,+BAAA;EtEosVV;;EsE3sVM;IAOI,0BAAA;EtEwsVV;;EsE/sVM;IAOI,gCAAA;EtE4sVV;;EsEntVM;IAOI,+BAAA;EtEgtVV;;EsEvtVM;IAOI,6BAAA;EtEotVV;;EsE3tVM;IAOI,+BAAA;EtEwtVV;;EsE/tVM;IAOI,6BAAA;EtE4tVV;;EsEnuVM;IAOI,2BAAA;EtEguVV;;EsEvuVM;IAOI,4BAAA;EtEouVV;;EsE3uVM;IAOI,6BAAA;EtEwuVV;AACF;AuE5xVA;ED4CQ;IAOI,4BAAA;EtE6uVV;;EsEpvVM;IAOI,0BAAA;EtEivVV;;EsExvVM;IAOI,6BAAA;EtEqvVV;;EsE5vVM;IAOI,4BAAA;EtEyvVV;AACF;AuE1xVA;EDyBQ;IAOI,0BAAA;EtE8vVV;;EsErwVM;IAOI,gCAAA;EtEkwVV;;EsEzwVM;IAOI,yBAAA;EtEswVV;;EsE7wVM;IAOI,wBAAA;EtE0wVV;;EsEjxVM;IAOI,yBAAA;EtE8wVV;;EsErxVM;IAOI,6BAAA;EtEkxVV;;EsEzxVM;IAOI,8BAAA;EtEsxVV;;EsE7xVM;IAOI,wBAAA;EtE0xVV;;EsEjyVM;IAOI,+BAAA;EtE8xVV;;EsEryVM;IAOI,wBAAA;EtEkyVV;AACF","file":"bootstrap.css","sourcesContent":["@charset \"UTF-8\";\n/*!\n * Bootstrap v5.1.0 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors\n * Copyright 2011-2021 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n:root {\n --bs-blue: #0d6efd;\n --bs-indigo: #6610f2;\n --bs-purple: #6f42c1;\n --bs-pink: #d63384;\n --bs-red: #dc3545;\n --bs-orange: #fd7e14;\n --bs-yellow: #ffc107;\n --bs-green: #198754;\n --bs-teal: #20c997;\n --bs-cyan: #0dcaf0;\n --bs-white: #fff;\n --bs-gray: #6c757d;\n --bs-gray-dark: #343a40;\n --bs-gray-100: #f8f9fa;\n --bs-gray-200: #e9ecef;\n --bs-gray-300: #dee2e6;\n --bs-gray-400: #ced4da;\n --bs-gray-500: #adb5bd;\n --bs-gray-600: #6c757d;\n --bs-gray-700: #495057;\n --bs-gray-800: #343a40;\n --bs-gray-900: #212529;\n --bs-primary: #008ae6; /*#0d6efd;*/;\n --bs-secondary: #6c757d;\n --bs-success: #198754;\n --bs-info: #0dcaf0;\n --bs-warning: #ffc107;\n --bs-danger: #dc3545;\n --bs-light: #f8f9fa;\n --bs-dark: #212529;\n --bs-primary-rgb: 13, 110, 253;\n --bs-secondary-rgb: 108, 117, 125;\n --bs-success-rgb: 25, 135, 84;\n --bs-info-rgb: 13, 202, 240;\n --bs-warning-rgb: 255, 193, 7;\n --bs-danger-rgb: 220, 53, 69;\n --bs-light-rgb: 248, 249, 250;\n --bs-dark-rgb: 33, 37, 41;\n --bs-white-rgb: 255, 255, 255;\n --bs-black-rgb: 0, 0, 0;\n --bs-body-rgb: 33, 37, 41;\n --bs-font-sans-serif: system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", \"Liberation Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n --bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n --bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));\n --bs-body-font-family: var(--bs-font-sans-serif);\n --bs-body-font-size: 1rem;\n --bs-body-font-weight: 400;\n --bs-body-line-height: 1.5;\n --bs-body-color: #212529;\n --bs-body-bg: #fff;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\n@media (prefers-reduced-motion: no-preference) {\n :root {\n scroll-behavior: smooth;\n }\n}\n\nbody {\n margin: 0;\n font-family: var(--bs-body-font-family);\n font-size: var(--bs-body-font-size);\n font-weight: var(--bs-body-font-weight);\n line-height: var(--bs-body-line-height);\n color: var(--bs-body-color);\n text-align: var(--bs-body-text-align);\n background-color: var(--bs-body-bg);\n -webkit-text-size-adjust: 100%;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\nhr {\n margin: 1rem 0;\n color: inherit;\n background-color: currentColor;\n border: 0;\n opacity: 0.25;\n}\n\nhr:not([size]) {\n height: 1px;\n}\n\nh6, .h6, h5, .h5, h4, .h4, h3, .h3, h2, .h2, h1, .h1 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n font-weight: 500;\n line-height: 1.2;\n}\n\nh1, .h1 {\n font-size: calc(1.375rem + 1.5vw);\n}\n@media (min-width: 1200px) {\n h1, .h1 {\n font-size: 2.5rem;\n }\n}\n\nh2, .h2 {\n font-size: calc(1.325rem + 0.9vw);\n}\n@media (min-width: 1200px) {\n h2, .h2 {\n font-size: 2rem;\n }\n}\n\nh3, .h3 {\n font-size: calc(1.3rem + 0.6vw);\n}\n@media (min-width: 1200px) {\n h3, .h3 {\n font-size: 1.75rem;\n }\n}\n\nh4, .h4 {\n font-size: calc(1.275rem + 0.3vw);\n}\n@media (min-width: 1200px) {\n h4, .h4 {\n font-size: 1.5rem;\n }\n}\n\nh5, .h5 {\n font-size: 1.25rem;\n}\n\nh6, .h6 {\n font-size: 1rem;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-bs-original-title] {\n text-decoration: underline dotted;\n cursor: help;\n text-decoration-skip-ink: none;\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\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: 700;\n}\n\ndd {\n margin-bottom: 0.5rem;\n margin-left: 0;\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: bolder;\n}\n\nsmall, .small {\n font-size: 0.875em;\n}\n\nmark, .mark {\n padding: 0.2em;\n background-color: #fcf8e3;\n}\n\nsub,\nsup {\n position: relative;\n font-size: 0.75em;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\na {\n color: #0d6efd;\n text-decoration: underline;\n}\na:hover {\n color: #0a58ca;\n}\n\na:not([href]):not([class]), a:not([href]):not([class]):hover {\n color: inherit;\n text-decoration: none;\n}\n\npre,\ncode,\nkbd,\nsamp {\n font-family: var(--bs-font-monospace);\n font-size: 1em;\n direction: ltr /* rtl:ignore */;\n unicode-bidi: bidi-override;\n}\n\npre {\n display: block;\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n font-size: 0.875em;\n}\npre code {\n font-size: inherit;\n color: inherit;\n word-break: normal;\n}\n\ncode {\n font-size: 0.875em;\n color: #d63384;\n word-wrap: break-word;\n}\na > code {\n color: inherit;\n}\n\nkbd {\n padding: 0.2rem 0.4rem;\n font-size: 0.875em;\n color: #fff;\n background-color: #212529;\n border-radius: 0.2rem;\n}\nkbd kbd {\n padding: 0;\n font-size: 1em;\n font-weight: 700;\n}\n\nfigure {\n margin: 0 0 1rem;\n}\n\nimg,\nsvg {\n vertical-align: middle;\n}\n\ntable {\n caption-side: bottom;\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n color: #6c757d;\n text-align: left;\n}\n\nth {\n text-align: inherit;\n text-align: -webkit-match-parent;\n}\n\nthead,\ntbody,\ntfoot,\ntr,\ntd,\nth {\n border-color: inherit;\n border-style: solid;\n border-width: 0;\n}\n\nlabel {\n display: inline-block;\n}\n\nbutton {\n border-radius: 0;\n}\n\nbutton:focus:not(:focus-visible) {\n outline: 0;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\nselect {\n text-transform: none;\n}\n\n[role=button] {\n cursor: pointer;\n}\n\nselect {\n word-wrap: normal;\n}\nselect:disabled {\n opacity: 1;\n}\n\n[list]::-webkit-calendar-picker-indicator {\n display: none;\n}\n\nbutton,\n[type=button],\n[type=reset],\n[type=submit] {\n -webkit-appearance: button;\n}\nbutton:not(:disabled),\n[type=button]:not(:disabled),\n[type=reset]:not(:disabled),\n[type=submit]:not(:disabled) {\n cursor: pointer;\n}\n\n::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ntextarea {\n resize: vertical;\n}\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\n float: left;\n width: 100%;\n padding: 0;\n margin-bottom: 0.5rem;\n font-size: calc(1.275rem + 0.3vw);\n line-height: inherit;\n}\n@media (min-width: 1200px) {\n legend {\n font-size: 1.5rem;\n }\n}\nlegend + * {\n clear: left;\n}\n\n::-webkit-datetime-edit-fields-wrapper,\n::-webkit-datetime-edit-text,\n::-webkit-datetime-edit-minute,\n::-webkit-datetime-edit-hour-field,\n::-webkit-datetime-edit-day-field,\n::-webkit-datetime-edit-month-field,\n::-webkit-datetime-edit-year-field {\n padding: 0;\n}\n\n::-webkit-inner-spin-button {\n height: auto;\n}\n\n[type=search] {\n outline-offset: -2px;\n -webkit-appearance: textfield;\n}\n\n/* rtl:raw:\n[type=\"tel\"],\n[type=\"url\"],\n[type=\"email\"],\n[type=\"number\"] {\n direction: ltr;\n}\n*/\n::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-color-swatch-wrapper {\n padding: 0;\n}\n\n::file-selector-button {\n font: inherit;\n}\n\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button;\n}\n\noutput {\n display: inline-block;\n}\n\niframe {\n border: 0;\n}\n\nsummary {\n display: list-item;\n cursor: pointer;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n[hidden] {\n display: none !important;\n}\n\n.lead {\n font-size: 1.25rem;\n font-weight: 300;\n}\n\n.display-1 {\n font-size: calc(1.625rem + 4.5vw);\n font-weight: 300;\n line-height: 1.2;\n}\n@media (min-width: 1200px) {\n .display-1 {\n font-size: 5rem;\n }\n}\n\n.display-2 {\n font-size: calc(1.575rem + 3.9vw);\n font-weight: 300;\n line-height: 1.2;\n}\n@media (min-width: 1200px) {\n .display-2 {\n font-size: 4.5rem;\n }\n}\n\n.display-3 {\n font-size: calc(1.525rem + 3.3vw);\n font-weight: 300;\n line-height: 1.2;\n}\n@media (min-width: 1200px) {\n .display-3 {\n font-size: 4rem;\n }\n}\n\n.display-4 {\n font-size: calc(1.475rem + 2.7vw);\n font-weight: 300;\n line-height: 1.2;\n}\n@media (min-width: 1200px) {\n .display-4 {\n font-size: 3.5rem;\n }\n}\n\n.display-5 {\n font-size: calc(1.425rem + 2.1vw);\n font-weight: 300;\n line-height: 1.2;\n}\n@media (min-width: 1200px) {\n .display-5 {\n font-size: 3rem;\n }\n}\n\n.display-6 {\n font-size: calc(1.375rem + 1.5vw);\n font-weight: 300;\n line-height: 1.2;\n}\n@media (min-width: 1200px) {\n .display-6 {\n font-size: 2.5rem;\n }\n}\n\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline-item {\n display: inline-block;\n}\n.list-inline-item:not(:last-child) {\n margin-right: 0.5rem;\n}\n\n.initialism {\n font-size: 0.875em;\n text-transform: uppercase;\n}\n\n.blockquote {\n margin-bottom: 1rem;\n font-size: 1.25rem;\n}\n.blockquote > :last-child {\n margin-bottom: 0;\n}\n\n.blockquote-footer {\n margin-top: -1rem;\n margin-bottom: 1rem;\n font-size: 0.875em;\n color: #6c757d;\n}\n.blockquote-footer::before {\n content: \"— \";\n}\n\n.img-fluid {\n max-width: 100%;\n height: auto;\n}\n\n.img-thumbnail {\n padding: 0.25rem;\n background-color: #fff;\n border: 1px solid #dee2e6;\n border-radius: 0.25rem;\n max-width: 100%;\n height: auto;\n}\n\n.figure {\n display: inline-block;\n}\n\n.figure-img {\n margin-bottom: 0.5rem;\n line-height: 1;\n}\n\n.figure-caption {\n font-size: 0.875em;\n color: #6c757d;\n}\n\n.container,\n.container-fluid,\n.container-xxl,\n.container-xl,\n.container-lg,\n.container-md,\n.container-sm {\n width: 100%;\n padding-right: var(--bs-gutter-x, 0.75rem);\n padding-left: var(--bs-gutter-x, 0.75rem);\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container-sm, .container {\n max-width: 540px;\n }\n}\n@media (min-width: 768px) {\n .container-md, .container-sm, .container {\n max-width: 720px;\n }\n}\n@media (min-width: 992px) {\n .container-lg, .container-md, .container-sm, .container {\n max-width: 960px;\n }\n}\n@media (min-width: 1200px) {\n .container-xl, .container-lg, .container-md, .container-sm, .container {\n max-width: 1140px;\n }\n}\n@media (min-width: 1400px) {\n .container-xxl, .container-xl, .container-lg, .container-md, .container-sm, .container {\n max-width: 1320px;\n }\n}\n.row {\n --bs-gutter-x: 1.5rem;\n --bs-gutter-y: 0;\n display: flex;\n flex-wrap: wrap;\n margin-top: calc(var(--bs-gutter-y) * -1);\n margin-right: calc(var(--bs-gutter-x) * -.5);\n margin-left: calc(var(--bs-gutter-x) * -.5);\n}\n.row > * {\n flex-shrink: 0;\n width: 100%;\n max-width: 100%;\n padding-right: calc(var(--bs-gutter-x) * .5);\n padding-left: calc(var(--bs-gutter-x) * .5);\n margin-top: var(--bs-gutter-y);\n}\n\n.col {\n flex: 1 0 0%;\n}\n\n.row-cols-auto > * {\n flex: 0 0 auto;\n width: auto;\n}\n\n.row-cols-1 > * {\n flex: 0 0 auto;\n width: 100%;\n}\n\n.row-cols-2 > * {\n flex: 0 0 auto;\n width: 50%;\n}\n\n.row-cols-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n}\n\n.row-cols-4 > * {\n flex: 0 0 auto;\n width: 25%;\n}\n\n.row-cols-5 > * {\n flex: 0 0 auto;\n width: 20%;\n}\n\n.row-cols-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n}\n\n.col-auto {\n flex: 0 0 auto;\n width: auto;\n}\n\n.col-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n}\n\n.col-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n}\n\n.col-3 {\n flex: 0 0 auto;\n width: 25%;\n}\n\n.col-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n}\n\n.col-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n}\n\n.col-6 {\n flex: 0 0 auto;\n width: 50%;\n}\n\n.col-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n}\n\n.col-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n}\n\n.col-9 {\n flex: 0 0 auto;\n width: 75%;\n}\n\n.col-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n}\n\n.col-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n}\n\n.col-12 {\n flex: 0 0 auto;\n width: 100%;\n}\n\n.offset-1 {\n margin-left: 8.33333333%;\n}\n\n.offset-2 {\n margin-left: 16.66666667%;\n}\n\n.offset-3 {\n margin-left: 25%;\n}\n\n.offset-4 {\n margin-left: 33.33333333%;\n}\n\n.offset-5 {\n margin-left: 41.66666667%;\n}\n\n.offset-6 {\n margin-left: 50%;\n}\n\n.offset-7 {\n margin-left: 58.33333333%;\n}\n\n.offset-8 {\n margin-left: 66.66666667%;\n}\n\n.offset-9 {\n margin-left: 75%;\n}\n\n.offset-10 {\n margin-left: 83.33333333%;\n}\n\n.offset-11 {\n margin-left: 91.66666667%;\n}\n\n.g-0,\n.gx-0 {\n --bs-gutter-x: 0;\n}\n\n.g-0,\n.gy-0 {\n --bs-gutter-y: 0;\n}\n\n.g-1,\n.gx-1 {\n --bs-gutter-x: 0.25rem;\n}\n\n.g-1,\n.gy-1 {\n --bs-gutter-y: 0.25rem;\n}\n\n.g-2,\n.gx-2 {\n --bs-gutter-x: 0.5rem;\n}\n\n.g-2,\n.gy-2 {\n --bs-gutter-y: 0.5rem;\n}\n\n.g-3,\n.gx-3 {\n --bs-gutter-x: 1rem;\n}\n\n.g-3,\n.gy-3 {\n --bs-gutter-y: 1rem;\n}\n\n.g-4,\n.gx-4 {\n --bs-gutter-x: 1.5rem;\n}\n\n.g-4,\n.gy-4 {\n --bs-gutter-y: 1.5rem;\n}\n\n.g-5,\n.gx-5 {\n --bs-gutter-x: 3rem;\n}\n\n.g-5,\n.gy-5 {\n --bs-gutter-y: 3rem;\n}\n\n@media (min-width: 576px) {\n .col-sm {\n flex: 1 0 0%;\n }\n\n .row-cols-sm-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n\n .row-cols-sm-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n\n .row-cols-sm-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n\n .row-cols-sm-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n\n .row-cols-sm-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n\n .row-cols-sm-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n\n .row-cols-sm-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n\n .col-sm-auto {\n flex: 0 0 auto;\n width: auto;\n }\n\n .col-sm-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n\n .col-sm-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n\n .col-sm-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n\n .col-sm-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n\n .col-sm-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n\n .col-sm-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n\n .col-sm-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n\n .col-sm-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n\n .col-sm-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n\n .col-sm-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n\n .col-sm-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n\n .col-sm-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n\n .offset-sm-0 {\n margin-left: 0;\n }\n\n .offset-sm-1 {\n margin-left: 8.33333333%;\n }\n\n .offset-sm-2 {\n margin-left: 16.66666667%;\n }\n\n .offset-sm-3 {\n margin-left: 25%;\n }\n\n .offset-sm-4 {\n margin-left: 33.33333333%;\n }\n\n .offset-sm-5 {\n margin-left: 41.66666667%;\n }\n\n .offset-sm-6 {\n margin-left: 50%;\n }\n\n .offset-sm-7 {\n margin-left: 58.33333333%;\n }\n\n .offset-sm-8 {\n margin-left: 66.66666667%;\n }\n\n .offset-sm-9 {\n margin-left: 75%;\n }\n\n .offset-sm-10 {\n margin-left: 83.33333333%;\n }\n\n .offset-sm-11 {\n margin-left: 91.66666667%;\n }\n\n .g-sm-0,\n.gx-sm-0 {\n --bs-gutter-x: 0;\n }\n\n .g-sm-0,\n.gy-sm-0 {\n --bs-gutter-y: 0;\n }\n\n .g-sm-1,\n.gx-sm-1 {\n --bs-gutter-x: 0.25rem;\n }\n\n .g-sm-1,\n.gy-sm-1 {\n --bs-gutter-y: 0.25rem;\n }\n\n .g-sm-2,\n.gx-sm-2 {\n --bs-gutter-x: 0.5rem;\n }\n\n .g-sm-2,\n.gy-sm-2 {\n --bs-gutter-y: 0.5rem;\n }\n\n .g-sm-3,\n.gx-sm-3 {\n --bs-gutter-x: 1rem;\n }\n\n .g-sm-3,\n.gy-sm-3 {\n --bs-gutter-y: 1rem;\n }\n\n .g-sm-4,\n.gx-sm-4 {\n --bs-gutter-x: 1.5rem;\n }\n\n .g-sm-4,\n.gy-sm-4 {\n --bs-gutter-y: 1.5rem;\n }\n\n .g-sm-5,\n.gx-sm-5 {\n --bs-gutter-x: 3rem;\n }\n\n .g-sm-5,\n.gy-sm-5 {\n --bs-gutter-y: 3rem;\n }\n}\n@media (min-width: 768px) {\n .col-md {\n flex: 1 0 0%;\n }\n\n .row-cols-md-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n\n .row-cols-md-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n\n .row-cols-md-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n\n .row-cols-md-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n\n .row-cols-md-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n\n .row-cols-md-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n\n .row-cols-md-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n\n .col-md-auto {\n flex: 0 0 auto;\n width: auto;\n }\n\n .col-md-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n\n .col-md-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n\n .col-md-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n\n .col-md-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n\n .col-md-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n\n .col-md-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n\n .col-md-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n\n .col-md-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n\n .col-md-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n\n .col-md-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n\n .col-md-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n\n .col-md-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n\n .offset-md-0 {\n margin-left: 0;\n }\n\n .offset-md-1 {\n margin-left: 8.33333333%;\n }\n\n .offset-md-2 {\n margin-left: 16.66666667%;\n }\n\n .offset-md-3 {\n margin-left: 25%;\n }\n\n .offset-md-4 {\n margin-left: 33.33333333%;\n }\n\n .offset-md-5 {\n margin-left: 41.66666667%;\n }\n\n .offset-md-6 {\n margin-left: 50%;\n }\n\n .offset-md-7 {\n margin-left: 58.33333333%;\n }\n\n .offset-md-8 {\n margin-left: 66.66666667%;\n }\n\n .offset-md-9 {\n margin-left: 75%;\n }\n\n .offset-md-10 {\n margin-left: 83.33333333%;\n }\n\n .offset-md-11 {\n margin-left: 91.66666667%;\n }\n\n .g-md-0,\n.gx-md-0 {\n --bs-gutter-x: 0;\n }\n\n .g-md-0,\n.gy-md-0 {\n --bs-gutter-y: 0;\n }\n\n .g-md-1,\n.gx-md-1 {\n --bs-gutter-x: 0.25rem;\n }\n\n .g-md-1,\n.gy-md-1 {\n --bs-gutter-y: 0.25rem;\n }\n\n .g-md-2,\n.gx-md-2 {\n --bs-gutter-x: 0.5rem;\n }\n\n .g-md-2,\n.gy-md-2 {\n --bs-gutter-y: 0.5rem;\n }\n\n .g-md-3,\n.gx-md-3 {\n --bs-gutter-x: 1rem;\n }\n\n .g-md-3,\n.gy-md-3 {\n --bs-gutter-y: 1rem;\n }\n\n .g-md-4,\n.gx-md-4 {\n --bs-gutter-x: 1.5rem;\n }\n\n .g-md-4,\n.gy-md-4 {\n --bs-gutter-y: 1.5rem;\n }\n\n .g-md-5,\n.gx-md-5 {\n --bs-gutter-x: 3rem;\n }\n\n .g-md-5,\n.gy-md-5 {\n --bs-gutter-y: 3rem;\n }\n}\n@media (min-width: 992px) {\n .col-lg {\n flex: 1 0 0%;\n }\n\n .row-cols-lg-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n\n .row-cols-lg-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n\n .row-cols-lg-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n\n .row-cols-lg-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n\n .row-cols-lg-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n\n .row-cols-lg-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n\n .row-cols-lg-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n\n .col-lg-auto {\n flex: 0 0 auto;\n width: auto;\n }\n\n .col-lg-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n\n .col-lg-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n\n .col-lg-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n\n .col-lg-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n\n .col-lg-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n\n .col-lg-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n\n .col-lg-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n\n .col-lg-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n\n .col-lg-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n\n .col-lg-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n\n .col-lg-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n\n .col-lg-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n\n .offset-lg-0 {\n margin-left: 0;\n }\n\n .offset-lg-1 {\n margin-left: 8.33333333%;\n }\n\n .offset-lg-2 {\n margin-left: 16.66666667%;\n }\n\n .offset-lg-3 {\n margin-left: 25%;\n }\n\n .offset-lg-4 {\n margin-left: 33.33333333%;\n }\n\n .offset-lg-5 {\n margin-left: 41.66666667%;\n }\n\n .offset-lg-6 {\n margin-left: 50%;\n }\n\n .offset-lg-7 {\n margin-left: 58.33333333%;\n }\n\n .offset-lg-8 {\n margin-left: 66.66666667%;\n }\n\n .offset-lg-9 {\n margin-left: 75%;\n }\n\n .offset-lg-10 {\n margin-left: 83.33333333%;\n }\n\n .offset-lg-11 {\n margin-left: 91.66666667%;\n }\n\n .g-lg-0,\n.gx-lg-0 {\n --bs-gutter-x: 0;\n }\n\n .g-lg-0,\n.gy-lg-0 {\n --bs-gutter-y: 0;\n }\n\n .g-lg-1,\n.gx-lg-1 {\n --bs-gutter-x: 0.25rem;\n }\n\n .g-lg-1,\n.gy-lg-1 {\n --bs-gutter-y: 0.25rem;\n }\n\n .g-lg-2,\n.gx-lg-2 {\n --bs-gutter-x: 0.5rem;\n }\n\n .g-lg-2,\n.gy-lg-2 {\n --bs-gutter-y: 0.5rem;\n }\n\n .g-lg-3,\n.gx-lg-3 {\n --bs-gutter-x: 1rem;\n }\n\n .g-lg-3,\n.gy-lg-3 {\n --bs-gutter-y: 1rem;\n }\n\n .g-lg-4,\n.gx-lg-4 {\n --bs-gutter-x: 1.5rem;\n }\n\n .g-lg-4,\n.gy-lg-4 {\n --bs-gutter-y: 1.5rem;\n }\n\n .g-lg-5,\n.gx-lg-5 {\n --bs-gutter-x: 3rem;\n }\n\n .g-lg-5,\n.gy-lg-5 {\n --bs-gutter-y: 3rem;\n }\n}\n@media (min-width: 1200px) {\n .col-xl {\n flex: 1 0 0%;\n }\n\n .row-cols-xl-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n\n .row-cols-xl-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n\n .row-cols-xl-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n\n .row-cols-xl-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n\n .row-cols-xl-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n\n .row-cols-xl-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n\n .row-cols-xl-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n\n .col-xl-auto {\n flex: 0 0 auto;\n width: auto;\n }\n\n .col-xl-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n\n .col-xl-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n\n .col-xl-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n\n .col-xl-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n\n .col-xl-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n\n .col-xl-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n\n .col-xl-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n\n .col-xl-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n\n .col-xl-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n\n .col-xl-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n\n .col-xl-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n\n .col-xl-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n\n .offset-xl-0 {\n margin-left: 0;\n }\n\n .offset-xl-1 {\n margin-left: 8.33333333%;\n }\n\n .offset-xl-2 {\n margin-left: 16.66666667%;\n }\n\n .offset-xl-3 {\n margin-left: 25%;\n }\n\n .offset-xl-4 {\n margin-left: 33.33333333%;\n }\n\n .offset-xl-5 {\n margin-left: 41.66666667%;\n }\n\n .offset-xl-6 {\n margin-left: 50%;\n }\n\n .offset-xl-7 {\n margin-left: 58.33333333%;\n }\n\n .offset-xl-8 {\n margin-left: 66.66666667%;\n }\n\n .offset-xl-9 {\n margin-left: 75%;\n }\n\n .offset-xl-10 {\n margin-left: 83.33333333%;\n }\n\n .offset-xl-11 {\n margin-left: 91.66666667%;\n }\n\n .g-xl-0,\n.gx-xl-0 {\n --bs-gutter-x: 0;\n }\n\n .g-xl-0,\n.gy-xl-0 {\n --bs-gutter-y: 0;\n }\n\n .g-xl-1,\n.gx-xl-1 {\n --bs-gutter-x: 0.25rem;\n }\n\n .g-xl-1,\n.gy-xl-1 {\n --bs-gutter-y: 0.25rem;\n }\n\n .g-xl-2,\n.gx-xl-2 {\n --bs-gutter-x: 0.5rem;\n }\n\n .g-xl-2,\n.gy-xl-2 {\n --bs-gutter-y: 0.5rem;\n }\n\n .g-xl-3,\n.gx-xl-3 {\n --bs-gutter-x: 1rem;\n }\n\n .g-xl-3,\n.gy-xl-3 {\n --bs-gutter-y: 1rem;\n }\n\n .g-xl-4,\n.gx-xl-4 {\n --bs-gutter-x: 1.5rem;\n }\n\n .g-xl-4,\n.gy-xl-4 {\n --bs-gutter-y: 1.5rem;\n }\n\n .g-xl-5,\n.gx-xl-5 {\n --bs-gutter-x: 3rem;\n }\n\n .g-xl-5,\n.gy-xl-5 {\n --bs-gutter-y: 3rem;\n }\n}\n@media (min-width: 1400px) {\n .col-xxl {\n flex: 1 0 0%;\n }\n\n .row-cols-xxl-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n\n .row-cols-xxl-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n\n .row-cols-xxl-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n\n .row-cols-xxl-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n\n .row-cols-xxl-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n\n .row-cols-xxl-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n\n .row-cols-xxl-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n\n .col-xxl-auto {\n flex: 0 0 auto;\n width: auto;\n }\n\n .col-xxl-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n\n .col-xxl-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n\n .col-xxl-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n\n .col-xxl-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n\n .col-xxl-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n\n .col-xxl-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n\n .col-xxl-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n\n .col-xxl-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n\n .col-xxl-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n\n .col-xxl-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n\n .col-xxl-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n\n .col-xxl-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n\n .offset-xxl-0 {\n margin-left: 0;\n }\n\n .offset-xxl-1 {\n margin-left: 8.33333333%;\n }\n\n .offset-xxl-2 {\n margin-left: 16.66666667%;\n }\n\n .offset-xxl-3 {\n margin-left: 25%;\n }\n\n .offset-xxl-4 {\n margin-left: 33.33333333%;\n }\n\n .offset-xxl-5 {\n margin-left: 41.66666667%;\n }\n\n .offset-xxl-6 {\n margin-left: 50%;\n }\n\n .offset-xxl-7 {\n margin-left: 58.33333333%;\n }\n\n .offset-xxl-8 {\n margin-left: 66.66666667%;\n }\n\n .offset-xxl-9 {\n margin-left: 75%;\n }\n\n .offset-xxl-10 {\n margin-left: 83.33333333%;\n }\n\n .offset-xxl-11 {\n margin-left: 91.66666667%;\n }\n\n .g-xxl-0,\n.gx-xxl-0 {\n --bs-gutter-x: 0;\n }\n\n .g-xxl-0,\n.gy-xxl-0 {\n --bs-gutter-y: 0;\n }\n\n .g-xxl-1,\n.gx-xxl-1 {\n --bs-gutter-x: 0.25rem;\n }\n\n .g-xxl-1,\n.gy-xxl-1 {\n --bs-gutter-y: 0.25rem;\n }\n\n .g-xxl-2,\n.gx-xxl-2 {\n --bs-gutter-x: 0.5rem;\n }\n\n .g-xxl-2,\n.gy-xxl-2 {\n --bs-gutter-y: 0.5rem;\n }\n\n .g-xxl-3,\n.gx-xxl-3 {\n --bs-gutter-x: 1rem;\n }\n\n .g-xxl-3,\n.gy-xxl-3 {\n --bs-gutter-y: 1rem;\n }\n\n .g-xxl-4,\n.gx-xxl-4 {\n --bs-gutter-x: 1.5rem;\n }\n\n .g-xxl-4,\n.gy-xxl-4 {\n --bs-gutter-y: 1.5rem;\n }\n\n .g-xxl-5,\n.gx-xxl-5 {\n --bs-gutter-x: 3rem;\n }\n\n .g-xxl-5,\n.gy-xxl-5 {\n --bs-gutter-y: 3rem;\n }\n}\n.table {\n --bs-table-bg: transparent;\n --bs-table-accent-bg: transparent;\n --bs-table-striped-color: #212529;\n --bs-table-striped-bg: rgba(0, 0, 0, 0.05);\n --bs-table-active-color: #212529;\n --bs-table-active-bg: rgba(0, 0, 0, 0.1);\n --bs-table-hover-color: #212529;\n --bs-table-hover-bg: rgba(0, 0, 0, 0.075);\n width: 100%;\n margin-bottom: 1rem;\n color: #212529;\n vertical-align: top;\n border-color: #dee2e6;\n}\n.table > :not(caption) > * > * {\n padding: 0.5rem 0.5rem;\n background-color: var(--bs-table-bg);\n border-bottom-width: 1px;\n box-shadow: inset 0 0 0 9999px var(--bs-table-accent-bg);\n}\n.table > tbody {\n vertical-align: inherit;\n}\n.table > thead {\n vertical-align: bottom;\n}\n.table > :not(:last-child) > :last-child > * {\n border-bottom-color: currentColor;\n}\n\n.caption-top {\n caption-side: top;\n}\n\n.table-sm > :not(caption) > * > * {\n padding: 0.25rem 0.25rem;\n}\n\n.table-bordered > :not(caption) > * {\n border-width: 1px 0;\n}\n.table-bordered > :not(caption) > * > * {\n border-width: 0 1px;\n}\n\n.table-borderless > :not(caption) > * > * {\n border-bottom-width: 0;\n}\n\n.table-striped > tbody > tr:nth-of-type(odd) {\n --bs-table-accent-bg: var(--bs-table-striped-bg);\n color: var(--bs-table-striped-color);\n}\n\n.table-active {\n --bs-table-accent-bg: var(--bs-table-active-bg);\n color: var(--bs-table-active-color);\n}\n\n.table-hover > tbody > tr:hover {\n --bs-table-accent-bg: var(--bs-table-hover-bg);\n color: var(--bs-table-hover-color);\n}\n\n.table-primary {\n --bs-table-bg: #cfe2ff;\n --bs-table-striped-bg: #c5d7f2;\n --bs-table-striped-color: #000;\n --bs-table-active-bg: #bacbe6;\n --bs-table-active-color: #000;\n --bs-table-hover-bg: #bfd1ec;\n --bs-table-hover-color: #000;\n color: #000;\n border-color: #bacbe6;\n}\n\n.table-secondary {\n --bs-table-bg: #e2e3e5;\n --bs-table-striped-bg: #d7d8da;\n --bs-table-striped-color: #000;\n --bs-table-active-bg: #cbccce;\n --bs-table-active-color: #000;\n --bs-table-hover-bg: #d1d2d4;\n --bs-table-hover-color: #000;\n color: #000;\n border-color: #cbccce;\n}\n\n.table-success {\n --bs-table-bg: #d1e7dd;\n --bs-table-striped-bg: #c7dbd2;\n --bs-table-striped-color: #000;\n --bs-table-active-bg: #bcd0c7;\n --bs-table-active-color: #000;\n --bs-table-hover-bg: #c1d6cc;\n --bs-table-hover-color: #000;\n color: #000;\n border-color: #bcd0c7;\n}\n\n.table-info {\n --bs-table-bg: #cff4fc;\n --bs-table-striped-bg: #c5e8ef;\n --bs-table-striped-color: #000;\n --bs-table-active-bg: #badce3;\n --bs-table-active-color: #000;\n --bs-table-hover-bg: #bfe2e9;\n --bs-table-hover-color: #000;\n color: #000;\n border-color: #badce3;\n}\n\n.table-warning {\n --bs-table-bg: #fff3cd;\n --bs-table-striped-bg: #f2e7c3;\n --bs-table-striped-color: #000;\n --bs-table-active-bg: #e6dbb9;\n --bs-table-active-color: #000;\n --bs-table-hover-bg: #ece1be;\n --bs-table-hover-color: #000;\n color: #000;\n border-color: #e6dbb9;\n}\n\n.table-danger {\n --bs-table-bg: #f8d7da;\n --bs-table-striped-bg: #eccccf;\n --bs-table-striped-color: #000;\n --bs-table-active-bg: #dfc2c4;\n --bs-table-active-color: #000;\n --bs-table-hover-bg: #e5c7ca;\n --bs-table-hover-color: #000;\n color: #000;\n border-color: #dfc2c4;\n}\n\n.table-light {\n --bs-table-bg: #f8f9fa;\n --bs-table-striped-bg: #ecedee;\n --bs-table-striped-color: #000;\n --bs-table-active-bg: #dfe0e1;\n --bs-table-active-color: #000;\n --bs-table-hover-bg: #e5e6e7;\n --bs-table-hover-color: #000;\n color: #000;\n border-color: #dfe0e1;\n}\n\n.table-dark {\n --bs-table-bg: #212529;\n --bs-table-striped-bg: #2c3034;\n --bs-table-striped-color: #fff;\n --bs-table-active-bg: #373b3e;\n --bs-table-active-color: #fff;\n --bs-table-hover-bg: #323539;\n --bs-table-hover-color: #fff;\n color: #fff;\n border-color: #373b3e;\n}\n\n.table-responsive {\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n}\n\n@media (max-width: 575.98px) {\n .table-responsive-sm {\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n}\n@media (max-width: 767.98px) {\n .table-responsive-md {\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n}\n@media (max-width: 991.98px) {\n .table-responsive-lg {\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n}\n@media (max-width: 1199.98px) {\n .table-responsive-xl {\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n}\n@media (max-width: 1399.98px) {\n .table-responsive-xxl {\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n}\n.form-label {\n margin-bottom: 0.5rem;\n}\n\n.col-form-label {\n padding-top: calc(0.375rem + 1px);\n padding-bottom: calc(0.375rem + 1px);\n margin-bottom: 0;\n font-size: inherit;\n line-height: 1.5;\n}\n\n.col-form-label-lg {\n padding-top: calc(0.5rem + 1px);\n padding-bottom: calc(0.5rem + 1px);\n font-size: 1.25rem;\n}\n\n.col-form-label-sm {\n padding-top: calc(0.25rem + 1px);\n padding-bottom: calc(0.25rem + 1px);\n font-size: 0.875rem;\n}\n\n.form-text {\n margin-top: 0.25rem;\n font-size: 0.875em;\n color: #6c757d;\n}\n\n.form-control {\n display: block;\n width: 100%;\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #212529;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #ced4da;\n appearance: none;\n border-radius: 0.25rem;\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n@media (prefers-reduced-motion: reduce) {\n .form-control {\n transition: none;\n }\n}\n.form-control[type=file] {\n overflow: hidden;\n}\n.form-control[type=file]:not(:disabled):not([readonly]) {\n cursor: pointer;\n}\n.form-control:focus {\n color: #212529;\n background-color: #fff;\n border-color: #86b7fe;\n outline: 0;\n box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);\n}\n.form-control::-webkit-date-and-time-value {\n height: 1.5em;\n}\n.form-control::placeholder {\n color: #6c757d;\n opacity: 1;\n}\n.form-control:disabled, .form-control[readonly] {\n background-color: #e9ecef;\n opacity: 1;\n}\n.form-control::file-selector-button {\n padding: 0.375rem 0.75rem;\n margin: -0.375rem -0.75rem;\n margin-inline-end: 0.75rem;\n color: #212529;\n background-color: #e9ecef;\n pointer-events: none;\n border-color: inherit;\n border-style: solid;\n border-width: 0;\n border-inline-end-width: 1px;\n border-radius: 0;\n 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;\n}\n@media (prefers-reduced-motion: reduce) {\n .form-control::file-selector-button {\n transition: none;\n }\n}\n.form-control:hover:not(:disabled):not([readonly])::file-selector-button {\n background-color: #dde0e3;\n}\n.form-control::-webkit-file-upload-button {\n padding: 0.375rem 0.75rem;\n margin: -0.375rem -0.75rem;\n margin-inline-end: 0.75rem;\n color: #212529;\n background-color: #e9ecef;\n pointer-events: none;\n border-color: inherit;\n border-style: solid;\n border-width: 0;\n border-inline-end-width: 1px;\n border-radius: 0;\n 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;\n}\n@media (prefers-reduced-motion: reduce) {\n .form-control::-webkit-file-upload-button {\n transition: none;\n }\n}\n.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button {\n background-color: #dde0e3;\n}\n\n.form-control-plaintext {\n display: block;\n width: 100%;\n padding: 0.375rem 0;\n margin-bottom: 0;\n line-height: 1.5;\n color: #212529;\n background-color: transparent;\n border: solid transparent;\n border-width: 1px 0;\n}\n.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg {\n padding-right: 0;\n padding-left: 0;\n}\n\n.form-control-sm {\n min-height: calc(1.5em + 0.5rem + 2px);\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n border-radius: 0.2rem;\n}\n.form-control-sm::file-selector-button {\n padding: 0.25rem 0.5rem;\n margin: -0.25rem -0.5rem;\n margin-inline-end: 0.5rem;\n}\n.form-control-sm::-webkit-file-upload-button {\n padding: 0.25rem 0.5rem;\n margin: -0.25rem -0.5rem;\n margin-inline-end: 0.5rem;\n}\n\n.form-control-lg {\n min-height: calc(1.5em + 1rem + 2px);\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n border-radius: 0.3rem;\n}\n.form-control-lg::file-selector-button {\n padding: 0.5rem 1rem;\n margin: -0.5rem -1rem;\n margin-inline-end: 1rem;\n}\n.form-control-lg::-webkit-file-upload-button {\n padding: 0.5rem 1rem;\n margin: -0.5rem -1rem;\n margin-inline-end: 1rem;\n}\n\ntextarea.form-control {\n min-height: calc(1.5em + 0.75rem + 2px);\n}\ntextarea.form-control-sm {\n min-height: calc(1.5em + 0.5rem + 2px);\n}\ntextarea.form-control-lg {\n min-height: calc(1.5em + 1rem + 2px);\n}\n\n.form-control-color {\n width: 3rem;\n height: auto;\n padding: 0.375rem;\n}\n.form-control-color:not(:disabled):not([readonly]) {\n cursor: pointer;\n}\n.form-control-color::-moz-color-swatch {\n height: 1.5em;\n border-radius: 0.25rem;\n}\n.form-control-color::-webkit-color-swatch {\n height: 1.5em;\n border-radius: 0.25rem;\n}\n\n.form-select {\n display: block;\n width: 100%;\n padding: 0.375rem 2.25rem 0.375rem 0.75rem;\n -moz-padding-start: calc(0.75rem - 3px);\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #212529;\n background-color: #fff;\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e\");\n background-repeat: no-repeat;\n background-position: right 0.75rem center;\n background-size: 16px 12px;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none;\n}\n@media (prefers-reduced-motion: reduce) {\n .form-select {\n transition: none;\n }\n}\n.form-select:focus {\n border-color: #86b7fe;\n outline: 0;\n box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);\n}\n.form-select[multiple], .form-select[size]:not([size=\"1\"]) {\n padding-right: 0.75rem;\n background-image: none;\n}\n.form-select:disabled {\n background-color: #e9ecef;\n}\n.form-select:-moz-focusring {\n color: transparent;\n text-shadow: 0 0 0 #212529;\n}\n\n.form-select-sm {\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n padding-left: 0.5rem;\n font-size: 0.875rem;\n}\n\n.form-select-lg {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n padding-left: 1rem;\n font-size: 1.25rem;\n}\n\n.form-check {\n display: block;\n min-height: 1.5rem;\n padding-left: 1.5em;\n margin-bottom: 0.125rem;\n}\n.form-check .form-check-input {\n float: left;\n margin-left: -1.5em;\n}\n\n.form-check-input {\n width: 1em;\n height: 1em;\n margin-top: 0.25em;\n vertical-align: top;\n background-color: #fff;\n background-repeat: no-repeat;\n background-position: center;\n background-size: contain;\n border: 1px solid rgba(0, 0, 0, 0.25);\n appearance: none;\n color-adjust: exact;\n}\n.form-check-input[type=checkbox] {\n border-radius: 0.25em;\n}\n.form-check-input[type=radio] {\n border-radius: 50%;\n}\n.form-check-input:active {\n filter: brightness(90%);\n}\n.form-check-input:focus {\n border-color: #86b7fe;\n outline: 0;\n box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);\n}\n.form-check-input:checked {\n background-color: #0d6efd;\n border-color: #0d6efd;\n}\n.form-check-input:checked[type=checkbox] {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10l3 3l6-6'/%3e%3c/svg%3e\");\n}\n.form-check-input:checked[type=radio] {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e\");\n}\n.form-check-input[type=checkbox]:indeterminate {\n background-color: #0d6efd;\n border-color: #0d6efd;\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e\");\n}\n.form-check-input:disabled {\n pointer-events: none;\n filter: none;\n opacity: 0.5;\n}\n.form-check-input[disabled] ~ .form-check-label, .form-check-input:disabled ~ .form-check-label {\n opacity: 0.5;\n}\n\n.form-switch {\n padding-left: 2.5em;\n}\n.form-switch .form-check-input {\n width: 2em;\n margin-left: -2.5em;\n background-image: 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\");\n background-position: left center;\n border-radius: 2em;\n transition: background-position 0.15s ease-in-out;\n}\n@media (prefers-reduced-motion: reduce) {\n .form-switch .form-check-input {\n transition: none;\n }\n}\n.form-switch .form-check-input:focus {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2386b7fe'/%3e%3c/svg%3e\");\n}\n.form-switch .form-check-input:checked {\n background-position: right center;\n background-image: 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\");\n}\n\n.form-check-inline {\n display: inline-block;\n margin-right: 1rem;\n}\n\n.btn-check {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n}\n.btn-check[disabled] + .btn, .btn-check:disabled + .btn {\n pointer-events: none;\n filter: none;\n opacity: 0.65;\n}\n\n.form-range {\n width: 100%;\n height: 1.5rem;\n padding: 0;\n background-color: transparent;\n appearance: none;\n}\n.form-range:focus {\n outline: 0;\n}\n.form-range:focus::-webkit-slider-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.25rem rgba(13, 110, 253, 0.25);\n}\n.form-range:focus::-moz-range-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.25rem rgba(13, 110, 253, 0.25);\n}\n.form-range::-moz-focus-outer {\n border: 0;\n}\n.form-range::-webkit-slider-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: -0.25rem;\n background-color: #0d6efd;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none;\n}\n@media (prefers-reduced-motion: reduce) {\n .form-range::-webkit-slider-thumb {\n transition: none;\n }\n}\n.form-range::-webkit-slider-thumb:active {\n background-color: #b6d4fe;\n}\n.form-range::-webkit-slider-runnable-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem;\n}\n.form-range::-moz-range-thumb {\n width: 1rem;\n height: 1rem;\n background-color: #0d6efd;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none;\n}\n@media (prefers-reduced-motion: reduce) {\n .form-range::-moz-range-thumb {\n transition: none;\n }\n}\n.form-range::-moz-range-thumb:active {\n background-color: #b6d4fe;\n}\n.form-range::-moz-range-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem;\n}\n.form-range:disabled {\n pointer-events: none;\n}\n.form-range:disabled::-webkit-slider-thumb {\n background-color: #adb5bd;\n}\n.form-range:disabled::-moz-range-thumb {\n background-color: #adb5bd;\n}\n\n.form-floating {\n position: relative;\n}\n.form-floating > .form-control,\n.form-floating > .form-select {\n height: calc(3.5rem + 2px);\n line-height: 1.25;\n}\n.form-floating > label {\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n padding: 1rem 0.75rem;\n pointer-events: none;\n border: 1px solid transparent;\n transform-origin: 0 0;\n transition: opacity 0.1s ease-in-out, transform 0.1s ease-in-out;\n}\n@media (prefers-reduced-motion: reduce) {\n .form-floating > label {\n transition: none;\n }\n}\n.form-floating > .form-control {\n padding: 1rem 0.75rem;\n}\n.form-floating > .form-control::placeholder {\n color: transparent;\n}\n.form-floating > .form-control:focus, .form-floating > .form-control:not(:placeholder-shown) {\n padding-top: 1.625rem;\n padding-bottom: 0.625rem;\n}\n.form-floating > .form-control:-webkit-autofill {\n padding-top: 1.625rem;\n padding-bottom: 0.625rem;\n}\n.form-floating > .form-select {\n padding-top: 1.625rem;\n padding-bottom: 0.625rem;\n}\n.form-floating > .form-control:focus ~ label,\n.form-floating > .form-control:not(:placeholder-shown) ~ label,\n.form-floating > .form-select ~ label {\n opacity: 0.65;\n transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem);\n}\n.form-floating > .form-control:-webkit-autofill ~ label {\n opacity: 0.65;\n transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem);\n}\n\n.input-group {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: stretch;\n width: 100%;\n}\n.input-group > .form-control,\n.input-group > .form-select {\n position: relative;\n flex: 1 1 auto;\n width: 1%;\n min-width: 0;\n}\n.input-group > .form-control:focus,\n.input-group > .form-select:focus {\n z-index: 3;\n}\n.input-group .btn {\n position: relative;\n z-index: 2;\n}\n.input-group .btn:focus {\n z-index: 3;\n}\n\n.input-group-text {\n display: flex;\n align-items: center;\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #212529;\n text-align: center;\n white-space: nowrap;\n background-color: #e9ecef;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n}\n\n.input-group-lg > .form-control,\n.input-group-lg > .form-select,\n.input-group-lg > .input-group-text,\n.input-group-lg > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n border-radius: 0.3rem;\n}\n\n.input-group-sm > .form-control,\n.input-group-sm > .form-select,\n.input-group-sm > .input-group-text,\n.input-group-sm > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n border-radius: 0.2rem;\n}\n\n.input-group-lg > .form-select,\n.input-group-sm > .form-select {\n padding-right: 3rem;\n}\n\n.input-group:not(.has-validation) > :not(:last-child):not(.dropdown-toggle):not(.dropdown-menu),\n.input-group:not(.has-validation) > .dropdown-toggle:nth-last-child(n+3) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.input-group.has-validation > :nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu),\n.input-group.has-validation > .dropdown-toggle:nth-last-child(n+4) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.input-group > :not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback) {\n margin-left: -1px;\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.valid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 0.875em;\n color: #198754;\n}\n\n.valid-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: 0.1rem;\n font-size: 0.875rem;\n color: #fff;\n background-color: rgba(25, 135, 84, 0.9);\n border-radius: 0.25rem;\n}\n\n.was-validated :valid ~ .valid-feedback,\n.was-validated :valid ~ .valid-tooltip,\n.is-valid ~ .valid-feedback,\n.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .form-control:valid, .form-control.is-valid {\n border-color: #198754;\n padding-right: calc(1.5em + 0.75rem);\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73L.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\");\n background-repeat: no-repeat;\n background-position: right calc(0.375em + 0.1875rem) center;\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n.was-validated .form-control:valid:focus, .form-control.is-valid:focus {\n border-color: #198754;\n box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.25);\n}\n\n.was-validated textarea.form-control:valid, textarea.form-control.is-valid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .form-select:valid, .form-select.is-valid {\n border-color: #198754;\n}\n.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\"] {\n padding-right: 4.125rem;\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e\"), url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73L.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\");\n background-position: right 0.75rem center, center right 2.25rem;\n background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n.was-validated .form-select:valid:focus, .form-select.is-valid:focus {\n border-color: #198754;\n box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.25);\n}\n\n.was-validated .form-check-input:valid, .form-check-input.is-valid {\n border-color: #198754;\n}\n.was-validated .form-check-input:valid:checked, .form-check-input.is-valid:checked {\n background-color: #198754;\n}\n.was-validated .form-check-input:valid:focus, .form-check-input.is-valid:focus {\n box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.25);\n}\n.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {\n color: #198754;\n}\n\n.form-check-inline .form-check-input ~ .valid-feedback {\n margin-left: 0.5em;\n}\n\n.was-validated .input-group .form-control:valid, .input-group .form-control.is-valid,\n.was-validated .input-group .form-select:valid,\n.input-group .form-select.is-valid {\n z-index: 1;\n}\n.was-validated .input-group .form-control:valid:focus, .input-group .form-control.is-valid:focus,\n.was-validated .input-group .form-select:valid:focus,\n.input-group .form-select.is-valid:focus {\n z-index: 3;\n}\n\n.invalid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 0.875em;\n color: #dc3545;\n}\n\n.invalid-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: 0.1rem;\n font-size: 0.875rem;\n color: #fff;\n background-color: rgba(220, 53, 69, 0.9);\n border-radius: 0.25rem;\n}\n\n.was-validated :invalid ~ .invalid-feedback,\n.was-validated :invalid ~ .invalid-tooltip,\n.is-invalid ~ .invalid-feedback,\n.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .form-control:invalid, .form-control.is-invalid {\n border-color: #dc3545;\n padding-right: calc(1.5em + 0.75rem);\n 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='%23dc3545'%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='%23dc3545' stroke='none'/%3e%3c/svg%3e\");\n background-repeat: no-repeat;\n background-position: right calc(0.375em + 0.1875rem) center;\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .form-select:invalid, .form-select.is-invalid {\n border-color: #dc3545;\n}\n.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\"] {\n padding-right: 4.125rem;\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e\"), 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='%23dc3545'%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='%23dc3545' stroke='none'/%3e%3c/svg%3e\");\n background-position: right 0.75rem center, center right 2.25rem;\n background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n.was-validated .form-select:invalid:focus, .form-select.is-invalid:focus {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .form-check-input:invalid, .form-check-input.is-invalid {\n border-color: #dc3545;\n}\n.was-validated .form-check-input:invalid:checked, .form-check-input.is-invalid:checked {\n background-color: #dc3545;\n}\n.was-validated .form-check-input:invalid:focus, .form-check-input.is-invalid:focus {\n box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.25);\n}\n.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {\n color: #dc3545;\n}\n\n.form-check-inline .form-check-input ~ .invalid-feedback {\n margin-left: 0.5em;\n}\n\n.was-validated .input-group .form-control:invalid, .input-group .form-control.is-invalid,\n.was-validated .input-group .form-select:invalid,\n.input-group .form-select.is-invalid {\n z-index: 2;\n}\n.was-validated .input-group .form-control:invalid:focus, .input-group .form-control.is-invalid:focus,\n.was-validated .input-group .form-select:invalid:focus,\n.input-group .form-select.is-invalid:focus {\n z-index: 3;\n}\n\n.btn {\n display: inline-block;\n font-weight: 400;\n line-height: 1.5;\n color: #212529;\n text-align: center;\n text-decoration: none;\n vertical-align: middle;\n cursor: pointer;\n user-select: none;\n background-color: transparent;\n border: 1px solid transparent;\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n border-radius: 0.25rem;\n 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;\n}\n@media (prefers-reduced-motion: reduce) {\n .btn {\n transition: none;\n }\n}\n.btn:hover {\n color: #212529;\n}\n.btn-check:focus + .btn, .btn:focus {\n outline: 0;\n box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);\n}\n.btn:disabled, .btn.disabled, fieldset:disabled .btn {\n pointer-events: none;\n opacity: 0.65;\n}\n\n.btn-primary {\n color: #fff;\n background-color: #0d6efd;\n border-color: #0d6efd;\n}\n.btn-primary:hover {\n color: #fff;\n background-color: #0b5ed7;\n border-color: #0a58ca;\n}\n.btn-check:focus + .btn-primary, .btn-primary:focus {\n color: #fff;\n background-color: #0b5ed7;\n border-color: #0a58ca;\n box-shadow: 0 0 0 0.25rem rgba(49, 132, 253, 0.5);\n}\n.btn-check:checked + .btn-primary, .btn-check:active + .btn-primary, .btn-primary:active, .btn-primary.active, .show > .btn-primary.dropdown-toggle {\n color: #fff;\n background-color: #0a58ca;\n border-color: #0a53be;\n}\n.btn-check:checked + .btn-primary:focus, .btn-check:active + .btn-primary:focus, .btn-primary:active:focus, .btn-primary.active:focus, .show > .btn-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.25rem rgba(49, 132, 253, 0.5);\n}\n.btn-primary:disabled, .btn-primary.disabled {\n color: #fff;\n background-color: #0d6efd;\n border-color: #0d6efd;\n}\n\n.btn-secondary {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n.btn-secondary:hover {\n color: #fff;\n background-color: #5c636a;\n border-color: #565e64;\n}\n.btn-check:focus + .btn-secondary, .btn-secondary:focus {\n color: #fff;\n background-color: #5c636a;\n border-color: #565e64;\n box-shadow: 0 0 0 0.25rem rgba(130, 138, 145, 0.5);\n}\n.btn-check:checked + .btn-secondary, .btn-check:active + .btn-secondary, .btn-secondary:active, .btn-secondary.active, .show > .btn-secondary.dropdown-toggle {\n color: #fff;\n background-color: #565e64;\n border-color: #51585e;\n}\n.btn-check:checked + .btn-secondary:focus, .btn-check:active + .btn-secondary:focus, .btn-secondary:active:focus, .btn-secondary.active:focus, .show > .btn-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.25rem rgba(130, 138, 145, 0.5);\n}\n.btn-secondary:disabled, .btn-secondary.disabled {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-success {\n color: #fff;\n background-color: #198754;\n border-color: #198754;\n}\n.btn-success:hover {\n color: #fff;\n background-color: #157347;\n border-color: #146c43;\n}\n.btn-check:focus + .btn-success, .btn-success:focus {\n color: #fff;\n background-color: #157347;\n border-color: #146c43;\n box-shadow: 0 0 0 0.25rem rgba(60, 153, 110, 0.5);\n}\n.btn-check:checked + .btn-success, .btn-check:active + .btn-success, .btn-success:active, .btn-success.active, .show > .btn-success.dropdown-toggle {\n color: #fff;\n background-color: #146c43;\n border-color: #13653f;\n}\n.btn-check:checked + .btn-success:focus, .btn-check:active + .btn-success:focus, .btn-success:active:focus, .btn-success.active:focus, .show > .btn-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.25rem rgba(60, 153, 110, 0.5);\n}\n.btn-success:disabled, .btn-success.disabled {\n color: #fff;\n background-color: #198754;\n border-color: #198754;\n}\n\n.btn-info {\n color: #000;\n background-color: #0dcaf0;\n border-color: #0dcaf0;\n}\n.btn-info:hover {\n color: #000;\n background-color: #31d2f2;\n border-color: #25cff2;\n}\n.btn-check:focus + .btn-info, .btn-info:focus {\n color: #000;\n background-color: #31d2f2;\n border-color: #25cff2;\n box-shadow: 0 0 0 0.25rem rgba(11, 172, 204, 0.5);\n}\n.btn-check:checked + .btn-info, .btn-check:active + .btn-info, .btn-info:active, .btn-info.active, .show > .btn-info.dropdown-toggle {\n color: #000;\n background-color: #3dd5f3;\n border-color: #25cff2;\n}\n.btn-check:checked + .btn-info:focus, .btn-check:active + .btn-info:focus, .btn-info:active:focus, .btn-info.active:focus, .show > .btn-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.25rem rgba(11, 172, 204, 0.5);\n}\n.btn-info:disabled, .btn-info.disabled {\n color: #000;\n background-color: #0dcaf0;\n border-color: #0dcaf0;\n}\n\n.btn-warning {\n color: #000;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n.btn-warning:hover {\n color: #000;\n background-color: #ffca2c;\n border-color: #ffc720;\n}\n.btn-check:focus + .btn-warning, .btn-warning:focus {\n color: #000;\n background-color: #ffca2c;\n border-color: #ffc720;\n box-shadow: 0 0 0 0.25rem rgba(217, 164, 6, 0.5);\n}\n.btn-check:checked + .btn-warning, .btn-check:active + .btn-warning, .btn-warning:active, .btn-warning.active, .show > .btn-warning.dropdown-toggle {\n color: #000;\n background-color: #ffcd39;\n border-color: #ffc720;\n}\n.btn-check:checked + .btn-warning:focus, .btn-check:active + .btn-warning:focus, .btn-warning:active:focus, .btn-warning.active:focus, .show > .btn-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.25rem rgba(217, 164, 6, 0.5);\n}\n.btn-warning:disabled, .btn-warning.disabled {\n color: #000;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-danger {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n.btn-danger:hover {\n color: #fff;\n background-color: #bb2d3b;\n border-color: #b02a37;\n}\n.btn-check:focus + .btn-danger, .btn-danger:focus {\n color: #fff;\n background-color: #bb2d3b;\n border-color: #b02a37;\n box-shadow: 0 0 0 0.25rem rgba(225, 83, 97, 0.5);\n}\n.btn-check:checked + .btn-danger, .btn-check:active + .btn-danger, .btn-danger:active, .btn-danger.active, .show > .btn-danger.dropdown-toggle {\n color: #fff;\n background-color: #b02a37;\n border-color: #a52834;\n}\n.btn-check:checked + .btn-danger:focus, .btn-check:active + .btn-danger:focus, .btn-danger:active:focus, .btn-danger.active:focus, .show > .btn-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.25rem rgba(225, 83, 97, 0.5);\n}\n.btn-danger:disabled, .btn-danger.disabled {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-light {\n color: #000;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n.btn-light:hover {\n color: #000;\n background-color: #f9fafb;\n border-color: #f9fafb;\n}\n.btn-check:focus + .btn-light, .btn-light:focus {\n color: #000;\n background-color: #f9fafb;\n border-color: #f9fafb;\n box-shadow: 0 0 0 0.25rem rgba(211, 212, 213, 0.5);\n}\n.btn-check:checked + .btn-light, .btn-check:active + .btn-light, .btn-light:active, .btn-light.active, .show > .btn-light.dropdown-toggle {\n color: #000;\n background-color: #f9fafb;\n border-color: #f9fafb;\n}\n.btn-check:checked + .btn-light:focus, .btn-check:active + .btn-light:focus, .btn-light:active:focus, .btn-light.active:focus, .show > .btn-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.25rem rgba(211, 212, 213, 0.5);\n}\n.btn-light:disabled, .btn-light.disabled {\n color: #000;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-dark {\n color: #fff;\n background-color: #212529;\n border-color: #212529;\n}\n.btn-dark:hover {\n color: #fff;\n background-color: #1c1f23;\n border-color: #1a1e21;\n}\n.btn-check:focus + .btn-dark, .btn-dark:focus {\n color: #fff;\n background-color: #1c1f23;\n border-color: #1a1e21;\n box-shadow: 0 0 0 0.25rem rgba(66, 70, 73, 0.5);\n}\n.btn-check:checked + .btn-dark, .btn-check:active + .btn-dark, .btn-dark:active, .btn-dark.active, .show > .btn-dark.dropdown-toggle {\n color: #fff;\n background-color: #1a1e21;\n border-color: #191c1f;\n}\n.btn-check:checked + .btn-dark:focus, .btn-check:active + .btn-dark:focus, .btn-dark:active:focus, .btn-dark.active:focus, .show > .btn-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.25rem rgba(66, 70, 73, 0.5);\n}\n.btn-dark:disabled, .btn-dark.disabled {\n color: #fff;\n background-color: #212529;\n border-color: #212529;\n}\n\n.btn-outline-primary {\n color: #0d6efd;\n border-color: #0d6efd;\n}\n.btn-outline-primary:hover {\n color: #fff;\n background-color: #0d6efd;\n border-color: #0d6efd;\n}\n.btn-check:focus + .btn-outline-primary, .btn-outline-primary:focus {\n box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.5);\n}\n.btn-check:checked + .btn-outline-primary, .btn-check:active + .btn-outline-primary, .btn-outline-primary:active, .btn-outline-primary.active, .btn-outline-primary.dropdown-toggle.show {\n color: #fff;\n background-color: #0d6efd;\n border-color: #0d6efd;\n}\n.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.dropdown-toggle.show:focus {\n box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.5);\n}\n.btn-outline-primary:disabled, .btn-outline-primary.disabled {\n color: #0d6efd;\n background-color: transparent;\n}\n\n.btn-outline-secondary {\n color: #6c757d;\n border-color: #6c757d;\n}\n.btn-outline-secondary:hover {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n.btn-check:focus + .btn-outline-secondary, .btn-outline-secondary:focus {\n box-shadow: 0 0 0 0.25rem rgba(108, 117, 125, 0.5);\n}\n.btn-check:checked + .btn-outline-secondary, .btn-check:active + .btn-outline-secondary, .btn-outline-secondary:active, .btn-outline-secondary.active, .btn-outline-secondary.dropdown-toggle.show {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n.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.dropdown-toggle.show:focus {\n box-shadow: 0 0 0 0.25rem rgba(108, 117, 125, 0.5);\n}\n.btn-outline-secondary:disabled, .btn-outline-secondary.disabled {\n color: #6c757d;\n background-color: transparent;\n}\n\n.btn-outline-success {\n color: #198754;\n border-color: #198754;\n}\n.btn-outline-success:hover {\n color: #fff;\n background-color: #198754;\n border-color: #198754;\n}\n.btn-check:focus + .btn-outline-success, .btn-outline-success:focus {\n box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.5);\n}\n.btn-check:checked + .btn-outline-success, .btn-check:active + .btn-outline-success, .btn-outline-success:active, .btn-outline-success.active, .btn-outline-success.dropdown-toggle.show {\n color: #fff;\n background-color: #198754;\n border-color: #198754;\n}\n.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.dropdown-toggle.show:focus {\n box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.5);\n}\n.btn-outline-success:disabled, .btn-outline-success.disabled {\n color: #198754;\n background-color: transparent;\n}\n\n.btn-outline-info {\n color: #0dcaf0;\n border-color: #0dcaf0;\n}\n.btn-outline-info:hover {\n color: #000;\n background-color: #0dcaf0;\n border-color: #0dcaf0;\n}\n.btn-check:focus + .btn-outline-info, .btn-outline-info:focus {\n box-shadow: 0 0 0 0.25rem rgba(13, 202, 240, 0.5);\n}\n.btn-check:checked + .btn-outline-info, .btn-check:active + .btn-outline-info, .btn-outline-info:active, .btn-outline-info.active, .btn-outline-info.dropdown-toggle.show {\n color: #000;\n background-color: #0dcaf0;\n border-color: #0dcaf0;\n}\n.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.dropdown-toggle.show:focus {\n box-shadow: 0 0 0 0.25rem rgba(13, 202, 240, 0.5);\n}\n.btn-outline-info:disabled, .btn-outline-info.disabled {\n color: #0dcaf0;\n background-color: transparent;\n}\n\n.btn-outline-warning {\n color: #ffc107;\n border-color: #ffc107;\n}\n.btn-outline-warning:hover {\n color: #000;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n.btn-check:focus + .btn-outline-warning, .btn-outline-warning:focus {\n box-shadow: 0 0 0 0.25rem rgba(255, 193, 7, 0.5);\n}\n.btn-check:checked + .btn-outline-warning, .btn-check:active + .btn-outline-warning, .btn-outline-warning:active, .btn-outline-warning.active, .btn-outline-warning.dropdown-toggle.show {\n color: #000;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n.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.dropdown-toggle.show:focus {\n box-shadow: 0 0 0 0.25rem rgba(255, 193, 7, 0.5);\n}\n.btn-outline-warning:disabled, .btn-outline-warning.disabled {\n color: #ffc107;\n background-color: transparent;\n}\n\n.btn-outline-danger {\n color: #dc3545;\n border-color: #dc3545;\n}\n.btn-outline-danger:hover {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n.btn-check:focus + .btn-outline-danger, .btn-outline-danger:focus {\n box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.5);\n}\n.btn-check:checked + .btn-outline-danger, .btn-check:active + .btn-outline-danger, .btn-outline-danger:active, .btn-outline-danger.active, .btn-outline-danger.dropdown-toggle.show {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n.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.dropdown-toggle.show:focus {\n box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.5);\n}\n.btn-outline-danger:disabled, .btn-outline-danger.disabled {\n color: #dc3545;\n background-color: transparent;\n}\n\n.btn-outline-light {\n color: #f8f9fa;\n border-color: #f8f9fa;\n}\n.btn-outline-light:hover {\n color: #000;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n.btn-check:focus + .btn-outline-light, .btn-outline-light:focus {\n box-shadow: 0 0 0 0.25rem rgba(248, 249, 250, 0.5);\n}\n.btn-check:checked + .btn-outline-light, .btn-check:active + .btn-outline-light, .btn-outline-light:active, .btn-outline-light.active, .btn-outline-light.dropdown-toggle.show {\n color: #000;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n.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.dropdown-toggle.show:focus {\n box-shadow: 0 0 0 0.25rem rgba(248, 249, 250, 0.5);\n}\n.btn-outline-light:disabled, .btn-outline-light.disabled {\n color: #f8f9fa;\n background-color: transparent;\n}\n\n.btn-outline-dark {\n color: #212529;\n border-color: #212529;\n}\n.btn-outline-dark:hover {\n color: #fff;\n background-color: #212529;\n border-color: #212529;\n}\n.btn-check:focus + .btn-outline-dark, .btn-outline-dark:focus {\n box-shadow: 0 0 0 0.25rem rgba(33, 37, 41, 0.5);\n}\n.btn-check:checked + .btn-outline-dark, .btn-check:active + .btn-outline-dark, .btn-outline-dark:active, .btn-outline-dark.active, .btn-outline-dark.dropdown-toggle.show {\n color: #fff;\n background-color: #212529;\n border-color: #212529;\n}\n.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.dropdown-toggle.show:focus {\n box-shadow: 0 0 0 0.25rem rgba(33, 37, 41, 0.5);\n}\n.btn-outline-dark:disabled, .btn-outline-dark.disabled {\n color: #212529;\n background-color: transparent;\n}\n\n.btn-link {\n font-weight: 400;\n color: #0d6efd;\n text-decoration: underline;\n}\n.btn-link:hover {\n color: #0a58ca;\n}\n.btn-link:disabled, .btn-link.disabled {\n color: #6c757d;\n}\n\n.btn-lg, .btn-group-lg > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n border-radius: 0.3rem;\n}\n\n.btn-sm, .btn-group-sm > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n border-radius: 0.2rem;\n}\n\n.fade {\n transition: opacity 0.15s linear;\n}\n@media (prefers-reduced-motion: reduce) {\n .fade {\n transition: none;\n }\n}\n.fade:not(.show) {\n opacity: 0;\n}\n\n.collapse:not(.show) {\n display: none;\n}\n\n.collapsing {\n height: 0;\n overflow: hidden;\n transition: height 0.35s ease;\n}\n@media (prefers-reduced-motion: reduce) {\n .collapsing {\n transition: none;\n }\n}\n.collapsing.collapse-horizontal {\n width: 0;\n height: auto;\n transition: width 0.35s ease;\n}\n@media (prefers-reduced-motion: reduce) {\n .collapsing.collapse-horizontal {\n transition: none;\n }\n}\n\n.dropup,\n.dropend,\n.dropdown,\n.dropstart {\n position: relative;\n}\n\n.dropdown-toggle {\n white-space: nowrap;\n}\n.dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid;\n border-right: 0.3em solid transparent;\n border-bottom: 0;\n border-left: 0.3em solid transparent;\n}\n.dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropdown-menu {\n position: absolute;\n z-index: 1000;\n display: none;\n min-width: 10rem;\n padding: 0.5rem 0;\n margin: 0;\n font-size: 1rem;\n color: #212529;\n text-align: left;\n list-style: none;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 0.25rem;\n}\n.dropdown-menu[data-bs-popper] {\n top: 100%;\n left: 0;\n margin-top: 0.125rem;\n}\n\n.dropdown-menu-start {\n --bs-position: start;\n}\n.dropdown-menu-start[data-bs-popper] {\n right: auto;\n left: 0;\n}\n\n.dropdown-menu-end {\n --bs-position: end;\n}\n.dropdown-menu-end[data-bs-popper] {\n right: 0;\n left: auto;\n}\n\n@media (min-width: 576px) {\n .dropdown-menu-sm-start {\n --bs-position: start;\n }\n .dropdown-menu-sm-start[data-bs-popper] {\n right: auto;\n left: 0;\n }\n\n .dropdown-menu-sm-end {\n --bs-position: end;\n }\n .dropdown-menu-sm-end[data-bs-popper] {\n right: 0;\n left: auto;\n }\n}\n@media (min-width: 768px) {\n .dropdown-menu-md-start {\n --bs-position: start;\n }\n .dropdown-menu-md-start[data-bs-popper] {\n right: auto;\n left: 0;\n }\n\n .dropdown-menu-md-end {\n --bs-position: end;\n }\n .dropdown-menu-md-end[data-bs-popper] {\n right: 0;\n left: auto;\n }\n}\n@media (min-width: 992px) {\n .dropdown-menu-lg-start {\n --bs-position: start;\n }\n .dropdown-menu-lg-start[data-bs-popper] {\n right: auto;\n left: 0;\n }\n\n .dropdown-menu-lg-end {\n --bs-position: end;\n }\n .dropdown-menu-lg-end[data-bs-popper] {\n right: 0;\n left: auto;\n }\n}\n@media (min-width: 1200px) {\n .dropdown-menu-xl-start {\n --bs-position: start;\n }\n .dropdown-menu-xl-start[data-bs-popper] {\n right: auto;\n left: 0;\n }\n\n .dropdown-menu-xl-end {\n --bs-position: end;\n }\n .dropdown-menu-xl-end[data-bs-popper] {\n right: 0;\n left: auto;\n }\n}\n@media (min-width: 1400px) {\n .dropdown-menu-xxl-start {\n --bs-position: start;\n }\n .dropdown-menu-xxl-start[data-bs-popper] {\n right: auto;\n left: 0;\n }\n\n .dropdown-menu-xxl-end {\n --bs-position: end;\n }\n .dropdown-menu-xxl-end[data-bs-popper] {\n right: 0;\n left: auto;\n }\n}\n.dropup .dropdown-menu[data-bs-popper] {\n top: auto;\n bottom: 100%;\n margin-top: 0;\n margin-bottom: 0.125rem;\n}\n.dropup .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0;\n border-right: 0.3em solid transparent;\n border-bottom: 0.3em solid;\n border-left: 0.3em solid transparent;\n}\n.dropup .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropend .dropdown-menu[data-bs-popper] {\n top: 0;\n right: auto;\n left: 100%;\n margin-top: 0;\n margin-left: 0.125rem;\n}\n.dropend .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0;\n border-bottom: 0.3em solid transparent;\n border-left: 0.3em solid;\n}\n.dropend .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n.dropend .dropdown-toggle::after {\n vertical-align: 0;\n}\n\n.dropstart .dropdown-menu[data-bs-popper] {\n top: 0;\n right: 100%;\n left: auto;\n margin-top: 0;\n margin-right: 0.125rem;\n}\n.dropstart .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n}\n.dropstart .dropdown-toggle::after {\n display: none;\n}\n.dropstart .dropdown-toggle::before {\n display: inline-block;\n margin-right: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0.3em solid;\n border-bottom: 0.3em solid transparent;\n}\n.dropstart .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n.dropstart .dropdown-toggle::before {\n vertical-align: 0;\n}\n\n.dropdown-divider {\n height: 0;\n margin: 0.5rem 0;\n overflow: hidden;\n border-top: 1px solid rgba(0, 0, 0, 0.15);\n}\n\n.dropdown-item {\n display: block;\n width: 100%;\n padding: 0.25rem 1rem;\n clear: both;\n font-weight: 400;\n color: #212529;\n text-align: inherit;\n text-decoration: none;\n white-space: nowrap;\n background-color: transparent;\n border: 0;\n}\n.dropdown-item:hover, .dropdown-item:focus {\n color: #1e2125;\n background-color: #e9ecef;\n}\n.dropdown-item.active, .dropdown-item:active {\n color: #fff;\n text-decoration: none;\n background-color: #0d6efd;\n}\n.dropdown-item.disabled, .dropdown-item:disabled {\n color: #adb5bd;\n pointer-events: none;\n background-color: transparent;\n}\n\n.dropdown-menu.show {\n display: block;\n}\n\n.dropdown-header {\n display: block;\n padding: 0.5rem 1rem;\n margin-bottom: 0;\n font-size: 0.875rem;\n color: #6c757d;\n white-space: nowrap;\n}\n\n.dropdown-item-text {\n display: block;\n padding: 0.25rem 1rem;\n color: #212529;\n}\n\n.dropdown-menu-dark {\n color: #dee2e6;\n background-color: #343a40;\n border-color: rgba(0, 0, 0, 0.15);\n}\n.dropdown-menu-dark .dropdown-item {\n color: #dee2e6;\n}\n.dropdown-menu-dark .dropdown-item:hover, .dropdown-menu-dark .dropdown-item:focus {\n color: #fff;\n background-color: rgba(255, 255, 255, 0.15);\n}\n.dropdown-menu-dark .dropdown-item.active, .dropdown-menu-dark .dropdown-item:active {\n color: #fff;\n background-color: #0d6efd;\n}\n.dropdown-menu-dark .dropdown-item.disabled, .dropdown-menu-dark .dropdown-item:disabled {\n color: #adb5bd;\n}\n.dropdown-menu-dark .dropdown-divider {\n border-color: rgba(0, 0, 0, 0.15);\n}\n.dropdown-menu-dark .dropdown-item-text {\n color: #dee2e6;\n}\n.dropdown-menu-dark .dropdown-header {\n color: #adb5bd;\n}\n\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-flex;\n vertical-align: middle;\n}\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n position: relative;\n flex: 1 1 auto;\n}\n.btn-group > .btn-check:checked + .btn,\n.btn-group > .btn-check:focus + .btn,\n.btn-group > .btn:hover,\n.btn-group > .btn:focus,\n.btn-group > .btn:active,\n.btn-group > .btn.active,\n.btn-group-vertical > .btn-check:checked + .btn,\n.btn-group-vertical > .btn-check:focus + .btn,\n.btn-group-vertical > .btn:hover,\n.btn-group-vertical > .btn:focus,\n.btn-group-vertical > .btn:active,\n.btn-group-vertical > .btn.active {\n z-index: 1;\n}\n\n.btn-toolbar {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-start;\n}\n.btn-toolbar .input-group {\n width: auto;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) {\n margin-left: -1px;\n}\n.btn-group > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group > .btn-group:not(:last-child) > .btn {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.btn-group > .btn:nth-child(n+3),\n.btn-group > :not(.btn-check) + .btn,\n.btn-group > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.dropdown-toggle-split {\n padding-right: 0.5625rem;\n padding-left: 0.5625rem;\n}\n.dropdown-toggle-split::after, .dropup .dropdown-toggle-split::after, .dropend .dropdown-toggle-split::after {\n margin-left: 0;\n}\n.dropstart .dropdown-toggle-split::before {\n margin-right: 0;\n}\n\n.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {\n padding-right: 0.375rem;\n padding-left: 0.375rem;\n}\n\n.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {\n padding-right: 0.75rem;\n padding-left: 0.75rem;\n}\n\n.btn-group-vertical {\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n}\n.btn-group-vertical > .btn,\n.btn-group-vertical > .btn-group {\n width: 100%;\n}\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) {\n margin-top: -1px;\n}\n.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group-vertical > .btn-group:not(:last-child) > .btn {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.btn-group-vertical > .btn ~ .btn,\n.btn-group-vertical > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.nav {\n display: flex;\n flex-wrap: wrap;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.nav-link {\n display: block;\n padding: 0.5rem 1rem;\n color: #0d6efd;\n text-decoration: none;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out;\n}\n@media (prefers-reduced-motion: reduce) {\n .nav-link {\n transition: none;\n }\n}\n.nav-link:hover, .nav-link:focus {\n color: #0a58ca;\n}\n.nav-link.disabled {\n color: #6c757d;\n pointer-events: none;\n cursor: default;\n}\n\n.nav-tabs {\n border-bottom: 1px solid #dee2e6;\n}\n.nav-tabs .nav-link {\n margin-bottom: -1px;\n background: none;\n border: 1px solid transparent;\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {\n border-color: #e9ecef #e9ecef #dee2e6;\n isolation: isolate;\n}\n.nav-tabs .nav-link.disabled {\n color: #6c757d;\n background-color: transparent;\n border-color: transparent;\n}\n.nav-tabs .nav-link.active,\n.nav-tabs .nav-item.show .nav-link {\n color: #495057;\n background-color: #fff;\n border-color: #dee2e6 #dee2e6 #fff;\n}\n.nav-tabs .dropdown-menu {\n margin-top: -1px;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.nav-pills .nav-link {\n background: none;\n border: 0;\n border-radius: 0.25rem;\n}\n.nav-pills .nav-link.active,\n.nav-pills .show > .nav-link {\n color: #fff;\n background-color: #0d6efd;\n}\n\n.nav-fill > .nav-link,\n.nav-fill .nav-item {\n flex: 1 1 auto;\n text-align: center;\n}\n\n.nav-justified > .nav-link,\n.nav-justified .nav-item {\n flex-basis: 0;\n flex-grow: 1;\n text-align: center;\n}\n\n.nav-fill .nav-item .nav-link,\n.nav-justified .nav-item .nav-link {\n width: 100%;\n}\n\n.tab-content > .tab-pane {\n display: none;\n}\n.tab-content > .active {\n display: block;\n}\n\n.navbar {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n.navbar > .container,\n.navbar > .container-fluid,\n.navbar > .container-sm,\n.navbar > .container-md,\n.navbar > .container-lg,\n.navbar > .container-xl,\n.navbar > .container-xxl {\n display: flex;\n flex-wrap: inherit;\n align-items: center;\n justify-content: space-between;\n}\n.navbar-brand {\n padding-top: 0.3125rem;\n padding-bottom: 0.3125rem;\n margin-right: 1rem;\n font-size: 1.25rem;\n text-decoration: none;\n white-space: nowrap;\n}\n.navbar-nav {\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n.navbar-nav .nav-link {\n padding-right: 0;\n padding-left: 0;\n}\n.navbar-nav .dropdown-menu {\n position: static;\n}\n\n.navbar-text {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n\n.navbar-collapse {\n flex-basis: 100%;\n flex-grow: 1;\n align-items: center;\n}\n\n.navbar-toggler {\n padding: 0.25rem 0.75rem;\n font-size: 1.25rem;\n line-height: 1;\n background-color: transparent;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n transition: box-shadow 0.15s ease-in-out;\n}\n@media (prefers-reduced-motion: reduce) {\n .navbar-toggler {\n transition: none;\n }\n}\n.navbar-toggler:hover {\n text-decoration: none;\n}\n.navbar-toggler:focus {\n text-decoration: none;\n outline: 0;\n box-shadow: 0 0 0 0.25rem;\n}\n\n.navbar-toggler-icon {\n display: inline-block;\n width: 1.5em;\n height: 1.5em;\n vertical-align: middle;\n background-repeat: no-repeat;\n background-position: center;\n background-size: 100%;\n}\n\n.navbar-nav-scroll {\n max-height: var(--bs-scroll-height, 75vh);\n overflow-y: auto;\n}\n\n@media (min-width: 576px) {\n .navbar-expand-sm {\n flex-wrap: nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-sm .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-sm .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-sm .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-sm .navbar-nav-scroll {\n overflow: visible;\n }\n .navbar-expand-sm .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-sm .navbar-toggler {\n display: none;\n }\n .navbar-expand-sm .offcanvas-header {\n display: none;\n }\n .navbar-expand-sm .offcanvas {\n position: inherit;\n bottom: 0;\n z-index: 1000;\n flex-grow: 1;\n visibility: visible !important;\n background-color: transparent;\n border-right: 0;\n border-left: 0;\n transition: none;\n transform: none;\n }\n .navbar-expand-sm .offcanvas-top,\n.navbar-expand-sm .offcanvas-bottom {\n height: auto;\n border-top: 0;\n border-bottom: 0;\n }\n .navbar-expand-sm .offcanvas-body {\n display: flex;\n flex-grow: 0;\n padding: 0;\n overflow-y: visible;\n }\n}\n@media (min-width: 768px) {\n .navbar-expand-md {\n flex-wrap: nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-md .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-md .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-md .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-md .navbar-nav-scroll {\n overflow: visible;\n }\n .navbar-expand-md .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-md .navbar-toggler {\n display: none;\n }\n .navbar-expand-md .offcanvas-header {\n display: none;\n }\n .navbar-expand-md .offcanvas {\n position: inherit;\n bottom: 0;\n z-index: 1000;\n flex-grow: 1;\n visibility: visible !important;\n background-color: transparent;\n border-right: 0;\n border-left: 0;\n transition: none;\n transform: none;\n }\n .navbar-expand-md .offcanvas-top,\n.navbar-expand-md .offcanvas-bottom {\n height: auto;\n border-top: 0;\n border-bottom: 0;\n }\n .navbar-expand-md .offcanvas-body {\n display: flex;\n flex-grow: 0;\n padding: 0;\n overflow-y: visible;\n }\n}\n@media (min-width: 992px) {\n .navbar-expand-lg {\n flex-wrap: nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-lg .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-lg .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-lg .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-lg .navbar-nav-scroll {\n overflow: visible;\n }\n .navbar-expand-lg .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-lg .navbar-toggler {\n display: none;\n }\n .navbar-expand-lg .offcanvas-header {\n display: none;\n }\n .navbar-expand-lg .offcanvas {\n position: inherit;\n bottom: 0;\n z-index: 1000;\n flex-grow: 1;\n visibility: visible !important;\n background-color: transparent;\n border-right: 0;\n border-left: 0;\n transition: none;\n transform: none;\n }\n .navbar-expand-lg .offcanvas-top,\n.navbar-expand-lg .offcanvas-bottom {\n height: auto;\n border-top: 0;\n border-bottom: 0;\n }\n .navbar-expand-lg .offcanvas-body {\n display: flex;\n flex-grow: 0;\n padding: 0;\n overflow-y: visible;\n }\n}\n@media (min-width: 1200px) {\n .navbar-expand-xl {\n flex-wrap: nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-xl .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-xl .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-xl .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-xl .navbar-nav-scroll {\n overflow: visible;\n }\n .navbar-expand-xl .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-xl .navbar-toggler {\n display: none;\n }\n .navbar-expand-xl .offcanvas-header {\n display: none;\n }\n .navbar-expand-xl .offcanvas {\n position: inherit;\n bottom: 0;\n z-index: 1000;\n flex-grow: 1;\n visibility: visible !important;\n background-color: transparent;\n border-right: 0;\n border-left: 0;\n transition: none;\n transform: none;\n }\n .navbar-expand-xl .offcanvas-top,\n.navbar-expand-xl .offcanvas-bottom {\n height: auto;\n border-top: 0;\n border-bottom: 0;\n }\n .navbar-expand-xl .offcanvas-body {\n display: flex;\n flex-grow: 0;\n padding: 0;\n overflow-y: visible;\n }\n}\n@media (min-width: 1400px) {\n .navbar-expand-xxl {\n flex-wrap: nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-xxl .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-xxl .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-xxl .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-xxl .navbar-nav-scroll {\n overflow: visible;\n }\n .navbar-expand-xxl .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-xxl .navbar-toggler {\n display: none;\n }\n .navbar-expand-xxl .offcanvas-header {\n display: none;\n }\n .navbar-expand-xxl .offcanvas {\n position: inherit;\n bottom: 0;\n z-index: 1000;\n flex-grow: 1;\n visibility: visible !important;\n background-color: transparent;\n border-right: 0;\n border-left: 0;\n transition: none;\n transform: none;\n }\n .navbar-expand-xxl .offcanvas-top,\n.navbar-expand-xxl .offcanvas-bottom {\n height: auto;\n border-top: 0;\n border-bottom: 0;\n }\n .navbar-expand-xxl .offcanvas-body {\n display: flex;\n flex-grow: 0;\n padding: 0;\n overflow-y: visible;\n }\n}\n.navbar-expand {\n flex-wrap: nowrap;\n justify-content: flex-start;\n}\n.navbar-expand .navbar-nav {\n flex-direction: row;\n}\n.navbar-expand .navbar-nav .dropdown-menu {\n position: absolute;\n}\n.navbar-expand .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n}\n.navbar-expand .navbar-nav-scroll {\n overflow: visible;\n}\n.navbar-expand .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n}\n.navbar-expand .navbar-toggler {\n display: none;\n}\n.navbar-expand .offcanvas-header {\n display: none;\n}\n.navbar-expand .offcanvas {\n position: inherit;\n bottom: 0;\n z-index: 1000;\n flex-grow: 1;\n visibility: visible !important;\n background-color: transparent;\n border-right: 0;\n border-left: 0;\n transition: none;\n transform: none;\n}\n.navbar-expand .offcanvas-top,\n.navbar-expand .offcanvas-bottom {\n height: auto;\n border-top: 0;\n border-bottom: 0;\n}\n.navbar-expand .offcanvas-body {\n display: flex;\n flex-grow: 0;\n padding: 0;\n overflow-y: visible;\n}\n\n.navbar-light .navbar-brand {\n color: rgba(0, 0, 0, 0.9);\n}\n.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus {\n color: rgba(0, 0, 0, 0.9);\n}\n.navbar-light .navbar-nav .nav-link {\n color: rgba(0, 0, 0, 0.55);\n}\n.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus {\n color: rgba(0, 0, 0, 0.7);\n}\n.navbar-light .navbar-nav .nav-link.disabled {\n color: rgba(0, 0, 0, 0.3);\n}\n.navbar-light .navbar-nav .show > .nav-link,\n.navbar-light .navbar-nav .nav-link.active {\n color: rgba(0, 0, 0, 0.9);\n}\n.navbar-light .navbar-toggler {\n color: rgba(0, 0, 0, 0.55);\n border-color: rgba(0, 0, 0, 0.1);\n}\n.navbar-light .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\n}\n.navbar-light .navbar-text {\n color: rgba(0, 0, 0, 0.55);\n}\n.navbar-light .navbar-text a,\n.navbar-light .navbar-text a:hover,\n.navbar-light .navbar-text a:focus {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-dark .navbar-brand {\n color: #fff;\n}\n.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus {\n color: #fff;\n}\n.navbar-dark .navbar-nav .nav-link {\n color: rgba(255, 255, 255, 0.55);\n}\n.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {\n color: rgba(255, 255, 255, 0.75);\n}\n.navbar-dark .navbar-nav .nav-link.disabled {\n color: rgba(255, 255, 255, 0.25);\n}\n.navbar-dark .navbar-nav .show > .nav-link,\n.navbar-dark .navbar-nav .nav-link.active {\n color: #fff;\n}\n.navbar-dark .navbar-toggler {\n color: rgba(255, 255, 255, 0.55);\n border-color: rgba(255, 255, 255, 0.1);\n}\n.navbar-dark .navbar-toggler-icon {\n background-image: 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\");\n}\n.navbar-dark .navbar-text {\n color: rgba(255, 255, 255, 0.55);\n}\n.navbar-dark .navbar-text a,\n.navbar-dark .navbar-text a:hover,\n.navbar-dark .navbar-text a:focus {\n color: #fff;\n}\n\n.card {\n position: relative;\n display: flex;\n flex-direction: column;\n min-width: 0;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: border-box;\n border: 1px solid rgba(0, 0, 0, 0.125);\n border-radius: 0.25rem;\n}\n.card > hr {\n margin-right: 0;\n margin-left: 0;\n}\n.card > .list-group {\n border-top: inherit;\n border-bottom: inherit;\n}\n.card > .list-group:first-child {\n border-top-width: 0;\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px);\n}\n.card > .list-group:last-child {\n border-bottom-width: 0;\n border-bottom-right-radius: calc(0.25rem - 1px);\n border-bottom-left-radius: calc(0.25rem - 1px);\n}\n.card > .card-header + .list-group,\n.card > .list-group + .card-footer {\n border-top: 0;\n}\n\n.card-body {\n flex: 1 1 auto;\n padding: 1rem 1rem;\n}\n\n.card-title {\n margin-bottom: 0.5rem;\n}\n\n.card-subtitle {\n margin-top: -0.25rem;\n margin-bottom: 0;\n}\n\n.card-text:last-child {\n margin-bottom: 0;\n}\n\n.card-link + .card-link {\n margin-left: 1rem;\n}\n\n.card-header {\n padding: 0.5rem 1rem;\n margin-bottom: 0;\n background-color: rgba(0, 0, 0, 0.03);\n border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n}\n.card-header:first-child {\n border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0;\n}\n\n.card-footer {\n padding: 0.5rem 1rem;\n background-color: rgba(0, 0, 0, 0.03);\n border-top: 1px solid rgba(0, 0, 0, 0.125);\n}\n.card-footer:last-child {\n border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px);\n}\n\n.card-header-tabs {\n margin-right: -0.5rem;\n margin-bottom: -0.5rem;\n margin-left: -0.5rem;\n border-bottom: 0;\n}\n\n.card-header-pills {\n margin-right: -0.5rem;\n margin-left: -0.5rem;\n}\n\n.card-img-overlay {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n padding: 1rem;\n border-radius: calc(0.25rem - 1px);\n}\n\n.card-img,\n.card-img-top,\n.card-img-bottom {\n width: 100%;\n}\n\n.card-img,\n.card-img-top {\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px);\n}\n\n.card-img,\n.card-img-bottom {\n border-bottom-right-radius: calc(0.25rem - 1px);\n border-bottom-left-radius: calc(0.25rem - 1px);\n}\n\n.card-group > .card {\n margin-bottom: 0.75rem;\n}\n@media (min-width: 576px) {\n .card-group {\n display: flex;\n flex-flow: row wrap;\n }\n .card-group > .card {\n flex: 1 0 0%;\n margin-bottom: 0;\n }\n .card-group > .card + .card {\n margin-left: 0;\n border-left: 0;\n }\n .card-group > .card:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n .card-group > .card:not(:last-child) .card-img-top,\n.card-group > .card:not(:last-child) .card-header {\n border-top-right-radius: 0;\n }\n .card-group > .card:not(:last-child) .card-img-bottom,\n.card-group > .card:not(:last-child) .card-footer {\n border-bottom-right-radius: 0;\n }\n .card-group > .card:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n .card-group > .card:not(:first-child) .card-img-top,\n.card-group > .card:not(:first-child) .card-header {\n border-top-left-radius: 0;\n }\n .card-group > .card:not(:first-child) .card-img-bottom,\n.card-group > .card:not(:first-child) .card-footer {\n border-bottom-left-radius: 0;\n }\n}\n\n.accordion-button {\n position: relative;\n display: flex;\n align-items: center;\n width: 100%;\n padding: 1rem 1.25rem;\n font-size: 1rem;\n color: #212529;\n text-align: left;\n background-color: #fff;\n border: 0;\n border-radius: 0;\n overflow-anchor: none;\n 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;\n}\n@media (prefers-reduced-motion: reduce) {\n .accordion-button {\n transition: none;\n }\n}\n.accordion-button:not(.collapsed) {\n color: #0c63e4;\n background-color: #e7f1ff;\n box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.125);\n}\n.accordion-button:not(.collapsed)::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%230c63e4'%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\");\n transform: rotate(-180deg);\n}\n.accordion-button::after {\n flex-shrink: 0;\n width: 1.25rem;\n height: 1.25rem;\n margin-left: auto;\n content: \"\";\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23212529'%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\");\n background-repeat: no-repeat;\n background-size: 1.25rem;\n transition: transform 0.2s ease-in-out;\n}\n@media (prefers-reduced-motion: reduce) {\n .accordion-button::after {\n transition: none;\n }\n}\n.accordion-button:hover {\n z-index: 2;\n}\n.accordion-button:focus {\n z-index: 3;\n border-color: #86b7fe;\n outline: 0;\n box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);\n}\n\n.accordion-header {\n margin-bottom: 0;\n}\n\n.accordion-item {\n background-color: #fff;\n border: 1px solid rgba(0, 0, 0, 0.125);\n}\n.accordion-item:first-of-type {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n.accordion-item:first-of-type .accordion-button {\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px);\n}\n.accordion-item:not(:first-of-type) {\n border-top: 0;\n}\n.accordion-item:last-of-type {\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n.accordion-item:last-of-type .accordion-button.collapsed {\n border-bottom-right-radius: calc(0.25rem - 1px);\n border-bottom-left-radius: calc(0.25rem - 1px);\n}\n.accordion-item:last-of-type .accordion-collapse {\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.accordion-body {\n padding: 1rem 1.25rem;\n}\n\n.accordion-flush .accordion-collapse {\n border-width: 0;\n}\n.accordion-flush .accordion-item {\n border-right: 0;\n border-left: 0;\n border-radius: 0;\n}\n.accordion-flush .accordion-item:first-child {\n border-top: 0;\n}\n.accordion-flush .accordion-item:last-child {\n border-bottom: 0;\n}\n.accordion-flush .accordion-item .accordion-button {\n border-radius: 0;\n}\n\n.breadcrumb {\n display: flex;\n flex-wrap: wrap;\n padding: 0 0;\n margin-bottom: 1rem;\n list-style: none;\n}\n\n.breadcrumb-item + .breadcrumb-item {\n padding-left: 0.5rem;\n}\n.breadcrumb-item + .breadcrumb-item::before {\n float: left;\n padding-right: 0.5rem;\n color: #6c757d;\n content: var(--bs-breadcrumb-divider, \"/\") /* rtl: var(--bs-breadcrumb-divider, \"/\") */;\n}\n.breadcrumb-item.active {\n color: #6c757d;\n}\n\n.pagination {\n display: flex;\n padding-left: 0;\n list-style: none;\n}\n\n.page-link {\n position: relative;\n display: block;\n color: #0d6efd;\n text-decoration: none;\n background-color: #fff;\n border: 1px solid #dee2e6;\n 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;\n}\n@media (prefers-reduced-motion: reduce) {\n .page-link {\n transition: none;\n }\n}\n.page-link:hover {\n z-index: 2;\n color: #0a58ca;\n background-color: #e9ecef;\n border-color: #dee2e6;\n}\n.page-link:focus {\n z-index: 3;\n color: #0a58ca;\n background-color: #e9ecef;\n outline: 0;\n box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);\n}\n\n.page-item:not(:first-child) .page-link {\n margin-left: -1px;\n}\n.page-item.active .page-link {\n z-index: 3;\n color: #fff;\n background-color: #0d6efd;\n border-color: #0d6efd;\n}\n.page-item.disabled .page-link {\n color: #6c757d;\n pointer-events: none;\n background-color: #fff;\n border-color: #dee2e6;\n}\n\n.page-link {\n padding: 0.375rem 0.75rem;\n}\n\n.page-item:first-child .page-link {\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n.page-item:last-child .page-link {\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n}\n\n.pagination-lg .page-link {\n padding: 0.75rem 1.5rem;\n font-size: 1.25rem;\n}\n.pagination-lg .page-item:first-child .page-link {\n border-top-left-radius: 0.3rem;\n border-bottom-left-radius: 0.3rem;\n}\n.pagination-lg .page-item:last-child .page-link {\n border-top-right-radius: 0.3rem;\n border-bottom-right-radius: 0.3rem;\n}\n\n.pagination-sm .page-link {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n}\n.pagination-sm .page-item:first-child .page-link {\n border-top-left-radius: 0.2rem;\n border-bottom-left-radius: 0.2rem;\n}\n.pagination-sm .page-item:last-child .page-link {\n border-top-right-radius: 0.2rem;\n border-bottom-right-radius: 0.2rem;\n}\n\n.badge {\n display: inline-block;\n padding: 0.35em 0.65em;\n font-size: 0.75em;\n font-weight: 700;\n line-height: 1;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: 0.25rem;\n}\n.badge:empty {\n display: none;\n}\n\n.btn .badge {\n position: relative;\n top: -1px;\n}\n\n.alert {\n position: relative;\n padding: 1rem 1rem;\n margin-bottom: 1rem;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n}\n\n.alert-heading {\n color: inherit;\n}\n\n.alert-link {\n font-weight: 700;\n}\n\n.alert-dismissible {\n padding-right: 3rem;\n}\n.alert-dismissible .btn-close {\n position: absolute;\n top: 0;\n right: 0;\n z-index: 2;\n padding: 1.25rem 1rem;\n}\n\n.alert-primary {\n color: #084298;\n background-color: #cfe2ff;\n border-color: #b6d4fe;\n}\n.alert-primary .alert-link {\n color: #06357a;\n}\n\n.alert-secondary {\n color: #41464b;\n background-color: #e2e3e5;\n border-color: #d3d6d8;\n}\n.alert-secondary .alert-link {\n color: #34383c;\n}\n\n.alert-success {\n color: #0f5132;\n background-color: #d1e7dd;\n border-color: #badbcc;\n}\n.alert-success .alert-link {\n color: #0c4128;\n}\n\n.alert-info {\n color: #055160;\n background-color: #cff4fc;\n border-color: #b6effb;\n}\n.alert-info .alert-link {\n color: #04414d;\n}\n\n.alert-warning {\n color: #664d03;\n background-color: #fff3cd;\n border-color: #ffecb5;\n}\n.alert-warning .alert-link {\n color: #523e02;\n}\n\n.alert-danger {\n color: #842029;\n background-color: #f8d7da;\n border-color: #f5c2c7;\n}\n.alert-danger .alert-link {\n color: #6a1a21;\n}\n\n.alert-light {\n color: #636464;\n background-color: #fefefe;\n border-color: #fdfdfe;\n}\n.alert-light .alert-link {\n color: #4f5050;\n}\n\n.alert-dark {\n color: #141619;\n background-color: #d3d3d4;\n border-color: #bcbebf;\n}\n.alert-dark .alert-link {\n color: #101214;\n}\n\n@keyframes progress-bar-stripes {\n 0% {\n background-position-x: 1rem;\n }\n}\n.progress {\n display: flex;\n height: 1rem;\n overflow: hidden;\n font-size: 0.75rem;\n background-color: #e9ecef;\n border-radius: 0.25rem;\n}\n\n.progress-bar {\n display: flex;\n flex-direction: column;\n justify-content: center;\n overflow: hidden;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n background-color: #0d6efd;\n transition: width 0.6s ease;\n}\n@media (prefers-reduced-motion: reduce) {\n .progress-bar {\n transition: none;\n }\n}\n\n.progress-bar-striped {\n 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);\n background-size: 1rem 1rem;\n}\n\n.progress-bar-animated {\n animation: 1s linear infinite progress-bar-stripes;\n}\n@media (prefers-reduced-motion: reduce) {\n .progress-bar-animated {\n animation: none;\n }\n}\n\n.list-group {\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n border-radius: 0.25rem;\n}\n\n.list-group-numbered {\n list-style-type: none;\n counter-reset: section;\n}\n.list-group-numbered > li::before {\n content: counters(section, \".\") \". \";\n counter-increment: section;\n}\n\n.list-group-item-action {\n width: 100%;\n color: #495057;\n text-align: inherit;\n}\n.list-group-item-action:hover, .list-group-item-action:focus {\n z-index: 1;\n color: #495057;\n text-decoration: none;\n background-color: #f8f9fa;\n}\n.list-group-item-action:active {\n color: #212529;\n background-color: #e9ecef;\n}\n\n.list-group-item {\n position: relative;\n display: block;\n padding: 0.5rem 1rem;\n color: #212529;\n text-decoration: none;\n background-color: #fff;\n border: 1px solid rgba(0, 0, 0, 0.125);\n}\n.list-group-item:first-child {\n border-top-left-radius: inherit;\n border-top-right-radius: inherit;\n}\n.list-group-item:last-child {\n border-bottom-right-radius: inherit;\n border-bottom-left-radius: inherit;\n}\n.list-group-item.disabled, .list-group-item:disabled {\n color: #6c757d;\n pointer-events: none;\n background-color: #fff;\n}\n.list-group-item.active {\n z-index: 2;\n color: #fff;\n background-color: #0d6efd;\n border-color: #0d6efd;\n}\n.list-group-item + .list-group-item {\n border-top-width: 0;\n}\n.list-group-item + .list-group-item.active {\n margin-top: -1px;\n border-top-width: 1px;\n}\n\n.list-group-horizontal {\n flex-direction: row;\n}\n.list-group-horizontal > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n}\n.list-group-horizontal > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n}\n.list-group-horizontal > .list-group-item.active {\n margin-top: 0;\n}\n.list-group-horizontal > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n}\n.list-group-horizontal > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n}\n\n@media (min-width: 576px) {\n .list-group-horizontal-sm {\n flex-direction: row;\n }\n .list-group-horizontal-sm > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-sm > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-sm > .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-sm > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-sm > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n@media (min-width: 768px) {\n .list-group-horizontal-md {\n flex-direction: row;\n }\n .list-group-horizontal-md > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-md > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-md > .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-md > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-md > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n@media (min-width: 992px) {\n .list-group-horizontal-lg {\n flex-direction: row;\n }\n .list-group-horizontal-lg > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-lg > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-lg > .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-lg > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-lg > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n@media (min-width: 1200px) {\n .list-group-horizontal-xl {\n flex-direction: row;\n }\n .list-group-horizontal-xl > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-xl > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-xl > .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-xl > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-xl > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n@media (min-width: 1400px) {\n .list-group-horizontal-xxl {\n flex-direction: row;\n }\n .list-group-horizontal-xxl > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-xxl > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-xxl > .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-xxl > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-xxl > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n.list-group-flush {\n border-radius: 0;\n}\n.list-group-flush > .list-group-item {\n border-width: 0 0 1px;\n}\n.list-group-flush > .list-group-item:last-child {\n border-bottom-width: 0;\n}\n\n.list-group-item-primary {\n color: #084298;\n background-color: #cfe2ff;\n}\n.list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus {\n color: #084298;\n background-color: #bacbe6;\n}\n.list-group-item-primary.list-group-item-action.active {\n color: #fff;\n background-color: #084298;\n border-color: #084298;\n}\n\n.list-group-item-secondary {\n color: #41464b;\n background-color: #e2e3e5;\n}\n.list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus {\n color: #41464b;\n background-color: #cbccce;\n}\n.list-group-item-secondary.list-group-item-action.active {\n color: #fff;\n background-color: #41464b;\n border-color: #41464b;\n}\n\n.list-group-item-success {\n color: #0f5132;\n background-color: #d1e7dd;\n}\n.list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus {\n color: #0f5132;\n background-color: #bcd0c7;\n}\n.list-group-item-success.list-group-item-action.active {\n color: #fff;\n background-color: #0f5132;\n border-color: #0f5132;\n}\n\n.list-group-item-info {\n color: #055160;\n background-color: #cff4fc;\n}\n.list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus {\n color: #055160;\n background-color: #badce3;\n}\n.list-group-item-info.list-group-item-action.active {\n color: #fff;\n background-color: #055160;\n border-color: #055160;\n}\n\n.list-group-item-warning {\n color: #664d03;\n background-color: #fff3cd;\n}\n.list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus {\n color: #664d03;\n background-color: #e6dbb9;\n}\n.list-group-item-warning.list-group-item-action.active {\n color: #fff;\n background-color: #664d03;\n border-color: #664d03;\n}\n\n.list-group-item-danger {\n color: #842029;\n background-color: #f8d7da;\n}\n.list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus {\n color: #842029;\n background-color: #dfc2c4;\n}\n.list-group-item-danger.list-group-item-action.active {\n color: #fff;\n background-color: #842029;\n border-color: #842029;\n}\n\n.list-group-item-light {\n color: #636464;\n background-color: #fefefe;\n}\n.list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus {\n color: #636464;\n background-color: #e5e5e5;\n}\n.list-group-item-light.list-group-item-action.active {\n color: #fff;\n background-color: #636464;\n border-color: #636464;\n}\n\n.list-group-item-dark {\n color: #141619;\n background-color: #d3d3d4;\n}\n.list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus {\n color: #141619;\n background-color: #bebebf;\n}\n.list-group-item-dark.list-group-item-action.active {\n color: #fff;\n background-color: #141619;\n border-color: #141619;\n}\n\n.btn-close {\n box-sizing: content-box;\n width: 1em;\n height: 1em;\n padding: 0.25em 0.25em;\n color: #000;\n background: transparent 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 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e\") center/1em auto no-repeat;\n border: 0;\n border-radius: 0.25rem;\n opacity: 0.5;\n}\n.btn-close:hover {\n color: #000;\n text-decoration: none;\n opacity: 0.75;\n}\n.btn-close:focus {\n outline: 0;\n box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);\n opacity: 1;\n}\n.btn-close:disabled, .btn-close.disabled {\n pointer-events: none;\n user-select: none;\n opacity: 0.25;\n}\n\n.btn-close-white {\n filter: invert(1) grayscale(100%) brightness(200%);\n}\n\n.toast {\n width: 350px;\n max-width: 100%;\n font-size: 0.875rem;\n pointer-events: auto;\n background-color: rgba(255, 255, 255, 0.85);\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.1);\n box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);\n border-radius: 0.25rem;\n}\n.toast.showing {\n opacity: 0;\n}\n.toast:not(.show) {\n display: none;\n}\n\n.toast-container {\n width: max-content;\n max-width: 100%;\n pointer-events: none;\n}\n.toast-container > :not(:last-child) {\n margin-bottom: 0.75rem;\n}\n\n.toast-header {\n display: flex;\n align-items: center;\n padding: 0.5rem 0.75rem;\n color: #6c757d;\n background-color: rgba(255, 255, 255, 0.85);\n background-clip: padding-box;\n border-bottom: 1px solid rgba(0, 0, 0, 0.05);\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px);\n}\n.toast-header .btn-close {\n margin-right: -0.375rem;\n margin-left: 0.75rem;\n}\n\n.toast-body {\n padding: 0.75rem;\n word-wrap: break-word;\n}\n\n.modal {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1055;\n display: none;\n width: 100%;\n height: 100%;\n overflow-x: hidden;\n overflow-y: auto;\n outline: 0;\n}\n\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 0.5rem;\n pointer-events: none;\n}\n.modal.fade .modal-dialog {\n transition: transform 0.3s ease-out;\n transform: translate(0, -50px);\n}\n@media (prefers-reduced-motion: reduce) {\n .modal.fade .modal-dialog {\n transition: none;\n }\n}\n.modal.show .modal-dialog {\n transform: none;\n}\n.modal.modal-static .modal-dialog {\n transform: scale(1.02);\n}\n\n.modal-dialog-scrollable {\n height: calc(100% - 1rem);\n}\n.modal-dialog-scrollable .modal-content {\n max-height: 100%;\n overflow: hidden;\n}\n.modal-dialog-scrollable .modal-body {\n overflow-y: auto;\n}\n\n.modal-dialog-centered {\n display: flex;\n align-items: center;\n min-height: calc(100% - 1rem);\n}\n\n.modal-content {\n position: relative;\n display: flex;\n flex-direction: column;\n width: 100%;\n pointer-events: auto;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n outline: 0;\n}\n\n.modal-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1050;\n width: 100vw;\n height: 100vh;\n background-color: #000;\n}\n.modal-backdrop.fade {\n opacity: 0;\n}\n.modal-backdrop.show {\n opacity: 0.5;\n}\n\n.modal-header {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: space-between;\n padding: 1rem 1rem;\n border-bottom: 1px solid #dee2e6;\n border-top-left-radius: calc(0.3rem - 1px);\n border-top-right-radius: calc(0.3rem - 1px);\n}\n.modal-header .btn-close {\n padding: 0.5rem 0.5rem;\n margin: -0.5rem -0.5rem -0.5rem auto;\n}\n\n.modal-title {\n margin-bottom: 0;\n line-height: 1.5;\n}\n\n.modal-body {\n position: relative;\n flex: 1 1 auto;\n padding: 1rem;\n}\n\n.modal-footer {\n display: flex;\n flex-wrap: wrap;\n flex-shrink: 0;\n align-items: center;\n justify-content: flex-end;\n padding: 0.75rem;\n border-top: 1px solid #dee2e6;\n border-bottom-right-radius: calc(0.3rem - 1px);\n border-bottom-left-radius: calc(0.3rem - 1px);\n}\n.modal-footer > * {\n margin: 0.25rem;\n}\n\n@media (min-width: 576px) {\n .modal-dialog {\n max-width: 500px;\n margin: 1.75rem auto;\n }\n\n .modal-dialog-scrollable {\n height: calc(100% - 3.5rem);\n }\n\n .modal-dialog-centered {\n min-height: calc(100% - 3.5rem);\n }\n\n .modal-sm {\n max-width: 300px;\n }\n}\n@media (min-width: 992px) {\n .modal-lg,\n.modal-xl {\n max-width: 800px;\n }\n}\n@media (min-width: 1200px) {\n .modal-xl {\n max-width: 1140px;\n }\n}\n.modal-fullscreen {\n width: 100vw;\n max-width: none;\n height: 100%;\n margin: 0;\n}\n.modal-fullscreen .modal-content {\n height: 100%;\n border: 0;\n border-radius: 0;\n}\n.modal-fullscreen .modal-header {\n border-radius: 0;\n}\n.modal-fullscreen .modal-body {\n overflow-y: auto;\n}\n.modal-fullscreen .modal-footer {\n border-radius: 0;\n}\n\n@media (max-width: 575.98px) {\n .modal-fullscreen-sm-down {\n width: 100vw;\n max-width: none;\n height: 100%;\n margin: 0;\n }\n .modal-fullscreen-sm-down .modal-content {\n height: 100%;\n border: 0;\n border-radius: 0;\n }\n .modal-fullscreen-sm-down .modal-header {\n border-radius: 0;\n }\n .modal-fullscreen-sm-down .modal-body {\n overflow-y: auto;\n }\n .modal-fullscreen-sm-down .modal-footer {\n border-radius: 0;\n }\n}\n@media (max-width: 767.98px) {\n .modal-fullscreen-md-down {\n width: 100vw;\n max-width: none;\n height: 100%;\n margin: 0;\n }\n .modal-fullscreen-md-down .modal-content {\n height: 100%;\n border: 0;\n border-radius: 0;\n }\n .modal-fullscreen-md-down .modal-header {\n border-radius: 0;\n }\n .modal-fullscreen-md-down .modal-body {\n overflow-y: auto;\n }\n .modal-fullscreen-md-down .modal-footer {\n border-radius: 0;\n }\n}\n@media (max-width: 991.98px) {\n .modal-fullscreen-lg-down {\n width: 100vw;\n max-width: none;\n height: 100%;\n margin: 0;\n }\n .modal-fullscreen-lg-down .modal-content {\n height: 100%;\n border: 0;\n border-radius: 0;\n }\n .modal-fullscreen-lg-down .modal-header {\n border-radius: 0;\n }\n .modal-fullscreen-lg-down .modal-body {\n overflow-y: auto;\n }\n .modal-fullscreen-lg-down .modal-footer {\n border-radius: 0;\n }\n}\n@media (max-width: 1199.98px) {\n .modal-fullscreen-xl-down {\n width: 100vw;\n max-width: none;\n height: 100%;\n margin: 0;\n }\n .modal-fullscreen-xl-down .modal-content {\n height: 100%;\n border: 0;\n border-radius: 0;\n }\n .modal-fullscreen-xl-down .modal-header {\n border-radius: 0;\n }\n .modal-fullscreen-xl-down .modal-body {\n overflow-y: auto;\n }\n .modal-fullscreen-xl-down .modal-footer {\n border-radius: 0;\n }\n}\n@media (max-width: 1399.98px) {\n .modal-fullscreen-xxl-down {\n width: 100vw;\n max-width: none;\n height: 100%;\n margin: 0;\n }\n .modal-fullscreen-xxl-down .modal-content {\n height: 100%;\n border: 0;\n border-radius: 0;\n }\n .modal-fullscreen-xxl-down .modal-header {\n border-radius: 0;\n }\n .modal-fullscreen-xxl-down .modal-body {\n overflow-y: auto;\n }\n .modal-fullscreen-xxl-down .modal-footer {\n border-radius: 0;\n }\n}\n.tooltip {\n position: absolute;\n z-index: 1080;\n display: block;\n margin: 0;\n font-family: var(--bs-font-sans-serif);\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n opacity: 0;\n}\n.tooltip.show {\n opacity: 0.9;\n}\n.tooltip .tooltip-arrow {\n position: absolute;\n display: block;\n width: 0.8rem;\n height: 0.4rem;\n}\n.tooltip .tooltip-arrow::before {\n position: absolute;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n\n.bs-tooltip-top, .bs-tooltip-auto[data-popper-placement^=top] {\n padding: 0.4rem 0;\n}\n.bs-tooltip-top .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow {\n bottom: 0;\n}\n.bs-tooltip-top .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before {\n top: -1px;\n border-width: 0.4rem 0.4rem 0;\n border-top-color: #000;\n}\n\n.bs-tooltip-end, .bs-tooltip-auto[data-popper-placement^=right] {\n padding: 0 0.4rem;\n}\n.bs-tooltip-end .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow {\n left: 0;\n width: 0.4rem;\n height: 0.8rem;\n}\n.bs-tooltip-end .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before {\n right: -1px;\n border-width: 0.4rem 0.4rem 0.4rem 0;\n border-right-color: #000;\n}\n\n.bs-tooltip-bottom, .bs-tooltip-auto[data-popper-placement^=bottom] {\n padding: 0.4rem 0;\n}\n.bs-tooltip-bottom .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow {\n top: 0;\n}\n.bs-tooltip-bottom .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before {\n bottom: -1px;\n border-width: 0 0.4rem 0.4rem;\n border-bottom-color: #000;\n}\n\n.bs-tooltip-start, .bs-tooltip-auto[data-popper-placement^=left] {\n padding: 0 0.4rem;\n}\n.bs-tooltip-start .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow {\n right: 0;\n width: 0.4rem;\n height: 0.8rem;\n}\n.bs-tooltip-start .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before {\n left: -1px;\n border-width: 0.4rem 0 0.4rem 0.4rem;\n border-left-color: #000;\n}\n\n.tooltip-inner {\n max-width: 200px;\n padding: 0.25rem 0.5rem;\n color: #fff;\n text-align: center;\n background-color: #000;\n border-radius: 0.25rem;\n}\n\n.popover {\n position: absolute;\n top: 0;\n left: 0 /* rtl:ignore */;\n z-index: 1070;\n display: block;\n max-width: 276px;\n font-family: var(--bs-font-sans-serif);\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n}\n.popover .popover-arrow {\n position: absolute;\n display: block;\n width: 1rem;\n height: 0.5rem;\n}\n.popover .popover-arrow::before, .popover .popover-arrow::after {\n position: absolute;\n display: block;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n\n.bs-popover-top > .popover-arrow, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow {\n bottom: calc(-0.5rem - 1px);\n}\n.bs-popover-top > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::before {\n bottom: 0;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: rgba(0, 0, 0, 0.25);\n}\n.bs-popover-top > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::after {\n bottom: 1px;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: #fff;\n}\n\n.bs-popover-end > .popover-arrow, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow {\n left: calc(-0.5rem - 1px);\n width: 0.5rem;\n height: 1rem;\n}\n.bs-popover-end > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::before {\n left: 0;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: rgba(0, 0, 0, 0.25);\n}\n.bs-popover-end > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::after {\n left: 1px;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: #fff;\n}\n\n.bs-popover-bottom > .popover-arrow, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow {\n top: calc(-0.5rem - 1px);\n}\n.bs-popover-bottom > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::before {\n top: 0;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: rgba(0, 0, 0, 0.25);\n}\n.bs-popover-bottom > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::after {\n top: 1px;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: #fff;\n}\n.bs-popover-bottom .popover-header::before, .bs-popover-auto[data-popper-placement^=bottom] .popover-header::before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: 1rem;\n margin-left: -0.5rem;\n content: \"\";\n border-bottom: 1px solid #f0f0f0;\n}\n\n.bs-popover-start > .popover-arrow, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow {\n right: calc(-0.5rem - 1px);\n width: 0.5rem;\n height: 1rem;\n}\n.bs-popover-start > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::before {\n right: 0;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: rgba(0, 0, 0, 0.25);\n}\n.bs-popover-start > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::after {\n right: 1px;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: #fff;\n}\n\n.popover-header {\n padding: 0.5rem 1rem;\n margin-bottom: 0;\n font-size: 1rem;\n background-color: #f0f0f0;\n border-bottom: 1px solid rgba(0, 0, 0, 0.2);\n border-top-left-radius: calc(0.3rem - 1px);\n border-top-right-radius: calc(0.3rem - 1px);\n}\n.popover-header:empty {\n display: none;\n}\n\n.popover-body {\n padding: 1rem 1rem;\n color: #212529;\n}\n\n.carousel {\n position: relative;\n}\n\n.carousel.pointer-event {\n touch-action: pan-y;\n}\n\n.carousel-inner {\n position: relative;\n width: 100%;\n overflow: hidden;\n}\n.carousel-inner::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n.carousel-item {\n position: relative;\n display: none;\n float: left;\n width: 100%;\n margin-right: -100%;\n backface-visibility: hidden;\n transition: transform 0.6s ease-in-out;\n}\n@media (prefers-reduced-motion: reduce) {\n .carousel-item {\n transition: none;\n }\n}\n\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n display: block;\n}\n\n/* rtl:begin:ignore */\n.carousel-item-next:not(.carousel-item-start),\n.active.carousel-item-end {\n transform: translateX(100%);\n}\n\n.carousel-item-prev:not(.carousel-item-end),\n.active.carousel-item-start {\n transform: translateX(-100%);\n}\n\n/* rtl:end:ignore */\n.carousel-fade .carousel-item {\n opacity: 0;\n transition-property: opacity;\n transform: none;\n}\n.carousel-fade .carousel-item.active,\n.carousel-fade .carousel-item-next.carousel-item-start,\n.carousel-fade .carousel-item-prev.carousel-item-end {\n z-index: 1;\n opacity: 1;\n}\n.carousel-fade .active.carousel-item-start,\n.carousel-fade .active.carousel-item-end {\n z-index: 0;\n opacity: 0;\n transition: opacity 0s 0.6s;\n}\n@media (prefers-reduced-motion: reduce) {\n .carousel-fade .active.carousel-item-start,\n.carousel-fade .active.carousel-item-end {\n transition: none;\n }\n}\n\n.carousel-control-prev,\n.carousel-control-next {\n position: absolute;\n top: 0;\n bottom: 0;\n z-index: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 15%;\n padding: 0;\n color: #fff;\n text-align: center;\n background: none;\n border: 0;\n opacity: 0.5;\n transition: opacity 0.15s ease;\n}\n@media (prefers-reduced-motion: reduce) {\n .carousel-control-prev,\n.carousel-control-next {\n transition: none;\n }\n}\n.carousel-control-prev:hover, .carousel-control-prev:focus,\n.carousel-control-next:hover,\n.carousel-control-next:focus {\n color: #fff;\n text-decoration: none;\n outline: 0;\n opacity: 0.9;\n}\n\n.carousel-control-prev {\n left: 0;\n}\n\n.carousel-control-next {\n right: 0;\n}\n\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n background-repeat: no-repeat;\n background-position: 50%;\n background-size: 100% 100%;\n}\n\n/* rtl:options: {\n \"autoRename\": true,\n \"stringMap\":[ {\n \"name\" : \"prev-next\",\n \"search\" : \"prev\",\n \"replace\" : \"next\"\n } ]\n} */\n.carousel-control-prev-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e\");\n}\n\n.carousel-control-next-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e\");\n}\n\n.carousel-indicators {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 2;\n display: flex;\n justify-content: center;\n padding: 0;\n margin-right: 15%;\n margin-bottom: 1rem;\n margin-left: 15%;\n list-style: none;\n}\n.carousel-indicators [data-bs-target] {\n box-sizing: content-box;\n flex: 0 1 auto;\n width: 30px;\n height: 3px;\n padding: 0;\n margin-right: 3px;\n margin-left: 3px;\n text-indent: -999px;\n cursor: pointer;\n background-color: #fff;\n background-clip: padding-box;\n border: 0;\n border-top: 10px solid transparent;\n border-bottom: 10px solid transparent;\n opacity: 0.5;\n transition: opacity 0.6s ease;\n}\n@media (prefers-reduced-motion: reduce) {\n .carousel-indicators [data-bs-target] {\n transition: none;\n }\n}\n.carousel-indicators .active {\n opacity: 1;\n}\n\n.carousel-caption {\n position: absolute;\n right: 15%;\n bottom: 1.25rem;\n left: 15%;\n padding-top: 1.25rem;\n padding-bottom: 1.25rem;\n color: #fff;\n text-align: center;\n}\n\n.carousel-dark .carousel-control-prev-icon,\n.carousel-dark .carousel-control-next-icon {\n filter: invert(1) grayscale(100);\n}\n.carousel-dark .carousel-indicators [data-bs-target] {\n background-color: #000;\n}\n.carousel-dark .carousel-caption {\n color: #000;\n}\n\n@keyframes spinner-border {\n to {\n transform: rotate(360deg) /* rtl:ignore */;\n }\n}\n.spinner-border {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: -0.125em;\n border: 0.25em solid currentColor;\n border-right-color: transparent;\n border-radius: 50%;\n animation: 0.75s linear infinite spinner-border;\n}\n\n.spinner-border-sm {\n width: 1rem;\n height: 1rem;\n border-width: 0.2em;\n}\n\n@keyframes spinner-grow {\n 0% {\n transform: scale(0);\n }\n 50% {\n opacity: 1;\n transform: none;\n }\n}\n.spinner-grow {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: -0.125em;\n background-color: currentColor;\n border-radius: 50%;\n opacity: 0;\n animation: 0.75s linear infinite spinner-grow;\n}\n\n.spinner-grow-sm {\n width: 1rem;\n height: 1rem;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .spinner-border,\n.spinner-grow {\n animation-duration: 1.5s;\n }\n}\n.offcanvas {\n position: fixed;\n bottom: 0;\n z-index: 1045;\n display: flex;\n flex-direction: column;\n max-width: 100%;\n visibility: hidden;\n background-color: #fff;\n background-clip: padding-box;\n outline: 0;\n transition: transform 0.3s ease-in-out;\n}\n@media (prefers-reduced-motion: reduce) {\n .offcanvas {\n transition: none;\n }\n}\n\n.offcanvas-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1040;\n width: 100vw;\n height: 100vh;\n background-color: #000;\n}\n.offcanvas-backdrop.fade {\n opacity: 0;\n}\n.offcanvas-backdrop.show {\n opacity: 0.5;\n}\n\n.offcanvas-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 1rem 1rem;\n}\n.offcanvas-header .btn-close {\n padding: 0.5rem 0.5rem;\n margin-top: -0.5rem;\n margin-right: -0.5rem;\n margin-bottom: -0.5rem;\n}\n\n.offcanvas-title {\n margin-bottom: 0;\n line-height: 1.5;\n}\n\n.offcanvas-body {\n flex-grow: 1;\n padding: 1rem 1rem;\n overflow-y: auto;\n}\n\n.offcanvas-start {\n top: 0;\n left: 0;\n width: 400px;\n border-right: 1px solid rgba(0, 0, 0, 0.2);\n transform: translateX(-100%);\n}\n\n.offcanvas-end {\n top: 0;\n right: 0;\n width: 400px;\n border-left: 1px solid rgba(0, 0, 0, 0.2);\n transform: translateX(100%);\n}\n\n.offcanvas-top {\n top: 0;\n right: 0;\n left: 0;\n height: 30vh;\n max-height: 100%;\n border-bottom: 1px solid rgba(0, 0, 0, 0.2);\n transform: translateY(-100%);\n}\n\n.offcanvas-bottom {\n right: 0;\n left: 0;\n height: 30vh;\n max-height: 100%;\n border-top: 1px solid rgba(0, 0, 0, 0.2);\n transform: translateY(100%);\n}\n\n.offcanvas.show {\n transform: none;\n}\n\n.placeholder {\n display: inline-block;\n min-height: 1em;\n vertical-align: middle;\n cursor: wait;\n background-color: currentColor;\n opacity: 0.5;\n}\n.placeholder.btn::before {\n display: inline-block;\n content: \"\";\n}\n\n.placeholder-xs {\n min-height: 0.6em;\n}\n\n.placeholder-sm {\n min-height: 0.8em;\n}\n\n.placeholder-lg {\n min-height: 1.2em;\n}\n\n.placeholder-glow .placeholder {\n animation: placeholder-glow 2s ease-in-out infinite;\n}\n\n@keyframes placeholder-glow {\n 50% {\n opacity: 0.2;\n }\n}\n.placeholder-wave {\n mask-image: linear-gradient(130deg, #000 55%, rgba(0, 0, 0, 0.8) 75%, #000 95%);\n mask-size: 200% 100%;\n animation: placeholder-wave 2s linear infinite;\n}\n\n@keyframes placeholder-wave {\n 100% {\n mask-position: -200% 0%;\n }\n}\n.clearfix::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n.link-primary {\n color: #0d6efd;\n}\n.link-primary:hover, .link-primary:focus {\n color: #0a58ca;\n}\n\n.link-secondary {\n color: #6c757d;\n}\n.link-secondary:hover, .link-secondary:focus {\n color: #565e64;\n}\n\n.link-success {\n color: #198754;\n}\n.link-success:hover, .link-success:focus {\n color: #146c43;\n}\n\n.link-info {\n color: #0dcaf0;\n}\n.link-info:hover, .link-info:focus {\n color: #3dd5f3;\n}\n\n.link-warning {\n color: #ffc107;\n}\n.link-warning:hover, .link-warning:focus {\n color: #ffcd39;\n}\n\n.link-danger {\n color: #dc3545;\n}\n.link-danger:hover, .link-danger:focus {\n color: #b02a37;\n}\n\n.link-light {\n color: #f8f9fa;\n}\n.link-light:hover, .link-light:focus {\n color: #f9fafb;\n}\n\n.link-dark {\n color: #212529;\n}\n.link-dark:hover, .link-dark:focus {\n color: #1a1e21;\n}\n\n.ratio {\n position: relative;\n width: 100%;\n}\n.ratio::before {\n display: block;\n padding-top: var(--bs-aspect-ratio);\n content: \"\";\n}\n.ratio > * {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n}\n\n.ratio-1x1 {\n --bs-aspect-ratio: 100%;\n}\n\n.ratio-4x3 {\n --bs-aspect-ratio: calc(3 / 4 * 100%);\n}\n\n.ratio-16x9 {\n --bs-aspect-ratio: calc(9 / 16 * 100%);\n}\n\n.ratio-21x9 {\n --bs-aspect-ratio: calc(9 / 21 * 100%);\n}\n\n.fixed-top {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1030;\n}\n\n.fixed-bottom {\n position: fixed;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1030;\n}\n\n.sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n}\n\n@media (min-width: 576px) {\n .sticky-sm-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n}\n@media (min-width: 768px) {\n .sticky-md-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n}\n@media (min-width: 992px) {\n .sticky-lg-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n}\n@media (min-width: 1200px) {\n .sticky-xl-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n}\n@media (min-width: 1400px) {\n .sticky-xxl-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n}\n.hstack {\n display: flex;\n flex-direction: row;\n align-items: center;\n align-self: stretch;\n}\n\n.vstack {\n display: flex;\n flex: 1 1 auto;\n flex-direction: column;\n align-self: stretch;\n}\n\n.visually-hidden,\n.visually-hidden-focusable:not(:focus):not(:focus-within) {\n position: absolute !important;\n width: 1px !important;\n height: 1px !important;\n padding: 0 !important;\n margin: -1px !important;\n overflow: hidden !important;\n clip: rect(0, 0, 0, 0) !important;\n white-space: nowrap !important;\n border: 0 !important;\n}\n\n.stretched-link::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n content: \"\";\n}\n\n.text-truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.vr {\n display: inline-block;\n align-self: stretch;\n width: 1px;\n min-height: 1em;\n background-color: currentColor;\n opacity: 0.25;\n}\n\n.align-baseline {\n vertical-align: baseline !important;\n}\n\n.align-top {\n vertical-align: top !important;\n}\n\n.align-middle {\n vertical-align: middle !important;\n}\n\n.align-bottom {\n vertical-align: bottom !important;\n}\n\n.align-text-bottom {\n vertical-align: text-bottom !important;\n}\n\n.align-text-top {\n vertical-align: text-top !important;\n}\n\n.float-start {\n float: left !important;\n}\n\n.float-end {\n float: right !important;\n}\n\n.float-none {\n float: none !important;\n}\n\n.opacity-0 {\n opacity: 0 !important;\n}\n\n.opacity-25 {\n opacity: 0.25 !important;\n}\n\n.opacity-50 {\n opacity: 0.5 !important;\n}\n\n.opacity-75 {\n opacity: 0.75 !important;\n}\n\n.opacity-100 {\n opacity: 1 !important;\n}\n\n.overflow-auto {\n overflow: auto !important;\n}\n\n.overflow-hidden {\n overflow: hidden !important;\n}\n\n.overflow-visible {\n overflow: visible !important;\n}\n\n.overflow-scroll {\n overflow: scroll !important;\n}\n\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-block {\n display: block !important;\n}\n\n.d-grid {\n display: grid !important;\n}\n\n.d-table {\n display: table !important;\n}\n\n.d-table-row {\n display: table-row !important;\n}\n\n.d-table-cell {\n display: table-cell !important;\n}\n\n.d-flex {\n display: flex !important;\n}\n\n.d-inline-flex {\n display: inline-flex !important;\n}\n\n.d-none {\n display: none !important;\n}\n\n.shadow {\n box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;\n}\n\n.shadow-sm {\n box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;\n}\n\n.shadow-lg {\n box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important;\n}\n\n.shadow-none {\n box-shadow: none !important;\n}\n\n.position-static {\n position: static !important;\n}\n\n.position-relative {\n position: relative !important;\n}\n\n.position-absolute {\n position: absolute !important;\n}\n\n.position-fixed {\n position: fixed !important;\n}\n\n.position-sticky {\n position: sticky !important;\n}\n\n.top-0 {\n top: 0 !important;\n}\n\n.top-50 {\n top: 50% !important;\n}\n\n.top-100 {\n top: 100% !important;\n}\n\n.bottom-0 {\n bottom: 0 !important;\n}\n\n.bottom-50 {\n bottom: 50% !important;\n}\n\n.bottom-100 {\n bottom: 100% !important;\n}\n\n.start-0 {\n left: 0 !important;\n}\n\n.start-50 {\n left: 50% !important;\n}\n\n.start-100 {\n left: 100% !important;\n}\n\n.end-0 {\n right: 0 !important;\n}\n\n.end-50 {\n right: 50% !important;\n}\n\n.end-100 {\n right: 100% !important;\n}\n\n.translate-middle {\n transform: translate(-50%, -50%) !important;\n}\n\n.translate-middle-x {\n transform: translateX(-50%) !important;\n}\n\n.translate-middle-y {\n transform: translateY(-50%) !important;\n}\n\n.border {\n border: 1px solid #dee2e6 !important;\n}\n\n.border-0 {\n border: 0 !important;\n}\n\n.border-top {\n border-top: 1px solid #dee2e6 !important;\n}\n\n.border-top-0 {\n border-top: 0 !important;\n}\n\n.border-end {\n border-right: 1px solid #dee2e6 !important;\n}\n\n.border-end-0 {\n border-right: 0 !important;\n}\n\n.border-bottom {\n border-bottom: 1px solid #dee2e6 !important;\n}\n\n.border-bottom-0 {\n border-bottom: 0 !important;\n}\n\n.border-start {\n border-left: 1px solid #dee2e6 !important;\n}\n\n.border-start-0 {\n border-left: 0 !important;\n}\n\n.border-primary {\n border-color: #0d6efd !important;\n}\n\n.border-secondary {\n border-color: #6c757d !important;\n}\n\n.border-success {\n border-color: #198754 !important;\n}\n\n.border-info {\n border-color: #0dcaf0 !important;\n}\n\n.border-warning {\n border-color: #ffc107 !important;\n}\n\n.border-danger {\n border-color: #dc3545 !important;\n}\n\n.border-light {\n border-color: #f8f9fa !important;\n}\n\n.border-dark {\n border-color: #212529 !important;\n}\n\n.border-white {\n border-color: #fff !important;\n}\n\n.border-1 {\n border-width: 1px !important;\n}\n\n.border-2 {\n border-width: 2px !important;\n}\n\n.border-3 {\n border-width: 3px !important;\n}\n\n.border-4 {\n border-width: 4px !important;\n}\n\n.border-5 {\n border-width: 5px !important;\n}\n\n.w-25 {\n width: 25% !important;\n}\n\n.w-50 {\n width: 50% !important;\n}\n\n.w-75 {\n width: 75% !important;\n}\n\n.w-100 {\n width: 100% !important;\n}\n\n.w-auto {\n width: auto !important;\n}\n\n.mw-100 {\n max-width: 100% !important;\n}\n\n.vw-100 {\n width: 100vw !important;\n}\n\n.min-vw-100 {\n min-width: 100vw !important;\n}\n\n.h-25 {\n height: 25% !important;\n}\n\n.h-50 {\n height: 50% !important;\n}\n\n.h-75 {\n height: 75% !important;\n}\n\n.h-100 {\n height: 100% !important;\n}\n\n.h-auto {\n height: auto !important;\n}\n\n.mh-100 {\n max-height: 100% !important;\n}\n\n.vh-100 {\n height: 100vh !important;\n}\n\n.min-vh-100 {\n min-height: 100vh !important;\n}\n\n.flex-fill {\n flex: 1 1 auto !important;\n}\n\n.flex-row {\n flex-direction: row !important;\n}\n\n.flex-column {\n flex-direction: column !important;\n}\n\n.flex-row-reverse {\n flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n flex-direction: column-reverse !important;\n}\n\n.flex-grow-0 {\n flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n flex-shrink: 1 !important;\n}\n\n.flex-wrap {\n flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n}\n\n.gap-0 {\n gap: 0 !important;\n}\n\n.gap-1 {\n gap: 0.25rem !important;\n}\n\n.gap-2 {\n gap: 0.5rem !important;\n}\n\n.gap-3 {\n gap: 1rem !important;\n}\n\n.gap-4 {\n gap: 1.5rem !important;\n}\n\n.gap-5 {\n gap: 3rem !important;\n}\n\n.justify-content-start {\n justify-content: flex-start !important;\n}\n\n.justify-content-end {\n justify-content: flex-end !important;\n}\n\n.justify-content-center {\n justify-content: center !important;\n}\n\n.justify-content-between {\n justify-content: space-between !important;\n}\n\n.justify-content-around {\n justify-content: space-around !important;\n}\n\n.justify-content-evenly {\n justify-content: space-evenly !important;\n}\n\n.align-items-start {\n align-items: flex-start !important;\n}\n\n.align-items-end {\n align-items: flex-end !important;\n}\n\n.align-items-center {\n align-items: center !important;\n}\n\n.align-items-baseline {\n align-items: baseline !important;\n}\n\n.align-items-stretch {\n align-items: stretch !important;\n}\n\n.align-content-start {\n align-content: flex-start !important;\n}\n\n.align-content-end {\n align-content: flex-end !important;\n}\n\n.align-content-center {\n align-content: center !important;\n}\n\n.align-content-between {\n align-content: space-between !important;\n}\n\n.align-content-around {\n align-content: space-around !important;\n}\n\n.align-content-stretch {\n align-content: stretch !important;\n}\n\n.align-self-auto {\n align-self: auto !important;\n}\n\n.align-self-start {\n align-self: flex-start !important;\n}\n\n.align-self-end {\n align-self: flex-end !important;\n}\n\n.align-self-center {\n align-self: center !important;\n}\n\n.align-self-baseline {\n align-self: baseline !important;\n}\n\n.align-self-stretch {\n align-self: stretch !important;\n}\n\n.order-first {\n order: -1 !important;\n}\n\n.order-0 {\n order: 0 !important;\n}\n\n.order-1 {\n order: 1 !important;\n}\n\n.order-2 {\n order: 2 !important;\n}\n\n.order-3 {\n order: 3 !important;\n}\n\n.order-4 {\n order: 4 !important;\n}\n\n.order-5 {\n order: 5 !important;\n}\n\n.order-last {\n order: 6 !important;\n}\n\n.m-0 {\n margin: 0 !important;\n}\n\n.m-1 {\n margin: 0.25rem !important;\n}\n\n.m-2 {\n margin: 0.5rem !important;\n}\n\n.m-3 {\n margin: 1rem !important;\n}\n\n.m-4 {\n margin: 1.5rem !important;\n}\n\n.m-5 {\n margin: 3rem !important;\n}\n\n.m-auto {\n margin: auto !important;\n}\n\n.mx-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n}\n\n.mx-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n}\n\n.mx-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n}\n\n.mx-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n}\n\n.mx-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n}\n\n.mx-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n}\n\n.mx-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n}\n\n.my-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n}\n\n.my-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n}\n\n.my-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n}\n\n.my-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n}\n\n.my-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n}\n\n.my-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n}\n\n.my-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n}\n\n.mt-0 {\n margin-top: 0 !important;\n}\n\n.mt-1 {\n margin-top: 0.25rem !important;\n}\n\n.mt-2 {\n margin-top: 0.5rem !important;\n}\n\n.mt-3 {\n margin-top: 1rem !important;\n}\n\n.mt-4 {\n margin-top: 1.5rem !important;\n}\n\n.mt-5 {\n margin-top: 3rem !important;\n}\n\n.mt-auto {\n margin-top: auto !important;\n}\n\n.me-0 {\n margin-right: 0 !important;\n}\n\n.me-1 {\n margin-right: 0.25rem !important;\n}\n\n.me-2 {\n margin-right: 0.5rem !important;\n}\n\n.me-3 {\n margin-right: 1rem !important;\n}\n\n.me-4 {\n margin-right: 1.5rem !important;\n}\n\n.me-5 {\n margin-right: 3rem !important;\n}\n\n.me-auto {\n margin-right: auto !important;\n}\n\n.mb-0 {\n margin-bottom: 0 !important;\n}\n\n.mb-1 {\n margin-bottom: 0.25rem !important;\n}\n\n.mb-2 {\n margin-bottom: 0.5rem !important;\n}\n\n.mb-3 {\n margin-bottom: 1rem !important;\n}\n\n.mb-4 {\n margin-bottom: 1.5rem !important;\n}\n\n.mb-5 {\n margin-bottom: 3rem !important;\n}\n\n.mb-auto {\n margin-bottom: auto !important;\n}\n\n.ms-0 {\n margin-left: 0 !important;\n}\n\n.ms-1 {\n margin-left: 0.25rem !important;\n}\n\n.ms-2 {\n margin-left: 0.5rem !important;\n}\n\n.ms-3 {\n margin-left: 1rem !important;\n}\n\n.ms-4 {\n margin-left: 1.5rem !important;\n}\n\n.ms-5 {\n margin-left: 3rem !important;\n}\n\n.ms-auto {\n margin-left: auto !important;\n}\n\n.p-0 {\n padding: 0 !important;\n}\n\n.p-1 {\n padding: 0.25rem !important;\n}\n\n.p-2 {\n padding: 0.5rem !important;\n}\n\n.p-3 {\n padding: 1rem !important;\n}\n\n.p-4 {\n padding: 1.5rem !important;\n}\n\n.p-5 {\n padding: 3rem !important;\n}\n\n.px-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n}\n\n.px-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n}\n\n.px-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n}\n\n.px-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n}\n\n.px-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n}\n\n.px-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n}\n\n.py-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n}\n\n.py-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n}\n\n.py-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n}\n\n.py-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n}\n\n.py-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n}\n\n.py-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n}\n\n.pt-0 {\n padding-top: 0 !important;\n}\n\n.pt-1 {\n padding-top: 0.25rem !important;\n}\n\n.pt-2 {\n padding-top: 0.5rem !important;\n}\n\n.pt-3 {\n padding-top: 1rem !important;\n}\n\n.pt-4 {\n padding-top: 1.5rem !important;\n}\n\n.pt-5 {\n padding-top: 3rem !important;\n}\n\n.pe-0 {\n padding-right: 0 !important;\n}\n\n.pe-1 {\n padding-right: 0.25rem !important;\n}\n\n.pe-2 {\n padding-right: 0.5rem !important;\n}\n\n.pe-3 {\n padding-right: 1rem !important;\n}\n\n.pe-4 {\n padding-right: 1.5rem !important;\n}\n\n.pe-5 {\n padding-right: 3rem !important;\n}\n\n.pb-0 {\n padding-bottom: 0 !important;\n}\n\n.pb-1 {\n padding-bottom: 0.25rem !important;\n}\n\n.pb-2 {\n padding-bottom: 0.5rem !important;\n}\n\n.pb-3 {\n padding-bottom: 1rem !important;\n}\n\n.pb-4 {\n padding-bottom: 1.5rem !important;\n}\n\n.pb-5 {\n padding-bottom: 3rem !important;\n}\n\n.ps-0 {\n padding-left: 0 !important;\n}\n\n.ps-1 {\n padding-left: 0.25rem !important;\n}\n\n.ps-2 {\n padding-left: 0.5rem !important;\n}\n\n.ps-3 {\n padding-left: 1rem !important;\n}\n\n.ps-4 {\n padding-left: 1.5rem !important;\n}\n\n.ps-5 {\n padding-left: 3rem !important;\n}\n\n.font-monospace {\n font-family: var(--bs-font-monospace) !important;\n}\n\n.fs-1 {\n font-size: calc(1.375rem + 1.5vw) !important;\n}\n\n.fs-2 {\n font-size: calc(1.325rem + 0.9vw) !important;\n}\n\n.fs-3 {\n font-size: calc(1.3rem + 0.6vw) !important;\n}\n\n.fs-4 {\n font-size: calc(1.275rem + 0.3vw) !important;\n}\n\n.fs-5 {\n font-size: 1.25rem !important;\n}\n\n.fs-6 {\n font-size: 1rem !important;\n}\n\n.fst-italic {\n font-style: italic !important;\n}\n\n.fst-normal {\n font-style: normal !important;\n}\n\n.fw-light {\n font-weight: 300 !important;\n}\n\n.fw-lighter {\n font-weight: lighter !important;\n}\n\n.fw-normal {\n font-weight: 400 !important;\n}\n\n.fw-bold {\n font-weight: 700 !important;\n}\n\n.fw-bolder {\n font-weight: bolder !important;\n}\n\n.lh-1 {\n line-height: 1 !important;\n}\n\n.lh-sm {\n line-height: 1.25 !important;\n}\n\n.lh-base {\n line-height: 1.5 !important;\n}\n\n.lh-lg {\n line-height: 2 !important;\n}\n\n.text-start {\n text-align: left !important;\n}\n\n.text-end {\n text-align: right !important;\n}\n\n.text-center {\n text-align: center !important;\n}\n\n.text-decoration-none {\n text-decoration: none !important;\n}\n\n.text-decoration-underline {\n text-decoration: underline !important;\n}\n\n.text-decoration-line-through {\n text-decoration: line-through !important;\n}\n\n.text-lowercase {\n text-transform: lowercase !important;\n}\n\n.text-uppercase {\n text-transform: uppercase !important;\n}\n\n.text-capitalize {\n text-transform: capitalize !important;\n}\n\n.text-wrap {\n white-space: normal !important;\n}\n\n.text-nowrap {\n white-space: nowrap !important;\n}\n\n/* rtl:begin:remove */\n.text-break {\n word-wrap: break-word !important;\n word-break: break-word !important;\n}\n\n/* rtl:end:remove */\n.text-primary {\n --bs-text-opacity: 1;\n color: rgba(var(--bs-primary-rgb), var(--bs-text-opacity)) !important;\n}\n\n.text-secondary {\n --bs-text-opacity: 1;\n color: rgba(var(--bs-secondary-rgb), var(--bs-text-opacity)) !important;\n}\n\n.text-success {\n --bs-text-opacity: 1;\n color: rgba(var(--bs-success-rgb), var(--bs-text-opacity)) !important;\n}\n\n.text-info {\n --bs-text-opacity: 1;\n color: rgba(var(--bs-info-rgb), var(--bs-text-opacity)) !important;\n}\n\n.text-warning {\n --bs-text-opacity: 1;\n color: rgba(var(--bs-warning-rgb), var(--bs-text-opacity)) !important;\n}\n\n.text-danger {\n --bs-text-opacity: 1;\n color: rgba(var(--bs-danger-rgb), var(--bs-text-opacity)) !important;\n}\n\n.text-light {\n --bs-text-opacity: 1;\n color: rgba(var(--bs-light-rgb), var(--bs-text-opacity)) !important;\n}\n\n.text-dark {\n --bs-text-opacity: 1;\n color: rgba(var(--bs-dark-rgb), var(--bs-text-opacity)) !important;\n}\n\n.text-black {\n --bs-text-opacity: 1;\n color: rgba(var(--bs-black-rgb), var(--bs-text-opacity)) !important;\n}\n\n.text-white {\n --bs-text-opacity: 1;\n color: rgba(var(--bs-white-rgb), var(--bs-text-opacity)) !important;\n}\n\n.text-body {\n --bs-text-opacity: 1;\n color: rgba(var(--bs-body-rgb), var(--bs-text-opacity)) !important;\n}\n\n.text-muted {\n --bs-text-opacity: 1;\n color: #6c757d !important;\n}\n\n.text-black-50 {\n --bs-text-opacity: 1;\n color: rgba(0, 0, 0, 0.5) !important;\n}\n\n.text-white-50 {\n --bs-text-opacity: 1;\n color: rgba(255, 255, 255, 0.5) !important;\n}\n\n.text-reset {\n --bs-text-opacity: 1;\n color: inherit !important;\n}\n\n.text-opacity-25 {\n --bs-text-opacity: 0.25;\n}\n\n.text-opacity-50 {\n --bs-text-opacity: 0.5;\n}\n\n.text-opacity-75 {\n --bs-text-opacity: 0.75;\n}\n\n.text-opacity-100 {\n --bs-text-opacity: 1;\n}\n\n.bg-primary {\n --bs-bg-opacity: 1;\n background-color: rgba(var(--bs-primary-rgb), var(--bs-bg-opacity)) !important;\n}\n\n.bg-secondary {\n --bs-bg-opacity: 1;\n background-color: rgba(var(--bs-secondary-rgb), var(--bs-bg-opacity)) !important;\n}\n\n.bg-success {\n --bs-bg-opacity: 1;\n background-color: rgba(var(--bs-success-rgb), var(--bs-bg-opacity)) !important;\n}\n\n.bg-info {\n --bs-bg-opacity: 1;\n background-color: rgba(var(--bs-info-rgb), var(--bs-bg-opacity)) !important;\n}\n\n.bg-warning {\n --bs-bg-opacity: 1;\n background-color: rgba(var(--bs-warning-rgb), var(--bs-bg-opacity)) !important;\n}\n\n.bg-danger {\n --bs-bg-opacity: 1;\n background-color: rgba(var(--bs-danger-rgb), var(--bs-bg-opacity)) !important;\n}\n\n.bg-light {\n --bs-bg-opacity: 1;\n background-color: rgba(var(--bs-light-rgb), var(--bs-bg-opacity)) !important;\n}\n\n.bg-dark {\n --bs-bg-opacity: 1;\n background-color: rgba(var(--bs-dark-rgb), var(--bs-bg-opacity)) !important;\n}\n\n.bg-black {\n --bs-bg-opacity: 1;\n background-color: rgba(var(--bs-black-rgb), var(--bs-bg-opacity)) !important;\n}\n\n.bg-white {\n --bs-bg-opacity: 1;\n background-color: rgba(var(--bs-white-rgb), var(--bs-bg-opacity)) !important;\n}\n\n.bg-body {\n --bs-bg-opacity: 1;\n background-color: rgba(var(--bs-body-rgb), var(--bs-bg-opacity)) !important;\n}\n\n.bg-transparent {\n --bs-bg-opacity: 1;\n background-color: transparent !important;\n}\n\n.bg-opacity-10 {\n --bs-bg-opacity: 0.1;\n}\n\n.bg-opacity-25 {\n --bs-bg-opacity: 0.25;\n}\n\n.bg-opacity-50 {\n --bs-bg-opacity: 0.5;\n}\n\n.bg-opacity-75 {\n --bs-bg-opacity: 0.75;\n}\n\n.bg-opacity-100 {\n --bs-bg-opacity: 1;\n}\n\n.bg-gradient {\n background-image: var(--bs-gradient) !important;\n}\n\n.user-select-all {\n user-select: all !important;\n}\n\n.user-select-auto {\n user-select: auto !important;\n}\n\n.user-select-none {\n user-select: none !important;\n}\n\n.pe-none {\n pointer-events: none !important;\n}\n\n.pe-auto {\n pointer-events: auto !important;\n}\n\n.rounded {\n border-radius: 0.25rem !important;\n}\n\n.rounded-0 {\n border-radius: 0 !important;\n}\n\n.rounded-1 {\n border-radius: 0.2rem !important;\n}\n\n.rounded-2 {\n border-radius: 0.25rem !important;\n}\n\n.rounded-3 {\n border-radius: 0.3rem !important;\n}\n\n.rounded-circle {\n border-radius: 50% !important;\n}\n\n.rounded-pill {\n border-radius: 50rem !important;\n}\n\n.rounded-top {\n border-top-left-radius: 0.25rem !important;\n border-top-right-radius: 0.25rem !important;\n}\n\n.rounded-end {\n border-top-right-radius: 0.25rem !important;\n border-bottom-right-radius: 0.25rem !important;\n}\n\n.rounded-bottom {\n border-bottom-right-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-start {\n border-bottom-left-radius: 0.25rem !important;\n border-top-left-radius: 0.25rem !important;\n}\n\n.visible {\n visibility: visible !important;\n}\n\n.invisible {\n visibility: hidden !important;\n}\n\n@media (min-width: 576px) {\n .float-sm-start {\n float: left !important;\n }\n\n .float-sm-end {\n float: right !important;\n }\n\n .float-sm-none {\n float: none !important;\n }\n\n .d-sm-inline {\n display: inline !important;\n }\n\n .d-sm-inline-block {\n display: inline-block !important;\n }\n\n .d-sm-block {\n display: block !important;\n }\n\n .d-sm-grid {\n display: grid !important;\n }\n\n .d-sm-table {\n display: table !important;\n }\n\n .d-sm-table-row {\n display: table-row !important;\n }\n\n .d-sm-table-cell {\n display: table-cell !important;\n }\n\n .d-sm-flex {\n display: flex !important;\n }\n\n .d-sm-inline-flex {\n display: inline-flex !important;\n }\n\n .d-sm-none {\n display: none !important;\n }\n\n .flex-sm-fill {\n flex: 1 1 auto !important;\n }\n\n .flex-sm-row {\n flex-direction: row !important;\n }\n\n .flex-sm-column {\n flex-direction: column !important;\n }\n\n .flex-sm-row-reverse {\n flex-direction: row-reverse !important;\n }\n\n .flex-sm-column-reverse {\n flex-direction: column-reverse !important;\n }\n\n .flex-sm-grow-0 {\n flex-grow: 0 !important;\n }\n\n .flex-sm-grow-1 {\n flex-grow: 1 !important;\n }\n\n .flex-sm-shrink-0 {\n flex-shrink: 0 !important;\n }\n\n .flex-sm-shrink-1 {\n flex-shrink: 1 !important;\n }\n\n .flex-sm-wrap {\n flex-wrap: wrap !important;\n }\n\n .flex-sm-nowrap {\n flex-wrap: nowrap !important;\n }\n\n .flex-sm-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n\n .gap-sm-0 {\n gap: 0 !important;\n }\n\n .gap-sm-1 {\n gap: 0.25rem !important;\n }\n\n .gap-sm-2 {\n gap: 0.5rem !important;\n }\n\n .gap-sm-3 {\n gap: 1rem !important;\n }\n\n .gap-sm-4 {\n gap: 1.5rem !important;\n }\n\n .gap-sm-5 {\n gap: 3rem !important;\n }\n\n .justify-content-sm-start {\n justify-content: flex-start !important;\n }\n\n .justify-content-sm-end {\n justify-content: flex-end !important;\n }\n\n .justify-content-sm-center {\n justify-content: center !important;\n }\n\n .justify-content-sm-between {\n justify-content: space-between !important;\n }\n\n .justify-content-sm-around {\n justify-content: space-around !important;\n }\n\n .justify-content-sm-evenly {\n justify-content: space-evenly !important;\n }\n\n .align-items-sm-start {\n align-items: flex-start !important;\n }\n\n .align-items-sm-end {\n align-items: flex-end !important;\n }\n\n .align-items-sm-center {\n align-items: center !important;\n }\n\n .align-items-sm-baseline {\n align-items: baseline !important;\n }\n\n .align-items-sm-stretch {\n align-items: stretch !important;\n }\n\n .align-content-sm-start {\n align-content: flex-start !important;\n }\n\n .align-content-sm-end {\n align-content: flex-end !important;\n }\n\n .align-content-sm-center {\n align-content: center !important;\n }\n\n .align-content-sm-between {\n align-content: space-between !important;\n }\n\n .align-content-sm-around {\n align-content: space-around !important;\n }\n\n .align-content-sm-stretch {\n align-content: stretch !important;\n }\n\n .align-self-sm-auto {\n align-self: auto !important;\n }\n\n .align-self-sm-start {\n align-self: flex-start !important;\n }\n\n .align-self-sm-end {\n align-self: flex-end !important;\n }\n\n .align-self-sm-center {\n align-self: center !important;\n }\n\n .align-self-sm-baseline {\n align-self: baseline !important;\n }\n\n .align-self-sm-stretch {\n align-self: stretch !important;\n }\n\n .order-sm-first {\n order: -1 !important;\n }\n\n .order-sm-0 {\n order: 0 !important;\n }\n\n .order-sm-1 {\n order: 1 !important;\n }\n\n .order-sm-2 {\n order: 2 !important;\n }\n\n .order-sm-3 {\n order: 3 !important;\n }\n\n .order-sm-4 {\n order: 4 !important;\n }\n\n .order-sm-5 {\n order: 5 !important;\n }\n\n .order-sm-last {\n order: 6 !important;\n }\n\n .m-sm-0 {\n margin: 0 !important;\n }\n\n .m-sm-1 {\n margin: 0.25rem !important;\n }\n\n .m-sm-2 {\n margin: 0.5rem !important;\n }\n\n .m-sm-3 {\n margin: 1rem !important;\n }\n\n .m-sm-4 {\n margin: 1.5rem !important;\n }\n\n .m-sm-5 {\n margin: 3rem !important;\n }\n\n .m-sm-auto {\n margin: auto !important;\n }\n\n .mx-sm-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n\n .mx-sm-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n }\n\n .mx-sm-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n }\n\n .mx-sm-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n }\n\n .mx-sm-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n }\n\n .mx-sm-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n }\n\n .mx-sm-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n\n .my-sm-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n\n .my-sm-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n\n .my-sm-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n\n .my-sm-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n\n .my-sm-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n\n .my-sm-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n\n .my-sm-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n\n .mt-sm-0 {\n margin-top: 0 !important;\n }\n\n .mt-sm-1 {\n margin-top: 0.25rem !important;\n }\n\n .mt-sm-2 {\n margin-top: 0.5rem !important;\n }\n\n .mt-sm-3 {\n margin-top: 1rem !important;\n }\n\n .mt-sm-4 {\n margin-top: 1.5rem !important;\n }\n\n .mt-sm-5 {\n margin-top: 3rem !important;\n }\n\n .mt-sm-auto {\n margin-top: auto !important;\n }\n\n .me-sm-0 {\n margin-right: 0 !important;\n }\n\n .me-sm-1 {\n margin-right: 0.25rem !important;\n }\n\n .me-sm-2 {\n margin-right: 0.5rem !important;\n }\n\n .me-sm-3 {\n margin-right: 1rem !important;\n }\n\n .me-sm-4 {\n margin-right: 1.5rem !important;\n }\n\n .me-sm-5 {\n margin-right: 3rem !important;\n }\n\n .me-sm-auto {\n margin-right: auto !important;\n }\n\n .mb-sm-0 {\n margin-bottom: 0 !important;\n }\n\n .mb-sm-1 {\n margin-bottom: 0.25rem !important;\n }\n\n .mb-sm-2 {\n margin-bottom: 0.5rem !important;\n }\n\n .mb-sm-3 {\n margin-bottom: 1rem !important;\n }\n\n .mb-sm-4 {\n margin-bottom: 1.5rem !important;\n }\n\n .mb-sm-5 {\n margin-bottom: 3rem !important;\n }\n\n .mb-sm-auto {\n margin-bottom: auto !important;\n }\n\n .ms-sm-0 {\n margin-left: 0 !important;\n }\n\n .ms-sm-1 {\n margin-left: 0.25rem !important;\n }\n\n .ms-sm-2 {\n margin-left: 0.5rem !important;\n }\n\n .ms-sm-3 {\n margin-left: 1rem !important;\n }\n\n .ms-sm-4 {\n margin-left: 1.5rem !important;\n }\n\n .ms-sm-5 {\n margin-left: 3rem !important;\n }\n\n .ms-sm-auto {\n margin-left: auto !important;\n }\n\n .p-sm-0 {\n padding: 0 !important;\n }\n\n .p-sm-1 {\n padding: 0.25rem !important;\n }\n\n .p-sm-2 {\n padding: 0.5rem !important;\n }\n\n .p-sm-3 {\n padding: 1rem !important;\n }\n\n .p-sm-4 {\n padding: 1.5rem !important;\n }\n\n .p-sm-5 {\n padding: 3rem !important;\n }\n\n .px-sm-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n\n .px-sm-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n }\n\n .px-sm-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n }\n\n .px-sm-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n }\n\n .px-sm-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n }\n\n .px-sm-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n }\n\n .py-sm-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n\n .py-sm-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n\n .py-sm-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n\n .py-sm-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n\n .py-sm-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n\n .py-sm-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n\n .pt-sm-0 {\n padding-top: 0 !important;\n }\n\n .pt-sm-1 {\n padding-top: 0.25rem !important;\n }\n\n .pt-sm-2 {\n padding-top: 0.5rem !important;\n }\n\n .pt-sm-3 {\n padding-top: 1rem !important;\n }\n\n .pt-sm-4 {\n padding-top: 1.5rem !important;\n }\n\n .pt-sm-5 {\n padding-top: 3rem !important;\n }\n\n .pe-sm-0 {\n padding-right: 0 !important;\n }\n\n .pe-sm-1 {\n padding-right: 0.25rem !important;\n }\n\n .pe-sm-2 {\n padding-right: 0.5rem !important;\n }\n\n .pe-sm-3 {\n padding-right: 1rem !important;\n }\n\n .pe-sm-4 {\n padding-right: 1.5rem !important;\n }\n\n .pe-sm-5 {\n padding-right: 3rem !important;\n }\n\n .pb-sm-0 {\n padding-bottom: 0 !important;\n }\n\n .pb-sm-1 {\n padding-bottom: 0.25rem !important;\n }\n\n .pb-sm-2 {\n padding-bottom: 0.5rem !important;\n }\n\n .pb-sm-3 {\n padding-bottom: 1rem !important;\n }\n\n .pb-sm-4 {\n padding-bottom: 1.5rem !important;\n }\n\n .pb-sm-5 {\n padding-bottom: 3rem !important;\n }\n\n .ps-sm-0 {\n padding-left: 0 !important;\n }\n\n .ps-sm-1 {\n padding-left: 0.25rem !important;\n }\n\n .ps-sm-2 {\n padding-left: 0.5rem !important;\n }\n\n .ps-sm-3 {\n padding-left: 1rem !important;\n }\n\n .ps-sm-4 {\n padding-left: 1.5rem !important;\n }\n\n .ps-sm-5 {\n padding-left: 3rem !important;\n }\n\n .text-sm-start {\n text-align: left !important;\n }\n\n .text-sm-end {\n text-align: right !important;\n }\n\n .text-sm-center {\n text-align: center !important;\n }\n}\n@media (min-width: 768px) {\n .float-md-start {\n float: left !important;\n }\n\n .float-md-end {\n float: right !important;\n }\n\n .float-md-none {\n float: none !important;\n }\n\n .d-md-inline {\n display: inline !important;\n }\n\n .d-md-inline-block {\n display: inline-block !important;\n }\n\n .d-md-block {\n display: block !important;\n }\n\n .d-md-grid {\n display: grid !important;\n }\n\n .d-md-table {\n display: table !important;\n }\n\n .d-md-table-row {\n display: table-row !important;\n }\n\n .d-md-table-cell {\n display: table-cell !important;\n }\n\n .d-md-flex {\n display: flex !important;\n }\n\n .d-md-inline-flex {\n display: inline-flex !important;\n }\n\n .d-md-none {\n display: none !important;\n }\n\n .flex-md-fill {\n flex: 1 1 auto !important;\n }\n\n .flex-md-row {\n flex-direction: row !important;\n }\n\n .flex-md-column {\n flex-direction: column !important;\n }\n\n .flex-md-row-reverse {\n flex-direction: row-reverse !important;\n }\n\n .flex-md-column-reverse {\n flex-direction: column-reverse !important;\n }\n\n .flex-md-grow-0 {\n flex-grow: 0 !important;\n }\n\n .flex-md-grow-1 {\n flex-grow: 1 !important;\n }\n\n .flex-md-shrink-0 {\n flex-shrink: 0 !important;\n }\n\n .flex-md-shrink-1 {\n flex-shrink: 1 !important;\n }\n\n .flex-md-wrap {\n flex-wrap: wrap !important;\n }\n\n .flex-md-nowrap {\n flex-wrap: nowrap !important;\n }\n\n .flex-md-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n\n .gap-md-0 {\n gap: 0 !important;\n }\n\n .gap-md-1 {\n gap: 0.25rem !important;\n }\n\n .gap-md-2 {\n gap: 0.5rem !important;\n }\n\n .gap-md-3 {\n gap: 1rem !important;\n }\n\n .gap-md-4 {\n gap: 1.5rem !important;\n }\n\n .gap-md-5 {\n gap: 3rem !important;\n }\n\n .justify-content-md-start {\n justify-content: flex-start !important;\n }\n\n .justify-content-md-end {\n justify-content: flex-end !important;\n }\n\n .justify-content-md-center {\n justify-content: center !important;\n }\n\n .justify-content-md-between {\n justify-content: space-between !important;\n }\n\n .justify-content-md-around {\n justify-content: space-around !important;\n }\n\n .justify-content-md-evenly {\n justify-content: space-evenly !important;\n }\n\n .align-items-md-start {\n align-items: flex-start !important;\n }\n\n .align-items-md-end {\n align-items: flex-end !important;\n }\n\n .align-items-md-center {\n align-items: center !important;\n }\n\n .align-items-md-baseline {\n align-items: baseline !important;\n }\n\n .align-items-md-stretch {\n align-items: stretch !important;\n }\n\n .align-content-md-start {\n align-content: flex-start !important;\n }\n\n .align-content-md-end {\n align-content: flex-end !important;\n }\n\n .align-content-md-center {\n align-content: center !important;\n }\n\n .align-content-md-between {\n align-content: space-between !important;\n }\n\n .align-content-md-around {\n align-content: space-around !important;\n }\n\n .align-content-md-stretch {\n align-content: stretch !important;\n }\n\n .align-self-md-auto {\n align-self: auto !important;\n }\n\n .align-self-md-start {\n align-self: flex-start !important;\n }\n\n .align-self-md-end {\n align-self: flex-end !important;\n }\n\n .align-self-md-center {\n align-self: center !important;\n }\n\n .align-self-md-baseline {\n align-self: baseline !important;\n }\n\n .align-self-md-stretch {\n align-self: stretch !important;\n }\n\n .order-md-first {\n order: -1 !important;\n }\n\n .order-md-0 {\n order: 0 !important;\n }\n\n .order-md-1 {\n order: 1 !important;\n }\n\n .order-md-2 {\n order: 2 !important;\n }\n\n .order-md-3 {\n order: 3 !important;\n }\n\n .order-md-4 {\n order: 4 !important;\n }\n\n .order-md-5 {\n order: 5 !important;\n }\n\n .order-md-last {\n order: 6 !important;\n }\n\n .m-md-0 {\n margin: 0 !important;\n }\n\n .m-md-1 {\n margin: 0.25rem !important;\n }\n\n .m-md-2 {\n margin: 0.5rem !important;\n }\n\n .m-md-3 {\n margin: 1rem !important;\n }\n\n .m-md-4 {\n margin: 1.5rem !important;\n }\n\n .m-md-5 {\n margin: 3rem !important;\n }\n\n .m-md-auto {\n margin: auto !important;\n }\n\n .mx-md-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n\n .mx-md-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n }\n\n .mx-md-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n }\n\n .mx-md-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n }\n\n .mx-md-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n }\n\n .mx-md-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n }\n\n .mx-md-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n\n .my-md-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n\n .my-md-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n\n .my-md-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n\n .my-md-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n\n .my-md-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n\n .my-md-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n\n .my-md-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n\n .mt-md-0 {\n margin-top: 0 !important;\n }\n\n .mt-md-1 {\n margin-top: 0.25rem !important;\n }\n\n .mt-md-2 {\n margin-top: 0.5rem !important;\n }\n\n .mt-md-3 {\n margin-top: 1rem !important;\n }\n\n .mt-md-4 {\n margin-top: 1.5rem !important;\n }\n\n .mt-md-5 {\n margin-top: 3rem !important;\n }\n\n .mt-md-auto {\n margin-top: auto !important;\n }\n\n .me-md-0 {\n margin-right: 0 !important;\n }\n\n .me-md-1 {\n margin-right: 0.25rem !important;\n }\n\n .me-md-2 {\n margin-right: 0.5rem !important;\n }\n\n .me-md-3 {\n margin-right: 1rem !important;\n }\n\n .me-md-4 {\n margin-right: 1.5rem !important;\n }\n\n .me-md-5 {\n margin-right: 3rem !important;\n }\n\n .me-md-auto {\n margin-right: auto !important;\n }\n\n .mb-md-0 {\n margin-bottom: 0 !important;\n }\n\n .mb-md-1 {\n margin-bottom: 0.25rem !important;\n }\n\n .mb-md-2 {\n margin-bottom: 0.5rem !important;\n }\n\n .mb-md-3 {\n margin-bottom: 1rem !important;\n }\n\n .mb-md-4 {\n margin-bottom: 1.5rem !important;\n }\n\n .mb-md-5 {\n margin-bottom: 3rem !important;\n }\n\n .mb-md-auto {\n margin-bottom: auto !important;\n }\n\n .ms-md-0 {\n margin-left: 0 !important;\n }\n\n .ms-md-1 {\n margin-left: 0.25rem !important;\n }\n\n .ms-md-2 {\n margin-left: 0.5rem !important;\n }\n\n .ms-md-3 {\n margin-left: 1rem !important;\n }\n\n .ms-md-4 {\n margin-left: 1.5rem !important;\n }\n\n .ms-md-5 {\n margin-left: 3rem !important;\n }\n\n .ms-md-auto {\n margin-left: auto !important;\n }\n\n .p-md-0 {\n padding: 0 !important;\n }\n\n .p-md-1 {\n padding: 0.25rem !important;\n }\n\n .p-md-2 {\n padding: 0.5rem !important;\n }\n\n .p-md-3 {\n padding: 1rem !important;\n }\n\n .p-md-4 {\n padding: 1.5rem !important;\n }\n\n .p-md-5 {\n padding: 3rem !important;\n }\n\n .px-md-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n\n .px-md-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n }\n\n .px-md-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n }\n\n .px-md-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n }\n\n .px-md-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n }\n\n .px-md-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n }\n\n .py-md-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n\n .py-md-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n\n .py-md-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n\n .py-md-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n\n .py-md-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n\n .py-md-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n\n .pt-md-0 {\n padding-top: 0 !important;\n }\n\n .pt-md-1 {\n padding-top: 0.25rem !important;\n }\n\n .pt-md-2 {\n padding-top: 0.5rem !important;\n }\n\n .pt-md-3 {\n padding-top: 1rem !important;\n }\n\n .pt-md-4 {\n padding-top: 1.5rem !important;\n }\n\n .pt-md-5 {\n padding-top: 3rem !important;\n }\n\n .pe-md-0 {\n padding-right: 0 !important;\n }\n\n .pe-md-1 {\n padding-right: 0.25rem !important;\n }\n\n .pe-md-2 {\n padding-right: 0.5rem !important;\n }\n\n .pe-md-3 {\n padding-right: 1rem !important;\n }\n\n .pe-md-4 {\n padding-right: 1.5rem !important;\n }\n\n .pe-md-5 {\n padding-right: 3rem !important;\n }\n\n .pb-md-0 {\n padding-bottom: 0 !important;\n }\n\n .pb-md-1 {\n padding-bottom: 0.25rem !important;\n }\n\n .pb-md-2 {\n padding-bottom: 0.5rem !important;\n }\n\n .pb-md-3 {\n padding-bottom: 1rem !important;\n }\n\n .pb-md-4 {\n padding-bottom: 1.5rem !important;\n }\n\n .pb-md-5 {\n padding-bottom: 3rem !important;\n }\n\n .ps-md-0 {\n padding-left: 0 !important;\n }\n\n .ps-md-1 {\n padding-left: 0.25rem !important;\n }\n\n .ps-md-2 {\n padding-left: 0.5rem !important;\n }\n\n .ps-md-3 {\n padding-left: 1rem !important;\n }\n\n .ps-md-4 {\n padding-left: 1.5rem !important;\n }\n\n .ps-md-5 {\n padding-left: 3rem !important;\n }\n\n .text-md-start {\n text-align: left !important;\n }\n\n .text-md-end {\n text-align: right !important;\n }\n\n .text-md-center {\n text-align: center !important;\n }\n}\n@media (min-width: 992px) {\n .float-lg-start {\n float: left !important;\n }\n\n .float-lg-end {\n float: right !important;\n }\n\n .float-lg-none {\n float: none !important;\n }\n\n .d-lg-inline {\n display: inline !important;\n }\n\n .d-lg-inline-block {\n display: inline-block !important;\n }\n\n .d-lg-block {\n display: block !important;\n }\n\n .d-lg-grid {\n display: grid !important;\n }\n\n .d-lg-table {\n display: table !important;\n }\n\n .d-lg-table-row {\n display: table-row !important;\n }\n\n .d-lg-table-cell {\n display: table-cell !important;\n }\n\n .d-lg-flex {\n display: flex !important;\n }\n\n .d-lg-inline-flex {\n display: inline-flex !important;\n }\n\n .d-lg-none {\n display: none !important;\n }\n\n .flex-lg-fill {\n flex: 1 1 auto !important;\n }\n\n .flex-lg-row {\n flex-direction: row !important;\n }\n\n .flex-lg-column {\n flex-direction: column !important;\n }\n\n .flex-lg-row-reverse {\n flex-direction: row-reverse !important;\n }\n\n .flex-lg-column-reverse {\n flex-direction: column-reverse !important;\n }\n\n .flex-lg-grow-0 {\n flex-grow: 0 !important;\n }\n\n .flex-lg-grow-1 {\n flex-grow: 1 !important;\n }\n\n .flex-lg-shrink-0 {\n flex-shrink: 0 !important;\n }\n\n .flex-lg-shrink-1 {\n flex-shrink: 1 !important;\n }\n\n .flex-lg-wrap {\n flex-wrap: wrap !important;\n }\n\n .flex-lg-nowrap {\n flex-wrap: nowrap !important;\n }\n\n .flex-lg-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n\n .gap-lg-0 {\n gap: 0 !important;\n }\n\n .gap-lg-1 {\n gap: 0.25rem !important;\n }\n\n .gap-lg-2 {\n gap: 0.5rem !important;\n }\n\n .gap-lg-3 {\n gap: 1rem !important;\n }\n\n .gap-lg-4 {\n gap: 1.5rem !important;\n }\n\n .gap-lg-5 {\n gap: 3rem !important;\n }\n\n .justify-content-lg-start {\n justify-content: flex-start !important;\n }\n\n .justify-content-lg-end {\n justify-content: flex-end !important;\n }\n\n .justify-content-lg-center {\n justify-content: center !important;\n }\n\n .justify-content-lg-between {\n justify-content: space-between !important;\n }\n\n .justify-content-lg-around {\n justify-content: space-around !important;\n }\n\n .justify-content-lg-evenly {\n justify-content: space-evenly !important;\n }\n\n .align-items-lg-start {\n align-items: flex-start !important;\n }\n\n .align-items-lg-end {\n align-items: flex-end !important;\n }\n\n .align-items-lg-center {\n align-items: center !important;\n }\n\n .align-items-lg-baseline {\n align-items: baseline !important;\n }\n\n .align-items-lg-stretch {\n align-items: stretch !important;\n }\n\n .align-content-lg-start {\n align-content: flex-start !important;\n }\n\n .align-content-lg-end {\n align-content: flex-end !important;\n }\n\n .align-content-lg-center {\n align-content: center !important;\n }\n\n .align-content-lg-between {\n align-content: space-between !important;\n }\n\n .align-content-lg-around {\n align-content: space-around !important;\n }\n\n .align-content-lg-stretch {\n align-content: stretch !important;\n }\n\n .align-self-lg-auto {\n align-self: auto !important;\n }\n\n .align-self-lg-start {\n align-self: flex-start !important;\n }\n\n .align-self-lg-end {\n align-self: flex-end !important;\n }\n\n .align-self-lg-center {\n align-self: center !important;\n }\n\n .align-self-lg-baseline {\n align-self: baseline !important;\n }\n\n .align-self-lg-stretch {\n align-self: stretch !important;\n }\n\n .order-lg-first {\n order: -1 !important;\n }\n\n .order-lg-0 {\n order: 0 !important;\n }\n\n .order-lg-1 {\n order: 1 !important;\n }\n\n .order-lg-2 {\n order: 2 !important;\n }\n\n .order-lg-3 {\n order: 3 !important;\n }\n\n .order-lg-4 {\n order: 4 !important;\n }\n\n .order-lg-5 {\n order: 5 !important;\n }\n\n .order-lg-last {\n order: 6 !important;\n }\n\n .m-lg-0 {\n margin: 0 !important;\n }\n\n .m-lg-1 {\n margin: 0.25rem !important;\n }\n\n .m-lg-2 {\n margin: 0.5rem !important;\n }\n\n .m-lg-3 {\n margin: 1rem !important;\n }\n\n .m-lg-4 {\n margin: 1.5rem !important;\n }\n\n .m-lg-5 {\n margin: 3rem !important;\n }\n\n .m-lg-auto {\n margin: auto !important;\n }\n\n .mx-lg-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n\n .mx-lg-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n }\n\n .mx-lg-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n }\n\n .mx-lg-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n }\n\n .mx-lg-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n }\n\n .mx-lg-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n }\n\n .mx-lg-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n\n .my-lg-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n\n .my-lg-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n\n .my-lg-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n\n .my-lg-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n\n .my-lg-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n\n .my-lg-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n\n .my-lg-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n\n .mt-lg-0 {\n margin-top: 0 !important;\n }\n\n .mt-lg-1 {\n margin-top: 0.25rem !important;\n }\n\n .mt-lg-2 {\n margin-top: 0.5rem !important;\n }\n\n .mt-lg-3 {\n margin-top: 1rem !important;\n }\n\n .mt-lg-4 {\n margin-top: 1.5rem !important;\n }\n\n .mt-lg-5 {\n margin-top: 3rem !important;\n }\n\n .mt-lg-auto {\n margin-top: auto !important;\n }\n\n .me-lg-0 {\n margin-right: 0 !important;\n }\n\n .me-lg-1 {\n margin-right: 0.25rem !important;\n }\n\n .me-lg-2 {\n margin-right: 0.5rem !important;\n }\n\n .me-lg-3 {\n margin-right: 1rem !important;\n }\n\n .me-lg-4 {\n margin-right: 1.5rem !important;\n }\n\n .me-lg-5 {\n margin-right: 3rem !important;\n }\n\n .me-lg-auto {\n margin-right: auto !important;\n }\n\n .mb-lg-0 {\n margin-bottom: 0 !important;\n }\n\n .mb-lg-1 {\n margin-bottom: 0.25rem !important;\n }\n\n .mb-lg-2 {\n margin-bottom: 0.5rem !important;\n }\n\n .mb-lg-3 {\n margin-bottom: 1rem !important;\n }\n\n .mb-lg-4 {\n margin-bottom: 1.5rem !important;\n }\n\n .mb-lg-5 {\n margin-bottom: 3rem !important;\n }\n\n .mb-lg-auto {\n margin-bottom: auto !important;\n }\n\n .ms-lg-0 {\n margin-left: 0 !important;\n }\n\n .ms-lg-1 {\n margin-left: 0.25rem !important;\n }\n\n .ms-lg-2 {\n margin-left: 0.5rem !important;\n }\n\n .ms-lg-3 {\n margin-left: 1rem !important;\n }\n\n .ms-lg-4 {\n margin-left: 1.5rem !important;\n }\n\n .ms-lg-5 {\n margin-left: 3rem !important;\n }\n\n .ms-lg-auto {\n margin-left: auto !important;\n }\n\n .p-lg-0 {\n padding: 0 !important;\n }\n\n .p-lg-1 {\n padding: 0.25rem !important;\n }\n\n .p-lg-2 {\n padding: 0.5rem !important;\n }\n\n .p-lg-3 {\n padding: 1rem !important;\n }\n\n .p-lg-4 {\n padding: 1.5rem !important;\n }\n\n .p-lg-5 {\n padding: 3rem !important;\n }\n\n .px-lg-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n\n .px-lg-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n }\n\n .px-lg-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n }\n\n .px-lg-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n }\n\n .px-lg-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n }\n\n .px-lg-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n }\n\n .py-lg-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n\n .py-lg-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n\n .py-lg-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n\n .py-lg-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n\n .py-lg-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n\n .py-lg-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n\n .pt-lg-0 {\n padding-top: 0 !important;\n }\n\n .pt-lg-1 {\n padding-top: 0.25rem !important;\n }\n\n .pt-lg-2 {\n padding-top: 0.5rem !important;\n }\n\n .pt-lg-3 {\n padding-top: 1rem !important;\n }\n\n .pt-lg-4 {\n padding-top: 1.5rem !important;\n }\n\n .pt-lg-5 {\n padding-top: 3rem !important;\n }\n\n .pe-lg-0 {\n padding-right: 0 !important;\n }\n\n .pe-lg-1 {\n padding-right: 0.25rem !important;\n }\n\n .pe-lg-2 {\n padding-right: 0.5rem !important;\n }\n\n .pe-lg-3 {\n padding-right: 1rem !important;\n }\n\n .pe-lg-4 {\n padding-right: 1.5rem !important;\n }\n\n .pe-lg-5 {\n padding-right: 3rem !important;\n }\n\n .pb-lg-0 {\n padding-bottom: 0 !important;\n }\n\n .pb-lg-1 {\n padding-bottom: 0.25rem !important;\n }\n\n .pb-lg-2 {\n padding-bottom: 0.5rem !important;\n }\n\n .pb-lg-3 {\n padding-bottom: 1rem !important;\n }\n\n .pb-lg-4 {\n padding-bottom: 1.5rem !important;\n }\n\n .pb-lg-5 {\n padding-bottom: 3rem !important;\n }\n\n .ps-lg-0 {\n padding-left: 0 !important;\n }\n\n .ps-lg-1 {\n padding-left: 0.25rem !important;\n }\n\n .ps-lg-2 {\n padding-left: 0.5rem !important;\n }\n\n .ps-lg-3 {\n padding-left: 1rem !important;\n }\n\n .ps-lg-4 {\n padding-left: 1.5rem !important;\n }\n\n .ps-lg-5 {\n padding-left: 3rem !important;\n }\n\n .text-lg-start {\n text-align: left !important;\n }\n\n .text-lg-end {\n text-align: right !important;\n }\n\n .text-lg-center {\n text-align: center !important;\n }\n}\n@media (min-width: 1200px) {\n .float-xl-start {\n float: left !important;\n }\n\n .float-xl-end {\n float: right !important;\n }\n\n .float-xl-none {\n float: none !important;\n }\n\n .d-xl-inline {\n display: inline !important;\n }\n\n .d-xl-inline-block {\n display: inline-block !important;\n }\n\n .d-xl-block {\n display: block !important;\n }\n\n .d-xl-grid {\n display: grid !important;\n }\n\n .d-xl-table {\n display: table !important;\n }\n\n .d-xl-table-row {\n display: table-row !important;\n }\n\n .d-xl-table-cell {\n display: table-cell !important;\n }\n\n .d-xl-flex {\n display: flex !important;\n }\n\n .d-xl-inline-flex {\n display: inline-flex !important;\n }\n\n .d-xl-none {\n display: none !important;\n }\n\n .flex-xl-fill {\n flex: 1 1 auto !important;\n }\n\n .flex-xl-row {\n flex-direction: row !important;\n }\n\n .flex-xl-column {\n flex-direction: column !important;\n }\n\n .flex-xl-row-reverse {\n flex-direction: row-reverse !important;\n }\n\n .flex-xl-column-reverse {\n flex-direction: column-reverse !important;\n }\n\n .flex-xl-grow-0 {\n flex-grow: 0 !important;\n }\n\n .flex-xl-grow-1 {\n flex-grow: 1 !important;\n }\n\n .flex-xl-shrink-0 {\n flex-shrink: 0 !important;\n }\n\n .flex-xl-shrink-1 {\n flex-shrink: 1 !important;\n }\n\n .flex-xl-wrap {\n flex-wrap: wrap !important;\n }\n\n .flex-xl-nowrap {\n flex-wrap: nowrap !important;\n }\n\n .flex-xl-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n\n .gap-xl-0 {\n gap: 0 !important;\n }\n\n .gap-xl-1 {\n gap: 0.25rem !important;\n }\n\n .gap-xl-2 {\n gap: 0.5rem !important;\n }\n\n .gap-xl-3 {\n gap: 1rem !important;\n }\n\n .gap-xl-4 {\n gap: 1.5rem !important;\n }\n\n .gap-xl-5 {\n gap: 3rem !important;\n }\n\n .justify-content-xl-start {\n justify-content: flex-start !important;\n }\n\n .justify-content-xl-end {\n justify-content: flex-end !important;\n }\n\n .justify-content-xl-center {\n justify-content: center !important;\n }\n\n .justify-content-xl-between {\n justify-content: space-between !important;\n }\n\n .justify-content-xl-around {\n justify-content: space-around !important;\n }\n\n .justify-content-xl-evenly {\n justify-content: space-evenly !important;\n }\n\n .align-items-xl-start {\n align-items: flex-start !important;\n }\n\n .align-items-xl-end {\n align-items: flex-end !important;\n }\n\n .align-items-xl-center {\n align-items: center !important;\n }\n\n .align-items-xl-baseline {\n align-items: baseline !important;\n }\n\n .align-items-xl-stretch {\n align-items: stretch !important;\n }\n\n .align-content-xl-start {\n align-content: flex-start !important;\n }\n\n .align-content-xl-end {\n align-content: flex-end !important;\n }\n\n .align-content-xl-center {\n align-content: center !important;\n }\n\n .align-content-xl-between {\n align-content: space-between !important;\n }\n\n .align-content-xl-around {\n align-content: space-around !important;\n }\n\n .align-content-xl-stretch {\n align-content: stretch !important;\n }\n\n .align-self-xl-auto {\n align-self: auto !important;\n }\n\n .align-self-xl-start {\n align-self: flex-start !important;\n }\n\n .align-self-xl-end {\n align-self: flex-end !important;\n }\n\n .align-self-xl-center {\n align-self: center !important;\n }\n\n .align-self-xl-baseline {\n align-self: baseline !important;\n }\n\n .align-self-xl-stretch {\n align-self: stretch !important;\n }\n\n .order-xl-first {\n order: -1 !important;\n }\n\n .order-xl-0 {\n order: 0 !important;\n }\n\n .order-xl-1 {\n order: 1 !important;\n }\n\n .order-xl-2 {\n order: 2 !important;\n }\n\n .order-xl-3 {\n order: 3 !important;\n }\n\n .order-xl-4 {\n order: 4 !important;\n }\n\n .order-xl-5 {\n order: 5 !important;\n }\n\n .order-xl-last {\n order: 6 !important;\n }\n\n .m-xl-0 {\n margin: 0 !important;\n }\n\n .m-xl-1 {\n margin: 0.25rem !important;\n }\n\n .m-xl-2 {\n margin: 0.5rem !important;\n }\n\n .m-xl-3 {\n margin: 1rem !important;\n }\n\n .m-xl-4 {\n margin: 1.5rem !important;\n }\n\n .m-xl-5 {\n margin: 3rem !important;\n }\n\n .m-xl-auto {\n margin: auto !important;\n }\n\n .mx-xl-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n\n .mx-xl-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n }\n\n .mx-xl-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n }\n\n .mx-xl-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n }\n\n .mx-xl-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n }\n\n .mx-xl-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n }\n\n .mx-xl-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n\n .my-xl-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n\n .my-xl-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n\n .my-xl-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n\n .my-xl-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n\n .my-xl-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n\n .my-xl-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n\n .my-xl-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n\n .mt-xl-0 {\n margin-top: 0 !important;\n }\n\n .mt-xl-1 {\n margin-top: 0.25rem !important;\n }\n\n .mt-xl-2 {\n margin-top: 0.5rem !important;\n }\n\n .mt-xl-3 {\n margin-top: 1rem !important;\n }\n\n .mt-xl-4 {\n margin-top: 1.5rem !important;\n }\n\n .mt-xl-5 {\n margin-top: 3rem !important;\n }\n\n .mt-xl-auto {\n margin-top: auto !important;\n }\n\n .me-xl-0 {\n margin-right: 0 !important;\n }\n\n .me-xl-1 {\n margin-right: 0.25rem !important;\n }\n\n .me-xl-2 {\n margin-right: 0.5rem !important;\n }\n\n .me-xl-3 {\n margin-right: 1rem !important;\n }\n\n .me-xl-4 {\n margin-right: 1.5rem !important;\n }\n\n .me-xl-5 {\n margin-right: 3rem !important;\n }\n\n .me-xl-auto {\n margin-right: auto !important;\n }\n\n .mb-xl-0 {\n margin-bottom: 0 !important;\n }\n\n .mb-xl-1 {\n margin-bottom: 0.25rem !important;\n }\n\n .mb-xl-2 {\n margin-bottom: 0.5rem !important;\n }\n\n .mb-xl-3 {\n margin-bottom: 1rem !important;\n }\n\n .mb-xl-4 {\n margin-bottom: 1.5rem !important;\n }\n\n .mb-xl-5 {\n margin-bottom: 3rem !important;\n }\n\n .mb-xl-auto {\n margin-bottom: auto !important;\n }\n\n .ms-xl-0 {\n margin-left: 0 !important;\n }\n\n .ms-xl-1 {\n margin-left: 0.25rem !important;\n }\n\n .ms-xl-2 {\n margin-left: 0.5rem !important;\n }\n\n .ms-xl-3 {\n margin-left: 1rem !important;\n }\n\n .ms-xl-4 {\n margin-left: 1.5rem !important;\n }\n\n .ms-xl-5 {\n margin-left: 3rem !important;\n }\n\n .ms-xl-auto {\n margin-left: auto !important;\n }\n\n .p-xl-0 {\n padding: 0 !important;\n }\n\n .p-xl-1 {\n padding: 0.25rem !important;\n }\n\n .p-xl-2 {\n padding: 0.5rem !important;\n }\n\n .p-xl-3 {\n padding: 1rem !important;\n }\n\n .p-xl-4 {\n padding: 1.5rem !important;\n }\n\n .p-xl-5 {\n padding: 3rem !important;\n }\n\n .px-xl-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n\n .px-xl-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n }\n\n .px-xl-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n }\n\n .px-xl-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n }\n\n .px-xl-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n }\n\n .px-xl-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n }\n\n .py-xl-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n\n .py-xl-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n\n .py-xl-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n\n .py-xl-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n\n .py-xl-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n\n .py-xl-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n\n .pt-xl-0 {\n padding-top: 0 !important;\n }\n\n .pt-xl-1 {\n padding-top: 0.25rem !important;\n }\n\n .pt-xl-2 {\n padding-top: 0.5rem !important;\n }\n\n .pt-xl-3 {\n padding-top: 1rem !important;\n }\n\n .pt-xl-4 {\n padding-top: 1.5rem !important;\n }\n\n .pt-xl-5 {\n padding-top: 3rem !important;\n }\n\n .pe-xl-0 {\n padding-right: 0 !important;\n }\n\n .pe-xl-1 {\n padding-right: 0.25rem !important;\n }\n\n .pe-xl-2 {\n padding-right: 0.5rem !important;\n }\n\n .pe-xl-3 {\n padding-right: 1rem !important;\n }\n\n .pe-xl-4 {\n padding-right: 1.5rem !important;\n }\n\n .pe-xl-5 {\n padding-right: 3rem !important;\n }\n\n .pb-xl-0 {\n padding-bottom: 0 !important;\n }\n\n .pb-xl-1 {\n padding-bottom: 0.25rem !important;\n }\n\n .pb-xl-2 {\n padding-bottom: 0.5rem !important;\n }\n\n .pb-xl-3 {\n padding-bottom: 1rem !important;\n }\n\n .pb-xl-4 {\n padding-bottom: 1.5rem !important;\n }\n\n .pb-xl-5 {\n padding-bottom: 3rem !important;\n }\n\n .ps-xl-0 {\n padding-left: 0 !important;\n }\n\n .ps-xl-1 {\n padding-left: 0.25rem !important;\n }\n\n .ps-xl-2 {\n padding-left: 0.5rem !important;\n }\n\n .ps-xl-3 {\n padding-left: 1rem !important;\n }\n\n .ps-xl-4 {\n padding-left: 1.5rem !important;\n }\n\n .ps-xl-5 {\n padding-left: 3rem !important;\n }\n\n .text-xl-start {\n text-align: left !important;\n }\n\n .text-xl-end {\n text-align: right !important;\n }\n\n .text-xl-center {\n text-align: center !important;\n }\n}\n@media (min-width: 1400px) {\n .float-xxl-start {\n float: left !important;\n }\n\n .float-xxl-end {\n float: right !important;\n }\n\n .float-xxl-none {\n float: none !important;\n }\n\n .d-xxl-inline {\n display: inline !important;\n }\n\n .d-xxl-inline-block {\n display: inline-block !important;\n }\n\n .d-xxl-block {\n display: block !important;\n }\n\n .d-xxl-grid {\n display: grid !important;\n }\n\n .d-xxl-table {\n display: table !important;\n }\n\n .d-xxl-table-row {\n display: table-row !important;\n }\n\n .d-xxl-table-cell {\n display: table-cell !important;\n }\n\n .d-xxl-flex {\n display: flex !important;\n }\n\n .d-xxl-inline-flex {\n display: inline-flex !important;\n }\n\n .d-xxl-none {\n display: none !important;\n }\n\n .flex-xxl-fill {\n flex: 1 1 auto !important;\n }\n\n .flex-xxl-row {\n flex-direction: row !important;\n }\n\n .flex-xxl-column {\n flex-direction: column !important;\n }\n\n .flex-xxl-row-reverse {\n flex-direction: row-reverse !important;\n }\n\n .flex-xxl-column-reverse {\n flex-direction: column-reverse !important;\n }\n\n .flex-xxl-grow-0 {\n flex-grow: 0 !important;\n }\n\n .flex-xxl-grow-1 {\n flex-grow: 1 !important;\n }\n\n .flex-xxl-shrink-0 {\n flex-shrink: 0 !important;\n }\n\n .flex-xxl-shrink-1 {\n flex-shrink: 1 !important;\n }\n\n .flex-xxl-wrap {\n flex-wrap: wrap !important;\n }\n\n .flex-xxl-nowrap {\n flex-wrap: nowrap !important;\n }\n\n .flex-xxl-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n\n .gap-xxl-0 {\n gap: 0 !important;\n }\n\n .gap-xxl-1 {\n gap: 0.25rem !important;\n }\n\n .gap-xxl-2 {\n gap: 0.5rem !important;\n }\n\n .gap-xxl-3 {\n gap: 1rem !important;\n }\n\n .gap-xxl-4 {\n gap: 1.5rem !important;\n }\n\n .gap-xxl-5 {\n gap: 3rem !important;\n }\n\n .justify-content-xxl-start {\n justify-content: flex-start !important;\n }\n\n .justify-content-xxl-end {\n justify-content: flex-end !important;\n }\n\n .justify-content-xxl-center {\n justify-content: center !important;\n }\n\n .justify-content-xxl-between {\n justify-content: space-between !important;\n }\n\n .justify-content-xxl-around {\n justify-content: space-around !important;\n }\n\n .justify-content-xxl-evenly {\n justify-content: space-evenly !important;\n }\n\n .align-items-xxl-start {\n align-items: flex-start !important;\n }\n\n .align-items-xxl-end {\n align-items: flex-end !important;\n }\n\n .align-items-xxl-center {\n align-items: center !important;\n }\n\n .align-items-xxl-baseline {\n align-items: baseline !important;\n }\n\n .align-items-xxl-stretch {\n align-items: stretch !important;\n }\n\n .align-content-xxl-start {\n align-content: flex-start !important;\n }\n\n .align-content-xxl-end {\n align-content: flex-end !important;\n }\n\n .align-content-xxl-center {\n align-content: center !important;\n }\n\n .align-content-xxl-between {\n align-content: space-between !important;\n }\n\n .align-content-xxl-around {\n align-content: space-around !important;\n }\n\n .align-content-xxl-stretch {\n align-content: stretch !important;\n }\n\n .align-self-xxl-auto {\n align-self: auto !important;\n }\n\n .align-self-xxl-start {\n align-self: flex-start !important;\n }\n\n .align-self-xxl-end {\n align-self: flex-end !important;\n }\n\n .align-self-xxl-center {\n align-self: center !important;\n }\n\n .align-self-xxl-baseline {\n align-self: baseline !important;\n }\n\n .align-self-xxl-stretch {\n align-self: stretch !important;\n }\n\n .order-xxl-first {\n order: -1 !important;\n }\n\n .order-xxl-0 {\n order: 0 !important;\n }\n\n .order-xxl-1 {\n order: 1 !important;\n }\n\n .order-xxl-2 {\n order: 2 !important;\n }\n\n .order-xxl-3 {\n order: 3 !important;\n }\n\n .order-xxl-4 {\n order: 4 !important;\n }\n\n .order-xxl-5 {\n order: 5 !important;\n }\n\n .order-xxl-last {\n order: 6 !important;\n }\n\n .m-xxl-0 {\n margin: 0 !important;\n }\n\n .m-xxl-1 {\n margin: 0.25rem !important;\n }\n\n .m-xxl-2 {\n margin: 0.5rem !important;\n }\n\n .m-xxl-3 {\n margin: 1rem !important;\n }\n\n .m-xxl-4 {\n margin: 1.5rem !important;\n }\n\n .m-xxl-5 {\n margin: 3rem !important;\n }\n\n .m-xxl-auto {\n margin: auto !important;\n }\n\n .mx-xxl-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n\n .mx-xxl-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n }\n\n .mx-xxl-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n }\n\n .mx-xxl-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n }\n\n .mx-xxl-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n }\n\n .mx-xxl-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n }\n\n .mx-xxl-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n\n .my-xxl-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n\n .my-xxl-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n\n .my-xxl-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n\n .my-xxl-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n\n .my-xxl-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n\n .my-xxl-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n\n .my-xxl-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n\n .mt-xxl-0 {\n margin-top: 0 !important;\n }\n\n .mt-xxl-1 {\n margin-top: 0.25rem !important;\n }\n\n .mt-xxl-2 {\n margin-top: 0.5rem !important;\n }\n\n .mt-xxl-3 {\n margin-top: 1rem !important;\n }\n\n .mt-xxl-4 {\n margin-top: 1.5rem !important;\n }\n\n .mt-xxl-5 {\n margin-top: 3rem !important;\n }\n\n .mt-xxl-auto {\n margin-top: auto !important;\n }\n\n .me-xxl-0 {\n margin-right: 0 !important;\n }\n\n .me-xxl-1 {\n margin-right: 0.25rem !important;\n }\n\n .me-xxl-2 {\n margin-right: 0.5rem !important;\n }\n\n .me-xxl-3 {\n margin-right: 1rem !important;\n }\n\n .me-xxl-4 {\n margin-right: 1.5rem !important;\n }\n\n .me-xxl-5 {\n margin-right: 3rem !important;\n }\n\n .me-xxl-auto {\n margin-right: auto !important;\n }\n\n .mb-xxl-0 {\n margin-bottom: 0 !important;\n }\n\n .mb-xxl-1 {\n margin-bottom: 0.25rem !important;\n }\n\n .mb-xxl-2 {\n margin-bottom: 0.5rem !important;\n }\n\n .mb-xxl-3 {\n margin-bottom: 1rem !important;\n }\n\n .mb-xxl-4 {\n margin-bottom: 1.5rem !important;\n }\n\n .mb-xxl-5 {\n margin-bottom: 3rem !important;\n }\n\n .mb-xxl-auto {\n margin-bottom: auto !important;\n }\n\n .ms-xxl-0 {\n margin-left: 0 !important;\n }\n\n .ms-xxl-1 {\n margin-left: 0.25rem !important;\n }\n\n .ms-xxl-2 {\n margin-left: 0.5rem !important;\n }\n\n .ms-xxl-3 {\n margin-left: 1rem !important;\n }\n\n .ms-xxl-4 {\n margin-left: 1.5rem !important;\n }\n\n .ms-xxl-5 {\n margin-left: 3rem !important;\n }\n\n .ms-xxl-auto {\n margin-left: auto !important;\n }\n\n .p-xxl-0 {\n padding: 0 !important;\n }\n\n .p-xxl-1 {\n padding: 0.25rem !important;\n }\n\n .p-xxl-2 {\n padding: 0.5rem !important;\n }\n\n .p-xxl-3 {\n padding: 1rem !important;\n }\n\n .p-xxl-4 {\n padding: 1.5rem !important;\n }\n\n .p-xxl-5 {\n padding: 3rem !important;\n }\n\n .px-xxl-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n\n .px-xxl-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n }\n\n .px-xxl-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n }\n\n .px-xxl-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n }\n\n .px-xxl-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n }\n\n .px-xxl-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n }\n\n .py-xxl-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n\n .py-xxl-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n\n .py-xxl-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n\n .py-xxl-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n\n .py-xxl-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n\n .py-xxl-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n\n .pt-xxl-0 {\n padding-top: 0 !important;\n }\n\n .pt-xxl-1 {\n padding-top: 0.25rem !important;\n }\n\n .pt-xxl-2 {\n padding-top: 0.5rem !important;\n }\n\n .pt-xxl-3 {\n padding-top: 1rem !important;\n }\n\n .pt-xxl-4 {\n padding-top: 1.5rem !important;\n }\n\n .pt-xxl-5 {\n padding-top: 3rem !important;\n }\n\n .pe-xxl-0 {\n padding-right: 0 !important;\n }\n\n .pe-xxl-1 {\n padding-right: 0.25rem !important;\n }\n\n .pe-xxl-2 {\n padding-right: 0.5rem !important;\n }\n\n .pe-xxl-3 {\n padding-right: 1rem !important;\n }\n\n .pe-xxl-4 {\n padding-right: 1.5rem !important;\n }\n\n .pe-xxl-5 {\n padding-right: 3rem !important;\n }\n\n .pb-xxl-0 {\n padding-bottom: 0 !important;\n }\n\n .pb-xxl-1 {\n padding-bottom: 0.25rem !important;\n }\n\n .pb-xxl-2 {\n padding-bottom: 0.5rem !important;\n }\n\n .pb-xxl-3 {\n padding-bottom: 1rem !important;\n }\n\n .pb-xxl-4 {\n padding-bottom: 1.5rem !important;\n }\n\n .pb-xxl-5 {\n padding-bottom: 3rem !important;\n }\n\n .ps-xxl-0 {\n padding-left: 0 !important;\n }\n\n .ps-xxl-1 {\n padding-left: 0.25rem !important;\n }\n\n .ps-xxl-2 {\n padding-left: 0.5rem !important;\n }\n\n .ps-xxl-3 {\n padding-left: 1rem !important;\n }\n\n .ps-xxl-4 {\n padding-left: 1.5rem !important;\n }\n\n .ps-xxl-5 {\n padding-left: 3rem !important;\n }\n\n .text-xxl-start {\n text-align: left !important;\n }\n\n .text-xxl-end {\n text-align: right !important;\n }\n\n .text-xxl-center {\n text-align: center !important;\n }\n}\n@media (min-width: 1200px) {\n .fs-1 {\n font-size: 2.5rem !important;\n }\n\n .fs-2 {\n font-size: 2rem !important;\n }\n\n .fs-3 {\n font-size: 1.75rem !important;\n }\n\n .fs-4 {\n font-size: 1.5rem !important;\n }\n}\n@media print {\n .d-print-inline {\n display: inline !important;\n }\n\n .d-print-inline-block {\n display: inline-block !important;\n }\n\n .d-print-block {\n display: block !important;\n }\n\n .d-print-grid {\n display: grid !important;\n }\n\n .d-print-table {\n display: table !important;\n }\n\n .d-print-table-row {\n display: table-row !important;\n }\n\n .d-print-table-cell {\n display: table-cell !important;\n }\n\n .d-print-flex {\n display: flex !important;\n }\n\n .d-print-inline-flex {\n display: inline-flex !important;\n }\n\n .d-print-none {\n display: none !important;\n }\n}\n\n/*# sourceMappingURL=bootstrap.css.map */\n","/*!\n * Bootstrap v5.1.0 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors\n * Copyright 2011-2021 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n\n// scss-docs-start import-stack\n// Configuration\n@import \"functions\";\n@import \"variables\";\n@import \"mixins\";\n@import \"utilities\";\n\n// Layout & components\n@import \"root\";\n@import \"reboot\";\n@import \"type\";\n@import \"images\";\n@import \"containers\";\n@import \"grid\";\n@import \"tables\";\n@import \"forms\";\n@import \"buttons\";\n@import \"transitions\";\n@import \"dropdown\";\n@import \"button-group\";\n@import \"nav\";\n@import \"navbar\";\n@import \"card\";\n@import \"accordion\";\n@import \"breadcrumb\";\n@import \"pagination\";\n@import \"badge\";\n@import \"alert\";\n@import \"progress\";\n@import \"list-group\";\n@import \"close\";\n@import \"toasts\";\n@import \"modal\";\n@import \"tooltip\";\n@import \"popover\";\n@import \"carousel\";\n@import \"spinners\";\n@import \"offcanvas\";\n@import \"placeholders\";\n\n// Helpers\n@import \"helpers\";\n\n// Utilities\n@import \"utilities/api\";\n// scss-docs-end import-stack\n",":root {\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 --#{$variable-prefix}#{$color}: #{$value};\n }\n\n @each $color, $value in $grays {\n --#{$variable-prefix}gray-#{$color}: #{$value};\n }\n\n @each $color, $value in $theme-colors {\n --#{$variable-prefix}#{$color}: #{$value};\n }\n\n @each $color, $value in $theme-colors-rgb {\n --#{$variable-prefix}#{$color}-rgb: #{$value};\n }\n\n --#{$variable-prefix}white-rgb: #{to-rgb($white)};\n --#{$variable-prefix}black-rgb: #{to-rgb($black)};\n --#{$variable-prefix}body-rgb: #{to-rgb($body-color)};\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 --#{$variable-prefix}font-sans-serif: #{inspect($font-family-sans-serif)};\n --#{$variable-prefix}font-monospace: #{inspect($font-family-monospace)};\n --#{$variable-prefix}gradient: #{$gradient};\n\n // Root and body\n // stylelint-disable custom-property-empty-line-before\n // scss-docs-start root-body-variables\n @if $font-size-root != null {\n --#{$variable-prefix}root-font-size: #{$font-size-root};\n }\n --#{$variable-prefix}body-font-family: #{$font-family-base};\n --#{$variable-prefix}body-font-size: #{$font-size-base};\n --#{$variable-prefix}body-font-weight: #{$font-weight-base};\n --#{$variable-prefix}body-line-height: #{$line-height-base};\n --#{$variable-prefix}body-color: #{$body-color};\n @if $body-text-align != null {\n --#{$variable-prefix}body-text-align: #{$body-text-align};\n }\n --#{$variable-prefix}body-bg: #{$body-bg};\n // scss-docs-end root-body-variables\n // stylelint-enable custom-property-empty-line-before\n}\n","// stylelint-disable declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\n\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\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\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 font-size: var(--#{$variable-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\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(--#{$variable-prefix}body-font-family);\n @include font-size(var(--#{$variable-prefix}body-font-size));\n font-weight: var(--#{$variable-prefix}body-font-weight);\n line-height: var(--#{$variable-prefix}body-line-height);\n color: var(--#{$variable-prefix}body-color);\n text-align: var(--#{$variable-prefix}body-text-align);\n background-color: var(--#{$variable-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\n// Content grouping\n//\n// 1. Reset Firefox's gray color\n// 2. Set correct height and prevent the `size` attribute to make the `hr` look like an input field\n\nhr {\n margin: $hr-margin-y 0;\n color: $hr-color; // 1\n background-color: currentColor;\n border: 0;\n opacity: $hr-opacity;\n}\n\nhr:not([size]) {\n height: $hr-height; // 2\n}\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: $headings-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\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\n// Abbreviations\n//\n// 1. Duplicate behavior to the data-bs-* attribute for our tooltip plugin\n// 2. Add the correct text decoration in Chrome, Edge, Opera, and Safari.\n// 3. Add explicit cursor to indicate changed behavior.\n// 4. Prevent the text-decoration to be skipped.\n\nabbr[title],\nabbr[data-bs-original-title] { // 1\n text-decoration: underline dotted; // 2\n cursor: help; // 3\n text-decoration-skip-ink: none; // 4\n}\n\n\n// Address\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\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: .5rem;\n margin-left: 0; // 1\n}\n\n\n// Blockquote\n\nblockquote {\n margin: 0 0 1rem;\n}\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\n// Small\n//\n// Add the correct font size in all browsers\n\nsmall {\n @include font-size($small-font-size);\n}\n\n\n// Mark\n\nmark {\n padding: $mark-padding;\n background-color: $mark-bg;\n}\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 { bottom: -.25em; }\nsup { top: -.5em; }\n\n\n// Links\n\na {\n color: $link-color;\n text-decoration: $link-decoration;\n\n &:hover {\n color: $link-hover-color;\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\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 direction: ltr #{\"/* rtl:ignore */\"};\n unicode-bidi: bidi-override;\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: $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\n// Figures\n//\n// Apply a consistent margin strategy (matches our type styles).\n\nfigure {\n margin: 0 0 1rem;\n}\n\n\n// Images and content\n\nimg,\nsvg {\n vertical-align: middle;\n}\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\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-`