diff --git a/.github/workflows/build-and-release.yml b/.github/workflows/build-and-release.yml index d1cc72fe..8d1d8de4 100644 --- a/.github/workflows/build-and-release.yml +++ b/.github/workflows/build-and-release.yml @@ -362,7 +362,10 @@ jobs: $PDFIUM_URL = "https://github.com/bblanchon/pdfium-binaries/releases/download/chromium%2F$($env:PDFIUM_VERSION)/pdfium-$PDFIUM_FILE" Write-Host "Download $PDFIUM_URL ..." - $TMP = New-TemporaryFile | Split-Path + + # Create a unique temporary directory (not just a file) + $TMP = Join-Path ([System.IO.Path]::GetTempPath()) ([System.IO.Path]::GetRandomFileName()) + New-Item -ItemType Directory -Path $TMP -Force | Out-Null $ARCHIVE = Join-Path $TMP "pdfium.tgz" Invoke-WebRequest -Uri $PDFIUM_URL -OutFile $ARCHIVE @@ -380,8 +383,15 @@ jobs: Copy-Item -Path $SRC -Destination $DEST -Force Write-Host "Cleaning up ..." - Remove-Item $ARCHIVE -Force - Remove-Item $TMP -Recurse -Force + Remove-Item $ARCHIVE -Force -ErrorAction SilentlyContinue + + # Try to remove the temporary directory, but ignore errors if files are still in use + try { + Remove-Item $TMP -Recurse -Force -ErrorAction Stop + Write-Host "Successfully cleaned up temporary directory: $TMP" + } catch { + Write-Warning "Could not fully clean up temporary directory: $TMP. This is usually harmless as Windows will clean it up later. Error: $($_.Exception.Message)" + } - name: Build .NET project run: | diff --git a/.gitignore b/.gitignore index 8ac42484..81a01256 100644 --- a/.gitignore +++ b/.gitignore @@ -156,3 +156,6 @@ orleans.codegen.cs **/.idea/**/uiDesigner.xml **/.idea/**/dbnavigator.xml **/.vs + +# Ignore AI plugin config files: +/app/.idea/.idea.MindWork AI Studio/.idea/AugmentWebviewStateStore.xml diff --git a/.junie/guidelines.md b/.junie/guidelines.md new file mode 100644 index 00000000..f8dfd452 --- /dev/null +++ b/.junie/guidelines.md @@ -0,0 +1,17 @@ +# Project Guidelines + +## Repository Structure +- The repository and the app consist of a Rust project in the `runtime` folder and a .NET solution in the `app` folder. +- The .NET solution then contains 4 .NET projects: + - `Build Script` is not required for running the app; instead, it contains the build script for creating new releases, for example. + - `MindWork AI Studio` contains the actual app code. + - `SharedTools` contains types that are needed in the build script and in the app, for example. + - `SourceCodeRules` is a Roslyn analyzer project. It contains analyzers and code fixes that we use to enforce code style rules within the team. + +## Changelogs +- There is a changelog in Markdown format for each version. +- All changelogs are located in the folder `app/MindWork AI Studio/wwwroot/changelog`. +- These changelogs are intended for end users, not for developers. +- Therefore, we don't mention all changes in the changelog: changes that end users wouldn't understand remain unmentioned. For complex refactorings, for example, we mention a generic point that the code quality has been improved to enhance future maintenance. +- The changelog is always written in US English. +- The changelog doesn't mention bug fixes if the bug was never shipped and users don't know about it. \ No newline at end of file diff --git a/README.md b/README.md index a5548adf..d526d2b3 100644 --- a/README.md +++ b/README.md @@ -1,52 +1,86 @@ # MindWork AI Studio +MindWork AI Studio Banner + Are you new here? [Read here](#what-is-ai-studio) what AI Studio is. ## News -Things we are currently working on: +
+ +

+ Things we are currently working on +

+
-- Since November 2024: Work on RAG (integration of your data and files) has begun. We will support the integration of local and external data sources. We need to implement the following runtime (Rust) and app (.NET) steps: +
+ +

+ RAG (Retrieval-Augmented Generation) +

+
- - [x] ~~Runtime: Restructuring the code into meaningful modules (PR [#192](https://github.com/MindWorkAI/AI-Studio/pull/192))~~ - - [x] ~~Define the [External Retrieval Interface (ERI)](https://github.com/MindWorkAI/ERI) as a contract for integrating arbitrary external data (PR [#1](https://github.com/MindWorkAI/ERI/pull/1))~~ - - [x] ~~App: Metadata for providers (which provider offers embeddings?) (PR [#205](https://github.com/MindWorkAI/AI-Studio/pull/205))~~ - - [x] ~~App: Add an option to show preview features (PR [#222](https://github.com/MindWorkAI/AI-Studio/pull/222))~~ - - [x] ~~App: Configure embedding providers (PR [#224](https://github.com/MindWorkAI/AI-Studio/pull/224))~~ - - [x] ~~App: Implement an [ERI](https://github.com/MindWorkAI/ERI) server coding assistant (PR [#231](https://github.com/MindWorkAI/AI-Studio/pull/231))~~ - - [x] ~~App: Management of data sources (local & external data via [ERI](https://github.com/MindWorkAI/ERI)) (PR [#259](https://github.com/MindWorkAI/AI-Studio/pull/259), [#273](https://github.com/MindWorkAI/AI-Studio/pull/273))~~ - - [x] ~~Runtime: Extract data from txt / md / pdf / docx / xlsx files (PR [#374](https://github.com/MindWorkAI/AI-Studio/pull/374))~~ - - [ ] (*Optional*) Runtime: Implement internal embedding provider through [fastembed-rs](https://github.com/Anush008/fastembed-rs) - - [x] ~~App: Implement dialog for checking & handling [pandoc](https://pandoc.org/) installation ([PR #393](https://github.com/MindWorkAI/AI-Studio/pull/393), [PR #487](https://github.com/MindWorkAI/AI-Studio/pull/487))~~ - - [ ] App: Implement external embedding providers - - [ ] App: Implement the process to vectorize one local file using embeddings - - [ ] Runtime: Integration of the vector database [LanceDB](https://github.com/lancedb/lancedb) - - [ ] App: Implement the continuous process of vectorizing data - - [x] ~~App: Define a common retrieval context interface for the integration of RAG processes in chats (PR [#281](https://github.com/MindWorkAI/AI-Studio/pull/281), [#284](https://github.com/MindWorkAI/AI-Studio/pull/284), [#286](https://github.com/MindWorkAI/AI-Studio/pull/286), [#287](https://github.com/MindWorkAI/AI-Studio/pull/287))~~ - - [x] ~~App: Define a common augmentation interface for the integration of RAG processes in chats (PR [#288](https://github.com/MindWorkAI/AI-Studio/pull/288), [#289](https://github.com/MindWorkAI/AI-Studio/pull/289))~~ - - [x] ~~App: Integrate data sources in chats (PR [#282](https://github.com/MindWorkAI/AI-Studio/pull/282))~~ +Since November 2024: Work on RAG (integration of your data and files) has begun. We will support the integration of local and external data sources. We need to implement the following runtime (Rust) and app (.NET) steps: +- [x] ~~Runtime: Restructuring the code into meaningful modules (PR [#192](https://github.com/MindWorkAI/AI-Studio/pull/192))~~ +- [x] ~~Define the [External Retrieval Interface (ERI)](https://github.com/MindWorkAI/ERI) as a contract for integrating arbitrary external data (PR [#1](https://github.com/MindWorkAI/ERI/pull/1))~~ +- [x] ~~App: Metadata for providers (which provider offers embeddings?) (PR [#205](https://github.com/MindWorkAI/AI-Studio/pull/205))~~ +- [x] ~~App: Add an option to show preview features (PR [#222](https://github.com/MindWorkAI/AI-Studio/pull/222))~~ +- [x] ~~App: Configure embedding providers (PR [#224](https://github.com/MindWorkAI/AI-Studio/pull/224))~~ +- [x] ~~App: Implement an [ERI](https://github.com/MindWorkAI/ERI) server coding assistant (PR [#231](https://github.com/MindWorkAI/AI-Studio/pull/231))~~ +- [x] ~~App: Management of data sources (local & external data via [ERI](https://github.com/MindWorkAI/ERI)) (PR [#259](https://github.com/MindWorkAI/AI-Studio/pull/259), [#273](https://github.com/MindWorkAI/AI-Studio/pull/273))~~ +- [x] ~~Runtime: Extract data from txt / md / pdf / docx / xlsx files (PR [#374](https://github.com/MindWorkAI/AI-Studio/pull/374))~~ +- [ ] (*Optional*) Runtime: Implement internal embedding provider through [fastembed-rs](https://github.com/Anush008/fastembed-rs) +- [x] ~~App: Implement dialog for checking & handling [pandoc](https://pandoc.org/) installation ([PR #393](https://github.com/MindWorkAI/AI-Studio/pull/393), [PR #487](https://github.com/MindWorkAI/AI-Studio/pull/487))~~ +- [ ] App: Implement external embedding providers +- [ ] App: Implement the process to vectorize one local file using embeddings +- [ ] Runtime: Integration of the vector database [LanceDB](https://github.com/lancedb/lancedb) +- [ ] App: Implement the continuous process of vectorizing data +- [x] ~~App: Define a common retrieval context interface for the integration of RAG processes in chats (PR [#281](https://github.com/MindWorkAI/AI-Studio/pull/281), [#284](https://github.com/MindWorkAI/AI-Studio/pull/284), [#286](https://github.com/MindWorkAI/AI-Studio/pull/286), [#287](https://github.com/MindWorkAI/AI-Studio/pull/287))~~ +- [x] ~~App: Define a common augmentation interface for the integration of RAG processes in chats (PR [#288](https://github.com/MindWorkAI/AI-Studio/pull/288), [#289](https://github.com/MindWorkAI/AI-Studio/pull/289))~~ +- [x] ~~App: Integrate data sources in chats (PR [#282](https://github.com/MindWorkAI/AI-Studio/pull/282))~~ -- Since September 2024: Experiments have been started on how we can work on long texts with AI Studio. Let's say you want to write a fantasy novel or create a complex project proposal and use LLM for support. The initial experiments were promising, but not yet satisfactory. We are testing further approaches until a satisfactory solution is found. The current state of our experiment is available as an experimental preview feature through your app configuration. Related PR: ~~[PR #167](https://github.com/MindWorkAI/AI-Studio/pull/167), [PR #226](https://github.com/MindWorkAI/AI-Studio/pull/226)~~, [PR #376](https://github.com/MindWorkAI/AI-Studio/pull/376). +
-- Since March 2025: We have started developing the plugin system. There will be language plugins to offer AI Studio in other languages, configuration plugins to centrally manage certain providers and rules within an organization, and assistant plugins that allow anyone to develop their own assistants. We are using Lua as the plugin language: - - [x] ~~Plan & implement the base plugin system ([PR #322](https://github.com/MindWorkAI/AI-Studio/pull/322))~~ - - [x] ~~Start the plugin system ([PR #372](https://github.com/MindWorkAI/AI-Studio/pull/372))~~ - - [x] ~~Added hot-reload support for plugins ([PR #377](https://github.com/MindWorkAI/AI-Studio/pull/377), [PR #391](https://github.com/MindWorkAI/AI-Studio/pull/391))~~ - - [x] ~~Add support for other languages (I18N) to AI Studio ([PR #381](https://github.com/MindWorkAI/AI-Studio/pull/381), [PR #400](https://github.com/MindWorkAI/AI-Studio/pull/400), [PR #404](https://github.com/MindWorkAI/AI-Studio/pull/404), [PR #429](https://github.com/MindWorkAI/AI-Studio/pull/429), [PR #446](https://github.com/MindWorkAI/AI-Studio/pull/446), [PR #451](https://github.com/MindWorkAI/AI-Studio/pull/451), [PR #455](https://github.com/MindWorkAI/AI-Studio/pull/455), [PR #458](https://github.com/MindWorkAI/AI-Studio/pull/458), [PR #462](https://github.com/MindWorkAI/AI-Studio/pull/462), [PR #469](https://github.com/MindWorkAI/AI-Studio/pull/469), [PR #486](https://github.com/MindWorkAI/AI-Studio/pull/486))~~ - - [x] ~~Add an I18N assistant to translate all AI Studio texts to a certain language & culture ([PR #422](https://github.com/MindWorkAI/AI-Studio/pull/422))~~ - - [x] ~~Provide MindWork AI Studio in German ([PR #430](https://github.com/MindWorkAI/AI-Studio/pull/430), [PR #446](https://github.com/MindWorkAI/AI-Studio/pull/446), [PR #451](https://github.com/MindWorkAI/AI-Studio/pull/451), [PR #455](https://github.com/MindWorkAI/AI-Studio/pull/455), [PR #458](https://github.com/MindWorkAI/AI-Studio/pull/458), [PR #462](https://github.com/MindWorkAI/AI-Studio/pull/462), [PR #469](https://github.com/MindWorkAI/AI-Studio/pull/469), [PR #486](https://github.com/MindWorkAI/AI-Studio/pull/486))~~ - - [x] ~~Add configuration plugins, which allow pre-defining some LLM providers in organizations ([PR #491](https://github.com/MindWorkAI/AI-Studio/pull/491), [PR #493](https://github.com/MindWorkAI/AI-Studio/pull/493), [PR #494](https://github.com/MindWorkAI/AI-Studio/pull/494), [PR #497](https://github.com/MindWorkAI/AI-Studio/pull/497))~~ - - [ ] Add an app store for plugins, showcasing community-contributed plugins from public GitHub and GitLab repositories. This will enable AI Studio users to discover, install, and update plugins directly within the platform. - - [ ] Add assistant plugins +
+ +

+ Writer Mode +

+
-Other News: +Since September 2024: Experiments have been started on how we can work on long texts with AI Studio. Let's say you want to write a fantasy novel or create a complex project proposal and use LLM for support. The initial experiments were promising, but not yet satisfactory. We are testing further approaches until a satisfactory solution is found. The current state of our experiment is available as an experimental preview feature through your app configuration. Related PR: ~~[PR #167](https://github.com/MindWorkAI/AI-Studio/pull/167), [PR #226](https://github.com/MindWorkAI/AI-Studio/pull/226)~~, [PR #376](https://github.com/MindWorkAI/AI-Studio/pull/376). -- April 2025: We have two active financial supporters: Peer `peerschuett` and Dominic `donework`. Thank you very much for your support. MindWork AI reinvests these donations by passing them on to our AI Studio dependencies ([see here](https://github.com/orgs/MindWorkAI/sponsoring)). In the event that we receive large donations, we will first sign the app ([#56](https://github.com/MindWorkAI/Planning/issues/56)). In case we receive more donations, we will look for and pay staff to develop features for AI Studio. +
-- April 2025: The [German Aerospace Center (DLR)](https://en.wikipedia.org/wiki/German_Aerospace_Center) ([Website](https://www.dlr.de/en)) will use AI Studio at least within the scope of three projects and will also contribute to its further development. This is great news. +
+ +

+ Plugin System +

+
+Since March 2025: We have started developing the plugin system. There will be language plugins to offer AI Studio in other languages, configuration plugins to centrally manage certain providers and rules within an organization, and assistant plugins that allow anyone to develop their own assistants. We are using Lua as the plugin language: +- [x] ~~Plan & implement the base plugin system ([PR #322](https://github.com/MindWorkAI/AI-Studio/pull/322))~~ +- [x] ~~Start the plugin system ([PR #372](https://github.com/MindWorkAI/AI-Studio/pull/372))~~ +- [x] ~~Added hot-reload support for plugins ([PR #377](https://github.com/MindWorkAI/AI-Studio/pull/377), [PR #391](https://github.com/MindWorkAI/AI-Studio/pull/391))~~ +- [x] ~~Add support for other languages (I18N) to AI Studio ([PR #381](https://github.com/MindWorkAI/AI-Studio/pull/381), [PR #400](https://github.com/MindWorkAI/AI-Studio/pull/400), [PR #404](https://github.com/MindWorkAI/AI-Studio/pull/404), [PR #429](https://github.com/MindWorkAI/AI-Studio/pull/429), [PR #446](https://github.com/MindWorkAI/AI-Studio/pull/446), [PR #451](https://github.com/MindWorkAI/AI-Studio/pull/451), [PR #455](https://github.com/MindWorkAI/AI-Studio/pull/455), [PR #458](https://github.com/MindWorkAI/AI-Studio/pull/458), [PR #462](https://github.com/MindWorkAI/AI-Studio/pull/462), [PR #469](https://github.com/MindWorkAI/AI-Studio/pull/469), [PR #486](https://github.com/MindWorkAI/AI-Studio/pull/486))~~ +- [x] ~~Add an I18N assistant to translate all AI Studio texts to a certain language & culture ([PR #422](https://github.com/MindWorkAI/AI-Studio/pull/422))~~ +- [x] ~~Provide MindWork AI Studio in German ([PR #430](https://github.com/MindWorkAI/AI-Studio/pull/430), [PR #446](https://github.com/MindWorkAI/AI-Studio/pull/446), [PR #451](https://github.com/MindWorkAI/AI-Studio/pull/451), [PR #455](https://github.com/MindWorkAI/AI-Studio/pull/455), [PR #458](https://github.com/MindWorkAI/AI-Studio/pull/458), [PR #462](https://github.com/MindWorkAI/AI-Studio/pull/462), [PR #469](https://github.com/MindWorkAI/AI-Studio/pull/469), [PR #486](https://github.com/MindWorkAI/AI-Studio/pull/486))~~ +- [x] ~~Add configuration plugins, which allow pre-defining some LLM providers in organizations ([PR #491](https://github.com/MindWorkAI/AI-Studio/pull/491), [PR #493](https://github.com/MindWorkAI/AI-Studio/pull/493), [PR #494](https://github.com/MindWorkAI/AI-Studio/pull/494), [PR #497](https://github.com/MindWorkAI/AI-Studio/pull/497))~~ +- [ ] Add an app store for plugins, showcasing community-contributed plugins from public GitHub and GitLab repositories. This will enable AI Studio users to discover, install, and update plugins directly within the platform. +- [ ] Add assistant plugins -Features we have recently released: +
+
+
+ +

+ Features we have recently released +

+
+ +- v0.9.51: Added support for [Perplexity](https://www.perplexity.ai/); citations added so that LLMs can provide source references (e.g., some OpenAI models, Perplexity); added support for OpenAI's Responses API so that all text LLMs from OpenAI now work in MindWork AI Studio, including Deep Research models; web searches are now possible (some OpenAI models, Perplexity). +- v0.9.50: Added support for self-hosted LLMs using [vLLM](https://blog.vllm.ai/2023/06/20/vllm.html). - v0.9.46: Released our plugin system, a German language plugin, early support for enterprise environments, and configuration plugins. Additionally, we added the Pandoc integration for future data processing and file generation. - v0.9.45: Added chat templates to AI Studio, allowing you to create and use a library of system prompts for your chats. - v0.9.44: Added PDF import to the text summarizer, translation, and legal check assistants, allowing you to import PDF files and use them as input for the assistants. @@ -57,7 +91,8 @@ Features we have recently released: - v0.9.26+: Added RAG for external data sources using our [ERI interface](https://mindworkai.org/#eri---external-retrieval-interface) as a preview feature. - v0.9.25: Added [xAI](https://x.ai/) as a new provider. xAI provides their Grok models for generating content. - v0.9.23: Added support for OpenAI `o` models (`o1`, `o1-mini`, `o3`, etc.); added also an [ERI](https://github.com/MindWorkAI/ERI) server coding assistant as a preview feature behind the RAG feature flag. Your own ERI server can be used to gain access to, e.g., your enterprise data from within AI Studio. -- v0.9.22: Added options for preview features; added embedding provider configuration for RAG (preview) and writer mode (experimental preview). + +
## What is AI Studio? @@ -71,7 +106,8 @@ MindWork AI Studio is a free desktop app for macOS, Windows, and Linux. It provi **Key advantages:** - **Free of charge**: The app is free to use, both for personal and commercial purposes. - **Independence**: You are not tied to any single provider. Instead, you can choose the providers that best suit your needs. Right now, we support: - - [OpenAI](https://openai.com/) (GPT4o, GPT4.1, o1, o3, o4, etc.) + - [OpenAI](https://openai.com/) (GPT5, GPT4.1, o1, o3, o4, etc.) + - [Perplexity](https://www.perplexity.ai/) - [Mistral](https://mistral.ai/) - [Anthropic](https://www.anthropic.com/) (Claude) - [Google Gemini](https://gemini.google.com) @@ -79,7 +115,7 @@ MindWork AI Studio is a free desktop app for macOS, Windows, and Linux. It provi - [DeepSeek](https://www.deepseek.com/en) - [Alibaba Cloud](https://www.alibabacloud.com) (Qwen) - [Hugging Face](https://huggingface.co/) using their [inference providers](https://huggingface.co/docs/inference-providers/index) such as Cerebras, Nebius, Sambanova, Novita, Hyperbolic, Together AI, Fireworks, Hugging Face - - Self-hosted models using [llama.cpp](https://github.com/ggerganov/llama.cpp), [ollama](https://github.com/ollama/ollama), [LM Studio](https://lmstudio.ai/) + - Self-hosted models using [llama.cpp](https://github.com/ggerganov/llama.cpp), [ollama](https://github.com/ollama/ollama), [LM Studio](https://lmstudio.ai/), and [vLLM](https://github.com/vllm-project/vllm) - [Groq](https://groq.com/) - [Fireworks](https://fireworks.ai/) - For scientists and employees of research institutions, we also support [Helmholtz](https://helmholtz.cloud/services/?serviceID=d7d5c597-a2f6-4bd1-b71e-4d6499d98570) and [GWDG](https://gwdg.de/services/application-services/ai-services/) AI services. These are available through federated logins like eduGAIN to all 18 Helmholtz Centers, the Max Planck Society, most German, and many international universities. @@ -92,7 +128,13 @@ MindWork AI Studio is a free desktop app for macOS, Windows, and Linux. It provi ## **Ready to get started 🤩?** [Download the appropriate setup for your operating system here](documentation/Setup.md). -## Support the Project +
+ +

+ Support the Project +

+
+ Thank you for using MindWork AI Studio and considering supporting its development 😀. Your support helps keep the project alive and ensures continuous improvements and new features. We offer various ways you can support the project: @@ -106,7 +148,15 @@ For companies, sponsoring MindWork AI Studio is not only a way to support innova To view all available tiers, please visit our [GitHub Sponsors page](https://github.com/sponsors/MindWorkAI). Your support, whether big or small, keeps the wheels turning and is deeply appreciated ❤️. -## Planned Features +
+ +
+ +

+ Planned Features +

+
+ Here's an exciting look at some of the features we're planning to add to AI Studio in future releases: - **Integrating your data**: You'll be able to integrate your data into AI Studio, like your PDF or Office files, or your Markdown notes. - **Integration of enterprise data:** It will soon be possible to integrate data from the corporate network using a specified interface ([External Retrieval Interface](https://github.com/MindWorkAI/ERI), ERI for short). This will likely require development work by the organization in question. @@ -120,17 +170,45 @@ Here's an exciting look at some of the features we're planning to add to AI Stud Stay tuned for more updates and enhancements to make MindWork AI Studio even more powerful and versatile 🤩. -## Building +If you're interested in learning more about future plans, check out our [roadmap](https://github.com/orgs/MindWorkAI/projects/2/views/3) and our [planning issues](https://github.com/MindWorkAI/Planning/issues). + +
+ +
+ +

+ Building +

+
+ You want to know how to build MindWork AI Studio from source? [Check out the instructions here](documentation/Build.md). -## Enterprise IT +
+ +
+ +

+ Enterprise IT +

+
+ Do you want to manage AI Studio centrally from your IT department? Yes, that’s possible. [Here’s how it works.](documentation/Enterprise%20IT.md) -## License +
+ +
+ +

+ License +

+
+ MindWork AI Studio is licensed under the `FSL-1.1-MIT` license (functional source license). Here’s a simple rundown of what that means for you: - **Permitted Use**: Feel free to use, copy, modify, and share the software for your own projects, educational purposes, research, or even in professional services. The key is to use it in a way that doesn't compete with our offerings. - **Competing Use**: Our only request is that you don't create commercial products or services that replace or compete with MindWork AI Studio or any of our other offerings. - **No Warranties**: The software is provided "as is", without any promises from us about it working perfectly for your needs. While we strive to make it great, we can't guarantee it will be free of bugs or issues. - **Future License**: Good news! The license for each release of MindWork AI Studio will automatically convert to an MIT license two years from its release date. This makes it even easier for you to use the software in the future. -For more details, refer to the [LICENSE](LICENSE.md) file. This license structure ensures you have plenty of freedom to use and enjoy the software while protecting our work. \ No newline at end of file +For more details, refer to the [LICENSE](LICENSE.md) file. This license structure ensures you have plenty of freedom to use and enjoy the software while protecting our work. + +
\ No newline at end of file diff --git a/app/MindWork AI Studio.sln.DotSettings b/app/MindWork AI Studio.sln.DotSettings index d85707aa..faaedb6b 100644 --- a/app/MindWork AI Studio.sln.DotSettings +++ b/app/MindWork AI Studio.sln.DotSettings @@ -5,6 +5,7 @@ FNV GWDG HF + IERI LLM LM MSG @@ -20,6 +21,7 @@ True True True + True True True True \ No newline at end of file diff --git a/app/MindWork AI Studio/Agents/AgentBase.cs b/app/MindWork AI Studio/Agents/AgentBase.cs index 66f13146..dc70992a 100644 --- a/app/MindWork AI Studio/Agents/AgentBase.cs +++ b/app/MindWork AI Studio/Agents/AgentBase.cs @@ -54,7 +54,7 @@ public abstract class AgentBase(ILogger logger, SettingsManager setti #region Implementation of IAgent - public abstract AIStudio.Settings.Provider? ProviderSettings { get; set; } + public abstract AIStudio.Settings.Provider ProviderSettings { get; set; } public abstract Task ProcessContext(ChatThread chatThread, IDictionary additionalData); @@ -73,7 +73,6 @@ public abstract class AgentBase(ILogger logger, SettingsManager setti WorkspaceId = Guid.Empty, ChatId = Guid.NewGuid(), Name = string.Empty, - Seed = this.RNG.Next(), SystemPrompt = systemPrompt, Blocks = [], }; @@ -103,10 +102,9 @@ public abstract class AgentBase(ILogger logger, SettingsManager setti protected async Task AddAIResponseAsync(ChatThread thread, IContent lastUserPrompt, DateTimeOffset time) { - if(this.ProviderSettings is null) + if(this.ProviderSettings == Settings.Provider.NONE) return; - var providerSettings = this.ProviderSettings.Value; var aiText = new ContentText { // We have to wait for the remote @@ -127,6 +125,6 @@ public abstract class AgentBase(ILogger logger, SettingsManager setti // Use the selected provider to get the AI response. // By awaiting this line, we wait for the entire // content to be streamed. - await aiText.CreateFromProviderAsync(providerSettings.CreateProvider(this.Logger), providerSettings.Model, lastUserPrompt, thread); + await aiText.CreateFromProviderAsync(this.ProviderSettings.CreateProvider(), this.ProviderSettings.Model, lastUserPrompt, thread); } } \ No newline at end of file diff --git a/app/MindWork AI Studio/Agents/AgentDataSourceSelection.cs b/app/MindWork AI Studio/Agents/AgentDataSourceSelection.cs index 6fe1f4e2..42d395be 100644 --- a/app/MindWork AI Studio/Agents/AgentDataSourceSelection.cs +++ b/app/MindWork AI Studio/Agents/AgentDataSourceSelection.cs @@ -86,7 +86,7 @@ public sealed class AgentDataSourceSelection (ILogger """; /// - public override Settings.Provider? ProviderSettings { get; set; } + public override Settings.Provider ProviderSettings { get; set; } = Settings.Provider.NONE; /// /// The data source selection agent does not work with context. Use @@ -141,6 +141,11 @@ public sealed class AgentDataSourceSelection (ILogger // We start with the provider currently selected by the user: var agentProvider = this.SettingsManager.GetPreselectedProvider(Tools.Components.AGENT_DATA_SOURCE_SELECTION, provider.Id, true); + if (agentProvider == Settings.Provider.NONE) + { + logger.LogWarning("No provider is selected for the agent. The agent cannot select data sources."); + return []; + } // Assign the provider settings to the agent: logger.LogInformation($"The agent for the data source selection uses the provider '{agentProvider.InstanceName}' ({agentProvider.UsedLLMProvider.ToName()}, confidence={agentProvider.UsedLLMProvider.GetConfidence(this.SettingsManager).Level.GetName()})."); diff --git a/app/MindWork AI Studio/Agents/AgentRetrievalContextValidation.cs b/app/MindWork AI Studio/Agents/AgentRetrievalContextValidation.cs index 9a4fdff5..7d7b9bb6 100644 --- a/app/MindWork AI Studio/Agents/AgentRetrievalContextValidation.cs +++ b/app/MindWork AI Studio/Agents/AgentRetrievalContextValidation.cs @@ -71,7 +71,7 @@ public sealed class AgentRetrievalContextValidation (ILogger - public override Settings.Provider? ProviderSettings { get; set; } + public override Settings.Provider ProviderSettings { get; set; } = Settings.Provider.NONE; /// /// The retrieval context validation agent does not work with context. Use @@ -133,6 +133,11 @@ public sealed class AgentRetrievalContextValidation (ILogger logger, SettingsM #region Overrides of AgentBase - public override AIStudio.Settings.Provider? ProviderSettings { get; set; } + public override AIStudio.Settings.Provider ProviderSettings { get; set; } = AIStudio.Settings.Provider.NONE; protected override Type Type => Type.SYSTEM; diff --git a/app/MindWork AI Studio/Agents/IAgent.cs b/app/MindWork AI Studio/Agents/IAgent.cs index e101f2ef..3ee77d8b 100644 --- a/app/MindWork AI Studio/Agents/IAgent.cs +++ b/app/MindWork AI Studio/Agents/IAgent.cs @@ -12,7 +12,7 @@ public interface IAgent /// /// The provider to use for this agent. /// - public AIStudio.Settings.Provider? ProviderSettings { get; set; } + public Settings.Provider ProviderSettings { get; set; } /// /// Processes a chat thread (i.e., context) and returns the updated thread. diff --git a/app/MindWork AI Studio/Assistants/AssistantBase.razor b/app/MindWork AI Studio/Assistants/AssistantBase.razor index bc4d01df..d9bd21fb 100644 --- a/app/MindWork AI Studio/Assistants/AssistantBase.razor +++ b/app/MindWork AI Studio/Assistants/AssistantBase.razor @@ -6,10 +6,10 @@ - @(this.Title) + @this.Title - + @@ -26,13 +26,13 @@ - + @this.SubmitText @if (this.isProcessing && this.cancellationTokenSource is not null) { - + } @@ -71,7 +71,7 @@ - + @if (!this.FooterButtons.Any(x => x.Type is ButtonTypes.SEND_TO)) { @@ -80,7 +80,7 @@ @foreach (var assistant in Enum.GetValues().Where(n => n.AllowSendTo()).OrderBy(n => n.Name().Length)) { - + @assistant.Name() } @@ -94,14 +94,14 @@ { case ButtonData buttonData when !string.IsNullOrWhiteSpace(buttonData.Tooltip): - + @buttonData.Text break; case ButtonData buttonData: - + @buttonData.Text break; @@ -110,7 +110,7 @@ @foreach (var assistant in Enum.GetValues().Where(n => n.AllowSendTo()).OrderBy(n => n.Name().Length)) { - + @assistant.Name() } @@ -121,14 +121,14 @@ @if (this.ShowCopyResult) { - + @TB("Copy result") } @if (this.ShowReset) { - + @TB("Reset") } diff --git a/app/MindWork AI Studio/Assistants/AssistantBase.razor.cs b/app/MindWork AI Studio/Assistants/AssistantBase.razor.cs index c355fba1..de346761 100644 --- a/app/MindWork AI Studio/Assistants/AssistantBase.razor.cs +++ b/app/MindWork AI Studio/Assistants/AssistantBase.razor.cs @@ -20,9 +20,6 @@ public abstract partial class AssistantBase : AssistantLowerBase wher [Inject] protected IJSRuntime JsRuntime { get; init; } = null!; - - [Inject] - protected ThreadSafeRandom RNG { get; init; } = null!; [Inject] protected ISnackbar Snackbar { get; init; } = null!; @@ -85,7 +82,7 @@ public abstract partial class AssistantBase : AssistantLowerBase wher protected virtual IReadOnlyList FooterButtons => []; - protected AIStudio.Settings.Provider providerSettings; + protected AIStudio.Settings.Provider providerSettings = Settings.Provider.NONE; protected MudForm? form; protected bool inputIsValid; protected Profile currentProfile = Profile.NO_PROFILE; @@ -199,7 +196,6 @@ public abstract partial class AssistantBase : AssistantLowerBase wher WorkspaceId = Guid.Empty, ChatId = Guid.NewGuid(), Name = string.Format(this.TB("Assistant - {0}"), this.Title), - Seed = this.RNG.Next(), Blocks = [], }; } @@ -215,7 +211,6 @@ public abstract partial class AssistantBase : AssistantLowerBase wher WorkspaceId = workspaceId, ChatId = chatId, Name = name, - Seed = this.RNG.Next(), Blocks = [], }; @@ -275,7 +270,7 @@ public abstract partial class AssistantBase : AssistantLowerBase wher // Use the selected provider to get the AI response. // By awaiting this line, we wait for the entire // content to be streamed. - this.chatThread = await aiText.CreateFromProviderAsync(this.providerSettings.CreateProvider(this.Logger), this.providerSettings.Model, this.lastUserPrompt, this.chatThread, this.cancellationTokenSource!.Token); + this.chatThread = await aiText.CreateFromProviderAsync(this.providerSettings.CreateProvider(), this.providerSettings.Model, this.lastUserPrompt, this.chatThread, this.cancellationTokenSource!.Token); this.isProcessing = false; this.StateHasChanged(); @@ -352,13 +347,15 @@ public abstract partial class AssistantBase : AssistantLowerBase wher private async Task InnerResetForm() { this.resultingContentBlock = null; - this.providerSettings = default; + this.providerSettings = Settings.Provider.NONE; await this.JsRuntime.ClearDiv(RESULT_DIV_ID); await this.JsRuntime.ClearDiv(AFTER_RESULT_DIV_ID); this.ResetForm(); this.providerSettings = this.SettingsManager.GetPreselectedProvider(this.Component); + this.currentProfile = this.SettingsManager.GetPreselectedProfile(this.Component); + this.currentChatTemplate = this.SettingsManager.GetPreselectedChatTemplate(this.Component); this.inputIsValid = false; this.inputIssues = []; @@ -384,7 +381,17 @@ public abstract partial class AssistantBase : AssistantLowerBase wher protected override void DisposeResources() { - this.formChangeTimer.Dispose(); + try + { + this.formChangeTimer.Stop(); + this.formChangeTimer.Dispose(); + } + catch + { + // ignore + } + + base.DisposeResources(); } #endregion diff --git a/app/MindWork AI Studio/Assistants/ERI/AssistantERI.razor.cs b/app/MindWork AI Studio/Assistants/ERI/AssistantERI.razor.cs index 32e45306..6268b137 100644 --- a/app/MindWork AI Studio/Assistants/ERI/AssistantERI.razor.cs +++ b/app/MindWork AI Studio/Assistants/ERI/AssistantERI.razor.cs @@ -473,9 +473,9 @@ public partial class AssistantERI : AssistantBaseCore if(this.selectedERIServer is null) return; - var dialogParameters = new DialogParameters + var dialogParameters = new DialogParameters { - { "Message", string.Format(T("Are you sure you want to delete the ERI server preset '{0}'?"), this.selectedERIServer.ServerName) }, + { x => x.Message, string.Format(T("Are you sure you want to delete the ERI server preset '{0}'?"), this.selectedERIServer.ServerName) }, }; var dialogReference = await this.DialogService.ShowAsync(T("Delete ERI server preset"), dialogParameters, DialogOptions.FULLSCREEN); @@ -827,9 +827,9 @@ public partial class AssistantERI : AssistantBaseCore ? string.Format(T("The embedding '{0}' is used in one or more retrieval processes. Are you sure you want to delete it?"), embeddingInfo.EmbeddingName) : string.Format(T("Are you sure you want to delete the embedding '{0}'?"), embeddingInfo.EmbeddingName); - var dialogParameters = new DialogParameters + var dialogParameters = new DialogParameters { - { "Message", message }, + { x => x.Message, message }, }; var dialogReference = await this.DialogService.ShowAsync(T("Delete Embedding"), dialogParameters, DialogOptions.FULLSCREEN); @@ -890,9 +890,9 @@ public partial class AssistantERI : AssistantBaseCore private async Task DeleteRetrievalProcess(RetrievalInfo retrievalInfo) { - var dialogParameters = new DialogParameters + var dialogParameters = new DialogParameters { - { "Message", string.Format(T("Are you sure you want to delete the retrieval process '{0}'?"), retrievalInfo.Name) }, + { x => x.Message, string.Format(T("Are you sure you want to delete the retrieval process '{0}'?"), retrievalInfo.Name) }, }; var dialogReference = await this.DialogService.ShowAsync(T("Delete Retrieval Process"), dialogParameters, DialogOptions.FULLSCREEN); diff --git a/app/MindWork AI Studio/Assistants/I18N/allTexts.lua b/app/MindWork AI Studio/Assistants/I18N/allTexts.lua index 83ed2620..c1f40eb5 100644 --- a/app/MindWork AI Studio/Assistants/I18N/allTexts.lua +++ b/app/MindWork AI Studio/Assistants/I18N/allTexts.lua @@ -1222,12 +1222,18 @@ UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::TEXTSUMMARIZER::ASSISTANTTEXTSUMMARIZER:: -- Target language UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::TEXTSUMMARIZER::ASSISTANTTEXTSUMMARIZER::T237828418"] = "Target language" +-- (Optional) Important Aspects +UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::TEXTSUMMARIZER::ASSISTANTTEXTSUMMARIZER::T24391765"] = "(Optional) Important Aspects" + -- Summarize long text into a shorter version while retaining the main points. You might want to change the language of the summary to make it more readable. It is also possible to change the complexity of the summary to make it easy to understand. UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::TEXTSUMMARIZER::ASSISTANTTEXTSUMMARIZER::T359929871"] = "Summarize long text into a shorter version while retaining the main points. You might want to change the language of the summary to make it more readable. It is also possible to change the complexity of the summary to make it easy to understand." -- Please provide your field of expertise. UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::TEXTSUMMARIZER::ASSISTANTTEXTSUMMARIZER::T3610378685"] = "Please provide your field of expertise." +-- (Optional) Specify aspects for the LLM to focus on when generating a summary, such as summary length or specific topics to emphasize. +UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::TEXTSUMMARIZER::ASSISTANTTEXTSUMMARIZER::T3830285347"] = "(Optional) Specify aspects for the LLM to focus on when generating a summary, such as summary length or specific topics to emphasize." + -- Custom target language UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::TEXTSUMMARIZER::ASSISTANTTEXTSUMMARIZER::T3848935911"] = "Custom target language" @@ -1315,9 +1321,6 @@ UI_TEXT_CONTENT["AISTUDIO::CHAT::CHATROLEEXTENSIONS::T601166687"] = "AI" -- Edit Message UI_TEXT_CONTENT["AISTUDIO::CHAT::CONTENTBLOCKCOMPONENT::T1183581066"] = "Edit Message" --- Copies the content to the clipboard -UI_TEXT_CONTENT["AISTUDIO::CHAT::CONTENTBLOCKCOMPONENT::T12948066"] = "Copies the content to the clipboard" - -- Do you really want to remove this message? UI_TEXT_CONTENT["AISTUDIO::CHAT::CONTENTBLOCKCOMPONENT::T1347427447"] = "Do you really want to remove this message?" @@ -1330,6 +1333,9 @@ UI_TEXT_CONTENT["AISTUDIO::CHAT::CONTENTBLOCKCOMPONENT::T1603883875"] = "Yes, re -- Yes, remove it UI_TEXT_CONTENT["AISTUDIO::CHAT::CONTENTBLOCKCOMPONENT::T1820166585"] = "Yes, remove it" +-- Number of sources +UI_TEXT_CONTENT["AISTUDIO::CHAT::CONTENTBLOCKCOMPONENT::T1848978959"] = "Number of sources" + -- Do you really want to edit this message? In order to edit this message, the AI response will be deleted. UI_TEXT_CONTENT["AISTUDIO::CHAT::CONTENTBLOCKCOMPONENT::T2018431076"] = "Do you really want to edit this message? In order to edit this message, the AI response will be deleted." @@ -1351,9 +1357,6 @@ UI_TEXT_CONTENT["AISTUDIO::CHAT::CONTENTBLOCKCOMPONENT::T3587744975"] = "Regener -- Do you really want to regenerate this message? UI_TEXT_CONTENT["AISTUDIO::CHAT::CONTENTBLOCKCOMPONENT::T3878878761"] = "Do you really want to regenerate this message?" --- Cannot copy this content type to clipboard! -UI_TEXT_CONTENT["AISTUDIO::CHAT::CONTENTBLOCKCOMPONENT::T4021525742"] = "Cannot copy this content type to clipboard!" - -- Remove Message UI_TEXT_CONTENT["AISTUDIO::CHAT::CONTENTBLOCKCOMPONENT::T4070211974"] = "Remove Message" @@ -1450,6 +1453,9 @@ UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::CONFIDENCEINFO::T3243388657"] = "Confiden -- Shows and hides the confidence card with information about the selected LLM provider. UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::CONFIDENCEINFO::T847071819"] = "Shows and hides the confidence card with information about the selected LLM provider." +-- This feature is managed by your organization and has therefore been disabled. +UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::CONFIGURATIONBASE::T1416426626"] = "This feature is managed by your organization and has therefore been disabled." + -- Choose the minimum confidence level that all LLM providers must meet. This way, you can ensure that only trustworthy providers are used. You cannot use any provider that falls below this level. UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::CONFIGURATIONMINCONFIDENCESELECTION::T2526727283"] = "Choose the minimum confidence level that all LLM providers must meet. This way, you can ensure that only trustworthy providers are used. You cannot use any provider that falls below this level." @@ -1588,6 +1594,12 @@ UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::MOTIVATION::T372007989"] = "Relying on we -- Cross-Platform and Modern Development UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::MOTIVATION::T843057510"] = "Cross-Platform and Modern Development" +-- Copies the content to the clipboard +UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::MUDCOPYCLIPBOARDBUTTON::T12948066"] = "Copies the content to the clipboard" + +-- Cannot copy this content type to clipboard. +UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::MUDCOPYCLIPBOARDBUTTON::T3937637647"] = "Cannot copy this content type to clipboard." + -- Alpha phase means that we are working on the last details before the beta phase. UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::PREVIEWALPHA::T166807685"] = "Alpha phase means that we are working on the last details before the beta phase." @@ -1702,6 +1714,24 @@ UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::READWEBCONTENT::T3825586228"] = "Please p -- Show web content options UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::READWEBCONTENT::T4249712357"] = "Show web content options" +-- Loading +UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::READWEBCONTENTSTEPSEXTENSIONS::T1404011351"] = "Loading" + +-- Start +UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::READWEBCONTENTSTEPSEXTENSIONS::T182978943"] = "Start" + +-- Done +UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::READWEBCONTENTSTEPSEXTENSIONS::T2379421585"] = "Done" + +-- Parsing +UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::READWEBCONTENTSTEPSEXTENSIONS::T3151033983"] = "Parsing" + +-- Cleaning +UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::READWEBCONTENTSTEPSEXTENSIONS::T3420573362"] = "Cleaning" + +-- n/a +UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::READWEBCONTENTSTEPSEXTENSIONS::T907272257"] = "n/a" + -- Hide content UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::SECRETINPUTFIELD::T1273315904"] = "Hide content" @@ -1825,6 +1855,9 @@ UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::SETTINGS::SETTINGSPANELAPP::T1907446663"] -- Language behavior UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::SETTINGS::SETTINGSPANELAPP::T2341504363"] = "Language behavior" +-- Update installation method +UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::SETTINGS::SETTINGSPANELAPP::T237706157"] = "Update installation method" + -- Language UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::SETTINGS::SETTINGSPANELAPP::T2591284123"] = "Language" @@ -1855,6 +1888,9 @@ UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::SETTINGS::SETTINGSPANELAPP::T602293588"] -- Choose the color theme that best suits for you. UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::SETTINGS::SETTINGSPANELAPP::T654667432"] = "Choose the color theme that best suits for you." +-- Should updates be installed automatically or manually? +UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::SETTINGS::SETTINGSPANELAPP::T707880477"] = "Should updates be installed automatically or manually?" + -- Energy saving is enabled UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::SETTINGS::SETTINGSPANELAPP::T71162186"] = "Energy saving is enabled" @@ -2110,6 +2146,9 @@ UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::WORKSPACES::T1016188706"] = "Are you sure -- Move chat UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::WORKSPACES::T1133040906"] = "Move chat" +-- Unnamed workspace +UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::WORKSPACES::T1307384014"] = "Unnamed workspace" + -- Delete UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::WORKSPACES::T1469573738"] = "Delete" @@ -2143,6 +2182,12 @@ UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::WORKSPACES::T2237618267"] = "Are you sure -- Delete Chat UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::WORKSPACES::T2244038752"] = "Delete Chat" +-- Please enter a chat name. +UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::WORKSPACES::T2301651387"] = "Please enter a chat name." + +-- Workspace Name +UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::WORKSPACES::T2446263209"] = "Workspace Name" + -- Move to workspace UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::WORKSPACES::T2509305748"] = "Move to workspace" @@ -2155,6 +2200,12 @@ UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::WORKSPACES::T3045856778"] = "Move Chat to -- Please enter a new or edit the name for your workspace '{0}': UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::WORKSPACES::T323280982"] = "Please enter a new or edit the name for your workspace '{0}':" +-- Please enter a workspace name. +UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::WORKSPACES::T3288132732"] = "Please enter a workspace name." + +-- Unnamed chat +UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::WORKSPACES::T3310482275"] = "Unnamed chat" + -- Rename UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::WORKSPACES::T3355849203"] = "Rename" @@ -2167,6 +2218,9 @@ UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::WORKSPACES::T3555709365"] = "Load Chat" -- Add Workspace UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::WORKSPACES::T3672981145"] = "Add Workspace" +-- Chat Name +UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::WORKSPACES::T3891063690"] = "Chat Name" + -- Empty chat UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::WORKSPACES::T4019509364"] = "Empty chat" @@ -3412,6 +3466,9 @@ UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGCHATTEMPLATE::T32678 -- Close UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGCHATTEMPLATE::T3448155331"] = "Close" +-- This template is managed by your organization. +UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGCHATTEMPLATE::T3576775249"] = "This template is managed by your organization." + -- Edit Chat Template UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGCHATTEMPLATE::T3596030597"] = "Edit Chat Template" @@ -3955,12 +4012,18 @@ UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGTEXTSUMMARIZER::T364 -- When enabled, the content cleaner agent is preselected. This is might be useful when you prefer to clean up the content before summarize it. UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGTEXTSUMMARIZER::T3660434400"] = "When enabled, the content cleaner agent is preselected. This is might be useful when you prefer to clean up the content before summarize it." +-- Preselect important aspects +UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGTEXTSUMMARIZER::T3705987833"] = "Preselect important aspects" + -- When enabled, you can preselect the text summarizer options. This is might be useful when you prefer a specific language, complexity, or LLM. UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGTEXTSUMMARIZER::T3820844575"] = "When enabled, you can preselect the text summarizer options. This is might be useful when you prefer a specific language, complexity, or LLM." -- Which summarizer complexity should be preselected? UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGTEXTSUMMARIZER::T408530182"] = "Which summarizer complexity should be preselected?" +-- Preselect aspects for the LLM to focus on when generating a summary, such as summary length or specific topics to emphasize. +UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGTEXTSUMMARIZER::T414420518"] = "Preselect aspects for the LLM to focus on when generating a summary, such as summary length or specific topics to emphasize." + -- Preselect your expertise UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGTEXTSUMMARIZER::T51139714"] = "Preselect your expertise" @@ -4114,8 +4177,11 @@ UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGWRITINGEMAILS::T3832 -- Preselect one of your profiles? UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGWRITINGEMAILS::T4004501229"] = "Preselect one of your profiles?" --- Chat name -UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SINGLEINPUTDIALOG::T1746586282"] = "Chat name" +-- Please enter a value. +UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SINGLEINPUTDIALOG::T3576780391"] = "Please enter a value." + +-- Your Input +UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SINGLEINPUTDIALOG::T4030229154"] = "Your Input" -- Cancel UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SINGLEINPUTDIALOG::T900713019"] = "Cancel" @@ -4183,8 +4249,11 @@ UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T1020427799"] = "About MindWork AI Stud -- Browse AI Studio's source code on GitHub — we welcome your contributions. UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T1107156991"] = "Browse AI Studio's source code on GitHub — we welcome your contributions." --- AI Studio runs with an enterprise configuration id '{0}' and configuration server URL '{1}'. The configuration plugin is not yet available. -UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T1297057566"] = "AI Studio runs with an enterprise configuration id '{0}' and configuration server URL '{1}'. The configuration plugin is not yet available." +-- This is a private AI Studio installation. It runs without an enterprise configuration. +UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T1209549230"] = "This is a private AI Studio installation. It runs without an enterprise configuration." + +-- AI Studio runs with an enterprise configuration and a configuration server. The configuration plugin is not yet available. +UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T1282228996"] = "AI Studio runs with an enterprise configuration and a configuration server. The configuration plugin is not yet available." -- This library is used to read PDF files. This is necessary, e.g., for using PDFs as a data source for a chat. UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T1388816916"] = "This library is used to read PDF files. This is necessary, e.g., for using PDFs as a data source for a chat." @@ -4192,12 +4261,6 @@ UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T1388816916"] = "This library is used t -- This library is used to extend the MudBlazor library. It provides additional components that are not part of the MudBlazor library. UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T1421513382"] = "This library is used to extend the MudBlazor library. It provides additional components that are not part of the MudBlazor library." --- AI Studio runs with an enterprise configuration id '{0}' and configuration server URL '{1}'. The configuration plugin is active. -UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T1454889560"] = "AI Studio runs with an enterprise configuration id '{0}' and configuration server URL '{1}'. The configuration plugin is active." - --- AI Studio runs with an enterprise configuration using the configuration plugin '{0}', without central configuration management. -UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T1530477579"] = "AI Studio runs with an enterprise configuration using the configuration plugin '{0}', without central configuration management." - -- We use Lua as the language for plugins. Lua-CSharp lets Lua scripts communicate with AI Studio and vice versa. Thank you, Yusuke Nakada, for this great library. UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T162898512"] = "We use Lua as the language for plugins. Lua-CSharp lets Lua scripts communicate with AI Studio and vice versa. Thank you, Yusuke Nakada, for this great library." @@ -4216,6 +4279,9 @@ UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T1806897624"] = "By clicking on the res -- Pandoc Installation UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T185447014"] = "Pandoc Installation" +-- Copies the configuration plugin ID to the clipboard +UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T1859295819"] = "Copies the configuration plugin ID to the clipboard" + -- Check for updates UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T1890416390"] = "Check for updates" @@ -4231,21 +4297,30 @@ UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T1924365263"] = "This library is used t -- We use Rocket to implement the runtime API. This is necessary because the runtime must be able to communicate with the user interface (IPC). Rocket is a great framework for implementing web APIs in Rust. UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T1943216839"] = "We use Rocket to implement the runtime API. This is necessary because the runtime must be able to communicate with the user interface (IPC). Rocket is a great framework for implementing web APIs in Rust." +-- Copies the server URL to the clipboard +UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T2037899437"] = "Copies the server URL to the clipboard" + -- This library is used to determine the file type of a file. This is necessary, e.g., when we want to stream a file. UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T2173617769"] = "This library is used to determine the file type of a file. This is necessary, e.g., when we want to stream a file." -- For the secure communication between the user interface and the runtime, we need to create certificates. This Rust library is great for this purpose. UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T2174764529"] = "For the secure communication between the user interface and the runtime, we need to create certificates. This Rust library is great for this purpose." --- AI Studio runs without an enterprise configuration. -UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T2244723851"] = "AI Studio runs without an enterprise configuration." - -- OK UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T2246359087"] = "OK" +-- Configuration server: +UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T2272122662"] = "Configuration server:" + -- We must generate random numbers, e.g., for securing the interprocess communication between the user interface and the runtime. The rand library is great for this purpose. UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T2273492381"] = "We must generate random numbers, e.g., for securing the interprocess communication between the user interface and the runtime. The rand library is great for this purpose." +-- AI Studio runs with an enterprise configuration using a configuration plugin, without central configuration management. +UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T2280402765"] = "AI Studio runs with an enterprise configuration using a configuration plugin, without central configuration management." + +-- Configuration plugin ID: +UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T2301484629"] = "Configuration plugin ID:" + -- The C# language is used for the implementation of the user interface and the backend. To implement the user interface with C#, the Blazor technology from ASP.NET Core is used. All these technologies are integrated into the .NET SDK. UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T2329884315"] = "The C# language is used for the implementation of the user interface and the backend. To implement the user interface with C#, the Blazor technology from ASP.NET Core is used. All these technologies are integrated into the .NET SDK." @@ -4285,6 +4360,9 @@ UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T2765814390"] = "Determine Pandoc versi -- Code in the Rust language can be specified as synchronous or asynchronous. Unlike .NET and the C# language, Rust cannot execute asynchronous code by itself. Rust requires support in the form of an executor for this. Tokio is one such executor. UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T2777988282"] = "Code in the Rust language can be specified as synchronous or asynchronous. Unlike .NET and the C# language, Rust cannot execute asynchronous code by itself. Rust requires support in the form of an executor for this. Tokio is one such executor." +-- Show Details +UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T27924674"] = "Show Details" + -- View our project roadmap and help shape AI Studio's future development. UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T2829971158"] = "View our project roadmap and help shape AI Studio's future development." @@ -4300,12 +4378,18 @@ UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T2868174483"] = "The .NET backend canno -- Changelog UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T3017574265"] = "Changelog" +-- Enterprise configuration ID: +UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T3092349641"] = "Enterprise configuration ID:" + -- Connect AI Studio to your organization's data with our External Retrieval Interface (ERI). UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T313276297"] = "Connect AI Studio to your organization's data with our External Retrieval Interface (ERI)." -- Have feature ideas? Submit suggestions for future AI Studio enhancements. UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T3178730036"] = "Have feature ideas? Submit suggestions for future AI Studio enhancements." +-- Hide Details +UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T3183837919"] = "Hide Details" + -- Update Pandoc UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T3249965383"] = "Update Pandoc" @@ -4330,6 +4414,9 @@ UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T3563271893"] = "Motivation" -- This library is used to read Excel and OpenDocument spreadsheet files. This is necessary, e.g., for using spreadsheets as a data source for a chat. UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T3722989559"] = "This library is used to read Excel and OpenDocument spreadsheet files. This is necessary, e.g., for using spreadsheets as a data source for a chat." +-- AI Studio runs with an enterprise configuration and a configuration server. The configuration plugin is active. +UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T3741877842"] = "AI Studio runs with an enterprise configuration and a configuration server. The configuration plugin is active." + -- this version does not met the requirements UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T3813932670"] = "this version does not met the requirements" @@ -4372,6 +4459,9 @@ UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T639371534"] = "Did you find a bug or a -- This Rust library is used to output the app's messages to the terminal. This is helpful during development and troubleshooting. This feature is initially invisible; when the app is started via the terminal, the messages become visible. UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T64689067"] = "This Rust library is used to output the app's messages to the terminal. This is helpful during development and troubleshooting. This feature is initially invisible; when the app is started via the terminal, the messages become visible." +-- Copies the config ID to the clipboard +UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T788846912"] = "Copies the config ID to the clipboard" + -- installed by AI Studio UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T833849470"] = "installed by AI Studio" @@ -4546,8 +4636,8 @@ UI_TEXT_CONTENT["AISTUDIO::PAGES::HOME::T1702902297"] = "Introduction" -- Vision UI_TEXT_CONTENT["AISTUDIO::PAGES::HOME::T1892426825"] = "Vision" --- You are not tied to any single provider. Instead, you might choose the provider that best suits your needs. Right now, we support OpenAI (GPT4o, o1, etc.), Mistral, Anthropic (Claude), Google Gemini, xAI (Grok), DeepSeek, Alibaba Cloud (Qwen), Hugging Face, and self-hosted models using llama.cpp, ollama, LM Studio, Groq, or Fireworks. For scientists and employees of research institutions, we also support Helmholtz and GWDG AI services. These are available through federated logins like eduGAIN to all 18 Helmholtz Centers, the Max Planck Society, most German, and many international universities. -UI_TEXT_CONTENT["AISTUDIO::PAGES::HOME::T2217921237"] = "You are not tied to any single provider. Instead, you might choose the provider that best suits your needs. Right now, we support OpenAI (GPT4o, o1, etc.), Mistral, Anthropic (Claude), Google Gemini, xAI (Grok), DeepSeek, Alibaba Cloud (Qwen), Hugging Face, and self-hosted models using llama.cpp, ollama, LM Studio, Groq, or Fireworks. For scientists and employees of research institutions, we also support Helmholtz and GWDG AI services. These are available through federated logins like eduGAIN to all 18 Helmholtz Centers, the Max Planck Society, most German, and many international universities." +-- You are not tied to any single provider. Instead, you might choose the provider that best suits your needs. Right now, we support OpenAI (GPT5, o1, etc.), Perplexity, Mistral, Anthropic (Claude), Google Gemini, xAI (Grok), DeepSeek, Alibaba Cloud (Qwen), Hugging Face, and self-hosted models using vLLM, llama.cpp, ollama, LM Studio, Groq, or Fireworks. For scientists and employees of research institutions, we also support Helmholtz and GWDG AI services. These are available through federated logins like eduGAIN to all 18 Helmholtz Centers, the Max Planck Society, most German, and many international universities. +UI_TEXT_CONTENT["AISTUDIO::PAGES::HOME::T2183503084"] = "You are not tied to any single provider. Instead, you might choose the provider that best suits your needs. Right now, we support OpenAI (GPT5, o1, etc.), Perplexity, Mistral, Anthropic (Claude), Google Gemini, xAI (Grok), DeepSeek, Alibaba Cloud (Qwen), Hugging Face, and self-hosted models using vLLM, llama.cpp, ollama, LM Studio, Groq, or Fireworks. For scientists and employees of research institutions, we also support Helmholtz and GWDG AI services. These are available through federated logins like eduGAIN to all 18 Helmholtz Centers, the Max Planck Society, most German, and many international universities." -- Let's get started UI_TEXT_CONTENT["AISTUDIO::PAGES::HOME::T2331588413"] = "Let's get started" @@ -4792,6 +4882,9 @@ UI_TEXT_CONTENT["AISTUDIO::PROVIDER::LLMPROVIDERSEXTENSIONS::T3424652889"] = "Un -- no model selected UI_TEXT_CONTENT["AISTUDIO::PROVIDER::MODEL::T2234274832"] = "no model selected" +-- Sources +UI_TEXT_CONTENT["AISTUDIO::PROVIDER::SOURCEEXTENSIONS::T2730980305"] = "Sources" + -- Use no chat template UI_TEXT_CONTENT["AISTUDIO::SETTINGS::CHATTEMPLATE::T4258819635"] = "Use no chat template" @@ -4840,6 +4933,9 @@ UI_TEXT_CONTENT["AISTUDIO::SETTINGS::CONFIGURATIONSELECTDATAFACTORY::T2128088682 -- Navigation expands on mouse hover UI_TEXT_CONTENT["AISTUDIO::SETTINGS::CONFIGURATIONSELECTDATAFACTORY::T2195945406"] = "Navigation expands on mouse hover" +-- Install updates manually +UI_TEXT_CONTENT["AISTUDIO::SETTINGS::CONFIGURATIONSELECTDATAFACTORY::T220653235"] = "Install updates manually" + -- Also show features ready for release; these should be stable UI_TEXT_CONTENT["AISTUDIO::SETTINGS::CONFIGURATIONSELECTDATAFACTORY::T2301448762"] = "Also show features ready for release; these should be stable" @@ -4879,6 +4975,9 @@ UI_TEXT_CONTENT["AISTUDIO::SETTINGS::CONFIGURATIONSELECTDATAFACTORY::T3137986690 -- Delete disappearing chats older than 180 days UI_TEXT_CONTENT["AISTUDIO::SETTINGS::CONFIGURATIONSELECTDATAFACTORY::T3491430707"] = "Delete disappearing chats older than 180 days" +-- Install updates automatically +UI_TEXT_CONTENT["AISTUDIO::SETTINGS::CONFIGURATIONSELECTDATAFACTORY::T3569059463"] = "Install updates automatically" + -- Disable workspaces UI_TEXT_CONTENT["AISTUDIO::SETTINGS::CONFIGURATIONSELECTDATAFACTORY::T3612390107"] = "Disable workspaces" @@ -5413,9 +5512,6 @@ UI_TEXT_CONTENT["AISTUDIO::TOOLS::PLUGINSYSTEM::PLUGINCONFIGURATION::T1148682011 -- The CONFIG table does not exist or is not a valid table. UI_TEXT_CONTENT["AISTUDIO::TOOLS::PLUGINSYSTEM::PLUGINCONFIGURATION::T3331620576"] = "The CONFIG table does not exist or is not a valid table." --- The LLM_PROVIDERS table does not exist or is not a valid table. -UI_TEXT_CONTENT["AISTUDIO::TOOLS::PLUGINSYSTEM::PLUGINCONFIGURATION::T806592324"] = "The LLM_PROVIDERS table does not exist or is not a valid table." - -- The field IETF_TAG does not exist or is not a valid string. UI_TEXT_CONTENT["AISTUDIO::TOOLS::PLUGINSYSTEM::PLUGINLANGUAGE::T1796010240"] = "The field IETF_TAG does not exist or is not a valid string." @@ -5542,6 +5638,9 @@ UI_TEXT_CONTENT["AISTUDIO::TOOLS::SERVICES::RUSTSERVICE::SECRETS::T4007657575"] -- No update found. UI_TEXT_CONTENT["AISTUDIO::TOOLS::SERVICES::UPDATESERVICE::T1015418291"] = "No update found." +-- Failed to install update automatically. Please try again manually. +UI_TEXT_CONTENT["AISTUDIO::TOOLS::SERVICES::UPDATESERVICE::T3709709946"] = "Failed to install update automatically. Please try again manually." + -- The hostname is not a valid HTTP(S) URL. UI_TEXT_CONTENT["AISTUDIO::TOOLS::VALIDATION::DATASOURCEVALIDATION::T1013354736"] = "The hostname is not a valid HTTP(S) URL." @@ -5644,5 +5743,8 @@ UI_TEXT_CONTENT["AISTUDIO::TOOLS::VALIDATION::PROVIDERVALIDATION::T497939286"] = -- Please select a model. UI_TEXT_CONTENT["AISTUDIO::TOOLS::VALIDATION::PROVIDERVALIDATION::T818893091"] = "Please select a model." +-- Unnamed workspace +UI_TEXT_CONTENT["AISTUDIO::TOOLS::WORKSPACEBEHAVIOUR::T1307384014"] = "Unnamed workspace" + -- Delete Chat UI_TEXT_CONTENT["AISTUDIO::TOOLS::WORKSPACEBEHAVIOUR::T2244038752"] = "Delete Chat" diff --git a/app/MindWork AI Studio/Assistants/LegalCheck/AssistantLegalCheck.razor b/app/MindWork AI Studio/Assistants/LegalCheck/AssistantLegalCheck.razor index 1e3d072b..5c27a42a 100644 --- a/app/MindWork AI Studio/Assistants/LegalCheck/AssistantLegalCheck.razor +++ b/app/MindWork AI Studio/Assistants/LegalCheck/AssistantLegalCheck.razor @@ -3,7 +3,7 @@ @if (!this.SettingsManager.ConfigurationData.LegalCheck.HideWebContentReader) { - + } diff --git a/app/MindWork AI Studio/Assistants/LegalCheck/AssistantLegalCheck.razor.cs b/app/MindWork AI Studio/Assistants/LegalCheck/AssistantLegalCheck.razor.cs index e39abbfa..c0b502ee 100644 --- a/app/MindWork AI Studio/Assistants/LegalCheck/AssistantLegalCheck.razor.cs +++ b/app/MindWork AI Studio/Assistants/LegalCheck/AssistantLegalCheck.razor.cs @@ -37,11 +37,27 @@ public partial class AssistantLegalCheck : AssistantBaseCore false; + protected override bool MightPreselectValues() + { + if (this.SettingsManager.ConfigurationData.LegalCheck.PreselectOptions) + { + this.showWebContentReader = this.SettingsManager.ConfigurationData.LegalCheck.PreselectWebContentReader; + this.useContentCleanerAgent = this.SettingsManager.ConfigurationData.LegalCheck.PreselectContentCleanerAgent; + return true; + } + + return false; + } + + private bool showWebContentReader; + private bool useContentCleanerAgent; private bool isAgentRunning; private string inputLegalDocument = string.Empty; private string inputQuestions = string.Empty; diff --git a/app/MindWork AI Studio/Assistants/TextSummarizer/AssistantTextSummarizer.razor b/app/MindWork AI Studio/Assistants/TextSummarizer/AssistantTextSummarizer.razor index 267982e1..f235e95a 100644 --- a/app/MindWork AI Studio/Assistants/TextSummarizer/AssistantTextSummarizer.razor +++ b/app/MindWork AI Studio/Assistants/TextSummarizer/AssistantTextSummarizer.razor @@ -3,11 +3,12 @@ @if (!this.SettingsManager.ConfigurationData.TextSummarizer.HideWebContentReader) { - + } + \ No newline at end of file diff --git a/app/MindWork AI Studio/Assistants/TextSummarizer/AssistantTextSummarizer.razor.cs b/app/MindWork AI Studio/Assistants/TextSummarizer/AssistantTextSummarizer.razor.cs index 89f81e0d..257ff39c 100644 --- a/app/MindWork AI Studio/Assistants/TextSummarizer/AssistantTextSummarizer.razor.cs +++ b/app/MindWork AI Studio/Assistants/TextSummarizer/AssistantTextSummarizer.razor.cs @@ -12,13 +12,13 @@ public partial class AssistantTextSummarizer : AssistantBaseCore T("Summarize long text into a shorter version while retaining the main points. You might want to change the language of the summary to make it more readable. It is also possible to change the complexity of the summary to make it easy to understand."); protected override string SystemPrompt => - """ - You get a long text as input. The user wants to get a summary of the text. - The user might want to change the language of the summary. In this case, - you should provide a summary in the requested language. Eventually, the user - want to change the complexity of the text. In this case, you should provide - a summary with the requested complexity. In any case, do not add any information. - """; + $""" + You get a long text as input. The text is marked with ```. The user wants to get a summary of the text. + {this.selectedTargetLanguage.PromptSummarizing(this.customTargetLanguage)} + {this.selectedComplexity.Prompt(this.expertInField)} + {this.PromptImportantAspects()} + In any case, only use information that is provided in the text for the summary. + """; protected override bool AllowProfiles => false; @@ -40,10 +40,13 @@ public partial class AssistantTextSummarizer : AssistantBaseCore + } diff --git a/app/MindWork AI Studio/Assistants/Translation/AssistantTranslation.razor.cs b/app/MindWork AI Studio/Assistants/Translation/AssistantTranslation.razor.cs index 5a45f3ae..51359e40 100644 --- a/app/MindWork AI Studio/Assistants/Translation/AssistantTranslation.razor.cs +++ b/app/MindWork AI Studio/Assistants/Translation/AssistantTranslation.razor.cs @@ -40,6 +40,8 @@ public partial class AssistantTranslation : AssistantBaseCore public sealed record ChatThread { + private static readonly ILogger LOGGER = Program.LOGGER_FACTORY.CreateLogger(); + /// /// The unique identifier of the chat thread. /// @@ -59,11 +61,6 @@ public sealed record ChatThread /// The name of the chat thread. Usually generated by an AI model or manually edited by the user. /// public string Name { get; set; } = string.Empty; - - /// - /// The seed for the chat thread. Some providers use this to generate deterministic results. - /// - public int Seed { get; init; } /// /// The current system prompt for the chat thread. @@ -87,9 +84,8 @@ public sealed record ChatThread /// /// The settings manager instance to use. /// The chat thread to prepare the system prompt for. - /// The logger instance to use. /// The prepared system prompt. - public string PrepareSystemPrompt(SettingsManager settingsManager, ChatThread chatThread, ILogger logger) + public string PrepareSystemPrompt(SettingsManager settingsManager, ChatThread chatThread) { // // Use the information from the chat template, if provided. Otherwise, use the default system prompt @@ -109,7 +105,7 @@ public sealed record ChatThread else { var chatTemplate = settingsManager.ConfigurationData.ChatTemplates.FirstOrDefault(x => x.Id == chatThread.SelectedChatTemplate); - if(chatTemplate == default) + if(chatTemplate == null) systemPromptTextWithChatTemplate = chatThread.SystemPrompt; else { @@ -126,7 +122,7 @@ public sealed record ChatThread // default system prompt: chatThread = chatThread with { SystemPrompt = systemPromptTextWithChatTemplate }; - logger.LogInformation(logMessage); + LOGGER.LogInformation(logMessage); // // Add augmented data, if available: @@ -144,9 +140,9 @@ public sealed record ChatThread }; if(isAugmentedDataAvailable) - logger.LogInformation("Augmented data is available for the chat thread."); + LOGGER.LogInformation("Augmented data is available for the chat thread."); else - logger.LogInformation("No augmented data is available for the chat thread."); + LOGGER.LogInformation("No augmented data is available for the chat thread."); // @@ -182,7 +178,7 @@ public sealed record ChatThread } } - logger.LogInformation(logMessage); + LOGGER.LogInformation(logMessage); return systemPromptText; } diff --git a/app/MindWork AI Studio/Chat/ContentBlockComponent.razor b/app/MindWork AI Studio/Chat/ContentBlockComponent.razor index 9f3da228..e1cfcb90 100644 --- a/app/MindWork AI Studio/Chat/ContentBlockComponent.razor +++ b/app/MindWork AI Studio/Chat/ContentBlockComponent.razor @@ -1,5 +1,7 @@ @using AIStudio.Tools @using MudBlazor +@using AIStudio.Components +@using AIStudio.Provider @inherits AIStudio.Components.MSGComponentBase @@ -14,6 +16,14 @@ + @if (this.Content.Sources.Count > 0) + { + + + + + + } @if (this.IsSecondToLastBlock && this.Role is ChatRole.USER && this.EditLastUserBlockFunc is not null) { @@ -38,9 +48,7 @@ } - - - + @@ -72,7 +80,11 @@ } else { - + + @if (textContent.Sources.Count > 0) + { + + } } } } diff --git a/app/MindWork AI Studio/Chat/ContentBlockComponent.razor.cs b/app/MindWork AI Studio/Chat/ContentBlockComponent.razor.cs index 47adb668..1f5c86b7 100644 --- a/app/MindWork AI Studio/Chat/ContentBlockComponent.razor.cs +++ b/app/MindWork AI Studio/Chat/ContentBlockComponent.razor.cs @@ -1,5 +1,4 @@ using AIStudio.Components; -using AIStudio.Tools.Services; using Microsoft.AspNetCore.Components; @@ -61,12 +60,6 @@ public partial class ContentBlockComponent : MSGComponentBase [Parameter] public Func RegenerateEnabled { get; set; } = () => false; - [Inject] - private RustService RustService { get; init; } = null!; - - [Inject] - private ISnackbar Snackbar { get; init; } = null!; - [Inject] private IDialogService DialogService { get; init; } = null!; @@ -115,29 +108,6 @@ public partial class ContentBlockComponent : MSGComponentBase } #endregion - - /// - /// Copy this block's content to the clipboard. - /// - private async Task CopyToClipboard() - { - switch (this.Type) - { - case ContentType.TEXT: - var textContent = (ContentText) this.Content; - await this.RustService.CopyText2Clipboard(this.Snackbar, textContent.Text); - break; - - default: - this.Snackbar.Add(T("Cannot copy this content type to clipboard!"), Severity.Error, config => - { - config.Icon = Icons.Material.Filled.ContentCopy; - config.IconSize = Size.Large; - config.IconColor = Color.Error; - }); - break; - } - } private string CardClasses => $"my-2 rounded-lg {this.Class}"; diff --git a/app/MindWork AI Studio/Chat/ContentImage.cs b/app/MindWork AI Studio/Chat/ContentImage.cs index 6fcf7f1e..f37ba652 100644 --- a/app/MindWork AI Studio/Chat/ContentImage.cs +++ b/app/MindWork AI Studio/Chat/ContentImage.cs @@ -27,6 +27,9 @@ public sealed class ContentImage : IContent, IImageSource [JsonIgnore] public Func StreamingEvent { get; set; } = () => Task.CompletedTask; + /// + public List Sources { get; set; } = []; + /// public Task CreateFromProviderAsync(IProvider provider, Model chatModel, IContent? lastPrompt, ChatThread? chatChatThread, CancellationToken token = default) { diff --git a/app/MindWork AI Studio/Chat/ContentText.cs b/app/MindWork AI Studio/Chat/ContentText.cs index 590bef35..a5f0ef4f 100644 --- a/app/MindWork AI Studio/Chat/ContentText.cs +++ b/app/MindWork AI Studio/Chat/ContentText.cs @@ -24,7 +24,7 @@ public sealed class ContentText : IContent public bool InitialRemoteWait { get; set; } /// - // [JsonIgnore] + [JsonIgnore] public bool IsStreaming { get; set; } /// @@ -35,6 +35,9 @@ public sealed class ContentText : IContent [JsonIgnore] public Func StreamingEvent { get; set; } = () => Task.CompletedTask; + /// + public List Sources { get; set; } = []; + /// public async Task CreateFromProviderAsync(IProvider provider, Model chatModel, IContent? lastPrompt, ChatThread? chatThread, CancellationToken token = default) { @@ -80,7 +83,7 @@ public sealed class ContentText : IContent this.InitialRemoteWait = true; // Iterate over the responses from the AI: - await foreach (var deltaText in provider.StreamChatCompletion(chatModel, chatThread, settings, token)) + await foreach (var contentStreamChunk in provider.StreamChatCompletion(chatModel, chatThread, settings, token)) { // When the user cancels the request, we stop the loop: if (token.IsCancellationRequested) @@ -91,7 +94,10 @@ public sealed class ContentText : IContent this.IsStreaming = true; // Add the response to the text: - this.Text += deltaText; + this.Text += contentStreamChunk; + + // Merge the sources: + this.Sources.MergeSources(contentStreamChunk.Sources); // Notify the UI that the content has changed, // depending on the energy saving mode: diff --git a/app/MindWork AI Studio/Chat/IContent.cs b/app/MindWork AI Studio/Chat/IContent.cs index c03f6574..fc71f760 100644 --- a/app/MindWork AI Studio/Chat/IContent.cs +++ b/app/MindWork AI Studio/Chat/IContent.cs @@ -37,6 +37,12 @@ public interface IContent /// [JsonIgnore] public Func StreamingDone { get; set; } + + /// + /// The provided sources, if any. + /// + [JsonIgnore] + public List Sources { get; set; } /// /// Uses the provider to create the content. diff --git a/app/MindWork AI Studio/Components/Changelog.Logs.cs b/app/MindWork AI Studio/Components/Changelog.Logs.cs index f7f5604e..c4dd11e8 100644 --- a/app/MindWork AI Studio/Components/Changelog.Logs.cs +++ b/app/MindWork AI Studio/Components/Changelog.Logs.cs @@ -13,6 +13,8 @@ public partial class Changelog public static readonly Log[] LOGS = [ + new (226, "v0.9.51, build 226 (2025-09-04 18:02 UTC)", "v0.9.51.md"), + new (225, "v0.9.50, build 225 (2025-08-10 16:40 UTC)", "v0.9.50.md"), new (224, "v0.9.49, build 224 (2025-07-02 12:12 UTC)", "v0.9.49.md"), new (223, "v0.9.48, build 223 (2025-06-10 13:15 UTC)", "v0.9.48.md"), new (222, "v0.9.47, build 222 (2025-06-02 18:25 UTC)", "v0.9.47.md"), diff --git a/app/MindWork AI Studio/Components/Changelog.razor b/app/MindWork AI Studio/Components/Changelog.razor index b83c659d..1afebfc3 100644 --- a/app/MindWork AI Studio/Components/Changelog.razor +++ b/app/MindWork AI Studio/Components/Changelog.razor @@ -6,4 +6,4 @@ } - \ No newline at end of file + \ No newline at end of file diff --git a/app/MindWork AI Studio/Components/ChatComponent.razor.cs b/app/MindWork AI Studio/Components/ChatComponent.razor.cs index 43f79a10..8359e0ee 100644 --- a/app/MindWork AI Studio/Components/ChatComponent.razor.cs +++ b/app/MindWork AI Studio/Components/ChatComponent.razor.cs @@ -18,9 +18,9 @@ public partial class ChatComponent : MSGComponentBase, IAsyncDisposable [Parameter] public EventCallback ChatThreadChanged { get; set; } - + [Parameter] - public AIStudio.Settings.Provider Provider { get; set; } + public AIStudio.Settings.Provider Provider { get; set; } = AIStudio.Settings.Provider.NONE; [Parameter] public EventCallback ProviderChanged { get; set; } @@ -34,9 +34,6 @@ public partial class ChatComponent : MSGComponentBase, IAsyncDisposable [Inject] private ILogger Logger { get; set; } = null!; - [Inject] - private ThreadSafeRandom RNG { get; init; } = null!; - [Inject] private IDialogService DialogService { get; init; } = null!; @@ -327,7 +324,9 @@ public partial class ChatComponent : MSGComponentBase, IAsyncDisposable private async Task ChatTemplateWasChanged(ChatTemplate chatTemplate) { this.currentChatTemplate = chatTemplate; - this.userInput = this.currentChatTemplate.PredefinedUserPrompt; + if(!string.IsNullOrWhiteSpace(this.currentChatTemplate.PredefinedUserPrompt)) + this.userInput = this.currentChatTemplate.PredefinedUserPrompt; + if(this.ChatThread is null) return; @@ -434,8 +433,7 @@ public partial class ChatComponent : MSGComponentBase, IAsyncDisposable ChatId = Guid.NewGuid(), DataSourceOptions = this.earlyDataSourceOptions, Name = this.ExtractThreadName(this.userInput), - Seed = this.RNG.Next(), - Blocks = this.currentChatTemplate == default ? [] : this.currentChatTemplate.ExampleConversation.Select(x => x.DeepClone()).ToList(), + Blocks = this.currentChatTemplate == ChatTemplate.NO_CHAT_TEMPLATE ? [] : this.currentChatTemplate.ExampleConversation.Select(x => x.DeepClone()).ToList(), }; await this.ChatThreadChanged.InvokeAsync(this.ChatThread); @@ -530,7 +528,7 @@ public partial class ChatComponent : MSGComponentBase, IAsyncDisposable // Use the selected provider to get the AI response. // By awaiting this line, we wait for the entire // content to be streamed. - this.ChatThread = await aiText.CreateFromProviderAsync(this.Provider.CreateProvider(this.Logger), this.Provider.Model, lastUserPrompt, this.ChatThread, this.cancellationTokenSource.Token); + this.ChatThread = await aiText.CreateFromProviderAsync(this.Provider.CreateProvider(), this.Provider.Model, lastUserPrompt, this.ChatThread, this.cancellationTokenSource.Token); } this.cancellationTokenSource = null; @@ -585,9 +583,9 @@ public partial class ChatComponent : MSGComponentBase, IAsyncDisposable // if (this.SettingsManager.ConfigurationData.Workspace.StorageBehavior is WorkspaceStorageBehavior.STORE_CHATS_MANUALLY && this.hasUnsavedChanges) { - var dialogParameters = new DialogParameters + var dialogParameters = new DialogParameters { - { "Message", "Are you sure you want to start a new chat? All unsaved changes will be lost." }, + { x => x.Message, "Are you sure you want to start a new chat? All unsaved changes will be lost." }, }; var dialogReference = await this.DialogService.ShowAsync("Delete Chat", dialogParameters, DialogOptions.FULLSCREEN); @@ -632,7 +630,7 @@ public partial class ChatComponent : MSGComponentBase, IAsyncDisposable default: case AddChatProviderBehavior.ADDED_CHATS_USE_LATEST_PROVIDER: - if(this.Provider == default) + if(this.Provider == AIStudio.Settings.Provider.NONE) { this.Provider = this.SettingsManager.GetPreselectedProvider(Tools.Components.CHAT); await this.ProviderChanged.InvokeAsync(this.Provider); @@ -672,8 +670,7 @@ public partial class ChatComponent : MSGComponentBase, IAsyncDisposable WorkspaceId = this.currentWorkspaceId, ChatId = Guid.NewGuid(), Name = string.Empty, - Seed = this.RNG.Next(), - Blocks = this.currentChatTemplate == default ? [] : this.currentChatTemplate.ExampleConversation.Select(x => x.DeepClone()).ToList(), + Blocks = this.currentChatTemplate == ChatTemplate.NO_CHAT_TEMPLATE ? [] : this.currentChatTemplate.ExampleConversation.Select(x => x.DeepClone()).ToList(), }; } @@ -693,9 +690,9 @@ public partial class ChatComponent : MSGComponentBase, IAsyncDisposable if (this.SettingsManager.ConfigurationData.Workspace.StorageBehavior is WorkspaceStorageBehavior.STORE_CHATS_MANUALLY && this.hasUnsavedChanges) { - var confirmationDialogParameters = new DialogParameters + var confirmationDialogParameters = new DialogParameters { - { "Message", T("Are you sure you want to move this chat? All unsaved changes will be lost.") }, + { x => x.Message, T("Are you sure you want to move this chat? All unsaved changes will be lost.") }, }; var confirmationDialogReference = await this.DialogService.ShowAsync("Unsaved Changes", confirmationDialogParameters, DialogOptions.FULLSCREEN); @@ -704,11 +701,11 @@ public partial class ChatComponent : MSGComponentBase, IAsyncDisposable return; } - var dialogParameters = new DialogParameters + var dialogParameters = new DialogParameters { - { "Message", T("Please select the workspace where you want to move the chat to.") }, - { "SelectedWorkspace", this.ChatThread?.WorkspaceId }, - { "ConfirmText", T("Move chat") }, + { x => x.Message, T("Please select the workspace where you want to move the chat to.") }, + { x => x.SelectedWorkspace, this.ChatThread?.WorkspaceId ?? Guid.Empty }, + { x => x.ConfirmText, T("Move chat") }, }; var dialogReference = await this.DialogService.ShowAsync(T("Move Chat to Workspace"), dialogParameters, DialogOptions.FULLSCREEN); @@ -795,7 +792,7 @@ public partial class ChatComponent : MSGComponentBase, IAsyncDisposable break; case LoadingChatProviderBehavior.ALWAYS_USE_LATEST_CHAT_PROVIDER: - if(this.Provider == default) + if(this.Provider == AIStudio.Settings.Provider.NONE) this.Provider = this.SettingsManager.GetPreselectedProvider(Tools.Components.CHAT); break; } @@ -813,9 +810,8 @@ public partial class ChatComponent : MSGComponentBase, IAsyncDisposable // Try to select the chat template: if (!string.IsNullOrWhiteSpace(chatChatTemplate)) { - this.currentChatTemplate = this.SettingsManager.ConfigurationData.ChatTemplates.FirstOrDefault(x => x.Id == chatChatTemplate); - if(this.currentChatTemplate == default) - this.currentChatTemplate = ChatTemplate.NO_CHAT_TEMPLATE; + var selectedTemplate = this.SettingsManager.ConfigurationData.ChatTemplates.FirstOrDefault(x => x.Id == chatChatTemplate); + this.currentChatTemplate = selectedTemplate ?? ChatTemplate.NO_CHAT_TEMPLATE; } } diff --git a/app/MindWork AI Studio/Components/ConfigurationBase.razor b/app/MindWork AI Studio/Components/ConfigurationBase.razor index 2233093a..875a08c7 100644 --- a/app/MindWork AI Studio/Components/ConfigurationBase.razor +++ b/app/MindWork AI Studio/Components/ConfigurationBase.razor @@ -1 +1,23 @@ -@inherits MSGComponentBase \ No newline at end of file +@inherits MSGComponentBase + +@if (this.Body is not null) +{ + @if (!this.Disabled() && this.IsLocked()) + { + + + @* MudTooltip.RootStyle is set as a workaround for issue -> https://github.com/MudBlazor/MudBlazor/issues/10882 *@ + + + + @this.Body + + + } + else + { + + @this.Body + + } +} \ No newline at end of file diff --git a/app/MindWork AI Studio/Components/ConfigurationBase.razor.cs b/app/MindWork AI Studio/Components/ConfigurationBase.razor.cs index 10f4ae3f..59ef82b2 100644 --- a/app/MindWork AI Studio/Components/ConfigurationBase.razor.cs +++ b/app/MindWork AI Studio/Components/ConfigurationBase.razor.cs @@ -5,7 +5,7 @@ namespace AIStudio.Components; /// /// A base class for configuration options. /// -public partial class ConfigurationBase : MSGComponentBase +public abstract partial class ConfigurationBase : MSGComponentBase { /// /// The description of the option, i.e., the name. Should be @@ -26,7 +26,42 @@ public partial class ConfigurationBase : MSGComponentBase [Parameter] public Func Disabled { get; set; } = () => false; - protected const string MARGIN_CLASS = "mb-6"; + /// + /// Is the option locked by a configuration plugin? + /// + [Parameter] + public Func IsLocked { get; set; } = () => false; + + /// + /// Should the option be stretched to fill the available space? + /// + protected abstract bool Stretch { get; } + + /// + /// The CSS class to apply to the component. + /// + protected virtual string GetClassForBase => string.Empty; + + /// + /// The visual variant of the option. + /// + protected virtual Variant Variant => Variant.Text; + + /// + /// The label to display for the option. + /// + protected virtual string Label => string.Empty; + + private StretchItems StretchItems => this.Stretch ? StretchItems.End : StretchItems.None; + + protected bool IsDisabled => this.Disabled() || this.IsLocked(); + + private string Classes => $"{this.GetClassForBase} {MARGIN_CLASS}"; + + private protected virtual RenderFragment? Body => null; + + private const string MARGIN_CLASS = "mb-6"; + protected static readonly Dictionary SPELLCHECK_ATTRIBUTES = new(); #region Overrides of ComponentBase @@ -39,7 +74,9 @@ public partial class ConfigurationBase : MSGComponentBase } #endregion - + + private string TB(string fallbackEN) => this.T(fallbackEN, typeof(ConfigurationBase).Namespace, nameof(ConfigurationBase)); + protected async Task InformAboutChange() => await this.MessageBus.SendMessage(this, Event.CONFIGURATION_CHANGED); #region Overrides of MSGComponentBase diff --git a/app/MindWork AI Studio/Components/ConfigurationBaseCore.cs b/app/MindWork AI Studio/Components/ConfigurationBaseCore.cs new file mode 100644 index 00000000..8fe80f6c --- /dev/null +++ b/app/MindWork AI Studio/Components/ConfigurationBaseCore.cs @@ -0,0 +1,15 @@ +using Microsoft.AspNetCore.Components; +using Microsoft.AspNetCore.Components.Rendering; + +namespace AIStudio.Components; + +public abstract class ConfigurationBaseCore : ConfigurationBase +{ + private protected sealed override RenderFragment Body => this.BuildRenderTree; + + // Allow content to be provided by a .razor file but without + // overriding the content of the base class + protected new virtual void BuildRenderTree(RenderTreeBuilder builder) + { + } +} \ No newline at end of file diff --git a/app/MindWork AI Studio/Components/ConfigurationMinConfidenceSelection.razor b/app/MindWork AI Studio/Components/ConfigurationMinConfidenceSelection.razor index c3f21593..93a47e8b 100644 --- a/app/MindWork AI Studio/Components/ConfigurationMinConfidenceSelection.razor +++ b/app/MindWork AI Studio/Components/ConfigurationMinConfidenceSelection.razor @@ -1,3 +1,3 @@ @using AIStudio.Settings @inherits MSGComponentBase - \ No newline at end of file + \ No newline at end of file diff --git a/app/MindWork AI Studio/Components/ConfigurationMinConfidenceSelection.razor.cs b/app/MindWork AI Studio/Components/ConfigurationMinConfidenceSelection.razor.cs index 858bbc01..b5d130c8 100644 --- a/app/MindWork AI Studio/Components/ConfigurationMinConfidenceSelection.razor.cs +++ b/app/MindWork AI Studio/Components/ConfigurationMinConfidenceSelection.razor.cs @@ -18,17 +18,17 @@ public partial class ConfigurationMinConfidenceSelection : MSGComponentBase [Parameter] public Action SelectionUpdate { get; set; } = _ => { }; - /// - /// Is the selection component disabled? - /// - [Parameter] - public Func Disabled { get; set; } = () => false; - /// /// Boolean value indicating whether the selection is restricted to a global minimum confidence level. /// [Parameter] public bool RestrictToGlobalMinimumConfidence { get; set; } + + [Parameter] + public Func Disabled { get; set; } = () => false; + + [Parameter] + public Func IsLocked { get; set; } = () => false; private ConfidenceLevel FilteredSelectedValue() { diff --git a/app/MindWork AI Studio/Components/ConfigurationMultiSelect.razor b/app/MindWork AI Studio/Components/ConfigurationMultiSelect.razor index 9c974e02..6d9d7b89 100644 --- a/app/MindWork AI Studio/Components/ConfigurationMultiSelect.razor +++ b/app/MindWork AI Studio/Components/ConfigurationMultiSelect.razor @@ -1,4 +1,4 @@ -@inherits ConfigurationBase +@inherits ConfigurationBaseCore @typeparam TData @foreach (var data in this.Data) { diff --git a/app/MindWork AI Studio/Components/ConfigurationMultiSelect.razor.cs b/app/MindWork AI Studio/Components/ConfigurationMultiSelect.razor.cs index bdbe1063..f2e5ed51 100644 --- a/app/MindWork AI Studio/Components/ConfigurationMultiSelect.razor.cs +++ b/app/MindWork AI Studio/Components/ConfigurationMultiSelect.razor.cs @@ -8,7 +8,7 @@ namespace AIStudio.Components; /// Configuration component for selecting many values from a list. /// /// The type of the value to select. -public partial class ConfigurationMultiSelect : ConfigurationBase +public partial class ConfigurationMultiSelect : ConfigurationBaseCore { /// /// The data to select from. @@ -28,6 +28,17 @@ public partial class ConfigurationMultiSelect : ConfigurationBase [Parameter] public Action> SelectionUpdate { get; set; } = _ => { }; + #region Overrides of ConfigurationBase + + /// + protected override bool Stretch => true; + + protected override Variant Variant => Variant.Outlined; + + protected override string Label => this.OptionDescription; + + #endregion + private async Task OptionChanged(IEnumerable? updatedValues) { if(updatedValues is null) @@ -39,8 +50,6 @@ public partial class ConfigurationMultiSelect : ConfigurationBase await this.InformAboutChange(); } - private static string GetClass => $"{MARGIN_CLASS} rounded-lg"; - private string GetMultiSelectionText(List? selectedValues) { if(selectedValues is null || selectedValues.Count == 0) diff --git a/app/MindWork AI Studio/Components/ConfigurationOption.razor b/app/MindWork AI Studio/Components/ConfigurationOption.razor index 73ffe235..a2ad673e 100644 --- a/app/MindWork AI Studio/Components/ConfigurationOption.razor +++ b/app/MindWork AI Studio/Components/ConfigurationOption.razor @@ -1,7 +1,5 @@ -@inherits ConfigurationBase +@inherits ConfigurationBaseCore - - - @(this.State() ? this.LabelOn : this.LabelOff) - - \ No newline at end of file + + @(this.State() ? this.LabelOn : this.LabelOff) + \ No newline at end of file diff --git a/app/MindWork AI Studio/Components/ConfigurationOption.razor.cs b/app/MindWork AI Studio/Components/ConfigurationOption.razor.cs index b3bed551..bbd0da1a 100644 --- a/app/MindWork AI Studio/Components/ConfigurationOption.razor.cs +++ b/app/MindWork AI Studio/Components/ConfigurationOption.razor.cs @@ -5,7 +5,7 @@ namespace AIStudio.Components; /// /// Configuration component for any boolean option. /// -public partial class ConfigurationOption : ConfigurationBase +public partial class ConfigurationOption : ConfigurationBaseCore { /// /// Text to display when the option is true. @@ -31,6 +31,19 @@ public partial class ConfigurationOption : ConfigurationBase [Parameter] public Action StateUpdate { get; set; } = _ => { }; + #region Overrides of ConfigurationBase + + /// + protected override bool Stretch => true; + + /// + protected override Variant Variant => Variant.Outlined; + + /// + protected override string Label => this.OptionDescription; + + #endregion + private async Task OptionChanged(bool updatedState) { this.StateUpdate(updatedState); diff --git a/app/MindWork AI Studio/Components/ConfigurationProviderSelection.razor b/app/MindWork AI Studio/Components/ConfigurationProviderSelection.razor index 4653822f..be6a93cd 100644 --- a/app/MindWork AI Studio/Components/ConfigurationProviderSelection.razor +++ b/app/MindWork AI Studio/Components/ConfigurationProviderSelection.razor @@ -1,2 +1,2 @@ @inherits MSGComponentBase - \ No newline at end of file + \ No newline at end of file diff --git a/app/MindWork AI Studio/Components/ConfigurationProviderSelection.razor.cs b/app/MindWork AI Studio/Components/ConfigurationProviderSelection.razor.cs index 28298f75..39ae76be 100644 --- a/app/MindWork AI Studio/Components/ConfigurationProviderSelection.razor.cs +++ b/app/MindWork AI Studio/Components/ConfigurationProviderSelection.razor.cs @@ -20,27 +20,17 @@ public partial class ConfigurationProviderSelection : MSGComponentBase [Parameter] public IEnumerable> Data { get; set; } = new List>(); - /// - /// Is the selection component disabled? - /// - [Parameter] - public Func Disabled { get; set; } = () => false; - [Parameter] public Func HelpText { get; set; } = () => TB("Select a provider that is preselected."); [Parameter] public Tools.Components Component { get; set; } = Tools.Components.NONE; - - #region Overrides of ComponentBase - - protected override async Task OnParametersSetAsync() - { - this.ApplyFilters([], [ Event.CONFIGURATION_CHANGED ]); - await base.OnParametersSetAsync(); - } - - #endregion + + [Parameter] + public Func Disabled { get; set; } = () => false; + + [Parameter] + public Func IsLocked { get; set; } = () => false; [SuppressMessage("Usage", "MWAIS0001:Direct access to `Providers` is not allowed")] private IEnumerable> FilteredData() @@ -52,6 +42,9 @@ public partial class ConfigurationProviderSelection : MSGComponentBase foreach (var providerId in this.Data) { var provider = this.SettingsManager.ConfigurationData.Providers.FirstOrDefault(x => x.Id == providerId.Value); + if (provider is null) + continue; + if (provider.UsedLLMProvider.GetConfidence(this.SettingsManager).Level >= minimumLevel) yield return providerId; } diff --git a/app/MindWork AI Studio/Components/ConfigurationSelect.razor b/app/MindWork AI Studio/Components/ConfigurationSelect.razor index 99120aa9..c3459101 100644 --- a/app/MindWork AI Studio/Components/ConfigurationSelect.razor +++ b/app/MindWork AI Studio/Components/ConfigurationSelect.razor @@ -1,7 +1,7 @@ -@inherits ConfigurationBase -@typeparam T +@inherits ConfigurationBaseCore +@typeparam TConfig - + @foreach (var data in this.Data) { diff --git a/app/MindWork AI Studio/Components/ConfigurationSelect.razor.cs b/app/MindWork AI Studio/Components/ConfigurationSelect.razor.cs index 8fb876c4..14c73eea 100644 --- a/app/MindWork AI Studio/Components/ConfigurationSelect.razor.cs +++ b/app/MindWork AI Studio/Components/ConfigurationSelect.razor.cs @@ -7,33 +7,43 @@ namespace AIStudio.Components; /// /// Configuration component for selecting a value from a list. /// -/// The type of the value to select. -public partial class ConfigurationSelect : ConfigurationBase +/// The type of the value to select. +public partial class ConfigurationSelect : ConfigurationBaseCore { /// /// The data to select from. /// [Parameter] - public IEnumerable> Data { get; set; } = []; + public IEnumerable> Data { get; set; } = []; /// /// The selected value. /// [Parameter] - public Func SelectedValue { get; set; } = () => default!; + public Func SelectedValue { get; set; } = () => default!; /// /// An action that is called when the selection changes. /// [Parameter] - public Action SelectionUpdate { get; set; } = _ => { }; + public Action SelectionUpdate { get; set; } = _ => { }; - private async Task OptionChanged(T updatedValue) + #region Overrides of ConfigurationBase + + /// + protected override bool Stretch => true; + + /// + protected override string Label => this.OptionDescription; + + protected override Variant Variant => Variant.Outlined; + + #endregion + + private async Task OptionChanged(TConfig updatedValue) { this.SelectionUpdate(updatedValue); await this.SettingsManager.StoreSettings(); await this.InformAboutChange(); } - - private static string GetClass => $"{MARGIN_CLASS} rounded-lg"; } \ No newline at end of file diff --git a/app/MindWork AI Studio/Components/ConfigurationSlider.razor b/app/MindWork AI Studio/Components/ConfigurationSlider.razor index b42f4a4d..b04b511d 100644 --- a/app/MindWork AI Studio/Components/ConfigurationSlider.razor +++ b/app/MindWork AI Studio/Components/ConfigurationSlider.razor @@ -1,8 +1,6 @@ @typeparam T -@inherits ConfigurationBase +@inherits ConfigurationBaseCore - - - @this.Value() @this.Unit - - \ No newline at end of file + + @this.Value() @this.Unit + \ No newline at end of file diff --git a/app/MindWork AI Studio/Components/ConfigurationSlider.razor.cs b/app/MindWork AI Studio/Components/ConfigurationSlider.razor.cs index 7d91cb8b..429119e1 100644 --- a/app/MindWork AI Studio/Components/ConfigurationSlider.razor.cs +++ b/app/MindWork AI Studio/Components/ConfigurationSlider.razor.cs @@ -4,7 +4,7 @@ using Microsoft.AspNetCore.Components; namespace AIStudio.Components; -public partial class ConfigurationSlider : ConfigurationBase where T : struct, INumber +public partial class ConfigurationSlider : ConfigurationBaseCore where T : struct, INumber { /// /// The minimum value for the slider. @@ -42,6 +42,18 @@ public partial class ConfigurationSlider : ConfigurationBase where T : struct [Parameter] public Action ValueUpdate { get; set; } = _ => { }; + #region Overrides of ConfigurationBase + + /// + protected override bool Stretch => true; + + /// + protected override Variant Variant => Variant.Outlined; + + protected override string Label => this.OptionDescription; + + #endregion + #region Overrides of ComponentBase protected override async Task OnInitializedAsync() diff --git a/app/MindWork AI Studio/Components/ConfigurationText.razor b/app/MindWork AI Studio/Components/ConfigurationText.razor index a3cc3233..80ec63ae 100644 --- a/app/MindWork AI Studio/Components/ConfigurationText.razor +++ b/app/MindWork AI Studio/Components/ConfigurationText.razor @@ -1,12 +1,10 @@ -@inherits ConfigurationBase +@inherits ConfigurationBaseCore \ No newline at end of file diff --git a/app/MindWork AI Studio/Components/ConfigurationText.razor.cs b/app/MindWork AI Studio/Components/ConfigurationText.razor.cs index 4e6bb7f9..5074fa73 100644 --- a/app/MindWork AI Studio/Components/ConfigurationText.razor.cs +++ b/app/MindWork AI Studio/Components/ConfigurationText.razor.cs @@ -4,7 +4,7 @@ using Timer = System.Timers.Timer; namespace AIStudio.Components; -public partial class ConfigurationText : ConfigurationBase +public partial class ConfigurationText : ConfigurationBaseCore { /// /// The text used for the textfield. @@ -43,10 +43,21 @@ public partial class ConfigurationText : ConfigurationBase public int MaxLines { get; set; } = 12; private string internalText = string.Empty; - private Timer timer = new(TimeSpan.FromMilliseconds(500)) + private readonly Timer timer = new(TimeSpan.FromMilliseconds(500)) { AutoReset = false }; + + #region Overrides of ConfigurationBase + + /// + protected override bool Stretch => true; + + protected override Variant Variant => Variant.Outlined; + + protected override string Label => this.OptionDescription; + + #endregion #region Overrides of ConfigurationBase @@ -56,8 +67,6 @@ public partial class ConfigurationText : ConfigurationBase await base.OnInitializedAsync(); } - #region Overrides of ComponentBase - protected override async Task OnParametersSetAsync() { this.internalText = this.Text(); @@ -66,8 +75,6 @@ public partial class ConfigurationText : ConfigurationBase #endregion - #endregion - private bool AutoGrow => this.NumLines > 1; private int GetMaxLines => this.AutoGrow ? this.MaxLines : 1; @@ -85,4 +92,23 @@ public partial class ConfigurationText : ConfigurationBase await this.SettingsManager.StoreSettings(); await this.InformAboutChange(); } + + #region Overrides of MSGComponentBase + + protected override void DisposeResources() + { + try + { + this.timer.Stop(); + this.timer.Dispose(); + } + catch + { + // ignore + } + + base.DisposeResources(); + } + + #endregion } \ No newline at end of file diff --git a/app/MindWork AI Studio/Components/DebouncedTextField.razor.cs b/app/MindWork AI Studio/Components/DebouncedTextField.razor.cs index 885a8488..3ad55c6a 100644 --- a/app/MindWork AI Studio/Components/DebouncedTextField.razor.cs +++ b/app/MindWork AI Studio/Components/DebouncedTextField.razor.cs @@ -4,7 +4,7 @@ using Timer = System.Timers.Timer; namespace AIStudio.Components; -public partial class DebouncedTextField : MudComponentBase +public partial class DebouncedTextField : MudComponentBase, IDisposable { [Parameter] public string Label { get; set; } = string.Empty; @@ -50,12 +50,15 @@ public partial class DebouncedTextField : MudComponentBase private readonly Timer debounceTimer = new(); private string text = string.Empty; + private string lastParameterText = string.Empty; + private bool isInitialized; #region Overrides of ComponentBase protected override async Task OnInitializedAsync() { this.text = this.Text; + this.lastParameterText = this.Text; this.debounceTimer.AutoReset = false; this.debounceTimer.Interval = this.DebounceTime.TotalMilliseconds; this.debounceTimer.Elapsed += (_, _) => @@ -66,8 +69,31 @@ public partial class DebouncedTextField : MudComponentBase this.InvokeAsync(() => this.WhenTextCanged(this.text)); }; + this.isInitialized = true; await base.OnInitializedAsync(); } + + protected override async Task OnParametersSetAsync() + { + // Ensure the timer uses the latest debouncing interval: + if (!this.isInitialized) + return; + + if(Math.Abs(this.debounceTimer.Interval - this.DebounceTime.TotalMilliseconds) > 1) + this.debounceTimer.Interval = this.DebounceTime.TotalMilliseconds; + + // Only sync when the parent's parameter actually changed since the last change: + if (this.Text != this.lastParameterText) + { + this.text = this.Text; + this.lastParameterText = this.Text; + } + + this.debounceTimer.Stop(); + this.debounceTimer.Start(); + + await base.OnParametersSetAsync(); + } #endregion @@ -77,4 +103,21 @@ public partial class DebouncedTextField : MudComponentBase this.debounceTimer.Stop(); this.debounceTimer.Start(); } + + #region IDisposable + + public void Dispose() + { + try + { + this.debounceTimer.Stop(); + this.debounceTimer.Dispose(); + } + catch + { + // ignore + } + } + + #endregion } \ No newline at end of file diff --git a/app/MindWork AI Studio/Components/LockableButton.razor b/app/MindWork AI Studio/Components/LockableButton.razor new file mode 100644 index 00000000..825c5a62 --- /dev/null +++ b/app/MindWork AI Studio/Components/LockableButton.razor @@ -0,0 +1,5 @@ +@inherits ConfigurationBaseCore + + + @this.Text + \ No newline at end of file diff --git a/app/MindWork AI Studio/Components/LockableButton.razor.cs b/app/MindWork AI Studio/Components/LockableButton.razor.cs new file mode 100644 index 00000000..cbfbd910 --- /dev/null +++ b/app/MindWork AI Studio/Components/LockableButton.razor.cs @@ -0,0 +1,39 @@ +using Microsoft.AspNetCore.Components; + +namespace AIStudio.Components; + +public partial class LockableButton : ConfigurationBaseCore +{ + [Parameter] + public string Icon { get; set; } = Icons.Material.Filled.Info; + + [Parameter] + public Func OnClickAsync { get; set; } = () => Task.CompletedTask; + + [Parameter] + public Action OnClick { get; set; } = () => { }; + + [Parameter] + public string Text { get; set; } = string.Empty; + + [Parameter] + public string Class { get; set; } = string.Empty; + + #region Overrides of ConfigurationBase + + /// + protected override bool Stretch => false; + + protected override string GetClassForBase => this.Class; + + #endregion + + private async Task ClickAsync() + { + if (this.IsLocked() || this.Disabled()) + return; + + await this.OnClickAsync(); + this.OnClick(); + } +} \ No newline at end of file diff --git a/app/MindWork AI Studio/Components/MudCopyClipboardButton.razor b/app/MindWork AI Studio/Components/MudCopyClipboardButton.razor new file mode 100644 index 00000000..ed7c34ea --- /dev/null +++ b/app/MindWork AI Studio/Components/MudCopyClipboardButton.razor @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/app/MindWork AI Studio/Components/MudCopyClipboardButton.razor.cs b/app/MindWork AI Studio/Components/MudCopyClipboardButton.razor.cs new file mode 100644 index 00000000..644034f3 --- /dev/null +++ b/app/MindWork AI Studio/Components/MudCopyClipboardButton.razor.cs @@ -0,0 +1,90 @@ +using AIStudio.Chat; +using AIStudio.Tools.PluginSystem; +using AIStudio.Tools.Services; +using Microsoft.AspNetCore.Components; + +namespace AIStudio.Components; + +public partial class MudCopyClipboardButton : ComponentBase +{ + private static string TB(string fallbackEN) => I18N.I.T(fallbackEN, typeof(MudCopyClipboardButton).Namespace, nameof(MudCopyClipboardButton)); + + /// + /// The string, if you want to copy a string. + /// + [Parameter] + public string StringContent { get; set; } = string.Empty; + + /// + /// The content, if you want to copy content. + /// + [Parameter] + public IContent? Content { get; init; } + + /// + /// The content type, if you want to copy Content. + /// + [Parameter] + public ContentType Type { get; init; } = ContentType.NONE; + + /// + /// The tooltip that should be shown to the user. + /// + [Parameter] + public string TooltipMessage { get; set; } = TB("Copies the content to the clipboard"); + + /// + /// The size of the button. The default size is small. + /// + [Parameter] + public Size Size { get; set; } = Size.Small; + + [Inject] + private ISnackbar Snackbar { get; init; } = null!; + + [Inject] + private RustService RustService { get; init; } = null!; + + private async Task HandleCopyClick() + { + if (this.Type is ContentType.NONE) + await this.CopyToClipboard(this.StringContent); + else + await this.CopyToClipboard(this.Content); + } + + /// + /// Copy this the string to the clipboard. + /// + private async Task CopyToClipboard(string textContent) + { + await this.RustService.CopyText2Clipboard(this.Snackbar, textContent); + } + + /// + /// Copy this block's content to the clipboard. + /// + private async Task CopyToClipboard(IContent? contentToCopy) + { + if (contentToCopy is null) + return; + + switch (this.Type) + { + case ContentType.TEXT: + var textContent = (ContentText) contentToCopy; + await this.RustService.CopyText2Clipboard(this.Snackbar, textContent.Text); + break; + + default: + this.Snackbar.Add(TB("Cannot copy this content type to clipboard."), Severity.Error, config => + { + config.Icon = Icons.Material.Filled.ContentCopy; + config.IconSize = Size.Large; + config.IconColor = Color.Error; + }); + break; + } + } + +} \ No newline at end of file diff --git a/app/MindWork AI Studio/Components/ProfileSelection.razor b/app/MindWork AI Studio/Components/ProfileSelection.razor index b33a8b42..06dd03c7 100644 --- a/app/MindWork AI Studio/Components/ProfileSelection.razor +++ b/app/MindWork AI Studio/Components/ProfileSelection.razor @@ -11,7 +11,7 @@ } else { - + } diff --git a/app/MindWork AI Studio/Components/ProviderSelection.razor.cs b/app/MindWork AI Studio/Components/ProviderSelection.razor.cs index b476b19f..ded13ebd 100644 --- a/app/MindWork AI Studio/Components/ProviderSelection.razor.cs +++ b/app/MindWork AI Studio/Components/ProviderSelection.razor.cs @@ -11,9 +11,9 @@ public partial class ProviderSelection : MSGComponentBase { [CascadingParameter] public AssistantBase? AssistantBase { get; set; } - + [Parameter] - public AIStudio.Settings.Provider ProviderSettings { get; set; } + public AIStudio.Settings.Provider ProviderSettings { get; set; } = AIStudio.Settings.Provider.NONE; [Parameter] public EventCallback ProviderSettingsChanged { get; set; } @@ -32,7 +32,8 @@ public partial class ProviderSelection : MSGComponentBase { var minimumLevel = this.SettingsManager.GetMinimumConfidenceLevel(this.AssistantBase?.Component ?? Tools.Components.NONE); foreach (var provider in this.SettingsManager.ConfigurationData.Providers) - if (provider.UsedLLMProvider.GetConfidence(this.SettingsManager).Level >= minimumLevel) - yield return provider; + if (provider.UsedLLMProvider != LLMProviders.NONE) + if (provider.UsedLLMProvider.GetConfidence(this.SettingsManager).Level >= minimumLevel) + yield return provider; } } \ No newline at end of file diff --git a/app/MindWork AI Studio/Components/ReadWebContent.razor b/app/MindWork AI Studio/Components/ReadWebContent.razor index f5524a20..2a6aadb1 100644 --- a/app/MindWork AI Studio/Components/ReadWebContent.razor +++ b/app/MindWork AI Studio/Components/ReadWebContent.razor @@ -1,9 +1,9 @@ @inherits MSGComponentBase - - @if (this.showWebContentReader) + + @if (this.Preselect) { - + diff --git a/app/MindWork AI Studio/Dialogs/SingleInputDialog.razor b/app/MindWork AI Studio/Dialogs/SingleInputDialog.razor index 1583fc04..23c0537f 100644 --- a/app/MindWork AI Studio/Dialogs/SingleInputDialog.razor +++ b/app/MindWork AI Studio/Dialogs/SingleInputDialog.razor @@ -4,7 +4,9 @@ @this.Message - + + + diff --git a/app/MindWork AI Studio/Dialogs/SingleInputDialog.razor.cs b/app/MindWork AI Studio/Dialogs/SingleInputDialog.razor.cs index c4686571..01c5be54 100644 --- a/app/MindWork AI Studio/Dialogs/SingleInputDialog.razor.cs +++ b/app/MindWork AI Studio/Dialogs/SingleInputDialog.razor.cs @@ -20,9 +20,20 @@ public partial class SingleInputDialog : MSGComponentBase [Parameter] public Color ConfirmColor { get; set; } = Color.Error; + + [Parameter] + public bool AllowEmptyInput { get; set; } + [Parameter] + public string InputHeaderText { get; set; } = string.Empty; + + [Parameter] + public string EmptyInputErrorMessage { get; set; } = string.Empty; + private static readonly Dictionary USER_INPUT_ATTRIBUTES = new(); + private MudForm form = null!; + #region Overrides of ComponentBase protected override async Task OnInitializedAsync() @@ -34,7 +45,24 @@ public partial class SingleInputDialog : MSGComponentBase #endregion + private string GetInputHeaderText => string.IsNullOrWhiteSpace(this.InputHeaderText) ? T("Your Input") : this.InputHeaderText; + + private string? ValidateUserInput(string? value) + { + if (!this.AllowEmptyInput && string.IsNullOrWhiteSpace(value)) + return string.IsNullOrWhiteSpace(this.EmptyInputErrorMessage) ? T("Please enter a value.") : this.EmptyInputErrorMessage; + + return null; + } + private void Cancel() => this.MudDialog.Cancel(); - private void Confirm() => this.MudDialog.Close(DialogResult.Ok(this.UserInput)); + private async Task Confirm() + { + await this.form.Validate(); + if(!this.form.IsValid) + return; + + this.MudDialog.Close(DialogResult.Ok(this.UserInput)); + } } \ No newline at end of file diff --git a/app/MindWork AI Studio/Dialogs/UpdateDialog.razor b/app/MindWork AI Studio/Dialogs/UpdateDialog.razor index 9f3ef694..62f3dd7a 100644 --- a/app/MindWork AI Studio/Dialogs/UpdateDialog.razor +++ b/app/MindWork AI Studio/Dialogs/UpdateDialog.razor @@ -5,7 +5,7 @@ @this.HeaderText - + diff --git a/app/MindWork AI Studio/Layout/MainLayout.razor.cs b/app/MindWork AI Studio/Layout/MainLayout.razor.cs index 2367aff4..840e8608 100644 --- a/app/MindWork AI Studio/Layout/MainLayout.razor.cs +++ b/app/MindWork AI Studio/Layout/MainLayout.razor.cs @@ -92,7 +92,7 @@ public partial class MainLayout : LayoutComponentBase, IMessageBusReceiver, ILan [ Event.UPDATE_AVAILABLE, Event.CONFIGURATION_CHANGED, Event.COLOR_THEME_CHANGED, Event.SHOW_ERROR, Event.SHOW_ERROR, Event.SHOW_WARNING, Event.SHOW_SUCCESS, Event.STARTUP_PLUGIN_SYSTEM, - Event.PLUGINS_RELOADED + Event.PLUGINS_RELOADED, Event.INSTALL_UPDATE, ]); // Set the snackbar for the update service: @@ -143,6 +143,11 @@ public partial class MainLayout : LayoutComponentBase, IMessageBusReceiver, ILan { switch (triggeredEvent) { + case Event.INSTALL_UPDATE: + this.performingUpdate = true; + this.StateHasChanged(); + break; + case Event.UPDATE_AVAILABLE: if (data is UpdateResponse updateResponse) { @@ -215,7 +220,11 @@ public partial class MainLayout : LayoutComponentBase, IMessageBusReceiver, ILan await PluginFactory.TryDownloadingConfigPluginAsync(enterpriseEnvironment.ConfigurationId, enterpriseEnvironment.ConfigurationServerUrl); // Load (but not start) all plugins without waiting for them: + #if DEBUG + var pluginLoadingTimeout = new CancellationTokenSource(); + #else var pluginLoadingTimeout = new CancellationTokenSource(TimeSpan.FromSeconds(5)); + #endif await PluginFactory.LoadAll(pluginLoadingTimeout.Token); // Set up hot reloading for plugins: @@ -297,9 +306,9 @@ public partial class MainLayout : LayoutComponentBase, IMessageBusReceiver, ILan { if (await MessageBus.INSTANCE.SendMessageUseFirstResult(this, Event.HAS_CHAT_UNSAVED_CHANGES)) { - var dialogParameters = new DialogParameters + var dialogParameters = new DialogParameters { - { "Message", T("Are you sure you want to leave the chat page? All unsaved changes will be lost.") }, + { x => x.Message, T("Are you sure you want to leave the chat page? All unsaved changes will be lost.") }, }; var dialogReference = await this.DialogService.ShowAsync(T("Leave Chat Page"), dialogParameters, DialogOptions.FULLSCREEN); diff --git a/app/MindWork AI Studio/MindWork AI Studio.csproj b/app/MindWork AI Studio/MindWork AI Studio.csproj index c0fb8a0d..57d4d077 100644 --- a/app/MindWork AI Studio/MindWork AI Studio.csproj +++ b/app/MindWork AI Studio/MindWork AI Studio.csproj @@ -47,11 +47,11 @@ - - - - - + + + + + diff --git a/app/MindWork AI Studio/Pages/About.razor b/app/MindWork AI Studio/Pages/About.razor index 04b43128..cf66b900 100644 --- a/app/MindWork AI Studio/Pages/About.razor +++ b/app/MindWork AI Studio/Pages/About.razor @@ -1,4 +1,5 @@ @attribute [Route(Routes.ABOUT)] +@using AIStudio.Tools.Services @inherits MSGComponentBase
@@ -14,16 +15,104 @@ - - - - - + + + + + - + + @switch (EnterpriseEnvironmentService.CURRENT_ENVIRONMENT.IsActive) + { + case false when this.configPlug is null: + + @T("This is a private AI Studio installation. It runs without an enterprise configuration.") + + break; + + case false: + + @T("AI Studio runs with an enterprise configuration using a configuration plugin, without central configuration management.") + + + +
+ + @T("Configuration plugin ID:") @this.configPlug!.Id + +
+
+
+ break; + + case true when this.configPlug is null: + + @T("AI Studio runs with an enterprise configuration and a configuration server. The configuration plugin is not yet available.") + + + +
+ + @T("Enterprise configuration ID:") @EnterpriseEnvironmentService.CURRENT_ENVIRONMENT.ConfigurationId + +
+
+ + +
+ + @T("Configuration server:") @EnterpriseEnvironmentService.CURRENT_ENVIRONMENT.ConfigurationServerUrl + +
+
+
+ break; + + case true: + + @T("AI Studio runs with an enterprise configuration and a configuration server. The configuration plugin is active.") + + + +
+ + @T("Enterprise configuration ID:") @EnterpriseEnvironmentService.CURRENT_ENVIRONMENT.ConfigurationId + +
+
+ + +
+ + @T("Configuration server:") @EnterpriseEnvironmentService.CURRENT_ENVIRONMENT.ConfigurationServerUrl + +
+
+ + +
+ + @T("Configuration plugin ID:") @this.configPlug!.Id + +
+
+
+ break; + } + + @if (this.HasEnterpriseConfigurationDetails) + { + + @(this.showEnterpriseConfigDetails ? T("Hide Details") : T("Show Details")) + + } +
@@ -48,7 +137,7 @@ @T("View our project roadmap and help shape AI Studio's future development.") - + @T("Did you find a bug or are you experiencing issues? Report your concern here.") @@ -131,7 +220,7 @@ - + diff --git a/app/MindWork AI Studio/Pages/About.razor.cs b/app/MindWork AI Studio/Pages/About.razor.cs index 8c4fe923..ecdf1d17 100644 --- a/app/MindWork AI Studio/Pages/About.razor.cs +++ b/app/MindWork AI Studio/Pages/About.razor.cs @@ -58,6 +58,35 @@ public partial class About : MSGComponentBase private GetLogPathsResponse logPaths; + private bool showEnterpriseConfigDetails; + + private IPluginMetadata? configPlug = PluginFactory.AvailablePlugins.FirstOrDefault(x => x.Type is PluginType.CONFIGURATION); + + /// + /// Determines whether the enterprise configuration has details that can be shown/hidden. + /// Returns true if there are details available, false otherwise. + /// + private bool HasEnterpriseConfigurationDetails + { + get + { + return EnterpriseEnvironmentService.CURRENT_ENVIRONMENT.IsActive switch + { + // Case 1: No enterprise config and no plugin - no details available + false when this.configPlug is null => false, + + // Case 2: Enterprise config with plugin but no central management - has details + false => true, + + // Case 3: Enterprise config active but no plugin - has details + true when this.configPlug is null => true, + + // Case 4: Enterprise config active with plugin - has details + true => true + }; + } + } + #region Overrides of ComponentBase protected override async Task OnInitializedAsync() @@ -74,6 +103,23 @@ public partial class About : MSGComponentBase #endregion + #region Overrides of MSGComponentBase + + protected override async Task ProcessIncomingMessage(ComponentBase? sendingComponent, Event triggeredEvent, T? data) where T : default + { + switch (triggeredEvent) + { + case Event.PLUGINS_RELOADED: + this.configPlug = PluginFactory.AvailablePlugins.FirstOrDefault(x => x.Type is PluginType.CONFIGURATION); + await this.InvokeAsync(this.StateHasChanged); + break; + } + + await base.ProcessIncomingMessage(sendingComponent, triggeredEvent, data); + } + + #endregion + private async Task DeterminePandocVersion() { this.pandocInstallation = await Pandoc.CheckAvailabilityAsync(this.RustService, false); @@ -119,26 +165,10 @@ public partial class About : MSGComponentBase await dialogReference.Result; await this.DeterminePandocVersion(); } - - private string GetEnterpriseEnvironment() + + private void ToggleEnterpriseConfigDetails() { - var configPlug = PluginFactory.AvailablePlugins.FirstOrDefault(x => x.Type is PluginType.CONFIGURATION); - var currentEnvironment = EnterpriseEnvironmentService.CURRENT_ENVIRONMENT; - - switch (currentEnvironment) - { - case { IsActive: false } when configPlug is null: - return T("AI Studio runs without an enterprise configuration."); - - case { IsActive: false }: - return string.Format(T("AI Studio runs with an enterprise configuration using the configuration plugin '{0}', without central configuration management."), configPlug.Id); - - case { IsActive: true } when configPlug is null: - return string.Format(T("AI Studio runs with an enterprise configuration id '{0}' and configuration server URL '{1}'. The configuration plugin is not yet available."), currentEnvironment.ConfigurationId, currentEnvironment.ConfigurationServerUrl); - - case { IsActive: true }: - return string.Format(T("AI Studio runs with an enterprise configuration id '{0}' and configuration server URL '{1}'. The configuration plugin is active."), currentEnvironment.ConfigurationId, currentEnvironment.ConfigurationServerUrl); - } + this.showEnterpriseConfigDetails = !this.showEnterpriseConfigDetails; } private async Task CopyStartupLogPath() diff --git a/app/MindWork AI Studio/Pages/Chat.razor.cs b/app/MindWork AI Studio/Pages/Chat.razor.cs index e411a9fa..420828c6 100644 --- a/app/MindWork AI Studio/Pages/Chat.razor.cs +++ b/app/MindWork AI Studio/Pages/Chat.razor.cs @@ -21,7 +21,7 @@ public partial class Chat : MSGComponentBase private IDialogService DialogService { get; init; } = null!; private ChatThread? chatThread; - private AIStudio.Settings.Provider providerSettings; + private AIStudio.Settings.Provider providerSettings = AIStudio.Settings.Provider.NONE; private bool workspaceOverlayVisible; private string currentWorkspaceName = string.Empty; private Workspaces? workspaces; @@ -100,6 +100,23 @@ public partial class Chat : MSGComponentBase #region Overrides of MSGComponentBase + protected override void DisposeResources() + { + try + { + this.splitterSaveTimer.Stop(); + this.splitterSaveTimer.Dispose(); + } + catch + { + // ignore + } + + base.DisposeResources(); + } + + #endregion + protected override Task ProcessIncomingMessage(ComponentBase? sendingComponent, Event triggeredEvent, T? data) where T : default { switch (triggeredEvent) @@ -111,6 +128,4 @@ public partial class Chat : MSGComponentBase return Task.CompletedTask; } - - #endregion } \ No newline at end of file diff --git a/app/MindWork AI Studio/Pages/Home.razor b/app/MindWork AI Studio/Pages/Home.razor index e43e1d13..53d48e6e 100644 --- a/app/MindWork AI Studio/Pages/Home.razor +++ b/app/MindWork AI Studio/Pages/Home.razor @@ -27,7 +27,7 @@ - + @@ -35,7 +35,7 @@ - + diff --git a/app/MindWork AI Studio/Pages/Home.razor.cs b/app/MindWork AI Studio/Pages/Home.razor.cs index 06c4f291..bdd46e06 100644 --- a/app/MindWork AI Studio/Pages/Home.razor.cs +++ b/app/MindWork AI Studio/Pages/Home.razor.cs @@ -31,7 +31,7 @@ public partial class Home : MSGComponentBase { this.itemsAdvantages = [ new(this.T("Free of charge"), this.T("The app is free to use, both for personal and commercial purposes.")), - new(this.T("Independence"), this.T("You are not tied to any single provider. Instead, you might choose the provider that best suits your needs. Right now, we support OpenAI (GPT4o, o1, etc.), Mistral, Anthropic (Claude), Google Gemini, xAI (Grok), DeepSeek, Alibaba Cloud (Qwen), Hugging Face, and self-hosted models using llama.cpp, ollama, LM Studio, Groq, or Fireworks. For scientists and employees of research institutions, we also support Helmholtz and GWDG AI services. These are available through federated logins like eduGAIN to all 18 Helmholtz Centers, the Max Planck Society, most German, and many international universities.")), + new(this.T("Independence"), this.T("You are not tied to any single provider. Instead, you might choose the provider that best suits your needs. Right now, we support OpenAI (GPT5, o1, etc.), Perplexity, Mistral, Anthropic (Claude), Google Gemini, xAI (Grok), DeepSeek, Alibaba Cloud (Qwen), Hugging Face, and self-hosted models using vLLM, llama.cpp, ollama, LM Studio, Groq, or Fireworks. For scientists and employees of research institutions, we also support Helmholtz and GWDG AI services. These are available through federated logins like eduGAIN to all 18 Helmholtz Centers, the Max Planck Society, most German, and many international universities.")), new(this.T("Assistants"), this.T("You just want to quickly translate a text? AI Studio has so-called assistants for such and other tasks. No prompting is necessary when working with these assistants.")), new(this.T("Unrestricted usage"), this.T("Unlike services like ChatGPT, which impose limits after intensive use, MindWork AI Studio offers unlimited usage through the providers API.")), new(this.T("Cost-effective"), this.T("You only pay for what you use, which can be cheaper than monthly subscription services like ChatGPT Plus, especially if used infrequently. But beware, here be dragons: For extremely intensive usage, the API costs can be significantly higher. Unfortunately, providers currently do not offer a way to display current costs in the app. Therefore, check your account with the respective provider to see how your costs are developing. When available, use prepaid and set a cost limit.")), diff --git a/app/MindWork AI Studio/Pages/Writer.razor.cs b/app/MindWork AI Studio/Pages/Writer.razor.cs index 6c137108..9f1dcd26 100644 --- a/app/MindWork AI Studio/Pages/Writer.razor.cs +++ b/app/MindWork AI Studio/Pages/Writer.razor.cs @@ -2,7 +2,6 @@ using AIStudio.Chat; using AIStudio.Components; using AIStudio.Provider; -using Microsoft.AspNetCore.Components; using Microsoft.AspNetCore.Components.Web; using Timer = System.Timers.Timer; @@ -11,14 +10,11 @@ namespace AIStudio.Pages; public partial class Writer : MSGComponentBase { - [Inject] - private ILogger Logger { get; init; } = null!; - private static readonly Dictionary USER_INPUT_ATTRIBUTES = new(); private readonly Timer typeTimer = new(TimeSpan.FromMilliseconds(1_500)); private MudTextField textField = null!; - private AIStudio.Settings.Provider providerSettings; + private AIStudio.Settings.Provider providerSettings = AIStudio.Settings.Provider.NONE; private ChatThread? chatThread; private bool isStreaming; private string userInput = string.Empty; @@ -77,7 +73,6 @@ public partial class Writer : MSGComponentBase WorkspaceId = Guid.Empty, ChatId = Guid.NewGuid(), Name = string.Empty, - Seed = 798798, SystemPrompt = """ You are an assistant who helps with writing documents. You receive a sample from a document as input. As output, you provide how the begun sentence could @@ -122,7 +117,7 @@ public partial class Writer : MSGComponentBase this.isStreaming = true; this.StateHasChanged(); - this.chatThread = await aiText.CreateFromProviderAsync(this.providerSettings.CreateProvider(this.Logger), this.providerSettings.Model, lastUserPrompt, this.chatThread); + this.chatThread = await aiText.CreateFromProviderAsync(this.providerSettings.CreateProvider(), this.providerSettings.Model, lastUserPrompt, this.chatThread); this.suggestion = aiText.Text; this.isStreaming = false; @@ -152,4 +147,23 @@ public partial class Writer : MSGComponentBase this.suggestion = string.Join(' ', words.Skip(1)); this.StateHasChanged(); } + + #region Overrides of MSGComponentBase + + protected override void DisposeResources() + { + try + { + this.typeTimer.Stop(); + this.typeTimer.Dispose(); + } + catch + { + // ignore + } + + base.DisposeResources(); + } + + #endregion } \ No newline at end of file diff --git a/app/MindWork AI Studio/Plugins/configuration/plugin.lua b/app/MindWork AI Studio/Plugins/configuration/plugin.lua index d80fc0d9..7e24e999 100644 --- a/app/MindWork AI Studio/Plugins/configuration/plugin.lua +++ b/app/MindWork AI Studio/Plugins/configuration/plugin.lua @@ -62,6 +62,38 @@ CONFIG["LLM_PROVIDERS"][#CONFIG["LLM_PROVIDERS"]+1] = { CONFIG["SETTINGS"] = {} --- Configure the update behavior: +-- Configure the update check interval: -- Allowed values are: NO_CHECK, ONCE_STARTUP, HOURLY, DAILY, WEEKLY --- CONFIG["SETTINGS"]["DataApp.UpdateBehavior"] = "NO_CHECK" \ No newline at end of file +-- CONFIG["SETTINGS"]["DataApp.UpdateInterval"] = "NO_CHECK" + +-- Configure how updates are installed: +-- Allowed values are: MANUAL, AUTOMATIC +-- CONFIG["SETTINGS"]["DataApp.UpdateInstallation"] = "MANUAL" + +-- Configure the user permission to add providers: +-- Allowed values are: true, false +-- CONFIG["SETTINGS"]["DataApp.AllowUserToAddProvider"] = false + +-- Example chat templates for this configuration: +CONFIG["CHAT_TEMPLATES"] = {} + +-- A simple example chat template: +CONFIG["CHAT_TEMPLATES"][#CONFIG["CHAT_TEMPLATES"]+1] = { + ["Id"] = "00000000-0000-0000-0000-000000000000", + ["Name"] = "", + ["SystemPrompt"] = "You are 's helpful AI assistant for . Your task is ...", + ["PredefinedUserPrompt"] = "Please help me with ...", + ["AllowProfileUsage"] = true, + ["ExampleConversation"] = { + { + -- Allowed values are: USER, AI, SYSTEM + ["Role"] = "USER", + ["Content"] = "Hello! Can you help me with a quick task?" + }, + { + -- Allowed values are: USER, AI, SYSTEM + ["Role"] = "AI", + ["Content"] = "Of course. What do you need?" + } + } +} diff --git a/app/MindWork AI Studio/Plugins/languages/de-de-43065dbc-78d0-45b7-92be-f14c2926e2dc/plugin.lua b/app/MindWork AI Studio/Plugins/languages/de-de-43065dbc-78d0-45b7-92be-f14c2926e2dc/plugin.lua index 13dc2f12..9e3cb22c 100644 --- a/app/MindWork AI Studio/Plugins/languages/de-de-43065dbc-78d0-45b7-92be-f14c2926e2dc/plugin.lua +++ b/app/MindWork AI Studio/Plugins/languages/de-de-43065dbc-78d0-45b7-92be-f14c2926e2dc/plugin.lua @@ -1224,12 +1224,18 @@ UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::TEXTSUMMARIZER::ASSISTANTTEXTSUMMARIZER:: -- Target language UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::TEXTSUMMARIZER::ASSISTANTTEXTSUMMARIZER::T237828418"] = "Zielsprache" +-- (Optional) Important Aspects +UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::TEXTSUMMARIZER::ASSISTANTTEXTSUMMARIZER::T24391765"] = "(Optional) Wichtige Aspekte" + -- Summarize long text into a shorter version while retaining the main points. You might want to change the language of the summary to make it more readable. It is also possible to change the complexity of the summary to make it easy to understand. UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::TEXTSUMMARIZER::ASSISTANTTEXTSUMMARIZER::T359929871"] = "Fasse einen langen Text zu einer kürzeren Version zusammen und behalte dabei die wichtigsten Punkte bei. Sie können die Sprache des Textes anpassen, um die Zusammenfassung verständlicher zu machen. Außerdem ist es möglich, die Zusammenfassung einfacher zu formulieren, damit sie leichter zu verstehen ist." -- Please provide your field of expertise. UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::TEXTSUMMARIZER::ASSISTANTTEXTSUMMARIZER::T3610378685"] = "Bitte geben Sie Ihr Fachgebiet an." +-- (Optional) Specify aspects for the LLM to focus on when generating a summary, such as summary length or specific topics to emphasize. +UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::TEXTSUMMARIZER::ASSISTANTTEXTSUMMARIZER::T3830285347"] = "(Optional) Spezifizieren Sie Aspekte, auf die das LLM bei der Erstellung einer Zusammenfassung den Fokus legen soll, wie z.B. die Länge der Zusammenfassung oder bestimmte Themen, die hervorgehoben werden sollen." + -- Custom target language UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::TEXTSUMMARIZER::ASSISTANTTEXTSUMMARIZER::T3848935911"] = "Benutzerdefinierte Zielsprache" @@ -1317,9 +1323,6 @@ UI_TEXT_CONTENT["AISTUDIO::CHAT::CHATROLEEXTENSIONS::T601166687"] = "KI" -- Edit Message UI_TEXT_CONTENT["AISTUDIO::CHAT::CONTENTBLOCKCOMPONENT::T1183581066"] = "Nachricht bearbeiten" --- Copies the content to the clipboard -UI_TEXT_CONTENT["AISTUDIO::CHAT::CONTENTBLOCKCOMPONENT::T12948066"] = "Kopiert den Inhalt in die Zwischenablage" - -- Do you really want to remove this message? UI_TEXT_CONTENT["AISTUDIO::CHAT::CONTENTBLOCKCOMPONENT::T1347427447"] = "Möchten Sie diese Nachricht wirklich löschen?" @@ -1332,6 +1335,9 @@ UI_TEXT_CONTENT["AISTUDIO::CHAT::CONTENTBLOCKCOMPONENT::T1603883875"] = "Ja, neu -- Yes, remove it UI_TEXT_CONTENT["AISTUDIO::CHAT::CONTENTBLOCKCOMPONENT::T1820166585"] = "Ja, entferne es" +-- Number of sources +UI_TEXT_CONTENT["AISTUDIO::CHAT::CONTENTBLOCKCOMPONENT::T1848978959"] = "Anzahl der Quellen" + -- Do you really want to edit this message? In order to edit this message, the AI response will be deleted. UI_TEXT_CONTENT["AISTUDIO::CHAT::CONTENTBLOCKCOMPONENT::T2018431076"] = "Möchten Sie diese Nachricht wirklich bearbeiten? Um die Nachricht zu bearbeiten, wird die Antwort der KI gelöscht." @@ -1353,9 +1359,6 @@ UI_TEXT_CONTENT["AISTUDIO::CHAT::CONTENTBLOCKCOMPONENT::T3587744975"] = "Neu gen -- Do you really want to regenerate this message? UI_TEXT_CONTENT["AISTUDIO::CHAT::CONTENTBLOCKCOMPONENT::T3878878761"] = "Möchten Sie diese Nachricht wirklich neu generieren?" --- Cannot copy this content type to clipboard! -UI_TEXT_CONTENT["AISTUDIO::CHAT::CONTENTBLOCKCOMPONENT::T4021525742"] = "Dieser Inhaltstyp kann nicht in die Zwischenablage kopiert werden!" - -- Remove Message UI_TEXT_CONTENT["AISTUDIO::CHAT::CONTENTBLOCKCOMPONENT::T4070211974"] = "Nachricht entfernen" @@ -1452,6 +1455,9 @@ UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::CONFIDENCEINFO::T3243388657"] = "Vertraue -- Shows and hides the confidence card with information about the selected LLM provider. UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::CONFIDENCEINFO::T847071819"] = "Zeigt oder verbirgt die Vertrauenskarte mit Informationen über den ausgewählten LLM-Anbieter." +-- This feature is managed by your organization and has therefore been disabled. +UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::CONFIGURATIONBASE::T1416426626"] = "Diese Funktion wird von Ihrer Organisation verwaltet und wurde daher deaktiviert." + -- Choose the minimum confidence level that all LLM providers must meet. This way, you can ensure that only trustworthy providers are used. You cannot use any provider that falls below this level. UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::CONFIGURATIONMINCONFIDENCESELECTION::T2526727283"] = "Wählen Sie das minimale Vertrauensniveau, das alle LLM-Anbieter erfüllen müssen. So stellen Sie sicher, dass nur vertrauenswürdige Anbieter verwendet werden. Anbieter, die dieses Niveau unterschreiten, können nicht verwendet werden." @@ -1590,6 +1596,12 @@ UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::MOTIVATION::T372007989"] = "Sich auf Webd -- Cross-Platform and Modern Development UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::MOTIVATION::T843057510"] = "Plattformübergreifende und moderne Entwicklung" +-- Copies the content to the clipboard +UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::MUDCOPYCLIPBOARDBUTTON::T12948066"] = "Kopiert den Inhalt in die Zwischenablage" + +-- Cannot copy this content type to clipboard. +UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::MUDCOPYCLIPBOARDBUTTON::T3937637647"] = "Dieser Inhaltstyp kann nicht in die Zwischenablage kopiert werden." + -- Alpha phase means that we are working on the last details before the beta phase. UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::PREVIEWALPHA::T166807685"] = "Alpha-Phase bedeutet, dass wir an den letzten Details arbeiten, bevor die Beta-Phase beginnt." @@ -1690,7 +1702,7 @@ UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::READWEBCONTENT::T2927391091"] = "Inhalte UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::READWEBCONTENT::T2939928117"] = "Inhalte mit einem LLM-Agenten bereinigen?" -- Hide web content options -UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::READWEBCONTENT::T3031774728"] = "Web-Inhaltsoptionen ausblenden" +UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::READWEBCONTENT::T3031774728"] = "Optionen für Webinhalte ausblenden" -- Please provide a valid HTTP or HTTPS URL. UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::READWEBCONTENT::T307442288"] = "Bitte geben Sie eine gültige HTTP- oder HTTPS-URL ein." @@ -1702,7 +1714,25 @@ UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::READWEBCONTENT::T3588401674"] = "Keine In UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::READWEBCONTENT::T3825586228"] = "Bitte geben Sie eine gültige URL ein." -- Show web content options -UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::READWEBCONTENT::T4249712357"] = "Web-Inhalte anzeigen" +UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::READWEBCONTENT::T4249712357"] = "Optionen für Webinhalte anzeigen" + +-- Loading +UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::READWEBCONTENTSTEPSEXTENSIONS::T1404011351"] = "Laden" + +-- Start +UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::READWEBCONTENTSTEPSEXTENSIONS::T182978943"] = "Start" + +-- Done +UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::READWEBCONTENTSTEPSEXTENSIONS::T2379421585"] = "Fertig" + +-- Parsing +UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::READWEBCONTENTSTEPSEXTENSIONS::T3151033983"] = "Zerlegen" + +-- Cleaning +UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::READWEBCONTENTSTEPSEXTENSIONS::T3420573362"] = "Bereinigen" + +-- n/a +UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::READWEBCONTENTSTEPSEXTENSIONS::T907272257"] = "n/a" -- Hide content UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::SECRETINPUTFIELD::T1273315904"] = "Inhalt ausblenden" @@ -1827,6 +1857,9 @@ UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::SETTINGS::SETTINGSPANELAPP::T1907446663"] -- Language behavior UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::SETTINGS::SETTINGSPANELAPP::T2341504363"] = "Sprachverhalten" +-- Update installation method +UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::SETTINGS::SETTINGSPANELAPP::T237706157"] = "Installationsmethode für Updates" + -- Language UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::SETTINGS::SETTINGSPANELAPP::T2591284123"] = "Sprache" @@ -1857,6 +1890,9 @@ UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::SETTINGS::SETTINGSPANELAPP::T602293588"] -- Choose the color theme that best suits for you. UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::SETTINGS::SETTINGSPANELAPP::T654667432"] = "Wählen Sie das Farbschema, das am besten zu Ihnen passt." +-- Should updates be installed automatically or manually? +UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::SETTINGS::SETTINGSPANELAPP::T707880477"] = "Sollen Updates automatisch oder manuell installiert werden?" + -- Energy saving is enabled UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::SETTINGS::SETTINGSPANELAPP::T71162186"] = "Energiesparmodus ist aktiviert" @@ -2112,6 +2148,9 @@ UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::WORKSPACES::T1016188706"] = "Möchten Sie -- Move chat UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::WORKSPACES::T1133040906"] = "Chat verschieben" +-- Unnamed workspace +UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::WORKSPACES::T1307384014"] = "Unbenannter Arbeitsbereich" + -- Delete UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::WORKSPACES::T1469573738"] = "Löschen" @@ -2145,6 +2184,12 @@ UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::WORKSPACES::T2237618267"] = "Möchten Sie -- Delete Chat UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::WORKSPACES::T2244038752"] = "Chat löschen" +-- Please enter a chat name. +UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::WORKSPACES::T2301651387"] = "Bitte geben Sie einen Namen für diesen Chat ein." + +-- Workspace Name +UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::WORKSPACES::T2446263209"] = "Name des Arbeitsbereichs" + -- Move to workspace UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::WORKSPACES::T2509305748"] = "In einen Arbeitsbereich verschieben" @@ -2157,6 +2202,12 @@ UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::WORKSPACES::T3045856778"] = "Chat in den -- Please enter a new or edit the name for your workspace '{0}': UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::WORKSPACES::T323280982"] = "Bitte geben Sie einen neuen Namen für ihren Arbeitsbereich „{0}“ ein oder bearbeiten Sie ihn:" +-- Please enter a workspace name. +UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::WORKSPACES::T3288132732"] = "Bitte geben Sie einen Namen für diesen Arbeitsbereich ein." + +-- Unnamed chat +UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::WORKSPACES::T3310482275"] = "Unbenannter Chat" + -- Rename UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::WORKSPACES::T3355849203"] = "Umbenennen" @@ -2169,6 +2220,9 @@ UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::WORKSPACES::T3555709365"] = "Chat laden" -- Add Workspace UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::WORKSPACES::T3672981145"] = "Arbeitsbereich hinzufügen" +-- Chat Name +UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::WORKSPACES::T3891063690"] = "Name des Chat" + -- Empty chat UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::WORKSPACES::T4019509364"] = "Leerer Chat" @@ -3414,6 +3468,9 @@ UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGCHATTEMPLATE::T32678 -- Close UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGCHATTEMPLATE::T3448155331"] = "Schließen" +-- This template is managed by your organization. +UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGCHATTEMPLATE::T3576775249"] = "Diesee Vorlage wird von Ihrer Organisation verwaltet." + -- Edit Chat Template UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGCHATTEMPLATE::T3596030597"] = "Chat-Vorlage bearbeiten" @@ -3718,7 +3775,7 @@ UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGLEGALCHECK::T1591931 UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGLEGALCHECK::T1633101895"] = "Wenn diese Option aktiviert ist, wird der Web-Content-Reader ausgeblendet und kann nicht verwendet werden. Dadurch wird die Benutzeroberfläche etwas einfacher zu bedienen." -- Web content reader is not preselected -UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGLEGALCHECK::T1701127912"] = "Tool zum Lesen von Webinhalten ist nicht vorausgewählt" +UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGLEGALCHECK::T1701127912"] = "Der Web-Content-Reader zum Lesen von Webinhalten ist nicht vorausgewählt" -- Content cleaner agent is not preselected UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGLEGALCHECK::T1969816694"] = "Agent zur Inhaltsbereinigung ist nicht vorausgewählt" @@ -3739,13 +3796,13 @@ UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGLEGALCHECK::T2529161 UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGLEGALCHECK::T2746583995"] = "Wenn aktiviert, ist der Content Cleaner Agent vorausgewählt. Das kann nützlich sein, wenn Sie den rechtlichen Inhalt bereinigen möchten, bevor Sie ihn übersetzen." -- Web content reader is hidden -UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGLEGALCHECK::T2799795311"] = "Tool zum Lesen von Webinhalten ist ausgeblendet" +UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGLEGALCHECK::T2799795311"] = "Der Web-Content-Reader zum Lesen von Webinhalten ist ausgeblendet" -- Close UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGLEGALCHECK::T3448155331"] = "Schließen" -- Web content reader is preselected -UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGLEGALCHECK::T3641773985"] = "Tool zum Lesen von Webinhalten ist vorausgewählt" +UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGLEGALCHECK::T3641773985"] = "Der Web-Content-Reader zum Lesen von Webinhalten ist vorausgewählt" -- Preselect the content cleaner agent? UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGLEGALCHECK::T3649428096"] = "Assistent zur Inhaltsbereinigungs vorauswählen?" @@ -3757,7 +3814,7 @@ UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGLEGALCHECK::T4004501 UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGLEGALCHECK::T4033382756"] = "Assistent: Optionen für rechtliche Prüfung" -- Preselect the web content reader? -UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGLEGALCHECK::T629158142"] = "Tool zum Lesen von Webinhalten vorauswählen?" +UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGLEGALCHECK::T629158142"] = "Den Web-Content-Reader zum Lesen von Webinhalten vorauswählen?" -- Would you like to preselect one of your profiles? UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGMYTASKS::T2221665527"] = "Möchten Sie eines ihrer Profile vorauswählen?" @@ -3901,7 +3958,7 @@ UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGSYNONYMS::T417092184 UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGTEXTSUMMARIZER::T1013787967"] = "Agent zur Inhaltsbereinigung ist vorausgewählt" -- Web content reader is shown -UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGTEXTSUMMARIZER::T1030372436"] = "Tool zum Lesen von Webinhalten wird angezeigt" +UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGTEXTSUMMARIZER::T1030372436"] = "Der Web-Content-Reader zum Lesen von Webinhalten wird angezeigt" -- Preselect the summarizer complexity UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGTEXTSUMMARIZER::T104409170"] = "Wähle die Sprachkomplexität der Zusammenfassungs aus" @@ -3919,7 +3976,7 @@ UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGTEXTSUMMARIZER::T146 UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGTEXTSUMMARIZER::T1633101895"] = "Wenn aktiviert, wird der Web-Content-Reader ausgeblendet und kann nicht verwendet werden. Dadurch wird die Benutzeroberfläche etwas einfacher zu bedienen." -- Web content reader is not preselected -UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGTEXTSUMMARIZER::T1701127912"] = "Das Tool zum Lesen von Webinhalten ist nicht vorab selektiert" +UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGTEXTSUMMARIZER::T1701127912"] = "Der Web-Content-Reader zum Lesen von Webinhalten ist nicht vorab selektiert" -- Assistant: Text Summarizer Options UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGTEXTSUMMARIZER::T1767527569"] = "Assistent: Optionen zur Textzusammenfassung" @@ -3949,7 +4006,7 @@ UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGTEXTSUMMARIZER::T344 UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGTEXTSUMMARIZER::T3547337928"] = "Welche Zielsprache soll vorausgewählt werden?" -- Web content reader is preselected -UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGTEXTSUMMARIZER::T3641773985"] = "Tool zum Lesen von Webinhalten ist vorausgewählt" +UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGTEXTSUMMARIZER::T3641773985"] = "Der Web-Content-Reader zum Lesen von Webinhalten ist vorausgewählt" -- Preselect the content cleaner agent? UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGTEXTSUMMARIZER::T3649428096"] = "Den Agenten zur Inhaltsbereinigungs vorauswählen?" @@ -3957,17 +4014,23 @@ UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGTEXTSUMMARIZER::T364 -- When enabled, the content cleaner agent is preselected. This is might be useful when you prefer to clean up the content before summarize it. UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGTEXTSUMMARIZER::T3660434400"] = "Wenn diese Option aktiviert ist, wird der Content Cleaner-Agent automatisch vorausgewählt. Das kann nützlich sein, wenn Sie den Inhalt bereinigen möchten, bevor Sie ihn zusammenfassen." +-- Preselect important aspects +UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGTEXTSUMMARIZER::T3705987833"] = "Vorauswahl der Aspekte" + -- When enabled, you can preselect the text summarizer options. This is might be useful when you prefer a specific language, complexity, or LLM. UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGTEXTSUMMARIZER::T3820844575"] = "Wenn aktiviert, können Sie die Optionen für die Textzusammenfassung im Voraus auswählen. Das kann hilfreich sein, wenn Sie eine bestimmte Sprache, einen bestimmten Schwierigkeitsgrad oder ein bestimmtes LLM bevorzugen." -- Which summarizer complexity should be preselected? UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGTEXTSUMMARIZER::T408530182"] = "Welche Komplexität der Zusammenfassung soll vorausgewählt werden?" +-- Preselect aspects for the LLM to focus on when generating a summary, such as summary length or specific topics to emphasize. +UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGTEXTSUMMARIZER::T414420518"] = "Vorausgewählte Aspekte, auf die sich das LLM beim Erstellen einer Zusammenfassung fokussieren soll, wie z.B. die Länge der Zusammenfassung oder bestimmte zu betonende Themen." + -- Preselect your expertise UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGTEXTSUMMARIZER::T51139714"] = "Wählen Sie Ihr Fachgebiet aus" -- Preselect the web content reader? -UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGTEXTSUMMARIZER::T629158142"] = "Tool zum Lesen von Webinhalten vorauswählen?" +UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGTEXTSUMMARIZER::T629158142"] = "Den Web-Content-Reader zum Lesen von Webinhalten vorauswählen?" -- Content cleaner agent is preselected UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGTRANSLATION::T1013787967"] = "Agent zur Inhaltsbereinigung ist vorausgewählt" @@ -3976,7 +4039,7 @@ UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGTRANSLATION::T101378 UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGTRANSLATION::T1016384269"] = "Assistent: Übersetzer-Optionen" -- Web content reader is shown -UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGTRANSLATION::T1030372436"] = "Tool zum Lesen von Webinhalten wird angezeigt" +UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGTRANSLATION::T1030372436"] = "Der Web-Content-Reader zum Lesen von Webinhalten wird angezeigt" -- When enabled, you can preselect the translator options. This is might be useful when you prefer a specific target language or LLM model. UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGTRANSLATION::T1111006275"] = "Wenn diese Option aktiviert ist, können Sie die Übersetzungsoptionen im Voraus auswählen. Das ist nützlich, wenn Sie eine bestimmte Zielsprache oder ein bestimmtes LLM-Modell bevorzugen." @@ -3994,7 +4057,7 @@ UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGTRANSLATION::T146229 UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGTRANSLATION::T1633101895"] = "Wenn aktiviert, wird der Web-Content-Reader ausgeblendet und kann nicht verwendet werden. Dadurch wird die Benutzeroberfläche etwas einfacher zu bedienen." -- Web content reader is not preselected -UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGTRANSLATION::T1701127912"] = "Tool zum Lesen von Webinhalten ist nicht vorausgewählt" +UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGTRANSLATION::T1701127912"] = "Der Web-Content-Reader zum Lesen von Webinhalten ist nicht vorausgewählt" -- Live translation is not preselected UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGTRANSLATION::T1825690873"] = "Live-Übersetzung ist nicht vorausgewählt" @@ -4015,7 +4078,7 @@ UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGTRANSLATION::T223453 UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGTRANSLATION::T2435743076"] = "Live-Übersetzung ist vorausgewählt" -- Web content reader is hidden -UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGTRANSLATION::T2799795311"] = "Tool zum Lesen von Webinhalten ist ausgeblendet" +UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGTRANSLATION::T2799795311"] = "Der Web-Content-Reader zum Lesen von Webinhalten ist ausgeblendet" -- No translator options are preselected UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGTRANSLATION::T2866358796"] = "Keine Übersetzungseinstellungen sind vorausgewählt" @@ -4030,13 +4093,13 @@ UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGTRANSLATION::T344815 UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGTRANSLATION::T3547337928"] = "Welche Zielsprache soll vorausgewählt werden?" -- Web content reader is preselected -UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGTRANSLATION::T3641773985"] = "Tool zum Lesen von Webinhalten ist vorausgewählt" +UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGTRANSLATION::T3641773985"] = "Der Web-Content-Reader zum Lesen von Webinhalten ist vorausgewählt" -- Preselect the content cleaner agent? UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGTRANSLATION::T3649428096"] = "Agent zur Inhaltsbereinigung vorauswählen?" -- Preselect the web content reader? -UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGTRANSLATION::T629158142"] = "Tool zum Lesen von Webinhalten vorauswählen?" +UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGTRANSLATION::T629158142"] = "Den Web-Content-Reader zum Lesen von Webinhalten vorauswählen?" -- How fast should the live translation react? UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGTRANSLATION::T884246296"] = "Wie schnell soll die Live-Übersetzung reagieren?" @@ -4116,8 +4179,11 @@ UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGWRITINGEMAILS::T3832 -- Preselect one of your profiles? UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGWRITINGEMAILS::T4004501229"] = "Eines ihrer Profile vorauswählen?" --- Chat name -UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SINGLEINPUTDIALOG::T1746586282"] = "Chat-Name" +-- Please enter a value. +UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SINGLEINPUTDIALOG::T3576780391"] = "Bitte geben Sie einen Wert ein." + +-- Your Input +UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SINGLEINPUTDIALOG::T4030229154"] = "Ihre Eingabe" -- Cancel UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SINGLEINPUTDIALOG::T900713019"] = "Abbrechen" @@ -4185,8 +4251,11 @@ UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T1020427799"] = "Über MindWork AI Stud -- Browse AI Studio's source code on GitHub — we welcome your contributions. UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T1107156991"] = "Sehen Sie sich den Quellcode von AI Studio auf GitHub an – wir freuen uns über ihre Beiträge." --- AI Studio runs with an enterprise configuration id '{0}' and configuration server URL '{1}'. The configuration plugin is not yet available. -UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T1297057566"] = "AI Studio läuft mit der Konfigurations-ID '{0}' ihrer Organisation und dem Konfigurationsserver '{1}'. Das Konfigurations-Plugin ist noch nicht verfügbar." +-- This is a private AI Studio installation. It runs without an enterprise configuration. +UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T1209549230"] = "Dies ist eine private AI Studio-Installation. Sie läuft ohne Unternehmenskonfiguration." + +-- AI Studio runs with an enterprise configuration and a configuration server. The configuration plugin is not yet available. +UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T1282228996"] = "AI Studio läuft mit einer Unternehmenskonfiguration und einem Konfigurationsserver. Das Konfigurations-Plugin ist noch nicht verfügbar." -- This library is used to read PDF files. This is necessary, e.g., for using PDFs as a data source for a chat. UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T1388816916"] = "Diese Bibliothek wird verwendet, um PDF-Dateien zu lesen. Das ist zum Beispiel notwendig, um PDFs als Datenquelle für einen Chat zu nutzen." @@ -4194,12 +4263,6 @@ UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T1388816916"] = "Diese Bibliothek wird -- This library is used to extend the MudBlazor library. It provides additional components that are not part of the MudBlazor library. UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T1421513382"] = "Diese Bibliothek wird verwendet, um die MudBlazor-Bibliothek zu erweitern. Sie stellt zusätzliche Komponenten bereit, die nicht Teil der MudBlazor-Bibliothek sind." --- AI Studio runs with an enterprise configuration id '{0}' and configuration server URL '{1}'. The configuration plugin is active. -UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T1454889560"] = "AI Studio läuft mit der Konfigurations-ID '{0}' ihrer Organisation und dem Konfigurationsserver '{1}'. Das Konfigurations-Plugin ist aktiv." - --- AI Studio runs with an enterprise configuration using the configuration plugin '{0}', without central configuration management. -UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T1530477579"] = "AI Studio läuft mit einer Unternehmenseinstellung und verwendet das Konfigurations-Plugin '{0}', jedoch ohne zentrale Konfigurationsverwaltung." - -- We use Lua as the language for plugins. Lua-CSharp lets Lua scripts communicate with AI Studio and vice versa. Thank you, Yusuke Nakada, for this great library. UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T162898512"] = "Wir verwenden Lua als Sprache für Plugins. Lua-CSharp ermöglicht die Kommunikation zwischen Lua-Skripten und AI Studio in beide Richtungen. Vielen Dank an Yusuke Nakada für diese großartige Bibliothek." @@ -4218,6 +4281,9 @@ UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T1806897624"] = "Wenn Sie auf den jewei -- Pandoc Installation UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T185447014"] = "Pandoc-Installation" +-- Copies the configuration plugin ID to the clipboard +UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T1859295819"] = "Kopiert die Konfigurations-Plugin-ID in die Zwischenablage" + -- Check for updates UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T1890416390"] = "Nach Updates suchen" @@ -4233,21 +4299,30 @@ UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T1924365263"] = "Diese Bibliothek wird -- We use Rocket to implement the runtime API. This is necessary because the runtime must be able to communicate with the user interface (IPC). Rocket is a great framework for implementing web APIs in Rust. UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T1943216839"] = "Wir verwenden Rocket zur Implementierung der Runtime-API. Dies ist notwendig, da die Runtime mit der Benutzeroberfläche (IPC) kommunizieren muss. Rocket ist ein ausgezeichnetes Framework zur Umsetzung von Web-APIs in Rust." +-- Copies the server URL to the clipboard +UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T2037899437"] = "Kopiert die Server-URL in die Zwischenablage" + -- This library is used to determine the file type of a file. This is necessary, e.g., when we want to stream a file. UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T2173617769"] = "Diese Bibliothek wird verwendet, um den Dateityp einer Datei zu bestimmen. Das ist zum Beispiel notwendig, wenn wir eine Datei streamen möchten." -- For the secure communication between the user interface and the runtime, we need to create certificates. This Rust library is great for this purpose. UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T2174764529"] = "Für die sichere Kommunikation zwischen der Benutzeroberfläche und der Laufzeit müssen wir Zertifikate erstellen. Diese Rust-Bibliothek eignet sich hervorragend dafür." --- This is a private AI Studio installation. It runs without an enterprise configuration. -UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T2244723851"] = "Dies ist eine private AI Studio-Installation. Es wird keine Konfiguration einer Organisation verwendet." - -- OK UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T2246359087"] = "OK" +-- Configuration server: +UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T2272122662"] = "Konfigurationsserver:" + -- We must generate random numbers, e.g., for securing the interprocess communication between the user interface and the runtime. The rand library is great for this purpose. UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T2273492381"] = "Wir müssen Zufallszahlen erzeugen, z. B. um die Kommunikation zwischen der Benutzeroberfläche und der Laufzeitumgebung abzusichern. Die rand-Bibliothek eignet sich dafür hervorragend." +-- AI Studio runs with an enterprise configuration using a configuration plugin, without central configuration management. +UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T2280402765"] = "AI Studio läuft mit einer Unternehmenskonfiguration über ein Konfigurations-Plugin, ohne zentrale Konfigurationsverwaltung." + +-- Configuration plugin ID: +UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T2301484629"] = "Konfigurations-Plugin-ID:" + -- The C# language is used for the implementation of the user interface and the backend. To implement the user interface with C#, the Blazor technology from ASP.NET Core is used. All these technologies are integrated into the .NET SDK. UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T2329884315"] = "Die Programmiersprache C# wird für die Umsetzung der Benutzeroberfläche und des Backends verwendet. Für die Entwicklung der Benutzeroberfläche mit C# kommt die Blazor-Technologie aus ASP.NET Core zum Einsatz. Alle diese Technologien sind im .NET SDK integriert." @@ -4287,6 +4362,9 @@ UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T2765814390"] = "Pandoc-Version wird er -- Code in the Rust language can be specified as synchronous or asynchronous. Unlike .NET and the C# language, Rust cannot execute asynchronous code by itself. Rust requires support in the form of an executor for this. Tokio is one such executor. UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T2777988282"] = "Code in der Programmiersprache Rust kann als synchron oder asynchron spezifiziert werden. Im Gegensatz zu .NET und der Sprache C# kann Rust asynchronen Code jedoch nicht von selbst ausführen. Dafür benötigt Rust Unterstützung in Form eines Executors. Tokio ist ein solcher Executor." +-- Show Details +UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T27924674"] = "Details anzeigen" + -- View our project roadmap and help shape AI Studio's future development. UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T2829971158"] = "Sehen Sie sich unsere Roadmap an und helfen Sie mit, die zukünftige Entwicklung von AI Studio mitzugestalten." @@ -4302,12 +4380,18 @@ UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T2868174483"] = "Das .NET-Backend kann -- Changelog UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T3017574265"] = "Änderungsprotokoll" +-- Enterprise configuration ID: +UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T3092349641"] = "Unternehmenskonfigurations-ID:" + -- Connect AI Studio to your organization's data with our External Retrieval Interface (ERI). UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T313276297"] = "Verbinden Sie AI Studio mit den Daten ihrer Organisation über unsere Schnittstelle für externe Datenabfrage (ERI)." -- Have feature ideas? Submit suggestions for future AI Studio enhancements. UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T3178730036"] = "Haben Sie Ideen für neue Funktionen? Senden Sie uns Vorschläge für zukünftige Verbesserungen von AI Studio." +-- Hide Details +UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T3183837919"] = "Details ausblenden" + -- Update Pandoc UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T3249965383"] = "Pandoc aktualisieren" @@ -4332,6 +4416,9 @@ UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T3563271893"] = "Motivation" -- This library is used to read Excel and OpenDocument spreadsheet files. This is necessary, e.g., for using spreadsheets as a data source for a chat. UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T3722989559"] = "Diese Bibliothek wird verwendet, um Excel- und OpenDocument-Tabellendateien zu lesen. Dies ist zum Beispiel notwendig, wenn Tabellen als Datenquelle für einen Chat verwendet werden sollen." +-- AI Studio runs with an enterprise configuration and a configuration server. The configuration plugin is active. +UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T3741877842"] = "AI Studio läuft mit einer Unternehmenskonfiguration und einem Konfigurationsserver. Das Konfigurations-Plugin ist aktiv." + -- this version does not met the requirements UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T3813932670"] = "diese Version erfüllt die Anforderungen nicht" @@ -4374,6 +4461,9 @@ UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T639371534"] = "Haben Sie einen Fehler -- This Rust library is used to output the app's messages to the terminal. This is helpful during development and troubleshooting. This feature is initially invisible; when the app is started via the terminal, the messages become visible. UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T64689067"] = "Diese Rust-Bibliothek wird verwendet, um die Nachrichten der App im Terminal auszugeben. Das ist während der Entwicklung und Fehlersuche hilfreich. Diese Funktion ist zunächst unsichtbar; werden App über das Terminal gestartet, werden die Nachrichten sichtbar." +-- Copies the config ID to the clipboard +UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T788846912"] = "Kopiert die Konfigurations-ID in die Zwischenablage" + -- installed by AI Studio UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T833849470"] = "installiert von AI Studio" @@ -4548,8 +4638,8 @@ UI_TEXT_CONTENT["AISTUDIO::PAGES::HOME::T1702902297"] = "Einführung" -- Vision UI_TEXT_CONTENT["AISTUDIO::PAGES::HOME::T1892426825"] = "Vision" --- You are not tied to any single provider. Instead, you might choose the provider that best suits your needs. Right now, we support OpenAI (GPT4o, o1, etc.), Mistral, Anthropic (Claude), Google Gemini, xAI (Grok), DeepSeek, Alibaba Cloud (Qwen), Hugging Face, and self-hosted models using llama.cpp, ollama, LM Studio, Groq, or Fireworks. For scientists and employees of research institutions, we also support Helmholtz and GWDG AI services. These are available through federated logins like eduGAIN to all 18 Helmholtz Centers, the Max Planck Society, most German, and many international universities. -UI_TEXT_CONTENT["AISTUDIO::PAGES::HOME::T2217921237"] = "Sie sind nicht an einen einzelnen Anbieter gebunden. Stattdessen können Sie den Anbieter wählen, der am besten zu ihren Bedürfnissen passt. Aktuell unterstützen wir OpenAI (GPT4o, o1 usw.), Mistral, Anthropic (Claude), Google Gemini, xAI (Grok), DeepSeek, Alibaba Cloud (Qwen), Hugging Face sowie selbst gehostete Modelle mit llama.cpp, ollama, LM Studio, Groq oder Fireworks. Für Wissenschaftler und Beschäftigte von Forschungseinrichtungen unterstützen wir außerdem die KI-Dienste von Helmholtz und GWDG. Diese sind über föderierte Logins wie eduGAIN für alle 18 Helmholtz-Zentren, die Max-Planck-Gesellschaft, die meisten deutschen sowie viele internationale Universitäten verfügbar." +-- You are not tied to any single provider. Instead, you might choose the provider that best suits your needs. Right now, we support OpenAI (GPT5, o1, etc.), Perplexity, Mistral, Anthropic (Claude), Google Gemini, xAI (Grok), DeepSeek, Alibaba Cloud (Qwen), Hugging Face, and self-hosted models using vLLM, llama.cpp, ollama, LM Studio, Groq, or Fireworks. For scientists and employees of research institutions, we also support Helmholtz and GWDG AI services. These are available through federated logins like eduGAIN to all 18 Helmholtz Centers, the Max Planck Society, most German, and many international universities. +UI_TEXT_CONTENT["AISTUDIO::PAGES::HOME::T2183503084"] = "Sie sind an keinen einzelnen Anbieter gebunden. Stattdessen können Sie den Anbieter wählen, der am besten zu ihren Bedürfnissen passt. Derzeit unterstützen wir OpenAI (GPT5, o1, etc.), Perplexity, Mistral, Anthropic (Claude), Google Gemini, xAI (Grok), DeepSeek, Alibaba Cloud (Qwen), Hugging Face und selbst gehostete Modelle mit vLLM, llama.cpp, ollama, LM Studio, Groq oder Fireworks. Für Wissenschaftler und Mitarbeiter von Forschungseinrichtungen unterstützen wir auch die KI-Dienste von Helmholtz und GWDG. Diese sind über föderierte Anmeldungen wie eduGAIN für alle 18 Helmholtz-Zentren, die Max-Planck-Gesellschaft, die meisten deutschen und viele internationale Universitäten verfügbar." -- Let's get started UI_TEXT_CONTENT["AISTUDIO::PAGES::HOME::T2331588413"] = "Los geht's" @@ -4750,7 +4840,7 @@ UI_TEXT_CONTENT["AISTUDIO::PROVIDER::CONFIDENCE::T3010553924"] = "Der Anbieter h UI_TEXT_CONTENT["AISTUDIO::PROVIDER::CONFIDENCE::T3368531176"] = "Kein Anbieter ausgewählt. Bitte wählen Sie einen Anbieter aus, um dessen Vertrauensniveau zu sehen." -- The provider operates its service from the USA and is subject to **US jurisdiction**. In case of suspicion, authorities in the USA can access your data. However, **your data is not used for training** purposes. -UI_TEXT_CONTENT["AISTUDIO::PROVIDER::CONFIDENCE::T3528165925"] = "Der Anbieter betreibt seinen Dienst aus den USA und unterliegt der **US-amerikanischen Gerichtsbarkeit**. Bei Verdacht können US-Behörden auf ihre Daten zugreifen. **ihre Daten werden jedoch nicht für Trainingszwecke** verwendet." +UI_TEXT_CONTENT["AISTUDIO::PROVIDER::CONFIDENCE::T3528165925"] = "Der Anbieter betreibt seinen Dienst aus den USA und unterliegt der **US-amerikanischen Gerichtsbarkeit**. Bei Verdacht können US-Behörden auf ihre Daten zugreifen. **Ihre Daten werden jedoch nicht für Trainingszwecke** verwendet." -- The provider operates its service from the USA and is subject to **U.S. jurisdiction**. In case of suspicion, authorities in the USA can access your data. Please inform yourself about the use of your data. We do not know if your data is safe. UI_TEXT_CONTENT["AISTUDIO::PROVIDER::CONFIDENCE::T3788466789"] = "Der Anbieter betreibt seinen Service in den USA und unterliegt der **US-amerikanischen Gerichtsbarkeit**. Im Verdachtsfall können US-Behörden auf ihre Daten zugreifen. Bitte informieren Sie sich über die Verwendung ihrer Daten. Wir wissen nicht, ob ihre Daten sicher sind." @@ -4794,6 +4884,9 @@ UI_TEXT_CONTENT["AISTUDIO::PROVIDER::LLMPROVIDERSEXTENSIONS::T3424652889"] = "Un -- no model selected UI_TEXT_CONTENT["AISTUDIO::PROVIDER::MODEL::T2234274832"] = "Kein Modell ausgewählt" +-- Sources +UI_TEXT_CONTENT["AISTUDIO::PROVIDER::SOURCEEXTENSIONS::T2730980305"] = "Quellen" + -- Use no chat template UI_TEXT_CONTENT["AISTUDIO::SETTINGS::CHATTEMPLATE::T4258819635"] = "Keine Chat-Vorlage verwenden" @@ -4842,6 +4935,9 @@ UI_TEXT_CONTENT["AISTUDIO::SETTINGS::CONFIGURATIONSELECTDATAFACTORY::T2128088682 -- Navigation expands on mouse hover UI_TEXT_CONTENT["AISTUDIO::SETTINGS::CONFIGURATIONSELECTDATAFACTORY::T2195945406"] = "Navigationsleiste erweitert sich, wenn sich die Maus darüber befindet" +-- Install updates manually +UI_TEXT_CONTENT["AISTUDIO::SETTINGS::CONFIGURATIONSELECTDATAFACTORY::T220653235"] = "Updates manuell installieren" + -- Also show features ready for release; these should be stable UI_TEXT_CONTENT["AISTUDIO::SETTINGS::CONFIGURATIONSELECTDATAFACTORY::T2301448762"] = "Auch Funktionen anzeigen, die bereit für die Veröffentlichung sind; diese sollten stabil sein." @@ -4881,6 +4977,9 @@ UI_TEXT_CONTENT["AISTUDIO::SETTINGS::CONFIGURATIONSELECTDATAFACTORY::T3137986690 -- Disappearing chats: delete chats older than 180 days UI_TEXT_CONTENT["AISTUDIO::SETTINGS::CONFIGURATIONSELECTDATAFACTORY::T3491430707"] = "Selbstlöschende Chats: lösche Chats die älter als 180 Tage sind" +-- Install updates automatically +UI_TEXT_CONTENT["AISTUDIO::SETTINGS::CONFIGURATIONSELECTDATAFACTORY::T3569059463"] = "Updates automatisch installieren" + -- Disable workspaces UI_TEXT_CONTENT["AISTUDIO::SETTINGS::CONFIGURATIONSELECTDATAFACTORY::T3612390107"] = "Arbeitsbereiche deaktivieren" @@ -5415,9 +5514,6 @@ UI_TEXT_CONTENT["AISTUDIO::TOOLS::PLUGINSYSTEM::PLUGINCONFIGURATION::T1148682011 -- The CONFIG table does not exist or is not a valid table. UI_TEXT_CONTENT["AISTUDIO::TOOLS::PLUGINSYSTEM::PLUGINCONFIGURATION::T3331620576"] = "Die Tabelle CONFIG existiert nicht oder ist keine gültige Tabelle." --- The LLM_PROVIDERS table does not exist or is not a valid table. -UI_TEXT_CONTENT["AISTUDIO::TOOLS::PLUGINSYSTEM::PLUGINCONFIGURATION::T806592324"] = "Die Tabelle LLM_PROVIDERS existiert nicht oder ist keine gültige Tabelle." - -- The field IETF_TAG does not exist or is not a valid string. UI_TEXT_CONTENT["AISTUDIO::TOOLS::PLUGINSYSTEM::PLUGINLANGUAGE::T1796010240"] = "Das Feld IETF_TAG existiert nicht oder ist keine gültige Zeichenkette." @@ -5544,6 +5640,9 @@ UI_TEXT_CONTENT["AISTUDIO::TOOLS::SERVICES::RUSTSERVICE::SECRETS::T4007657575"] -- No update found. UI_TEXT_CONTENT["AISTUDIO::TOOLS::SERVICES::UPDATESERVICE::T1015418291"] = "Kein Update gefunden." +-- Failed to install update automatically. Please try again manually. +UI_TEXT_CONTENT["AISTUDIO::TOOLS::SERVICES::UPDATESERVICE::T3709709946"] = "Fehler bei der automatischen Installation des Updates. Bitte versuchen Sie es manuell erneut." + -- The hostname is not a valid HTTP(S) URL. UI_TEXT_CONTENT["AISTUDIO::TOOLS::VALIDATION::DATASOURCEVALIDATION::T1013354736"] = "Der Hostname ist keine gültige HTTP(S)-URL." @@ -5646,5 +5745,8 @@ UI_TEXT_CONTENT["AISTUDIO::TOOLS::VALIDATION::PROVIDERVALIDATION::T497939286"] = -- Please select a model. UI_TEXT_CONTENT["AISTUDIO::TOOLS::VALIDATION::PROVIDERVALIDATION::T818893091"] = "Bitte wählen Sie ein Modell aus." +-- Unnamed workspace +UI_TEXT_CONTENT["AISTUDIO::TOOLS::WORKSPACEBEHAVIOUR::T1307384014"] = "Unbenannter Arbeitsbereich" + -- Delete Chat UI_TEXT_CONTENT["AISTUDIO::TOOLS::WORKSPACEBEHAVIOUR::T2244038752"] = "Chat löschen" diff --git a/app/MindWork AI Studio/Plugins/languages/en-us-97dfb1ba-50c4-4440-8dfa-6575daf543c8/plugin.lua b/app/MindWork AI Studio/Plugins/languages/en-us-97dfb1ba-50c4-4440-8dfa-6575daf543c8/plugin.lua index 99371d03..29778d75 100644 --- a/app/MindWork AI Studio/Plugins/languages/en-us-97dfb1ba-50c4-4440-8dfa-6575daf543c8/plugin.lua +++ b/app/MindWork AI Studio/Plugins/languages/en-us-97dfb1ba-50c4-4440-8dfa-6575daf543c8/plugin.lua @@ -1224,12 +1224,18 @@ UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::TEXTSUMMARIZER::ASSISTANTTEXTSUMMARIZER:: -- Target language UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::TEXTSUMMARIZER::ASSISTANTTEXTSUMMARIZER::T237828418"] = "Target language" +-- (Optional) Important Aspects +UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::TEXTSUMMARIZER::ASSISTANTTEXTSUMMARIZER::T24391765"] = "(Optional) Important Aspects" + -- Summarize long text into a shorter version while retaining the main points. You might want to change the language of the summary to make it more readable. It is also possible to change the complexity of the summary to make it easy to understand. UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::TEXTSUMMARIZER::ASSISTANTTEXTSUMMARIZER::T359929871"] = "Summarize long text into a shorter version while retaining the main points. You might want to change the language of the summary to make it more readable. It is also possible to change the complexity of the summary to make it easy to understand." -- Please provide your field of expertise. UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::TEXTSUMMARIZER::ASSISTANTTEXTSUMMARIZER::T3610378685"] = "Please provide your field of expertise." +-- (Optional) Specify aspects for the LLM to focus on when generating a summary, such as summary length or specific topics to emphasize. +UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::TEXTSUMMARIZER::ASSISTANTTEXTSUMMARIZER::T3830285347"] = "(Optional) Specify aspects for the LLM to focus on when generating a summary, such as summary length or specific topics to emphasize." + -- Custom target language UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::TEXTSUMMARIZER::ASSISTANTTEXTSUMMARIZER::T3848935911"] = "Custom target language" @@ -1317,9 +1323,6 @@ UI_TEXT_CONTENT["AISTUDIO::CHAT::CHATROLEEXTENSIONS::T601166687"] = "AI" -- Edit Message UI_TEXT_CONTENT["AISTUDIO::CHAT::CONTENTBLOCKCOMPONENT::T1183581066"] = "Edit Message" --- Copies the content to the clipboard -UI_TEXT_CONTENT["AISTUDIO::CHAT::CONTENTBLOCKCOMPONENT::T12948066"] = "Copies the content to the clipboard" - -- Do you really want to remove this message? UI_TEXT_CONTENT["AISTUDIO::CHAT::CONTENTBLOCKCOMPONENT::T1347427447"] = "Do you really want to remove this message?" @@ -1332,6 +1335,9 @@ UI_TEXT_CONTENT["AISTUDIO::CHAT::CONTENTBLOCKCOMPONENT::T1603883875"] = "Yes, re -- Yes, remove it UI_TEXT_CONTENT["AISTUDIO::CHAT::CONTENTBLOCKCOMPONENT::T1820166585"] = "Yes, remove it" +-- Number of sources +UI_TEXT_CONTENT["AISTUDIO::CHAT::CONTENTBLOCKCOMPONENT::T1848978959"] = "Number of sources" + -- Do you really want to edit this message? In order to edit this message, the AI response will be deleted. UI_TEXT_CONTENT["AISTUDIO::CHAT::CONTENTBLOCKCOMPONENT::T2018431076"] = "Do you really want to edit this message? In order to edit this message, the AI response will be deleted." @@ -1353,9 +1359,6 @@ UI_TEXT_CONTENT["AISTUDIO::CHAT::CONTENTBLOCKCOMPONENT::T3587744975"] = "Regener -- Do you really want to regenerate this message? UI_TEXT_CONTENT["AISTUDIO::CHAT::CONTENTBLOCKCOMPONENT::T3878878761"] = "Do you really want to regenerate this message?" --- Cannot copy this content type to clipboard! -UI_TEXT_CONTENT["AISTUDIO::CHAT::CONTENTBLOCKCOMPONENT::T4021525742"] = "Cannot copy this content type to clipboard!" - -- Remove Message UI_TEXT_CONTENT["AISTUDIO::CHAT::CONTENTBLOCKCOMPONENT::T4070211974"] = "Remove Message" @@ -1452,6 +1455,9 @@ UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::CONFIDENCEINFO::T3243388657"] = "Confiden -- Shows and hides the confidence card with information about the selected LLM provider. UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::CONFIDENCEINFO::T847071819"] = "Shows and hides the confidence card with information about the selected LLM provider." +-- This feature is managed by your organization and has therefore been disabled. +UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::CONFIGURATIONBASE::T1416426626"] = "This feature is managed by your organization and has therefore been disabled." + -- Choose the minimum confidence level that all LLM providers must meet. This way, you can ensure that only trustworthy providers are used. You cannot use any provider that falls below this level. UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::CONFIGURATIONMINCONFIDENCESELECTION::T2526727283"] = "Choose the minimum confidence level that all LLM providers must meet. This way, you can ensure that only trustworthy providers are used. You cannot use any provider that falls below this level." @@ -1590,6 +1596,12 @@ UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::MOTIVATION::T372007989"] = "Relying on we -- Cross-Platform and Modern Development UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::MOTIVATION::T843057510"] = "Cross-Platform and Modern Development" +-- Copies the content to the clipboard +UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::MUDCOPYCLIPBOARDBUTTON::T12948066"] = "Copies the content to the clipboard" + +-- Cannot copy this content type to clipboard. +UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::MUDCOPYCLIPBOARDBUTTON::T3937637647"] = "Cannot copy this content type to clipboard." + -- Alpha phase means that we are working on the last details before the beta phase. UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::PREVIEWALPHA::T166807685"] = "Alpha phase means that we are working on the last details before the beta phase." @@ -1704,6 +1716,24 @@ UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::READWEBCONTENT::T3825586228"] = "Please p -- Show web content options UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::READWEBCONTENT::T4249712357"] = "Show web content options" +-- Loading +UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::READWEBCONTENTSTEPSEXTENSIONS::T1404011351"] = "Loading" + +-- Start +UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::READWEBCONTENTSTEPSEXTENSIONS::T182978943"] = "Start" + +-- Done +UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::READWEBCONTENTSTEPSEXTENSIONS::T2379421585"] = "Done" + +-- Parsing +UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::READWEBCONTENTSTEPSEXTENSIONS::T3151033983"] = "Parsing" + +-- Cleaning +UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::READWEBCONTENTSTEPSEXTENSIONS::T3420573362"] = "Cleaning" + +-- n/a +UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::READWEBCONTENTSTEPSEXTENSIONS::T907272257"] = "n/a" + -- Hide content UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::SECRETINPUTFIELD::T1273315904"] = "Hide content" @@ -1827,6 +1857,9 @@ UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::SETTINGS::SETTINGSPANELAPP::T1907446663"] -- Language behavior UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::SETTINGS::SETTINGSPANELAPP::T2341504363"] = "Language behavior" +-- Update installation method +UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::SETTINGS::SETTINGSPANELAPP::T237706157"] = "Update installation method" + -- Language UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::SETTINGS::SETTINGSPANELAPP::T2591284123"] = "Language" @@ -1857,6 +1890,9 @@ UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::SETTINGS::SETTINGSPANELAPP::T602293588"] -- Choose the color theme that best suits for you. UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::SETTINGS::SETTINGSPANELAPP::T654667432"] = "Choose the color theme that best suits for you." +-- Should updates be installed automatically or manually? +UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::SETTINGS::SETTINGSPANELAPP::T707880477"] = "Should updates be installed automatically or manually?" + -- Energy saving is enabled UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::SETTINGS::SETTINGSPANELAPP::T71162186"] = "Energy saving is enabled" @@ -2112,6 +2148,9 @@ UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::WORKSPACES::T1016188706"] = "Are you sure -- Move chat UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::WORKSPACES::T1133040906"] = "Move chat" +-- Unnamed workspace +UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::WORKSPACES::T1307384014"] = "Unnamed workspace" + -- Delete UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::WORKSPACES::T1469573738"] = "Delete" @@ -2145,6 +2184,12 @@ UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::WORKSPACES::T2237618267"] = "Are you sure -- Delete Chat UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::WORKSPACES::T2244038752"] = "Delete Chat" +-- Please enter a chat name. +UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::WORKSPACES::T2301651387"] = "Please enter a chat name." + +-- Workspace Name +UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::WORKSPACES::T2446263209"] = "Workspace Name" + -- Move to workspace UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::WORKSPACES::T2509305748"] = "Move to workspace" @@ -2157,6 +2202,12 @@ UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::WORKSPACES::T3045856778"] = "Move Chat to -- Please enter a new or edit the name for your workspace '{0}': UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::WORKSPACES::T323280982"] = "Please enter a new or edit the name for your workspace '{0}':" +-- Please enter a workspace name. +UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::WORKSPACES::T3288132732"] = "Please enter a workspace name." + +-- Unnamed chat +UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::WORKSPACES::T3310482275"] = "Unnamed chat" + -- Rename UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::WORKSPACES::T3355849203"] = "Rename" @@ -2169,6 +2220,9 @@ UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::WORKSPACES::T3555709365"] = "Load Chat" -- Add Workspace UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::WORKSPACES::T3672981145"] = "Add Workspace" +-- Chat Name +UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::WORKSPACES::T3891063690"] = "Chat Name" + -- Empty chat UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::WORKSPACES::T4019509364"] = "Empty chat" @@ -3414,6 +3468,9 @@ UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGCHATTEMPLATE::T32678 -- Close UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGCHATTEMPLATE::T3448155331"] = "Close" +-- This template is managed by your organization. +UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGCHATTEMPLATE::T3576775249"] = "This template is managed by your organization." + -- Edit Chat Template UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGCHATTEMPLATE::T3596030597"] = "Edit Chat Template" @@ -3957,12 +4014,18 @@ UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGTEXTSUMMARIZER::T364 -- When enabled, the content cleaner agent is preselected. This is might be useful when you prefer to clean up the content before summarize it. UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGTEXTSUMMARIZER::T3660434400"] = "When enabled, the content cleaner agent is preselected. This is might be useful when you prefer to clean up the content before summarize it." +-- Preselect important aspects +UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGTEXTSUMMARIZER::T3705987833"] = "Preselect important aspects" + -- When enabled, you can preselect the text summarizer options. This is might be useful when you prefer a specific language, complexity, or LLM. UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGTEXTSUMMARIZER::T3820844575"] = "When enabled, you can preselect the text summarizer options. This is might be useful when you prefer a specific language, complexity, or LLM." -- Which summarizer complexity should be preselected? UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGTEXTSUMMARIZER::T408530182"] = "Which summarizer complexity should be preselected?" +-- Preselect aspects for the LLM to focus on when generating a summary, such as summary length or specific topics to emphasize. +UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGTEXTSUMMARIZER::T414420518"] = "Preselect aspects for the LLM to focus on when generating a summary, such as summary length or specific topics to emphasize." + -- Preselect your expertise UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGTEXTSUMMARIZER::T51139714"] = "Preselect your expertise" @@ -4116,8 +4179,11 @@ UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGWRITINGEMAILS::T3832 -- Preselect one of your profiles? UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGWRITINGEMAILS::T4004501229"] = "Preselect one of your profiles?" --- Chat name -UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SINGLEINPUTDIALOG::T1746586282"] = "Chat name" +-- Please enter a value. +UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SINGLEINPUTDIALOG::T3576780391"] = "Please enter a value." + +-- Your Input +UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SINGLEINPUTDIALOG::T4030229154"] = "Your Input" -- Cancel UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SINGLEINPUTDIALOG::T900713019"] = "Cancel" @@ -4185,8 +4251,11 @@ UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T1020427799"] = "About MindWork AI Stud -- Browse AI Studio's source code on GitHub — we welcome your contributions. UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T1107156991"] = "Browse AI Studio's source code on GitHub — we welcome your contributions." --- AI Studio runs with an enterprise configuration id '{0}' and configuration server URL '{1}'. The configuration plugin is not yet available. -UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T1297057566"] = "AI Studio runs with an enterprise configuration id '{0}' and configuration server URL '{1}'. The configuration plugin is not yet available." +-- This is a private AI Studio installation. It runs without an enterprise configuration. +UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T1209549230"] = "This is a private AI Studio installation. It runs without an enterprise configuration." + +-- AI Studio runs with an enterprise configuration and a configuration server. The configuration plugin is not yet available. +UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T1282228996"] = "AI Studio runs with an enterprise configuration and a configuration server. The configuration plugin is not yet available." -- This library is used to read PDF files. This is necessary, e.g., for using PDFs as a data source for a chat. UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T1388816916"] = "This library is used to read PDF files. This is necessary, e.g., for using PDFs as a data source for a chat." @@ -4194,12 +4263,6 @@ UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T1388816916"] = "This library is used t -- This library is used to extend the MudBlazor library. It provides additional components that are not part of the MudBlazor library. UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T1421513382"] = "This library is used to extend the MudBlazor library. It provides additional components that are not part of the MudBlazor library." --- AI Studio runs with an enterprise configuration id '{0}' and configuration server URL '{1}'. The configuration plugin is active. -UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T1454889560"] = "AI Studio runs with an enterprise configuration id '{0}' and configuration server URL '{1}'. The configuration plugin is active." - --- AI Studio runs with an enterprise configuration using the configuration plugin '{0}', without central configuration management. -UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T1530477579"] = "AI Studio runs with an enterprise configuration using the configuration plugin '{0}', without central configuration management." - -- We use Lua as the language for plugins. Lua-CSharp lets Lua scripts communicate with AI Studio and vice versa. Thank you, Yusuke Nakada, for this great library. UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T162898512"] = "We use Lua as the language for plugins. Lua-CSharp lets Lua scripts communicate with AI Studio and vice versa. Thank you, Yusuke Nakada, for this great library." @@ -4218,6 +4281,9 @@ UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T1806897624"] = "By clicking on the res -- Pandoc Installation UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T185447014"] = "Pandoc Installation" +-- Copies the configuration plugin ID to the clipboard +UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T1859295819"] = "Copies the configuration plugin ID to the clipboard" + -- Check for updates UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T1890416390"] = "Check for updates" @@ -4233,21 +4299,30 @@ UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T1924365263"] = "This library is used t -- We use Rocket to implement the runtime API. This is necessary because the runtime must be able to communicate with the user interface (IPC). Rocket is a great framework for implementing web APIs in Rust. UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T1943216839"] = "We use Rocket to implement the runtime API. This is necessary because the runtime must be able to communicate with the user interface (IPC). Rocket is a great framework for implementing web APIs in Rust." +-- Copies the server URL to the clipboard +UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T2037899437"] = "Copies the server URL to the clipboard" + -- This library is used to determine the file type of a file. This is necessary, e.g., when we want to stream a file. UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T2173617769"] = "This library is used to determine the file type of a file. This is necessary, e.g., when we want to stream a file." -- For the secure communication between the user interface and the runtime, we need to create certificates. This Rust library is great for this purpose. UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T2174764529"] = "For the secure communication between the user interface and the runtime, we need to create certificates. This Rust library is great for this purpose." --- This is a private AI Studio installation. It runs without an enterprise configuration. -UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T2244723851"] = "This is a private AI Studio installation. It runs without an enterprise configuration." - -- OK UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T2246359087"] = "OK" +-- Configuration server: +UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T2272122662"] = "Configuration server:" + -- We must generate random numbers, e.g., for securing the interprocess communication between the user interface and the runtime. The rand library is great for this purpose. UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T2273492381"] = "We must generate random numbers, e.g., for securing the interprocess communication between the user interface and the runtime. The rand library is great for this purpose." +-- AI Studio runs with an enterprise configuration using a configuration plugin, without central configuration management. +UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T2280402765"] = "AI Studio runs with an enterprise configuration using a configuration plugin, without central configuration management." + +-- Configuration plugin ID: +UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T2301484629"] = "Configuration plugin ID:" + -- The C# language is used for the implementation of the user interface and the backend. To implement the user interface with C#, the Blazor technology from ASP.NET Core is used. All these technologies are integrated into the .NET SDK. UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T2329884315"] = "The C# language is used for the implementation of the user interface and the backend. To implement the user interface with C#, the Blazor technology from ASP.NET Core is used. All these technologies are integrated into the .NET SDK." @@ -4287,6 +4362,9 @@ UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T2765814390"] = "Determine Pandoc versi -- Code in the Rust language can be specified as synchronous or asynchronous. Unlike .NET and the C# language, Rust cannot execute asynchronous code by itself. Rust requires support in the form of an executor for this. Tokio is one such executor. UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T2777988282"] = "Code in the Rust language can be specified as synchronous or asynchronous. Unlike .NET and the C# language, Rust cannot execute asynchronous code by itself. Rust requires support in the form of an executor for this. Tokio is one such executor." +-- Show Details +UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T27924674"] = "Show Details" + -- View our project roadmap and help shape AI Studio's future development. UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T2829971158"] = "View our project roadmap and help shape AI Studio's future development." @@ -4302,12 +4380,18 @@ UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T2868174483"] = "The .NET backend canno -- Changelog UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T3017574265"] = "Changelog" +-- Enterprise configuration ID: +UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T3092349641"] = "Enterprise configuration ID:" + -- Connect AI Studio to your organization's data with our External Retrieval Interface (ERI). UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T313276297"] = "Connect AI Studio to your organization's data with our External Retrieval Interface (ERI)." -- Have feature ideas? Submit suggestions for future AI Studio enhancements. UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T3178730036"] = "Have feature ideas? Submit suggestions for future AI Studio enhancements." +-- Hide Details +UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T3183837919"] = "Hide Details" + -- Update Pandoc UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T3249965383"] = "Update Pandoc" @@ -4332,6 +4416,9 @@ UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T3563271893"] = "Motivation" -- This library is used to read Excel and OpenDocument spreadsheet files. This is necessary, e.g., for using spreadsheets as a data source for a chat. UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T3722989559"] = "This library is used to read Excel and OpenDocument spreadsheet files. This is necessary, e.g., for using spreadsheets as a data source for a chat." +-- AI Studio runs with an enterprise configuration and a configuration server. The configuration plugin is active. +UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T3741877842"] = "AI Studio runs with an enterprise configuration and a configuration server. The configuration plugin is active." + -- this version does not met the requirements UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T3813932670"] = "this version does not met the requirements" @@ -4374,6 +4461,9 @@ UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T639371534"] = "Did you find a bug or a -- This Rust library is used to output the app's messages to the terminal. This is helpful during development and troubleshooting. This feature is initially invisible; when the app is started via the terminal, the messages become visible. UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T64689067"] = "This Rust library is used to output the app's messages to the terminal. This is helpful during development and troubleshooting. This feature is initially invisible; when the app is started via the terminal, the messages become visible." +-- Copies the config ID to the clipboard +UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T788846912"] = "Copies the config ID to the clipboard" + -- installed by AI Studio UI_TEXT_CONTENT["AISTUDIO::PAGES::ABOUT::T833849470"] = "installed by AI Studio" @@ -4548,8 +4638,8 @@ UI_TEXT_CONTENT["AISTUDIO::PAGES::HOME::T1702902297"] = "Introduction" -- Vision UI_TEXT_CONTENT["AISTUDIO::PAGES::HOME::T1892426825"] = "Vision" --- You are not tied to any single provider. Instead, you might choose the provider that best suits your needs. Right now, we support OpenAI (GPT4o, o1, etc.), Mistral, Anthropic (Claude), Google Gemini, xAI (Grok), DeepSeek, Alibaba Cloud (Qwen), Hugging Face, and self-hosted models using llama.cpp, ollama, LM Studio, Groq, or Fireworks. For scientists and employees of research institutions, we also support Helmholtz and GWDG AI services. These are available through federated logins like eduGAIN to all 18 Helmholtz Centers, the Max Planck Society, most German, and many international universities. -UI_TEXT_CONTENT["AISTUDIO::PAGES::HOME::T2217921237"] = "You are not tied to any single provider. Instead, you might choose the provider that best suits your needs. Right now, we support OpenAI (GPT4o, o1, etc.), Mistral, Anthropic (Claude), Google Gemini, xAI (Grok), DeepSeek, Alibaba Cloud (Qwen), Hugging Face, and self-hosted models using llama.cpp, ollama, LM Studio, Groq, or Fireworks. For scientists and employees of research institutions, we also support Helmholtz and GWDG AI services. These are available through federated logins like eduGAIN to all 18 Helmholtz Centers, the Max Planck Society, most German, and many international universities." +-- You are not tied to any single provider. Instead, you might choose the provider that best suits your needs. Right now, we support OpenAI (GPT5, o1, etc.), Perplexity, Mistral, Anthropic (Claude), Google Gemini, xAI (Grok), DeepSeek, Alibaba Cloud (Qwen), Hugging Face, and self-hosted models using vLLM, llama.cpp, ollama, LM Studio, Groq, or Fireworks. For scientists and employees of research institutions, we also support Helmholtz and GWDG AI services. These are available through federated logins like eduGAIN to all 18 Helmholtz Centers, the Max Planck Society, most German, and many international universities. +UI_TEXT_CONTENT["AISTUDIO::PAGES::HOME::T2183503084"] = "You are not tied to any single provider. Instead, you might choose the provider that best suits your needs. Right now, we support OpenAI (GPT5, o1, etc.), Perplexity, Mistral, Anthropic (Claude), Google Gemini, xAI (Grok), DeepSeek, Alibaba Cloud (Qwen), Hugging Face, and self-hosted models using vLLM, llama.cpp, ollama, LM Studio, Groq, or Fireworks. For scientists and employees of research institutions, we also support Helmholtz and GWDG AI services. These are available through federated logins like eduGAIN to all 18 Helmholtz Centers, the Max Planck Society, most German, and many international universities." -- Let's get started UI_TEXT_CONTENT["AISTUDIO::PAGES::HOME::T2331588413"] = "Let's get started" @@ -4794,6 +4884,9 @@ UI_TEXT_CONTENT["AISTUDIO::PROVIDER::LLMPROVIDERSEXTENSIONS::T3424652889"] = "Un -- no model selected UI_TEXT_CONTENT["AISTUDIO::PROVIDER::MODEL::T2234274832"] = "no model selected" +-- Sources +UI_TEXT_CONTENT["AISTUDIO::PROVIDER::SOURCEEXTENSIONS::T2730980305"] = "Sources" + -- Use no chat template UI_TEXT_CONTENT["AISTUDIO::SETTINGS::CHATTEMPLATE::T4258819635"] = "Use no chat template" @@ -4842,6 +4935,9 @@ UI_TEXT_CONTENT["AISTUDIO::SETTINGS::CONFIGURATIONSELECTDATAFACTORY::T2128088682 -- Navigation expands on mouse hover UI_TEXT_CONTENT["AISTUDIO::SETTINGS::CONFIGURATIONSELECTDATAFACTORY::T2195945406"] = "Navigation expands on mouse hover" +-- Install updates manually +UI_TEXT_CONTENT["AISTUDIO::SETTINGS::CONFIGURATIONSELECTDATAFACTORY::T220653235"] = "Install updates manually" + -- Also show features ready for release; these should be stable UI_TEXT_CONTENT["AISTUDIO::SETTINGS::CONFIGURATIONSELECTDATAFACTORY::T2301448762"] = "Also show features ready for release; these should be stable" @@ -4881,6 +4977,9 @@ UI_TEXT_CONTENT["AISTUDIO::SETTINGS::CONFIGURATIONSELECTDATAFACTORY::T3137986690 -- Disappearing chats: delete chats older than 180 days UI_TEXT_CONTENT["AISTUDIO::SETTINGS::CONFIGURATIONSELECTDATAFACTORY::T3491430707"] = "Disappearing chats: delete chats older than 180 days" +-- Install updates automatically +UI_TEXT_CONTENT["AISTUDIO::SETTINGS::CONFIGURATIONSELECTDATAFACTORY::T3569059463"] = "Install updates automatically" + -- Disable workspaces UI_TEXT_CONTENT["AISTUDIO::SETTINGS::CONFIGURATIONSELECTDATAFACTORY::T3612390107"] = "Disable workspaces" @@ -5415,9 +5514,6 @@ UI_TEXT_CONTENT["AISTUDIO::TOOLS::PLUGINSYSTEM::PLUGINCONFIGURATION::T1148682011 -- The CONFIG table does not exist or is not a valid table. UI_TEXT_CONTENT["AISTUDIO::TOOLS::PLUGINSYSTEM::PLUGINCONFIGURATION::T3331620576"] = "The CONFIG table does not exist or is not a valid table." --- The LLM_PROVIDERS table does not exist or is not a valid table. -UI_TEXT_CONTENT["AISTUDIO::TOOLS::PLUGINSYSTEM::PLUGINCONFIGURATION::T806592324"] = "The LLM_PROVIDERS table does not exist or is not a valid table." - -- The field IETF_TAG does not exist or is not a valid string. UI_TEXT_CONTENT["AISTUDIO::TOOLS::PLUGINSYSTEM::PLUGINLANGUAGE::T1796010240"] = "The field IETF_TAG does not exist or is not a valid string." @@ -5544,6 +5640,9 @@ UI_TEXT_CONTENT["AISTUDIO::TOOLS::SERVICES::RUSTSERVICE::SECRETS::T4007657575"] -- No update found. UI_TEXT_CONTENT["AISTUDIO::TOOLS::SERVICES::UPDATESERVICE::T1015418291"] = "No update found." +-- Failed to install update automatically. Please try again manually. +UI_TEXT_CONTENT["AISTUDIO::TOOLS::SERVICES::UPDATESERVICE::T3709709946"] = "Failed to install update automatically. Please try again manually." + -- The hostname is not a valid HTTP(S) URL. UI_TEXT_CONTENT["AISTUDIO::TOOLS::VALIDATION::DATASOURCEVALIDATION::T1013354736"] = "The hostname is not a valid HTTP(S) URL." @@ -5646,5 +5745,8 @@ UI_TEXT_CONTENT["AISTUDIO::TOOLS::VALIDATION::PROVIDERVALIDATION::T497939286"] = -- Please select a model. UI_TEXT_CONTENT["AISTUDIO::TOOLS::VALIDATION::PROVIDERVALIDATION::T818893091"] = "Please select a model." +-- Unnamed workspace +UI_TEXT_CONTENT["AISTUDIO::TOOLS::WORKSPACEBEHAVIOUR::T1307384014"] = "Unnamed workspace" + -- Delete Chat UI_TEXT_CONTENT["AISTUDIO::TOOLS::WORKSPACEBEHAVIOUR::T2244038752"] = "Delete Chat" diff --git a/app/MindWork AI Studio/Program.cs b/app/MindWork AI Studio/Program.cs index 072dd3ad..a4d9c2b4 100644 --- a/app/MindWork AI Studio/Program.cs +++ b/app/MindWork AI Studio/Program.cs @@ -126,7 +126,6 @@ internal sealed class Program builder.Services.AddSingleton(); builder.Services.AddSingleton(); builder.Services.AddSingleton(); - builder.Services.AddSingleton(); builder.Services.AddTransient(); builder.Services.AddTransient(); builder.Services.AddTransient(); diff --git a/app/MindWork AI Studio/Provider/AlibabaCloud/ProviderAlibabaCloud.cs b/app/MindWork AI Studio/Provider/AlibabaCloud/ProviderAlibabaCloud.cs index fb38cc4f..cbf87c65 100644 --- a/app/MindWork AI Studio/Provider/AlibabaCloud/ProviderAlibabaCloud.cs +++ b/app/MindWork AI Studio/Provider/AlibabaCloud/ProviderAlibabaCloud.cs @@ -9,8 +9,9 @@ using AIStudio.Settings; namespace AIStudio.Provider.AlibabaCloud; -public sealed class ProviderAlibabaCloud(ILogger logger) : BaseProvider("https://dashscope-intl.aliyuncs.com/compatible-mode/v1/", logger) +public sealed class ProviderAlibabaCloud() : BaseProvider("https://dashscope-intl.aliyuncs.com/compatible-mode/v1/", LOGGER) { + private static readonly ILogger LOGGER = Program.LOGGER_FACTORY.CreateLogger(); #region Implementation of IProvider @@ -21,7 +22,7 @@ public sealed class ProviderAlibabaCloud(ILogger logger) : BaseProvider("https:/ public override string InstanceName { get; set; } = "AlibabaCloud"; /// - public override async IAsyncEnumerable StreamChatCompletion(Model chatModel, ChatThread chatThread, SettingsManager settingsManager, [EnumeratorCancellation] CancellationToken token = default) + public override async IAsyncEnumerable StreamChatCompletion(Model chatModel, ChatThread chatThread, SettingsManager settingsManager, [EnumeratorCancellation] CancellationToken token = default) { // Get the API key: var requestedSecret = await RUST_SERVICE.GetAPIKey(this); @@ -32,11 +33,11 @@ public sealed class ProviderAlibabaCloud(ILogger logger) : BaseProvider("https:/ var systemPrompt = new Message { Role = "system", - Content = chatThread.PrepareSystemPrompt(settingsManager, chatThread, this.logger), + Content = chatThread.PrepareSystemPrompt(settingsManager, chatThread), }; // Prepare the AlibabaCloud HTTP chat request: - var alibabaCloudChatRequest = JsonSerializer.Serialize(new ChatRequest + var alibabaCloudChatRequest = JsonSerializer.Serialize(new ChatCompletionAPIRequest { Model = chatModel.Id, @@ -77,7 +78,7 @@ public sealed class ProviderAlibabaCloud(ILogger logger) : BaseProvider("https:/ return request; } - await foreach (var content in this.StreamChatCompletionInternal("AlibabaCloud", RequestBuilder, token)) + await foreach (var content in this.StreamChatCompletionInternal("AlibabaCloud", RequestBuilder, token)) yield return content; } @@ -156,7 +157,9 @@ public sealed class ProviderAlibabaCloud(ILogger logger) : BaseProvider("https:/ Capability.AUDIO_INPUT, Capability.SPEECH_INPUT, Capability.VIDEO_INPUT, - Capability.TEXT_OUTPUT, Capability.SPEECH_OUTPUT + Capability.TEXT_OUTPUT, Capability.SPEECH_OUTPUT, + + Capability.CHAT_COMPLETION_API, ]; // Check for Qwen 3: @@ -166,7 +169,8 @@ public sealed class ProviderAlibabaCloud(ILogger logger) : BaseProvider("https:/ Capability.TEXT_INPUT, Capability.TEXT_OUTPUT, - Capability.OPTIONAL_REASONING, Capability.FUNCTION_CALLING + Capability.OPTIONAL_REASONING, Capability.FUNCTION_CALLING, + Capability.CHAT_COMPLETION_API, ]; if(modelName.IndexOf("-vl-") is not -1) @@ -174,6 +178,8 @@ public sealed class ProviderAlibabaCloud(ILogger logger) : BaseProvider("https:/ [ Capability.TEXT_INPUT, Capability.MULTIPLE_IMAGE_INPUT, Capability.TEXT_OUTPUT, + + Capability.CHAT_COMPLETION_API, ]; } @@ -185,7 +191,8 @@ public sealed class ProviderAlibabaCloud(ILogger logger) : BaseProvider("https:/ Capability.TEXT_INPUT, Capability.TEXT_OUTPUT, - Capability.ALWAYS_REASONING, Capability.FUNCTION_CALLING + Capability.ALWAYS_REASONING, Capability.FUNCTION_CALLING, + Capability.CHAT_COMPLETION_API, ]; } @@ -197,7 +204,8 @@ public sealed class ProviderAlibabaCloud(ILogger logger) : BaseProvider("https:/ Capability.TEXT_INPUT, Capability.MULTIPLE_IMAGE_INPUT, Capability.TEXT_OUTPUT, - Capability.ALWAYS_REASONING + Capability.ALWAYS_REASONING, + Capability.CHAT_COMPLETION_API, ]; } @@ -207,7 +215,8 @@ public sealed class ProviderAlibabaCloud(ILogger logger) : BaseProvider("https:/ Capability.TEXT_INPUT, Capability.TEXT_OUTPUT, - Capability.FUNCTION_CALLING + Capability.FUNCTION_CALLING, + Capability.CHAT_COMPLETION_API, ]; } diff --git a/app/MindWork AI Studio/Provider/Anthropic/ProviderAnthropic.cs b/app/MindWork AI Studio/Provider/Anthropic/ProviderAnthropic.cs index 7ff631fd..96c9306b 100644 --- a/app/MindWork AI Studio/Provider/Anthropic/ProviderAnthropic.cs +++ b/app/MindWork AI Studio/Provider/Anthropic/ProviderAnthropic.cs @@ -9,8 +9,10 @@ using AIStudio.Settings; namespace AIStudio.Provider.Anthropic; -public sealed class ProviderAnthropic(ILogger logger) : BaseProvider("https://api.anthropic.com/v1/", logger) +public sealed class ProviderAnthropic() : BaseProvider("https://api.anthropic.com/v1/", LOGGER) { + private static readonly ILogger LOGGER = Program.LOGGER_FACTORY.CreateLogger(); + #region Implementation of IProvider public override string Id => LLMProviders.ANTHROPIC.ToName(); @@ -18,7 +20,7 @@ public sealed class ProviderAnthropic(ILogger logger) : BaseProvider("https://ap public override string InstanceName { get; set; } = "Anthropic"; /// - public override async IAsyncEnumerable StreamChatCompletion(Model chatModel, ChatThread chatThread, SettingsManager settingsManager, [EnumeratorCancellation] CancellationToken token = default) + public override async IAsyncEnumerable StreamChatCompletion(Model chatModel, ChatThread chatThread, SettingsManager settingsManager, [EnumeratorCancellation] CancellationToken token = default) { // Get the API key: var requestedSecret = await RUST_SERVICE.GetAPIKey(this); @@ -49,7 +51,7 @@ public sealed class ProviderAnthropic(ILogger logger) : BaseProvider("https://ap } }).ToList()], - System = chatThread.PrepareSystemPrompt(settingsManager, chatThread, this.logger), + System = chatThread.PrepareSystemPrompt(settingsManager, chatThread), MaxTokens = 4_096, // Right now, we only support streaming completions: @@ -72,7 +74,7 @@ public sealed class ProviderAnthropic(ILogger logger) : BaseProvider("https://ap return request; } - await foreach (var content in this.StreamChatCompletionInternal("Anthropic", RequestBuilder, token)) + await foreach (var content in this.StreamChatCompletionInternal("Anthropic", RequestBuilder, token)) yield return content; } @@ -122,7 +124,9 @@ public sealed class ProviderAnthropic(ILogger logger) : BaseProvider("https://ap Capability.TEXT_INPUT, Capability.MULTIPLE_IMAGE_INPUT, Capability.TEXT_OUTPUT, - Capability.OPTIONAL_REASONING, Capability.FUNCTION_CALLING]; + Capability.OPTIONAL_REASONING, Capability.FUNCTION_CALLING, + Capability.CHAT_COMPLETION_API, + ]; // Claude 3.7 is able to do reasoning: if(modelName.StartsWith("claude-3-7")) @@ -130,7 +134,9 @@ public sealed class ProviderAnthropic(ILogger logger) : BaseProvider("https://ap Capability.TEXT_INPUT, Capability.MULTIPLE_IMAGE_INPUT, Capability.TEXT_OUTPUT, - Capability.OPTIONAL_REASONING, Capability.FUNCTION_CALLING]; + Capability.OPTIONAL_REASONING, Capability.FUNCTION_CALLING, + Capability.CHAT_COMPLETION_API, + ]; // All other 3.x models are able to process text and images as input: if(modelName.StartsWith("claude-3-")) @@ -138,13 +144,17 @@ public sealed class ProviderAnthropic(ILogger logger) : BaseProvider("https://ap Capability.TEXT_INPUT, Capability.MULTIPLE_IMAGE_INPUT, Capability.TEXT_OUTPUT, - Capability.FUNCTION_CALLING]; + Capability.FUNCTION_CALLING, + Capability.CHAT_COMPLETION_API, + ]; // Any other model is able to process text only: return [ Capability.TEXT_INPUT, Capability.TEXT_OUTPUT, - Capability.FUNCTION_CALLING]; + Capability.FUNCTION_CALLING, + Capability.CHAT_COMPLETION_API, + ]; } #endregion diff --git a/app/MindWork AI Studio/Provider/Anthropic/ResponseStreamLine.cs b/app/MindWork AI Studio/Provider/Anthropic/ResponseStreamLine.cs index c42e131c..9b69ce4a 100644 --- a/app/MindWork AI Studio/Provider/Anthropic/ResponseStreamLine.cs +++ b/app/MindWork AI Studio/Provider/Anthropic/ResponseStreamLine.cs @@ -13,7 +13,22 @@ public readonly record struct ResponseStreamLine(string Type, int Index, Delta D public bool ContainsContent() => this != default && !string.IsNullOrWhiteSpace(this.Delta.Text); /// - public string GetContent() => this.Delta.Text; + public ContentStreamChunk GetContent() => new(this.Delta.Text, []); + + #region Implementation of IAnnotationStreamLine + + // + // Please note: Anthropic's API does not currently support sources in their + // OpenAI-compatible response stream. + // + + /// + public bool ContainsSources() => false; + + /// + public IList GetSources() => []; + + #endregion } /// diff --git a/app/MindWork AI Studio/Provider/BaseProvider.cs b/app/MindWork AI Studio/Provider/BaseProvider.cs index 32c0e621..6a28f832 100644 --- a/app/MindWork AI Studio/Provider/BaseProvider.cs +++ b/app/MindWork AI Studio/Provider/BaseProvider.cs @@ -3,6 +3,7 @@ using System.Runtime.CompilerServices; using System.Text.Json; using AIStudio.Chat; +using AIStudio.Provider.OpenAI; using AIStudio.Settings; using AIStudio.Tools.PluginSystem; using AIStudio.Tools.Services; @@ -24,7 +25,7 @@ public abstract class BaseProvider : IProvider, ISecretId /// /// The logger to use. /// - protected readonly ILogger logger; + private readonly ILogger logger; static BaseProvider() { @@ -39,16 +40,17 @@ public abstract class BaseProvider : IProvider, ISecretId protected static readonly JsonSerializerOptions JSON_SERIALIZER_OPTIONS = new() { PropertyNamingPolicy = JsonNamingPolicy.SnakeCaseLower, + Converters = { new AnnotationConverter() } }; /// /// Constructor for the base provider. /// /// The base URL for the provider. - /// The logger service to use. - protected BaseProvider(string url, ILogger loggerService) + /// The logger to use. + protected BaseProvider(string url, ILogger logger) { - this.logger = loggerService; + this.logger = logger; // Set the base URL: this.httpClient.BaseAddress = new(url); @@ -63,7 +65,7 @@ public abstract class BaseProvider : IProvider, ISecretId public abstract string InstanceName { get; set; } /// - public abstract IAsyncEnumerable StreamChatCompletion(Model chatModel, ChatThread chatThread, SettingsManager settingsManager, CancellationToken token = default); + public abstract IAsyncEnumerable StreamChatCompletion(Model chatModel, ChatThread chatThread, SettingsManager settingsManager, CancellationToken token = default); /// public abstract IAsyncEnumerable StreamImageCompletion(Model imageModel, string promptPositive, string promptNegative = FilterOperator.String.Empty, ImageURL referenceImageURL = default, CancellationToken token = default); @@ -96,7 +98,7 @@ public abstract class BaseProvider : IProvider, ISecretId /// A function that builds the request. /// The cancellation token. /// The status object of the request. - protected async Task SendRequest(Func> requestBuilder, CancellationToken token = default) + private async Task SendRequest(Func> requestBuilder, CancellationToken token = default) { const int MAX_RETRIES = 6; const double RETRY_DELAY_SECONDS = 4; @@ -123,10 +125,12 @@ public abstract class BaseProvider : IProvider, ISecretId break; } + var errorBody = await nextResponse.Content.ReadAsStringAsync(token); if (nextResponse.StatusCode is HttpStatusCode.Forbidden) { await MessageBus.INSTANCE.SendError(new(Icons.Material.Filled.Block, string.Format(TB("Tried to communicate with the LLM provider '{0}'. You might not be able to use this provider from your location. The provider message is: '{1}'"), this.InstanceName, nextResponse.ReasonPhrase))); this.logger.LogError($"Failed request with status code {nextResponse.StatusCode} (message = '{nextResponse.ReasonPhrase}')."); + this.logger.LogDebug($"Error body: {errorBody}"); errorMessage = nextResponse.ReasonPhrase; break; } @@ -135,6 +139,7 @@ public abstract class BaseProvider : IProvider, ISecretId { await MessageBus.INSTANCE.SendError(new(Icons.Material.Filled.CloudOff, string.Format(TB("Tried to communicate with the LLM provider '{0}'. The required message format might be changed. The provider message is: '{1}'"), this.InstanceName, nextResponse.ReasonPhrase))); this.logger.LogError($"Failed request with status code {nextResponse.StatusCode} (message = '{nextResponse.ReasonPhrase}')."); + this.logger.LogDebug($"Error body: {errorBody}"); errorMessage = nextResponse.ReasonPhrase; break; } @@ -143,6 +148,7 @@ public abstract class BaseProvider : IProvider, ISecretId { await MessageBus.INSTANCE.SendError(new(Icons.Material.Filled.CloudOff, string.Format(TB("Tried to communicate with the LLM provider '{0}'. Something was not found. The provider message is: '{1}'"), this.InstanceName, nextResponse.ReasonPhrase))); this.logger.LogError($"Failed request with status code {nextResponse.StatusCode} (message = '{nextResponse.ReasonPhrase}')."); + this.logger.LogDebug($"Error body: {errorBody}"); errorMessage = nextResponse.ReasonPhrase; break; } @@ -151,6 +157,7 @@ public abstract class BaseProvider : IProvider, ISecretId { await MessageBus.INSTANCE.SendError(new(Icons.Material.Filled.Key, string.Format(TB("Tried to communicate with the LLM provider '{0}'. The API key might be invalid. The provider message is: '{1}'"), this.InstanceName, nextResponse.ReasonPhrase))); this.logger.LogError($"Failed request with status code {nextResponse.StatusCode} (message = '{nextResponse.ReasonPhrase}')."); + this.logger.LogDebug($"Error body: {errorBody}"); errorMessage = nextResponse.ReasonPhrase; break; } @@ -159,6 +166,7 @@ public abstract class BaseProvider : IProvider, ISecretId { await MessageBus.INSTANCE.SendError(new(Icons.Material.Filled.CloudOff, string.Format(TB("Tried to communicate with the LLM provider '{0}'. The server might be down or having issues. The provider message is: '{1}'"), this.InstanceName, nextResponse.ReasonPhrase))); this.logger.LogError($"Failed request with status code {nextResponse.StatusCode} (message = '{nextResponse.ReasonPhrase}')."); + this.logger.LogDebug($"Error body: {errorBody}"); errorMessage = nextResponse.ReasonPhrase; break; } @@ -167,6 +175,7 @@ public abstract class BaseProvider : IProvider, ISecretId { await MessageBus.INSTANCE.SendError(new(Icons.Material.Filled.CloudOff, string.Format(TB("Tried to communicate with the LLM provider '{0}'. The provider is overloaded. The message is: '{1}'"), this.InstanceName, nextResponse.ReasonPhrase))); this.logger.LogError($"Failed request with status code {nextResponse.StatusCode} (message = '{nextResponse.ReasonPhrase}')."); + this.logger.LogDebug($"Error body: {errorBody}"); errorMessage = nextResponse.ReasonPhrase; break; } @@ -189,8 +198,20 @@ public abstract class BaseProvider : IProvider, ISecretId return new HttpRateLimitedStreamResult(true, false, string.Empty, response); } - protected async IAsyncEnumerable StreamChatCompletionInternal(string providerName, Func> requestBuilder, [EnumeratorCancellation] CancellationToken token = default) where T : struct, IResponseStreamLine + /// + /// Streams the chat completion from the provider using the Chat Completion API. + /// + /// The name of the provider. + /// A function that builds the request. + /// The cancellation token to use. + /// The type of the delta lines inside the stream. + /// The type of the annotation lines inside the stream. + /// The stream of content chunks. + protected async IAsyncEnumerable StreamChatCompletionInternal(string providerName, Func> requestBuilder, [EnumeratorCancellation] CancellationToken token = default) where TDelta : IResponseStreamLine where TAnnotation : IAnnotationStreamLine { + // Check if annotations are supported: + var annotationSupported = typeof(TAnnotation) != typeof(NoResponsesAnnotationStreamLine) && typeof(TAnnotation) != typeof(NoChatCompletionAnnotationStreamLine); + StreamReader? streamReader = null; try { @@ -217,7 +238,9 @@ public abstract class BaseProvider : IProvider, ISecretId if (streamReader is null) yield break; + // // Read the stream, line by line: + // while (true) { try @@ -240,7 +263,9 @@ public abstract class BaseProvider : IProvider, ISecretId yield break; } + // // Read the next line: + // string? line; try { @@ -266,28 +291,233 @@ public abstract class BaseProvider : IProvider, ISecretId if (line.StartsWith("data: [DONE]", StringComparison.InvariantCulture)) yield break; - T providerResponse; + // + // Process annotation lines: + // + if (annotationSupported && line.Contains(""" + "annotations":[ + """, StringComparison.InvariantCulture)) + { + TAnnotation? providerResponse; + + try + { + // We know that the line starts with "data: ". Hence, we can + // skip the first 6 characters to get the JSON data after that. + var jsonData = line[6..]; + + // Deserialize the JSON data: + providerResponse = JsonSerializer.Deserialize(jsonData, JSON_SERIALIZER_OPTIONS); + + if (providerResponse is null) + continue; + } + catch + { + // Skip invalid JSON data: + continue; + } + + // Skip empty responses: + if (!providerResponse.ContainsSources()) + continue; + + // Yield the response: + yield return new(string.Empty, providerResponse.GetSources()); + } + + // + // Process delta lines: + // + else + { + TDelta? providerResponse; + try + { + // We know that the line starts with "data: ". Hence, we can + // skip the first 6 characters to get the JSON data after that. + var jsonData = line[6..]; + + // Deserialize the JSON data: + providerResponse = JsonSerializer.Deserialize(jsonData, JSON_SERIALIZER_OPTIONS); + + if (providerResponse is null) + continue; + } + catch + { + // Skip invalid JSON data: + continue; + } + + // Skip empty responses: + if (!providerResponse.ContainsContent()) + continue; + + // Yield the response: + yield return providerResponse.GetContent(); + } + } + + streamReader.Dispose(); + } + + /// + /// Streams the chat completion from the provider using the Responses API. + /// + /// The name of the provider. + /// A function that builds the request. + /// The cancellation token to use. + /// The type of the delta lines inside the stream. + /// The type of the annotation lines inside the stream. + /// The stream of content chunks. + protected async IAsyncEnumerable StreamResponsesInternal(string providerName, Func> requestBuilder, [EnumeratorCancellation] CancellationToken token = default) where TDelta : IResponseStreamLine where TAnnotation : IAnnotationStreamLine + { + // Check if annotations are supported: + var annotationSupported = typeof(TAnnotation) != typeof(NoResponsesAnnotationStreamLine) && typeof(TAnnotation) != typeof(NoChatCompletionAnnotationStreamLine); + + StreamReader? streamReader = null; + try + { + // Send the request using exponential backoff: + var responseData = await this.SendRequest(requestBuilder, token); + if(responseData.IsFailedAfterAllRetries) + { + this.logger.LogError($"The {providerName} responses call failed: {responseData.ErrorMessage}"); + yield break; + } + + // Open the response stream: + var providerStream = await responseData.Response!.Content.ReadAsStreamAsync(token); + + // Add a stream reader to read the stream, line by line: + streamReader = new StreamReader(providerStream); + } + catch(Exception e) + { + await MessageBus.INSTANCE.SendError(new(Icons.Material.Filled.Stream, string.Format(TB("Tried to communicate with the LLM provider '{0}'. There were some problems with the request. The provider message is: '{1}'"), this.InstanceName, e.Message))); + this.logger.LogError($"Failed to stream responses from {providerName} '{this.InstanceName}': {e.Message}"); + } + + if (streamReader is null) + yield break; + + // + // Read the stream, line by line: + // + while (true) + { try { - // We know that the line starts with "data: ". Hence, we can - // skip the first 6 characters to get the JSON data after that. - var jsonData = line[6..]; - - // Deserialize the JSON data: - providerResponse = JsonSerializer.Deserialize(jsonData, JSON_SERIALIZER_OPTIONS); + if(streamReader.EndOfStream) + break; } - catch + catch (Exception e) { - // Skip invalid JSON data: - continue; + await MessageBus.INSTANCE.SendError(new(Icons.Material.Filled.Stream, string.Format(TB("Tried to stream the LLM provider '{0}' answer. There were some problems with the stream. The message is: '{1}'"), this.InstanceName, e.Message))); + this.logger.LogWarning($"Failed to read the end-of-stream state from {providerName} '{this.InstanceName}': {e.Message}"); + break; + } + + // Check if the token is canceled: + if (token.IsCancellationRequested) + { + this.logger.LogWarning($"The user canceled the responses for {providerName} '{this.InstanceName}'."); + streamReader.Close(); + yield break; } - // Skip empty responses: - if (!providerResponse.ContainsContent()) - continue; + // + // Read the next line: + // + string? line; + try + { + line = await streamReader.ReadLineAsync(token); + } + catch (Exception e) + { + await MessageBus.INSTANCE.SendError(new(Icons.Material.Filled.Stream, string.Format(TB("Tried to stream the LLM provider '{0}' answer. Was not able to read the stream. The message is: '{1}'"), this.InstanceName, e.Message))); + this.logger.LogError($"Failed to read the stream from {providerName} '{this.InstanceName}': {e.Message}"); + break; + } - // Yield the response: - yield return providerResponse.GetContent(); + // Skip empty lines: + if (string.IsNullOrWhiteSpace(line)) + continue; + + // Check if the line is the end of the stream: + if (line.StartsWith("event: response.completed", StringComparison.InvariantCulture)) + yield break; + + // + // Find delta lines: + // + if (line.StartsWith(""" + data: {"type":"response.output_text.delta" + """, StringComparison.InvariantCulture)) + { + TDelta? providerResponse; + try + { + // We know that the line starts with "data: ". Hence, we can + // skip the first 6 characters to get the JSON data after that. + var jsonData = line[6..]; + + // Deserialize the JSON data: + providerResponse = JsonSerializer.Deserialize(jsonData, JSON_SERIALIZER_OPTIONS); + + if (providerResponse is null) + continue; + } + catch + { + // Skip invalid JSON data: + continue; + } + + // Skip empty responses: + if (!providerResponse.ContainsContent()) + continue; + + // Yield the response: + yield return providerResponse.GetContent(); + } + + // + // Find annotation added lines: + // + else if (annotationSupported && line.StartsWith( + """ + data: {"type":"response.output_text.annotation.added" + """, StringComparison.InvariantCulture)) + { + TAnnotation? providerResponse; + try + { + // We know that the line starts with "data: ". Hence, we can + // skip the first 6 characters to get the JSON data after that. + var jsonData = line[6..]; + + // Deserialize the JSON data: + providerResponse = JsonSerializer.Deserialize(jsonData, JSON_SERIALIZER_OPTIONS); + + if (providerResponse is null) + continue; + } + catch + { + // Skip invalid JSON data: + continue; + } + + // Skip empty responses: + if (!providerResponse.ContainsSources()) + continue; + + // Yield the response: + yield return new(string.Empty, providerResponse.GetSources()); + } } streamReader.Dispose(); diff --git a/app/MindWork AI Studio/Provider/CapabilitiesOpenSource.cs b/app/MindWork AI Studio/Provider/CapabilitiesOpenSource.cs index 806b1d5b..1444ec34 100644 --- a/app/MindWork AI Studio/Provider/CapabilitiesOpenSource.cs +++ b/app/MindWork AI Studio/Provider/CapabilitiesOpenSource.cs @@ -34,11 +34,17 @@ public static class CapabilitiesOpenSource Capability.TEXT_OUTPUT, Capability.FUNCTION_CALLING, + Capability.CHAT_COMPLETION_API, ]; // The old vision models cannot do function calling: if (modelName.IndexOf("vision") is not -1) - return [Capability.TEXT_INPUT, Capability.MULTIPLE_IMAGE_INPUT, Capability.TEXT_OUTPUT]; + return [ + Capability.TEXT_INPUT, + Capability.MULTIPLE_IMAGE_INPUT, + Capability.TEXT_OUTPUT, + Capability.CHAT_COMPLETION_API, + ]; // // All models >= 3.1 are able to do function calling: @@ -53,10 +59,14 @@ public static class CapabilitiesOpenSource Capability.TEXT_OUTPUT, Capability.FUNCTION_CALLING, + Capability.CHAT_COMPLETION_API, ]; // All other llama models can only do text input and output: - return [Capability.TEXT_INPUT, Capability.TEXT_OUTPUT]; + return [ + Capability.TEXT_INPUT, Capability.TEXT_OUTPUT, + Capability.CHAT_COMPLETION_API, + ]; } // @@ -66,9 +76,16 @@ public static class CapabilitiesOpenSource { if(modelName.IndexOf("deepseek-r1") is not -1 || modelName.IndexOf("deepseek r1") is not -1) - return [Capability.TEXT_INPUT, Capability.TEXT_OUTPUT, Capability.ALWAYS_REASONING]; + return [ + Capability.TEXT_INPUT, Capability.TEXT_OUTPUT, + Capability.ALWAYS_REASONING, + Capability.CHAT_COMPLETION_API, + ]; - return [Capability.TEXT_INPUT, Capability.TEXT_OUTPUT]; + return [ + Capability.TEXT_INPUT, Capability.TEXT_OUTPUT, + Capability.CHAT_COMPLETION_API, + ]; } // @@ -77,9 +94,16 @@ public static class CapabilitiesOpenSource if (modelName.IndexOf("qwen") is not -1 || modelName.IndexOf("qwq") is not -1) { if (modelName.IndexOf("qwq") is not -1) - return [Capability.TEXT_INPUT, Capability.TEXT_OUTPUT, Capability.ALWAYS_REASONING]; + return [ + Capability.TEXT_INPUT, Capability.TEXT_OUTPUT, + Capability.ALWAYS_REASONING, + Capability.CHAT_COMPLETION_API, + ]; - return [Capability.TEXT_INPUT, Capability.TEXT_OUTPUT]; + return [ + Capability.TEXT_INPUT, Capability.TEXT_OUTPUT, + Capability.CHAT_COMPLETION_API, + ]; } // @@ -93,7 +117,8 @@ public static class CapabilitiesOpenSource [ Capability.TEXT_INPUT, Capability.MULTIPLE_IMAGE_INPUT, Capability.TEXT_OUTPUT, - Capability.FUNCTION_CALLING + Capability.FUNCTION_CALLING, + Capability.CHAT_COMPLETION_API, ]; if (modelName.IndexOf("3.1") is not -1) @@ -101,7 +126,8 @@ public static class CapabilitiesOpenSource [ Capability.TEXT_INPUT, Capability.MULTIPLE_IMAGE_INPUT, Capability.TEXT_OUTPUT, - Capability.FUNCTION_CALLING + Capability.FUNCTION_CALLING, + Capability.CHAT_COMPLETION_API, ]; // Default: @@ -109,7 +135,8 @@ public static class CapabilitiesOpenSource [ Capability.TEXT_INPUT, Capability.TEXT_OUTPUT, - Capability.FUNCTION_CALLING + Capability.FUNCTION_CALLING, + Capability.CHAT_COMPLETION_API, ]; } @@ -123,6 +150,7 @@ public static class CapabilitiesOpenSource [ Capability.TEXT_INPUT, Capability.MULTIPLE_IMAGE_INPUT, Capability.TEXT_OUTPUT, + Capability.CHAT_COMPLETION_API, ]; if(modelName.StartsWith("grok-3-mini")) @@ -132,6 +160,7 @@ public static class CapabilitiesOpenSource Capability.TEXT_OUTPUT, Capability.ALWAYS_REASONING, Capability.FUNCTION_CALLING, + Capability.CHAT_COMPLETION_API, ]; if(modelName.StartsWith("grok-3")) @@ -141,10 +170,41 @@ public static class CapabilitiesOpenSource Capability.TEXT_OUTPUT, Capability.FUNCTION_CALLING, + Capability.CHAT_COMPLETION_API, + ]; + } + + // + // OpenAI models: + // + if (modelName.IndexOf("gpt-oss") is not -1 || + modelName.IndexOf("gpt-3.5") is not -1) + { + if(modelName.IndexOf("gpt-oss") is not -1) + return + [ + Capability.TEXT_INPUT, + Capability.TEXT_OUTPUT, + + Capability.FUNCTION_CALLING, + Capability.WEB_SEARCH, + Capability.CHAT_COMPLETION_API, + ]; + + if(modelName.IndexOf("gpt-3.5") is not -1) + return + [ + Capability.TEXT_INPUT, + Capability.TEXT_OUTPUT, + + Capability.CHAT_COMPLETION_API, ]; } // Default: - return [Capability.TEXT_INPUT, Capability.TEXT_OUTPUT]; + return [ + Capability.TEXT_INPUT, Capability.TEXT_OUTPUT, + Capability.CHAT_COMPLETION_API, + ]; } } \ No newline at end of file diff --git a/app/MindWork AI Studio/Provider/Capability.cs b/app/MindWork AI Studio/Provider/Capability.cs index 047ec67b..97f56de2 100644 --- a/app/MindWork AI Studio/Provider/Capability.cs +++ b/app/MindWork AI Studio/Provider/Capability.cs @@ -94,4 +94,19 @@ public enum Capability /// The AI model can perform function calling, such as invoking APIs or executing functions. /// FUNCTION_CALLING, + + /// + /// The AI model can perform web search to retrieve information from the internet. + /// + WEB_SEARCH, + + /// + /// The AI model is used via the Chat Completion API. + /// + CHAT_COMPLETION_API, + + /// + /// The AI model is used via the Responses API. + /// + RESPONSES_API, } \ No newline at end of file diff --git a/app/MindWork AI Studio/Provider/ContentStreamChunk.cs b/app/MindWork AI Studio/Provider/ContentStreamChunk.cs new file mode 100644 index 00000000..c6b2e205 --- /dev/null +++ b/app/MindWork AI Studio/Provider/ContentStreamChunk.cs @@ -0,0 +1,16 @@ +namespace AIStudio.Provider; + +/// +/// A chunk of content from a content stream, along with its associated sources. +/// +/// The text content of the chunk. +/// The list of sources associated with the chunk. +public sealed record ContentStreamChunk(string Content, IList Sources) +{ + /// + /// Implicit conversion to string. + /// + /// The content stream chunk. + /// The text content of the chunk. + public static implicit operator string(ContentStreamChunk chunk) => chunk.Content; +} \ No newline at end of file diff --git a/app/MindWork AI Studio/Provider/DeepSeek/ProviderDeepSeek.cs b/app/MindWork AI Studio/Provider/DeepSeek/ProviderDeepSeek.cs index 57f74f4c..67eac538 100644 --- a/app/MindWork AI Studio/Provider/DeepSeek/ProviderDeepSeek.cs +++ b/app/MindWork AI Studio/Provider/DeepSeek/ProviderDeepSeek.cs @@ -9,8 +9,10 @@ using AIStudio.Settings; namespace AIStudio.Provider.DeepSeek; -public sealed class ProviderDeepSeek(ILogger logger) : BaseProvider("https://api.deepseek.com/", logger) +public sealed class ProviderDeepSeek() : BaseProvider("https://api.deepseek.com/", LOGGER) { + private static readonly ILogger LOGGER = Program.LOGGER_FACTORY.CreateLogger(); + #region Implementation of IProvider /// @@ -20,7 +22,7 @@ public sealed class ProviderDeepSeek(ILogger logger) : BaseProvider("https://api public override string InstanceName { get; set; } = "DeepSeek"; /// - public override async IAsyncEnumerable StreamChatCompletion(Model chatModel, ChatThread chatThread, SettingsManager settingsManager, [EnumeratorCancellation] CancellationToken token = default) + public override async IAsyncEnumerable StreamChatCompletion(Model chatModel, ChatThread chatThread, SettingsManager settingsManager, [EnumeratorCancellation] CancellationToken token = default) { // Get the API key: var requestedSecret = await RUST_SERVICE.GetAPIKey(this); @@ -31,11 +33,11 @@ public sealed class ProviderDeepSeek(ILogger logger) : BaseProvider("https://api var systemPrompt = new Message { Role = "system", - Content = chatThread.PrepareSystemPrompt(settingsManager, chatThread, this.logger), + Content = chatThread.PrepareSystemPrompt(settingsManager, chatThread), }; // Prepare the DeepSeek HTTP chat request: - var deepSeekChatRequest = JsonSerializer.Serialize(new ChatRequest + var deepSeekChatRequest = JsonSerializer.Serialize(new ChatCompletionAPIRequest { Model = chatModel.Id, @@ -76,7 +78,7 @@ public sealed class ProviderDeepSeek(ILogger logger) : BaseProvider("https://api return request; } - await foreach (var content in this.StreamChatCompletionInternal("DeepSeek", RequestBuilder, token)) + await foreach (var content in this.StreamChatCompletionInternal("DeepSeek", RequestBuilder, token)) yield return content; } @@ -117,12 +119,14 @@ public sealed class ProviderDeepSeek(ILogger logger) : BaseProvider("https://api Capability.TEXT_OUTPUT, Capability.ALWAYS_REASONING, + Capability.CHAT_COMPLETION_API, ]; return [ Capability.TEXT_INPUT, Capability.TEXT_OUTPUT, + Capability.CHAT_COMPLETION_API, ]; } diff --git a/app/MindWork AI Studio/Provider/Fireworks/ProviderFireworks.cs b/app/MindWork AI Studio/Provider/Fireworks/ProviderFireworks.cs index 22164e18..cf66169d 100644 --- a/app/MindWork AI Studio/Provider/Fireworks/ProviderFireworks.cs +++ b/app/MindWork AI Studio/Provider/Fireworks/ProviderFireworks.cs @@ -4,12 +4,15 @@ using System.Text; using System.Text.Json; using AIStudio.Chat; +using AIStudio.Provider.OpenAI; using AIStudio.Settings; namespace AIStudio.Provider.Fireworks; -public class ProviderFireworks(ILogger logger) : BaseProvider("https://api.fireworks.ai/inference/v1/", logger) +public class ProviderFireworks() : BaseProvider("https://api.fireworks.ai/inference/v1/", LOGGER) { + private static readonly ILogger LOGGER = Program.LOGGER_FACTORY.CreateLogger(); + #region Implementation of IProvider /// @@ -19,7 +22,7 @@ public class ProviderFireworks(ILogger logger) : BaseProvider("https://api.firew public override string InstanceName { get; set; } = "Fireworks.ai"; /// - public override async IAsyncEnumerable StreamChatCompletion(Model chatModel, ChatThread chatThread, SettingsManager settingsManager, [EnumeratorCancellation] CancellationToken token = default) + public override async IAsyncEnumerable StreamChatCompletion(Model chatModel, ChatThread chatThread, SettingsManager settingsManager, [EnumeratorCancellation] CancellationToken token = default) { // Get the API key: var requestedSecret = await RUST_SERVICE.GetAPIKey(this); @@ -30,7 +33,7 @@ public class ProviderFireworks(ILogger logger) : BaseProvider("https://api.firew var systemPrompt = new Message { Role = "system", - Content = chatThread.PrepareSystemPrompt(settingsManager, chatThread, this.logger), + Content = chatThread.PrepareSystemPrompt(settingsManager, chatThread), }; // Prepare the Fireworks HTTP chat request: @@ -77,7 +80,7 @@ public class ProviderFireworks(ILogger logger) : BaseProvider("https://api.firew return request; } - await foreach (var content in this.StreamChatCompletionInternal("Fireworks", RequestBuilder, token)) + await foreach (var content in this.StreamChatCompletionInternal("Fireworks", RequestBuilder, token)) yield return content; } diff --git a/app/MindWork AI Studio/Provider/Fireworks/ResponseStreamLine.cs b/app/MindWork AI Studio/Provider/Fireworks/ResponseStreamLine.cs index b3832f51..4fd0bcaa 100644 --- a/app/MindWork AI Studio/Provider/Fireworks/ResponseStreamLine.cs +++ b/app/MindWork AI Studio/Provider/Fireworks/ResponseStreamLine.cs @@ -14,7 +14,21 @@ public readonly record struct ResponseStreamLine(string Id, string Object, uint public bool ContainsContent() => this != default && this.Choices.Count > 0; /// - public string GetContent() => this.Choices[0].Delta.Content; + public ContentStreamChunk GetContent() => new(this.Choices[0].Delta.Content, []); + + #region Implementation of IAnnotationStreamLine + + // + // Currently, Fireworks does not provide source citations in their response stream. + // + + /// + public bool ContainsSources() => false; + + /// + public IList GetSources() => []; + + #endregion } /// diff --git a/app/MindWork AI Studio/Provider/GWDG/ProviderGWDG.cs b/app/MindWork AI Studio/Provider/GWDG/ProviderGWDG.cs index ad41804d..e497fcf2 100644 --- a/app/MindWork AI Studio/Provider/GWDG/ProviderGWDG.cs +++ b/app/MindWork AI Studio/Provider/GWDG/ProviderGWDG.cs @@ -9,8 +9,10 @@ using AIStudio.Settings; namespace AIStudio.Provider.GWDG; -public sealed class ProviderGWDG(ILogger logger) : BaseProvider("https://chat-ai.academiccloud.de/v1/", logger) +public sealed class ProviderGWDG() : BaseProvider("https://chat-ai.academiccloud.de/v1/", LOGGER) { + private static readonly ILogger LOGGER = Program.LOGGER_FACTORY.CreateLogger(); + #region Implementation of IProvider /// @@ -20,7 +22,7 @@ public sealed class ProviderGWDG(ILogger logger) : BaseProvider("https://chat-ai public override string InstanceName { get; set; } = "GWDG SAIA"; /// - public override async IAsyncEnumerable StreamChatCompletion(Model chatModel, ChatThread chatThread, SettingsManager settingsManager, [EnumeratorCancellation] CancellationToken token = default) + public override async IAsyncEnumerable StreamChatCompletion(Model chatModel, ChatThread chatThread, SettingsManager settingsManager, [EnumeratorCancellation] CancellationToken token = default) { // Get the API key: var requestedSecret = await RUST_SERVICE.GetAPIKey(this); @@ -31,11 +33,11 @@ public sealed class ProviderGWDG(ILogger logger) : BaseProvider("https://chat-ai var systemPrompt = new Message { Role = "system", - Content = chatThread.PrepareSystemPrompt(settingsManager, chatThread, this.logger), + Content = chatThread.PrepareSystemPrompt(settingsManager, chatThread), }; // Prepare the GWDG HTTP chat request: - var gwdgChatRequest = JsonSerializer.Serialize(new ChatRequest + var gwdgChatRequest = JsonSerializer.Serialize(new ChatCompletionAPIRequest { Model = chatModel.Id, @@ -76,7 +78,7 @@ public sealed class ProviderGWDG(ILogger logger) : BaseProvider("https://chat-ai return request; } - await foreach (var content in this.StreamChatCompletionInternal("GWDG", RequestBuilder, token)) + await foreach (var content in this.StreamChatCompletionInternal("GWDG", RequestBuilder, token)) yield return content; } diff --git a/app/MindWork AI Studio/Provider/Google/ProviderGoogle.cs b/app/MindWork AI Studio/Provider/Google/ProviderGoogle.cs index de1df964..8586baf7 100644 --- a/app/MindWork AI Studio/Provider/Google/ProviderGoogle.cs +++ b/app/MindWork AI Studio/Provider/Google/ProviderGoogle.cs @@ -9,8 +9,10 @@ using AIStudio.Settings; namespace AIStudio.Provider.Google; -public class ProviderGoogle(ILogger logger) : BaseProvider("https://generativelanguage.googleapis.com/v1beta/", logger) +public class ProviderGoogle() : BaseProvider("https://generativelanguage.googleapis.com/v1beta/", LOGGER) { + private static readonly ILogger LOGGER = Program.LOGGER_FACTORY.CreateLogger(); + #region Implementation of IProvider /// @@ -20,7 +22,7 @@ public class ProviderGoogle(ILogger logger) : BaseProvider("https://generativela public override string InstanceName { get; set; } = "Google Gemini"; /// - public override async IAsyncEnumerable StreamChatCompletion(Provider.Model chatModel, ChatThread chatThread, SettingsManager settingsManager, [EnumeratorCancellation] CancellationToken token = default) + public override async IAsyncEnumerable StreamChatCompletion(Provider.Model chatModel, ChatThread chatThread, SettingsManager settingsManager, [EnumeratorCancellation] CancellationToken token = default) { // Get the API key: var requestedSecret = await RUST_SERVICE.GetAPIKey(this); @@ -31,7 +33,7 @@ public class ProviderGoogle(ILogger logger) : BaseProvider("https://generativela var systemPrompt = new Message { Role = "system", - Content = chatThread.PrepareSystemPrompt(settingsManager, chatThread, this.logger), + Content = chatThread.PrepareSystemPrompt(settingsManager, chatThread), }; // Prepare the Google HTTP chat request: @@ -78,7 +80,7 @@ public class ProviderGoogle(ILogger logger) : BaseProvider("https://generativela return request; } - await foreach (var content in this.StreamChatCompletionInternal("Google", RequestBuilder, token)) + await foreach (var content in this.StreamChatCompletionInternal("Google", RequestBuilder, token)) yield return content; } @@ -136,6 +138,7 @@ public class ProviderGoogle(ILogger logger) : BaseProvider("https://generativela Capability.TEXT_OUTPUT, Capability.ALWAYS_REASONING, Capability.FUNCTION_CALLING, + Capability.CHAT_COMPLETION_API, ]; // Image generation: @@ -146,6 +149,7 @@ public class ProviderGoogle(ILogger logger) : BaseProvider("https://generativela Capability.SPEECH_INPUT, Capability.VIDEO_INPUT, Capability.TEXT_OUTPUT, Capability.IMAGE_OUTPUT, + Capability.CHAT_COMPLETION_API, ]; // Realtime model: @@ -158,6 +162,7 @@ public class ProviderGoogle(ILogger logger) : BaseProvider("https://generativela Capability.TEXT_OUTPUT, Capability.SPEECH_OUTPUT, Capability.FUNCTION_CALLING, + Capability.CHAT_COMPLETION_API, ]; // The 2.0 flash models cannot call functions: @@ -168,6 +173,7 @@ public class ProviderGoogle(ILogger logger) : BaseProvider("https://generativela Capability.SPEECH_INPUT, Capability.VIDEO_INPUT, Capability.TEXT_OUTPUT, + Capability.CHAT_COMPLETION_API, ]; // The old 1.0 pro vision model: @@ -177,6 +183,7 @@ public class ProviderGoogle(ILogger logger) : BaseProvider("https://generativela Capability.TEXT_INPUT, Capability.MULTIPLE_IMAGE_INPUT, Capability.TEXT_OUTPUT, + Capability.CHAT_COMPLETION_API, ]; // Default to all other Gemini models: @@ -188,6 +195,7 @@ public class ProviderGoogle(ILogger logger) : BaseProvider("https://generativela Capability.TEXT_OUTPUT, Capability.FUNCTION_CALLING, + Capability.CHAT_COMPLETION_API, ]; } @@ -199,6 +207,7 @@ public class ProviderGoogle(ILogger logger) : BaseProvider("https://generativela Capability.TEXT_OUTPUT, Capability.FUNCTION_CALLING, + Capability.CHAT_COMPLETION_API, ]; } diff --git a/app/MindWork AI Studio/Provider/Groq/ProviderGroq.cs b/app/MindWork AI Studio/Provider/Groq/ProviderGroq.cs index 30d81ed0..88652a15 100644 --- a/app/MindWork AI Studio/Provider/Groq/ProviderGroq.cs +++ b/app/MindWork AI Studio/Provider/Groq/ProviderGroq.cs @@ -9,8 +9,10 @@ using AIStudio.Settings; namespace AIStudio.Provider.Groq; -public class ProviderGroq(ILogger logger) : BaseProvider("https://api.groq.com/openai/v1/", logger) +public class ProviderGroq() : BaseProvider("https://api.groq.com/openai/v1/", LOGGER) { + private static readonly ILogger LOGGER = Program.LOGGER_FACTORY.CreateLogger(); + #region Implementation of IProvider /// @@ -20,7 +22,7 @@ public class ProviderGroq(ILogger logger) : BaseProvider("https://api.groq.com/o public override string InstanceName { get; set; } = "Groq"; /// - public override async IAsyncEnumerable StreamChatCompletion(Model chatModel, ChatThread chatThread, SettingsManager settingsManager, [EnumeratorCancellation] CancellationToken token = default) + public override async IAsyncEnumerable StreamChatCompletion(Model chatModel, ChatThread chatThread, SettingsManager settingsManager, [EnumeratorCancellation] CancellationToken token = default) { // Get the API key: var requestedSecret = await RUST_SERVICE.GetAPIKey(this); @@ -31,7 +33,7 @@ public class ProviderGroq(ILogger logger) : BaseProvider("https://api.groq.com/o var systemPrompt = new Message { Role = "system", - Content = chatThread.PrepareSystemPrompt(settingsManager, chatThread, this.logger), + Content = chatThread.PrepareSystemPrompt(settingsManager, chatThread), }; // Prepare the OpenAI HTTP chat request: @@ -60,8 +62,6 @@ public class ProviderGroq(ILogger logger) : BaseProvider("https://api.groq.com/o _ => string.Empty, } }).ToList()], - - Seed = chatThread.Seed, // Right now, we only support streaming completions: Stream = true, @@ -80,7 +80,7 @@ public class ProviderGroq(ILogger logger) : BaseProvider("https://api.groq.com/o return request; } - await foreach (var content in this.StreamChatCompletionInternal("Groq", RequestBuilder, token)) + await foreach (var content in this.StreamChatCompletionInternal("Groq", RequestBuilder, token)) yield return content; } diff --git a/app/MindWork AI Studio/Provider/Helmholtz/ProviderHelmholtz.cs b/app/MindWork AI Studio/Provider/Helmholtz/ProviderHelmholtz.cs index 09a95387..acc0daba 100644 --- a/app/MindWork AI Studio/Provider/Helmholtz/ProviderHelmholtz.cs +++ b/app/MindWork AI Studio/Provider/Helmholtz/ProviderHelmholtz.cs @@ -9,8 +9,10 @@ using AIStudio.Settings; namespace AIStudio.Provider.Helmholtz; -public sealed class ProviderHelmholtz(ILogger logger) : BaseProvider("https://api.helmholtz-blablador.fz-juelich.de/v1/", logger) +public sealed class ProviderHelmholtz() : BaseProvider("https://api.helmholtz-blablador.fz-juelich.de/v1/", LOGGER) { + private static readonly ILogger LOGGER = Program.LOGGER_FACTORY.CreateLogger(); + #region Implementation of IProvider /// @@ -20,7 +22,7 @@ public sealed class ProviderHelmholtz(ILogger logger) : BaseProvider("https://ap public override string InstanceName { get; set; } = "Helmholtz Blablador"; /// - public override async IAsyncEnumerable StreamChatCompletion(Model chatModel, ChatThread chatThread, SettingsManager settingsManager, [EnumeratorCancellation] CancellationToken token = default) + public override async IAsyncEnumerable StreamChatCompletion(Model chatModel, ChatThread chatThread, SettingsManager settingsManager, [EnumeratorCancellation] CancellationToken token = default) { // Get the API key: var requestedSecret = await RUST_SERVICE.GetAPIKey(this); @@ -31,11 +33,11 @@ public sealed class ProviderHelmholtz(ILogger logger) : BaseProvider("https://ap var systemPrompt = new Message { Role = "system", - Content = chatThread.PrepareSystemPrompt(settingsManager, chatThread, this.logger), + Content = chatThread.PrepareSystemPrompt(settingsManager, chatThread), }; // Prepare the Helmholtz HTTP chat request: - var helmholtzChatRequest = JsonSerializer.Serialize(new ChatRequest + var helmholtzChatRequest = JsonSerializer.Serialize(new ChatCompletionAPIRequest { Model = chatModel.Id, @@ -76,7 +78,7 @@ public sealed class ProviderHelmholtz(ILogger logger) : BaseProvider("https://ap return request; } - await foreach (var content in this.StreamChatCompletionInternal("Helmholtz", RequestBuilder, token)) + await foreach (var content in this.StreamChatCompletionInternal("Helmholtz", RequestBuilder, token)) yield return content; } diff --git a/app/MindWork AI Studio/Provider/HuggingFace/ProviderHuggingFace.cs b/app/MindWork AI Studio/Provider/HuggingFace/ProviderHuggingFace.cs index 659a8ca9..12721d78 100644 --- a/app/MindWork AI Studio/Provider/HuggingFace/ProviderHuggingFace.cs +++ b/app/MindWork AI Studio/Provider/HuggingFace/ProviderHuggingFace.cs @@ -11,9 +11,11 @@ namespace AIStudio.Provider.HuggingFace; public sealed class ProviderHuggingFace : BaseProvider { - public ProviderHuggingFace(ILogger logger, HFInferenceProvider hfProvider, Model model) : base($"https://router.huggingface.co/{hfProvider.Endpoints(model)}", logger) + private static readonly ILogger LOGGER = Program.LOGGER_FACTORY.CreateLogger(); + + public ProviderHuggingFace(HFInferenceProvider hfProvider, Model model) : base($"https://router.huggingface.co/{hfProvider.Endpoints(model)}", LOGGER) { - logger.LogInformation($"We use the inferende provider '{hfProvider}'. Thus we use the base URL 'https://router.huggingface.co/{hfProvider.Endpoints(model)}'."); + LOGGER.LogInformation($"We use the inferende provider '{hfProvider}'. Thus we use the base URL 'https://router.huggingface.co/{hfProvider.Endpoints(model)}'."); } #region Implementation of IProvider @@ -25,7 +27,7 @@ public sealed class ProviderHuggingFace : BaseProvider public override string InstanceName { get; set; } = "HuggingFace"; /// - public override async IAsyncEnumerable StreamChatCompletion(Model chatModel, ChatThread chatThread, SettingsManager settingsManager, [EnumeratorCancellation] CancellationToken token = default) + public override async IAsyncEnumerable StreamChatCompletion(Model chatModel, ChatThread chatThread, SettingsManager settingsManager, [EnumeratorCancellation] CancellationToken token = default) { // Get the API key: var requestedSecret = await RUST_SERVICE.GetAPIKey(this); @@ -36,11 +38,11 @@ public sealed class ProviderHuggingFace : BaseProvider var systemPrompt = new Message { Role = "system", - Content = chatThread.PrepareSystemPrompt(settingsManager, chatThread, this.logger), + Content = chatThread.PrepareSystemPrompt(settingsManager, chatThread), }; // Prepare the HuggingFace HTTP chat request: - var huggingfaceChatRequest = JsonSerializer.Serialize(new ChatRequest + var huggingfaceChatRequest = JsonSerializer.Serialize(new ChatCompletionAPIRequest { Model = chatModel.Id, @@ -81,7 +83,7 @@ public sealed class ProviderHuggingFace : BaseProvider return request; } - await foreach (var content in this.StreamChatCompletionInternal("HuggingFace", RequestBuilder, token)) + await foreach (var content in this.StreamChatCompletionInternal("HuggingFace", RequestBuilder, token)) yield return content; } diff --git a/app/MindWork AI Studio/Provider/IAnnotationStreamLine.cs b/app/MindWork AI Studio/Provider/IAnnotationStreamLine.cs new file mode 100644 index 00000000..5d95d5bf --- /dev/null +++ b/app/MindWork AI Studio/Provider/IAnnotationStreamLine.cs @@ -0,0 +1,19 @@ +namespace AIStudio.Provider; + +/// +/// A contract for a line in a response stream that can provide annotations such as sources. +/// +public interface IAnnotationStreamLine +{ + /// + /// Checks if the response line contains any sources. + /// + /// True when the response line contains sources, false otherwise. + public bool ContainsSources(); + + /// + /// Gets the sources of the response line. + /// + /// The sources of the response line. + public IList GetSources(); +} \ No newline at end of file diff --git a/app/MindWork AI Studio/Provider/IProvider.cs b/app/MindWork AI Studio/Provider/IProvider.cs index 86a60913..cede6ca4 100644 --- a/app/MindWork AI Studio/Provider/IProvider.cs +++ b/app/MindWork AI Studio/Provider/IProvider.cs @@ -27,7 +27,7 @@ public interface IProvider /// The settings manager instance to use. /// The cancellation token. /// The chat completion stream. - public IAsyncEnumerable StreamChatCompletion(Model chatModel, ChatThread chatThread, SettingsManager settingsManager, CancellationToken token = default); + public IAsyncEnumerable StreamChatCompletion(Model chatModel, ChatThread chatThread, SettingsManager settingsManager, CancellationToken token = default); /// /// Starts an image completion stream. diff --git a/app/MindWork AI Studio/Provider/IResponseStreamLine.cs b/app/MindWork AI Studio/Provider/IResponseStreamLine.cs index b3e7c284..76ae56fe 100644 --- a/app/MindWork AI Studio/Provider/IResponseStreamLine.cs +++ b/app/MindWork AI Studio/Provider/IResponseStreamLine.cs @@ -1,6 +1,9 @@ namespace AIStudio.Provider; -public interface IResponseStreamLine +/// +/// A contract for a streamed response line that may contain content and annotations. +/// +public interface IResponseStreamLine : IAnnotationStreamLine { /// /// Checks if the response line contains any content. @@ -12,5 +15,5 @@ public interface IResponseStreamLine /// Gets the content of the response line. /// /// The content of the response line. - public string GetContent(); + public ContentStreamChunk GetContent(); } \ No newline at end of file diff --git a/app/MindWork AI Studio/Provider/ISource.cs b/app/MindWork AI Studio/Provider/ISource.cs new file mode 100644 index 00000000..38f3505d --- /dev/null +++ b/app/MindWork AI Studio/Provider/ISource.cs @@ -0,0 +1,17 @@ +namespace AIStudio.Provider; + +/// +/// Data model for a source used in the response. +/// +public interface ISource +{ + /// + /// The title of the source. + /// + public string Title { get; } + + /// + /// The URL of the source. + /// + public string URL { get; } +} \ No newline at end of file diff --git a/app/MindWork AI Studio/Provider/LLMProviders.cs b/app/MindWork AI Studio/Provider/LLMProviders.cs index 118d68aa..f23cd876 100644 --- a/app/MindWork AI Studio/Provider/LLMProviders.cs +++ b/app/MindWork AI Studio/Provider/LLMProviders.cs @@ -14,6 +14,7 @@ public enum LLMProviders X = 8, DEEP_SEEK = 11, ALIBABA_CLOUD = 12, + PERPLEXITY = 14, FIREWORKS = 5, GROQ = 6, diff --git a/app/MindWork AI Studio/Provider/LLMProvidersExtensions.cs b/app/MindWork AI Studio/Provider/LLMProvidersExtensions.cs index 1c820baa..d095c937 100644 --- a/app/MindWork AI Studio/Provider/LLMProvidersExtensions.cs +++ b/app/MindWork AI Studio/Provider/LLMProvidersExtensions.cs @@ -9,6 +9,7 @@ using AIStudio.Provider.Helmholtz; using AIStudio.Provider.HuggingFace; using AIStudio.Provider.Mistral; using AIStudio.Provider.OpenAI; +using AIStudio.Provider.Perplexity; using AIStudio.Provider.SelfHosted; using AIStudio.Provider.X; using AIStudio.Settings; @@ -20,6 +21,8 @@ namespace AIStudio.Provider; public static class LLMProvidersExtensions { + private static readonly ILogger LOGGER = Program.LOGGER_FACTORY.CreateLogger(nameof(LLMProvidersExtensions)); + private static string TB(string fallbackEN) => I18N.I.T(fallbackEN, typeof(LLMProvidersExtensions).Namespace, nameof(LLMProvidersExtensions)); /// @@ -38,6 +41,7 @@ public static class LLMProvidersExtensions LLMProviders.X => "xAI", LLMProviders.DEEP_SEEK => "DeepSeek", LLMProviders.ALIBABA_CLOUD => "Alibaba Cloud", + LLMProviders.PERPLEXITY => "Perplexity", LLMProviders.GROQ => "Groq", LLMProviders.FIREWORKS => "Fireworks.ai", @@ -86,6 +90,8 @@ public static class LLMProvidersExtensions LLMProviders.DEEP_SEEK => Confidence.CHINA_NO_TRAINING.WithRegion("Asia").WithSources("https://cdn.deepseek.com/policies/en-US/deepseek-open-platform-terms-of-service.html").WithLevel(settingsManager.GetConfiguredConfidenceLevel(llmProvider)), LLMProviders.ALIBABA_CLOUD => Confidence.CHINA_NO_TRAINING.WithRegion("Asia").WithSources("https://www.alibabacloud.com/help/en/model-studio/support/faq-about-alibaba-cloud-model-studio").WithLevel(settingsManager.GetConfiguredConfidenceLevel(llmProvider)), + + LLMProviders.PERPLEXITY => Confidence.USA_NO_TRAINING.WithRegion("America, U.S.").WithSources("https://www.perplexity.ai/hub/legal/perplexity-api-terms-of-service").WithLevel(settingsManager.GetConfiguredConfidenceLevel(llmProvider)), LLMProviders.SELF_HOSTED => Confidence.SELF_HOSTED.WithLevel(settingsManager.GetConfiguredConfidenceLevel(llmProvider)), @@ -121,6 +127,7 @@ public static class LLMProvidersExtensions LLMProviders.GWDG => false, LLMProviders.DEEP_SEEK => false, LLMProviders.HUGGINGFACE => false, + LLMProviders.PERPLEXITY => false, // // Self-hosted providers are treated as a special case anyway. @@ -134,53 +141,52 @@ public static class LLMProvidersExtensions /// Creates a new provider instance based on the provider value. /// /// The provider settings. - /// The logger to use. /// The provider instance. - public static IProvider CreateProvider(this AIStudio.Settings.Provider providerSettings, ILogger logger) + public static IProvider CreateProvider(this AIStudio.Settings.Provider providerSettings) { - return providerSettings.UsedLLMProvider.CreateProvider(providerSettings.InstanceName, providerSettings.Host, providerSettings.Hostname, providerSettings.Model, providerSettings.HFInferenceProvider ,logger); + return providerSettings.UsedLLMProvider.CreateProvider(providerSettings.InstanceName, providerSettings.Host, providerSettings.Hostname, providerSettings.Model, providerSettings.HFInferenceProvider); } /// /// Creates a new provider instance based on the embedding provider value. /// /// The embedding provider settings. - /// The logger to use. /// The provider instance. - public static IProvider CreateProvider(this EmbeddingProvider embeddingProviderSettings, ILogger logger) + public static IProvider CreateProvider(this EmbeddingProvider embeddingProviderSettings) { - return embeddingProviderSettings.UsedLLMProvider.CreateProvider(embeddingProviderSettings.Name, embeddingProviderSettings.Host, embeddingProviderSettings.Hostname, embeddingProviderSettings.Model, HFInferenceProvider.NONE,logger); + return embeddingProviderSettings.UsedLLMProvider.CreateProvider(embeddingProviderSettings.Name, embeddingProviderSettings.Host, embeddingProviderSettings.Hostname, embeddingProviderSettings.Model, HFInferenceProvider.NONE); } - private static IProvider CreateProvider(this LLMProviders provider, string instanceName, Host host, string hostname, Model model, HFInferenceProvider inferenceProvider , ILogger logger) + private static IProvider CreateProvider(this LLMProviders provider, string instanceName, Host host, string hostname, Model model, HFInferenceProvider inferenceProvider) { try { return provider switch { - LLMProviders.OPEN_AI => new ProviderOpenAI(logger) { InstanceName = instanceName }, - LLMProviders.ANTHROPIC => new ProviderAnthropic(logger) { InstanceName = instanceName }, - LLMProviders.MISTRAL => new ProviderMistral(logger) { InstanceName = instanceName }, - LLMProviders.GOOGLE => new ProviderGoogle(logger) { InstanceName = instanceName }, - LLMProviders.X => new ProviderX(logger) { InstanceName = instanceName }, - LLMProviders.DEEP_SEEK => new ProviderDeepSeek(logger) { InstanceName = instanceName }, - LLMProviders.ALIBABA_CLOUD => new ProviderAlibabaCloud(logger) { InstanceName = instanceName }, + LLMProviders.OPEN_AI => new ProviderOpenAI { InstanceName = instanceName }, + LLMProviders.ANTHROPIC => new ProviderAnthropic { InstanceName = instanceName }, + LLMProviders.MISTRAL => new ProviderMistral { InstanceName = instanceName }, + LLMProviders.GOOGLE => new ProviderGoogle { InstanceName = instanceName }, + LLMProviders.X => new ProviderX { InstanceName = instanceName }, + LLMProviders.DEEP_SEEK => new ProviderDeepSeek { InstanceName = instanceName }, + LLMProviders.ALIBABA_CLOUD => new ProviderAlibabaCloud { InstanceName = instanceName }, + LLMProviders.PERPLEXITY => new ProviderPerplexity { InstanceName = instanceName }, - LLMProviders.GROQ => new ProviderGroq(logger) { InstanceName = instanceName }, - LLMProviders.FIREWORKS => new ProviderFireworks(logger) { InstanceName = instanceName }, - LLMProviders.HUGGINGFACE => new ProviderHuggingFace(logger, inferenceProvider, model) { InstanceName = instanceName }, + LLMProviders.GROQ => new ProviderGroq { InstanceName = instanceName }, + LLMProviders.FIREWORKS => new ProviderFireworks { InstanceName = instanceName }, + LLMProviders.HUGGINGFACE => new ProviderHuggingFace(inferenceProvider, model) { InstanceName = instanceName }, - LLMProviders.SELF_HOSTED => new ProviderSelfHosted(logger, host, hostname) { InstanceName = instanceName }, + LLMProviders.SELF_HOSTED => new ProviderSelfHosted(host, hostname) { InstanceName = instanceName }, - LLMProviders.HELMHOLTZ => new ProviderHelmholtz(logger) { InstanceName = instanceName }, - LLMProviders.GWDG => new ProviderGWDG(logger) { InstanceName = instanceName }, + LLMProviders.HELMHOLTZ => new ProviderHelmholtz { InstanceName = instanceName }, + LLMProviders.GWDG => new ProviderGWDG { InstanceName = instanceName }, _ => new NoProvider(), }; } catch (Exception e) { - logger.LogError($"Failed to create provider: {e.Message}"); + LOGGER.LogError($"Failed to create provider: {e.Message}"); return new NoProvider(); } } @@ -194,6 +200,7 @@ public static class LLMProvidersExtensions LLMProviders.X => "https://accounts.x.ai/sign-up", LLMProviders.DEEP_SEEK => "https://platform.deepseek.com/sign_up", LLMProviders.ALIBABA_CLOUD => "https://account.alibabacloud.com/register/intl_register.htm", + LLMProviders.PERPLEXITY => "https://www.perplexity.ai/account/api", LLMProviders.GROQ => "https://console.groq.com/", LLMProviders.FIREWORKS => "https://fireworks.ai/login", @@ -216,6 +223,7 @@ public static class LLMProvidersExtensions LLMProviders.FIREWORKS => "https://fireworks.ai/account/billing", LLMProviders.DEEP_SEEK => "https://platform.deepseek.com/usage", LLMProviders.ALIBABA_CLOUD => "https://usercenter2-intl.aliyun.com/billing", + LLMProviders.PERPLEXITY => "https://www.perplexity.ai/account/api/", LLMProviders.HUGGINGFACE => "https://huggingface.co/settings/billing", _ => string.Empty, @@ -232,6 +240,7 @@ public static class LLMProvidersExtensions LLMProviders.GOOGLE => true, LLMProviders.DEEP_SEEK => true, LLMProviders.ALIBABA_CLOUD => true, + LLMProviders.PERPLEXITY => true, LLMProviders.HUGGINGFACE => true, _ => false, @@ -278,6 +287,7 @@ public static class LLMProvidersExtensions LLMProviders.X => true, LLMProviders.DEEP_SEEK => true, LLMProviders.ALIBABA_CLOUD => true, + LLMProviders.PERPLEXITY => true, LLMProviders.GROQ => true, LLMProviders.FIREWORKS => true, @@ -285,7 +295,7 @@ public static class LLMProvidersExtensions LLMProviders.GWDG => true, LLMProviders.HUGGINGFACE => true, - LLMProviders.SELF_HOSTED => host is Host.OLLAMA, + LLMProviders.SELF_HOSTED => host is (Host.OLLAMA or Host.VLLM), _ => false, }; @@ -299,6 +309,7 @@ public static class LLMProvidersExtensions LLMProviders.X => true, LLMProviders.DEEP_SEEK => true, LLMProviders.ALIBABA_CLOUD => true, + LLMProviders.PERPLEXITY => true, LLMProviders.GROQ => true, LLMProviders.FIREWORKS => true, @@ -322,6 +333,7 @@ public static class LLMProvidersExtensions case Host.OLLAMA: case Host.LM_STUDIO: + case Host.VLLM: return true; } } diff --git a/app/MindWork AI Studio/Provider/Mistral/ProviderMistral.cs b/app/MindWork AI Studio/Provider/Mistral/ProviderMistral.cs index ed87d12f..29b34d87 100644 --- a/app/MindWork AI Studio/Provider/Mistral/ProviderMistral.cs +++ b/app/MindWork AI Studio/Provider/Mistral/ProviderMistral.cs @@ -9,8 +9,10 @@ using AIStudio.Settings; namespace AIStudio.Provider.Mistral; -public sealed class ProviderMistral(ILogger logger) : BaseProvider("https://api.mistral.ai/v1/", logger) +public sealed class ProviderMistral() : BaseProvider("https://api.mistral.ai/v1/", LOGGER) { + private static readonly ILogger LOGGER = Program.LOGGER_FACTORY.CreateLogger(); + #region Implementation of IProvider public override string Id => LLMProviders.MISTRAL.ToName(); @@ -18,7 +20,7 @@ public sealed class ProviderMistral(ILogger logger) : BaseProvider("https://api. public override string InstanceName { get; set; } = "Mistral"; /// - public override async IAsyncEnumerable StreamChatCompletion(Provider.Model chatModel, ChatThread chatThread, SettingsManager settingsManager, [EnumeratorCancellation] CancellationToken token = default) + public override async IAsyncEnumerable StreamChatCompletion(Provider.Model chatModel, ChatThread chatThread, SettingsManager settingsManager, [EnumeratorCancellation] CancellationToken token = default) { // Get the API key: var requestedSecret = await RUST_SERVICE.GetAPIKey(this); @@ -29,7 +31,7 @@ public sealed class ProviderMistral(ILogger logger) : BaseProvider("https://api. var systemPrompt = new RegularMessage { Role = "system", - Content = chatThread.PrepareSystemPrompt(settingsManager, chatThread, this.logger), + Content = chatThread.PrepareSystemPrompt(settingsManager, chatThread), }; // Prepare the Mistral HTTP chat request: @@ -58,8 +60,6 @@ public sealed class ProviderMistral(ILogger logger) : BaseProvider("https://api. _ => string.Empty, } }).ToList()], - - RandomSeed = chatThread.Seed, // Right now, we only support streaming completions: Stream = true, @@ -79,7 +79,7 @@ public sealed class ProviderMistral(ILogger logger) : BaseProvider("https://api. return request; } - await foreach (var content in this.StreamChatCompletionInternal("Mistral", RequestBuilder, token)) + await foreach (var content in this.StreamChatCompletionInternal("Mistral", RequestBuilder, token)) yield return content; } @@ -134,6 +134,7 @@ public sealed class ProviderMistral(ILogger logger) : BaseProvider("https://api. Capability.TEXT_OUTPUT, Capability.FUNCTION_CALLING, + Capability.CHAT_COMPLETION_API, ]; // Mistral medium: @@ -144,6 +145,7 @@ public sealed class ProviderMistral(ILogger logger) : BaseProvider("https://api. Capability.TEXT_OUTPUT, Capability.FUNCTION_CALLING, + Capability.CHAT_COMPLETION_API, ]; // Mistral small: @@ -154,6 +156,7 @@ public sealed class ProviderMistral(ILogger logger) : BaseProvider("https://api. Capability.TEXT_OUTPUT, Capability.FUNCTION_CALLING, + Capability.CHAT_COMPLETION_API, ]; // Mistral saba: @@ -162,6 +165,7 @@ public sealed class ProviderMistral(ILogger logger) : BaseProvider("https://api. [ Capability.TEXT_INPUT, Capability.TEXT_OUTPUT, + Capability.CHAT_COMPLETION_API, ]; // Default: diff --git a/app/MindWork AI Studio/Provider/NoChatCompletionAnnotationStreamLine.cs b/app/MindWork AI Studio/Provider/NoChatCompletionAnnotationStreamLine.cs new file mode 100644 index 00000000..e9e53239 --- /dev/null +++ b/app/MindWork AI Studio/Provider/NoChatCompletionAnnotationStreamLine.cs @@ -0,0 +1,15 @@ +namespace AIStudio.Provider; + +/// +/// A marker record indicating that no chat completion annotation line is expected in that stream. +/// +public sealed record NoChatCompletionAnnotationStreamLine : IAnnotationStreamLine +{ + #region Implementation of IAnnotationStreamLine + + public bool ContainsSources() => false; + + public IList GetSources() => []; + + #endregion +} \ No newline at end of file diff --git a/app/MindWork AI Studio/Provider/NoProvider.cs b/app/MindWork AI Studio/Provider/NoProvider.cs index 983ab875..b06ce2e0 100644 --- a/app/MindWork AI Studio/Provider/NoProvider.cs +++ b/app/MindWork AI Studio/Provider/NoProvider.cs @@ -19,7 +19,7 @@ public class NoProvider : IProvider public Task> GetEmbeddingModels(string? apiKeyProvisional = null, CancellationToken token = default) => Task.FromResult>([]); - public async IAsyncEnumerable StreamChatCompletion(Model chatModel, ChatThread chatChatThread, SettingsManager settingsManager, [EnumeratorCancellation] CancellationToken token = default) + public async IAsyncEnumerable StreamChatCompletion(Model chatModel, ChatThread chatChatThread, SettingsManager settingsManager, [EnumeratorCancellation] CancellationToken token = default) { await Task.FromResult(0); yield break; diff --git a/app/MindWork AI Studio/Provider/NoResponsesAnnotationStreamLine.cs b/app/MindWork AI Studio/Provider/NoResponsesAnnotationStreamLine.cs new file mode 100644 index 00000000..b9587dda --- /dev/null +++ b/app/MindWork AI Studio/Provider/NoResponsesAnnotationStreamLine.cs @@ -0,0 +1,15 @@ +namespace AIStudio.Provider; + +/// +/// A marker record indicating that no annotation line is expected in that Responses API stream. +/// +public sealed record NoResponsesAnnotationStreamLine : IAnnotationStreamLine +{ + #region Implementation of IAnnotationStreamLine + + public bool ContainsSources() => false; + + public IList GetSources() => []; + + #endregion +} \ No newline at end of file diff --git a/app/MindWork AI Studio/Provider/OpenAI/AnnotatingUnknown.cs b/app/MindWork AI Studio/Provider/OpenAI/AnnotatingUnknown.cs new file mode 100644 index 00000000..8581f2f5 --- /dev/null +++ b/app/MindWork AI Studio/Provider/OpenAI/AnnotatingUnknown.cs @@ -0,0 +1,7 @@ +namespace AIStudio.Provider.OpenAI; + +/// +/// Represents an unknown annotation type. +/// +/// The type of the unknown annotation. +public sealed record AnnotatingUnknown(string Type) : Annotation(Type); \ No newline at end of file diff --git a/app/MindWork AI Studio/Provider/OpenAI/Annotation.cs b/app/MindWork AI Studio/Provider/OpenAI/Annotation.cs new file mode 100644 index 00000000..4ac1e714 --- /dev/null +++ b/app/MindWork AI Studio/Provider/OpenAI/Annotation.cs @@ -0,0 +1,10 @@ +namespace AIStudio.Provider.OpenAI; + +/// +/// Base class for different types of annotations. +/// +/// +/// We use this base class to represent various annotation types for all types of LLM providers. +/// +/// The type of the annotation. +public abstract record Annotation(string Type); \ No newline at end of file diff --git a/app/MindWork AI Studio/Provider/OpenAI/AnnotationConverter.cs b/app/MindWork AI Studio/Provider/OpenAI/AnnotationConverter.cs new file mode 100644 index 00000000..acdb69b2 --- /dev/null +++ b/app/MindWork AI Studio/Provider/OpenAI/AnnotationConverter.cs @@ -0,0 +1,62 @@ +using System.Text.Json; +using System.Text.Json.Serialization; + +namespace AIStudio.Provider.OpenAI; + +/// +/// Custom JSON converter for the annotation class to handle polymorphic deserialization. +/// +/// +/// We use this converter for chat completion API and responses API annotation deserialization. +/// +public sealed class AnnotationConverter : JsonConverter +{ + public override Annotation? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) + { + using var doc = JsonDocument.ParseValue(ref reader); + var root = doc.RootElement; + + if (!root.TryGetProperty("type", out var typeElement)) + return null; + + var type = typeElement.GetString(); + var rawText = root.GetRawText(); + + Annotation? annotation; + switch (type) + { + case "url_citation": + + // Let's check the responses API data type first: + var responsesAnnotation = JsonSerializer.Deserialize(rawText, options); + + // If it fails, let's try the chat completion API data type: + if(responsesAnnotation is null || string.IsNullOrWhiteSpace(responsesAnnotation.Title) || string.IsNullOrWhiteSpace(responsesAnnotation.URL)) + { + // Try chat completion API data type: + var chatCompletionAnnotation = JsonSerializer.Deserialize(rawText, options); + + // If both fail, we return the unknown type: + if(chatCompletionAnnotation is null) + annotation = new AnnotatingUnknown(type); + else + annotation = chatCompletionAnnotation; + } + else + annotation = responsesAnnotation; + + break; + + default: + annotation = new AnnotatingUnknown(type ?? "unknown"); + break; + } + + return annotation; + } + + public override void Write(Utf8JsonWriter writer, Annotation value, JsonSerializerOptions options) + { + JsonSerializer.Serialize(writer, value, value.GetType(), options); + } +} \ No newline at end of file diff --git a/app/MindWork AI Studio/Provider/OpenAI/ChatCompletionAPIRequest.cs b/app/MindWork AI Studio/Provider/OpenAI/ChatCompletionAPIRequest.cs new file mode 100644 index 00000000..21236284 --- /dev/null +++ b/app/MindWork AI Studio/Provider/OpenAI/ChatCompletionAPIRequest.cs @@ -0,0 +1,18 @@ +namespace AIStudio.Provider.OpenAI; + +/// +/// The OpenAI's legacy chat completion request model. +/// +/// Which model to use for chat completion. +/// The chat messages. +/// Whether to stream the chat completion. +public record ChatCompletionAPIRequest( + string Model, + IList Messages, + bool Stream +) +{ + public ChatCompletionAPIRequest() : this(string.Empty, [], true) + { + } +} \ No newline at end of file diff --git a/app/MindWork AI Studio/Provider/OpenAI/ChatCompletionAnnotatingURL.cs b/app/MindWork AI Studio/Provider/OpenAI/ChatCompletionAnnotatingURL.cs new file mode 100644 index 00000000..9800d5ae --- /dev/null +++ b/app/MindWork AI Studio/Provider/OpenAI/ChatCompletionAnnotatingURL.cs @@ -0,0 +1,16 @@ +namespace AIStudio.Provider.OpenAI; + +/// +/// Data structure for URL annotation in chat completions. +/// +/// +/// Although this class is not directly intended for the Responses API, it is +/// used there as a fallback solution. One day, one of the open source LLM +/// drivers may use this data structure for their responses API. +/// +/// The type of annotation, typically "url_citation". +/// The URL citation details. +public sealed record ChatCompletionAnnotatingURL( + string Type, + ChatCompletionUrlCitationData UrlCitation +) : Annotation(Type); \ No newline at end of file diff --git a/app/MindWork AI Studio/Provider/OpenAI/ChatCompletionAnnotationChoice.cs b/app/MindWork AI Studio/Provider/OpenAI/ChatCompletionAnnotationChoice.cs new file mode 100644 index 00000000..430da40f --- /dev/null +++ b/app/MindWork AI Studio/Provider/OpenAI/ChatCompletionAnnotationChoice.cs @@ -0,0 +1,8 @@ +namespace AIStudio.Provider.OpenAI; + +/// +/// Data structure representing a choice in a chat completion annotation response. +/// +/// The index of the choice. +/// The delta information for the choice. +public record ChatCompletionAnnotationChoice(int Index, ChatCompletionAnnotationDelta Delta); \ No newline at end of file diff --git a/app/MindWork AI Studio/Provider/OpenAI/ChatCompletionAnnotationDelta.cs b/app/MindWork AI Studio/Provider/OpenAI/ChatCompletionAnnotationDelta.cs new file mode 100644 index 00000000..87ab13b8 --- /dev/null +++ b/app/MindWork AI Studio/Provider/OpenAI/ChatCompletionAnnotationDelta.cs @@ -0,0 +1,7 @@ +namespace AIStudio.Provider.OpenAI; + +/// +/// Data structure representing annotation deltas in chat completions. +/// +/// The list of annotations, which can be null. +public record ChatCompletionAnnotationDelta(IList? Annotations); \ No newline at end of file diff --git a/app/MindWork AI Studio/Provider/OpenAI/ChatCompletionAnnotationStreamLine.cs b/app/MindWork AI Studio/Provider/OpenAI/ChatCompletionAnnotationStreamLine.cs new file mode 100644 index 00000000..2637473c --- /dev/null +++ b/app/MindWork AI Studio/Provider/OpenAI/ChatCompletionAnnotationStreamLine.cs @@ -0,0 +1,57 @@ +namespace AIStudio.Provider.OpenAI; + +/// +/// Represents a line of a chat completion annotation stream. +/// +/// The unique identifier of the chat completion. +/// The type of object returned, typically "chat.completion". +/// The creation timestamp of the chat completion in Unix epoch format. +/// The model used for the chat completion. +/// The system fingerprint associated with the chat completion. +/// The list of choices returned in the chat completion. +public record ChatCompletionAnnotationStreamLine(string Id, string Object, uint Created, string Model, string SystemFingerprint, IList Choices) : IAnnotationStreamLine +{ + #region Implementation of IAnnotationStreamLine + + /// + public bool ContainsSources() => this.Choices.Any(choice => choice.Delta.Annotations is not null && choice.Delta.Annotations.Any(annotation => annotation is not AnnotatingUnknown)); + + /// + public IList GetSources() + { + var sources = new List(); + foreach (var choice in this.Choices) + { + if (choice.Delta.Annotations is null) + continue; + + // Iterate through all annotations: + foreach (var annotation in choice.Delta.Annotations) + { + // Check if the annotation is of the expected type and extract the source information: + if (annotation is ChatCompletionAnnotatingURL urlAnnotation) + sources.Add(new Source(urlAnnotation.UrlCitation.Title, urlAnnotation.UrlCitation.URL)); + + // + // Check for the unexpected annotation type of the Responses API. + // + // This seems weird at first. But there are two possibilities why this could happen: + // - Anyone of the open source providers such as ollama, LM Studio, etc. could + // implement & use the Responses API data structures for annotations in their + // chat completion endpoint. + // + // - Our custom JSON converter checks for the Responses API data type first. If it + // fails, it checks for the chat completion API data type. So, when the Responses + // API data type is valid, it will be deserialized into that type, even though + // we are calling the chat completion endpoint. + // + if (annotation is ResponsesAnnotatingUrlCitationData citationData) + sources.Add(new Source(citationData.Title, citationData.URL)); + } + } + + return sources; + } + + #endregion +} \ No newline at end of file diff --git a/app/MindWork AI Studio/Provider/OpenAI/ChatCompletionChoice.cs b/app/MindWork AI Studio/Provider/OpenAI/ChatCompletionChoice.cs new file mode 100644 index 00000000..136cc367 --- /dev/null +++ b/app/MindWork AI Studio/Provider/OpenAI/ChatCompletionChoice.cs @@ -0,0 +1,13 @@ +namespace AIStudio.Provider.OpenAI; + +/// +/// Data model for a choice made by the AI. +/// +/// The index of the choice. +/// The delta text of the choice. +public record ChatCompletionChoice(int Index, ChatCompletionDelta Delta) +{ + public ChatCompletionChoice() : this(0, new (string.Empty)) + { + } +} \ No newline at end of file diff --git a/app/MindWork AI Studio/Provider/OpenAI/ChatCompletionDelta.cs b/app/MindWork AI Studio/Provider/OpenAI/ChatCompletionDelta.cs new file mode 100644 index 00000000..6154cfbe --- /dev/null +++ b/app/MindWork AI Studio/Provider/OpenAI/ChatCompletionDelta.cs @@ -0,0 +1,12 @@ +namespace AIStudio.Provider.OpenAI; + +/// +/// The delta text of a choice. +/// +/// The content of the delta text. +public record ChatCompletionDelta(string Content) +{ + public ChatCompletionDelta() : this(string.Empty) + { + } +} \ No newline at end of file diff --git a/app/MindWork AI Studio/Provider/OpenAI/ChatCompletionDeltaStreamLine.cs b/app/MindWork AI Studio/Provider/OpenAI/ChatCompletionDeltaStreamLine.cs new file mode 100644 index 00000000..1db13ba9 --- /dev/null +++ b/app/MindWork AI Studio/Provider/OpenAI/ChatCompletionDeltaStreamLine.cs @@ -0,0 +1,45 @@ +namespace AIStudio.Provider.OpenAI; + +/// +/// Data model for a delta line in the chat completion response stream. +/// +/// The id of the response. +/// The object describing the response. +/// The timestamp of the response. +/// The model used for the response. +/// The system fingerprint; together with the seed, this allows you to reproduce the response. +/// The choices made by the AI. +public record ChatCompletionDeltaStreamLine(string Id, string Object, uint Created, string Model, string SystemFingerprint, IList Choices) : IResponseStreamLine +{ + public ChatCompletionDeltaStreamLine() : this(string.Empty, string.Empty, 0, string.Empty, string.Empty, []) + { + } + + /// + public bool ContainsContent() => this.Choices.Count > 0; + + /// + public ContentStreamChunk GetContent() => new(this.Choices[0].Delta.Content, []); + + #region Implementation of IAnnotationStreamLine + + // + // Please note that there are multiple options where LLM providers might stream sources: + // + // - As part of the delta content while streaming. That would be part of this class. + // - By using a dedicated stream event and data structure. That would be another class implementing IResponseStreamLine. + // + // Right now, OpenAI uses the latter approach, so we don't have any sources here. And + // because no other provider does it yet, we don't have any implementation here either. + // + // One example where sources are part of the delta content is the Perplexity provider. + // + + /// + public bool ContainsSources() => false; + + /// + public IList GetSources() => []; + + #endregion +} \ No newline at end of file diff --git a/app/MindWork AI Studio/Provider/OpenAI/ChatCompletionUrlCitationData.cs b/app/MindWork AI Studio/Provider/OpenAI/ChatCompletionUrlCitationData.cs new file mode 100644 index 00000000..0aa4613d --- /dev/null +++ b/app/MindWork AI Studio/Provider/OpenAI/ChatCompletionUrlCitationData.cs @@ -0,0 +1,14 @@ +namespace AIStudio.Provider.OpenAI; + +/// +/// Represents citation data for a URL in a chat completion response. +/// +/// The end index of the citation in the response text. +/// The start index of the citation in the response text. +/// The title of the cited source. +/// The URL of the cited source. +public sealed record ChatCompletionUrlCitationData( + int EndIndex, + int StartIndex, + string Title, + string URL); \ No newline at end of file diff --git a/app/MindWork AI Studio/Provider/OpenAI/ChatRequest.cs b/app/MindWork AI Studio/Provider/OpenAI/ChatRequest.cs deleted file mode 100644 index 79f89fd7..00000000 --- a/app/MindWork AI Studio/Provider/OpenAI/ChatRequest.cs +++ /dev/null @@ -1,21 +0,0 @@ -using System.ComponentModel.DataAnnotations; - -namespace AIStudio.Provider.OpenAI; - -/// -/// The OpenAI chat request model. -/// -/// Which model to use for chat completion. -/// The chat messages. -/// Whether to stream the chat completion. -/// The seed for the chat completion. -/// The frequency penalty for the chat completion. -public readonly record struct ChatRequest( - string Model, - IList Messages, - bool Stream, - int Seed, - - [Range(-2.0f, 2.0f)] - float FrequencyPenalty -); \ No newline at end of file diff --git a/app/MindWork AI Studio/Provider/OpenAI/ProviderOpenAI.cs b/app/MindWork AI Studio/Provider/OpenAI/ProviderOpenAI.cs index b5f8f818..406c1f53 100644 --- a/app/MindWork AI Studio/Provider/OpenAI/ProviderOpenAI.cs +++ b/app/MindWork AI Studio/Provider/OpenAI/ProviderOpenAI.cs @@ -11,8 +11,10 @@ namespace AIStudio.Provider.OpenAI; /// /// The OpenAI provider. /// -public sealed class ProviderOpenAI(ILogger logger) : BaseProvider("https://api.openai.com/v1/", logger) +public sealed class ProviderOpenAI() : BaseProvider("https://api.openai.com/v1/", LOGGER) { + private static readonly ILogger LOGGER = Program.LOGGER_FACTORY.CreateLogger(); + #region Implementation of IProvider /// @@ -22,7 +24,7 @@ public sealed class ProviderOpenAI(ILogger logger) : BaseProvider("https://api.o public override string InstanceName { get; set; } = "OpenAI"; /// - public override async IAsyncEnumerable StreamChatCompletion(Model chatModel, ChatThread chatThread, SettingsManager settingsManager, [EnumeratorCancellation] CancellationToken token = default) + public override async IAsyncEnumerable StreamChatCompletion(Model chatModel, ChatThread chatThread, SettingsManager settingsManager, [EnumeratorCancellation] CancellationToken token = default) { // Get the API key: var requestedSecret = await RUST_SERVICE.GetAPIKey(this); @@ -30,16 +32,20 @@ public sealed class ProviderOpenAI(ILogger logger) : BaseProvider("https://api.o yield break; // Unfortunately, OpenAI changed the name of the system prompt based on the model. - // All models that start with "o" (the omni aka reasoning models) and all GPT4o models - // have the system prompt named "developer". All other models have the system prompt - // named "system". We need to check this to get the correct system prompt. + // All models that start with "o" (the omni aka reasoning models), all GPT4o models, + // and all newer models have the system prompt named "developer". All other models + // have the system prompt named "system". We need to check this to get the correct + // system prompt. // // To complicate it even more: The early versions of reasoning models, which are released // before the 17th of December 2024, have no system prompt at all. We need to check this // as well. // Apply the basic rule first: - var systemPromptRole = chatModel.Id.StartsWith('o') || chatModel.Id.Contains("4o") ? "developer" : "system"; + var systemPromptRole = + chatModel.Id.StartsWith('o') || + chatModel.Id.StartsWith("gpt-5", StringComparison.Ordinal) || + chatModel.Id.Contains("4o") ? "developer" : "system"; // Check if the model is an early version of the reasoning models: systemPromptRole = chatModel.Id switch @@ -51,53 +57,113 @@ public sealed class ProviderOpenAI(ILogger logger) : BaseProvider("https://api.o _ => systemPromptRole, }; - - this.logger.LogInformation($"Using the system prompt role '{systemPromptRole}' for model '{chatModel.Id}'."); + // Read the model capabilities: + var modelCapabilities = this.GetModelCapabilities(chatModel); + + // Check if we are using the Responses API or the Chat Completion API: + var usingResponsesAPI = modelCapabilities.Contains(Capability.RESPONSES_API); + + // Prepare the request path based on the API we are using: + var requestPath = usingResponsesAPI ? "responses" : "chat/completions"; + + LOGGER.LogInformation("Using the system prompt role '{SystemPromptRole}' and the '{RequestPath}' API for model '{ChatModelId}'.", systemPromptRole, requestPath, chatModel.Id); + // Prepare the system prompt: var systemPrompt = new Message { Role = systemPromptRole, - Content = chatThread.PrepareSystemPrompt(settingsManager, chatThread, this.logger), + Content = chatThread.PrepareSystemPrompt(settingsManager, chatThread), + }; + + // + // Prepare the tools we want to use: + // + IList tools = modelCapabilities.Contains(Capability.WEB_SEARCH) switch + { + true => [ Tools.WEB_SEARCH ], + _ => [] }; - // Prepare the OpenAI HTTP chat request: - var openAIChatRequest = JsonSerializer.Serialize(new ChatRequest + // + // Create the request: either for the Responses API or the Chat Completion API + // + var openAIChatRequest = usingResponsesAPI switch { - Model = chatModel.Id, - - // Build the messages: - // - First of all the system prompt - // - Then none-empty user and AI messages - Messages = [systemPrompt, ..chatThread.Blocks.Where(n => n.ContentType is ContentType.TEXT && !string.IsNullOrWhiteSpace((n.Content as ContentText)?.Text)).Select(n => new Message + // Chat Completion API request: + false => JsonSerializer.Serialize(new ChatCompletionAPIRequest { - Role = n.Role switch - { - ChatRole.USER => "user", - ChatRole.AI => "assistant", - ChatRole.AGENT => "assistant", - ChatRole.SYSTEM => systemPromptRole, - - _ => "user", - }, - - Content = n.Content switch - { - ContentText text => text.Text, - _ => string.Empty, - } - }).ToList()], - - Seed = chatThread.Seed, + Model = chatModel.Id, - // Right now, we only support streaming completions: - Stream = true, - }, JSON_SERIALIZER_OPTIONS); + // Build the messages: + // - First of all the system prompt + // - Then none-empty user and AI messages + Messages = [systemPrompt, ..chatThread.Blocks.Where(n => n.ContentType is ContentType.TEXT && !string.IsNullOrWhiteSpace((n.Content as ContentText)?.Text)).Select(n => new Message + { + Role = n.Role switch + { + ChatRole.USER => "user", + ChatRole.AI => "assistant", + ChatRole.AGENT => "assistant", + ChatRole.SYSTEM => systemPromptRole, + + _ => "user", + }, + + Content = n.Content switch + { + ContentText text => text.Text, + _ => string.Empty, + } + }).ToList()], + + // Right now, we only support streaming completions: + Stream = true, + }, JSON_SERIALIZER_OPTIONS), + + // Responses API request: + true => JsonSerializer.Serialize(new ResponsesAPIRequest + { + Model = chatModel.Id, + + // Build the messages: + // - First of all the system prompt + // - Then none-empty user and AI messages + Input = [systemPrompt, ..chatThread.Blocks.Where(n => n.ContentType is ContentType.TEXT && !string.IsNullOrWhiteSpace((n.Content as ContentText)?.Text)).Select(n => new Message + { + Role = n.Role switch + { + ChatRole.USER => "user", + ChatRole.AI => "assistant", + ChatRole.AGENT => "assistant", + ChatRole.SYSTEM => systemPromptRole, + + _ => "user", + }, + + Content = n.Content switch + { + ContentText text => text.Text, + _ => string.Empty, + } + }).ToList()], + + // Right now, we only support streaming completions: + Stream = true, + + // We do not want to store any data on OpenAI's servers: + Store = false, + + // Tools we want to use: + Tools = tools, + + }, JSON_SERIALIZER_OPTIONS), + }; async Task RequestBuilder() { // Build the HTTP post request: - var request = new HttpRequestMessage(HttpMethod.Post, "chat/completions"); + var request = new HttpRequestMessage(HttpMethod.Post, requestPath); // Set the authorization header: request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", await requestedSecret.Secret.Decrypt(ENCRYPTION)); @@ -106,29 +172,35 @@ public sealed class ProviderOpenAI(ILogger logger) : BaseProvider("https://api.o request.Content = new StringContent(openAIChatRequest, Encoding.UTF8, "application/json"); return request; } + + if (usingResponsesAPI) + await foreach (var content in this.StreamResponsesInternal("OpenAI", RequestBuilder, token)) + yield return content; - await foreach (var content in this.StreamChatCompletionInternal("OpenAI", RequestBuilder, token)) - yield return content; + else + await foreach (var content in this.StreamChatCompletionInternal("OpenAI", RequestBuilder, token)) + yield return content; } #pragma warning disable CS1998 // Async method lacks 'await' operators and will run synchronously + /// public override async IAsyncEnumerable StreamImageCompletion(Model imageModel, string promptPositive, string promptNegative = FilterOperator.String.Empty, ImageURL referenceImageURL = default, [EnumeratorCancellation] CancellationToken token = default) { yield break; } + #pragma warning restore CS1998 // Async method lacks 'await' operators and will run synchronously /// public override async Task> GetTextModels(string? apiKeyProvisional = null, CancellationToken token = default) { - var models = await this.LoadModels(["gpt-", "o1-", "o3-", "o4-"], token, apiKeyProvisional); + var models = await this.LoadModels(["chatgpt-", "gpt-", "o1-", "o3-", "o4-"], token, apiKeyProvisional); return models.Where(model => !model.Id.Contains("image", StringComparison.OrdinalIgnoreCase) && !model.Id.Contains("realtime", StringComparison.OrdinalIgnoreCase) && !model.Id.Contains("audio", StringComparison.OrdinalIgnoreCase) && !model.Id.Contains("tts", StringComparison.OrdinalIgnoreCase) && - !model.Id.Contains("transcribe", StringComparison.OrdinalIgnoreCase) && - !model.Id.Contains("o1-pro", StringComparison.OrdinalIgnoreCase)); + !model.Id.Contains("transcribe", StringComparison.OrdinalIgnoreCase)); } /// @@ -147,6 +219,26 @@ public sealed class ProviderOpenAI(ILogger logger) : BaseProvider("https://api.o { var modelName = model.Id.ToLowerInvariant().AsSpan(); + if (modelName is "gpt-4o-search-preview") + return + [ + Capability.TEXT_INPUT, + Capability.TEXT_OUTPUT, + + Capability.WEB_SEARCH, + Capability.CHAT_COMPLETION_API, + ]; + + if (modelName is "gpt-4o-mini-search-preview") + return + [ + Capability.TEXT_INPUT, + Capability.TEXT_OUTPUT, + + Capability.WEB_SEARCH, + Capability.CHAT_COMPLETION_API, + ]; + if (modelName.StartsWith("o1-mini")) return [ @@ -154,32 +246,63 @@ public sealed class ProviderOpenAI(ILogger logger) : BaseProvider("https://api.o Capability.TEXT_OUTPUT, Capability.ALWAYS_REASONING, + Capability.CHAT_COMPLETION_API, ]; + if(modelName is "gpt-3.5-turbo") + return + [ + Capability.TEXT_INPUT, + Capability.TEXT_OUTPUT, + Capability.RESPONSES_API, + ]; + + if(modelName.StartsWith("gpt-3.5")) + return + [ + Capability.TEXT_INPUT, + Capability.TEXT_OUTPUT, + Capability.CHAT_COMPLETION_API, + ]; + + if (modelName.StartsWith("chatgpt-4o-")) + return + [ + Capability.TEXT_INPUT, Capability.MULTIPLE_IMAGE_INPUT, + Capability.TEXT_OUTPUT, + Capability.RESPONSES_API, + ]; + if (modelName.StartsWith("o3-mini")) return [ Capability.TEXT_INPUT, Capability.TEXT_OUTPUT, - Capability.ALWAYS_REASONING, Capability.FUNCTION_CALLING + Capability.ALWAYS_REASONING, Capability.FUNCTION_CALLING, + Capability.RESPONSES_API, ]; - if (modelName.StartsWith("o4-mini") || modelName.StartsWith("o1") || modelName.StartsWith("o3")) + if (modelName.StartsWith("o4-mini") || modelName.StartsWith("o3")) return [ Capability.TEXT_INPUT, Capability.MULTIPLE_IMAGE_INPUT, Capability.TEXT_OUTPUT, - Capability.ALWAYS_REASONING, Capability.FUNCTION_CALLING + Capability.ALWAYS_REASONING, Capability.FUNCTION_CALLING, + Capability.WEB_SEARCH, + Capability.RESPONSES_API, ]; - if(modelName.StartsWith("gpt-3.5")) + if (modelName.StartsWith("o1")) return - [ - Capability.TEXT_INPUT, - Capability.TEXT_OUTPUT, - ]; + [ + Capability.TEXT_INPUT, Capability.MULTIPLE_IMAGE_INPUT, + Capability.TEXT_OUTPUT, + + Capability.ALWAYS_REASONING, Capability.FUNCTION_CALLING, + Capability.RESPONSES_API, + ]; if(modelName.StartsWith("gpt-4-turbo")) return @@ -187,7 +310,8 @@ public sealed class ProviderOpenAI(ILogger logger) : BaseProvider("https://api.o Capability.TEXT_INPUT, Capability.MULTIPLE_IMAGE_INPUT, Capability.TEXT_OUTPUT, - Capability.FUNCTION_CALLING + Capability.FUNCTION_CALLING, + Capability.RESPONSES_API, ]; if(modelName is "gpt-4" || modelName.StartsWith("gpt-4-")) @@ -195,14 +319,37 @@ public sealed class ProviderOpenAI(ILogger logger) : BaseProvider("https://api.o [ Capability.TEXT_INPUT, Capability.TEXT_OUTPUT, + Capability.RESPONSES_API, ]; + if(modelName.StartsWith("gpt-5-nano")) + return + [ + Capability.TEXT_INPUT, Capability.MULTIPLE_IMAGE_INPUT, + Capability.TEXT_OUTPUT, + + Capability.FUNCTION_CALLING, Capability.ALWAYS_REASONING, + Capability.RESPONSES_API, + ]; + + if(modelName is "gpt-5" || modelName.StartsWith("gpt-5-")) + return + [ + Capability.TEXT_INPUT, Capability.MULTIPLE_IMAGE_INPUT, + Capability.TEXT_OUTPUT, + + Capability.FUNCTION_CALLING, Capability.ALWAYS_REASONING, + Capability.WEB_SEARCH, + Capability.RESPONSES_API, + ]; + return [ Capability.TEXT_INPUT, Capability.MULTIPLE_IMAGE_INPUT, Capability.TEXT_OUTPUT, Capability.FUNCTION_CALLING, + Capability.RESPONSES_API, ]; } diff --git a/app/MindWork AI Studio/Provider/OpenAI/ResponsesAPIRequest.cs b/app/MindWork AI Studio/Provider/OpenAI/ResponsesAPIRequest.cs new file mode 100644 index 00000000..b5525b8f --- /dev/null +++ b/app/MindWork AI Studio/Provider/OpenAI/ResponsesAPIRequest.cs @@ -0,0 +1,21 @@ +namespace AIStudio.Provider.OpenAI; + +/// +/// The request body for the Responses API. +/// +/// Which model to use. +/// The chat messages. +/// Whether to stream the response. +/// Whether to store the response on the server (usually OpenAI's infrastructure). +/// The tools to use for the request. +public record ResponsesAPIRequest( + string Model, + IList Input, + bool Stream, + bool Store, + IList Tools) +{ + public ResponsesAPIRequest() : this(string.Empty, [], true, false, []) + { + } +} \ No newline at end of file diff --git a/app/MindWork AI Studio/Provider/OpenAI/ResponsesAnnotatingURL.cs b/app/MindWork AI Studio/Provider/OpenAI/ResponsesAnnotatingURL.cs new file mode 100644 index 00000000..6f334015 --- /dev/null +++ b/app/MindWork AI Studio/Provider/OpenAI/ResponsesAnnotatingURL.cs @@ -0,0 +1,16 @@ +namespace AIStudio.Provider.OpenAI; + +/// +/// Data structure for URL citation annotations in the OpenAI Responses API. +/// +/// The type of annotation, typically "url_citation". +/// The end index of the annotated text in the response. +/// The start index of the annotated text in the response. +/// The title of the cited URL. +/// The URL being cited. +public sealed record ResponsesAnnotatingUrlCitationData( + string Type, + int EndIndex, + int StartIndex, + string Title, + string URL) : Annotation(Type); \ No newline at end of file diff --git a/app/MindWork AI Studio/Provider/OpenAI/ResponsesAnnotationStreamLine.cs b/app/MindWork AI Studio/Provider/OpenAI/ResponsesAnnotationStreamLine.cs new file mode 100644 index 00000000..a58fa17b --- /dev/null +++ b/app/MindWork AI Studio/Provider/OpenAI/ResponsesAnnotationStreamLine.cs @@ -0,0 +1,45 @@ +namespace AIStudio.Provider.OpenAI; + +/// +/// Data structure for a line in the response stream of the Responses API, containing an annotation. +/// +/// The type of the annotation. +/// The continuous index of the annotation in the response. +/// The annotation details. +public sealed record ResponsesAnnotationStreamLine(string Type, int AnnotationIndex, Annotation Annotation) : IAnnotationStreamLine +{ + #region Implementation of IAnnotationStreamLine + + /// + public bool ContainsSources() + { + return this.Annotation is not AnnotatingUnknown; + } + + /// + public IList GetSources() + { + // + // Check for the unexpected annotation type of the chat completion API. + // + // This seems weird at first. But there are two possibilities why this could happen: + // - Anyone of the open source providers such as ollama, LM Studio, etc. could + // implement and use the chat completion API data structures for annotations in their + // Responses API endpoint. + // + // - Our custom JSON converter checks for all possible annotation data types. So, + // when the streamed data is valid for any annotation type, it will be deserialized + // into that type, even though we are calling the Responses API endpoint. + // + if (this.Annotation is ChatCompletionAnnotatingURL urlAnnotation) + return [new Source(urlAnnotation.UrlCitation.Title, urlAnnotation.UrlCitation.URL)]; + + // Check for the expected annotation type of the Responses API: + if (this.Annotation is ResponsesAnnotatingUrlCitationData urlCitationData) + return [new Source(urlCitationData.Title, urlCitationData.URL)]; + + return []; + } + + #endregion +} \ No newline at end of file diff --git a/app/MindWork AI Studio/Provider/OpenAI/ResponsesDeltaStreamLine.cs b/app/MindWork AI Studio/Provider/OpenAI/ResponsesDeltaStreamLine.cs new file mode 100644 index 00000000..5bad9c1b --- /dev/null +++ b/app/MindWork AI Studio/Provider/OpenAI/ResponsesDeltaStreamLine.cs @@ -0,0 +1,39 @@ +namespace AIStudio.Provider.OpenAI; + +/// +/// Data model for a delta line in the Response API chat completion stream. +/// +/// The type of the response. +/// The delta content of the response. +public record ResponsesDeltaStreamLine( + string Type, + string Delta) : IResponseStreamLine +{ + #region Implementation of IResponseStreamLine + + /// + public bool ContainsContent() => !string.IsNullOrWhiteSpace(this.Delta); + + /// + public ContentStreamChunk GetContent() => new(this.Delta, this.GetSources()); + + // + // Please note that there are multiple options where LLM providers might stream sources: + // + // - As part of the delta content while streaming. That would be part of this class. + // - By using a dedicated stream event and data structure. That would be another class implementing IResponseStreamLine. + // + // Right now, OpenAI uses the latter approach, so we don't have any sources here. And + // because no other provider does it yet, we don't have any implementation here either. + // + // One example where sources are part of the delta content is the Perplexity provider. + // + + /// + public bool ContainsSources() => false; + + /// + public IList GetSources() => []; + + #endregion +} \ No newline at end of file diff --git a/app/MindWork AI Studio/Provider/OpenAI/Tool.cs b/app/MindWork AI Studio/Provider/OpenAI/Tool.cs new file mode 100644 index 00000000..782e6b60 --- /dev/null +++ b/app/MindWork AI Studio/Provider/OpenAI/Tool.cs @@ -0,0 +1,12 @@ +namespace AIStudio.Provider.OpenAI; + +/// +/// Represents a tool used by the AI model. +/// +/// +/// Right now, only our OpenAI provider is using tools. Thus, this class is located in the +/// OpenAI namespace. In the future, when other providers also support tools, this class can +/// be moved into the provider namespace. +/// +/// The type of the tool. +public record Tool(string Type); \ No newline at end of file diff --git a/app/MindWork AI Studio/Provider/OpenAI/Tools.cs b/app/MindWork AI Studio/Provider/OpenAI/Tools.cs new file mode 100644 index 00000000..50d2b836 --- /dev/null +++ b/app/MindWork AI Studio/Provider/OpenAI/Tools.cs @@ -0,0 +1,14 @@ +namespace AIStudio.Provider.OpenAI; + +/// +/// Known tools for LLM providers. +/// +/// +/// Right now, only our OpenAI provider is using tools. Thus, this class is located in the +/// OpenAI namespace. In the future, when other providers also support tools, this class can +/// be moved into the provider namespace. +/// +public static class Tools +{ + public static readonly Tool WEB_SEARCH = new("web_search"); +} \ No newline at end of file diff --git a/app/MindWork AI Studio/Provider/Perplexity/Choice.cs b/app/MindWork AI Studio/Provider/Perplexity/Choice.cs new file mode 100644 index 00000000..2da6bd99 --- /dev/null +++ b/app/MindWork AI Studio/Provider/Perplexity/Choice.cs @@ -0,0 +1,8 @@ +namespace AIStudio.Provider.Perplexity; + +/// +/// Data model for a choice made by the AI. +/// +/// The index of the choice. +/// The delta text of the choice. +public readonly record struct Choice(int Index, Delta Delta); \ No newline at end of file diff --git a/app/MindWork AI Studio/Provider/Perplexity/Delta.cs b/app/MindWork AI Studio/Provider/Perplexity/Delta.cs new file mode 100644 index 00000000..a4f1da61 --- /dev/null +++ b/app/MindWork AI Studio/Provider/Perplexity/Delta.cs @@ -0,0 +1,7 @@ +namespace AIStudio.Provider.Perplexity; + +/// +/// The delta text of a choice. +/// +/// The content of the delta text. +public readonly record struct Delta(string Content); \ No newline at end of file diff --git a/app/MindWork AI Studio/Provider/Perplexity/ProviderPerplexity.cs b/app/MindWork AI Studio/Provider/Perplexity/ProviderPerplexity.cs new file mode 100644 index 00000000..4c65e5f4 --- /dev/null +++ b/app/MindWork AI Studio/Provider/Perplexity/ProviderPerplexity.cs @@ -0,0 +1,155 @@ +using System.Net.Http.Headers; +using System.Runtime.CompilerServices; +using System.Text; +using System.Text.Json; + +using AIStudio.Chat; +using AIStudio.Provider.OpenAI; +using AIStudio.Settings; + +namespace AIStudio.Provider.Perplexity; + +public sealed class ProviderPerplexity() : BaseProvider("https://api.perplexity.ai/", LOGGER) +{ + private static readonly ILogger LOGGER = Program.LOGGER_FACTORY.CreateLogger(); + + private static readonly Model[] KNOWN_MODELS = + [ + new("sonar", "Sonar"), + new("sonar-pro", "Sonar Pro"), + new("sonar-reasoning", "Sonar Reasoning"), + new("sonar-reasoning-pro", "Sonar Reasoning Pro"), + new("sonar-deep-research", "Sonar Deep Research"), + ]; + + #region Implementation of IProvider + + /// + public override string Id => LLMProviders.PERPLEXITY.ToName(); + + /// + public override string InstanceName { get; set; } = "Perplexity"; + + /// + public override async IAsyncEnumerable StreamChatCompletion(Model chatModel, ChatThread chatThread, SettingsManager settingsManager, [EnumeratorCancellation] CancellationToken token = default) + { + // Get the API key: + var requestedSecret = await RUST_SERVICE.GetAPIKey(this); + if(!requestedSecret.Success) + yield break; + + // Prepare the system prompt: + var systemPrompt = new Message + { + Role = "system", + Content = chatThread.PrepareSystemPrompt(settingsManager, chatThread), + }; + + // Prepare the Perplexity HTTP chat request: + var perplexityChatRequest = JsonSerializer.Serialize(new ChatCompletionAPIRequest + { + Model = chatModel.Id, + + // Build the messages: + // - First of all the system prompt + // - Then none-empty user and AI messages + Messages = [systemPrompt, ..chatThread.Blocks.Where(n => n.ContentType is ContentType.TEXT && !string.IsNullOrWhiteSpace((n.Content as ContentText)?.Text)).Select(n => new Message + { + Role = n.Role switch + { + ChatRole.USER => "user", + ChatRole.AI => "assistant", + ChatRole.AGENT => "assistant", + ChatRole.SYSTEM => "system", + + _ => "user", + }, + + Content = n.Content switch + { + ContentText text => text.Text, + _ => string.Empty, + } + }).ToList()], + Stream = true, + }, JSON_SERIALIZER_OPTIONS); + + async Task RequestBuilder() + { + // Build the HTTP post request: + var request = new HttpRequestMessage(HttpMethod.Post, "chat/completions"); + + // Set the authorization header: + request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", await requestedSecret.Secret.Decrypt(ENCRYPTION)); + + // Set the content: + request.Content = new StringContent(perplexityChatRequest, Encoding.UTF8, "application/json"); + return request; + } + + await foreach (var content in this.StreamChatCompletionInternal("Perplexity", RequestBuilder, token)) + yield return content; + } + + #pragma warning disable CS1998 // Async method lacks 'await' operators and will run synchronously + /// + public override async IAsyncEnumerable StreamImageCompletion(Model imageModel, string promptPositive, string promptNegative = FilterOperator.String.Empty, ImageURL referenceImageURL = default, [EnumeratorCancellation] CancellationToken token = default) + { + yield break; + } + #pragma warning restore CS1998 // Async method lacks 'await' operators and will run synchronously + + /// + public override Task> GetTextModels(string? apiKeyProvisional = null, CancellationToken token = default) + { + return this.LoadModels(); + } + + /// + public override Task> GetImageModels(string? apiKeyProvisional = null, CancellationToken token = default) + { + return Task.FromResult(Enumerable.Empty()); + } + + /// + public override Task> GetEmbeddingModels(string? apiKeyProvisional = null, CancellationToken token = default) + { + return Task.FromResult(Enumerable.Empty()); + } + + public override IReadOnlyCollection GetModelCapabilities(Model model) + { + var modelName = model.Id.ToLowerInvariant().AsSpan(); + + if(modelName.IndexOf("reasoning") is not -1 || + modelName.IndexOf("deep-research") is not -1) + return + [ + Capability.TEXT_INPUT, + Capability.MULTIPLE_IMAGE_INPUT, + + Capability.TEXT_OUTPUT, + Capability.IMAGE_OUTPUT, + + Capability.ALWAYS_REASONING, + Capability.WEB_SEARCH, + Capability.CHAT_COMPLETION_API, + ]; + + return + [ + Capability.TEXT_INPUT, + Capability.MULTIPLE_IMAGE_INPUT, + + Capability.TEXT_OUTPUT, + Capability.IMAGE_OUTPUT, + + Capability.WEB_SEARCH, + Capability.CHAT_COMPLETION_API, + ]; + } + + #endregion + + private Task> LoadModels() => Task.FromResult>(KNOWN_MODELS); +} \ No newline at end of file diff --git a/app/MindWork AI Studio/Provider/OpenAI/ResponseStreamLine.cs b/app/MindWork AI Studio/Provider/Perplexity/ResponseStreamLine.cs similarity index 58% rename from app/MindWork AI Studio/Provider/OpenAI/ResponseStreamLine.cs rename to app/MindWork AI Studio/Provider/Perplexity/ResponseStreamLine.cs index 98b2b2d9..5ef74083 100644 --- a/app/MindWork AI Studio/Provider/OpenAI/ResponseStreamLine.cs +++ b/app/MindWork AI Studio/Provider/Perplexity/ResponseStreamLine.cs @@ -1,4 +1,4 @@ -namespace AIStudio.Provider.OpenAI; +namespace AIStudio.Provider.Perplexity; /// /// Data model for a line in the response stream, for streaming completions. @@ -9,24 +9,17 @@ namespace AIStudio.Provider.OpenAI; /// The model used for the response. /// The system fingerprint; together with the seed, this allows you to reproduce the response. /// The choices made by the AI. -public readonly record struct ResponseStreamLine(string Id, string Object, uint Created, string Model, string SystemFingerprint, IList Choices) : IResponseStreamLine +public readonly record struct ResponseStreamLine(string Id, string Object, uint Created, string Model, string SystemFingerprint, IList Choices, IList SearchResults) : IResponseStreamLine { /// public bool ContainsContent() => this != default && this.Choices.Count > 0; /// - public string GetContent() => this.Choices[0].Delta.Content; -} + public ContentStreamChunk GetContent() => new(this.Choices[0].Delta.Content, this.GetSources()); + + /// + public bool ContainsSources() => this != default && this.SearchResults.Count > 0; -/// -/// Data model for a choice made by the AI. -/// -/// The index of the choice. -/// The delta text of the choice. -public readonly record struct Choice(int Index, Delta Delta); - -/// -/// The delta text of a choice. -/// -/// The content of the delta text. -public readonly record struct Delta(string Content); \ No newline at end of file + /// + public IList GetSources() => this.SearchResults.Cast().ToList(); +} \ No newline at end of file diff --git a/app/MindWork AI Studio/Provider/Perplexity/SearchResult.cs b/app/MindWork AI Studio/Provider/Perplexity/SearchResult.cs new file mode 100644 index 00000000..cfd870c1 --- /dev/null +++ b/app/MindWork AI Studio/Provider/Perplexity/SearchResult.cs @@ -0,0 +1,8 @@ +namespace AIStudio.Provider.Perplexity; + +/// +/// Data model for a search result. +/// +/// The title of the search result. +/// The URL of the search result. +public sealed record SearchResult(string Title, string URL) : Source(Title, URL); \ No newline at end of file diff --git a/app/MindWork AI Studio/Provider/SelfHosted/ChatRequest.cs b/app/MindWork AI Studio/Provider/SelfHosted/ChatRequest.cs index 74b3f089..db05e365 100644 --- a/app/MindWork AI Studio/Provider/SelfHosted/ChatRequest.cs +++ b/app/MindWork AI Studio/Provider/SelfHosted/ChatRequest.cs @@ -6,11 +6,8 @@ namespace AIStudio.Provider.SelfHosted; /// Which model to use for chat completion. /// The chat messages. /// Whether to stream the chat completion. -/// The maximum number of tokens to generate. public readonly record struct ChatRequest( string Model, IList Messages, - bool Stream, - - int MaxTokens + bool Stream ); \ No newline at end of file diff --git a/app/MindWork AI Studio/Provider/SelfHosted/Host.cs b/app/MindWork AI Studio/Provider/SelfHosted/Host.cs index c90ecc9a..d922ccd5 100644 --- a/app/MindWork AI Studio/Provider/SelfHosted/Host.cs +++ b/app/MindWork AI Studio/Provider/SelfHosted/Host.cs @@ -7,4 +7,5 @@ public enum Host LM_STUDIO, LLAMACPP, OLLAMA, + VLLM, } \ No newline at end of file diff --git a/app/MindWork AI Studio/Provider/SelfHosted/HostExtensions.cs b/app/MindWork AI Studio/Provider/SelfHosted/HostExtensions.cs index a4e29648..3478d9e5 100644 --- a/app/MindWork AI Studio/Provider/SelfHosted/HostExtensions.cs +++ b/app/MindWork AI Studio/Provider/SelfHosted/HostExtensions.cs @@ -9,6 +9,7 @@ public static class HostExtensions Host.LM_STUDIO => "LM Studio", Host.LLAMACPP => "llama.cpp", Host.OLLAMA => "ollama", + Host.VLLM => "vLLM", _ => "Unknown", }; @@ -29,6 +30,7 @@ public static class HostExtensions { case Host.LM_STUDIO: case Host.OLLAMA: + case Host.VLLM: return true; default: diff --git a/app/MindWork AI Studio/Provider/SelfHosted/ProviderSelfHosted.cs b/app/MindWork AI Studio/Provider/SelfHosted/ProviderSelfHosted.cs index a2e997f9..df64be6b 100644 --- a/app/MindWork AI Studio/Provider/SelfHosted/ProviderSelfHosted.cs +++ b/app/MindWork AI Studio/Provider/SelfHosted/ProviderSelfHosted.cs @@ -9,8 +9,10 @@ using AIStudio.Settings; namespace AIStudio.Provider.SelfHosted; -public sealed class ProviderSelfHosted(ILogger logger, Host host, string hostname) : BaseProvider($"{hostname}{host.BaseURL()}", logger) +public sealed class ProviderSelfHosted(Host host, string hostname) : BaseProvider($"{hostname}{host.BaseURL()}", LOGGER) { + private static readonly ILogger LOGGER = Program.LOGGER_FACTORY.CreateLogger(); + #region Implementation of IProvider public override string Id => LLMProviders.SELF_HOSTED.ToName(); @@ -18,7 +20,7 @@ public sealed class ProviderSelfHosted(ILogger logger, Host host, string hostnam public override string InstanceName { get; set; } = "Self-hosted"; /// - public override async IAsyncEnumerable StreamChatCompletion(Provider.Model chatModel, ChatThread chatThread, SettingsManager settingsManager, [EnumeratorCancellation] CancellationToken token = default) + public override async IAsyncEnumerable StreamChatCompletion(Provider.Model chatModel, ChatThread chatThread, SettingsManager settingsManager, [EnumeratorCancellation] CancellationToken token = default) { // Get the API key: var requestedSecret = await RUST_SERVICE.GetAPIKey(this, isTrying: true); @@ -27,7 +29,7 @@ public sealed class ProviderSelfHosted(ILogger logger, Host host, string hostnam var systemPrompt = new Message { Role = "system", - Content = chatThread.PrepareSystemPrompt(settingsManager, chatThread, this.logger), + Content = chatThread.PrepareSystemPrompt(settingsManager, chatThread), }; // Prepare the OpenAI HTTP chat request: @@ -58,8 +60,7 @@ public sealed class ProviderSelfHosted(ILogger logger, Host host, string hostnam }).ToList()], // Right now, we only support streaming completions: - Stream = true, - MaxTokens = -1, + Stream = true }, JSON_SERIALIZER_OPTIONS); async Task RequestBuilder() @@ -76,7 +77,7 @@ public sealed class ProviderSelfHosted(ILogger logger, Host host, string hostnam return request; } - await foreach (var content in this.StreamChatCompletionInternal("self-hosted provider", RequestBuilder, token)) + await foreach (var content in this.StreamChatCompletionInternal("self-hosted provider", RequestBuilder, token)) yield return content; } @@ -101,6 +102,7 @@ public sealed class ProviderSelfHosted(ILogger logger, Host host, string hostnam case Host.LM_STUDIO: case Host.OLLAMA: + case Host.VLLM: return await this.LoadModels(["embed"], [], token, apiKeyProvisional); } @@ -108,7 +110,7 @@ public sealed class ProviderSelfHosted(ILogger logger, Host host, string hostnam } catch(Exception e) { - this.logger.LogError($"Failed to load text models from self-hosted provider: {e.Message}"); + LOGGER.LogError($"Failed to load text models from self-hosted provider: {e.Message}"); return []; } } @@ -127,6 +129,7 @@ public sealed class ProviderSelfHosted(ILogger logger, Host host, string hostnam { case Host.LM_STUDIO: case Host.OLLAMA: + case Host.VLLM: return await this.LoadModels([], ["embed"], token, apiKeyProvisional); } @@ -134,7 +137,7 @@ public sealed class ProviderSelfHosted(ILogger logger, Host host, string hostnam } catch(Exception e) { - this.logger.LogError($"Failed to load text models from self-hosted provider: {e.Message}"); + LOGGER.LogError($"Failed to load text models from self-hosted provider: {e.Message}"); return []; } } diff --git a/app/MindWork AI Studio/Provider/Source.cs b/app/MindWork AI Studio/Provider/Source.cs new file mode 100644 index 00000000..d666e375 --- /dev/null +++ b/app/MindWork AI Studio/Provider/Source.cs @@ -0,0 +1,8 @@ +namespace AIStudio.Provider; + +/// +/// Data model for a source used in the response. +/// +/// The title of the source. +/// The URL of the source. +public record Source(string Title, string URL) : ISource; \ No newline at end of file diff --git a/app/MindWork AI Studio/Provider/SourceExtensions.cs b/app/MindWork AI Studio/Provider/SourceExtensions.cs new file mode 100644 index 00000000..ce208612 --- /dev/null +++ b/app/MindWork AI Studio/Provider/SourceExtensions.cs @@ -0,0 +1,47 @@ +using System.Text; + +using AIStudio.Tools.PluginSystem; + +namespace AIStudio.Provider; + +public static class SourceExtensions +{ + private static string TB(string fallbackEN) => I18N.I.T(fallbackEN, typeof(SourceExtensions).Namespace, nameof(SourceExtensions)); + + /// + /// Converts a list of sources to a markdown-formatted string. + /// + /// The list of sources to convert. + /// A markdown-formatted string representing the sources. + public static string ToMarkdown(this IList sources) + { + var sb = new StringBuilder(); + sb.Append("## "); + sb.AppendLine(TB("Sources")); + + var sourceNum = 0; + foreach (var source in sources) + { + sb.Append($"- [{++sourceNum}] "); + sb.Append('['); + sb.Append(source.Title); + sb.Append("]("); + sb.Append(source.URL); + sb.AppendLine(")"); + } + + return sb.ToString(); + } + + /// + /// Merges a list of added sources into an existing list of sources, avoiding duplicates based on URL and Title. + /// + /// The existing list of sources to merge into. + /// The list of sources to add. + public static void MergeSources(this IList sources, IList addedSources) + { + foreach (var addedSource in addedSources) + if (sources.All(s => s.URL != addedSource.URL && s.Title != addedSource.Title)) + sources.Add((Source)addedSource); + } +} \ No newline at end of file diff --git a/app/MindWork AI Studio/Provider/X/ProviderX.cs b/app/MindWork AI Studio/Provider/X/ProviderX.cs index 884c1007..d649eecd 100644 --- a/app/MindWork AI Studio/Provider/X/ProviderX.cs +++ b/app/MindWork AI Studio/Provider/X/ProviderX.cs @@ -9,8 +9,10 @@ using AIStudio.Settings; namespace AIStudio.Provider.X; -public sealed class ProviderX(ILogger logger) : BaseProvider("https://api.x.ai/v1/", logger) +public sealed class ProviderX() : BaseProvider("https://api.x.ai/v1/", LOGGER) { + private static readonly ILogger LOGGER = Program.LOGGER_FACTORY.CreateLogger(); + #region Implementation of IProvider /// @@ -20,7 +22,7 @@ public sealed class ProviderX(ILogger logger) : BaseProvider("https://api.x.ai/v public override string InstanceName { get; set; } = "xAI"; /// - public override async IAsyncEnumerable StreamChatCompletion(Model chatModel, ChatThread chatThread, SettingsManager settingsManager, [EnumeratorCancellation] CancellationToken token = default) + public override async IAsyncEnumerable StreamChatCompletion(Model chatModel, ChatThread chatThread, SettingsManager settingsManager, [EnumeratorCancellation] CancellationToken token = default) { // Get the API key: var requestedSecret = await RUST_SERVICE.GetAPIKey(this); @@ -31,11 +33,11 @@ public sealed class ProviderX(ILogger logger) : BaseProvider("https://api.x.ai/v var systemPrompt = new Message { Role = "system", - Content = chatThread.PrepareSystemPrompt(settingsManager, chatThread, this.logger), + Content = chatThread.PrepareSystemPrompt(settingsManager, chatThread), }; // Prepare the xAI HTTP chat request: - var xChatRequest = JsonSerializer.Serialize(new ChatRequest + var xChatRequest = JsonSerializer.Serialize(new ChatCompletionAPIRequest { Model = chatModel.Id, @@ -60,8 +62,6 @@ public sealed class ProviderX(ILogger logger) : BaseProvider("https://api.x.ai/v _ => string.Empty, } }).ToList()], - - Seed = chatThread.Seed, // Right now, we only support streaming completions: Stream = true, @@ -80,7 +80,7 @@ public sealed class ProviderX(ILogger logger) : BaseProvider("https://api.x.ai/v return request; } - await foreach (var content in this.StreamChatCompletionInternal("xAI", RequestBuilder, token)) + await foreach (var content in this.StreamChatCompletionInternal("xAI", RequestBuilder, token)) yield return content; } diff --git a/app/MindWork AI Studio/Settings/ChatTemplate.cs b/app/MindWork AI Studio/Settings/ChatTemplate.cs index 02e0061c..38f3623d 100644 --- a/app/MindWork AI Studio/Settings/ChatTemplate.cs +++ b/app/MindWork AI Studio/Settings/ChatTemplate.cs @@ -1,12 +1,29 @@ using AIStudio.Chat; using AIStudio.Tools.PluginSystem; +using Lua; + namespace AIStudio.Settings; -public readonly record struct ChatTemplate(uint Num, string Id, string Name, string SystemPrompt, string PredefinedUserPrompt, List ExampleConversation, bool AllowProfileUsage) +public record ChatTemplate( + uint Num, + string Id, + string Name, + string SystemPrompt, + string PredefinedUserPrompt, + List ExampleConversation, + bool AllowProfileUsage, + bool IsEnterpriseConfiguration = false, + Guid EnterpriseConfigurationPluginId = default) : ConfigurationBaseObject { + public ChatTemplate() : this(0, Guid.Empty.ToString(), string.Empty, string.Empty, string.Empty, [], false) + { + } + private static string TB(string fallbackEN) => I18N.I.T(fallbackEN, typeof(ChatTemplate).Namespace, nameof(ChatTemplate)); + private static readonly ILogger LOGGER = Program.LOGGER_FACTORY.CreateLogger(); + public static readonly ChatTemplate NO_CHAT_TEMPLATE = new() { Name = TB("Use no chat template"), @@ -16,6 +33,8 @@ public readonly record struct ChatTemplate(uint Num, string Id, string Name, str Num = uint.MaxValue, ExampleConversation = [], AllowProfileUsage = true, + EnterpriseConfigurationPluginId = Guid.Empty, + IsEnterpriseConfiguration = false, }; #region Overrides of ValueType @@ -35,4 +54,96 @@ public readonly record struct ChatTemplate(uint Num, string Id, string Name, str return this.SystemPrompt; } + + public static bool TryParseChatTemplateTable(int idx, LuaTable table, Guid configPluginId, out ConfigurationBaseObject template) + { + template = NO_CHAT_TEMPLATE; + if (!table.TryGetValue("Id", out var idValue) || !idValue.TryRead(out var idText) || !Guid.TryParse(idText, out var id)) + { + LOGGER.LogWarning($"The configured chat template {idx} does not contain a valid ID. The ID must be a valid GUID."); + return false; + } + + if (!table.TryGetValue("Name", out var nameValue) || !nameValue.TryRead(out var name)) + { + LOGGER.LogWarning($"The configured chat template {idx} does not contain a valid name."); + return false; + } + + if (!table.TryGetValue("SystemPrompt", out var sysPromptValue) || !sysPromptValue.TryRead(out var systemPrompt)) + { + LOGGER.LogWarning($"The configured chat template {idx} does not contain a valid system prompt."); + return false; + } + + var predefinedUserPrompt = string.Empty; + if (table.TryGetValue("PredefinedUserPrompt", out var preUserValue) && preUserValue.TryRead(out var preUser)) + predefinedUserPrompt = preUser; + + var allowProfileUsage = false; + if (table.TryGetValue("AllowProfileUsage", out var allowProfileValue) && allowProfileValue.TryRead(out var allow)) + allowProfileUsage = allow; + + template = new ChatTemplate + { + Num = 0, + Id = id.ToString(), + Name = name, + SystemPrompt = systemPrompt, + PredefinedUserPrompt = predefinedUserPrompt, + ExampleConversation = ParseExampleConversation(idx, table), + AllowProfileUsage = allowProfileUsage, + IsEnterpriseConfiguration = true, + EnterpriseConfigurationPluginId = configPluginId, + }; + + return true; + } + + private static List ParseExampleConversation(int idx, LuaTable table) + { + var exampleConversation = new List(); + if (!table.TryGetValue("ExampleConversation", out var exConvValue) || !exConvValue.TryRead(out var exConvTable)) + return exampleConversation; + + var numBlocks = exConvTable.ArrayLength; + for (var j = 1; j <= numBlocks; j++) + { + var blockValue = exConvTable[j]; + if (!blockValue.TryRead(out var blockTable)) + { + LOGGER.LogWarning($"The ExampleConversation entry {j} in chat template {idx} is not a valid table."); + continue; + } + + if (!blockTable.TryGetValue("Role", out var roleValue) || !roleValue.TryRead(out var roleText) || !Enum.TryParse(roleText, true, out var parsedRole)) + { + LOGGER.LogWarning($"The ExampleConversation entry {j} in chat template {idx} does not contain a valid role."); + continue; + } + + if (!blockTable.TryGetValue("Content", out var contentValue) || !contentValue.TryRead(out var content)) + { + LOGGER.LogWarning($"The ExampleConversation entry {j} in chat template {idx} does not contain a valid content message."); + continue; + } + + if (string.IsNullOrWhiteSpace(content)) + { + LOGGER.LogWarning($"The ExampleConversation entry {j} in chat template {idx} contains an empty content message."); + continue; + } + + exampleConversation.Add(new ContentBlock + { + Time = DateTimeOffset.UtcNow, + Role = parsedRole, + Content = new ContentText { Text = content }, + ContentType = ContentType.TEXT, + HideFromUser = true, + }); + } + + return exampleConversation; + } } \ No newline at end of file diff --git a/app/MindWork AI Studio/Settings/ConfigMeta.cs b/app/MindWork AI Studio/Settings/ConfigMeta.cs new file mode 100644 index 00000000..f8d50ecc --- /dev/null +++ b/app/MindWork AI Studio/Settings/ConfigMeta.cs @@ -0,0 +1,88 @@ +using System.Linq.Expressions; + +using AIStudio.Settings.DataModel; + +namespace AIStudio.Settings; + +/// +/// Represents configuration metadata for a specific class and property. +/// +/// The class type that contains the configuration property. +/// The type of the configuration property value. +public record ConfigMeta : ConfigMetaBase +{ + public ConfigMeta(Expression> configSelection, Expression> propertyExpression) + { + this.ConfigSelection = configSelection; + this.PropertyExpression = propertyExpression; + } + + /// + /// The expression to select the configuration class from the settings data. + /// + private Expression> ConfigSelection { get; } + + /// + /// The expression to select the property within the configuration class. + /// + private Expression> PropertyExpression { get; } + + /// + /// Indicates whether the configuration is managed by a plugin and is therefore locked. + /// + public bool IsLocked { get; private set; } + + /// + /// The ID of the plugin that manages this configuration. This is set when the configuration is locked. + /// + public Guid MangedByConfigPluginId { get; private set; } + + /// + /// The default value for the configuration property. This is used when resetting the property to its default state. + /// + public required TValue Default { get; init; } + + /// + /// Locks the configuration state, indicating that it is managed by a specific plugin. + /// + /// The ID of the plugin that is managing this configuration. + public void LockManagedState(Guid pluginId) + { + this.IsLocked = true; + this.MangedByConfigPluginId = pluginId; + } + + /// + /// Resets the managed state of the configuration, allowing it to be modified again. + /// This will also reset the property to its default value. + /// + public void ResetManagedState() + { + this.IsLocked = false; + this.MangedByConfigPluginId = Guid.Empty; + this.Reset(); + } + + /// + /// Resets the configuration property to its default value. + /// + public void Reset() + { + var configInstance = this.ConfigSelection.Compile().Invoke(SETTINGS_MANAGER.ConfigurationData); + var memberExpression = this.PropertyExpression.GetMemberExpression(); + if (memberExpression.Member is System.Reflection.PropertyInfo propertyInfo) + propertyInfo.SetValue(configInstance, this.Default); + } + + /// + /// Sets the value of the configuration property to the specified value. + /// + /// The value to set for the configuration property. + public void SetValue(TValue value) + { + var configInstance = this.ConfigSelection.Compile().Invoke(SETTINGS_MANAGER.ConfigurationData); + var memberExpression = this.PropertyExpression.GetMemberExpression(); + if (memberExpression.Member is System.Reflection.PropertyInfo propertyInfo) + propertyInfo.SetValue(configInstance, value); + } +} \ No newline at end of file diff --git a/app/MindWork AI Studio/Settings/ConfigMetaBase.cs b/app/MindWork AI Studio/Settings/ConfigMetaBase.cs new file mode 100644 index 00000000..4ef74e88 --- /dev/null +++ b/app/MindWork AI Studio/Settings/ConfigMetaBase.cs @@ -0,0 +1,6 @@ +namespace AIStudio.Settings; + +public abstract record ConfigMetaBase : IConfig +{ + protected static readonly SettingsManager SETTINGS_MANAGER = Program.SERVICE_PROVIDER.GetRequiredService(); +} \ No newline at end of file diff --git a/app/MindWork AI Studio/Settings/ConfigurationSelectDataFactory.cs b/app/MindWork AI Studio/Settings/ConfigurationSelectDataFactory.cs index d14868fc..5004dc43 100644 --- a/app/MindWork AI Studio/Settings/ConfigurationSelectDataFactory.cs +++ b/app/MindWork AI Studio/Settings/ConfigurationSelectDataFactory.cs @@ -63,13 +63,19 @@ public static class ConfigurationSelectDataFactory yield return new(TB("Enter is sending the input"), SendBehavior.ENTER_IS_SENDING); } - public static IEnumerable> GetUpdateBehaviorData() + public static IEnumerable> GetUpdateIntervalData() { - yield return new(TB("No automatic update checks"), UpdateBehavior.NO_CHECK); - yield return new(TB("Once at startup"), UpdateBehavior.ONCE_STARTUP); - yield return new(TB("Check every hour"), UpdateBehavior.HOURLY); - yield return new(TB("Check every day"), UpdateBehavior.DAILY); - yield return new (TB("Check every week"), UpdateBehavior.WEEKLY); + yield return new(TB("No automatic update checks"), UpdateInterval.NO_CHECK); + yield return new(TB("Once at startup"), UpdateInterval.ONCE_STARTUP); + yield return new(TB("Check every hour"), UpdateInterval.HOURLY); + yield return new(TB("Check every day"), UpdateInterval.DAILY); + yield return new (TB("Check every week"), UpdateInterval.WEEKLY); + } + + public static IEnumerable> GetUpdateBehaviourData() + { + yield return new(TB("Install updates manually"), UpdateInstallation.MANUAL); + yield return new(TB("Install updates automatically"), UpdateInstallation.AUTOMATIC); } public static IEnumerable> GetWorkspaceStorageBehaviorData() diff --git a/app/MindWork AI Studio/Settings/DataModel/Data.cs b/app/MindWork AI Studio/Settings/DataModel/Data.cs index 695d2ad8..0e825aa0 100644 --- a/app/MindWork AI Studio/Settings/DataModel/Data.cs +++ b/app/MindWork AI Studio/Settings/DataModel/Data.cs @@ -71,7 +71,7 @@ public sealed class Data /// public uint NextChatTemplateNum { get; set; } = 1; - public DataApp App { get; init; } = new(); + public DataApp App { get; init; } = new(x => x.App); public DataChat Chat { get; init; } = new(); diff --git a/app/MindWork AI Studio/Settings/DataModel/DataApp.cs b/app/MindWork AI Studio/Settings/DataModel/DataApp.cs index e189cbbd..67be8b9b 100644 --- a/app/MindWork AI Studio/Settings/DataModel/DataApp.cs +++ b/app/MindWork AI Studio/Settings/DataModel/DataApp.cs @@ -1,7 +1,16 @@ +using System.Linq.Expressions; + namespace AIStudio.Settings.DataModel; -public sealed class DataApp +public sealed class DataApp(Expression>? configSelection = null) { + /// + /// The default constructor for the JSON deserializer. + /// + public DataApp() : this(null) + { + } + /// /// The language behavior. /// @@ -21,7 +30,7 @@ public sealed class DataApp /// Should we save energy? When true, we will update content streamed /// from the server, i.e., AI, less frequently. /// - public bool IsSavingEnergy { get; set; } + public bool IsSavingEnergy { get; set; } = ManagedConfiguration.Register(configSelection, n => n.IsSavingEnergy, false); /// /// Should we enable spellchecking for all input fields? @@ -31,7 +40,12 @@ public sealed class DataApp /// /// If and when we should look for updates. /// - public UpdateBehavior UpdateBehavior { get; set; } = UpdateBehavior.HOURLY; + public UpdateInterval UpdateInterval { get; set; } = ManagedConfiguration.Register(configSelection, n => n.UpdateInterval, UpdateInterval.HOURLY); + + /// + /// How updates should be installed. + /// + public UpdateInstallation UpdateInstallation { get; set; } = ManagedConfiguration.Register(configSelection, n => n.UpdateInstallation, UpdateInstallation.MANUAL); /// /// The navigation behavior. @@ -41,7 +55,7 @@ public sealed class DataApp /// /// The visibility setting for previews features. /// - public PreviewVisibility PreviewVisibility { get; set; } = PreviewVisibility.NONE; + public PreviewVisibility PreviewVisibility { get; set; } = ManagedConfiguration.Register(configSelection, n => n.PreviewVisibility, PreviewVisibility.NONE); /// /// The enabled preview features. @@ -58,9 +72,13 @@ public sealed class DataApp /// public string PreselectedProfile { get; set; } = string.Empty; - /// /// Should we preselect a chat template for the entire app? /// public string PreselectedChatTemplate { get; set; } = string.Empty; + + /// + /// Should the user be allowed to add providers? + /// + public bool AllowUserToAddProvider { get; set; } = ManagedConfiguration.Register(configSelection, n => n.AllowUserToAddProvider, true); } \ No newline at end of file diff --git a/app/MindWork AI Studio/Settings/DataModel/DataTextSummarizer.cs b/app/MindWork AI Studio/Settings/DataModel/DataTextSummarizer.cs index c4375515..b47a5800 100644 --- a/app/MindWork AI Studio/Settings/DataModel/DataTextSummarizer.cs +++ b/app/MindWork AI Studio/Settings/DataModel/DataTextSummarizer.cs @@ -46,6 +46,11 @@ public sealed class DataTextSummarizer /// public string PreselectedExpertInField { get; set; } = string.Empty; + /// + /// Preselect any important aspects that the summarizer should take into account? + /// + public string PreselectedImportantAspects { get; set; } = string.Empty; + /// /// The minimum confidence level required for a provider to be considered. /// diff --git a/app/MindWork AI Studio/Settings/DataModel/PreviousModels/DataV1V3.cs b/app/MindWork AI Studio/Settings/DataModel/PreviousModels/DataV1V3.cs index 0b1c7883..88a8a3d2 100644 --- a/app/MindWork AI Studio/Settings/DataModel/PreviousModels/DataV1V3.cs +++ b/app/MindWork AI Studio/Settings/DataModel/PreviousModels/DataV1V3.cs @@ -41,7 +41,7 @@ public sealed class DataV1V3 /// /// If and when we should look for updates. /// - public UpdateBehavior UpdateBehavior { get; set; } = UpdateBehavior.ONCE_STARTUP; + public UpdateInterval UpdateInterval { get; set; } = UpdateInterval.ONCE_STARTUP; /// /// The navigation behavior. diff --git a/app/MindWork AI Studio/Settings/DataModel/PreviousModels/DataV4.cs b/app/MindWork AI Studio/Settings/DataModel/PreviousModels/DataV4.cs index ecaebe8a..61555a3c 100644 --- a/app/MindWork AI Studio/Settings/DataModel/PreviousModels/DataV4.cs +++ b/app/MindWork AI Studio/Settings/DataModel/PreviousModels/DataV4.cs @@ -33,7 +33,7 @@ public sealed class DataV4 /// public uint NextProfileNum { get; set; } = 1; - public DataApp App { get; init; } = new(); + public DataApp App { get; init; } = new(x => x.App); public DataChat Chat { get; init; } = new(); diff --git a/app/MindWork AI Studio/Settings/DataModel/UpdateInstallation.cs b/app/MindWork AI Studio/Settings/DataModel/UpdateInstallation.cs new file mode 100644 index 00000000..50d2a296 --- /dev/null +++ b/app/MindWork AI Studio/Settings/DataModel/UpdateInstallation.cs @@ -0,0 +1,7 @@ +namespace AIStudio.Settings.DataModel; + +public enum UpdateInstallation +{ + MANUAL, + AUTOMATIC, +} diff --git a/app/MindWork AI Studio/Settings/DataModel/UpdateBehavior.cs b/app/MindWork AI Studio/Settings/DataModel/UpdateInterval.cs similarity index 79% rename from app/MindWork AI Studio/Settings/DataModel/UpdateBehavior.cs rename to app/MindWork AI Studio/Settings/DataModel/UpdateInterval.cs index 0b82604f..a7a3ec8c 100644 --- a/app/MindWork AI Studio/Settings/DataModel/UpdateBehavior.cs +++ b/app/MindWork AI Studio/Settings/DataModel/UpdateInterval.cs @@ -1,6 +1,6 @@ namespace AIStudio.Settings.DataModel; -public enum UpdateBehavior +public enum UpdateInterval { NO_CHECK, ONCE_STARTUP, diff --git a/app/MindWork AI Studio/Settings/IConfig.cs b/app/MindWork AI Studio/Settings/IConfig.cs new file mode 100644 index 00000000..c9db8958 --- /dev/null +++ b/app/MindWork AI Studio/Settings/IConfig.cs @@ -0,0 +1,3 @@ +namespace AIStudio.Settings; + +public interface IConfig; \ No newline at end of file diff --git a/app/MindWork AI Studio/Settings/ManagedConfiguration.cs b/app/MindWork AI Studio/Settings/ManagedConfiguration.cs new file mode 100644 index 00000000..3767cd66 --- /dev/null +++ b/app/MindWork AI Studio/Settings/ManagedConfiguration.cs @@ -0,0 +1,198 @@ +using System.Collections.Concurrent; +using System.Linq.Expressions; + +using AIStudio.Settings.DataModel; +using AIStudio.Tools.PluginSystem; + +using Lua; + +namespace AIStudio.Settings; + +public static class ManagedConfiguration +{ + private static readonly ConcurrentDictionary METADATA = new(); + + /// + /// Registers a configuration setting with a default value. + /// + /// + /// When called from the JSON deserializer, the configSelection parameter will be null. + /// In this case, the method will return the default value without registering the setting. + /// + /// The expression to select the configuration class. + /// The expression to select the property within the configuration class. + /// The default value to use when the setting is not configured. + /// The type of the configuration class. + /// The type of the property within the configuration class. + /// The default value. + public static TValue Register(Expression>? configSelection, Expression> propertyExpression, TValue defaultValue) + { + // When called from the JSON deserializer by using the standard constructor, + // we ignore the register call and return the default value: + if(configSelection is null) + return defaultValue; + + var configPath = Path(configSelection, propertyExpression); + + // If the metadata already exists for this configuration path, we return the default value: + if (METADATA.ContainsKey(configPath)) + return defaultValue; + + METADATA[configPath] = new ConfigMeta(configSelection, propertyExpression) + { + Default = defaultValue, + }; + + return defaultValue; + } + + /// + /// Attempts to retrieve the configuration metadata for a given configuration selection and property expression. + /// + /// + /// When no configuration metadata is found, it returns a NoConfig instance with the default value set to default(TValue). + /// This allows the caller to handle the absence of configuration gracefully. In such cases, the return value of the method will be false. + /// + /// The expression to select the configuration class. + /// The expression to select the property within the configuration class. + /// The output parameter that will hold the configuration metadata if found. + /// The type of the configuration class. + /// The type of the property within the configuration class. + /// True if the configuration metadata was found, otherwise false. + public static bool TryGet(Expression> configSelection, Expression> propertyExpression, out ConfigMeta configMeta) + { + var configPath = Path(configSelection, propertyExpression); + if (METADATA.TryGetValue(configPath, out var value) && value is ConfigMeta meta) + { + configMeta = meta; + return true; + } + + configMeta = new NoConfig(configSelection, propertyExpression) + { + Default = default!, + }; + + return false; + } + + /// + /// Attempts to process the configuration settings from a Lua table. + /// + /// + /// When the configuration is successfully processed, it updates the configuration metadata with the configured value. + /// Furthermore, it locks the managed state of the configuration metadata to the provided configuration plugin ID. + /// The setting's value is set to the configured value. + /// + /// The ID of the related configuration plugin. + /// The Lua table containing the settings to process. + /// The expression to select the configuration class. + /// The expression to select the property within the configuration class. + /// When true, the method will not apply any changes, but only check if the configuration can be read. + /// The type of the configuration class. + /// The type of the property within the configuration class. + /// True when the configuration was successfully processed, otherwise false. + public static bool TryProcessConfiguration(Expression> configSelection, Expression> propertyExpression, Guid configPluginId, LuaTable settings, bool dryRun) + { + if(!TryGet(configSelection, propertyExpression, out var configMeta)) + return false; + + var (configuredValue, successful) = configMeta.Default switch + { + Enum => settings.TryGetValue(SettingsManager.ToSettingName(propertyExpression), out var configuredEnumValue) && configuredEnumValue.TryRead(out var configuredEnumText) && Enum.TryParse(typeof(TValue), configuredEnumText, true, out var configuredEnum) ? ((TValue)configuredEnum, true) : (configMeta.Default, false), + Guid => settings.TryGetValue(SettingsManager.ToSettingName(propertyExpression), out var configuredGuidValue) && configuredGuidValue.TryRead(out var configuredGuidText) && Guid.TryParse(configuredGuidText, out var configuredGuid) ? ((TValue)(object)configuredGuid, true) : (configMeta.Default, false), + + string => settings.TryGetValue(SettingsManager.ToSettingName(propertyExpression), out var configuredTextValue) && configuredTextValue.TryRead(out var configuredText) ? ((TValue)(object)configuredText, true) : (configMeta.Default, false), + bool => settings.TryGetValue(SettingsManager.ToSettingName(propertyExpression), out var configuredBoolValue) && configuredBoolValue.TryRead(out var configuredState) ? ((TValue)(object)configuredState, true) : (configMeta.Default, false), + + int => settings.TryGetValue(SettingsManager.ToSettingName(propertyExpression), out var configuredIntValue) && configuredIntValue.TryRead(out var configuredInt) ? ((TValue)(object)configuredInt, true) : (configMeta.Default, false), + double => settings.TryGetValue(SettingsManager.ToSettingName(propertyExpression), out var configuredDoubleValue) && configuredDoubleValue.TryRead(out var configuredDouble) ? ((TValue)(object)configuredDouble, true) : (configMeta.Default, false), + float => settings.TryGetValue(SettingsManager.ToSettingName(propertyExpression), out var configuredFloatValue) && configuredFloatValue.TryRead(out var configuredFloat) ? ((TValue)(object)configuredFloat, true) : (configMeta.Default, false), + + _ => (configMeta.Default, false), + }; + + if(dryRun) + return successful; + + switch (successful) + { + case true: + // + // Case: the setting was configured, and we could read the value successfully. + // + configMeta.SetValue(configuredValue); + configMeta.LockManagedState(configPluginId); + break; + + case false when configMeta.IsLocked && configMeta.MangedByConfigPluginId == configPluginId: + // + // Case: the setting was configured previously, but we could not read the value successfully. + // This happens when the setting was removed from the configuration plugin. We handle that + // case only when the setting was locked and managed by the same configuration plugin. + // + // The other case, when the setting was locked and managed by a different configuration plugin, + // is handled by the IsConfigurationLeftOver method, which checks if the configuration plugin + // is still available. If it is not available, it resets the managed state of the + // configuration setting, allowing it to be reconfigured by a different plugin or left unchanged. + // + configMeta.ResetManagedState(); + break; + + case false: + // + // Case: the setting was not configured, or we could not read the value successfully. + // We do not change the setting, and it remains at whatever value it had before. + // + break; + } + + return successful; + } + + /// + /// Checks if a configuration setting is left over from a configuration plugin that is no longer available. + /// If the configuration setting is locked and managed by a configuration plugin that is not available, + /// it resets the managed state of the configuration setting and returns true. + /// Otherwise, it returns false. + /// + /// The expression to select the configuration class. + /// The expression to select the property within the configuration class. + /// The collection of available plugins to check against. + /// The type of the configuration class. + /// The type of the property within the configuration class. + /// True if the configuration setting is left over and was reset, otherwise false. + public static bool IsConfigurationLeftOver(Expression> configSelection, Expression> propertyExpression, IEnumerable availablePlugins) + { + if (!TryGet(configSelection, propertyExpression, out var configMeta)) + return false; + + if(configMeta.MangedByConfigPluginId == Guid.Empty || !configMeta.IsLocked) + return false; + + // Check if the configuration plugin ID is valid against the available plugin IDs: + var plugin = availablePlugins.FirstOrDefault(x => x.Id == configMeta.MangedByConfigPluginId); + if (plugin is null) + { + // Remove the locked state: + configMeta.ResetManagedState(); + return true; + } + + return false; + } + + private static string Path(Expression> configSelection, Expression> propertyExpression) + { + var className = typeof(TClass).Name; + + var memberExpressionConfig = configSelection.GetMemberExpression(); + var configName = memberExpressionConfig.Member.Name; + + var memberExpressionProperty = propertyExpression.GetMemberExpression(); + var propertyName = memberExpressionProperty.Member.Name; + + var configPath = $"{configName}.{className}.{propertyName}"; + return configPath; + } +} \ No newline at end of file diff --git a/app/MindWork AI Studio/Settings/NoConfig.cs b/app/MindWork AI Studio/Settings/NoConfig.cs new file mode 100644 index 00000000..79a1f9dd --- /dev/null +++ b/app/MindWork AI Studio/Settings/NoConfig.cs @@ -0,0 +1,12 @@ +using System.Linq.Expressions; + +using AIStudio.Settings.DataModel; + +namespace AIStudio.Settings; + +public sealed record NoConfig : ConfigMeta +{ + public NoConfig(Expression> configSelection, Expression> propertyExpression) : base(configSelection, propertyExpression) + { + } +} \ No newline at end of file diff --git a/app/MindWork AI Studio/Settings/Provider.cs b/app/MindWork AI Studio/Settings/Provider.cs index 4cef58df..94a1a747 100644 --- a/app/MindWork AI Studio/Settings/Provider.cs +++ b/app/MindWork AI Studio/Settings/Provider.cs @@ -2,6 +2,10 @@ using System.Text.Json.Serialization; using AIStudio.Provider; using AIStudio.Provider.HuggingFace; +using AIStudio.Tools.PluginSystem; + +using Lua; + using Host = AIStudio.Provider.SelfHosted.Host; namespace AIStudio.Settings; @@ -16,7 +20,7 @@ namespace AIStudio.Settings; /// Whether the provider is self-hosted. /// The hostname of the provider. Useful for self-hosted providers. /// The LLM model to use for chat. -public readonly record struct Provider( +public sealed record Provider( uint Num, string Id, string InstanceName, @@ -27,8 +31,24 @@ public readonly record struct Provider( Guid EnterpriseConfigurationPluginId = default, string Hostname = "http://localhost:1234", Host Host = Host.NONE, - HFInferenceProvider HFInferenceProvider = HFInferenceProvider.NONE) : ISecretId + HFInferenceProvider HFInferenceProvider = HFInferenceProvider.NONE) : ConfigurationBaseObject, ISecretId { + private static readonly ILogger LOGGER = Program.LOGGER_FACTORY.CreateLogger(); + + public static readonly Provider NONE = new(); + + public Provider() : this( + 0, + Guid.Empty.ToString(), + string.Empty, + LLMProviders.NONE, + default, + false, + false, + Guid.Empty) + { + } + #region Overrides of ValueType /// @@ -57,4 +77,95 @@ public readonly record struct Provider( public string SecretName => this.InstanceName; #endregion + + #region Implementation of IConfigurationObject + + public override string Name + { + get => this.InstanceName; + init => this.InstanceName = value; + } + + #endregion + + public static bool TryParseProviderTable(int idx, LuaTable table, Guid configPluginId, out ConfigurationBaseObject provider) + { + provider = NONE; + if (!table.TryGetValue("Id", out var idValue) || !idValue.TryRead(out var idText) || !Guid.TryParse(idText, out var id)) + { + LOGGER.LogWarning($"The configured provider {idx} does not contain a valid ID. The ID must be a valid GUID."); + return false; + } + + if (!table.TryGetValue("InstanceName", out var instanceNameValue) || !instanceNameValue.TryRead(out var instanceName)) + { + LOGGER.LogWarning($"The configured provider {idx} does not contain a valid instance name."); + return false; + } + + if (!table.TryGetValue("UsedLLMProvider", out var usedLLMProviderValue) || !usedLLMProviderValue.TryRead(out var usedLLMProviderText) || !Enum.TryParse(usedLLMProviderText, true, out var usedLLMProvider)) + { + LOGGER.LogWarning($"The configured provider {idx} does not contain a valid LLM provider enum value."); + return false; + } + + if (!table.TryGetValue("Host", out var hostValue) || !hostValue.TryRead(out var hostText) || !Enum.TryParse(hostText, true, out var host)) + { + LOGGER.LogWarning($"The configured provider {idx} does not contain a valid host enum value."); + return false; + } + + if (!table.TryGetValue("Hostname", out var hostnameValue) || !hostnameValue.TryRead(out var hostname)) + { + LOGGER.LogWarning($"The configured provider {idx} does not contain a valid hostname."); + return false; + } + + if (!table.TryGetValue("Model", out var modelValue) || !modelValue.TryRead(out var modelTable)) + { + LOGGER.LogWarning($"The configured provider {idx} does not contain a valid model table."); + return false; + } + + if (!TryReadModelTable(idx, modelTable, out var model)) + { + LOGGER.LogWarning($"The configured provider {idx} does not contain a valid model configuration."); + return false; + } + + provider = new Provider + { + Num = 0, + Id = id.ToString(), + InstanceName = instanceName, + UsedLLMProvider = usedLLMProvider, + Model = model, + IsSelfHosted = usedLLMProvider is LLMProviders.SELF_HOSTED, + IsEnterpriseConfiguration = true, + EnterpriseConfigurationPluginId = configPluginId, + Hostname = hostname, + Host = host + }; + + return true; + } + + private static bool TryReadModelTable(int idx, LuaTable table, out Model model) + { + model = default; + if (!table.TryGetValue("Id", out var idValue) || !idValue.TryRead(out var id)) + { + LOGGER.LogWarning($"The configured provider {idx} does not contain a valid model ID."); + return false; + } + + if (!table.TryGetValue("DisplayName", out var displayNameValue) || !displayNameValue.TryRead(out var displayName)) + { + LOGGER.LogWarning($"The configured provider {idx} does not contain a valid model display name."); + return false; + } + + model = new(id, displayName); + return true; + } } \ No newline at end of file diff --git a/app/MindWork AI Studio/Settings/SettingsLocker.cs b/app/MindWork AI Studio/Settings/SettingsLocker.cs deleted file mode 100644 index b23e1085..00000000 --- a/app/MindWork AI Studio/Settings/SettingsLocker.cs +++ /dev/null @@ -1,78 +0,0 @@ -using System.Linq.Expressions; - -namespace AIStudio.Settings; - -public sealed class SettingsLocker -{ - private static readonly ILogger LOGGER = Program.LOGGER_FACTORY.CreateLogger(); - private readonly Dictionary> lockedProperties = new(); - - public void Register(Expression> propertyExpression, Guid configurationPluginId) - { - var memberExpression = GetMemberExpression(propertyExpression); - var className = typeof(T).Name; - var propertyName = memberExpression.Member.Name; - - if (!this.lockedProperties.ContainsKey(className)) - this.lockedProperties[className] = []; - - this.lockedProperties[className].TryAdd(propertyName, configurationPluginId); - } - - public void Remove(Expression> propertyExpression) - { - var memberExpression = GetMemberExpression(propertyExpression); - var className = typeof(T).Name; - var propertyName = memberExpression.Member.Name; - - if (this.lockedProperties.TryGetValue(className, out var props)) - { - if (props.Remove(propertyName)) - { - // If the property was removed, check if the class has no more locked properties: - if (props.Count == 0) - this.lockedProperties.Remove(className); - } - } - } - - public Guid GetConfigurationPluginId(Expression> propertyExpression) - { - var memberExpression = GetMemberExpression(propertyExpression); - var className = typeof(T).Name; - var propertyName = memberExpression.Member.Name; - - if (this.lockedProperties.TryGetValue(className, out var props) && props.TryGetValue(propertyName, out var configurationPluginId)) - return configurationPluginId; - - // No configuration plugin ID found for this property: - return Guid.Empty; - } - - public bool IsLocked(Expression> propertyExpression) - { - var memberExpression = GetMemberExpression(propertyExpression); - var className = typeof(T).Name; - var propertyName = memberExpression.Member.Name; - - return this.lockedProperties.TryGetValue(className, out var props) && props.ContainsKey(propertyName); - } - - private static MemberExpression GetMemberExpression(Expression> expression) - { - switch (expression.Body) - { - // Case for value types, which are wrapped in UnaryExpression: - case UnaryExpression { NodeType: ExpressionType.Convert } unaryExpression: - return (MemberExpression)unaryExpression.Operand; - - // Case for reference types, which are directly MemberExpressions: - case MemberExpression memberExpression: - return memberExpression; - - default: - LOGGER.LogError($"Expression '{expression}' is not a valid property expression."); - throw new ArgumentException($"Expression '{expression}' is not a valid property expression.", nameof(expression)); - } - } -} \ No newline at end of file diff --git a/app/MindWork AI Studio/Settings/SettingsManager.cs b/app/MindWork AI Studio/Settings/SettingsManager.cs index cb376479..54e6f1b3 100644 --- a/app/MindWork AI Studio/Settings/SettingsManager.cs +++ b/app/MindWork AI Studio/Settings/SettingsManager.cs @@ -215,18 +215,18 @@ public sealed class SettingsManager return this.ConfigurationData.Providers[0]; // Is there a current provider with a sufficiently high confidence level? - Provider currentProvider = default; + var currentProvider = Provider.NONE; if (currentProviderId is not null && !string.IsNullOrWhiteSpace(currentProviderId)) { var currentProviderProbe = this.ConfigurationData.Providers.FirstOrDefault(x => x.Id == currentProviderId); - if (currentProviderProbe.UsedLLMProvider.GetConfidence(this).Level >= minimumLevel) + if (currentProviderProbe is not null && currentProviderProbe.UsedLLMProvider.GetConfidence(this).Level >= minimumLevel) currentProvider = currentProviderProbe; } // Is there a component-preselected provider with a sufficiently high confidence level? - Provider preselectedProvider = default; + var preselectedProvider = Provider.NONE; var preselectedProviderProbe = component.PreselectedProvider(this); - if(preselectedProviderProbe != default && preselectedProviderProbe.UsedLLMProvider.GetConfidence(this).Level >= minimumLevel) + if(preselectedProviderProbe != Provider.NONE && preselectedProviderProbe.UsedLLMProvider.GetConfidence(this).Level >= minimumLevel) preselectedProvider = preselectedProviderProbe; // @@ -234,14 +234,14 @@ public sealed class SettingsManager // and the preselected provider is available and has a confidence level // that is high enough. // - if(usePreselectionBeforeCurrentProvider && preselectedProvider != default) + if(usePreselectionBeforeCurrentProvider && preselectedProvider != Provider.NONE) return preselectedProvider; // // Case: The current provider is available and has a confidence level that is // high enough. // - if(currentProvider != default) + if(currentProvider != Provider.NONE) return currentProvider; // @@ -250,11 +250,11 @@ public sealed class SettingsManager // level that is high enough. The preselected provider is available and // has a confidence level that is high enough. // - if(preselectedProvider != default) + if(preselectedProvider != Provider.NONE) return preselectedProvider; // When there is an app-wide preselected provider, and it has a confidence level that is high enough, we return it: - return this.ConfigurationData.Providers.FirstOrDefault(x => x.Id == this.ConfigurationData.App.PreselectedProvider && x.UsedLLMProvider.GetConfidence(this).Level >= minimumLevel); + return this.ConfigurationData.Providers.FirstOrDefault(x => x.Id == this.ConfigurationData.App.PreselectedProvider && x.UsedLLMProvider.GetConfidence(this).Level >= minimumLevel) ?? Provider.NONE; } public Profile GetPreselectedProfile(Tools.Components component) @@ -270,11 +270,11 @@ public sealed class SettingsManager public ChatTemplate GetPreselectedChatTemplate(Tools.Components component) { var preselection = component.PreselectedChatTemplate(this); - if (preselection != default) + if (preselection != ChatTemplate.NO_CHAT_TEMPLATE) return preselection; preselection = this.ConfigurationData.ChatTemplates.FirstOrDefault(x => x.Id == this.ConfigurationData.App.PreselectedChatTemplate); - return preselection != default ? preselection : ChatTemplate.NO_CHAT_TEMPLATE; + return preselection ?? ChatTemplate.NO_CHAT_TEMPLATE; } public ConfidenceLevel GetConfiguredConfidenceLevel(LLMProviders llmProvider) @@ -349,7 +349,7 @@ public sealed class SettingsManager } } - public static string ToSettingName(Expression> propertyExpression) + public static string ToSettingName(Expression> propertyExpression) { MemberExpression? memberExpr; @@ -363,6 +363,6 @@ public sealed class SettingsManager throw new ArgumentException("Expression must be a property access", nameof(propertyExpression)); // Return the full name of the property, including the class name: - return $"{typeof(T).Name}.{memberExpr.Member.Name}"; + return $"{typeof(TIn).Name}.{memberExpr.Member.Name}"; } } \ No newline at end of file diff --git a/app/MindWork AI Studio/Settings/SettingsMigrations.cs b/app/MindWork AI Studio/Settings/SettingsMigrations.cs index 98482ceb..e5041817 100644 --- a/app/MindWork AI Studio/Settings/SettingsMigrations.cs +++ b/app/MindWork AI Studio/Settings/SettingsMigrations.cs @@ -90,7 +90,7 @@ public static class SettingsMigrations IsSavingEnergy = previousData.IsSavingEnergy, NextProviderNum = previousData.NextProviderNum, ShortcutSendBehavior = previousData.ShortcutSendBehavior, - UpdateBehavior = previousData.UpdateBehavior, + UpdateInterval = previousData.UpdateInterval, }; } @@ -117,7 +117,7 @@ public static class SettingsMigrations IsSavingEnergy = previousData.IsSavingEnergy, NextProviderNum = previousData.NextProviderNum, ShortcutSendBehavior = previousData.ShortcutSendBehavior, - UpdateBehavior = previousData.UpdateBehavior, + UpdateInterval = previousData.UpdateInterval, WorkspaceStorageBehavior = previousData.WorkspaceStorageBehavior, WorkspaceStorageTemporaryMaintenancePolicy = previousData.WorkspaceStorageTemporaryMaintenancePolicy, }; @@ -137,11 +137,11 @@ public static class SettingsMigrations Providers = previousConfig.Providers, NextProviderNum = previousConfig.NextProviderNum, - App = new() + App = new(x => x.App) { EnableSpellchecking = previousConfig.EnableSpellchecking, IsSavingEnergy = previousConfig.IsSavingEnergy, - UpdateBehavior = previousConfig.UpdateBehavior, + UpdateInterval = previousConfig.UpdateInterval, NavigationBehavior = previousConfig.NavigationBehavior, }, diff --git a/app/MindWork AI Studio/Tools/CommonLanguageExtensions.cs b/app/MindWork AI Studio/Tools/CommonLanguageExtensions.cs index d50a478c..02c24f75 100644 --- a/app/MindWork AI Studio/Tools/CommonLanguageExtensions.cs +++ b/app/MindWork AI Studio/Tools/CommonLanguageExtensions.cs @@ -46,7 +46,7 @@ public static class CommonLanguageExtensions public static string PromptSummarizing(this CommonLanguages language, string customLanguage) => language switch { - CommonLanguages.AS_IS => "Do not change the language of the text.", + CommonLanguages.AS_IS => "Use the language the text is written in for the summary.", CommonLanguages.OTHER => $"Output your summary in {customLanguage}.", _ => $"Output your summary in {language.Name()} ({language}).", diff --git a/app/MindWork AI Studio/Tools/ComponentsExtensions.cs b/app/MindWork AI Studio/Tools/ComponentsExtensions.cs index e4bd317c..a2126970 100644 --- a/app/MindWork AI Studio/Tools/ComponentsExtensions.cs +++ b/app/MindWork AI Studio/Tools/ComponentsExtensions.cs @@ -89,32 +89,37 @@ public static class ComponentsExtensions }; [SuppressMessage("Usage", "MWAIS0001:Direct access to `Providers` is not allowed")] - public static AIStudio.Settings.Provider PreselectedProvider(this Components component, SettingsManager settingsManager) => component switch + public static AIStudio.Settings.Provider PreselectedProvider(this Components component, SettingsManager settingsManager) { - Components.GRAMMAR_SPELLING_ASSISTANT => settingsManager.ConfigurationData.GrammarSpelling.PreselectOptions ? settingsManager.ConfigurationData.Providers.FirstOrDefault(x => x.Id == settingsManager.ConfigurationData.GrammarSpelling.PreselectedProvider) : default, - Components.ICON_FINDER_ASSISTANT => settingsManager.ConfigurationData.IconFinder.PreselectOptions ? settingsManager.ConfigurationData.Providers.FirstOrDefault(x => x.Id == settingsManager.ConfigurationData.IconFinder.PreselectedProvider) : default, - Components.REWRITE_ASSISTANT => settingsManager.ConfigurationData.RewriteImprove.PreselectOptions ? settingsManager.ConfigurationData.Providers.FirstOrDefault(x => x.Id == settingsManager.ConfigurationData.RewriteImprove.PreselectedProvider) : default, - Components.TRANSLATION_ASSISTANT => settingsManager.ConfigurationData.Translation.PreselectOptions ? settingsManager.ConfigurationData.Providers.FirstOrDefault(x => x.Id == settingsManager.ConfigurationData.Translation.PreselectedProvider) : default, - Components.AGENDA_ASSISTANT => settingsManager.ConfigurationData.Agenda.PreselectOptions ? settingsManager.ConfigurationData.Providers.FirstOrDefault(x => x.Id == settingsManager.ConfigurationData.Agenda.PreselectedProvider) : default, - Components.CODING_ASSISTANT => settingsManager.ConfigurationData.Coding.PreselectOptions ? settingsManager.ConfigurationData.Providers.FirstOrDefault(x => x.Id == settingsManager.ConfigurationData.Coding.PreselectedProvider) : default, - Components.TEXT_SUMMARIZER_ASSISTANT => settingsManager.ConfigurationData.TextSummarizer.PreselectOptions ? settingsManager.ConfigurationData.Providers.FirstOrDefault(x => x.Id == settingsManager.ConfigurationData.TextSummarizer.PreselectedProvider) : default, - Components.EMAIL_ASSISTANT => settingsManager.ConfigurationData.EMail.PreselectOptions ? settingsManager.ConfigurationData.Providers.FirstOrDefault(x => x.Id == settingsManager.ConfigurationData.EMail.PreselectedProvider) : default, - Components.LEGAL_CHECK_ASSISTANT => settingsManager.ConfigurationData.LegalCheck.PreselectOptions ? settingsManager.ConfigurationData.Providers.FirstOrDefault(x => x.Id == settingsManager.ConfigurationData.LegalCheck.PreselectedProvider) : default, - Components.SYNONYMS_ASSISTANT => settingsManager.ConfigurationData.Synonyms.PreselectOptions ? settingsManager.ConfigurationData.Providers.FirstOrDefault(x => x.Id == settingsManager.ConfigurationData.Synonyms.PreselectedProvider) : default, - Components.MY_TASKS_ASSISTANT => settingsManager.ConfigurationData.MyTasks.PreselectOptions ? settingsManager.ConfigurationData.Providers.FirstOrDefault(x => x.Id == settingsManager.ConfigurationData.MyTasks.PreselectedProvider) : default, - Components.JOB_POSTING_ASSISTANT => settingsManager.ConfigurationData.JobPostings.PreselectOptions ? settingsManager.ConfigurationData.Providers.FirstOrDefault(x => x.Id == settingsManager.ConfigurationData.JobPostings.PreselectedProvider) : default, - Components.BIAS_DAY_ASSISTANT => settingsManager.ConfigurationData.BiasOfTheDay.PreselectOptions ? settingsManager.ConfigurationData.Providers.FirstOrDefault(x => x.Id == settingsManager.ConfigurationData.BiasOfTheDay.PreselectedProvider) : default, - Components.ERI_ASSISTANT => settingsManager.ConfigurationData.ERI.PreselectOptions ? settingsManager.ConfigurationData.Providers.FirstOrDefault(x => x.Id == settingsManager.ConfigurationData.ERI.PreselectedProvider) : default, - Components.I18N_ASSISTANT => settingsManager.ConfigurationData.I18N.PreselectOptions ? settingsManager.ConfigurationData.Providers.FirstOrDefault(x => x.Id == settingsManager.ConfigurationData.I18N.PreselectedProvider) : default, + var preselectedProvider = component switch + { + Components.GRAMMAR_SPELLING_ASSISTANT => settingsManager.ConfigurationData.GrammarSpelling.PreselectOptions ? settingsManager.ConfigurationData.Providers.FirstOrDefault(x => x.Id == settingsManager.ConfigurationData.GrammarSpelling.PreselectedProvider) : null, + Components.ICON_FINDER_ASSISTANT => settingsManager.ConfigurationData.IconFinder.PreselectOptions ? settingsManager.ConfigurationData.Providers.FirstOrDefault(x => x.Id == settingsManager.ConfigurationData.IconFinder.PreselectedProvider) : null, + Components.REWRITE_ASSISTANT => settingsManager.ConfigurationData.RewriteImprove.PreselectOptions ? settingsManager.ConfigurationData.Providers.FirstOrDefault(x => x.Id == settingsManager.ConfigurationData.RewriteImprove.PreselectedProvider) : null, + Components.TRANSLATION_ASSISTANT => settingsManager.ConfigurationData.Translation.PreselectOptions ? settingsManager.ConfigurationData.Providers.FirstOrDefault(x => x.Id == settingsManager.ConfigurationData.Translation.PreselectedProvider) : null, + Components.AGENDA_ASSISTANT => settingsManager.ConfigurationData.Agenda.PreselectOptions ? settingsManager.ConfigurationData.Providers.FirstOrDefault(x => x.Id == settingsManager.ConfigurationData.Agenda.PreselectedProvider) : null, + Components.CODING_ASSISTANT => settingsManager.ConfigurationData.Coding.PreselectOptions ? settingsManager.ConfigurationData.Providers.FirstOrDefault(x => x.Id == settingsManager.ConfigurationData.Coding.PreselectedProvider) : null, + Components.TEXT_SUMMARIZER_ASSISTANT => settingsManager.ConfigurationData.TextSummarizer.PreselectOptions ? settingsManager.ConfigurationData.Providers.FirstOrDefault(x => x.Id == settingsManager.ConfigurationData.TextSummarizer.PreselectedProvider) : null, + Components.EMAIL_ASSISTANT => settingsManager.ConfigurationData.EMail.PreselectOptions ? settingsManager.ConfigurationData.Providers.FirstOrDefault(x => x.Id == settingsManager.ConfigurationData.EMail.PreselectedProvider) : null, + Components.LEGAL_CHECK_ASSISTANT => settingsManager.ConfigurationData.LegalCheck.PreselectOptions ? settingsManager.ConfigurationData.Providers.FirstOrDefault(x => x.Id == settingsManager.ConfigurationData.LegalCheck.PreselectedProvider) : null, + Components.SYNONYMS_ASSISTANT => settingsManager.ConfigurationData.Synonyms.PreselectOptions ? settingsManager.ConfigurationData.Providers.FirstOrDefault(x => x.Id == settingsManager.ConfigurationData.Synonyms.PreselectedProvider) : null, + Components.MY_TASKS_ASSISTANT => settingsManager.ConfigurationData.MyTasks.PreselectOptions ? settingsManager.ConfigurationData.Providers.FirstOrDefault(x => x.Id == settingsManager.ConfigurationData.MyTasks.PreselectedProvider) : null, + Components.JOB_POSTING_ASSISTANT => settingsManager.ConfigurationData.JobPostings.PreselectOptions ? settingsManager.ConfigurationData.Providers.FirstOrDefault(x => x.Id == settingsManager.ConfigurationData.JobPostings.PreselectedProvider) : null, + Components.BIAS_DAY_ASSISTANT => settingsManager.ConfigurationData.BiasOfTheDay.PreselectOptions ? settingsManager.ConfigurationData.Providers.FirstOrDefault(x => x.Id == settingsManager.ConfigurationData.BiasOfTheDay.PreselectedProvider) : null, + Components.ERI_ASSISTANT => settingsManager.ConfigurationData.ERI.PreselectOptions ? settingsManager.ConfigurationData.Providers.FirstOrDefault(x => x.Id == settingsManager.ConfigurationData.ERI.PreselectedProvider) : null, + Components.I18N_ASSISTANT => settingsManager.ConfigurationData.I18N.PreselectOptions ? settingsManager.ConfigurationData.Providers.FirstOrDefault(x => x.Id == settingsManager.ConfigurationData.I18N.PreselectedProvider) : null, - Components.CHAT => settingsManager.ConfigurationData.Chat.PreselectOptions ? settingsManager.ConfigurationData.Providers.FirstOrDefault(x => x.Id == settingsManager.ConfigurationData.Chat.PreselectedProvider) : default, + Components.CHAT => settingsManager.ConfigurationData.Chat.PreselectOptions ? settingsManager.ConfigurationData.Providers.FirstOrDefault(x => x.Id == settingsManager.ConfigurationData.Chat.PreselectedProvider) : null, + + Components.AGENT_TEXT_CONTENT_CLEANER => settingsManager.ConfigurationData.TextContentCleaner.PreselectAgentOptions ? settingsManager.ConfigurationData.Providers.FirstOrDefault(x => x.Id == settingsManager.ConfigurationData.TextContentCleaner.PreselectedAgentProvider) : null, + Components.AGENT_DATA_SOURCE_SELECTION => settingsManager.ConfigurationData.AgentDataSourceSelection.PreselectAgentOptions ? settingsManager.ConfigurationData.Providers.FirstOrDefault(x => x.Id == settingsManager.ConfigurationData.AgentDataSourceSelection.PreselectedAgentProvider) : null, + Components.AGENT_RETRIEVAL_CONTEXT_VALIDATION => settingsManager.ConfigurationData.AgentRetrievalContextValidation.PreselectAgentOptions ? settingsManager.ConfigurationData.Providers.FirstOrDefault(x => x.Id == settingsManager.ConfigurationData.AgentRetrievalContextValidation.PreselectedAgentProvider) : null, + + _ => Settings.Provider.NONE, + }; - Components.AGENT_TEXT_CONTENT_CLEANER => settingsManager.ConfigurationData.TextContentCleaner.PreselectAgentOptions ? settingsManager.ConfigurationData.Providers.FirstOrDefault(x => x.Id == settingsManager.ConfigurationData.TextContentCleaner.PreselectedAgentProvider) : default, - Components.AGENT_DATA_SOURCE_SELECTION => settingsManager.ConfigurationData.AgentDataSourceSelection.PreselectAgentOptions ? settingsManager.ConfigurationData.Providers.FirstOrDefault(x => x.Id == settingsManager.ConfigurationData.AgentDataSourceSelection.PreselectedAgentProvider) : default, - Components.AGENT_RETRIEVAL_CONTEXT_VALIDATION => settingsManager.ConfigurationData.AgentRetrievalContextValidation.PreselectAgentOptions ? settingsManager.ConfigurationData.Providers.FirstOrDefault(x => x.Id == settingsManager.ConfigurationData.AgentRetrievalContextValidation.PreselectedAgentProvider) : default, - - _ => default, - }; + return preselectedProvider ?? Settings.Provider.NONE; + } public static Profile PreselectedProfile(this Components component, SettingsManager settingsManager) => component switch { @@ -133,8 +138,8 @@ public static class ComponentsExtensions public static ChatTemplate PreselectedChatTemplate(this Components component, SettingsManager settingsManager) => component switch { - Components.CHAT => settingsManager.ConfigurationData.Chat.PreselectOptions ? settingsManager.ConfigurationData.ChatTemplates.FirstOrDefault(x => x.Id == settingsManager.ConfigurationData.Chat.PreselectedChatTemplate) : default, + Components.CHAT => settingsManager.ConfigurationData.Chat.PreselectOptions ? settingsManager.ConfigurationData.ChatTemplates.FirstOrDefault(x => x.Id == settingsManager.ConfigurationData.Chat.PreselectedChatTemplate) ?? ChatTemplate.NO_CHAT_TEMPLATE : ChatTemplate.NO_CHAT_TEMPLATE, - _ => default, + _ => ChatTemplate.NO_CHAT_TEMPLATE, }; } \ No newline at end of file diff --git a/app/MindWork AI Studio/Tools/Event.cs b/app/MindWork AI Studio/Tools/Event.cs index fc8ca8e3..fcf32604 100644 --- a/app/MindWork AI Studio/Tools/Event.cs +++ b/app/MindWork AI Studio/Tools/Event.cs @@ -18,6 +18,7 @@ public enum Event // Update events: USER_SEARCH_FOR_UPDATE, UPDATE_AVAILABLE, + INSTALL_UPDATE, // Chat events: HAS_CHAT_UNSAVED_CHANGES, diff --git a/app/MindWork AI Studio/Tools/ExpressionExtensions.cs b/app/MindWork AI Studio/Tools/ExpressionExtensions.cs new file mode 100644 index 00000000..bb57fad3 --- /dev/null +++ b/app/MindWork AI Studio/Tools/ExpressionExtensions.cs @@ -0,0 +1,96 @@ +using System.Linq.Expressions; +using System.Numerics; +using System.Reflection; + +namespace AIStudio.Tools; + +public static class ExpressionExtensions +{ + private static readonly ILogger LOGGER = Program.LOGGER_FACTORY.CreateLogger(typeof(ExpressionExtensions)); + + /// + /// Extracts the member expression from a given lambda expression representing a property. + /// + /// A lambda expression specifying the property for which the member expression is to be extracted. + /// The lambda expression body must represent member access. + /// The type of the object containing the property referenced in the lambda expression. + /// The type of the property being accessed in the lambda expression. + /// The member expression that represents the property access. + /// Thrown if the provided lambda expression does not represent a valid property expression. + public static MemberExpression GetMemberExpression(this Expression> expression) + { + switch (expression.Body) + { + // Case for value types, which are wrapped in UnaryExpression: + case UnaryExpression { NodeType: ExpressionType.Convert } unaryExpression: + return (MemberExpression)unaryExpression.Operand; + + // Case for reference types, which are directly MemberExpressions: + case MemberExpression memberExpression: + return memberExpression; + + default: + LOGGER.LogError($"Expression '{expression}' is not a valid property expression."); + throw new ArgumentException($"Expression '{expression}' is not a valid property expression.", nameof(expression)); + } + } + + /// + /// Attempts to increment the value of an uint property for a specified object using a + /// provided expression. + /// + /// An expression representing the property to be incremented. The property + /// must be of type uint and belong to the provided object. + /// The object that contains the property referenced by the expression. + /// The type of increment operation to perform (e.g., prefix or postfix). + /// The type of the object that contains the property to be incremented. + /// The type of the property to be incremented. + /// An IncrementResult object containing the result of the increment operation. + public static IncrementResult TryIncrement(this Expression> expression, TIn data, IncrementType type) where TOut : IBinaryInteger + { + // Ensure that the expression body is a member expression: + if (expression.Body is not MemberExpression memberExpression) + return new(false, TOut.Zero); + + // Ensure that the member expression is a property: + if (memberExpression.Member is not PropertyInfo propertyInfo) + return new(false, TOut.Zero); + + // Ensure that the member expression has a target object: + if (memberExpression.Expression is null) + return new(false, TOut.Zero); + + // Get the target object for the expression, which is the object containing the property to increment: + var targetObjectExpression = Expression.Lambda(memberExpression.Expression, expression.Parameters); + + // Compile the lambda expression to get the target object + // (which is the object containing the property to increment): + var targetObject = targetObjectExpression.Compile().DynamicInvoke(data); + + // Was the compilation successful? + if (targetObject is null) + return new(false, TOut.Zero); + + // Read the current value of the property: + if (propertyInfo.GetValue(targetObject) is not TOut value) + return new(false, TOut.Zero); + + // Increment the value: + switch (type) + { + case IncrementType.PRE: + var nextValue = value + TOut.CreateChecked(1); + propertyInfo.SetValue(targetObject, nextValue); + return new(true, nextValue); + + case IncrementType.POST: + var currentValue = value; + var incrementedValue = value + TOut.CreateChecked(1); + propertyInfo.SetValue(targetObject, incrementedValue); + return new(true, currentValue); + + default: + return new(false, TOut.Zero); + } + } +} \ No newline at end of file diff --git a/app/MindWork AI Studio/Tools/IncrementResult.cs b/app/MindWork AI Studio/Tools/IncrementResult.cs new file mode 100644 index 00000000..76efecd4 --- /dev/null +++ b/app/MindWork AI Studio/Tools/IncrementResult.cs @@ -0,0 +1,10 @@ +using System.Numerics; + +namespace AIStudio.Tools; + +/// +/// Represents the result of an increment operation. It encapsulates whether the operation +/// was successful and the increased value. +/// +/// The type of the incremented value, constrained to implement the IBinaryInteger interface. +public sealed record IncrementResult(bool Success, TOut UpdatedValue) where TOut : IBinaryInteger; \ No newline at end of file diff --git a/app/MindWork AI Studio/Tools/IncrementType.cs b/app/MindWork AI Studio/Tools/IncrementType.cs new file mode 100644 index 00000000..a675f009 --- /dev/null +++ b/app/MindWork AI Studio/Tools/IncrementType.cs @@ -0,0 +1,14 @@ +namespace AIStudio.Tools; + +public enum IncrementType +{ + /// + /// Increments the value before returning it. So, the incremented value is returned. + /// + PRE, + + /// + /// Increments the value after returning it. So, the original value is returned. + /// + POST, +} \ No newline at end of file diff --git a/app/MindWork AI Studio/Tools/Markdown.cs b/app/MindWork AI Studio/Tools/Markdown.cs index fcaaac7f..0ecf3774 100644 --- a/app/MindWork AI Studio/Tools/Markdown.cs +++ b/app/MindWork AI Studio/Tools/Markdown.cs @@ -2,15 +2,21 @@ namespace AIStudio.Tools; public static class Markdown { - public static Typo OverrideHeaderTypo(Typo arg) => arg switch + public static MudMarkdownProps DefaultConfig => new() { - Typo.h1 => Typo.h4, - Typo.h2 => Typo.h5, - Typo.h3 => Typo.h6, - Typo.h4 => Typo.h6, - Typo.h5 => Typo.h6, - Typo.h6 => Typo.h6, + Heading = + { + OverrideTypo = typo => typo switch + { + Typo.h1 => Typo.h4, + Typo.h2 => Typo.h5, + Typo.h3 => Typo.h6, + Typo.h4 => Typo.h6, + Typo.h5 => Typo.h6, + Typo.h6 => Typo.h6, - _ => arg + _ => typo, + }, + } }; } \ No newline at end of file diff --git a/app/MindWork AI Studio/Tools/Pandoc.cs b/app/MindWork AI Studio/Tools/Pandoc.cs index 3c12e618..94384df7 100644 --- a/app/MindWork AI Studio/Tools/Pandoc.cs +++ b/app/MindWork AI Studio/Tools/Pandoc.cs @@ -22,7 +22,7 @@ public static partial class Pandoc private const string DOWNLOAD_URL = "https://github.com/jgm/pandoc/releases/download"; private const string LATEST_URL = "https://github.com/jgm/pandoc/releases/latest"; - private static readonly ILogger LOG = Program.LOGGER_FACTORY.CreateLogger("Pandoc"); + private static readonly ILogger LOG = Program.LOGGER_FACTORY.CreateLogger(nameof(Pandoc)); private static readonly Version MINIMUM_REQUIRED_VERSION = new (3, 7, 0, 2); private static readonly Version FALLBACK_VERSION = new (3, 7, 0, 2); diff --git a/app/MindWork AI Studio/Tools/PluginSystem/ConfigurationBaseObject.cs b/app/MindWork AI Studio/Tools/PluginSystem/ConfigurationBaseObject.cs new file mode 100644 index 00000000..97d48d61 --- /dev/null +++ b/app/MindWork AI Studio/Tools/PluginSystem/ConfigurationBaseObject.cs @@ -0,0 +1,23 @@ +namespace AIStudio.Tools.PluginSystem; + +public abstract record ConfigurationBaseObject : IConfigurationObject +{ + #region Implementation of IConfigurationObject + + /// + public abstract string Id { get; init; } + + /// + public abstract uint Num { get; init; } + + /// + public abstract string Name { get; init; } + + /// + public abstract bool IsEnterpriseConfiguration { get; init; } + + /// + public abstract Guid EnterpriseConfigurationPluginId { get; init; } + + #endregion +} \ No newline at end of file diff --git a/app/MindWork AI Studio/Tools/PluginSystem/IConfigurationObject.cs b/app/MindWork AI Studio/Tools/PluginSystem/IConfigurationObject.cs new file mode 100644 index 00000000..a46da2ef --- /dev/null +++ b/app/MindWork AI Studio/Tools/PluginSystem/IConfigurationObject.cs @@ -0,0 +1,32 @@ +namespace AIStudio.Tools.PluginSystem; + +/// +/// Represents a configuration object, such as a chat template or a LLM provider. +/// +public interface IConfigurationObject +{ + /// + /// The unique ID of the configuration object. + /// + public string Id { get; } + + /// + /// The continuous number of the configuration object. + /// + public uint Num { get; } + + /// + /// The name of the configuration object. + /// + public string Name { get; } + + /// + /// Is this configuration object an enterprise configuration? + /// + public bool IsEnterpriseConfiguration { get; } + + /// + /// The ID of the enterprise configuration plugin. + /// + public Guid EnterpriseConfigurationPluginId { get; } +} \ No newline at end of file diff --git a/app/MindWork AI Studio/Tools/PluginSystem/NoConfigurationObject.cs b/app/MindWork AI Studio/Tools/PluginSystem/NoConfigurationObject.cs new file mode 100644 index 00000000..d42cb6f7 --- /dev/null +++ b/app/MindWork AI Studio/Tools/PluginSystem/NoConfigurationObject.cs @@ -0,0 +1,26 @@ +namespace AIStudio.Tools.PluginSystem; + +public sealed record NoConfigurationObject : ConfigurationBaseObject +{ + public static readonly NoConfigurationObject INSTANCE = new(); + + private NoConfigurationObject() + { + this.Id = Guid.Empty.ToString(); + this.Name = "No Configuration"; + } + + #region Overrides of ConfigurationBaseObject + + public override string Id { get; init; } + + public override uint Num { get; init; } + + public override string Name { get; init; } + + public override bool IsEnterpriseConfiguration { get; init; } + + public override Guid EnterpriseConfigurationPluginId { get; init; } + + #endregion +} \ No newline at end of file diff --git a/app/MindWork AI Studio/Tools/PluginSystem/PluginConfiguration.cs b/app/MindWork AI Studio/Tools/PluginSystem/PluginConfiguration.cs index 6355fad1..97041a6f 100644 --- a/app/MindWork AI Studio/Tools/PluginSystem/PluginConfiguration.cs +++ b/app/MindWork AI Studio/Tools/PluginSystem/PluginConfiguration.cs @@ -1,37 +1,43 @@ -using AIStudio.Provider; using AIStudio.Settings; -using AIStudio.Settings.DataModel; using Lua; -using Host = AIStudio.Provider.SelfHosted.Host; -using Model = AIStudio.Provider.Model; - namespace AIStudio.Tools.PluginSystem; public sealed class PluginConfiguration(bool isInternal, LuaState state, PluginType type) : PluginBase(isInternal, state, type) { private static string TB(string fallbackEN) => I18N.I.T(fallbackEN, typeof(PluginConfiguration).Namespace, nameof(PluginConfiguration)); - private static readonly ILogger LOGGER = Program.LOGGER_FACTORY.CreateLogger(); - private static readonly SettingsLocker SETTINGS_LOCKER = Program.SERVICE_PROVIDER.GetRequiredService(); private static readonly SettingsManager SETTINGS_MANAGER = Program.SERVICE_PROVIDER.GetRequiredService(); - - public async Task InitializeAsync() - { - if(!this.TryProcessConfiguration(out var issue)) - this.pluginIssues.Add(issue); - - await SETTINGS_MANAGER.StoreSettings(); - await MessageBus.INSTANCE.SendMessage(null, Event.CONFIGURATION_CHANGED); - } + private List configObjects = []; + + /// + /// The list of configuration objects. Configuration objects are, e.g., providers or chat templates. + /// + public IEnumerable ConfigObjects => this.configObjects; + + public async Task InitializeAsync(bool dryRun) + { + if(!this.TryProcessConfiguration(dryRun, out var issue)) + this.pluginIssues.Add(issue); + + if (!dryRun) + { + await SETTINGS_MANAGER.StoreSettings(); + await MessageBus.INSTANCE.SendMessage(null, Event.CONFIGURATION_CHANGED); + } + } + /// /// Tries to initialize the UI text content of the plugin. /// + /// When true, the method will not apply any changes but only check if the configuration can be read. /// The error message, when the UI text content could not be read. /// True, when the UI text content could be read successfully. - private bool TryProcessConfiguration(out string message) + private bool TryProcessConfiguration(bool dryRun, out string message) { + this.configObjects.Clear(); + // Ensure that the main CONFIG table exists and is a valid Lua table: if (!this.state.Environment["CONFIG"].TryRead(out var mainTable)) { @@ -39,155 +45,29 @@ public sealed class PluginConfiguration(bool isInternal, LuaState state, PluginT return false; } - // - // Configured settings - // + // Check for the main SETTINGS table: if (!mainTable.TryGetValue("SETTINGS", out var settingsValue) || !settingsValue.TryRead(out var settingsTable)) { message = TB("The SETTINGS table does not exist or is not a valid table."); return false; } - - if (settingsTable.TryGetValue(SettingsManager.ToSettingName(x => x.UpdateBehavior), out var updateBehaviorValue) && updateBehaviorValue.TryRead(out var updateBehaviorText) && Enum.TryParse(updateBehaviorText, true, out var updateBehavior)) - { - SETTINGS_LOCKER.Register(x => x.UpdateBehavior, this.Id); - SETTINGS_MANAGER.ConfigurationData.App.UpdateBehavior = updateBehavior; - } - - // - // Configured providers - // - if (!mainTable.TryGetValue("LLM_PROVIDERS", out var providersValue) || !providersValue.TryRead(out var providersTable)) - { - message = TB("The LLM_PROVIDERS table does not exist or is not a valid table."); - return false; - } - + + // Config: check for updates, and if so, how often? + ManagedConfiguration.TryProcessConfiguration(x => x.App, x => x.UpdateInterval, this.Id, settingsTable, dryRun); + + // Config: how should updates be installed? + ManagedConfiguration.TryProcessConfiguration(x => x.App, x => x.UpdateInstallation, this.Id, settingsTable, dryRun); + + // Config: allow the user to add providers? + ManagedConfiguration.TryProcessConfiguration(x => x.App, x => x.AllowUserToAddProvider, this.Id, settingsTable, dryRun); + + // Handle configured LLM providers: + PluginConfigurationObject.TryParse(PluginConfigurationObjectType.LLM_PROVIDER, x => x.Providers, x => x.NextProviderNum, mainTable, this.Id, ref this.configObjects, dryRun); + + // Handle configured chat templates: + PluginConfigurationObject.TryParse(PluginConfigurationObjectType.CHAT_TEMPLATE, x => x.ChatTemplates, x => x.NextChatTemplateNum, mainTable, this.Id, ref this.configObjects, dryRun); + message = string.Empty; - var numberProviders = providersTable.ArrayLength; - var configuredProviders = new List(numberProviders); - for (var i = 1; i <= numberProviders; i++) - { - var providerLuaTableValue = providersTable[i]; - if (!providerLuaTableValue.TryRead(out var providerLuaTable)) - { - LOGGER.LogWarning($"The LLM_PROVIDERS table at index {i} is not a valid table."); - continue; - } - - if(this.TryReadProviderTable(i, providerLuaTable, out var provider)) - configuredProviders.Add(provider); - else - LOGGER.LogWarning($"The LLM_PROVIDERS table at index {i} does not contain a valid provider configuration."); - } - - // - // Apply the configured providers to the system settings: - // - #pragma warning disable MWAIS0001 - foreach (var configuredProvider in configuredProviders) - { - // The iterating variable is immutable, so we need to create a local copy: - var provider = configuredProvider; - - var providerIndex = SETTINGS_MANAGER.ConfigurationData.Providers.FindIndex(p => p.Id == provider.Id); - if (providerIndex > -1) - { - // Case: The provider already exists, we update it: - var existingProvider = SETTINGS_MANAGER.ConfigurationData.Providers[providerIndex]; - provider = provider with { Num = existingProvider.Num }; // Keep the original number - SETTINGS_MANAGER.ConfigurationData.Providers[providerIndex] = provider; - } - else - { - // Case: The provider does not exist, we add it: - provider = provider with { Num = SETTINGS_MANAGER.ConfigurationData.NextProviderNum++ }; - SETTINGS_MANAGER.ConfigurationData.Providers.Add(provider); - } - } - #pragma warning restore MWAIS0001 - - return true; - } - - private bool TryReadProviderTable(int idx, LuaTable table, out Settings.Provider provider) - { - provider = default; - if (!table.TryGetValue("Id", out var idValue) || !idValue.TryRead(out var idText) || !Guid.TryParse(idText, out var id)) - { - LOGGER.LogWarning($"The configured provider {idx} does not contain a valid ID. The ID must be a valid GUID."); - return false; - } - - if (!table.TryGetValue("InstanceName", out var instanceNameValue) || !instanceNameValue.TryRead(out var instanceName)) - { - LOGGER.LogWarning($"The configured provider {idx} does not contain a valid instance name."); - return false; - } - - if (!table.TryGetValue("UsedLLMProvider", out var usedLLMProviderValue) || !usedLLMProviderValue.TryRead(out var usedLLMProviderText) || !Enum.TryParse(usedLLMProviderText, true, out var usedLLMProvider)) - { - LOGGER.LogWarning($"The configured provider {idx} does not contain a valid LLM provider enum value."); - return false; - } - - if (!table.TryGetValue("Host", out var hostValue) || !hostValue.TryRead(out var hostText) || !Enum.TryParse(hostText, true, out var host)) - { - LOGGER.LogWarning($"The configured provider {idx} does not contain a valid host enum value."); - return false; - } - - if (!table.TryGetValue("Hostname", out var hostnameValue) || !hostnameValue.TryRead(out var hostname)) - { - LOGGER.LogWarning($"The configured provider {idx} does not contain a valid hostname."); - return false; - } - - if (!table.TryGetValue("Model", out var modelValue) || !modelValue.TryRead(out var modelTable)) - { - LOGGER.LogWarning($"The configured provider {idx} does not contain a valid model table."); - return false; - } - - if (!this.TryReadModelTable(idx, modelTable, out var model)) - { - LOGGER.LogWarning($"The configured provider {idx} does not contain a valid model configuration."); - return false; - } - - provider = new() - { - Num = 0, - Id = id.ToString(), - InstanceName = instanceName, - UsedLLMProvider = usedLLMProvider, - Model = model, - IsSelfHosted = usedLLMProvider is LLMProviders.SELF_HOSTED, - IsEnterpriseConfiguration = true, - EnterpriseConfigurationPluginId = this.Id, - Hostname = hostname, - Host = host - }; - - return true; - } - - private bool TryReadModelTable(int idx, LuaTable table, out Model model) - { - model = default; - if (!table.TryGetValue("Id", out var idValue) || !idValue.TryRead(out var id)) - { - LOGGER.LogWarning($"The configured provider {idx} does not contain a valid model ID."); - return false; - } - - if (!table.TryGetValue("DisplayName", out var displayNameValue) || !displayNameValue.TryRead(out var displayName)) - { - LOGGER.LogWarning($"The configured provider {idx} does not contain a valid model display name."); - return false; - } - - model = new(id, displayName); return true; } } \ No newline at end of file diff --git a/app/MindWork AI Studio/Tools/PluginSystem/PluginConfigurationObject.cs b/app/MindWork AI Studio/Tools/PluginSystem/PluginConfigurationObject.cs new file mode 100644 index 00000000..5be55ddb --- /dev/null +++ b/app/MindWork AI Studio/Tools/PluginSystem/PluginConfigurationObject.cs @@ -0,0 +1,207 @@ +using System.Linq.Expressions; + +using AIStudio.Settings; +using AIStudio.Settings.DataModel; + +using Lua; + +namespace AIStudio.Tools.PluginSystem; + +/// +/// Represents metadata for a configuration object from a configuration plugin. These are +/// complex objects such as configured LLM providers, chat templates, etc. +/// +public sealed record PluginConfigurationObject +{ + private static readonly SettingsManager SETTINGS_MANAGER = Program.SERVICE_PROVIDER.GetRequiredService(); + private static readonly ILogger LOG = Program.LOGGER_FACTORY.CreateLogger(); + + /// + /// The id of the configuration plugin to which this configuration object belongs. + /// + public required Guid ConfigPluginId { get; init; } = Guid.NewGuid(); + + /// + /// The id of the configuration object, e.g., the id of a chat template. + /// + public required Guid Id { get; init; } = Guid.NewGuid(); + + /// + /// The type of the configuration object. + /// + public required PluginConfigurationObjectType Type { get; init; } = PluginConfigurationObjectType.NONE; + + /// + /// Parses Lua table entries into configuration objects of the specified type, populating the + /// provided list with results. + /// + /// The type of configuration object to parse, which must + /// inherit from . + /// The type of configuration object to process, as specified + /// in . + /// An expression to retrieve existing configuration objects from + /// the main configuration data. + /// An expression to retrieve the next available configuration + /// object number from the main configuration data. + /// The Lua table containing entries to parse into configuration objects. + /// The unique identifier of the plugin associated with the configuration + /// objects being parsed. + /// The list to populate with the parsed configuration objects. + /// This parameter is passed by reference. + /// Specifies whether to perform the operation as a dry run, where changes + /// are not persisted. + /// Returns true if parsing succeeds and configuration objects are added + /// to the list; otherwise, false. + public static bool TryParse( + PluginConfigurationObjectType configObjectType, + Expression>> configObjectSelection, + Expression> nextConfigObjectNumSelection, + LuaTable mainTable, + Guid configPluginId, + ref List configObjects, + bool dryRun + ) where TClass : ConfigurationBaseObject + { + var luaTableName = configObjectType switch + { + PluginConfigurationObjectType.LLM_PROVIDER => "LLM_PROVIDERS", + PluginConfigurationObjectType.CHAT_TEMPLATE => "CHAT_TEMPLATES", + PluginConfigurationObjectType.DATA_SOURCE => "DATA_SOURCES", + PluginConfigurationObjectType.EMBEDDING_PROVIDER => "EMBEDDING_PROVIDERS", + PluginConfigurationObjectType.PROFILE => "PROFILES", + + _ => null, + }; + + if (luaTableName is null) + { + LOG.LogError($"The configuration object type '{configObjectType}' is not supported yet."); + return false; + } + + if (!mainTable.TryGetValue(luaTableName, out var luaValue) || !luaValue.TryRead(out var luaTable)) + { + LOG.LogWarning($"The {luaTableName} table does not exist or is not a valid table."); + return false; + } + + var storedObjects = configObjectSelection.Compile()(SETTINGS_MANAGER.ConfigurationData); + var numberObjects = luaTable.ArrayLength; + ThreadSafeRandom? random = null; + for (var i = 1; i <= numberObjects; i++) + { + var luaObjectTableValue = luaTable[i]; + if (!luaObjectTableValue.TryRead(out var luaObjectTable)) + { + LOG.LogWarning($"The {luaObjectTable} table at index {i} is not a valid table."); + continue; + } + + var (wasParsingSuccessful, configObject) = configObjectType switch + { + PluginConfigurationObjectType.LLM_PROVIDER => (Settings.Provider.TryParseProviderTable(i, luaObjectTable, configPluginId, out var configurationObject) && configurationObject != Settings.Provider.NONE, configurationObject), + PluginConfigurationObjectType.CHAT_TEMPLATE => (ChatTemplate.TryParseChatTemplateTable(i, luaObjectTable, configPluginId, out var configurationObject) && configurationObject != ChatTemplate.NO_CHAT_TEMPLATE, configurationObject), + + _ => (false, NoConfigurationObject.INSTANCE) + }; + + if (wasParsingSuccessful) + { + // Store it in the config object list: + configObjects.Add(new() + { + ConfigPluginId = configPluginId, + Id = Guid.Parse(configObject.Id), + Type = configObjectType, + }); + + if (dryRun) + continue; + + var objectIndex = storedObjects.FindIndex(t => t.Id == configObject.Id); + + // Case: The object already exists, we update it: + if (objectIndex > -1) + { + var existingObject = storedObjects[objectIndex]; + configObject = configObject with { Num = existingObject.Num }; + storedObjects[objectIndex] = (TClass)configObject; + } + + // Case: The object does not exist, we have to add it + else + { + if (nextConfigObjectNumSelection.TryIncrement(SETTINGS_MANAGER.ConfigurationData, IncrementType.POST) is { Success: true, UpdatedValue: var nextNum }) + { + // Case: Increment the next number was successful + configObject = configObject with { Num = nextNum }; + storedObjects.Add((TClass)configObject); + } + else + { + // Case: The next number could not be incremented, we use a random number + random ??= new ThreadSafeRandom(); + configObject = configObject with { Num = (uint)random.Next(500_000, 1_000_000) }; + storedObjects.Add((TClass)configObject); + LOG.LogWarning($"The next number for the configuration object '{configObject.Name}' (id={configObject.Id}) could not be incremented. Using a random number instead."); + } + } + } + else + LOG.LogWarning($"The {luaObjectTable} table at index {i} does not contain a valid chat template configuration."); + } + + return true; + } + + /// + /// Cleans up configuration objects of a specified type that are no longer associated with any available plugin. + /// + /// The type of configuration object to clean up. + /// The type of configuration object to process. + /// A selection expression to retrieve the configuration objects from the main configuration. + /// A list of currently available plugins. + /// A list of all existing configuration objects. + /// Returns true if the configuration was altered during cleanup; otherwise, false. + public static bool CleanLeftOverConfigurationObjects( + PluginConfigurationObjectType configObjectType, + Expression>> configObjectSelection, + IList availablePlugins, + IList configObjectList) where TClass : IConfigurationObject + { + var configuredObjects = configObjectSelection.Compile()(SETTINGS_MANAGER.ConfigurationData); + var leftOverObjects = new List(); + foreach (var configuredObject in configuredObjects) + { + if(!configuredObject.IsEnterpriseConfiguration) + continue; + + var configObjectSourcePluginId = configuredObject.EnterpriseConfigurationPluginId; + if(configObjectSourcePluginId == Guid.Empty) + continue; + + var templateSourcePlugin = availablePlugins.FirstOrDefault(plugin => plugin.Id == configObjectSourcePluginId); + if(templateSourcePlugin is null) + { + LOG.LogWarning($"The configured object '{configuredObject.Name}' (id={configuredObject.Id}) is based on a plugin that is not available anymore. Removing the chat template from the settings."); + leftOverObjects.Add(configuredObject); + } + + if(!configObjectList.Any(configObject => + configObject.Type == configObjectType && + configObject.ConfigPluginId == configObjectSourcePluginId && + configObject.Id.ToString() == configuredObject.Id)) + { + LOG.LogWarning($"The configured object '{configuredObject.Name}' (id={configuredObject.Id}) is not present in the configuration plugin anymore. Removing the chat template from the settings."); + leftOverObjects.Add(configuredObject); + } + } + + // Remove collected items after enumeration to avoid modifying the collection during iteration: + var wasConfigurationChanged = leftOverObjects.Count > 0; + foreach (var item in leftOverObjects.Distinct()) + configuredObjects.Remove(item); + + return wasConfigurationChanged; + } +} \ No newline at end of file diff --git a/app/MindWork AI Studio/Tools/PluginSystem/PluginConfigurationObjectType.cs b/app/MindWork AI Studio/Tools/PluginSystem/PluginConfigurationObjectType.cs new file mode 100644 index 00000000..1cb4f604 --- /dev/null +++ b/app/MindWork AI Studio/Tools/PluginSystem/PluginConfigurationObjectType.cs @@ -0,0 +1,13 @@ +namespace AIStudio.Tools.PluginSystem; + +public enum PluginConfigurationObjectType +{ + NONE, + UNKNOWN, + + PROFILE, + DATA_SOURCE, + LLM_PROVIDER, + CHAT_TEMPLATE, + EMBEDDING_PROVIDER, +} \ No newline at end of file diff --git a/app/MindWork AI Studio/Tools/PluginSystem/PluginFactory.HotReload.cs b/app/MindWork AI Studio/Tools/PluginSystem/PluginFactory.HotReload.cs index b7cb0c18..b98fa3c7 100644 --- a/app/MindWork AI Studio/Tools/PluginSystem/PluginFactory.HotReload.cs +++ b/app/MindWork AI Studio/Tools/PluginSystem/PluginFactory.HotReload.cs @@ -16,10 +16,21 @@ public static partial class PluginFactory try { HOT_RELOAD_WATCHER.IncludeSubdirectories = true; - HOT_RELOAD_WATCHER.NotifyFilter = NotifyFilters.LastWrite | NotifyFilters.FileName; - HOT_RELOAD_WATCHER.Filter = "*.lua"; + HOT_RELOAD_WATCHER.NotifyFilter = NotifyFilters.CreationTime + | NotifyFilters.DirectoryName + | NotifyFilters.FileName + | NotifyFilters.LastAccess + | NotifyFilters.LastWrite + | NotifyFilters.Size; + HOT_RELOAD_WATCHER.Changed += HotReloadEventHandler; HOT_RELOAD_WATCHER.Deleted += HotReloadEventHandler; + HOT_RELOAD_WATCHER.Created += HotReloadEventHandler; + HOT_RELOAD_WATCHER.Renamed += HotReloadEventHandler; + HOT_RELOAD_WATCHER.Error += (_, args) => + { + LOG.LogError(args.GetException(), "Error in hot reload watcher."); + }; HOT_RELOAD_WATCHER.EnableRaisingEvents = true; } catch (Exception e) @@ -39,13 +50,13 @@ public static partial class PluginFactory var changeType = args.ChangeType.ToString().ToLowerInvariant(); if (!await HOT_RELOAD_SEMAPHORE.WaitAsync(0)) { - LOG.LogInformation($"File changed ({changeType}): {args.FullPath}. Already processing another change."); + LOG.LogInformation($"File changed '{args.FullPath}' (event={changeType}). Already processing another change."); return; } try { - LOG.LogInformation($"File changed ({changeType}): {args.FullPath}. Reloading plugins..."); + LOG.LogInformation($"File changed '{args.FullPath}' (event={changeType}). Reloading plugins..."); if (File.Exists(HOT_RELOAD_LOCK_FILE)) { LOG.LogInformation("Hot reload lock file exists. Waiting for it to be released before proceeding with the reload."); diff --git a/app/MindWork AI Studio/Tools/PluginSystem/PluginFactory.Loading.cs b/app/MindWork AI Studio/Tools/PluginSystem/PluginFactory.Loading.cs index 244e3984..92f77344 100644 --- a/app/MindWork AI Studio/Tools/PluginSystem/PluginFactory.Loading.cs +++ b/app/MindWork AI Studio/Tools/PluginSystem/PluginFactory.Loading.cs @@ -1,5 +1,6 @@ using System.Text; +using AIStudio.Settings; using AIStudio.Settings.DataModel; using Lua; @@ -39,6 +40,8 @@ public static partial class PluginFactory if (!await PLUGIN_LOAD_SEMAPHORE.WaitAsync(0, cancellationToken)) return; + var configObjectList = new List(); + try { LOG.LogInformation("Start loading plugins."); @@ -89,10 +92,10 @@ public static partial class PluginFactory case { IsValid: false }: LOG.LogError($"Was not able to load plugin '{pluginMainFile}', because the Lua code is not a valid AI Studio plugin. There are {plugin.Issues.Count()} issues to fix. First issue is: {plugin.Issues.FirstOrDefault()}"); - #if DEBUG +#if DEBUG foreach (var pluginIssue in plugin.Issues) LOG.LogError($"Plugin issue: {pluginIssue}"); - #endif +#endif continue; case { IsMaintained: false }: @@ -111,7 +114,8 @@ public static partial class PluginFactory } // Start or restart all plugins: - await RestartAllPlugins(cancellationToken); + var configObjects = await RestartAllPlugins(cancellationToken); + configObjectList.AddRange(configObjects); } finally { @@ -120,53 +124,31 @@ public static partial class PluginFactory } // - // Next, we have to clean up our settings. It is possible that a configuration plugin was removed. - // We have to remove the related settings as well: + // ========================================================= + // Next, we have to clean up our settings. It is possible + // that a configuration plugin was removed. We have to + // remove the related settings as well: + // ========================================================= // - var wasConfigurationChanged = false; - // // Check LLM providers: - // - #pragma warning disable MWAIS0001 - var configuredProviders = SETTINGS_MANAGER.ConfigurationData.Providers.ToList(); - foreach (var configuredProvider in configuredProviders) - { - if(!configuredProvider.IsEnterpriseConfiguration) - continue; - - var providerSourcePluginId = configuredProvider.EnterpriseConfigurationPluginId; - if(providerSourcePluginId == Guid.Empty) - continue; - - var providerSourcePlugin = AVAILABLE_PLUGINS.FirstOrDefault(plugin => plugin.Id == providerSourcePluginId); - if(providerSourcePlugin is null) - { - LOG.LogWarning($"The configured LLM provider '{configuredProvider.InstanceName}' (id={configuredProvider.Id}) is based on a plugin that is not available anymore. Removing the provider from the settings."); - SETTINGS_MANAGER.ConfigurationData.Providers.Remove(configuredProvider); - wasConfigurationChanged = true; - } - } - #pragma warning restore MWAIS0001 - - // - // Check all possible settings: - // - if (SETTINGS_LOCKER.GetConfigurationPluginId(x => x.UpdateBehavior) is var updateBehaviorPluginId && updateBehaviorPluginId != Guid.Empty) - { - var sourcePlugin = AVAILABLE_PLUGINS.FirstOrDefault(plugin => plugin.Id == updateBehaviorPluginId); - if (sourcePlugin is null) - { - // Remove the locked state: - SETTINGS_LOCKER.Remove(x => x.UpdateBehavior); - - // Reset the setting to the default value: - SETTINGS_MANAGER.ConfigurationData.App.UpdateBehavior = UpdateBehavior.HOURLY; - - LOG.LogWarning($"The configured update behavior is based on a plugin that is not available anymore. Resetting the setting to the default value: {SETTINGS_MANAGER.ConfigurationData.App.UpdateBehavior}."); - wasConfigurationChanged = true; - } - } + var wasConfigurationChanged = PluginConfigurationObject.CleanLeftOverConfigurationObjects(PluginConfigurationObjectType.LLM_PROVIDER, x => x.Providers, AVAILABLE_PLUGINS, configObjectList); + + // Check chat templates: + if(PluginConfigurationObject.CleanLeftOverConfigurationObjects(PluginConfigurationObjectType.CHAT_TEMPLATE, x => x.ChatTemplates, AVAILABLE_PLUGINS, configObjectList)) + wasConfigurationChanged = true; + + // Check for update behavior: + if(ManagedConfiguration.IsConfigurationLeftOver(x => x.App, x => x.UpdateInterval, AVAILABLE_PLUGINS)) + wasConfigurationChanged = true; + + // Check for update installation behavior: + if(ManagedConfiguration.IsConfigurationLeftOver(x => x.App, x => x.UpdateInstallation, AVAILABLE_PLUGINS)) + wasConfigurationChanged = true; + + // Check for users allowed to added providers: + if(ManagedConfiguration.IsConfigurationLeftOver(x => x.App, x => x.AllowUserToAddProvider, AVAILABLE_PLUGINS)) + wasConfigurationChanged = true; if (wasConfigurationChanged) { @@ -225,7 +207,7 @@ public static partial class PluginFactory case PluginType.CONFIGURATION: var configPlug = new PluginConfiguration(isInternal, state, type); - await configPlug.InitializeAsync(); + await configPlug.InitializeAsync(true); return configPlug; default: diff --git a/app/MindWork AI Studio/Tools/PluginSystem/PluginFactory.Starting.cs b/app/MindWork AI Studio/Tools/PluginSystem/PluginFactory.Starting.cs index 983b84da..5d734b06 100644 --- a/app/MindWork AI Studio/Tools/PluginSystem/PluginFactory.Starting.cs +++ b/app/MindWork AI Studio/Tools/PluginSystem/PluginFactory.Starting.cs @@ -11,9 +11,10 @@ public static partial class PluginFactory /// public static IReadOnlyCollection RunningPlugins => RUNNING_PLUGINS; - private static async Task RestartAllPlugins(CancellationToken cancellationToken = default) + private static async Task> RestartAllPlugins(CancellationToken cancellationToken = default) { LOG.LogInformation("Try to start or restart all plugins."); + var configObjects = new List(); RUNNING_PLUGINS.Clear(); // @@ -65,7 +66,12 @@ public static partial class PluginFactory { if (availablePlugin.IsInternal || SETTINGS_MANAGER.IsPluginEnabled(availablePlugin) || availablePlugin.Type == PluginType.CONFIGURATION) if(await Start(availablePlugin, cancellationToken) is { IsValid: true } plugin) + { + if (plugin is PluginConfiguration configPlugin) + configObjects.AddRange(configPlugin.ConfigObjects); + RUNNING_PLUGINS.Add(plugin); + } } catch (Exception e) { @@ -75,6 +81,7 @@ public static partial class PluginFactory // Inform all components that the plugins have been reloaded or started: await MessageBus.INSTANCE.SendMessage(null, Event.PLUGINS_RELOADED); + return configObjects; } private static async Task Start(IAvailablePlugin meta, CancellationToken cancellationToken = default) @@ -103,7 +110,7 @@ public static partial class PluginFactory languagePlugin.SetBaseLanguage(BASE_LANGUAGE_PLUGIN); if(plugin is PluginConfiguration configPlugin) - await configPlugin.InitializeAsync(); + await configPlugin.InitializeAsync(false); LOG.LogInformation($"Successfully started plugin: Id='{plugin.Id}', Type='{plugin.Type}', Name='{plugin.Name}', Version='{plugin.Version}'"); return plugin; diff --git a/app/MindWork AI Studio/Tools/PluginSystem/PluginFactory.cs b/app/MindWork AI Studio/Tools/PluginSystem/PluginFactory.cs index 2d7b38b0..1fd30fb2 100644 --- a/app/MindWork AI Studio/Tools/PluginSystem/PluginFactory.cs +++ b/app/MindWork AI Studio/Tools/PluginSystem/PluginFactory.cs @@ -6,7 +6,6 @@ public static partial class PluginFactory { private static readonly ILogger LOG = Program.LOGGER_FACTORY.CreateLogger(nameof(PluginFactory)); private static readonly SettingsManager SETTINGS_MANAGER = Program.SERVICE_PROVIDER.GetRequiredService(); - private static readonly SettingsLocker SETTINGS_LOCKER = Program.SERVICE_PROVIDER.GetRequiredService(); private static bool IS_INITIALIZED; private static string DATA_DIR = string.Empty; diff --git a/app/MindWork AI Studio/Tools/Process.cs b/app/MindWork AI Studio/Tools/Process.cs index 53488915..eac7f799 100644 --- a/app/MindWork AI Studio/Tools/Process.cs +++ b/app/MindWork AI Studio/Tools/Process.cs @@ -1,5 +1,3 @@ -using System.Text; - namespace AIStudio.Tools; public sealed class Process where T : struct, Enum @@ -20,7 +18,7 @@ public sealed class Process where T : struct, Enum { var value = values[i]; var stepValue = Convert.ToInt32(value); - var stepName = DeriveName(value); + var stepName = ProcessStepTextRouter.GetText(value); this.labels[i] = stepName; this.stepsData[value] = new ProcessStepValue(stepValue, stepName); @@ -33,30 +31,6 @@ public sealed class Process where T : struct, Enum } } - private static string DeriveName(T value) - { - var text = value.ToString(); - if (!text.Contains('_')) - { - text = text.ToLowerInvariant(); - text = char.ToUpperInvariant(text[0]) + text[1..]; - } - else - { - var parts = text.Split('_'); - var sb = new StringBuilder(); - foreach (var part in parts) - { - sb.Append(char.ToUpperInvariant(part[0])); - sb.Append(part[1..].ToLowerInvariant()); - } - - text = sb.ToString(); - } - - return text; - } - public string[] Labels => this.labels; public int Min => this.min; diff --git a/app/MindWork AI Studio/Tools/ProcessStepTextRouter.cs b/app/MindWork AI Studio/Tools/ProcessStepTextRouter.cs new file mode 100644 index 00000000..eebaff48 --- /dev/null +++ b/app/MindWork AI Studio/Tools/ProcessStepTextRouter.cs @@ -0,0 +1,59 @@ +using System.Text; + +using AIStudio.Components; + +namespace AIStudio.Tools; + +/// +/// Routes process step enums to their corresponding text representations, when possible. +/// +public static class ProcessStepTextRouter +{ + /// + /// Gets the text representation of a given process step enum. + /// + /// + /// Gets the text representation of a given process step enum. + /// When the enum type has a specific extension method for text retrieval, it uses that; + /// otherwise, it derives a name based on the enum value. + /// + /// The process step enum value. + /// The enum type representing the process steps. + /// The text representation of the process step. + public static string GetText(T step) where T : struct, Enum => step switch + { + ReadWebContentSteps x => x.GetText(), + _ => DeriveName(step) + }; + + /// + /// Derives a name from the enum value by converting it to a more human-readable format. + /// It handles both single-word and multi-word enum values (separated by underscores). + /// + /// The enum value to derive the name from. + /// The enum type. + /// A human-readable name derived from the enum value. + private static string DeriveName(T value) where T : struct, Enum + { + var text = value.ToString(); + if (!text.Contains('_')) + { + text = text.ToLowerInvariant(); + text = char.ToUpperInvariant(text[0]) + text[1..]; + } + else + { + var parts = text.Split('_'); + var sb = new StringBuilder(); + foreach (var part in parts) + { + sb.Append(char.ToUpperInvariant(part[0])); + sb.Append(part[1..].ToLowerInvariant()); + } + + text = sb.ToString(); + } + + return text; + } +} \ No newline at end of file diff --git a/app/MindWork AI Studio/Tools/Services/DataSourceService.cs b/app/MindWork AI Studio/Tools/Services/DataSourceService.cs index f545aca5..06804474 100644 --- a/app/MindWork AI Studio/Tools/Services/DataSourceService.cs +++ b/app/MindWork AI Studio/Tools/Services/DataSourceService.cs @@ -37,7 +37,7 @@ public sealed class DataSourceService // does not mean anything. We cannot filter the data sources by any means. // We return an empty list. Better safe than sorry. // - if (selectedLLMProvider == default) + if (selectedLLMProvider == Settings.Provider.NONE) { this.logger.LogWarning("The selected LLM provider is not set. We cannot filter the data sources by any means."); return new([], []); diff --git a/app/MindWork AI Studio/Tools/Services/UpdateService.cs b/app/MindWork AI Studio/Tools/Services/UpdateService.cs index 7cda6443..75335521 100644 --- a/app/MindWork AI Studio/Tools/Services/UpdateService.cs +++ b/app/MindWork AI Studio/Tools/Services/UpdateService.cs @@ -42,14 +42,14 @@ public sealed class UpdateService : BackgroundService, IMessageBusReceiver // // Set the update interval based on the user's settings. // - this.updateInterval = this.settingsManager.ConfigurationData.App.UpdateBehavior switch + this.updateInterval = this.settingsManager.ConfigurationData.App.UpdateInterval switch { - UpdateBehavior.NO_CHECK => Timeout.InfiniteTimeSpan, - UpdateBehavior.ONCE_STARTUP => Timeout.InfiniteTimeSpan, + UpdateInterval.NO_CHECK => Timeout.InfiniteTimeSpan, + UpdateInterval.ONCE_STARTUP => Timeout.InfiniteTimeSpan, - UpdateBehavior.HOURLY => TimeSpan.FromHours(1), - UpdateBehavior.DAILY => TimeSpan.FromDays(1), - UpdateBehavior.WEEKLY => TimeSpan.FromDays(7), + UpdateInterval.HOURLY => TimeSpan.FromHours(1), + UpdateInterval.DAILY => TimeSpan.FromDays(1), + UpdateInterval.WEEKLY => TimeSpan.FromDays(7), _ => TimeSpan.FromHours(1) }; @@ -58,7 +58,7 @@ public sealed class UpdateService : BackgroundService, IMessageBusReceiver // When the user doesn't want to check for updates, we can // return early. // - if(this.settingsManager.ConfigurationData.App.UpdateBehavior is UpdateBehavior.NO_CHECK) + if(this.settingsManager.ConfigurationData.App.UpdateInterval is UpdateInterval.NO_CHECK) return; // @@ -115,7 +115,25 @@ public sealed class UpdateService : BackgroundService, IMessageBusReceiver var response = await this.rust.CheckForUpdate(); if (response.UpdateIsAvailable) { - await this.messageBus.SendMessage(null, Event.UPDATE_AVAILABLE, response); + if (this.settingsManager.ConfigurationData.App.UpdateInstallation is UpdateInstallation.AUTOMATIC) + { + try + { + await this.messageBus.SendMessage(null, Event.INSTALL_UPDATE); + await this.rust.InstallUpdate(); + } + catch (Exception) + { + SNACKBAR!.Add(TB("Failed to install update automatically. Please try again manually."), Severity.Error, config => + { + config.Icon = Icons.Material.Filled.Error; + config.IconSize = Size.Large; + config.IconColor = Color.Error; + }); + } + } + else + await this.messageBus.SendMessage(null, Event.UPDATE_AVAILABLE, response); } else { diff --git a/app/MindWork AI Studio/Tools/WorkspaceBehaviour.cs b/app/MindWork AI Studio/Tools/WorkspaceBehaviour.cs index 00a6d68f..1eab21bc 100644 --- a/app/MindWork AI Studio/Tools/WorkspaceBehaviour.cs +++ b/app/MindWork AI Studio/Tools/WorkspaceBehaviour.cs @@ -83,7 +83,33 @@ public static class WorkspaceBehaviour var workspacePath = Path.Join(SettingsManager.DataDirectory, "workspaces", workspaceId.ToString()); var workspaceNamePath = Path.Join(workspacePath, "name"); - return await File.ReadAllTextAsync(workspaceNamePath, Encoding.UTF8); + + try + { + // If the name file does not exist or is empty, self-heal with a default name. + if (!File.Exists(workspaceNamePath)) + { + var defaultName = TB("Unnamed workspace"); + Directory.CreateDirectory(workspacePath); + await File.WriteAllTextAsync(workspaceNamePath, defaultName, Encoding.UTF8); + return defaultName; + } + + var name = await File.ReadAllTextAsync(workspaceNamePath, Encoding.UTF8); + if (string.IsNullOrWhiteSpace(name)) + { + var defaultName = TB("Unnamed workspace"); + await File.WriteAllTextAsync(workspaceNamePath, defaultName, Encoding.UTF8); + return defaultName; + } + + return name; + } + catch + { + // On any error, return a localized default without throwing. + return TB("Unnamed workspace"); + } } public static async Task DeleteChat(IDialogService dialogService, Guid workspaceId, Guid chatId, bool askForConfirmation = true) @@ -95,10 +121,10 @@ public static class WorkspaceBehaviour if (askForConfirmation) { var workspaceName = await LoadWorkspaceName(chat.WorkspaceId); - var dialogParameters = new DialogParameters + var dialogParameters = new DialogParameters { { - "Message", (chat.WorkspaceId == Guid.Empty) switch + x => x.Message, (chat.WorkspaceId == Guid.Empty) switch { true => TB($"Are you sure you want to delete the temporary chat '{chat.Name}'?"), false => TB($"Are you sure you want to delete the chat '{chat.Name}' in the workspace '{workspaceName}'?"), @@ -124,13 +150,30 @@ public static class WorkspaceBehaviour private static async Task EnsureWorkspace(Guid workspaceId, string workspaceName) { var workspacePath = Path.Join(SettingsManager.DataDirectory, "workspaces", workspaceId.ToString()); - - if(Path.Exists(workspacePath)) - return; - - Directory.CreateDirectory(workspacePath); var workspaceNamePath = Path.Join(workspacePath, "name"); - await File.WriteAllTextAsync(workspaceNamePath, workspaceName, Encoding.UTF8); + + if(!Path.Exists(workspacePath)) + Directory.CreateDirectory(workspacePath); + + try + { + // When the name file is missing or empty, write it (self-heal). + // Otherwise, keep the existing name: + if (!File.Exists(workspaceNamePath)) + { + await File.WriteAllTextAsync(workspaceNamePath, workspaceName, Encoding.UTF8); + } + else + { + var existing = await File.ReadAllTextAsync(workspaceNamePath, Encoding.UTF8); + if (string.IsNullOrWhiteSpace(existing)) + await File.WriteAllTextAsync(workspaceNamePath, workspaceName, Encoding.UTF8); + } + } + catch + { + // Ignore IO issues to avoid interrupting background initialization. + } } public static async Task EnsureBiasWorkspace() => await EnsureWorkspace(KnownWorkspaces.BIAS_WORKSPACE_ID, "Bias of the Day"); diff --git a/app/MindWork AI Studio/packages.lock.json b/app/MindWork AI Studio/packages.lock.json index 3c304325..66ed00c2 100644 --- a/app/MindWork AI Studio/packages.lock.json +++ b/app/MindWork AI Studio/packages.lock.json @@ -4,23 +4,23 @@ "net9.0": { "CodeBeam.MudBlazor.Extensions": { "type": "Direct", - "requested": "[8.2.3, )", - "resolved": "8.2.3", - "contentHash": "mwZSZY8kHL7SqNOZEfXcTAQso2UFTVt7ZQPMXPFNf07vhliunu3U8n+Mp60NQ7lPurdNuTAsfXmj1FXBoxzpPg==", + "requested": "[8.2.4, )", + "resolved": "8.2.4", + "contentHash": "IaQoIcREfkHq8VUxFDZQrK69blNw+0FwTjC8JGHhhSGugJZ3UFOjhpYYAhiU/1Eue3PXySLXzJFXzsD/hIArVw==", "dependencies": { "BuildBundlerMinifier": "3.2.449", "CsvHelper": "33.0.1", - "Microsoft.AspNetCore.Components": "9.0.6", - "Microsoft.AspNetCore.Components.Web": "9.0.6", + "Microsoft.AspNetCore.Components": "9.0.7", + "Microsoft.AspNetCore.Components.Web": "9.0.7", "MudBlazor": "8.0.0", "ZXing.Net": "0.16.9" } }, "HtmlAgilityPack": { "type": "Direct", - "requested": "[1.12.1, )", - "resolved": "1.12.1", - "contentHash": "SP6/2Y26CXtxjXn0Wwsom9Ek35SNWKHEu/IWhNEFejBSSVWWXPRSlpqpBSYWv1SQhYFnwMO01xVbEdK3iRR4hg==" + "requested": "[1.12.2, )", + "resolved": "1.12.2", + "contentHash": "btF/9sB65h0V9ipZxVfEQ9fxDwXSFRwhi4Z1qFBgnXONqWVKZE3LxS0JEMW73G3gvrFI7/IAqLA1y/15HDa3fw==" }, "LuaCSharp": { "type": "Direct", @@ -30,24 +30,24 @@ }, "Microsoft.Extensions.FileProviders.Embedded": { "type": "Direct", - "requested": "[9.0.6, )", - "resolved": "9.0.6", - "contentHash": "KyXroxnOI6ZpCth3pW718Fn4hwtvgjjLCKRJg43UFR/5Wfo0ZKVGUJGnQT3+fTkoyLCElJUKwIHezY6IjOXz/g==", + "requested": "[9.0.8, )", + "resolved": "9.0.8", + "contentHash": "LVm1o08C5eSB+WvhOEtp/cm/I3s7bCoYisTBYKgR3KEfHXkKfvkLPXfg4CNHYkxPqZ4T/XuGENDLtbhDywGFHA==", "dependencies": { - "Microsoft.Extensions.FileProviders.Abstractions": "9.0.6" + "Microsoft.Extensions.FileProviders.Abstractions": "9.0.8" } }, "Microsoft.NET.ILLink.Tasks": { "type": "Direct", - "requested": "[9.0.6, )", - "resolved": "9.0.6", - "contentHash": "TXy3SbJzGXQbxxIxCjdrp8bwEyTDImyYNpTpd6v7P3JL2Y7dno8EYG7dPezfYTa5SoWKdhbH9cbnwHHs3BR5gA==" + "requested": "[9.0.8, )", + "resolved": "9.0.8", + "contentHash": "rd1CbIsMtVPtZNTIVD6Xydue//klYOOQIDpRgu3BHtv17AlpRs74/6QFbcYgMm/jL+naVU2T3OFLxVSLV5lQLQ==" }, "MudBlazor": { "type": "Direct", - "requested": "[8.9.0, )", - "resolved": "8.9.0", - "contentHash": "KdjXMXiSvl6uNr+S2YDhGI1aX/TULMQejQSniMlp6QTss35NKFrJyrMAmN082HNvOObuKdnTtLpntJ7rM5Op/A==", + "requested": "[8.12.0, )", + "resolved": "8.12.0", + "contentHash": "ZwgHPt2DwiQoFeP8jxPzNEsUmJF17ljtospVH+uMUKUKpklz6jEkdE5vNs7PnHaPH9HEbpFEQgJw8QPlnFZjsQ==", "dependencies": { "Microsoft.AspNetCore.Components": "9.0.1", "Microsoft.AspNetCore.Components.Web": "9.0.1", @@ -56,12 +56,12 @@ }, "MudBlazor.Markdown": { "type": "Direct", - "requested": "[8.7.0, )", - "resolved": "8.7.0", - "contentHash": "sPzha7UGVcguFR0wxDfMZ5ImqL5prxNnD4rxB25UHK1zxdeQKhwsA5XG6nFPrh8qHArT9IXMGe4sOogQnXfWGA==", + "requested": "[8.11.0, )", + "resolved": "8.11.0", + "contentHash": "R36jtzjltldsSB5qbTuEHeHiZgSLJlcPoVp9vMByig0E96Y4uf2MY9lEBjbBSr/B9Lqt9qt6EzTCb9Wd2AN56Q==", "dependencies": { - "Markdig": "0.41.2", - "MudBlazor": "8.7.0" + "Markdig": "0.41.3", + "MudBlazor": "8.11.0" } }, "ReverseMarkdown": { @@ -85,77 +85,77 @@ }, "Markdig": { "type": "Transitive", - "resolved": "0.41.2", - "contentHash": "Fp6YZqOVs60rgDGAUm81K/HYt4yVgpmMpGc7PcLV9nnpbkZLSxsU8/cnpR8U0XM6BOcDiVYLg3HkAanUVR0Erw==" + "resolved": "0.41.3", + "contentHash": "i3vSTyGpBGWbJB04aJ3cPJs0T3BV2e1nduW3EUHK/i+xUupYbym75iZPss/XjqhS5JlBErwQYnx7ofK3Zcsozg==" }, "Microsoft.AspNetCore.Authorization": { "type": "Transitive", - "resolved": "9.0.6", - "contentHash": "FG/fHZAg2J9NKt+y2BH+fMjc+TqA7wlri/3PNtoSgvclMlr5iPshDLXHQgvS9l7IUzzfkqQ3/DWPYuA4OJu75A==", + "resolved": "9.0.7", + "contentHash": "P0Gej6X5cEoK+sS9XpgYSzg0Nz8OOlvfQb12aOAJW/P4b9nAzLQCVoNp1GDyR/P8eMSnoPARiKPaa6q51iR0oA==", "dependencies": { - "Microsoft.AspNetCore.Metadata": "9.0.6", - "Microsoft.Extensions.Logging.Abstractions": "9.0.6", - "Microsoft.Extensions.Options": "9.0.6" + "Microsoft.AspNetCore.Metadata": "9.0.7", + "Microsoft.Extensions.Logging.Abstractions": "9.0.7", + "Microsoft.Extensions.Options": "9.0.7" } }, "Microsoft.AspNetCore.Components": { "type": "Transitive", - "resolved": "9.0.6", - "contentHash": "4WzUBnpxqm0Gvv3XX47h5g09LN4dtQpJjYW2LAfoaVeho5TLM00uDj2YHzjxQwcRTdrG7tZDCyf4V4wwRpjGcA==", + "resolved": "9.0.7", + "contentHash": "cZpVsxWWGagoP2U6Kjqm107gVZHTmiM2m7YDNRsScTWoBB1iyEIznvYG9ZK4XkDY4yDUTdnZrXRMMVu8K7dJ8Q==", "dependencies": { - "Microsoft.AspNetCore.Authorization": "9.0.6", - "Microsoft.AspNetCore.Components.Analyzers": "9.0.6" + "Microsoft.AspNetCore.Authorization": "9.0.7", + "Microsoft.AspNetCore.Components.Analyzers": "9.0.7" } }, "Microsoft.AspNetCore.Components.Analyzers": { "type": "Transitive", - "resolved": "9.0.6", - "contentHash": "UXMjbezwMMoL21L20OB1BLGF9M1BFPzdWiezaiZSBG55z36BEXvs8hetKw7PiuytOdUqWFI1wkPd3MD9jpeKAw==" + "resolved": "9.0.7", + "contentHash": "SlMcfUJHFxjIFAecPY55in8u93AZo5NQrRlPY3hKrSsLEgyjjtZGzWIn+F9RluHw5wRct/QFRCt2sQwEhn8qtA==" }, "Microsoft.AspNetCore.Components.Forms": { "type": "Transitive", - "resolved": "9.0.6", - "contentHash": "GHdFdrU+9ePkuE7S2g7iu+Lg8FPBY9qGaK+FPSBHNx8ulEdrOHJhufb1FZH/m++NoJgcikOzJ14+eL96HfBr8g==", + "resolved": "9.0.7", + "contentHash": "ecnFWXV/ClmBfkevmalj1e1+T00AkihOyK8yQdKOwKmibraYphyup4BdOLP7v17PNVF4d5njsoHmFtVBvYpsJg==", "dependencies": { - "Microsoft.AspNetCore.Components": "9.0.6" + "Microsoft.AspNetCore.Components": "9.0.7" } }, "Microsoft.AspNetCore.Components.Web": { "type": "Transitive", - "resolved": "9.0.6", - "contentHash": "c+2B1DdgAOKXt+mMcZgeQPbdoW0Ro+783m+yPK/QQHhjV8cbkPBWXg6OMJC2Vzum5tfAC3coNhlmcLUUBwc3ZQ==", + "resolved": "9.0.7", + "contentHash": "fP+WmahEXWgCTgL/aRo/y75v1nni8E8WfbpkbWOeMBk2UdQORqQbFPIkttu8JPYVACDfVYgEDKIDtVqEY9Akkg==", "dependencies": { - "Microsoft.AspNetCore.Components": "9.0.6", - "Microsoft.AspNetCore.Components.Forms": "9.0.6", - "Microsoft.Extensions.DependencyInjection": "9.0.6", - "Microsoft.Extensions.Primitives": "9.0.6", - "Microsoft.JSInterop": "9.0.6" + "Microsoft.AspNetCore.Components": "9.0.7", + "Microsoft.AspNetCore.Components.Forms": "9.0.7", + "Microsoft.Extensions.DependencyInjection": "9.0.7", + "Microsoft.Extensions.Primitives": "9.0.7", + "Microsoft.JSInterop": "9.0.7" } }, "Microsoft.AspNetCore.Metadata": { "type": "Transitive", - "resolved": "9.0.6", - "contentHash": "SZAmFKGsQPP/xyDir96J5UNTAdCsfeCpPwFO9EewIcgQ8gUr3KHmn4CTC2HmHIDdiTujGC2T3VBcSxmrY+3n/g==" + "resolved": "9.0.7", + "contentHash": "bM2x5yps2P6eXqFkR5ztKX7QRGGqJ4Vy5PxVdR7ADjYPNmMhrD57r8d9H++hpljk9sdjKI3Sppd7NZyA721nEA==" }, "Microsoft.Extensions.DependencyInjection": { "type": "Transitive", - "resolved": "9.0.6", - "contentHash": "vS65HMo5RS10DD543fknsyVDxihMcVxVn3/hNaILgBxWYnOLxWIeCIO9X0QFuCvPRNjClvXe9Aj8KaQNx7vFkQ==", + "resolved": "9.0.7", + "contentHash": "i05AYA91vgq0as84ROVCyltD2gnxaba/f1Qw2rG7mUsS0gv8cPTr1Gm7jPQHq7JTr4MJoQUcanLVs16tIOUJaQ==", "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.6" + "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.7" } }, "Microsoft.Extensions.DependencyInjection.Abstractions": { "type": "Transitive", - "resolved": "9.0.6", - "contentHash": "0Zn6nR/6g+90MxskZyOOMPQvnPnrrGu6bytPwkV+azDcTtCSuQ1+GJUrg8Klmnrjk1i6zMpw2lXijl+tw7Q3kA==" + "resolved": "9.0.7", + "contentHash": "iPK1FxbGFr2Xb+4Y+dTYI8Gupu9pOi8I3JPuPsrogUmEhe2hzZ9LpCmolMEBhVDo2ikcSr7G5zYiwaapHSQTew==" }, "Microsoft.Extensions.FileProviders.Abstractions": { "type": "Transitive", - "resolved": "9.0.6", - "contentHash": "q9FPkSGVA9ipI255p3PBAvWNXas5Tzjyp/DwYSwT+46mIFw9fWZahsF6vHpoxLt5/vtANotH2sAm7HunuFIx9g==", + "resolved": "9.0.8", + "contentHash": "4zZbQ4w+hCMm9J+z5NOj3giIPT2MhZxx05HX/MGuAmDBbjOuXlYIIRN+t4V6OLxy5nXZIcXO+dQMB/OWubuDkw==", "dependencies": { - "Microsoft.Extensions.Primitives": "9.0.6" + "Microsoft.Extensions.Primitives": "9.0.8" } }, "Microsoft.Extensions.Localization": { @@ -176,30 +176,30 @@ }, "Microsoft.Extensions.Logging.Abstractions": { "type": "Transitive", - "resolved": "9.0.6", - "contentHash": "LFnyBNK7WtFmKdnHu3v0HOYQ8BcjYuy0jdC9pgCJ/rbLKoJEG9/dBzSKMEeeWDbDeoWS0TIxOC8a9CM5ufca3A==", + "resolved": "9.0.7", + "contentHash": "sMM6NEAdUTE/elJ2wqjOi0iBWqZmSyaTByLF9e8XHv6DRJFFnOe0N+s8Uc6C91E4SboQCfLswaBIZ+9ZXA98AA==", "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.6" + "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.7" } }, "Microsoft.Extensions.Options": { "type": "Transitive", - "resolved": "9.0.6", - "contentHash": "wUPhNM1zsI58Dy10xRdF2+pnsisiUuETg5ZBncyAEEUm/CQ9Q1vmivyUWH8RDbAlqyixf2dJNQ2XZb7HsKUEQw==", + "resolved": "9.0.7", + "contentHash": "trJnF6cRWgR5uMmHpGoHmM1wOVFdIYlELlkO9zX+RfieK0321Y55zrcs4AaEymKup7dxgEN/uJU25CAcMNQRXw==", "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.6", - "Microsoft.Extensions.Primitives": "9.0.6" + "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.7", + "Microsoft.Extensions.Primitives": "9.0.7" } }, "Microsoft.Extensions.Primitives": { "type": "Transitive", - "resolved": "9.0.6", - "contentHash": "BHniU24QV67qp1pJknqYSofAPYGmijGI8D+ci9yfw33iuFdyOeB9lWTg78ThyYLyQwZw3s0vZ36VMb0MqbUuLw==" + "resolved": "9.0.8", + "contentHash": "tizSIOEsIgSNSSh+hKeUVPK7xmTIjR8s+mJWOu1KXV3htvNQiPMFRMO17OdI1y/4ZApdBVk49u/08QGC9yvLug==" }, "Microsoft.JSInterop": { "type": "Transitive", - "resolved": "9.0.6", - "contentHash": "IS9tI2pnpeoX+d4CO4FuTsm+6uymanPGSpBhHefTfMNIwBUvwLIcXch4su0QEW4MSslYdDJ9yzz2+OuIUuI5lw==" + "resolved": "9.0.7", + "contentHash": "+FFcgE9nFf/M/8sSJPzKnGFkALO5Q3mCdljpsxe/ZFRt6bqMcImv8d74HgMamOauhmVlC7MU9GmnbblF9CpNlQ==" }, "ZXing.Net": { "type": "Transitive", diff --git a/app/MindWork AI Studio/wwwroot/app.css b/app/MindWork AI Studio/wwwroot/app.css index a0d9e860..cd80c5a9 100644 --- a/app/MindWork AI Studio/wwwroot/app.css +++ b/app/MindWork AI Studio/wwwroot/app.css @@ -111,6 +111,11 @@ padding-bottom: 12px; } +/* Fixed the margin for the Markdown code blocks */ +.mud-card-content .mud-markdown-body .hljs.mud-markdown-code-highlight { + margin-bottom:2em; +} + .code-block { background-color: #2d2d2d; color: #f8f8f2; @@ -140,4 +145,9 @@ .no-elevation { box-shadow: none !important; +} + +.sources-card-header { + top: 0em !important; + left: 2.2em !important; } \ No newline at end of file diff --git a/app/MindWork AI Studio/wwwroot/changelog/v0.9.50.md b/app/MindWork AI Studio/wwwroot/changelog/v0.9.50.md index cf1aee39..2d5d0b3d 100644 --- a/app/MindWork AI Studio/wwwroot/changelog/v0.9.50.md +++ b/app/MindWork AI Studio/wwwroot/changelog/v0.9.50.md @@ -1,3 +1,13 @@ -# v0.9.50, build 225 (2025-07-xx xx:xx UTC) +# v0.9.50, build 225 (2025-08-10 16:40 UTC) - Added an option for chat templates to predefine a user input. -- Added the ability to create chat templates from existing chats. \ No newline at end of file +- Added the ability to create chat templates from existing chats. +- Added an enterprise IT configuration option to prevent manual addition of LLM providers in managed environments. +- Added support for self-hosted LLMs using [vLLM](https://blog.vllm.ai/2023/06/20/vllm.html). +- Improved the display of enterprise configurations on the about page; configuration details are only shown when needed. +- Improved hot reloading on Unix-like systems when entire plugins were added or removed. +- Improved the German translation. +- Fixed a visual bug in all assistants that occurred when no profile was selected. +- Upgraded .NET to v9.0.8 +- Upgraded MudBlazor to v8.11.0 +- Upgraded Rust to v1.89.0 +- Upgraded dependencies. \ No newline at end of file diff --git a/app/MindWork AI Studio/wwwroot/changelog/v0.9.51.md b/app/MindWork AI Studio/wwwroot/changelog/v0.9.51.md new file mode 100644 index 00000000..65b07743 --- /dev/null +++ b/app/MindWork AI Studio/wwwroot/changelog/v0.9.51.md @@ -0,0 +1,27 @@ +# v0.9.51, build 226 (2025-09-04 18:02 UTC) +- Added support for predefined chat templates in configuration plugins to help enterprises roll out consistent templates across the organization. +- Added the ability to choose between automatic and manual update installation to the app settings (default is manual). +- Added the ability to control the update installation behavior by configuration plugins. +- Added the option for LLM providers to stream citations or sources. +- Added support for citations to the chat interface. This feature is invisible unless an LLM model is streaming citations or sources. +- Added the Responses API according to the OpenAI documentation. It is currently only used by OpenAI, but we could use the API for other providers as soon as someone offers it. This means that all text-based LLMs from OpenAI can now be used in MindWork AI Studio. For example, the Deep Research models for comprehensive research tasks. +- Added support for web searches. Currently supported by some OpenAI models (e.g., GPT5, newer Omni models, Deep Research models) and Perplexity. Used sources are displayed visually in the chat interface. +- Added support for the LLM provider [Perplexity](https://www.perplexity.ai/). It can be used for web searches, deep research, and general chat tasks. Thanks `peerschuett` for the contribution. +- Improved memory usage in several areas of the app. +- Improved plugin management for configuration plugins so that hot reload detects when a provider or chat template has been removed. +- Improved the dialog for naming chats and workspaces to ensure valid inputs are entered. +- Improved the dialog invocation by making parameter provision more robust. +- Improved the text summarizer assistant by allowing users to specify important aspects & optimized the generated prompt. +- Improved the OpenAI provider by supporting more models and capabilities. +- Improved the German translation. +- Improved the enterprise configuration of complex objects, such as chat templates: the corresponding Lua tables are now optional. This ensures existing enterprise configurations remain valid when new configuration options are added and don't require adjustments with every update. +- Changed the configuration plugin setting name for how often to check for updates from `UpdateBehavior` to `UpdateInterval`. +- Fixed a bug in various assistants where some text fields were not reset when resetting. +- Fixed the input field header in the dialog for naming chats and workspaces. +- Fixed a rare chat-related bug that could occur when a workspace was not created correctly. Thank you, Naomi, for reporting this issue. +- Fixed a bug in the web content reader where a preconfigured LLM provider was not recognized, resulting in an error message. +- Fixed another bug in the web content reader: the system incorrectly evaluated whether the content cleaning agent was preselected. Users had to first deactivate the agent and then reactivate it to make it work correctly. +- Fixed a bug in the assistants for text summarization, translations, and legal check: the web content reader preferences were not being applied when resetting the assistant. +- Fixed the bottom margin of code blocks in chat. The bottom margins were too small. This was particularly problematic when horizontal scrollbars were necessary. +- Fixed a bug in assistants: the selected profile wasn't reset when resetting the assistant. +- Upgraded dependencies. \ No newline at end of file diff --git a/app/MindWork AI Studio/wwwroot/changelog/v0.9.52.md b/app/MindWork AI Studio/wwwroot/changelog/v0.9.52.md new file mode 100644 index 00000000..12632a9c --- /dev/null +++ b/app/MindWork AI Studio/wwwroot/changelog/v0.9.52.md @@ -0,0 +1 @@ +# v0.9.52, build 227 (2025-09-xx xx:xx UTC) diff --git a/app/MindWork AI Studio/wwwroot/system/CodeBeam.MudBlazor.Extensions/MudExtensions.min.css b/app/MindWork AI Studio/wwwroot/system/CodeBeam.MudBlazor.Extensions/MudExtensions.min.css index d8d8f927..21f5abee 100755 --- a/app/MindWork AI Studio/wwwroot/system/CodeBeam.MudBlazor.Extensions/MudExtensions.min.css +++ b/app/MindWork AI Studio/wwwroot/system/CodeBeam.MudBlazor.Extensions/MudExtensions.min.css @@ -1 +1 @@ -.mud-combobox{margin:0;padding:0;position:relative;list-style:none;}.mud-combobox.mud-combobox-padding{padding-top:8px;padding-bottom:8px;}.mud-combobox-item{width:100%;display:flex;position:relative;box-sizing:border-box;text-align:start;align-items:center;padding-top:8px;padding-bottom:8px;justify-content:flex-start;text-decoration:none;outline:none;min-height:48px;}.mud-combobox-item.mud-combobox-item-comfort{padding-top:4px;padding-bottom:4px;min-height:40px;}.mud-combobox-item.mud-combobox-item-slim{padding-top:2px;padding-bottom:2px;min-height:32px;}.mud-combobox-item.mud-combobox-item-superslim{padding-top:0;padding-bottom:0;min-height:24px;}.mud-combobox-item.mud-combobox-item-disabled{color:var(--mud-palette-action-disabled) !important;cursor:default !important;pointer-events:none !important;}.mud-combobox-item.mud-combobox-item-disabled .mud-combobox-item-icon{color:var(--mud-palette-action-disabled) !important;}.mud-combobox-item-clickable{color:inherit;border:0;cursor:pointer;margin:0;outline:0;user-select:none;border-radius:0;vertical-align:middle;background-color:transparent;-webkit-appearance:none;-webkit-tap-highlight-color:transparent;transition:background-color 150ms cubic-bezier(.4,0,.2,1) 0ms;}.mud-combobox-item-clickable:hover{background-color:var(--mud-palette-action-default-hover);}.mud-combobox-item-gutters{padding-left:16px;padding-right:16px;}.mud-combobox-item-text{flex:1 1 auto;min-width:0;margin-top:4px;margin-bottom:4px;padding-inline-start:8px;padding-inline-end:8px;}.mud-combobox-item-text-inset{padding-left:56px;padding-inline-start:56px;padding-inline-end:unset;}.mud-combobox-item-icon{color:var(--mud-palette-action-default);display:inline-flex;flex-shrink:0;padding-inline-start:8px;padding-inline-end:8px;margin-inline-start:-4px;margin-inline-end:4px;}.mud-combobox-item-multiselect{max-height:32px;}.mud-combobox-item-multiselect.mud-combobox-item-multiselect-checkbox{padding-inline-end:16px;}.mud-combobox-subheader{color:var(--mud-palette-action-default);background-color:var(--mud-palette-background);font-size:.875rem;box-sizing:border-box;list-style:none;font-weight:500;padding-top:16px;padding-bottom:16px;}.mud-combobox-subheader-secondary-background{background-color:var(--mud-palette-background-gray);}.mud-combobox-subheader-gutters{padding-left:16px;padding-right:16px;}.mud-combobox-subheader-inset{padding-left:72px;padding-inline-start:72px;padding-inline-end:unset;}.mud-combobox-subheader-sticky{top:-8px;z-index:1;position:sticky;}.mud-combobox-subheader-sticky.mud-combobox-subheader-sticky-dense{top:0;}.mud-combobox-item-hilight{background-color:var(--mud-palette-background-gray);}.mud-combobox-item-hilight{background-color:var(--mud-palette-lines-default) !important;}.mud-combobox-item-bordered{border-left:4px solid var(--mud-palette-lines-default);padding-inline-start:12px;}.mud-combobox-item-bordered-primary{border-left:4px solid var(--mud-palette-primary);padding-inline-start:12px;}.mud-combobox-item-bordered-secondary{border-left:4px solid var(--mud-palette-secondary);padding-inline-start:12px;}.mud-combobox-item-bordered-tertiary{border-left:4px solid var(--mud-palette-tertiary);padding-inline-start:12px;}.mud-combobox-item-bordered-info{border-left:4px solid var(--mud-palette-info);padding-inline-start:12px;}.mud-combobox-item-bordered-success{border-left:4px solid var(--mud-palette-success);padding-inline-start:12px;}.mud-combobox-item-bordered-warning{border-left:4px solid var(--mud-palette-warning);padding-inline-start:12px;}.mud-combobox-item-bordered-error{border-left:4px solid var(--mud-palette-error);padding-inline-start:12px;}.mud-combobox-item-bordered-dark{border-left:4px solid var(--mud-palette-dark);padding-inline-start:12px;}.mud-combobox-item-nested-background{background-color:var(--mud-palette-background-gray);}.mud-combobox-item-avatar{min-width:56px;flex-shrink:0;}.mud-combobox-highlighter{background-color:transparent;font-weight:bold;text-decoration:underline;}.mud-gallery-selected-toolbox{left:0;right:0;height:56px;width:100%;background-color:rgba(0,0,0,.6);}.mud-gallery-selected-toolbox.gallery-toolbox-top{top:0;}.mud-gallery-selected-toolbox.gallery-toolbox-bottom{bottom:0;}.mud-page{display:grid;box-sizing:border-box;width:100%;}.mud-page.mud-page-height-full{min-height:100vh;}.mud-page.mud-page-height-full-without-appbar{min-height:calc(100vh - var(--mud-appbar-height));}.mud-page.mud-page-column-2{grid-template-columns:repeat(2,50%);}.mud-page.mud-page-column-3{grid-template-columns:repeat(3,33.33333%);}.mud-page.mud-page-column-4{grid-template-columns:repeat(4,25%);}.mud-page.mud-page-column-5{grid-template-columns:repeat(5,20%);}.mud-page.mud-page-column-6{grid-template-columns:repeat(6,16.66667%);}.mud-page.mud-page-column-7{grid-template-columns:repeat(7,14.28571%);}.mud-page.mud-page-column-8{grid-template-columns:repeat(8,12.5%);}.mud-page.mud-page-column-9{grid-template-columns:repeat(9,11.11111%);}.mud-page.mud-page-column-10{grid-template-columns:repeat(10,10%);}.mud-page.mud-page-column-11{grid-template-columns:repeat(11,9.09091%);}.mud-page.mud-page-column-12{grid-template-columns:repeat(12,8.33333%);}.mud-page.mud-page-row-2{grid-template-rows:repeat(2,50%);}.mud-page.mud-page-row-3{grid-template-rows:repeat(3,33.33333%);}.mud-page.mud-page-row-4{grid-template-rows:repeat(4,25%);}.mud-page.mud-page-row-5{grid-template-rows:repeat(5,20%);}.mud-page.mud-page-row-6{grid-template-rows:repeat(6,16.66667%);}.mud-page.mud-page-row-7{grid-template-rows:repeat(7,14.28571%);}.mud-page.mud-page-row-8{grid-template-rows:repeat(8,12.5%);}.mud-page.mud-page-row-9{grid-template-rows:repeat(9,11.11111%);}.mud-page.mud-page-row-10{grid-template-rows:repeat(10,10%);}.mud-page.mud-page-row-11{grid-template-rows:repeat(11,9.09091%);}.mud-page.mud-page-row-12{grid-template-rows:repeat(12,8.33333%);}.mud-section{display:inline-grid;overflow:auto;}.mud-section.mud-section-col-start-1{grid-column-start:1;}.mud-section.mud-section-col-start-2{grid-column-start:2;}.mud-section.mud-section-col-start-3{grid-column-start:3;}.mud-section.mud-section-col-start-4{grid-column-start:4;}.mud-section.mud-section-col-start-5{grid-column-start:5;}.mud-section.mud-section-col-start-6{grid-column-start:6;}.mud-section.mud-section-col-start-7{grid-column-start:7;}.mud-section.mud-section-col-start-8{grid-column-start:8;}.mud-section.mud-section-col-start-9{grid-column-start:9;}.mud-section.mud-section-col-start-10{grid-column-start:10;}.mud-section.mud-section-col-start-11{grid-column-start:11;}.mud-section.mud-section-col-start-12{grid-column-start:12;}.mud-section.mud-section-col-end-1{grid-column-end:1;}.mud-section.mud-section-col-end-2{grid-column-end:2;}.mud-section.mud-section-col-end-3{grid-column-end:3;}.mud-section.mud-section-col-end-4{grid-column-end:4;}.mud-section.mud-section-col-end-5{grid-column-end:5;}.mud-section.mud-section-col-end-6{grid-column-end:6;}.mud-section.mud-section-col-end-7{grid-column-end:7;}.mud-section.mud-section-col-end-8{grid-column-end:8;}.mud-section.mud-section-col-end-9{grid-column-end:9;}.mud-section.mud-section-col-end-10{grid-column-end:10;}.mud-section.mud-section-col-end-11{grid-column-end:11;}.mud-section.mud-section-col-end-12{grid-column-end:12;}.mud-section.mud-section-col-end-13{grid-column-end:13;}.mud-section.mud-section-row-start-1{grid-row-start:1;}.mud-section.mud-section-row-start-2{grid-row-start:2;}.mud-section.mud-section-row-start-3{grid-row-start:3;}.mud-section.mud-section-row-start-4{grid-row-start:4;}.mud-section.mud-section-row-start-5{grid-row-start:5;}.mud-section.mud-section-row-start-6{grid-row-start:6;}.mud-section.mud-section-row-start-7{grid-row-start:7;}.mud-section.mud-section-row-start-8{grid-row-start:8;}.mud-section.mud-section-row-start-9{grid-row-start:9;}.mud-section.mud-section-row-start-10{grid-row-start:10;}.mud-section.mud-section-row-start-11{grid-row-start:11;}.mud-section.mud-section-row-start-12{grid-row-start:12;}.mud-section.mud-section-row-end-1{grid-row-end:1;}.mud-section.mud-section-row-end-2{grid-row-end:2;}.mud-section.mud-section-row-end-3{grid-row-end:3;}.mud-section.mud-section-row-end-4{grid-row-end:4;}.mud-section.mud-section-row-end-5{grid-row-end:5;}.mud-section.mud-section-row-end-6{grid-row-end:6;}.mud-section.mud-section-row-end-7{grid-row-end:7;}.mud-section.mud-section-row-end-8{grid-row-end:8;}.mud-section.mud-section-row-end-9{grid-row-end:9;}.mud-section.mud-section-row-end-10{grid-row-end:10;}.mud-section.mud-section-row-end-11{grid-row-end:11;}.mud-section.mud-section-row-end-12{grid-row-end:12;}.mud-section.mud-section-row-end-13{grid-row-end:13;}.mud-popup{z-index:2000;overflow:auto;background-color:var(--mud-palette-background);min-height:var(--mud-appbar-height);}.mud-popup.mud-popup-center{height:300px;left:50%;top:50%;transform:translate(-50%,-50%);width:320px;aspect-ratio:1/1;}.mud-range-container{align-items:center;margin:20px 0;}.mud-range-container input::-webkit-slider-thumb{pointer-events:all;position:relative;z-index:1;}.mud-range-container input::-moz-range-thumb{pointer-events:all;position:relative;z-index:10;}.mud-range-container input::-moz-range-track{position:relative;z-index:-1;}.mud-range-container input:last-of-type::-moz-range-track{-moz-appearance:none;}.mud-range-container .mud-slider-input:last-of-type{position:absolute;pointer-events:none;top:0;}.mud-range-container input[type=range]::-webkit-slider-thumb{pointer-events:all;}.mud-range-display{text-align:center;}.mud-signature-pad-container{touch-action:none;}.mud-splitter{display:grid;position:relative;width:100%;}.mud-splitter-content{overflow:auto;}.mud-splitter-thumb ::-webkit-slider-runnable-track{visibility:hidden !important;height:100% !important;}.mud-splitter-thumb ::-moz-range-track{visibility:hidden !important;height:100% !important;}.mud-splitter-track{position:absolute;top:50%;transform:translateY(-50%);height:100%;}.mud-splitter-track.mud-slider{visibility:hidden !important;}.mud-splitter-track.mud-slider .mud-slider-container{height:100% !important;}.mud-splitter-track.mud-slider .mud-slider-input{top:50%;}.mud-splitter-thumb ::-webkit-slider-thumb{visibility:visible !important;appearance:none !important;-webkit-appearance:none !important;top:50% !important;transform:translateY(-50%) !important;height:100% !important;width:8px !important;border:none !important;border-radius:0 !important;cursor:ew-resize !important;}.mud-splitter-thumb-disabled ::-webkit-slider-thumb{cursor:default !important;}.mud-splitter-thumb ::-moz-range-thumb{visibility:visible !important;appearance:none !important;-moz-appearance:none !important;top:50% !important;transform:translateY(-50%) !important;height:100% !important;width:8px !important;border:none !important;border-radius:0 !important;cursor:ew-resize !important;}.mud-splitter-thumb-disabled ::-moz-range-thumb{cursor:default !important;}.mud-stepper-header{min-height:62px;border-radius:var(--mud-default-borderradius);}.mud-stepper-header.mud-stepper-header-non-linear:hover{background-color:var(--mud-palette-action-default-hover);}.mud-stepper-badge{z-index:21;}.mud-switch-m3{cursor:pointer;display:inline-flex;align-items:center;vertical-align:middle;margin-top:4px;margin-bottom:4px;-webkit-tap-highlight-color:transparent;}.mud-switch-m3.mud-disabled{color:var(--mud-palette-text-disabled) !important;cursor:default;}.mud-switch-m3.mud-readonly,.mud-switch-m3 .mud-readonly:hover{cursor:default;background-color:transparent !important;}.mud-switch-span-m3{width:52px;height:32px;display:inline-flex;z-index:0;position:relative;box-sizing:border-box;flex-shrink:0;vertical-align:middle;}.mud-switch-span-m3.mud-switch-child-content-m3{margin-inline-end:12px;}.mud-switch-span-m3 .mud-switch-track-m3{width:52px;height:32px;z-index:-1;transition:opacity 150ms cubic-bezier(.4,0,.2,1) 0ms,background-color 150ms cubic-bezier(.4,0,.2,1) 0ms;border-radius:30px;background-color:var(--mud-palette-background);border:2px solid;}.mud-switch-span-m3 .mud-switch-track-m3.mud-switch-track-default-m3{border-color:var(--mud-palette-text-primary);}.mud-switch-span-m3 .mud-switch-track-m3.mud-switch-track-primary-m3{border-color:var(--mud-palette-primary);}.mud-switch-span-m3 .mud-switch-track-m3.mud-switch-track-secondary-m3{border-color:var(--mud-palette-secondary);}.mud-switch-span-m3 .mud-switch-track-m3.mud-switch-track-tertiary-m3{border-color:var(--mud-palette-tertiary);}.mud-switch-span-m3 .mud-switch-track-m3.mud-switch-track-info-m3{border-color:var(--mud-palette-info);}.mud-switch-span-m3 .mud-switch-track-m3.mud-switch-track-success-m3{border-color:var(--mud-palette-success);}.mud-switch-span-m3 .mud-switch-track-m3.mud-switch-track-warning-m3{border-color:var(--mud-palette-warning);}.mud-switch-span-m3 .mud-switch-track-m3.mud-switch-track-error-m3{border-color:var(--mud-palette-error);}.mud-switch-span-m3 .mud-switch-track-m3.mud-switch-track-dark-m3{border-color:var(--mud-palette-dark);}.mud-switch-base-m3{padding-top:4px;padding-bottom:4px;padding-inline-start:8px;top:0;left:0;bottom:0;color:#fafafa;z-index:1;position:absolute;transition:left 150ms cubic-bezier(.4,0,.2,1) 0ms,transform 150ms cubic-bezier(.4,0,.2,1) 0ms,background-color 250ms cubic-bezier(.4,0,.2,1) 0ms,box-shadow 250ms cubic-bezier(.4,0,.2,1) 0ms;}.mud-switch-base-m3.mud-switch-base-dense-m3{padding-inline-start:4px;}.mud-switch-base-m3.mud-checked{transform:translateX(20px);padding:4px;}.mud-switch-base-m3.mud-checked+.mud-switch-track-m3{opacity:1;}.mud-switch-base-m3.mud-checked+.mud-switch-track-m3.mud-default{background-color:var(--mud-palette-text-primary);}.mud-switch-base-m3.mud-checked+.mud-switch-track-m3.mud-primary{background-color:var(--mud-palette-primary);}.mud-switch-base-m3.mud-checked+.mud-switch-track-m3.mud-secondary{background-color:var(--mud-palette-secondary);}.mud-switch-base-m3.mud-checked+.mud-switch-track-m3.mud-tertiary{background-color:var(--mud-palette-tertiary);}.mud-switch-base-m3.mud-checked+.mud-switch-track-m3.mud-info{background-color:var(--mud-palette-info);}.mud-switch-base-m3.mud-checked+.mud-switch-track-m3.mud-success{background-color:var(--mud-palette-success);}.mud-switch-base-m3.mud-checked+.mud-switch-track-m3.mud-warning{background-color:var(--mud-palette-warning);}.mud-switch-base-m3.mud-checked+.mud-switch-track-m3.mud-error{background-color:var(--mud-palette-error);}.mud-switch-base-m3.mud-checked+.mud-switch-track-m3.mud-dark{background-color:var(--mud-palette-dark);}.mud-switch-base-m3.mud-checked .mud-switch-thumb-m3{width:24px;height:24px;box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12);border-radius:50%;background-color:var(--mud-palette-background);}.mud-switch-base-m3:hover{background-color:var(--mud-palette-action-default-hover);}.mud-switch-base-m3.mud-switch-disabled{color:var(--mud-palette-gray-default) !important;}.mud-switch-base-m3.mud-switch-disabled+.mud-switch-track-m3{opacity:.12 !important;}.mud-switch-base-m3.mud-switch-disabled:hover,.mud-switch-base-m3.mud-switch-disabled:focus-visible{cursor:default;background-color:transparent !important;}.mud-switch-button-m3{display:flex;align-items:inherit;justify-content:inherit;}.mud-switch-button-m3 .mud-switch-input-m3{top:0;left:0;width:100%;cursor:inherit;height:100%;margin:0;opacity:0;padding:0;z-index:1;position:absolute;}.mud-switch-button-m3 .mud-switch-thumb-m3{width:16px;height:16px;box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12);border-radius:50%;}.mud-switch-button-m3 .mud-switch-thumb-m3.mud-switch-thumb-default-m3{background-color:var(--mud-palette-text-primary);}.mud-switch-button-m3 .mud-switch-thumb-m3.mud-switch-thumb-primary-m3{background-color:var(--mud-palette-primary);}.mud-switch-button-m3 .mud-switch-thumb-m3.mud-switch-thumb-secondary-m3{background-color:var(--mud-palette-secondary);}.mud-switch-button-m3 .mud-switch-thumb-m3.mud-switch-thumb-tertiary-m3{background-color:var(--mud-palette-tertiary);}.mud-switch-button-m3 .mud-switch-thumb-m3.mud-switch-thumb-info-m3{background-color:var(--mud-palette-info);}.mud-switch-button-m3 .mud-switch-thumb-m3.mud-switch-thumb-success-m3{background-color:var(--mud-palette-success);}.mud-switch-button-m3 .mud-switch-thumb-m3.mud-switch-thumb-warning-m3{background-color:var(--mud-palette-warning);}.mud-switch-button-m3 .mud-switch-thumb-m3.mud-switch-thumb-error-m3{background-color:var(--mud-palette-error);}.mud-switch-button-m3 .mud-switch-thumb-m3.mud-switch-thumb-dark-m3{background-color:var(--mud-palette-dark);}.mud-switch-button-m3 .mud-switch-thumb-m3.mud-switch-thumb-off-icon-m3{width:24px;height:24px;}.mud-wheel{overflow:hidden;min-width:0;flex-grow:1;user-select:none;-webkit-user-select:none;}.mud-wheel-item{width:100%;display:flex;align-content:center;justify-content:center;color:var(--mud-palette-text-secondary);border-radius:var(--mud-default-borderradius);}.mud-wheel-item.mud-wheel-item:hover:not(.mud-disabled){background-color:var(--mud-palette-action-default-hover);}.mud-wheel-item.wheel-item-closest{color:var(--mud-palette-text);}.mud-wheel-item.wheel-item-empty{min-height:32px !important;}.mud-wheel-item.wheel-item-empty.wheel-item-empty-dense{min-height:24px !important;}.mud-wheel-item.wheel-item-empty.wheel-item-empty:hover{background-color:unset;}.mud-wheel-item.mud-disabled{color:var(--mud-palette-text-disabled);}.middle-item{transform:scale(1.2);}.middle-item.mud-disabled{color:var(--mud-palette-text-disabled);}.mud-wheel-border{min-height:2px !important;}.mud-wheel-border.mud-wheel-border-default{background-color:var(--mud-palette-text-primary);}.mud-wheel-border.mud-wheel-border-primary{background-color:var(--mud-palette-primary);}.mud-wheel-border.wheel-border-gradient-primary{background-image:linear-gradient(to right,rgba(255,0,0,0),var(--mud-palette-primary),rgba(255,0,0,0));background-color:unset;}.mud-wheel-border.mud-wheel-border-secondary{background-color:var(--mud-palette-secondary);}.mud-wheel-border.wheel-border-gradient-secondary{background-image:linear-gradient(to right,rgba(255,0,0,0),var(--mud-palette-secondary),rgba(255,0,0,0));background-color:unset;}.mud-wheel-border.mud-wheel-border-tertiary{background-color:var(--mud-palette-tertiary);}.mud-wheel-border.wheel-border-gradient-tertiary{background-image:linear-gradient(to right,rgba(255,0,0,0),var(--mud-palette-tertiary),rgba(255,0,0,0));background-color:unset;}.mud-wheel-border.mud-wheel-border-info{background-color:var(--mud-palette-info);}.mud-wheel-border.wheel-border-gradient-info{background-image:linear-gradient(to right,rgba(255,0,0,0),var(--mud-palette-info),rgba(255,0,0,0));background-color:unset;}.mud-wheel-border.mud-wheel-border-success{background-color:var(--mud-palette-success);}.mud-wheel-border.wheel-border-gradient-success{background-image:linear-gradient(to right,rgba(255,0,0,0),var(--mud-palette-success),rgba(255,0,0,0));background-color:unset;}.mud-wheel-border.mud-wheel-border-warning{background-color:var(--mud-palette-warning);}.mud-wheel-border.wheel-border-gradient-warning{background-image:linear-gradient(to right,rgba(255,0,0,0),var(--mud-palette-warning),rgba(255,0,0,0));background-color:unset;}.mud-wheel-border.mud-wheel-border-error{background-color:var(--mud-palette-error);}.mud-wheel-border.wheel-border-gradient-error{background-image:linear-gradient(to right,rgba(255,0,0,0),var(--mud-palette-error),rgba(255,0,0,0));background-color:unset;}.mud-wheel-border.mud-wheel-border-dark{background-color:var(--mud-palette-dark);}.mud-wheel-border.wheel-border-gradient-dark{background-image:linear-gradient(to right,rgba(255,0,0,0),var(--mud-palette-dark),rgba(255,0,0,0));background-color:unset;}.mud-wheel-border.wheel-border-gradient-default{background-image:linear-gradient(to right,rgba(255,0,0,0),var(--mud-palette-text-primary),rgba(255,0,0,0));background-color:unset;}.mud-typographym3-display-large{font-family:var(--mud-typographym3-display-large-font);line-height:var(--mud-typographym3-display-large-line-height);font-size:var(--mud-typographym3-display-large-size);letter-spacing:var(--mud-typographym3-display-large-tracking);font-weight:var(--mud-typographym3-display-large-weight);}.mud-typographym3-display-medium{font-family:var(--mud-typographym3-display-medium-font);line-height:var(--mud-typographym3-display-medium-line-height);font-size:var(--mud-typographym3-display-medium-size);letter-spacing:var(--mud-typographym3-display-medium-tracking);font-weight:var(--mud-typographym3-display-medium-weight);}.mud-typographym3-display-small{font-family:var(--mud-typographym3-display-small-font);line-height:var(--mud-typographym3-display-small-line-height);font-size:var(--mud-typographym3-display-small-size);letter-spacing:var(--mud-typographym3-display-small-tracking);font-weight:var(--mud-typographym3-display-small-weight);}.mud-typographym3-headline-large{font-family:var(--mud-typographym3-headline-large-font);line-height:var(--mud-typographym3-headline-large-line-height);font-size:var(--mud-typographym3-headline-large-size);letter-spacing:var(--mud-typographym3-headline-large-tracking);font-weight:var(--mud-typographym3-headline-large-weight);}.mud-typographym3-headline-medium{font-family:var(--mud-typographym3-headline-medium-font);line-height:var(--mud-typographym3-headline-medium-line-height);font-size:var(--mud-typographym3-headline-medium-size);letter-spacing:var(--mud-typographym3-headline-medium-tracking);font-weight:var(--mud-typographym3-headline-medium-weight);}.mud-typographym3-headline-small{font-family:var(--mud-typographym3-headline-small-font);line-height:var(--mud-typographym3-headline-small-line-height);font-size:var(--mud-typographym3-headline-small-size);letter-spacing:var(--mud-typographym3-headline-small-tracking);font-weight:var(--mud-typographym3-headline-small-weight);}.mud-typographym3-title-large{font-family:var(--mud-typographym3-title-large-font);line-height:var(--mud-typographym3-title-large-line-height);font-size:var(--mud-typographym3-title-large-size);letter-spacing:var(--mud-typographym3-title-large-tracking);font-weight:var(--mud-typographym3-title-large-weight);}.mud-typographym3-title-medium{font-family:var(--mud-typographym3-title-medium-font);line-height:var(--mud-typographym3-title-medium-line-height);font-size:var(--mud-typographym3-title-medium-size);letter-spacing:var(--mud-typographym3-title-medium-tracking);font-weight:var(--mud-typographym3-title-medium-weight);}.mud-typographym3-title-small{font-family:var(--mud-typographym3-title-small-font);line-height:var(--mud-typographym3-title-small-line-height);font-size:var(--mud-typographym3-title-small-size);letter-spacing:var(--mud-typographym3-title-small-tracking);font-weight:var(--mud-typographym3-title-small-weight);}.mud-typographym3-body-large{font-family:var(--mud-typographym3-body-large-font);line-height:var(--mud-typographym3-body-large-line-height);font-size:var(--mud-typographym3-body-large-size);letter-spacing:var(--mud-typographym3-body-large-tracking);font-weight:var(--mud-typographym3-body-large-weight);}.mud-typographym3-body-medium{font-family:var(--mud-typographym3-body-medium-font);line-height:var(--mud-typographym3-body-medium-line-height);font-size:var(--mud-typographym3-body-medium-size);letter-spacing:var(--mud-typographym3-body-medium-tracking);font-weight:var(--mud-typographym3-body-medium-weight);}.mud-typographym3-body-small{font-family:var(--mud-typographym3-body-small-font);line-height:var(--mud-typographym3-body-small-line-height);font-size:var(--mud-typographym3-body-small-size);letter-spacing:var(--mud-typographym3-body-small-tracking);font-weight:var(--mud-typographym3-body-small-weight);}.mud-typographym3-label-large{font-family:var(--mud-typographym3-label-large-font);line-height:var(--mud-typographym3-label-large-line-height);font-size:var(--mud-typographym3-label-large-size);letter-spacing:var(--mud-typographym3-label-large-tracking);font-weight:var(--mud-typographym3-label-large-weight);}.mud-typographym3-label-medium{font-family:var(--mud-typographym3-label-medium-font);line-height:var(--mud-typographym3-label-medium-line-height);font-size:var(--mud-typographym3-label-medium-size);letter-spacing:var(--mud-typographym3-label-medium-tracking);font-weight:var(--mud-typographym3-label-medium-weight);}.mud-typographym3-label-small{font-family:var(--mud-typographym3-label-small-font);line-height:var(--mud-typographym3-label-small-line-height);font-size:var(--mud-typographym3-label-small-size);letter-spacing:var(--mud-typographym3-label-small-tracking);font-weight:var(--mud-typographym3-label-small-weight);}.mud-typography-display-inline{display:inline;}.mud-list-extended{margin:0;padding:0;position:relative;list-style:none;}.mud-list-extended.mud-list-padding-extended{padding-top:8px;padding-bottom:8px;}.mud-list-item-extended{width:100%;display:flex;position:relative;box-sizing:border-box;text-align:start;align-items:center;padding-top:8px;padding-bottom:8px;justify-content:flex-start;text-decoration:none;outline:none;}.mud-list-item-extended.mud-list-item-dense-extended{padding-top:4px;padding-bottom:4px;}.mud-list-item-extended.mud-list-item-disabled-extended{color:var(--mud-palette-action-disabled) !important;cursor:default !important;pointer-events:none !important;}.mud-list-item-extended.mud-list-item-disabled-extended .mud-list-item-icon-extended{color:var(--mud-palette-action-disabled) !important;}.mud-list-item-clickable-extended{color:inherit;border:0;cursor:pointer;margin:0;outline:0;user-select:none;border-radius:0;vertical-align:middle;background-color:transparent;-webkit-appearance:none;-webkit-tap-highlight-color:transparent;transition:background-color 150ms cubic-bezier(.4,0,.2,1) 0ms;}.mud-list-item-clickable-extended:hover:not(.mud-list-item-functional){background-color:var(--mud-palette-action-default-hover);}.mud-list-item-gutters-extended{padding-left:16px;padding-right:16px;}.mud-list-item-text-extended{flex:1 1 auto;min-width:0;margin-top:4px;margin-bottom:4px;padding-inline-start:8px;padding-inline-end:8px;}.mud-list-item-text-inset-extended{padding-left:56px;padding-inline-start:56px;padding-inline-end:unset;}.mud-list-item-icon-extended{color:var(--mud-palette-action-default);display:inline-flex;flex-shrink:0;padding-inline-start:8px;padding-inline-end:8px;margin-inline-start:-4px;margin-inline-end:4px;}.mud-list-item-multiselect-extended{max-height:32px;}.mud-list-item-multiselect-extended.mud-list-item-multiselect-checkbox-extended{padding-inline-end:16px;}.mud-list-subheader-extended{color:var(--mud-palette-action-default);background-color:var(--mud-palette-background);font-size:.875rem;box-sizing:border-box;list-style:none;font-weight:500;padding-top:16px;padding-bottom:16px;}.mud-list-subheader-secondary-background-extended{background-color:var(--mud-palette-background-gray);}.mud-list-subheader-gutters-extended{padding-left:16px;padding-right:16px;}.mud-list-subheader-inset-extended{padding-left:72px;padding-inline-start:72px;padding-inline-end:unset;}.mud-list-subheader-sticky-extended{top:-8px;z-index:1;position:sticky;}.mud-list-subheader-sticky-extended.mud-list-subheader-sticky-dense-extended{top:0;}.mud-list-item-hilight-extended{background-color:var(--mud-palette-background-gray);}.mud-list-item-hilight-selected{background-color:var(--mud-palette-lines-default) !important;}.mud-list-item-nested-background-extended{background-color:var(--mud-palette-background-gray);}.mud-list-item-avatar-extended{min-width:56px;flex-shrink:0;}.mud-nested-list-extended>.mud-list-item-extended{padding-left:32px;padding-inline-start:32px;padding-inline-end:unset;}.mud-select-extended{display:flex;flex-grow:1;flex-basis:0;min-width:0;position:relative;height:fit-content;}.mud-select-extended.mud-autocomplete{display:block;}.mud-select-extended.mud-autocomplete .mud-select-input-extended{cursor:text;}.mud-select-extended.mud-autocomplete .mud-input-adornment-extended{cursor:pointer;}.mud-select-extended.mud-autocomplete--with-progress .mud-select-input-extended input{padding-right:3.5rem !important;}.mud-select-extended.mud-autocomplete--with-progress .mud-input-adorned-end input{padding-right:4.5rem !important;}.mud-select-extended.mud-autocomplete--with-progress .mud-select-input-extended .mud-icon-button{display:none !important;}.mud-select-extended.mud-autocomplete--with-progress .progress-indicator-circular{position:absolute;width:100%;top:0;bottom:0;display:flex;align-items:center;justify-content:flex-end;padding-top:.25rem;padding-bottom:.25rem;padding-right:1rem;}.mud-select-extended.mud-autocomplete--with-progress .progress-indicator-circular--with-adornment{padding-right:3rem;}.mud-select-extended.mud-autocomplete--with-progress .mud-progress-linear{position:absolute;bottom:-1px;height:2px;}.mud-select-extended .mud-select-input-extended{cursor:pointer;}.mud-select-extended .mud-select-input-extended .mud-select-extended-nowrap{white-space:nowrap;}.mud-select-extended .mud-select-input-extended .mud-input-slot{overflow:hidden;text-overflow:ellipsis;}.mud-select-extended .mud-select-input-extended .mud-input-adornment-end{margin-left:0;}.mud-select-extended .mud-select-input-extended:disabled{cursor:default;}.mud-select-extended .mud-disabled .mud-select-input{cursor:default;}.mud-select-extended>.mud-form-helpertext{margin-top:-21px;}.mud-select-all-extended{margin-top:10px;border-bottom:1px solid #d3d3d3;padding-bottom:18px;}.mud-select-input-chip-extended{display:flex;flex-wrap:wrap;max-width:100%;row-gap:4px;}.mud-select-input-chip-extended.mud-select-extended-nowrap{flex-wrap:nowrap;overflow-x:hidden;}.mud-select-input-chip-extended .mud-chip{flex:0 0 auto;white-space:nowrap;}.mud-placeholder-extended{line-height:unset;}.mud-input-adornment-start-extended:not(.mud-input-text-extended){margin-inline-start:12px;}.mud-input-adornment-start-extended.mud-input-filled-extended{margin-top:16px;}.mud-input-adornment-end-extended:not(.mud-input-text-extended){margin-inline-end:12px;}.mud-no-start-adornment .mud-input-adornment-start-extended{margin-inline-start:0 !important;} \ No newline at end of file +.mud-combobox{margin:0;padding:0;position:relative;list-style:none;}.mud-combobox.mud-combobox-padding{padding-top:8px;padding-bottom:8px;}.mud-combobox-item{width:100%;display:flex;position:relative;box-sizing:border-box;text-align:start;align-items:center;padding-top:8px;padding-bottom:8px;justify-content:flex-start;text-decoration:none;outline:none;min-height:48px;}.mud-combobox-item.mud-combobox-item-comfort{padding-top:4px;padding-bottom:4px;min-height:40px;}.mud-combobox-item.mud-combobox-item-slim{padding-top:2px;padding-bottom:2px;min-height:32px;}.mud-combobox-item.mud-combobox-item-superslim{padding-top:0;padding-bottom:0;min-height:24px;}.mud-combobox-item.mud-combobox-item-disabled{color:var(--mud-palette-action-disabled) !important;cursor:default !important;pointer-events:none !important;}.mud-combobox-item.mud-combobox-item-disabled .mud-combobox-item-icon{color:var(--mud-palette-action-disabled) !important;}.mud-combobox-item-clickable{color:inherit;border:0;cursor:pointer;margin:0;outline:0;user-select:none;border-radius:0;vertical-align:middle;background-color:transparent;-webkit-appearance:none;-webkit-tap-highlight-color:transparent;transition:background-color 150ms cubic-bezier(.4,0,.2,1) 0ms;}.mud-combobox-item-clickable:hover{background-color:var(--mud-palette-action-default-hover);}.mud-combobox-item-gutters{padding-left:16px;padding-right:16px;}.mud-combobox-item-text{flex:1 1 auto;min-width:0;margin-top:4px;margin-bottom:4px;padding-inline-start:8px;padding-inline-end:8px;}.mud-combobox-item-text-inset{padding-left:56px;padding-inline-start:56px;padding-inline-end:unset;}.mud-combobox-item-icon{color:var(--mud-palette-action-default);display:inline-flex;flex-shrink:0;padding-inline-start:8px;padding-inline-end:8px;margin-inline-start:-4px;margin-inline-end:4px;}.mud-combobox-item-multiselect{max-height:32px;}.mud-combobox-item-multiselect.mud-combobox-item-multiselect-checkbox{padding-inline-end:16px;}.mud-combobox-subheader{color:var(--mud-palette-action-default);background-color:var(--mud-palette-background);font-size:.875rem;box-sizing:border-box;list-style:none;font-weight:500;padding-top:16px;padding-bottom:16px;}.mud-combobox-subheader-secondary-background{background-color:var(--mud-palette-background-gray);}.mud-combobox-subheader-gutters{padding-left:16px;padding-right:16px;}.mud-combobox-subheader-inset{padding-left:72px;padding-inline-start:72px;padding-inline-end:unset;}.mud-combobox-subheader-sticky{top:-8px;z-index:1;position:sticky;}.mud-combobox-subheader-sticky.mud-combobox-subheader-sticky-dense{top:0;}.mud-combobox-item-hilight{background-color:var(--mud-palette-background-gray);}.mud-combobox-item-hilight{background-color:var(--mud-palette-lines-default) !important;}.mud-combobox-item-bordered{border-left:4px solid var(--mud-palette-lines-default);padding-inline-start:12px;}.mud-combobox-item-bordered-primary{border-left:4px solid var(--mud-palette-primary);padding-inline-start:12px;}.mud-combobox-item-bordered-secondary{border-left:4px solid var(--mud-palette-secondary);padding-inline-start:12px;}.mud-combobox-item-bordered-tertiary{border-left:4px solid var(--mud-palette-tertiary);padding-inline-start:12px;}.mud-combobox-item-bordered-info{border-left:4px solid var(--mud-palette-info);padding-inline-start:12px;}.mud-combobox-item-bordered-success{border-left:4px solid var(--mud-palette-success);padding-inline-start:12px;}.mud-combobox-item-bordered-warning{border-left:4px solid var(--mud-palette-warning);padding-inline-start:12px;}.mud-combobox-item-bordered-error{border-left:4px solid var(--mud-palette-error);padding-inline-start:12px;}.mud-combobox-item-bordered-dark{border-left:4px solid var(--mud-palette-dark);padding-inline-start:12px;}.mud-combobox-item-nested-background{background-color:var(--mud-palette-background-gray);}.mud-combobox-item-avatar{min-width:56px;flex-shrink:0;}.mud-combobox-highlighter{background-color:transparent;font-weight:bold;text-decoration:underline;}.mud-gallery-selected-toolbox{left:0;right:0;height:56px;width:100%;background-color:rgba(0,0,0,.6);}.mud-gallery-selected-toolbox.gallery-toolbox-top{top:0;}.mud-gallery-selected-toolbox.gallery-toolbox-bottom{bottom:0;}.mud-page{display:grid;box-sizing:border-box;width:100%;}.mud-page.mud-page-height-full{min-height:100vh;}.mud-page.mud-page-height-full-without-appbar{min-height:calc(100vh - var(--mud-appbar-height));}.mud-page.mud-page-column-2{grid-template-columns:repeat(2,50%);}.mud-page.mud-page-column-3{grid-template-columns:repeat(3,33.33333%);}.mud-page.mud-page-column-4{grid-template-columns:repeat(4,25%);}.mud-page.mud-page-column-5{grid-template-columns:repeat(5,20%);}.mud-page.mud-page-column-6{grid-template-columns:repeat(6,16.66667%);}.mud-page.mud-page-column-7{grid-template-columns:repeat(7,14.28571%);}.mud-page.mud-page-column-8{grid-template-columns:repeat(8,12.5%);}.mud-page.mud-page-column-9{grid-template-columns:repeat(9,11.11111%);}.mud-page.mud-page-column-10{grid-template-columns:repeat(10,10%);}.mud-page.mud-page-column-11{grid-template-columns:repeat(11,9.09091%);}.mud-page.mud-page-column-12{grid-template-columns:repeat(12,8.33333%);}.mud-page.mud-page-row-2{grid-template-rows:repeat(2,50%);}.mud-page.mud-page-row-3{grid-template-rows:repeat(3,33.33333%);}.mud-page.mud-page-row-4{grid-template-rows:repeat(4,25%);}.mud-page.mud-page-row-5{grid-template-rows:repeat(5,20%);}.mud-page.mud-page-row-6{grid-template-rows:repeat(6,16.66667%);}.mud-page.mud-page-row-7{grid-template-rows:repeat(7,14.28571%);}.mud-page.mud-page-row-8{grid-template-rows:repeat(8,12.5%);}.mud-page.mud-page-row-9{grid-template-rows:repeat(9,11.11111%);}.mud-page.mud-page-row-10{grid-template-rows:repeat(10,10%);}.mud-page.mud-page-row-11{grid-template-rows:repeat(11,9.09091%);}.mud-page.mud-page-row-12{grid-template-rows:repeat(12,8.33333%);}.mud-section{display:inline-grid;overflow:auto;}.mud-section.mud-section-col-start-1{grid-column-start:1;}.mud-section.mud-section-col-start-2{grid-column-start:2;}.mud-section.mud-section-col-start-3{grid-column-start:3;}.mud-section.mud-section-col-start-4{grid-column-start:4;}.mud-section.mud-section-col-start-5{grid-column-start:5;}.mud-section.mud-section-col-start-6{grid-column-start:6;}.mud-section.mud-section-col-start-7{grid-column-start:7;}.mud-section.mud-section-col-start-8{grid-column-start:8;}.mud-section.mud-section-col-start-9{grid-column-start:9;}.mud-section.mud-section-col-start-10{grid-column-start:10;}.mud-section.mud-section-col-start-11{grid-column-start:11;}.mud-section.mud-section-col-start-12{grid-column-start:12;}.mud-section.mud-section-col-end-1{grid-column-end:1;}.mud-section.mud-section-col-end-2{grid-column-end:2;}.mud-section.mud-section-col-end-3{grid-column-end:3;}.mud-section.mud-section-col-end-4{grid-column-end:4;}.mud-section.mud-section-col-end-5{grid-column-end:5;}.mud-section.mud-section-col-end-6{grid-column-end:6;}.mud-section.mud-section-col-end-7{grid-column-end:7;}.mud-section.mud-section-col-end-8{grid-column-end:8;}.mud-section.mud-section-col-end-9{grid-column-end:9;}.mud-section.mud-section-col-end-10{grid-column-end:10;}.mud-section.mud-section-col-end-11{grid-column-end:11;}.mud-section.mud-section-col-end-12{grid-column-end:12;}.mud-section.mud-section-col-end-13{grid-column-end:13;}.mud-section.mud-section-row-start-1{grid-row-start:1;}.mud-section.mud-section-row-start-2{grid-row-start:2;}.mud-section.mud-section-row-start-3{grid-row-start:3;}.mud-section.mud-section-row-start-4{grid-row-start:4;}.mud-section.mud-section-row-start-5{grid-row-start:5;}.mud-section.mud-section-row-start-6{grid-row-start:6;}.mud-section.mud-section-row-start-7{grid-row-start:7;}.mud-section.mud-section-row-start-8{grid-row-start:8;}.mud-section.mud-section-row-start-9{grid-row-start:9;}.mud-section.mud-section-row-start-10{grid-row-start:10;}.mud-section.mud-section-row-start-11{grid-row-start:11;}.mud-section.mud-section-row-start-12{grid-row-start:12;}.mud-section.mud-section-row-end-1{grid-row-end:1;}.mud-section.mud-section-row-end-2{grid-row-end:2;}.mud-section.mud-section-row-end-3{grid-row-end:3;}.mud-section.mud-section-row-end-4{grid-row-end:4;}.mud-section.mud-section-row-end-5{grid-row-end:5;}.mud-section.mud-section-row-end-6{grid-row-end:6;}.mud-section.mud-section-row-end-7{grid-row-end:7;}.mud-section.mud-section-row-end-8{grid-row-end:8;}.mud-section.mud-section-row-end-9{grid-row-end:9;}.mud-section.mud-section-row-end-10{grid-row-end:10;}.mud-section.mud-section-row-end-11{grid-row-end:11;}.mud-section.mud-section-row-end-12{grid-row-end:12;}.mud-section.mud-section-row-end-13{grid-row-end:13;}.mud-popup{z-index:2000;overflow:auto;background-color:var(--mud-palette-background);min-height:var(--mud-appbar-height);}.mud-popup.mud-popup-center{height:300px;left:50%;top:50%;transform:translate(-50%,-50%);width:320px;aspect-ratio:1/1;}.mud-range-container{align-items:center;margin:20px 0;}.mud-range-container input::-webkit-slider-thumb{pointer-events:all;position:relative;z-index:1;}.mud-range-container input::-moz-range-thumb{pointer-events:all;position:relative;z-index:10;}.mud-range-container input::-moz-range-track{position:relative;z-index:-1;}.mud-range-container input:last-of-type::-moz-range-track{-moz-appearance:none;}.mud-range-container .mud-slider-input:last-of-type{position:absolute;pointer-events:none;top:0;}.mud-range-container input[type=range]::-webkit-slider-thumb{pointer-events:all;}.mud-range-display{text-align:center;}.mud-signature-pad-container{touch-action:none;}.mud-splitter{display:grid;position:relative;width:100%;}.mud-splitter-content{overflow:auto;}.mud-splitter-thumb ::-webkit-slider-runnable-track{visibility:hidden !important;height:100% !important;}.mud-splitter-thumb ::-moz-range-track{visibility:hidden !important;height:100% !important;}.mud-splitter-track{position:absolute;top:50%;transform:translateY(-50%);height:100%;}.mud-splitter-track.mud-slider{visibility:hidden !important;}.mud-splitter-track.mud-slider .mud-slider-container{height:100% !important;}.mud-splitter-track.mud-slider .mud-slider-input{top:50%;}.mud-splitter-thumb ::-webkit-slider-thumb{visibility:visible !important;appearance:none !important;-webkit-appearance:none !important;top:50% !important;transform:translateY(-50%) !important;height:100% !important;width:8px !important;border:none !important;border-radius:0 !important;cursor:ew-resize !important;}.mud-splitter-thumb-disabled ::-webkit-slider-thumb{cursor:default !important;}.mud-splitter-thumb ::-moz-range-thumb{visibility:visible !important;appearance:none !important;-moz-appearance:none !important;top:50% !important;transform:translateY(-50%) !important;height:100% !important;width:8px !important;border:none !important;border-radius:0 !important;cursor:ew-resize !important;}.mud-splitter-thumb-disabled ::-moz-range-thumb{cursor:default !important;}.mud-stepper-header{min-height:62px;border-radius:var(--mud-default-borderradius);}.mud-stepper-header.mud-stepper-header-non-linear:hover{background-color:var(--mud-palette-action-default-hover);}.mud-stepper-badge{z-index:21;}.mud-switch-m3{cursor:pointer;display:inline-flex;align-items:center;vertical-align:middle;margin-top:4px;margin-bottom:4px;-webkit-tap-highlight-color:transparent;}.mud-switch-m3.mud-disabled{color:var(--mud-palette-text-disabled) !important;cursor:default;}.mud-switch-m3.mud-readonly,.mud-switch-m3 .mud-readonly:hover{cursor:default;background-color:transparent !important;}.mud-switch-span-m3{width:52px;height:32px;display:inline-flex;z-index:0;position:relative;box-sizing:border-box;flex-shrink:0;vertical-align:middle;}.mud-switch-span-m3.mud-switch-child-content-m3{margin-inline-end:12px;}.mud-switch-span-m3 .mud-switch-track-m3{width:52px;height:32px;z-index:-1;transition:opacity 150ms cubic-bezier(.4,0,.2,1) 0ms,background-color 150ms cubic-bezier(.4,0,.2,1) 0ms;border-radius:30px;background-color:var(--mud-palette-background);border:2px solid;}.mud-switch-span-m3 .mud-switch-track-m3.mud-switch-track-default-m3{border-color:var(--mud-palette-text-primary);}.mud-switch-span-m3 .mud-switch-track-m3.mud-switch-track-primary-m3{border-color:var(--mud-palette-primary);}.mud-switch-span-m3 .mud-switch-track-m3.mud-switch-track-secondary-m3{border-color:var(--mud-palette-secondary);}.mud-switch-span-m3 .mud-switch-track-m3.mud-switch-track-tertiary-m3{border-color:var(--mud-palette-tertiary);}.mud-switch-span-m3 .mud-switch-track-m3.mud-switch-track-info-m3{border-color:var(--mud-palette-info);}.mud-switch-span-m3 .mud-switch-track-m3.mud-switch-track-success-m3{border-color:var(--mud-palette-success);}.mud-switch-span-m3 .mud-switch-track-m3.mud-switch-track-warning-m3{border-color:var(--mud-palette-warning);}.mud-switch-span-m3 .mud-switch-track-m3.mud-switch-track-error-m3{border-color:var(--mud-palette-error);}.mud-switch-span-m3 .mud-switch-track-m3.mud-switch-track-dark-m3{border-color:var(--mud-palette-dark);}.mud-switch-base-m3{padding-top:4px;padding-bottom:4px;padding-inline-start:8px;top:0;left:0;bottom:0;color:#fafafa;z-index:1;position:absolute;transition:left 150ms cubic-bezier(.4,0,.2,1) 0ms,transform 150ms cubic-bezier(.4,0,.2,1) 0ms,background-color 250ms cubic-bezier(.4,0,.2,1) 0ms,box-shadow 250ms cubic-bezier(.4,0,.2,1) 0ms;}.mud-switch-base-m3.mud-switch-base-dense-m3{padding-inline-start:4px;}.mud-switch-base-m3.mud-checked{transform:translateX(20px);padding:4px;}.mud-switch-base-m3.mud-checked+.mud-switch-track-m3{opacity:1;}.mud-switch-base-m3.mud-checked+.mud-switch-track-m3.mud-default{background-color:var(--mud-palette-text-primary);}.mud-switch-base-m3.mud-checked+.mud-switch-track-m3.mud-primary{background-color:var(--mud-palette-primary);}.mud-switch-base-m3.mud-checked+.mud-switch-track-m3.mud-secondary{background-color:var(--mud-palette-secondary);}.mud-switch-base-m3.mud-checked+.mud-switch-track-m3.mud-tertiary{background-color:var(--mud-palette-tertiary);}.mud-switch-base-m3.mud-checked+.mud-switch-track-m3.mud-info{background-color:var(--mud-palette-info);}.mud-switch-base-m3.mud-checked+.mud-switch-track-m3.mud-success{background-color:var(--mud-palette-success);}.mud-switch-base-m3.mud-checked+.mud-switch-track-m3.mud-warning{background-color:var(--mud-palette-warning);}.mud-switch-base-m3.mud-checked+.mud-switch-track-m3.mud-error{background-color:var(--mud-palette-error);}.mud-switch-base-m3.mud-checked+.mud-switch-track-m3.mud-dark{background-color:var(--mud-palette-dark);}.mud-switch-base-m3.mud-checked .mud-switch-thumb-m3{width:24px;height:24px;box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12);border-radius:50%;background-color:var(--mud-palette-background);}.mud-switch-base-m3:hover{background-color:var(--mud-palette-action-default-hover);}.mud-switch-base-m3.mud-switch-disabled{color:var(--mud-palette-gray-default) !important;}.mud-switch-base-m3.mud-switch-disabled+.mud-switch-track-m3{opacity:.12 !important;}.mud-switch-base-m3.mud-switch-disabled:hover,.mud-switch-base-m3.mud-switch-disabled:focus-visible{cursor:default;background-color:transparent !important;}.mud-switch-button-m3{display:flex;align-items:inherit;justify-content:inherit;}.mud-switch-button-m3 .mud-switch-input-m3{top:0;left:0;width:100%;cursor:inherit;height:100%;margin:0;opacity:0;padding:0;z-index:1;position:absolute;}.mud-switch-button-m3 .mud-switch-thumb-m3{width:16px;height:16px;box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12);border-radius:50%;}.mud-switch-button-m3 .mud-switch-thumb-m3.mud-switch-thumb-default-m3{background-color:var(--mud-palette-text-primary);}.mud-switch-button-m3 .mud-switch-thumb-m3.mud-switch-thumb-primary-m3{background-color:var(--mud-palette-primary);}.mud-switch-button-m3 .mud-switch-thumb-m3.mud-switch-thumb-secondary-m3{background-color:var(--mud-palette-secondary);}.mud-switch-button-m3 .mud-switch-thumb-m3.mud-switch-thumb-tertiary-m3{background-color:var(--mud-palette-tertiary);}.mud-switch-button-m3 .mud-switch-thumb-m3.mud-switch-thumb-info-m3{background-color:var(--mud-palette-info);}.mud-switch-button-m3 .mud-switch-thumb-m3.mud-switch-thumb-success-m3{background-color:var(--mud-palette-success);}.mud-switch-button-m3 .mud-switch-thumb-m3.mud-switch-thumb-warning-m3{background-color:var(--mud-palette-warning);}.mud-switch-button-m3 .mud-switch-thumb-m3.mud-switch-thumb-error-m3{background-color:var(--mud-palette-error);}.mud-switch-button-m3 .mud-switch-thumb-m3.mud-switch-thumb-dark-m3{background-color:var(--mud-palette-dark);}.mud-switch-button-m3 .mud-switch-thumb-m3.mud-switch-thumb-off-icon-m3{width:24px;height:24px;}.mud-wheel{overflow:hidden;min-width:0;flex-grow:1;user-select:none;-webkit-user-select:none;}.mud-wheel-item{width:100%;display:flex;align-content:center;justify-content:center;color:var(--mud-palette-text-secondary);border-radius:var(--mud-default-borderradius);}.mud-wheel-item.mud-wheel-item:hover:not(.mud-disabled){background-color:var(--mud-palette-action-default-hover);}.mud-wheel-item.wheel-item-closest{color:var(--mud-palette-text);}.mud-wheel-item.wheel-item-empty{min-height:32px !important;}.mud-wheel-item.wheel-item-empty.wheel-item-empty-dense{min-height:24px !important;}.mud-wheel-item.wheel-item-empty.wheel-item-empty:hover{background-color:unset;}.mud-wheel-item.mud-disabled{color:var(--mud-palette-text-disabled);}.middle-item{transform:scale(1.2);}.middle-item.mud-disabled{color:var(--mud-palette-text-disabled);}.mud-wheel-border{min-height:2px !important;}.mud-wheel-border.mud-wheel-border-default{background-color:var(--mud-palette-text-primary);}.mud-wheel-border.mud-wheel-border-primary{background-color:var(--mud-palette-primary);}.mud-wheel-border.wheel-border-gradient-primary{background-image:linear-gradient(to right,rgba(255,0,0,0),var(--mud-palette-primary),rgba(255,0,0,0));background-color:unset;}.mud-wheel-border.mud-wheel-border-secondary{background-color:var(--mud-palette-secondary);}.mud-wheel-border.wheel-border-gradient-secondary{background-image:linear-gradient(to right,rgba(255,0,0,0),var(--mud-palette-secondary),rgba(255,0,0,0));background-color:unset;}.mud-wheel-border.mud-wheel-border-tertiary{background-color:var(--mud-palette-tertiary);}.mud-wheel-border.wheel-border-gradient-tertiary{background-image:linear-gradient(to right,rgba(255,0,0,0),var(--mud-palette-tertiary),rgba(255,0,0,0));background-color:unset;}.mud-wheel-border.mud-wheel-border-info{background-color:var(--mud-palette-info);}.mud-wheel-border.wheel-border-gradient-info{background-image:linear-gradient(to right,rgba(255,0,0,0),var(--mud-palette-info),rgba(255,0,0,0));background-color:unset;}.mud-wheel-border.mud-wheel-border-success{background-color:var(--mud-palette-success);}.mud-wheel-border.wheel-border-gradient-success{background-image:linear-gradient(to right,rgba(255,0,0,0),var(--mud-palette-success),rgba(255,0,0,0));background-color:unset;}.mud-wheel-border.mud-wheel-border-warning{background-color:var(--mud-palette-warning);}.mud-wheel-border.wheel-border-gradient-warning{background-image:linear-gradient(to right,rgba(255,0,0,0),var(--mud-palette-warning),rgba(255,0,0,0));background-color:unset;}.mud-wheel-border.mud-wheel-border-error{background-color:var(--mud-palette-error);}.mud-wheel-border.wheel-border-gradient-error{background-image:linear-gradient(to right,rgba(255,0,0,0),var(--mud-palette-error),rgba(255,0,0,0));background-color:unset;}.mud-wheel-border.mud-wheel-border-dark{background-color:var(--mud-palette-dark);}.mud-wheel-border.wheel-border-gradient-dark{background-image:linear-gradient(to right,rgba(255,0,0,0),var(--mud-palette-dark),rgba(255,0,0,0));background-color:unset;}.mud-wheel-border.wheel-border-gradient-default{background-image:linear-gradient(to right,rgba(255,0,0,0),var(--mud-palette-text-primary),rgba(255,0,0,0));background-color:unset;}.mud-typographym3-display-large{font-family:var(--mud-typographym3-display-large-font);line-height:var(--mud-typographym3-display-large-line-height);font-size:var(--mud-typographym3-display-large-size);letter-spacing:var(--mud-typographym3-display-large-tracking);font-weight:var(--mud-typographym3-display-large-weight);}.mud-typographym3-display-medium{font-family:var(--mud-typographym3-display-medium-font);line-height:var(--mud-typographym3-display-medium-line-height);font-size:var(--mud-typographym3-display-medium-size);letter-spacing:var(--mud-typographym3-display-medium-tracking);font-weight:var(--mud-typographym3-display-medium-weight);}.mud-typographym3-display-small{font-family:var(--mud-typographym3-display-small-font);line-height:var(--mud-typographym3-display-small-line-height);font-size:var(--mud-typographym3-display-small-size);letter-spacing:var(--mud-typographym3-display-small-tracking);font-weight:var(--mud-typographym3-display-small-weight);}.mud-typographym3-headline-large{font-family:var(--mud-typographym3-headline-large-font);line-height:var(--mud-typographym3-headline-large-line-height);font-size:var(--mud-typographym3-headline-large-size);letter-spacing:var(--mud-typographym3-headline-large-tracking);font-weight:var(--mud-typographym3-headline-large-weight);}.mud-typographym3-headline-medium{font-family:var(--mud-typographym3-headline-medium-font);line-height:var(--mud-typographym3-headline-medium-line-height);font-size:var(--mud-typographym3-headline-medium-size);letter-spacing:var(--mud-typographym3-headline-medium-tracking);font-weight:var(--mud-typographym3-headline-medium-weight);}.mud-typographym3-headline-small{font-family:var(--mud-typographym3-headline-small-font);line-height:var(--mud-typographym3-headline-small-line-height);font-size:var(--mud-typographym3-headline-small-size);letter-spacing:var(--mud-typographym3-headline-small-tracking);font-weight:var(--mud-typographym3-headline-small-weight);}.mud-typographym3-title-large{font-family:var(--mud-typographym3-title-large-font);line-height:var(--mud-typographym3-title-large-line-height);font-size:var(--mud-typographym3-title-large-size);letter-spacing:var(--mud-typographym3-title-large-tracking);font-weight:var(--mud-typographym3-title-large-weight);}.mud-typographym3-title-medium{font-family:var(--mud-typographym3-title-medium-font);line-height:var(--mud-typographym3-title-medium-line-height);font-size:var(--mud-typographym3-title-medium-size);letter-spacing:var(--mud-typographym3-title-medium-tracking);font-weight:var(--mud-typographym3-title-medium-weight);}.mud-typographym3-title-small{font-family:var(--mud-typographym3-title-small-font);line-height:var(--mud-typographym3-title-small-line-height);font-size:var(--mud-typographym3-title-small-size);letter-spacing:var(--mud-typographym3-title-small-tracking);font-weight:var(--mud-typographym3-title-small-weight);}.mud-typographym3-body-large{font-family:var(--mud-typographym3-body-large-font);line-height:var(--mud-typographym3-body-large-line-height);font-size:var(--mud-typographym3-body-large-size);letter-spacing:var(--mud-typographym3-body-large-tracking);font-weight:var(--mud-typographym3-body-large-weight);}.mud-typographym3-body-medium{font-family:var(--mud-typographym3-body-medium-font);line-height:var(--mud-typographym3-body-medium-line-height);font-size:var(--mud-typographym3-body-medium-size);letter-spacing:var(--mud-typographym3-body-medium-tracking);font-weight:var(--mud-typographym3-body-medium-weight);}.mud-typographym3-body-small{font-family:var(--mud-typographym3-body-small-font);line-height:var(--mud-typographym3-body-small-line-height);font-size:var(--mud-typographym3-body-small-size);letter-spacing:var(--mud-typographym3-body-small-tracking);font-weight:var(--mud-typographym3-body-small-weight);}.mud-typographym3-label-large{font-family:var(--mud-typographym3-label-large-font);line-height:var(--mud-typographym3-label-large-line-height);font-size:var(--mud-typographym3-label-large-size);letter-spacing:var(--mud-typographym3-label-large-tracking);font-weight:var(--mud-typographym3-label-large-weight);}.mud-typographym3-label-medium{font-family:var(--mud-typographym3-label-medium-font);line-height:var(--mud-typographym3-label-medium-line-height);font-size:var(--mud-typographym3-label-medium-size);letter-spacing:var(--mud-typographym3-label-medium-tracking);font-weight:var(--mud-typographym3-label-medium-weight);}.mud-typographym3-label-small{font-family:var(--mud-typographym3-label-small-font);line-height:var(--mud-typographym3-label-small-line-height);font-size:var(--mud-typographym3-label-small-size);letter-spacing:var(--mud-typographym3-label-small-tracking);font-weight:var(--mud-typographym3-label-small-weight);}.mud-typography-display-inline{display:inline;}.mud-transfer-list-common{height:fill-available;height:-webkit-fill-available;}.mud-transfer-list-container{display:flex;flex-direction:column;flex:1 1 0%;}.mud-list-extended{margin:0;padding:0;position:relative;list-style:none;}.mud-list-extended.mud-list-padding-extended{padding-top:8px;padding-bottom:8px;}.mud-list-item-extended{width:100%;display:flex;position:relative;box-sizing:border-box;text-align:start;align-items:center;padding-top:8px;padding-bottom:8px;justify-content:flex-start;text-decoration:none;outline:none;}.mud-list-item-extended.mud-list-item-dense-extended{padding-top:4px;padding-bottom:4px;}.mud-list-item-extended.mud-list-item-disabled-extended{color:var(--mud-palette-action-disabled) !important;cursor:default !important;pointer-events:none !important;}.mud-list-item-extended.mud-list-item-disabled-extended .mud-list-item-icon-extended{color:var(--mud-palette-action-disabled) !important;}.mud-list-item-clickable-extended{color:inherit;border:0;cursor:pointer;margin:0;outline:0;user-select:none;border-radius:0;vertical-align:middle;background-color:transparent;-webkit-appearance:none;-webkit-tap-highlight-color:transparent;transition:background-color 150ms cubic-bezier(.4,0,.2,1) 0ms;}.mud-list-item-clickable-extended:hover:not(.mud-list-item-functional){background-color:var(--mud-palette-action-default-hover);}.mud-list-item-gutters-extended{padding-left:16px;padding-right:16px;}.mud-list-item-text-extended{flex:1 1 auto;min-width:0;margin-top:4px;margin-bottom:4px;padding-inline-start:8px;padding-inline-end:8px;}.mud-list-item-text-inset-extended{padding-left:56px;padding-inline-start:56px;padding-inline-end:unset;}.mud-list-item-icon-extended{color:var(--mud-palette-action-default);display:inline-flex;flex-shrink:0;padding-inline-start:8px;padding-inline-end:8px;margin-inline-start:-4px;margin-inline-end:4px;}.mud-list-item-multiselect-extended{max-height:32px;}.mud-list-item-multiselect-extended.mud-list-item-multiselect-checkbox-extended{padding-inline-end:16px;}.mud-list-subheader-extended{color:var(--mud-palette-action-default);background-color:var(--mud-palette-background);font-size:.875rem;box-sizing:border-box;list-style:none;font-weight:500;padding-top:16px;padding-bottom:16px;}.mud-list-subheader-secondary-background-extended{background-color:var(--mud-palette-background-gray);}.mud-list-subheader-gutters-extended{padding-left:16px;padding-right:16px;}.mud-list-subheader-inset-extended{padding-left:72px;padding-inline-start:72px;padding-inline-end:unset;}.mud-list-subheader-sticky-extended{top:-8px;z-index:1;position:sticky;}.mud-list-subheader-sticky-extended.mud-list-subheader-sticky-dense-extended{top:0;}.mud-list-item-hilight-extended{background-color:var(--mud-palette-background-gray);}.mud-list-item-hilight-selected{background-color:var(--mud-palette-lines-default) !important;}.mud-list-item-nested-background-extended{background-color:var(--mud-palette-background-gray);}.mud-list-item-avatar-extended{min-width:56px;flex-shrink:0;}.mud-nested-list-extended>.mud-list-item-extended{padding-left:32px;padding-inline-start:32px;padding-inline-end:unset;}.mud-select-extended{display:flex;flex-grow:1;flex-basis:0;min-width:0;position:relative;height:fit-content;}.mud-select-extended.mud-autocomplete{display:block;}.mud-select-extended.mud-autocomplete .mud-select-input-extended{cursor:text;}.mud-select-extended.mud-autocomplete .mud-input-adornment-extended{cursor:pointer;}.mud-select-extended.mud-autocomplete--with-progress .mud-select-input-extended input{padding-right:3.5rem !important;}.mud-select-extended.mud-autocomplete--with-progress .mud-input-adorned-end input{padding-right:4.5rem !important;}.mud-select-extended.mud-autocomplete--with-progress .mud-select-input-extended .mud-icon-button{display:none !important;}.mud-select-extended.mud-autocomplete--with-progress .progress-indicator-circular{position:absolute;width:100%;top:0;bottom:0;display:flex;align-items:center;justify-content:flex-end;padding-top:.25rem;padding-bottom:.25rem;padding-right:1rem;}.mud-select-extended.mud-autocomplete--with-progress .progress-indicator-circular--with-adornment{padding-right:3rem;}.mud-select-extended.mud-autocomplete--with-progress .mud-progress-linear{position:absolute;bottom:-1px;height:2px;}.mud-select-extended .mud-select-input-extended{cursor:pointer;}.mud-select-extended .mud-select-input-extended .mud-select-extended-nowrap{white-space:nowrap;}.mud-select-extended .mud-select-input-extended .mud-input-slot{overflow:hidden;text-overflow:ellipsis;}.mud-select-extended .mud-select-input-extended .mud-input-adornment-end{margin-left:0;}.mud-select-extended .mud-select-input-extended:disabled{cursor:default;}.mud-select-extended .mud-disabled .mud-select-input{cursor:default;}.mud-select-extended>.mud-form-helpertext{margin-top:-21px;}.mud-select-all-extended{margin-top:10px;border-bottom:1px solid #d3d3d3;padding-bottom:18px;}.mud-select-input-chip-extended{display:flex;flex-wrap:wrap;max-width:100%;row-gap:4px;}.mud-select-input-chip-extended.mud-select-extended-nowrap{flex-wrap:nowrap;overflow-x:hidden;}.mud-select-input-chip-extended .mud-chip{flex:0 0 auto;white-space:nowrap;}.mud-placeholder-extended{line-height:unset;}.mud-input-adornment-start-extended:not(.mud-input-text-extended){margin-inline-start:12px;}.mud-input-adornment-start-extended.mud-input-filled-extended{margin-top:16px;}.mud-input-adornment-end-extended:not(.mud-input-text-extended){margin-inline-end:12px;}.mud-no-start-adornment .mud-input-adornment-start-extended{margin-inline-start:0 !important;} \ No newline at end of file diff --git a/app/MindWork AI Studio/wwwroot/system/CodeBeam.MudBlazor.Extensions/MudExtensions.min.css.br b/app/MindWork AI Studio/wwwroot/system/CodeBeam.MudBlazor.Extensions/MudExtensions.min.css.br index 8d02408b..3b8316cf 100644 Binary files a/app/MindWork AI Studio/wwwroot/system/CodeBeam.MudBlazor.Extensions/MudExtensions.min.css.br and b/app/MindWork AI Studio/wwwroot/system/CodeBeam.MudBlazor.Extensions/MudExtensions.min.css.br differ diff --git a/app/MindWork AI Studio/wwwroot/system/CodeBeam.MudBlazor.Extensions/MudExtensions.min.css.gz b/app/MindWork AI Studio/wwwroot/system/CodeBeam.MudBlazor.Extensions/MudExtensions.min.css.gz index fa12334e..d9eaa5b7 100644 Binary files a/app/MindWork AI Studio/wwwroot/system/CodeBeam.MudBlazor.Extensions/MudExtensions.min.css.gz and b/app/MindWork AI Studio/wwwroot/system/CodeBeam.MudBlazor.Extensions/MudExtensions.min.css.gz differ diff --git a/app/MindWork AI Studio/wwwroot/system/MudBlazor.Markdown/MudBlazor.Markdown.min.css b/app/MindWork AI Studio/wwwroot/system/MudBlazor.Markdown/MudBlazor.Markdown.min.css index 95b4e394..7879b7a6 100755 --- a/app/MindWork AI Studio/wwwroot/system/MudBlazor.Markdown/MudBlazor.Markdown.min.css +++ b/app/MindWork AI Studio/wwwroot/system/MudBlazor.Markdown/MudBlazor.Markdown.min.css @@ -1 +1 @@ -.mud-markdown-body code:not(.hljs){background:var(--mud-palette-action-disabled-background);color:var(--mud-palette-text-primary)!important;padding:2.5px 7.5px;border-radius:5px}pre code.hljs{display:block!important;overflow-x:auto;padding:1em}.mud-markdown-body .snippet-clipboard-content{position:relative!important}.mud-markdown-body .snippet-clipboard-content:hover>.snippet-clipboard-copy-icon{display:block!important}.mud-markdown-body .snippet-clipboard-content .snippet-clipboard-copy-icon{position:absolute;display:none;top:0;right:0}.mud-markdown-body blockquote{border-left:.25em solid var(--mud-palette-text-disabled);color:var(--mud-palette-text-secondary);background-color:var(--mud-palette-table-hover);padding:.25em 1em;margin:.5em 0 1.25em}.mud-markdown-body blockquote p{margin-bottom:0!important}.mud-markdown-body table{margin:1.25em 0}.mud-markdown-body .mud-link:hover{cursor:pointer!important}.mud-markdown-body ul{list-style-type:disc}.mud-markdown-body ol,.mud-markdown-body ul{padding-left:2em;margin-bottom:1.25em!important}.mud-markdown-body ul ul{list-style-type:circle;margin-bottom:0!important}.mud-markdown-body ul ul ul{list-style-type:square;margin-bottom:0!important}.mud-markdown-body li{display:list-item!important;text-align:-webkit-match-parent}.mud-markdown-body h1,.mud-markdown-body h2{border-bottom:1px solid var(--mud-palette-text-disabled);padding-bottom:.125em;margin-bottom:.4em}.mud-markdown-body h1,.mud-markdown-body h2,.mud-markdown-body h3,.mud-markdown-body h4,.mud-markdown-body h5,.mud-markdown-body h6{scroll-margin-top:5rem;margin-top:.25em;word-wrap:break-word;margin-bottom:.3em!important}.mud-markdown-body .mud-divider{margin:.5em 0;height:.25em}.mud-markdown-body p{margin-bottom:1.25em!important}.mud-markdown-body .mud-expand-panel p,.mud-markdown-body li p{margin-bottom:0!important}.mud-markdown-body p .mud-markdown-error{white-space:pre}.mud-markdown-body img{max-width:100%}.mud-markdown-toc{position:relative}.mud-markdown-toc-drawer{position:sticky;overflow:hidden;z-index:calc(var(--mud-zindex-appbar) - 2);top:calc(var(--mud-appbar-height) + 16px);float:right}.mud-markdown-toc-drawer-content{width:var(--mud-drawer-width-right);opacity:0;visibility:collapse;transition:opacity .3s ease,visibility .3s ease}.mud-markdown-toc-drawer-content.open{opacity:1;visibility:visible}.mud-markdown-toc-content{margin-right:0;transition:margin-left .3s ease}.mud-markdown-toc-content.open{margin-right:calc(var(--mud-drawer-width-right) + 16px)}.mud-markdown-toc-btn-toggle{position:absolute;right:0;z-index:calc(var(--mud-zindex-appbar) - 1)}.mud-markdown-toc-nav-menu .mud-nav-link{padding:4px 16px!important}.mud-markdown-toc-nav-menu .mud-nav-link-h2 .mud-nav-link-text{margin-left:20px!important}.mud-markdown-toc-nav-menu .mud-nav-link-h3 .mud-nav-link-text{margin-left:28px!important}.mud-markdown-toc-nav-menu .mud-nav-item{border-left:4px solid var(--mud-palette-text-disabled)}.mud-markdown-toc-nav-menu .mud-nav-item.active{border-left-color:var(--mud-palette-primary)!important;color:var(--mud-palette-primary)!important} \ No newline at end of file +.mud-markdown-body code:not(.hljs){background:var(--mud-palette-action-disabled-background);color:var(--mud-palette-text-primary)!important;padding:2.5px 7.5px;border-radius:5px}pre code.hljs{display:block!important;overflow-x:auto;padding:1em;width:100%}.mud-markdown-body .mud-markdown-code-highlight{position:relative!important}.mud-markdown-body .mud-markdown-code-highlight:hover>.mud-markdown-code-highlight-copybtn{display:block!important}.mud-markdown-code-highlight-copybtn{position:absolute;display:none;top:0;right:0}.mud-markdown-code-highlight-sticky pre code.hljs{padding-top:0!important}.mud-markdown-body .mud-markdown-code-highlight-sticky .mud-markdown-code-highlight-copybtn-sticky{position:sticky;overflow:hidden;z-index:calc(var(--mud-zindex-appbar) - 2);top:calc(var(--mud-appbar-height) + 16px);float:right}.mud-markdown-body blockquote{border-left:.25em solid var(--mud-palette-text-disabled);color:var(--mud-palette-text-secondary);background-color:var(--mud-palette-table-hover);padding:.25em 1em;margin:.5em 0 1.25em}.mud-markdown-body blockquote p{margin-bottom:0!important}.mud-markdown-body table{margin:1.25em 0}.mud-markdown-body table p{margin-bottom:0!important}.mud-markdown-body .mud-link:hover{cursor:pointer!important}.mud-markdown-body ul{list-style-type:disc}.mud-markdown-body ol,.mud-markdown-body ul{padding-left:2em;margin-bottom:1.25em!important}.mud-markdown-body ul ul{list-style-type:circle;margin-bottom:0!important}.mud-markdown-body ul ul ul{list-style-type:square;margin-bottom:0!important}.mud-markdown-body li{display:list-item!important;text-align:-webkit-match-parent}.mud-markdown-body h1,.mud-markdown-body h2{border-bottom:1px solid var(--mud-palette-text-disabled);padding-bottom:.125em;margin-bottom:.4em}.mud-markdown-body h1,.mud-markdown-body h2,.mud-markdown-body h3,.mud-markdown-body h4,.mud-markdown-body h5,.mud-markdown-body h6{scroll-margin-top:5rem;margin-top:.25em;word-wrap:break-word;margin-bottom:.3em!important}.mud-markdown-body .mud-divider{margin:.5em 0;height:.25em}.mud-markdown-body p{margin-bottom:1.25em!important}.mud-markdown-body .mud-expand-panel p,.mud-markdown-body li p{margin-bottom:0!important}.mud-markdown-body p .mud-markdown-error{white-space:pre}.mud-markdown-body img{max-width:100%}.mud-markdown-toc{position:relative}.mud-markdown-toc-drawer{position:sticky;overflow:hidden;z-index:calc(var(--mud-zindex-appbar) - 2);top:calc(var(--mud-appbar-height) + 16px);float:right}.mud-markdown-toc-drawer-content{width:var(--mud-drawer-width-right);opacity:0;visibility:collapse;transition:opacity .3s ease,visibility .3s ease}.mud-markdown-toc-drawer-content.open{opacity:1;visibility:visible}.mud-markdown-toc-content{margin-right:0;transition:margin-left .3s ease}.mud-markdown-toc-content.open{margin-right:calc(var(--mud-drawer-width-right) + 16px)}.mud-markdown-toc-btn-toggle{position:absolute;right:0;z-index:calc(var(--mud-zindex-appbar) - 1)}.mud-markdown-toc-nav-menu .mud-nav-link{padding:4px 16px!important}.mud-markdown-toc-nav-menu .mud-nav-link-h2 .mud-nav-link-text{margin-left:20px!important}.mud-markdown-toc-nav-menu .mud-nav-link-h3 .mud-nav-link-text{margin-left:28px!important}.mud-markdown-toc-nav-menu .mud-nav-item{border-left:4px solid var(--mud-palette-text-disabled)}.mud-markdown-toc-nav-menu .mud-nav-item.active{border-left-color:var(--mud-palette-primary)!important;color:var(--mud-palette-primary)!important} \ No newline at end of file diff --git a/app/MindWork AI Studio/wwwroot/system/MudBlazor.Markdown/MudBlazor.Markdown.min.css.br b/app/MindWork AI Studio/wwwroot/system/MudBlazor.Markdown/MudBlazor.Markdown.min.css.br index 03cf8639..1f4cd78e 100644 Binary files a/app/MindWork AI Studio/wwwroot/system/MudBlazor.Markdown/MudBlazor.Markdown.min.css.br and b/app/MindWork AI Studio/wwwroot/system/MudBlazor.Markdown/MudBlazor.Markdown.min.css.br differ diff --git a/app/MindWork AI Studio/wwwroot/system/MudBlazor.Markdown/MudBlazor.Markdown.min.css.gz b/app/MindWork AI Studio/wwwroot/system/MudBlazor.Markdown/MudBlazor.Markdown.min.css.gz index 2342b82c..63b7dd5c 100644 Binary files a/app/MindWork AI Studio/wwwroot/system/MudBlazor.Markdown/MudBlazor.Markdown.min.css.gz and b/app/MindWork AI Studio/wwwroot/system/MudBlazor.Markdown/MudBlazor.Markdown.min.css.gz differ diff --git a/app/MindWork AI Studio/wwwroot/system/MudBlazor/MudBlazor.min.css b/app/MindWork AI Studio/wwwroot/system/MudBlazor/MudBlazor.min.css index 8904a5cb..a7b299dd 100755 --- a/app/MindWork AI Studio/wwwroot/system/MudBlazor/MudBlazor.min.css +++ b/app/MindWork AI Studio/wwwroot/system/MudBlazor/MudBlazor.min.css @@ -2,4 +2,4 @@ * MudBlazor (https://mudblazor.com/) * Copyright (c) 2021 MudBlazor * Licensed under MIT (https://github.com/MudBlazor/MudBlazor/blob/master/LICENSE) - */.mud-primary{background-color:var(--mud-palette-primary) !important}.mud-primary-text{color:var(--mud-palette-primary) !important;--mud-ripple-color: var(--mud-palette-primary) !important}.mud-primary-hover{background-color:var(--mud-palette-primary-hover) !important}@media(hover: hover)and (pointer: fine){.hover\:mud-primary-hover:hover{background-color:var(--mud-palette-primary-hover) !important}}.hover\:mud-primary-hover:focus-visible,.hover\:mud-primary-hover:active{background-color:var(--mud-palette-primary-hover) !important}.mud-border-primary{border-color:var(--mud-palette-primary) !important}.mud-theme-primary{color:var(--mud-palette-primary-text) !important;background-color:var(--mud-palette-primary) !important}.mud-secondary{background-color:var(--mud-palette-secondary) !important}.mud-secondary-text{color:var(--mud-palette-secondary) !important;--mud-ripple-color: var(--mud-palette-secondary) !important}.mud-secondary-hover{background-color:var(--mud-palette-secondary-hover) !important}@media(hover: hover)and (pointer: fine){.hover\:mud-secondary-hover:hover{background-color:var(--mud-palette-secondary-hover) !important}}.hover\:mud-secondary-hover:focus-visible,.hover\:mud-secondary-hover:active{background-color:var(--mud-palette-secondary-hover) !important}.mud-border-secondary{border-color:var(--mud-palette-secondary) !important}.mud-theme-secondary{color:var(--mud-palette-secondary-text) !important;background-color:var(--mud-palette-secondary) !important}.mud-tertiary{background-color:var(--mud-palette-tertiary) !important}.mud-tertiary-text{color:var(--mud-palette-tertiary) !important;--mud-ripple-color: var(--mud-palette-tertiary) !important}.mud-tertiary-hover{background-color:var(--mud-palette-tertiary-hover) !important}@media(hover: hover)and (pointer: fine){.hover\:mud-tertiary-hover:hover{background-color:var(--mud-palette-tertiary-hover) !important}}.hover\:mud-tertiary-hover:focus-visible,.hover\:mud-tertiary-hover:active{background-color:var(--mud-palette-tertiary-hover) !important}.mud-border-tertiary{border-color:var(--mud-palette-tertiary) !important}.mud-theme-tertiary{color:var(--mud-palette-tertiary-text) !important;background-color:var(--mud-palette-tertiary) !important}.mud-info{background-color:var(--mud-palette-info) !important}.mud-info-text{color:var(--mud-palette-info) !important;--mud-ripple-color: var(--mud-palette-info) !important}.mud-info-hover{background-color:var(--mud-palette-info-hover) !important}@media(hover: hover)and (pointer: fine){.hover\:mud-info-hover:hover{background-color:var(--mud-palette-info-hover) !important}}.hover\:mud-info-hover:focus-visible,.hover\:mud-info-hover:active{background-color:var(--mud-palette-info-hover) !important}.mud-border-info{border-color:var(--mud-palette-info) !important}.mud-theme-info{color:var(--mud-palette-info-text) !important;background-color:var(--mud-palette-info) !important}.mud-success{background-color:var(--mud-palette-success) !important}.mud-success-text{color:var(--mud-palette-success) !important;--mud-ripple-color: var(--mud-palette-success) !important}.mud-success-hover{background-color:var(--mud-palette-success-hover) !important}@media(hover: hover)and (pointer: fine){.hover\:mud-success-hover:hover{background-color:var(--mud-palette-success-hover) !important}}.hover\:mud-success-hover:focus-visible,.hover\:mud-success-hover:active{background-color:var(--mud-palette-success-hover) !important}.mud-border-success{border-color:var(--mud-palette-success) !important}.mud-theme-success{color:var(--mud-palette-success-text) !important;background-color:var(--mud-palette-success) !important}.mud-warning{background-color:var(--mud-palette-warning) !important}.mud-warning-text{color:var(--mud-palette-warning) !important;--mud-ripple-color: var(--mud-palette-warning) !important}.mud-warning-hover{background-color:var(--mud-palette-warning-hover) !important}@media(hover: hover)and (pointer: fine){.hover\:mud-warning-hover:hover{background-color:var(--mud-palette-warning-hover) !important}}.hover\:mud-warning-hover:focus-visible,.hover\:mud-warning-hover:active{background-color:var(--mud-palette-warning-hover) !important}.mud-border-warning{border-color:var(--mud-palette-warning) !important}.mud-theme-warning{color:var(--mud-palette-warning-text) !important;background-color:var(--mud-palette-warning) !important}.mud-error{background-color:var(--mud-palette-error) !important}.mud-error-text{color:var(--mud-palette-error) !important;--mud-ripple-color: var(--mud-palette-error) !important}.mud-error-hover{background-color:var(--mud-palette-error-hover) !important}@media(hover: hover)and (pointer: fine){.hover\:mud-error-hover:hover{background-color:var(--mud-palette-error-hover) !important}}.hover\:mud-error-hover:focus-visible,.hover\:mud-error-hover:active{background-color:var(--mud-palette-error-hover) !important}.mud-border-error{border-color:var(--mud-palette-error) !important}.mud-theme-error{color:var(--mud-palette-error-text) !important;background-color:var(--mud-palette-error) !important}.mud-dark{background-color:var(--mud-palette-dark) !important}.mud-dark-text{color:var(--mud-palette-dark) !important;--mud-ripple-color: var(--mud-palette-dark) !important}.mud-dark-hover{background-color:var(--mud-palette-dark-hover) !important}@media(hover: hover)and (pointer: fine){.hover\:mud-dark-hover:hover{background-color:var(--mud-palette-dark-hover) !important}}.hover\:mud-dark-hover:focus-visible,.hover\:mud-dark-hover:active{background-color:var(--mud-palette-dark-hover) !important}.mud-border-dark{border-color:var(--mud-palette-dark) !important}.mud-theme-dark{color:var(--mud-palette-dark-text) !important;background-color:var(--mud-palette-dark) !important}.mud-inherit-text{color:inherit !important}.mud-border-lines-default{border-color:var(--mud-palette-lines-default)}.mud-background{background-color:var(--mud-palette-background) !important}.mud-background-gray{background-color:var(--mud-palette-background-gray) !important}.mud-theme-transparent{color:inherit !important;background-color:rgba(0,0,0,0) !important}.mud-transparent{background-color:rgba(0,0,0,0) !important}.mud-transparent-text{color:rgba(0,0,0,0) !important}.mud-text-primary{color:var(--mud-palette-text-primary)}.mud-text-secondary{color:var(--mud-palette-text-secondary)}.mud-text-disabled{color:var(--mud-palette-text-disabled)}.white{background-color:#fff !important}.white-text{color:#fff !important}.black{background-color:#000 !important}.black-text{color:#000 !important}*{box-sizing:border-box;margin:0;padding:0;border-width:0;border-style:solid;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:rgba(0,0,0,0)}strong,b{font-weight:700}body{color:var(--mud-palette-text-primary);font-family:var(--mud-typography-default-family);font-size:var(--mud-typography-default-size);font-weight:var(--mud-typography-default-weight);line-height:var(--mud-typography-default-lineheight);letter-spacing:var(--mud-typography-default-letterspacing);text-transform:var(--mud-typography-default-text-transform);background-color:var(--mud-palette-background)}a{color:var(--mud-palette-text-primary)}.mud-layout{height:100%;width:100%;position:relative}#blazor-error-ui{background-color:var(--mud-palette-error);color:var(--mud-palette-error-text);bottom:0;box-shadow:0 -1px 2px rgba(0,0,0,.2);display:none;left:0;padding:.6rem 1.75rem .7rem 1.25rem;position:fixed;width:100%;z-index:9999}#blazor-error-ui .reload{color:inherit;text-decoration:underline}#blazor-error-ui .dismiss{color:inherit;cursor:pointer;position:absolute;right:.75rem;top:.5rem}#components-reconnect-modal{z-index:9999 !important;background-color:var(--mud-palette-background) !important}#components-reconnect-modal h5{font-size:18px}#components-reconnect-modal button{color:var(--mud-palette-text-primary);padding:8px 16px;font-size:.875rem;min-width:64px;box-sizing:border-box;transition:background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-weight:500;line-height:1;border-radius:var(--mud-default-borderradius);letter-spacing:.02857em;text-transform:uppercase;margin:40px auto !important}@media(hover: hover)and (pointer: fine){#components-reconnect-modal button:hover{background-color:var(--mud-palette-action-default-hover)}}@keyframes mud-animation-fadein{0%{opacity:0}100%{opacity:1}}@-moz-keyframes mud-animation-fadein{0%{opacity:0}100%{opacity:1}}@-webkit-keyframes mud-animation-fadein{0%{opacity:0}100%{opacity:1}}@-o-keyframes mud-animation-fadein{0%{opacity:0}100%{opacity:1}}@-ms-keyframes mud-animation-fadein{0%{opacity:0}100%{opacity:1}}@-webkit-keyframes mud-scale-up-center{0%{-webkit-transform:scale(0.5);transform:scale(0.5)}100%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes mud-scale-up-center{0%{-webkit-transform:scale(0.5);transform:scale(0.5)}100%{-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes mud-skeleton-keyframes-pulse{0%{opacity:1}50%{opacity:.4}100%{opacity:1}}@-webkit-keyframes mud-skeleton-keyframes-wave{0%{transform:translateX(-100%)}60%{transform:translateX(100%)}100%{transform:translateX(100%)}}@-webkit-keyframes mud-progress-circular-keyframes-circular-rotate{0%{transform-origin:50% 50%}100%{transform:rotate(360deg)}}@-webkit-keyframes mud-progress-circular-keyframes-circular-dash{0%{stroke-dasharray:1px,200px;stroke-dashoffset:0px}50%{stroke-dasharray:100px,200px;stroke-dashoffset:-15px}100%{stroke-dasharray:100px,200px;stroke-dashoffset:-125px}}@-webkit-keyframes mud-progress-linear-horizontal-keyframes-indeterminate1{0%{left:-35%;right:100%}60%{left:100%;right:-90%}100%{left:100%;right:-90%}}@-webkit-keyframes mud-progress-linear-horizontal-keyframes-indeterminate2{0%{left:-200%;right:100%}60%{left:107%;right:-8%}100%{left:107%;right:-8%}}@-webkit-keyframes mud-progress-linear-horizontal-keyframes-buffer{0%{opacity:1;background-position:0 50%}50%{opacity:0;background-position:0 50%}100%{opacity:1;background-position:-200px 50%}}@-webkit-keyframes mud-progress-linear-vertical-keyframes-indeterminate1{0%{bottom:-35%;top:100%}60%{bottom:100%;top:-90%}100%{bottom:100%;top:-90%}}@-webkit-keyframes mud-progress-linear-vertical-keyframes-indeterminate2{0%{bottom:-200%;top:100%}60%{bottom:107%;top:-8%}100%{bottom:107%;top:-8%}}@-webkit-keyframes mud-progress-linear-vertical-keyframes-buffer{0%{opacity:1;background-position:50% 0}50%{opacity:0;background-position:50% 0}100%{opacity:1;background-position:50% -200px}}@keyframes mud-progress-linear-striped-loading{0%{background-position:0 0}100%{background-position:300px 0}}a{text-decoration:none}a:focus-visible{outline:none}label{display:inline-block}button{color:inherit;border:0;cursor:pointer;margin:0;display:inline-flex;outline:0;padding:0;position:relative;align-items:center;user-select:none;border-radius:0;vertical-align:middle;-moz-appearance:none;justify-content:center;text-decoration:none;background-color:rgba(0,0,0,0);-webkit-appearance:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}button:focus{outline:none}input,button,select,optgroup,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}iframe{border:none;height:100%;width:100%}.mud-elevation-0{box-shadow:var(--mud-elevation-0)}.mud-elevation-1{box-shadow:var(--mud-elevation-1)}.mud-elevation-2{box-shadow:var(--mud-elevation-2)}.mud-elevation-3{box-shadow:var(--mud-elevation-3)}.mud-elevation-4{box-shadow:var(--mud-elevation-4)}.mud-elevation-5{box-shadow:var(--mud-elevation-5)}.mud-elevation-6{box-shadow:var(--mud-elevation-6)}.mud-elevation-7{box-shadow:var(--mud-elevation-7)}.mud-elevation-8{box-shadow:var(--mud-elevation-8)}.mud-elevation-9{box-shadow:var(--mud-elevation-9)}.mud-elevation-10{box-shadow:var(--mud-elevation-10)}.mud-elevation-11{box-shadow:var(--mud-elevation-11)}.mud-elevation-12{box-shadow:var(--mud-elevation-12)}.mud-elevation-13{box-shadow:var(--mud-elevation-13)}.mud-elevation-14{box-shadow:var(--mud-elevation-14)}.mud-elevation-15{box-shadow:var(--mud-elevation-15)}.mud-elevation-16{box-shadow:var(--mud-elevation-16)}.mud-elevation-17{box-shadow:var(--mud-elevation-17)}.mud-elevation-18{box-shadow:var(--mud-elevation-18)}.mud-elevation-19{box-shadow:var(--mud-elevation-19)}.mud-elevation-20{box-shadow:var(--mud-elevation-20)}.mud-elevation-21{box-shadow:var(--mud-elevation-21)}.mud-elevation-22{box-shadow:var(--mud-elevation-22)}.mud-elevation-23{box-shadow:var(--mud-elevation-23)}.mud-elevation-24{box-shadow:var(--mud-elevation-24)}.mud-elevation-25{box-shadow:var(--mud-elevation-25)}.mud-alert{display:flex;padding:6px 16px;border-radius:var(--mud-default-borderradius);background-color:rgba(0,0,0,0);transition:box-shadow 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}.mud-alert.mud-square{border-radius:0px}.mud-alert.mud-dense{padding:0px 12px}.mud-alert-text-normal{color:var(--mud-palette-text-primary);background-color:var(--mud-palette-dark-hover)}.mud-alert-text-primary{color:var(--mud-palette-primary-darken);background-color:var(--mud-palette-primary-hover)}.mud-alert-text-primary .mud-alert-icon{color:var(--mud-palette-primary)}.mud-alert-text-secondary{color:var(--mud-palette-secondary-darken);background-color:var(--mud-palette-secondary-hover)}.mud-alert-text-secondary .mud-alert-icon{color:var(--mud-palette-secondary)}.mud-alert-text-tertiary{color:var(--mud-palette-tertiary-darken);background-color:var(--mud-palette-tertiary-hover)}.mud-alert-text-tertiary .mud-alert-icon{color:var(--mud-palette-tertiary)}.mud-alert-text-info{color:var(--mud-palette-info-darken);background-color:var(--mud-palette-info-hover)}.mud-alert-text-info .mud-alert-icon{color:var(--mud-palette-info)}.mud-alert-text-success{color:var(--mud-palette-success-darken);background-color:var(--mud-palette-success-hover)}.mud-alert-text-success .mud-alert-icon{color:var(--mud-palette-success)}.mud-alert-text-warning{color:var(--mud-palette-warning-darken);background-color:var(--mud-palette-warning-hover)}.mud-alert-text-warning .mud-alert-icon{color:var(--mud-palette-warning)}.mud-alert-text-error{color:var(--mud-palette-error-darken);background-color:var(--mud-palette-error-hover)}.mud-alert-text-error .mud-alert-icon{color:var(--mud-palette-error)}.mud-alert-text-dark{color:var(--mud-palette-dark-darken);background-color:var(--mud-palette-dark-hover)}.mud-alert-text-dark .mud-alert-icon{color:var(--mud-palette-dark)}.mud-alert-outlined-normal{color:var(--mud-palette-text-primary);border:1px solid rgb(from var(--mud-palette-text-primary) r g b/var(--mud-palette-border-opacity))}.mud-alert-outlined-primary{color:var(--mud-palette-primary-darken);border:1px solid rgb(from var(--mud-palette-primary) r g b/var(--mud-palette-border-opacity))}.mud-alert-outlined-primary .mud-alert-icon{color:var(--mud-palette-primary)}.mud-alert-outlined-secondary{color:var(--mud-palette-secondary-darken);border:1px solid rgb(from var(--mud-palette-secondary) r g b/var(--mud-palette-border-opacity))}.mud-alert-outlined-secondary .mud-alert-icon{color:var(--mud-palette-secondary)}.mud-alert-outlined-tertiary{color:var(--mud-palette-tertiary-darken);border:1px solid rgb(from var(--mud-palette-tertiary) r g b/var(--mud-palette-border-opacity))}.mud-alert-outlined-tertiary .mud-alert-icon{color:var(--mud-palette-tertiary)}.mud-alert-outlined-info{color:var(--mud-palette-info-darken);border:1px solid rgb(from var(--mud-palette-info) r g b/var(--mud-palette-border-opacity))}.mud-alert-outlined-info .mud-alert-icon{color:var(--mud-palette-info)}.mud-alert-outlined-success{color:var(--mud-palette-success-darken);border:1px solid rgb(from var(--mud-palette-success) r g b/var(--mud-palette-border-opacity))}.mud-alert-outlined-success .mud-alert-icon{color:var(--mud-palette-success)}.mud-alert-outlined-warning{color:var(--mud-palette-warning-darken);border:1px solid rgb(from var(--mud-palette-warning) r g b/var(--mud-palette-border-opacity))}.mud-alert-outlined-warning .mud-alert-icon{color:var(--mud-palette-warning)}.mud-alert-outlined-error{color:var(--mud-palette-error-darken);border:1px solid rgb(from var(--mud-palette-error) r g b/var(--mud-palette-border-opacity))}.mud-alert-outlined-error .mud-alert-icon{color:var(--mud-palette-error)}.mud-alert-outlined-dark{color:var(--mud-palette-dark-darken);border:1px solid rgb(from var(--mud-palette-dark) r g b/var(--mud-palette-border-opacity))}.mud-alert-outlined-dark .mud-alert-icon{color:var(--mud-palette-dark)}.mud-alert-filled-normal{color:var(--mud-palette-dark-text);font-weight:500;background-color:var(--mud-palette-dark)}.mud-alert-filled-normal .mud-alert-close .mud-button-root{color:currentColor}.mud-alert-filled-primary{color:var(--mud-palette-primary-text);font-weight:500;background-color:var(--mud-palette-primary)}.mud-alert-filled-primary .mud-button-root{color:currentColor}.mud-alert-filled-secondary{color:var(--mud-palette-secondary-text);font-weight:500;background-color:var(--mud-palette-secondary)}.mud-alert-filled-secondary .mud-button-root{color:currentColor}.mud-alert-filled-tertiary{color:var(--mud-palette-tertiary-text);font-weight:500;background-color:var(--mud-palette-tertiary)}.mud-alert-filled-tertiary .mud-button-root{color:currentColor}.mud-alert-filled-info{color:var(--mud-palette-info-text);font-weight:500;background-color:var(--mud-palette-info)}.mud-alert-filled-info .mud-button-root{color:currentColor}.mud-alert-filled-success{color:var(--mud-palette-success-text);font-weight:500;background-color:var(--mud-palette-success)}.mud-alert-filled-success .mud-button-root{color:currentColor}.mud-alert-filled-warning{color:var(--mud-palette-warning-text);font-weight:500;background-color:var(--mud-palette-warning)}.mud-alert-filled-warning .mud-button-root{color:currentColor}.mud-alert-filled-error{color:var(--mud-palette-error-text);font-weight:500;background-color:var(--mud-palette-error)}.mud-alert-filled-error .mud-button-root{color:currentColor}.mud-alert-filled-dark{color:var(--mud-palette-dark-text);font-weight:500;background-color:var(--mud-palette-dark)}.mud-alert-filled-dark .mud-button-root{color:currentColor}.mud-alert-icon{display:flex;opacity:.9;padding:7px 0;font-size:22px;margin-right:12px;margin-inline-end:12px;margin-inline-start:unset}.mud-alert-icon.mud-alert-icon-left{margin-right:12px;margin-inline-end:12px;margin-inline-start:unset}.mud-alert-icon.mud-alert-icon-right{margin-left:12px;margin-inline-start:12px;margin-inline-end:unset}.mud-alert-message{padding:9px 0}.mud-alert-position{flex:1;display:flex;align-items:start}.mud-alert-close{display:flex;flex:0;align-items:center;margin-left:8px}.mud-badge-root{position:relative;display:inline-block}.mud-badge-root .mud-badge-wrapper{top:0;left:0;flex:0 1;width:100%;height:100%;display:flex;pointer-events:none;position:absolute}.mud-badge-root .mud-badge-wrapper.mud-badge-top{align-items:flex-start}.mud-badge-root .mud-badge-wrapper.mud-badge-top.left{justify-content:flex-start}.mud-badge-root .mud-badge-wrapper.mud-badge-top.center{justify-content:center}.mud-badge-root .mud-badge-wrapper.mud-badge-top.right{justify-content:flex-end}.mud-badge-root .mud-badge-wrapper.mud-badge-center{align-items:center}.mud-badge-root .mud-badge-wrapper.mud-badge-center.left{justify-content:flex-start}.mud-badge-root .mud-badge-wrapper.mud-badge-center.center{justify-content:center}.mud-badge-root .mud-badge-wrapper.mud-badge-center.right{justify-content:flex-end}.mud-badge-root .mud-badge-wrapper.mud-badge-bottom{align-items:flex-end}.mud-badge-root .mud-badge-wrapper.mud-badge-bottom.left{justify-content:flex-start}.mud-badge-root .mud-badge-wrapper.mud-badge-bottom.center{justify-content:center}.mud-badge-root .mud-badge-wrapper.mud-badge-bottom.right{justify-content:flex-end}.mud-badge{border-radius:10px;font-size:12px;height:20px;letter-spacing:0;min-width:20px;padding:4px 6px;pointer-events:auto;line-height:1;position:absolute;text-align:center;text-indent:0;top:auto;transition:.3s cubic-bezier(0.25, 0.8, 0.5, 1);white-space:nowrap}.mud-badge.mud-badge-default{color:var(--mud-palette-text-primary);background-color:var(--mud-palette-gray-light)}.mud-badge.mud-badge-bordered{border-color:var(--mud-palette-surface);border-style:solid;border-width:2px;padding:3px 4px}.mud-badge.mud-badge-bordered.mud-badge-icon{padding:4px 6px}.mud-badge.mud-badge-icon{width:20px;height:20px}.mud-badge.mud-badge-icon .mud-icon-badge{color:inherit;font-size:12px}.mud-badge.mud-badge-dot{border-radius:50%;height:9px;min-width:0;padding:0;width:9px}.mud-badge.mud-badge{display:flex;align-items:center;justify-content:center}.mud-badge.mud-badge-top.left{inset:auto calc(100% - 4px) calc(100% - 4px) auto}.mud-badge.mud-badge-top.left.mud-badge-overlap{inset:auto calc(100% - 12px) calc(100% - 12px) auto}.mud-badge.mud-badge-top.center{bottom:calc(100% - 4px)}.mud-badge.mud-badge-top.center.mud-badge-overlap{bottom:calc(100% - 12px)}.mud-badge.mud-badge-top.right{inset:auto auto calc(100% - 4px) calc(100% - 4px)}.mud-badge.mud-badge-top.right.mud-badge-overlap{inset:auto auto calc(100% - 12px) calc(100% - 12px)}.mud-badge.mud-badge-center.left{right:calc(100% - 4px)}.mud-badge.mud-badge-center.left.mud-badge-overlap{right:calc(100% - 12px)}.mud-badge.mud-badge-center.right{left:calc(100% - 4px)}.mud-badge.mud-badge-center.right.mud-badge-overlap{left:calc(100% - 12px)}.mud-badge.mud-badge-bottom.left{inset:calc(100% - 4px) calc(100% - 4px) auto auto}.mud-badge.mud-badge-bottom.left.mud-badge-overlap{inset:calc(100% - 12px) calc(100% - 12px) auto auto}.mud-badge.mud-badge-bottom.center{top:calc(100% - 4px)}.mud-badge.mud-badge-bottom.center.mud-badge-overlap{top:calc(100% - 12px)}.mud-badge.mud-badge-bottom.right{inset:calc(100% - 4px) auto auto calc(100% - 4px)}.mud-badge.mud-badge-bottom.right.mud-badge-overlap{inset:calc(100% - 12px) auto auto calc(100% - 12px)}.mud-toolbar{display:flex;position:relative;align-items:center;--mud-internal-toolbar-height: 56px;height:var(--mud-internal-toolbar-height)}.mud-toolbar-gutters{padding-left:16px;padding-right:16px}@media(min-width: 0px)and (orientation: landscape){.mud-toolbar{--mud-internal-toolbar-height: 48px}}@media(min-width: 600px){.mud-toolbar{--mud-internal-toolbar-height: 64px}.mud-toolbar-gutters{padding-left:24px;padding-right:24px}}.mud-toolbar-dense{--mud-internal-toolbar-height: 48px}.mud-toolbar.mud-toolbar-wrap-content{height:auto;min-height:var(--mud-internal-toolbar-height);flex-wrap:wrap}.mud-toolbar.mud-toolbar-wrap-content.mud-toolbar-appbar{min-height:min(var(--mud-appbar-height),var(--mud-internal-toolbar-height))}.mud-tooltip-root.mud-tooltip-inline{display:inline-block}.mud-tooltip{padding:4px 8px;text-align:center;align-items:center;justify-content:center;font-weight:500;font-size:12px;line-height:1.4em;border-radius:var(--mud-default-borderradius);z-index:var(--mud-zindex-tooltip)}.mud-tooltip.mud-tooltip-default{color:var(--mud-palette-dark-text);background-color:var(--mud-palette-gray-darker)}.mud-tooltip.mud-tooltip-default.mud-tooltip-arrow::after{border-color:var(--mud-palette-gray-darker) rgba(0,0,0,0) rgba(0,0,0,0) rgba(0,0,0,0)}.mud-tooltip.mud-tooltip-center-left:not([data-mudpopover-flip]),.mud-tooltip.mud-tooltip-center-right[data-mudpopover-flip]{transform:translateX(-10px)}.mud-tooltip.mud-tooltip-center-left:not([data-mudpopover-flip]).mud-tooltip-arrow::after,.mud-tooltip.mud-tooltip-center-right[data-mudpopover-flip].mud-tooltip-arrow::after{left:100%;transform:rotate(270deg)}.mud-tooltip.mud-tooltip-center-right:not([data-mudpopover-flip]),.mud-tooltip.mud-tooltip-center-left[data-mudpopover-flip]{transform:translateX(10px)}.mud-tooltip.mud-tooltip-center-right:not([data-mudpopover-flip]).mud-tooltip-arrow::after,.mud-tooltip.mud-tooltip-center-left[data-mudpopover-flip].mud-tooltip-arrow::after{right:100%;transform:rotate(90deg)}.mud-tooltip.mud-tooltip-top-center:not([data-mudpopover-flip]),.mud-tooltip.mud-tooltip-bottom-center[data-mudpopover-flip]{transform:translateY(-10px)}.mud-tooltip.mud-tooltip-top-center:not([data-mudpopover-flip]).mud-tooltip-arrow::after,.mud-tooltip.mud-tooltip-bottom-center[data-mudpopover-flip].mud-tooltip-arrow::after{top:100%;transform:rotate(0deg)}.mud-tooltip.mud-tooltip-bottom-center:not([data-mudpopover-flip]),.mud-tooltip.mud-tooltip-top-center[data-mudpopover-flip]{transform:translateY(10px)}.mud-tooltip.mud-tooltip-bottom-center:not([data-mudpopover-flip]).mud-tooltip-arrow::after,.mud-tooltip.mud-tooltip-top-center[data-mudpopover-flip].mud-tooltip-arrow::after{bottom:100%;transform:rotate(180deg)}.mud-tooltip.mud-tooltip-arrow::after{content:"";position:absolute;border-width:6px;border-style:solid;border-color:rgba(0,0,0,0);border-top-color:inherit}.mud-avatar{display:inline-flex;overflow:hidden;position:relative;align-items:center;flex-shrink:0;line-height:1;user-select:none;border-radius:50%;justify-content:center;color:var(--mud-palette-white);background-color:var(--mud-palette-gray-light)}.mud-avatar.mud-avatar-small{width:24px;height:24px;font-size:.75rem}.mud-avatar.mud-avatar-medium{width:40px;height:40px;font-size:1.25rem}.mud-avatar.mud-avatar-large{width:56px;height:56px;font-size:1.5rem}.mud-avatar-rounded{border-radius:var(--mud-default-borderradius)}.mud-avatar-square{border-radius:0}.mud-avatar>.mud-image{color:rgba(0,0,0,0);width:100%;height:100%;object-fit:cover;text-align:center;text-indent:10000px}.mud-avatar-fallback{width:75%;height:75%}.mud-avatar-outlined{color:var(--mud-palette-text-primary);background-color:unset;border:1px solid rgb(from var(--mud-palette-text-primary) r g b/var(--mud-palette-border-opacity))}.mud-avatar-outlined.mud-avatar-outlined-primary{color:var(--mud-palette-primary);border:1px solid rgb(from var(--mud-palette-primary) r g b/var(--mud-palette-border-opacity))}.mud-avatar-outlined.mud-avatar-outlined-secondary{color:var(--mud-palette-secondary);border:1px solid rgb(from var(--mud-palette-secondary) r g b/var(--mud-palette-border-opacity))}.mud-avatar-outlined.mud-avatar-outlined-tertiary{color:var(--mud-palette-tertiary);border:1px solid rgb(from var(--mud-palette-tertiary) r g b/var(--mud-palette-border-opacity))}.mud-avatar-outlined.mud-avatar-outlined-info{color:var(--mud-palette-info);border:1px solid rgb(from var(--mud-palette-info) r g b/var(--mud-palette-border-opacity))}.mud-avatar-outlined.mud-avatar-outlined-success{color:var(--mud-palette-success);border:1px solid rgb(from var(--mud-palette-success) r g b/var(--mud-palette-border-opacity))}.mud-avatar-outlined.mud-avatar-outlined-warning{color:var(--mud-palette-warning);border:1px solid rgb(from var(--mud-palette-warning) r g b/var(--mud-palette-border-opacity))}.mud-avatar-outlined.mud-avatar-outlined-error{color:var(--mud-palette-error);border:1px solid rgb(from var(--mud-palette-error) r g b/var(--mud-palette-border-opacity))}.mud-avatar-outlined.mud-avatar-outlined-dark{color:var(--mud-palette-dark);border:1px solid rgb(from var(--mud-palette-dark) r g b/var(--mud-palette-border-opacity))}.mud-avatar-filled{color:var(--mud-palette-text-primary);background-color:var(--mud-palette-lines-inputs)}.mud-avatar-filled.mud-avatar-filled-primary{color:var(--mud-palette-primary-text);background-color:var(--mud-palette-primary)}.mud-avatar-filled.mud-avatar-filled-secondary{color:var(--mud-palette-secondary-text);background-color:var(--mud-palette-secondary)}.mud-avatar-filled.mud-avatar-filled-tertiary{color:var(--mud-palette-tertiary-text);background-color:var(--mud-palette-tertiary)}.mud-avatar-filled.mud-avatar-filled-info{color:var(--mud-palette-info-text);background-color:var(--mud-palette-info)}.mud-avatar-filled.mud-avatar-filled-success{color:var(--mud-palette-success-text);background-color:var(--mud-palette-success)}.mud-avatar-filled.mud-avatar-filled-warning{color:var(--mud-palette-warning-text);background-color:var(--mud-palette-warning)}.mud-avatar-filled.mud-avatar-filled-error{color:var(--mud-palette-error-text);background-color:var(--mud-palette-error)}.mud-avatar-filled.mud-avatar-filled-dark{color:var(--mud-palette-dark-text);background-color:var(--mud-palette-dark)}.mud-avatar-group{display:flex}.mud-avatar-group .mud-avatar:first-child{margin-inline-start:0px !important}.mud-avatar-group.mud-avatar-group-outlined.mud-avatar-group-outlined-transparent .mud-avatar:not(.mud-avatar-outlined){border-color:rgba(0,0,0,0)}.mud-avatar-group.mud-avatar-group-outlined.mud-avatar-group-outlined-surface .mud-avatar:not(.mud-avatar-outlined){border-color:var(--mud-palette-surface)}.mud-avatar-group.mud-avatar-group-outlined.mud-avatar-group-outlined-primary .mud-avatar:not(.mud-avatar-outlined){border-color:var(--mud-palette-primary)}.mud-avatar-group.mud-avatar-group-outlined.mud-avatar-group-outlined-secondary .mud-avatar:not(.mud-avatar-outlined){border-color:var(--mud-palette-secondary)}.mud-avatar-group.mud-avatar-group-outlined.mud-avatar-group-outlined-tertiary .mud-avatar:not(.mud-avatar-outlined){border-color:var(--mud-palette-tertiary)}.mud-avatar-group.mud-avatar-group-outlined.mud-avatar-group-outlined-info .mud-avatar:not(.mud-avatar-outlined){border-color:var(--mud-palette-info)}.mud-avatar-group.mud-avatar-group-outlined.mud-avatar-group-outlined-success .mud-avatar:not(.mud-avatar-outlined){border-color:var(--mud-palette-success)}.mud-avatar-group.mud-avatar-group-outlined.mud-avatar-group-outlined-warning .mud-avatar:not(.mud-avatar-outlined){border-color:var(--mud-palette-warning)}.mud-avatar-group.mud-avatar-group-outlined.mud-avatar-group-outlined-error .mud-avatar:not(.mud-avatar-outlined){border-color:var(--mud-palette-error)}.mud-avatar-group.mud-avatar-group-outlined.mud-avatar-group-outlined-dark .mud-avatar:not(.mud-avatar-outlined){border-color:var(--mud-palette-dark)}.mud-avatar-group.mud-avatar-group-outlined .mud-avatar{border:2px solid}.mud-avatar-group.mud-avatar-group-outlined .mud-avatar.mud-avatar-small{width:28px;height:28px}.mud-avatar-group.mud-avatar-group-outlined .mud-avatar.mud-avatar-medium{width:44px;height:44px}.mud-avatar-group.mud-avatar-group-outlined .mud-avatar.mud-avatar-large{width:60px;height:60px}.mud-breadcrumbs{display:flex;flex-wrap:wrap;flex:0 1 auto;align-items:center;list-style:none;margin:0;padding:16px 12px}.mud-breadcrumb-separator{display:inline-flex;padding:0 12px}.mud-breadcrumb-separator>span{color:var(--mud-palette-text-primary);opacity:.38}.mud-breadcrumb-item>a{display:flex;align-items:center}.mud-breadcrumb-item>a>svg.mud-icon-root{margin-right:4px;margin-inline-end:4px;margin-inline-start:unset}.mud-breadcrumb-item.mud-disabled>a{pointer-events:none;color:var(--mud-palette-action-disabled)}.mud-breadcrumbs-expander{cursor:pointer;display:flex;background-color:#eee}@media(hover: hover)and (pointer: fine){.mud-breadcrumbs-expander:hover{background-color:#e0e0e0}}.mud-breadcrumbs-expander>svg{width:26px}.mud-button-root{color:inherit;border:0;cursor:pointer;margin:0;display:inline-flex;outline:0;padding:0;position:relative;align-items:center;user-select:none;border-radius:0;vertical-align:middle;-moz-appearance:none;justify-content:center;text-decoration:none;background-color:rgba(0,0,0,0);-webkit-appearance:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mud-button-root::-moz-focus-inner{border-style:none}.mud-button-root:disabled{color:var(--mud-palette-action-disabled) !important;cursor:default;pointer-events:none}.mud-button{padding:6px 16px;font-family:var(--mud-typography-button-family);font-size:var(--mud-typography-button-size);font-weight:var(--mud-typography-button-weight);line-height:var(--mud-typography-button-lineheight);letter-spacing:var(--mud-typography-button-letterspacing);text-transform:var(--mud-typography-button-text-transform);min-width:64px;box-sizing:border-box;transition:background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;border-radius:var(--mud-default-borderradius);color:var(--mud-palette-text-primary);--mud-ripple-color: var(--mud-palette-text-primary)}@media(hover: hover)and (pointer: fine){.mud-button:hover{background-color:var(--mud-palette-action-default-hover)}}.mud-button:focus-visible,.mud-button:active{background-color:var(--mud-palette-action-default-hover)}.mud-button-text{padding:6px 8px}.mud-button-text.mud-button-text-inherit{color:inherit}.mud-button-text.mud-button-text-primary{color:var(--mud-palette-primary);--mud-ripple-color: var(--mud-palette-primary)}@media(hover: hover)and (pointer: fine){.mud-button-text.mud-button-text-primary:hover{background-color:var(--mud-palette-primary-hover)}}.mud-button-text.mud-button-text-primary:focus-visible,.mud-button-text.mud-button-text-primary:active{background-color:var(--mud-palette-primary-hover)}.mud-button-text.mud-button-text-secondary{color:var(--mud-palette-secondary);--mud-ripple-color: var(--mud-palette-secondary)}@media(hover: hover)and (pointer: fine){.mud-button-text.mud-button-text-secondary:hover{background-color:var(--mud-palette-secondary-hover)}}.mud-button-text.mud-button-text-secondary:focus-visible,.mud-button-text.mud-button-text-secondary:active{background-color:var(--mud-palette-secondary-hover)}.mud-button-text.mud-button-text-tertiary{color:var(--mud-palette-tertiary);--mud-ripple-color: var(--mud-palette-tertiary)}@media(hover: hover)and (pointer: fine){.mud-button-text.mud-button-text-tertiary:hover{background-color:var(--mud-palette-tertiary-hover)}}.mud-button-text.mud-button-text-tertiary:focus-visible,.mud-button-text.mud-button-text-tertiary:active{background-color:var(--mud-palette-tertiary-hover)}.mud-button-text.mud-button-text-info{color:var(--mud-palette-info);--mud-ripple-color: var(--mud-palette-info)}@media(hover: hover)and (pointer: fine){.mud-button-text.mud-button-text-info:hover{background-color:var(--mud-palette-info-hover)}}.mud-button-text.mud-button-text-info:focus-visible,.mud-button-text.mud-button-text-info:active{background-color:var(--mud-palette-info-hover)}.mud-button-text.mud-button-text-success{color:var(--mud-palette-success);--mud-ripple-color: var(--mud-palette-success)}@media(hover: hover)and (pointer: fine){.mud-button-text.mud-button-text-success:hover{background-color:var(--mud-palette-success-hover)}}.mud-button-text.mud-button-text-success:focus-visible,.mud-button-text.mud-button-text-success:active{background-color:var(--mud-palette-success-hover)}.mud-button-text.mud-button-text-warning{color:var(--mud-palette-warning);--mud-ripple-color: var(--mud-palette-warning)}@media(hover: hover)and (pointer: fine){.mud-button-text.mud-button-text-warning:hover{background-color:var(--mud-palette-warning-hover)}}.mud-button-text.mud-button-text-warning:focus-visible,.mud-button-text.mud-button-text-warning:active{background-color:var(--mud-palette-warning-hover)}.mud-button-text.mud-button-text-error{color:var(--mud-palette-error);--mud-ripple-color: var(--mud-palette-error)}@media(hover: hover)and (pointer: fine){.mud-button-text.mud-button-text-error:hover{background-color:var(--mud-palette-error-hover)}}.mud-button-text.mud-button-text-error:focus-visible,.mud-button-text.mud-button-text-error:active{background-color:var(--mud-palette-error-hover)}.mud-button-text.mud-button-text-dark{color:var(--mud-palette-dark);--mud-ripple-color: var(--mud-palette-dark)}@media(hover: hover)and (pointer: fine){.mud-button-text.mud-button-text-dark:hover{background-color:var(--mud-palette-dark-hover)}}.mud-button-text.mud-button-text-dark:focus-visible,.mud-button-text.mud-button-text-dark:active{background-color:var(--mud-palette-dark-hover)}.mud-button-outlined{color:var(--mud-palette-text-primary);border:1px solid rgb(from var(--mud-palette-text-primary) r g b/var(--mud-palette-border-opacity));padding:5px 15px}.mud-button-outlined.mud-button-outlined-inherit{color:inherit;border-color:currentColor}.mud-button-outlined.mud-icon-button{padding:5px}@media(hover: hover)and (pointer: fine){.mud-button-outlined:hover{background-color:var(--mud-palette-action-default-hover)}}.mud-button-outlined:focus-visible,.mud-button-outlined:active{background-color:var(--mud-palette-action-default-hover)}.mud-button-outlined.mud-button-outlined-primary{color:var(--mud-palette-primary);--mud-ripple-color: var(--mud-palette-primary);border:1px solid rgb(from var(--mud-palette-primary) r g b/var(--mud-palette-border-opacity))}@media(hover: hover)and (pointer: fine){.mud-button-outlined.mud-button-outlined-primary:hover{border:1px solid rgb(from var(--mud-palette-primary) r g b/var(--mud-palette-border-opacity));background-color:var(--mud-palette-primary-hover)}}.mud-button-outlined.mud-button-outlined-primary:focus-visible,.mud-button-outlined.mud-button-outlined-primary:active{border:1px solid rgb(from var(--mud-palette-primary) r g b/var(--mud-palette-border-opacity));background-color:var(--mud-palette-primary-hover)}.mud-button-outlined.mud-button-outlined-secondary{color:var(--mud-palette-secondary);--mud-ripple-color: var(--mud-palette-secondary);border:1px solid rgb(from var(--mud-palette-secondary) r g b/var(--mud-palette-border-opacity))}@media(hover: hover)and (pointer: fine){.mud-button-outlined.mud-button-outlined-secondary:hover{border:1px solid rgb(from var(--mud-palette-secondary) r g b/var(--mud-palette-border-opacity));background-color:var(--mud-palette-secondary-hover)}}.mud-button-outlined.mud-button-outlined-secondary:focus-visible,.mud-button-outlined.mud-button-outlined-secondary:active{border:1px solid rgb(from var(--mud-palette-secondary) r g b/var(--mud-palette-border-opacity));background-color:var(--mud-palette-secondary-hover)}.mud-button-outlined.mud-button-outlined-tertiary{color:var(--mud-palette-tertiary);--mud-ripple-color: var(--mud-palette-tertiary);border:1px solid rgb(from var(--mud-palette-tertiary) r g b/var(--mud-palette-border-opacity))}@media(hover: hover)and (pointer: fine){.mud-button-outlined.mud-button-outlined-tertiary:hover{border:1px solid rgb(from var(--mud-palette-tertiary) r g b/var(--mud-palette-border-opacity));background-color:var(--mud-palette-tertiary-hover)}}.mud-button-outlined.mud-button-outlined-tertiary:focus-visible,.mud-button-outlined.mud-button-outlined-tertiary:active{border:1px solid rgb(from var(--mud-palette-tertiary) r g b/var(--mud-palette-border-opacity));background-color:var(--mud-palette-tertiary-hover)}.mud-button-outlined.mud-button-outlined-info{color:var(--mud-palette-info);--mud-ripple-color: var(--mud-palette-info);border:1px solid rgb(from var(--mud-palette-info) r g b/var(--mud-palette-border-opacity))}@media(hover: hover)and (pointer: fine){.mud-button-outlined.mud-button-outlined-info:hover{border:1px solid rgb(from var(--mud-palette-info) r g b/var(--mud-palette-border-opacity));background-color:var(--mud-palette-info-hover)}}.mud-button-outlined.mud-button-outlined-info:focus-visible,.mud-button-outlined.mud-button-outlined-info:active{border:1px solid rgb(from var(--mud-palette-info) r g b/var(--mud-palette-border-opacity));background-color:var(--mud-palette-info-hover)}.mud-button-outlined.mud-button-outlined-success{color:var(--mud-palette-success);--mud-ripple-color: var(--mud-palette-success);border:1px solid rgb(from var(--mud-palette-success) r g b/var(--mud-palette-border-opacity))}@media(hover: hover)and (pointer: fine){.mud-button-outlined.mud-button-outlined-success:hover{border:1px solid rgb(from var(--mud-palette-success) r g b/var(--mud-palette-border-opacity));background-color:var(--mud-palette-success-hover)}}.mud-button-outlined.mud-button-outlined-success:focus-visible,.mud-button-outlined.mud-button-outlined-success:active{border:1px solid rgb(from var(--mud-palette-success) r g b/var(--mud-palette-border-opacity));background-color:var(--mud-palette-success-hover)}.mud-button-outlined.mud-button-outlined-warning{color:var(--mud-palette-warning);--mud-ripple-color: var(--mud-palette-warning);border:1px solid rgb(from var(--mud-palette-warning) r g b/var(--mud-palette-border-opacity))}@media(hover: hover)and (pointer: fine){.mud-button-outlined.mud-button-outlined-warning:hover{border:1px solid rgb(from var(--mud-palette-warning) r g b/var(--mud-palette-border-opacity));background-color:var(--mud-palette-warning-hover)}}.mud-button-outlined.mud-button-outlined-warning:focus-visible,.mud-button-outlined.mud-button-outlined-warning:active{border:1px solid rgb(from var(--mud-palette-warning) r g b/var(--mud-palette-border-opacity));background-color:var(--mud-palette-warning-hover)}.mud-button-outlined.mud-button-outlined-error{color:var(--mud-palette-error);--mud-ripple-color: var(--mud-palette-error);border:1px solid rgb(from var(--mud-palette-error) r g b/var(--mud-palette-border-opacity))}@media(hover: hover)and (pointer: fine){.mud-button-outlined.mud-button-outlined-error:hover{border:1px solid rgb(from var(--mud-palette-error) r g b/var(--mud-palette-border-opacity));background-color:var(--mud-palette-error-hover)}}.mud-button-outlined.mud-button-outlined-error:focus-visible,.mud-button-outlined.mud-button-outlined-error:active{border:1px solid rgb(from var(--mud-palette-error) r g b/var(--mud-palette-border-opacity));background-color:var(--mud-palette-error-hover)}.mud-button-outlined.mud-button-outlined-dark{color:var(--mud-palette-dark);--mud-ripple-color: var(--mud-palette-dark);border:1px solid rgb(from var(--mud-palette-dark) r g b/var(--mud-palette-border-opacity))}@media(hover: hover)and (pointer: fine){.mud-button-outlined.mud-button-outlined-dark:hover{border:1px solid rgb(from var(--mud-palette-dark) r g b/var(--mud-palette-border-opacity));background-color:var(--mud-palette-dark-hover)}}.mud-button-outlined.mud-button-outlined-dark:focus-visible,.mud-button-outlined.mud-button-outlined-dark:active{border:1px solid rgb(from var(--mud-palette-dark) r g b/var(--mud-palette-border-opacity));background-color:var(--mud-palette-dark-hover)}.mud-button-outlined:disabled{border:1px solid var(--mud-palette-action-disabled-background)}.mud-button-filled{color:var(--mud-palette-text-primary);--mud-ripple-color: var(--mud-palette-text-primary);--mud-ripple-opacity: var(--mud-ripple-opacity-secondary) !important;box-shadow:0px 3px 1px -2px rgba(0,0,0,.2),0px 2px 2px 0px rgba(0,0,0,.14),0px 1px 5px 0px rgba(0,0,0,.12);background-color:var(--mud-palette-action-default-hover)}.mud-button-filled.mud-icon-button{padding:6px}@media(hover: hover)and (pointer: fine){.mud-button-filled:hover{box-shadow:0px 2px 4px -1px rgba(0,0,0,.2),0px 4px 5px 0px rgba(0,0,0,.14),0px 1px 10px 0px rgba(0,0,0,.12);background-color:var(--mud-palette-action-disabled-background)}}.mud-button-filled:focus-visible{box-shadow:0px 2px 4px -1px rgba(0,0,0,.2),0px 4px 5px 0px rgba(0,0,0,.14),0px 1px 10px 0px rgba(0,0,0,.12);background-color:var(--mud-palette-action-disabled-background)}.mud-button-filled:active{box-shadow:0px 5px 5px -3px rgba(0,0,0,.2),0px 8px 10px 1px rgba(0,0,0,.14),0px 3px 14px 2px rgba(0,0,0,.12);background-color:var(--mud-palette-action-disabled-background)}.mud-button-filled:disabled{color:var(--mud-palette-action-disabled);box-shadow:none;background-color:var(--mud-palette-action-disabled-background) !important}.mud-button-filled.mud-button-filled-primary{color:var(--mud-palette-primary-text);--mud-ripple-color: var(--mud-palette-primary-text);background-color:var(--mud-palette-primary)}@media(hover: hover)and (pointer: fine){.mud-button-filled.mud-button-filled-primary:hover{background-color:var(--mud-palette-primary-darken)}}.mud-button-filled.mud-button-filled-primary:focus-visible,.mud-button-filled.mud-button-filled-primary:active{background-color:var(--mud-palette-primary-darken)}.mud-button-filled.mud-button-filled-secondary{color:var(--mud-palette-secondary-text);--mud-ripple-color: var(--mud-palette-secondary-text);background-color:var(--mud-palette-secondary)}@media(hover: hover)and (pointer: fine){.mud-button-filled.mud-button-filled-secondary:hover{background-color:var(--mud-palette-secondary-darken)}}.mud-button-filled.mud-button-filled-secondary:focus-visible,.mud-button-filled.mud-button-filled-secondary:active{background-color:var(--mud-palette-secondary-darken)}.mud-button-filled.mud-button-filled-tertiary{color:var(--mud-palette-tertiary-text);--mud-ripple-color: var(--mud-palette-tertiary-text);background-color:var(--mud-palette-tertiary)}@media(hover: hover)and (pointer: fine){.mud-button-filled.mud-button-filled-tertiary:hover{background-color:var(--mud-palette-tertiary-darken)}}.mud-button-filled.mud-button-filled-tertiary:focus-visible,.mud-button-filled.mud-button-filled-tertiary:active{background-color:var(--mud-palette-tertiary-darken)}.mud-button-filled.mud-button-filled-info{color:var(--mud-palette-info-text);--mud-ripple-color: var(--mud-palette-info-text);background-color:var(--mud-palette-info)}@media(hover: hover)and (pointer: fine){.mud-button-filled.mud-button-filled-info:hover{background-color:var(--mud-palette-info-darken)}}.mud-button-filled.mud-button-filled-info:focus-visible,.mud-button-filled.mud-button-filled-info:active{background-color:var(--mud-palette-info-darken)}.mud-button-filled.mud-button-filled-success{color:var(--mud-palette-success-text);--mud-ripple-color: var(--mud-palette-success-text);background-color:var(--mud-palette-success)}@media(hover: hover)and (pointer: fine){.mud-button-filled.mud-button-filled-success:hover{background-color:var(--mud-palette-success-darken)}}.mud-button-filled.mud-button-filled-success:focus-visible,.mud-button-filled.mud-button-filled-success:active{background-color:var(--mud-palette-success-darken)}.mud-button-filled.mud-button-filled-warning{color:var(--mud-palette-warning-text);--mud-ripple-color: var(--mud-palette-warning-text);background-color:var(--mud-palette-warning)}@media(hover: hover)and (pointer: fine){.mud-button-filled.mud-button-filled-warning:hover{background-color:var(--mud-palette-warning-darken)}}.mud-button-filled.mud-button-filled-warning:focus-visible,.mud-button-filled.mud-button-filled-warning:active{background-color:var(--mud-palette-warning-darken)}.mud-button-filled.mud-button-filled-error{color:var(--mud-palette-error-text);--mud-ripple-color: var(--mud-palette-error-text);background-color:var(--mud-palette-error)}@media(hover: hover)and (pointer: fine){.mud-button-filled.mud-button-filled-error:hover{background-color:var(--mud-palette-error-darken)}}.mud-button-filled.mud-button-filled-error:focus-visible,.mud-button-filled.mud-button-filled-error:active{background-color:var(--mud-palette-error-darken)}.mud-button-filled.mud-button-filled-dark{color:var(--mud-palette-dark-text);--mud-ripple-color: var(--mud-palette-dark-text);background-color:var(--mud-palette-dark)}@media(hover: hover)and (pointer: fine){.mud-button-filled.mud-button-filled-dark:hover{background-color:var(--mud-palette-dark-darken)}}.mud-button-filled.mud-button-filled-dark:focus-visible,.mud-button-filled.mud-button-filled-dark:active{background-color:var(--mud-palette-dark-darken)}.mud-button-disable-elevation{box-shadow:none}@media(hover: hover)and (pointer: fine){.mud-button-disable-elevation:hover{box-shadow:none}}.mud-button-disable-elevation:active{box-shadow:none}.mud-button-disable-elevation.mud-focus-visible{box-shadow:none}.mud-button-disable-elevation:disabled{box-shadow:none}.mud-button-color-inherit{color:inherit;border-color:currentColor}.mud-button-text-size-small{padding:4px 5px;font-size:.8125rem}.mud-button-text-size-large{padding:8px 11px;font-size:.9375rem}.mud-button-outlined-size-small{padding:3px 9px;font-size:.8125rem}.mud-button-outlined-size-small.mud-icon-button{padding:4px}.mud-button-outlined-size-large{padding:7px 21px;font-size:.9375rem}.mud-button-outlined-size-large.mud-icon-button{padding:4px}.mud-button-filled-size-small{padding:4px 10px;font-size:.8125rem}.mud-button-filled-size-small.mud-icon-button{padding:5px}.mud-button-filled-size-large{padding:8px 22px;font-size:.9375rem}.mud-button-filled-size-large.mud-icon-button{padding:5px}.mud-button-full-width{width:100%}.mud-button-label{width:100%;display:inherit;align-items:inherit;justify-content:inherit}.mud-button-label .mud-button-icon-start{display:inherit;margin-left:-4px;margin-right:8px;margin-inline-start:-4px;margin-inline-end:8px}.mud-button-label .mud-button-icon-start.mud-button-icon-size-small{margin-left:-2px;margin-inline-start:-2px;margin-inline-end:8px}.mud-button-label .mud-button-icon-end{display:inherit;margin-left:8px;margin-right:-4px;margin-inline-start:8px;margin-inline-end:-4px}.mud-button-label .mud-button-icon-end.mud-button-icon-size-small{margin-right:-2px;margin-inline-end:-2px;margin-inline-start:8px}.mud-button-icon-size-small>*:first-child{font-size:18px}.mud-button-icon-size-medium>*:first-child{font-size:20px}.mud-button-icon-size-large>*:first-child{font-size:22px}.mud-button-group-root{border-radius:var(--mud-default-borderradius);display:inline-flex}.mud-button-group-root .mud-button-root{border-radius:var(--mud-default-borderradius)}.mud-button-group-root.mud-button-group-override-styles .mud-button{color:var(--mud-palette-text-primary);--mud-ripple-color: var(--mud-palette-text-primary)}.mud-button-group-root.mud-button-group-override-styles .mud-button-root{background-color:inherit;box-shadow:none;border:none}@media(hover: hover)and (pointer: fine){.mud-button-group-root.mud-button-group-override-styles .mud-button-root:hover{background-color:var(--mud-palette-action-default-hover)}}.mud-button-group-root.mud-button-group-override-styles .mud-button-root:focus-visible,.mud-button-group-root.mud-button-group-override-styles .mud-button-root:active{background-color:var(--mud-palette-action-default-hover)}.mud-button-group-root.mud-button-group-override-styles .mud-button-root:disabled{border-color:var(--mud-palette-action-disabled-background) !important}.mud-button-group-root.mud-button-group-text-size-small .mud-button-root{padding:4px 5px;font-size:.8125rem}.mud-button-group-root.mud-button-group-text-size-small .mud-button-root.mud-icon-button .mud-icon-root{font-size:1.422rem}.mud-button-group-root.mud-button-group-text-size-large .mud-button-root{padding:8px 11px;font-size:.9375rem}.mud-button-group-root.mud-button-group-text-size-large .mud-button-root.mud-icon-button .mud-icon-root{font-size:1.641rem}.mud-button-group-root.mud-button-group-outlined-size-small .mud-button-root{padding:3px 9px;font-size:.8125rem}.mud-button-group-root.mud-button-group-outlined-size-small .mud-button-root.mud-icon-button{padding:3px 9px}.mud-button-group-root.mud-button-group-outlined-size-small .mud-button-root.mud-icon-button .mud-icon-root{font-size:1.422rem}.mud-button-group-root.mud-button-group-outlined-size-large .mud-button-root{padding:7px 21px;font-size:.9375rem}.mud-button-group-root.mud-button-group-outlined-size-large .mud-button-root.mud-icon-button{padding:7px 15px}.mud-button-group-root.mud-button-group-outlined-size-large .mud-button-root.mud-icon-button .mud-icon-root{font-size:1.641rem}.mud-button-group-root.mud-button-group-filled-size-small .mud-button-root{padding:4px 10px;font-size:.8125rem}.mud-button-group-root.mud-button-group-filled-size-small .mud-button-root.mud-icon-button{padding:4px 10px}.mud-button-group-root.mud-button-group-filled-size-small .mud-button-root.mud-icon-button .mud-icon-root{font-size:1.422rem}.mud-button-group-root.mud-button-group-filled-size-large .mud-button-root{padding:8px 22px;font-size:.9375rem}.mud-button-group-root.mud-button-group-filled-size-large .mud-button-root.mud-icon-button{padding:8px 16px}.mud-button-group-root.mud-button-group-filled-size-large .mud-button-root.mud-icon-button .mud-icon-root{font-size:1.641rem}.mud-button-group-root .mud-button-root.mud-icon-button{padding-right:12px;padding-left:12px}.mud-button-group-root .mud-button-root.mud-icon-button .mud-icon-root{font-size:1.516rem}.mud-button-group-root .mud-button-root.mud-icon-button.mud-ripple-icon:after{transform:scale(10, 10)}.mud-button-group-root .mud-button-root.mud-icon-button.mud-ripple-icon:active:after{transform:scale(0, 0);opacity:.1;transition:0s}.mud-button-group-horizontal:not(.mud-button-group-rtl)>.mud-button-root:not(:last-child),.mud-button-group-horizontal:not(.mud-button-group-rtl)>:not(:last-child) .mud-button-root{border-top-right-radius:0;border-bottom-right-radius:0}.mud-button-group-horizontal:not(.mud-button-group-rtl)>.mud-button-root:not(:first-child),.mud-button-group-horizontal:not(.mud-button-group-rtl)>:not(:first-child) .mud-button-root{border-top-left-radius:0;border-bottom-left-radius:0;margin-left:-1px}.mud-button-group-horizontal.mud-button-group-rtl>.mud-button-root:not(:last-child),.mud-button-group-horizontal.mud-button-group-rtl>:not(:last-child) .mud-button-root{border-top-left-radius:0;border-bottom-left-radius:0;margin-left:-1px}.mud-button-group-horizontal.mud-button-group-rtl>.mud-button-root:not(:first-child),.mud-button-group-horizontal.mud-button-group-rtl>:not(:first-child) .mud-button-root{border-top-right-radius:0;border-bottom-right-radius:0}.mud-button-group-vertical{flex-direction:column}.mud-button-group-vertical .mud-icon-button{width:100%}.mud-button-group-vertical>.mud-button-root:not(:last-child),.mud-button-group-vertical>:not(:last-child) .mud-button-root{border-bottom-right-radius:0;border-bottom-left-radius:0}.mud-button-group-vertical>.mud-button-root:not(:first-child),.mud-button-group-vertical>:not(:first-child) .mud-button-root{border-top-right-radius:0;border-top-left-radius:0;margin-top:-1px}.mud-button-group-text.mud-button-group-override-styles .mud-button-root{padding:6px 8px}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-horizontal:not(.mud-button-group-rtl) .mud-button-root:not(:first-child),.mud-button-group-text.mud-button-group-override-styles.mud-button-group-horizontal:not(.mud-button-group-rtl)>:not(:first-child) .mud-button-root{border-left:1px solid rgb(from var(--mud-palette-text-primary) r g b/var(--mud-palette-border-opacity))}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-horizontal.mud-button-group-rtl .mud-button-root:not(:first-child),.mud-button-group-text.mud-button-group-override-styles.mud-button-group-horizontal.mud-button-group-rtl>:not(:first-child) .mud-button-root{border-right:1px solid rgb(from var(--mud-palette-text-primary) r g b/var(--mud-palette-border-opacity))}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-vertical .mud-button-root:not(:last-child),.mud-button-group-text.mud-button-group-override-styles.mud-button-group-vertical>:not(:last-child) .mud-button-root{border-bottom:1px solid rgb(from var(--mud-palette-text-primary) r g b/var(--mud-palette-border-opacity))}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-primary .mud-button-root{color:var(--mud-palette-primary);--mud-ripple-color: var(--mud-palette-primary)}@media(hover: hover)and (pointer: fine){.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-primary .mud-button-root:hover{background-color:var(--mud-palette-primary-hover)}}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-primary .mud-button-root:focus-visible,.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-primary .mud-button-root:active{background-color:var(--mud-palette-primary-hover)}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-primary.mud-button-group-horizontal:not(.mud-button-group-rtl) .mud-button-root:not(:first-child),.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-primary.mud-button-group-horizontal:not(.mud-button-group-rtl)>:not(:first-child) .mud-button-root{border-left:1px solid rgb(from var(--mud-palette-primary) r g b/var(--mud-palette-border-opacity))}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-primary.mud-button-group-horizontal.mud-button-group-rtl .mud-button-root:not(:first-child),.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-primary.mud-button-group-horizontal.mud-button-group-rtl>:not(:first-child) .mud-button-root{border-right:1px solid rgb(from var(--mud-palette-primary) r g b/var(--mud-palette-border-opacity))}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-primary.mud-button-group-vertical .mud-button-root:not(:last-child),.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-primary.mud-button-group-vertical>:not(:last-child) .mud-button-root{border-bottom:1px solid rgb(from var(--mud-palette-primary) r g b/var(--mud-palette-border-opacity))}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-secondary .mud-button-root{color:var(--mud-palette-secondary);--mud-ripple-color: var(--mud-palette-secondary)}@media(hover: hover)and (pointer: fine){.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-secondary .mud-button-root:hover{background-color:var(--mud-palette-secondary-hover)}}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-secondary .mud-button-root:focus-visible,.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-secondary .mud-button-root:active{background-color:var(--mud-palette-secondary-hover)}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-secondary.mud-button-group-horizontal:not(.mud-button-group-rtl) .mud-button-root:not(:first-child),.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-secondary.mud-button-group-horizontal:not(.mud-button-group-rtl)>:not(:first-child) .mud-button-root{border-left:1px solid rgb(from var(--mud-palette-secondary) r g b/var(--mud-palette-border-opacity))}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-secondary.mud-button-group-horizontal.mud-button-group-rtl .mud-button-root:not(:first-child),.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-secondary.mud-button-group-horizontal.mud-button-group-rtl>:not(:first-child) .mud-button-root{border-right:1px solid rgb(from var(--mud-palette-secondary) r g b/var(--mud-palette-border-opacity))}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-secondary.mud-button-group-vertical .mud-button-root:not(:last-child),.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-secondary.mud-button-group-vertical>:not(:last-child) .mud-button-root{border-bottom:1px solid rgb(from var(--mud-palette-secondary) r g b/var(--mud-palette-border-opacity))}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-tertiary .mud-button-root{color:var(--mud-palette-tertiary);--mud-ripple-color: var(--mud-palette-tertiary)}@media(hover: hover)and (pointer: fine){.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-tertiary .mud-button-root:hover{background-color:var(--mud-palette-tertiary-hover)}}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-tertiary .mud-button-root:focus-visible,.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-tertiary .mud-button-root:active{background-color:var(--mud-palette-tertiary-hover)}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-tertiary.mud-button-group-horizontal:not(.mud-button-group-rtl) .mud-button-root:not(:first-child),.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-tertiary.mud-button-group-horizontal:not(.mud-button-group-rtl)>:not(:first-child) .mud-button-root{border-left:1px solid rgb(from var(--mud-palette-tertiary) r g b/var(--mud-palette-border-opacity))}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-tertiary.mud-button-group-horizontal.mud-button-group-rtl .mud-button-root:not(:first-child),.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-tertiary.mud-button-group-horizontal.mud-button-group-rtl>:not(:first-child) .mud-button-root{border-right:1px solid rgb(from var(--mud-palette-tertiary) r g b/var(--mud-palette-border-opacity))}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-tertiary.mud-button-group-vertical .mud-button-root:not(:last-child),.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-tertiary.mud-button-group-vertical>:not(:last-child) .mud-button-root{border-bottom:1px solid rgb(from var(--mud-palette-tertiary) r g b/var(--mud-palette-border-opacity))}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-info .mud-button-root{color:var(--mud-palette-info);--mud-ripple-color: var(--mud-palette-info)}@media(hover: hover)and (pointer: fine){.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-info .mud-button-root:hover{background-color:var(--mud-palette-info-hover)}}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-info .mud-button-root:focus-visible,.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-info .mud-button-root:active{background-color:var(--mud-palette-info-hover)}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-info.mud-button-group-horizontal:not(.mud-button-group-rtl) .mud-button-root:not(:first-child),.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-info.mud-button-group-horizontal:not(.mud-button-group-rtl)>:not(:first-child) .mud-button-root{border-left:1px solid rgb(from var(--mud-palette-info) r g b/var(--mud-palette-border-opacity))}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-info.mud-button-group-horizontal.mud-button-group-rtl .mud-button-root:not(:first-child),.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-info.mud-button-group-horizontal.mud-button-group-rtl>:not(:first-child) .mud-button-root{border-right:1px solid rgb(from var(--mud-palette-info) r g b/var(--mud-palette-border-opacity))}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-info.mud-button-group-vertical .mud-button-root:not(:last-child),.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-info.mud-button-group-vertical>:not(:last-child) .mud-button-root{border-bottom:1px solid rgb(from var(--mud-palette-info) r g b/var(--mud-palette-border-opacity))}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-success .mud-button-root{color:var(--mud-palette-success);--mud-ripple-color: var(--mud-palette-success)}@media(hover: hover)and (pointer: fine){.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-success .mud-button-root:hover{background-color:var(--mud-palette-success-hover)}}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-success .mud-button-root:focus-visible,.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-success .mud-button-root:active{background-color:var(--mud-palette-success-hover)}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-success.mud-button-group-horizontal:not(.mud-button-group-rtl) .mud-button-root:not(:first-child),.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-success.mud-button-group-horizontal:not(.mud-button-group-rtl)>:not(:first-child) .mud-button-root{border-left:1px solid rgb(from var(--mud-palette-success) r g b/var(--mud-palette-border-opacity))}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-success.mud-button-group-horizontal.mud-button-group-rtl .mud-button-root:not(:first-child),.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-success.mud-button-group-horizontal.mud-button-group-rtl>:not(:first-child) .mud-button-root{border-right:1px solid rgb(from var(--mud-palette-success) r g b/var(--mud-palette-border-opacity))}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-success.mud-button-group-vertical .mud-button-root:not(:last-child),.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-success.mud-button-group-vertical>:not(:last-child) .mud-button-root{border-bottom:1px solid rgb(from var(--mud-palette-success) r g b/var(--mud-palette-border-opacity))}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-warning .mud-button-root{color:var(--mud-palette-warning);--mud-ripple-color: var(--mud-palette-warning)}@media(hover: hover)and (pointer: fine){.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-warning .mud-button-root:hover{background-color:var(--mud-palette-warning-hover)}}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-warning .mud-button-root:focus-visible,.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-warning .mud-button-root:active{background-color:var(--mud-palette-warning-hover)}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-warning.mud-button-group-horizontal:not(.mud-button-group-rtl) .mud-button-root:not(:first-child),.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-warning.mud-button-group-horizontal:not(.mud-button-group-rtl)>:not(:first-child) .mud-button-root{border-left:1px solid rgb(from var(--mud-palette-warning) r g b/var(--mud-palette-border-opacity))}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-warning.mud-button-group-horizontal.mud-button-group-rtl .mud-button-root:not(:first-child),.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-warning.mud-button-group-horizontal.mud-button-group-rtl>:not(:first-child) .mud-button-root{border-right:1px solid rgb(from var(--mud-palette-warning) r g b/var(--mud-palette-border-opacity))}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-warning.mud-button-group-vertical .mud-button-root:not(:last-child),.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-warning.mud-button-group-vertical>:not(:last-child) .mud-button-root{border-bottom:1px solid rgb(from var(--mud-palette-warning) r g b/var(--mud-palette-border-opacity))}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-error .mud-button-root{color:var(--mud-palette-error);--mud-ripple-color: var(--mud-palette-error)}@media(hover: hover)and (pointer: fine){.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-error .mud-button-root:hover{background-color:var(--mud-palette-error-hover)}}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-error .mud-button-root:focus-visible,.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-error .mud-button-root:active{background-color:var(--mud-palette-error-hover)}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-error.mud-button-group-horizontal:not(.mud-button-group-rtl) .mud-button-root:not(:first-child),.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-error.mud-button-group-horizontal:not(.mud-button-group-rtl)>:not(:first-child) .mud-button-root{border-left:1px solid rgb(from var(--mud-palette-error) r g b/var(--mud-palette-border-opacity))}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-error.mud-button-group-horizontal.mud-button-group-rtl .mud-button-root:not(:first-child),.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-error.mud-button-group-horizontal.mud-button-group-rtl>:not(:first-child) .mud-button-root{border-right:1px solid rgb(from var(--mud-palette-error) r g b/var(--mud-palette-border-opacity))}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-error.mud-button-group-vertical .mud-button-root:not(:last-child),.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-error.mud-button-group-vertical>:not(:last-child) .mud-button-root{border-bottom:1px solid rgb(from var(--mud-palette-error) r g b/var(--mud-palette-border-opacity))}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-dark .mud-button-root{color:var(--mud-palette-dark);--mud-ripple-color: var(--mud-palette-dark)}@media(hover: hover)and (pointer: fine){.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-dark .mud-button-root:hover{background-color:var(--mud-palette-dark-hover)}}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-dark .mud-button-root:focus-visible,.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-dark .mud-button-root:active{background-color:var(--mud-palette-dark-hover)}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-dark.mud-button-group-horizontal:not(.mud-button-group-rtl) .mud-button-root:not(:first-child),.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-dark.mud-button-group-horizontal:not(.mud-button-group-rtl)>:not(:first-child) .mud-button-root{border-left:1px solid rgb(from var(--mud-palette-dark) r g b/var(--mud-palette-border-opacity))}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-dark.mud-button-group-horizontal.mud-button-group-rtl .mud-button-root:not(:first-child),.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-dark.mud-button-group-horizontal.mud-button-group-rtl>:not(:first-child) .mud-button-root{border-right:1px solid rgb(from var(--mud-palette-dark) r g b/var(--mud-palette-border-opacity))}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-dark.mud-button-group-vertical .mud-button-root:not(:last-child),.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-dark.mud-button-group-vertical>:not(:last-child) .mud-button-root{border-bottom:1px solid rgb(from var(--mud-palette-dark) r g b/var(--mud-palette-border-opacity))}.mud-button-group-outlined.mud-button-group-override-styles .mud-button-root{padding:5px 15px;border:1px solid rgb(from var(--mud-palette-text-primary) r g b/var(--mud-palette-border-opacity))}.mud-button-group-outlined.mud-button-group-override-styles.mud-button-group-outlined-primary .mud-button-root{color:var(--mud-palette-primary);border:1px solid rgb(from var(--mud-palette-primary) r g b/var(--mud-palette-border-opacity));--mud-ripple-color: var(--mud-palette-primary)}@media(hover: hover)and (pointer: fine){.mud-button-group-outlined.mud-button-group-override-styles.mud-button-group-outlined-primary .mud-button-root:hover{background-color:var(--mud-palette-primary-hover)}}.mud-button-group-outlined.mud-button-group-override-styles.mud-button-group-outlined-primary .mud-button-root:focus-visible,.mud-button-group-outlined.mud-button-group-override-styles.mud-button-group-outlined-primary .mud-button-root:active{background-color:var(--mud-palette-primary-hover)}.mud-button-group-outlined.mud-button-group-override-styles.mud-button-group-outlined-secondary .mud-button-root{color:var(--mud-palette-secondary);border:1px solid rgb(from var(--mud-palette-secondary) r g b/var(--mud-palette-border-opacity));--mud-ripple-color: var(--mud-palette-secondary)}@media(hover: hover)and (pointer: fine){.mud-button-group-outlined.mud-button-group-override-styles.mud-button-group-outlined-secondary .mud-button-root:hover{background-color:var(--mud-palette-secondary-hover)}}.mud-button-group-outlined.mud-button-group-override-styles.mud-button-group-outlined-secondary .mud-button-root:focus-visible,.mud-button-group-outlined.mud-button-group-override-styles.mud-button-group-outlined-secondary .mud-button-root:active{background-color:var(--mud-palette-secondary-hover)}.mud-button-group-outlined.mud-button-group-override-styles.mud-button-group-outlined-tertiary .mud-button-root{color:var(--mud-palette-tertiary);border:1px solid rgb(from var(--mud-palette-tertiary) r g b/var(--mud-palette-border-opacity));--mud-ripple-color: var(--mud-palette-tertiary)}@media(hover: hover)and (pointer: fine){.mud-button-group-outlined.mud-button-group-override-styles.mud-button-group-outlined-tertiary .mud-button-root:hover{background-color:var(--mud-palette-tertiary-hover)}}.mud-button-group-outlined.mud-button-group-override-styles.mud-button-group-outlined-tertiary .mud-button-root:focus-visible,.mud-button-group-outlined.mud-button-group-override-styles.mud-button-group-outlined-tertiary .mud-button-root:active{background-color:var(--mud-palette-tertiary-hover)}.mud-button-group-outlined.mud-button-group-override-styles.mud-button-group-outlined-info .mud-button-root{color:var(--mud-palette-info);border:1px solid rgb(from var(--mud-palette-info) r g b/var(--mud-palette-border-opacity));--mud-ripple-color: var(--mud-palette-info)}@media(hover: hover)and (pointer: fine){.mud-button-group-outlined.mud-button-group-override-styles.mud-button-group-outlined-info .mud-button-root:hover{background-color:var(--mud-palette-info-hover)}}.mud-button-group-outlined.mud-button-group-override-styles.mud-button-group-outlined-info .mud-button-root:focus-visible,.mud-button-group-outlined.mud-button-group-override-styles.mud-button-group-outlined-info .mud-button-root:active{background-color:var(--mud-palette-info-hover)}.mud-button-group-outlined.mud-button-group-override-styles.mud-button-group-outlined-success .mud-button-root{color:var(--mud-palette-success);border:1px solid rgb(from var(--mud-palette-success) r g b/var(--mud-palette-border-opacity));--mud-ripple-color: var(--mud-palette-success)}@media(hover: hover)and (pointer: fine){.mud-button-group-outlined.mud-button-group-override-styles.mud-button-group-outlined-success .mud-button-root:hover{background-color:var(--mud-palette-success-hover)}}.mud-button-group-outlined.mud-button-group-override-styles.mud-button-group-outlined-success .mud-button-root:focus-visible,.mud-button-group-outlined.mud-button-group-override-styles.mud-button-group-outlined-success .mud-button-root:active{background-color:var(--mud-palette-success-hover)}.mud-button-group-outlined.mud-button-group-override-styles.mud-button-group-outlined-warning .mud-button-root{color:var(--mud-palette-warning);border:1px solid rgb(from var(--mud-palette-warning) r g b/var(--mud-palette-border-opacity));--mud-ripple-color: var(--mud-palette-warning)}@media(hover: hover)and (pointer: fine){.mud-button-group-outlined.mud-button-group-override-styles.mud-button-group-outlined-warning .mud-button-root:hover{background-color:var(--mud-palette-warning-hover)}}.mud-button-group-outlined.mud-button-group-override-styles.mud-button-group-outlined-warning .mud-button-root:focus-visible,.mud-button-group-outlined.mud-button-group-override-styles.mud-button-group-outlined-warning .mud-button-root:active{background-color:var(--mud-palette-warning-hover)}.mud-button-group-outlined.mud-button-group-override-styles.mud-button-group-outlined-error .mud-button-root{color:var(--mud-palette-error);border:1px solid rgb(from var(--mud-palette-error) r g b/var(--mud-palette-border-opacity));--mud-ripple-color: var(--mud-palette-error)}@media(hover: hover)and (pointer: fine){.mud-button-group-outlined.mud-button-group-override-styles.mud-button-group-outlined-error .mud-button-root:hover{background-color:var(--mud-palette-error-hover)}}.mud-button-group-outlined.mud-button-group-override-styles.mud-button-group-outlined-error .mud-button-root:focus-visible,.mud-button-group-outlined.mud-button-group-override-styles.mud-button-group-outlined-error .mud-button-root:active{background-color:var(--mud-palette-error-hover)}.mud-button-group-outlined.mud-button-group-override-styles.mud-button-group-outlined-dark .mud-button-root{color:var(--mud-palette-dark);border:1px solid rgb(from var(--mud-palette-dark) r g b/var(--mud-palette-border-opacity));--mud-ripple-color: var(--mud-palette-dark)}@media(hover: hover)and (pointer: fine){.mud-button-group-outlined.mud-button-group-override-styles.mud-button-group-outlined-dark .mud-button-root:hover{background-color:var(--mud-palette-dark-hover)}}.mud-button-group-outlined.mud-button-group-override-styles.mud-button-group-outlined-dark .mud-button-root:focus-visible,.mud-button-group-outlined.mud-button-group-override-styles.mud-button-group-outlined-dark .mud-button-root:active{background-color:var(--mud-palette-dark-hover)}.mud-button-group-filled{box-shadow:var(--mud-elevation-2)}.mud-button-group-filled .mud-button-root{box-shadow:none}@media(hover: hover)and (pointer: fine){.mud-button-group-filled .mud-button-root:hover{box-shadow:var(--mud-elevation-4)}}.mud-button-group-filled .mud-button-root:focus-visible,.mud-button-group-filled .mud-button-root:active{box-shadow:var(--mud-elevation-4)}.mud-button-group-filled.mud-button-group-override-styles .mud-button-root{background-color:var(--mud-palette-action-default-hover);padding:6px 16px}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-horizontal:not(.mud-button-group-rtl) .mud-button-root:not(:first-child),.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-horizontal:not(.mud-button-group-rtl)>:not(:first-child) .mud-button-root{border-left:1px solid rgb(from var(--mud-palette-divider) r g b/var(--mud-palette-border-opacity))}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-horizontal.mud-button-group-rtl .mud-button-root:not(:first-child),.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-horizontal.mud-button-group-rtl>:not(:first-child) .mud-button-root{border-right:1px solid rgb(from var(--mud-palette-divider) r g b/var(--mud-palette-border-opacity))}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-vertical .mud-button-root:not(:first-child),.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-vertical>:not(:first-child) .mud-button-root{border-top:1px solid rgb(from var(--mud-palette-divider) r g b/var(--mud-palette-border-opacity))}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-primary .mud-button-root{background-color:var(--mud-palette-primary);color:var(--mud-palette-primary-text);--mud-ripple-color: var(--mud-palette-primary-text);--mud-ripple-opacity: var(--mud-ripple-opacity-secondary)}@media(hover: hover)and (pointer: fine){.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-primary .mud-button-root:hover{background-color:var(--mud-palette-primary-darken)}}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-primary .mud-button-root:focus-visible,.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-primary .mud-button-root:active{background-color:var(--mud-palette-primary-darken)}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-primary .mud-button-root:disabled{background-color:var(--mud-palette-action-disabled-background)}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-primary.mud-button-group-horizontal:not(.mud-button-group-rtl) .mud-button-root:not(:first-child),.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-primary.mud-button-group-horizontal:not(.mud-button-group-rtl)>:not(:first-child) .mud-button-root{border-left:1px solid var(--mud-palette-primary-lighten)}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-primary.mud-button-group-horizontal.mud-button-group-rtl .mud-button-root:not(:first-child),.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-primary.mud-button-group-horizontal.mud-button-group-rtl>:not(:first-child) .mud-button-root{border-right:1px solid var(--mud-palette-primary-lighten)}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-primary.mud-button-group-vertical .mud-button-root:not(:first-child),.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-primary.mud-button-group-vertical>:not(:first-child) .mud-button-root{border-top:1px solid var(--mud-palette-primary-lighten)}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-secondary .mud-button-root{background-color:var(--mud-palette-secondary);color:var(--mud-palette-secondary-text);--mud-ripple-color: var(--mud-palette-secondary-text);--mud-ripple-opacity: var(--mud-ripple-opacity-secondary)}@media(hover: hover)and (pointer: fine){.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-secondary .mud-button-root:hover{background-color:var(--mud-palette-secondary-darken)}}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-secondary .mud-button-root:focus-visible,.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-secondary .mud-button-root:active{background-color:var(--mud-palette-secondary-darken)}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-secondary .mud-button-root:disabled{background-color:var(--mud-palette-action-disabled-background)}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-secondary.mud-button-group-horizontal:not(.mud-button-group-rtl) .mud-button-root:not(:first-child),.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-secondary.mud-button-group-horizontal:not(.mud-button-group-rtl)>:not(:first-child) .mud-button-root{border-left:1px solid var(--mud-palette-secondary-lighten)}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-secondary.mud-button-group-horizontal.mud-button-group-rtl .mud-button-root:not(:first-child),.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-secondary.mud-button-group-horizontal.mud-button-group-rtl>:not(:first-child) .mud-button-root{border-right:1px solid var(--mud-palette-secondary-lighten)}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-secondary.mud-button-group-vertical .mud-button-root:not(:first-child),.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-secondary.mud-button-group-vertical>:not(:first-child) .mud-button-root{border-top:1px solid var(--mud-palette-secondary-lighten)}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-tertiary .mud-button-root{background-color:var(--mud-palette-tertiary);color:var(--mud-palette-tertiary-text);--mud-ripple-color: var(--mud-palette-tertiary-text);--mud-ripple-opacity: var(--mud-ripple-opacity-secondary)}@media(hover: hover)and (pointer: fine){.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-tertiary .mud-button-root:hover{background-color:var(--mud-palette-tertiary-darken)}}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-tertiary .mud-button-root:focus-visible,.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-tertiary .mud-button-root:active{background-color:var(--mud-palette-tertiary-darken)}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-tertiary .mud-button-root:disabled{background-color:var(--mud-palette-action-disabled-background)}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-tertiary.mud-button-group-horizontal:not(.mud-button-group-rtl) .mud-button-root:not(:first-child),.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-tertiary.mud-button-group-horizontal:not(.mud-button-group-rtl)>:not(:first-child) .mud-button-root{border-left:1px solid var(--mud-palette-tertiary-lighten)}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-tertiary.mud-button-group-horizontal.mud-button-group-rtl .mud-button-root:not(:first-child),.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-tertiary.mud-button-group-horizontal.mud-button-group-rtl>:not(:first-child) .mud-button-root{border-right:1px solid var(--mud-palette-tertiary-lighten)}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-tertiary.mud-button-group-vertical .mud-button-root:not(:first-child),.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-tertiary.mud-button-group-vertical>:not(:first-child) .mud-button-root{border-top:1px solid var(--mud-palette-tertiary-lighten)}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-info .mud-button-root{background-color:var(--mud-palette-info);color:var(--mud-palette-info-text);--mud-ripple-color: var(--mud-palette-info-text);--mud-ripple-opacity: var(--mud-ripple-opacity-secondary)}@media(hover: hover)and (pointer: fine){.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-info .mud-button-root:hover{background-color:var(--mud-palette-info-darken)}}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-info .mud-button-root:focus-visible,.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-info .mud-button-root:active{background-color:var(--mud-palette-info-darken)}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-info .mud-button-root:disabled{background-color:var(--mud-palette-action-disabled-background)}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-info.mud-button-group-horizontal:not(.mud-button-group-rtl) .mud-button-root:not(:first-child),.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-info.mud-button-group-horizontal:not(.mud-button-group-rtl)>:not(:first-child) .mud-button-root{border-left:1px solid var(--mud-palette-info-lighten)}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-info.mud-button-group-horizontal.mud-button-group-rtl .mud-button-root:not(:first-child),.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-info.mud-button-group-horizontal.mud-button-group-rtl>:not(:first-child) .mud-button-root{border-right:1px solid var(--mud-palette-info-lighten)}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-info.mud-button-group-vertical .mud-button-root:not(:first-child),.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-info.mud-button-group-vertical>:not(:first-child) .mud-button-root{border-top:1px solid var(--mud-palette-info-lighten)}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-success .mud-button-root{background-color:var(--mud-palette-success);color:var(--mud-palette-success-text);--mud-ripple-color: var(--mud-palette-success-text);--mud-ripple-opacity: var(--mud-ripple-opacity-secondary)}@media(hover: hover)and (pointer: fine){.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-success .mud-button-root:hover{background-color:var(--mud-palette-success-darken)}}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-success .mud-button-root:focus-visible,.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-success .mud-button-root:active{background-color:var(--mud-palette-success-darken)}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-success .mud-button-root:disabled{background-color:var(--mud-palette-action-disabled-background)}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-success.mud-button-group-horizontal:not(.mud-button-group-rtl) .mud-button-root:not(:first-child),.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-success.mud-button-group-horizontal:not(.mud-button-group-rtl)>:not(:first-child) .mud-button-root{border-left:1px solid var(--mud-palette-success-lighten)}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-success.mud-button-group-horizontal.mud-button-group-rtl .mud-button-root:not(:first-child),.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-success.mud-button-group-horizontal.mud-button-group-rtl>:not(:first-child) .mud-button-root{border-right:1px solid var(--mud-palette-success-lighten)}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-success.mud-button-group-vertical .mud-button-root:not(:first-child),.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-success.mud-button-group-vertical>:not(:first-child) .mud-button-root{border-top:1px solid var(--mud-palette-success-lighten)}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-warning .mud-button-root{background-color:var(--mud-palette-warning);color:var(--mud-palette-warning-text);--mud-ripple-color: var(--mud-palette-warning-text);--mud-ripple-opacity: var(--mud-ripple-opacity-secondary)}@media(hover: hover)and (pointer: fine){.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-warning .mud-button-root:hover{background-color:var(--mud-palette-warning-darken)}}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-warning .mud-button-root:focus-visible,.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-warning .mud-button-root:active{background-color:var(--mud-palette-warning-darken)}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-warning .mud-button-root:disabled{background-color:var(--mud-palette-action-disabled-background)}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-warning.mud-button-group-horizontal:not(.mud-button-group-rtl) .mud-button-root:not(:first-child),.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-warning.mud-button-group-horizontal:not(.mud-button-group-rtl)>:not(:first-child) .mud-button-root{border-left:1px solid var(--mud-palette-warning-lighten)}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-warning.mud-button-group-horizontal.mud-button-group-rtl .mud-button-root:not(:first-child),.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-warning.mud-button-group-horizontal.mud-button-group-rtl>:not(:first-child) .mud-button-root{border-right:1px solid var(--mud-palette-warning-lighten)}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-warning.mud-button-group-vertical .mud-button-root:not(:first-child),.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-warning.mud-button-group-vertical>:not(:first-child) .mud-button-root{border-top:1px solid var(--mud-palette-warning-lighten)}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-error .mud-button-root{background-color:var(--mud-palette-error);color:var(--mud-palette-error-text);--mud-ripple-color: var(--mud-palette-error-text);--mud-ripple-opacity: var(--mud-ripple-opacity-secondary)}@media(hover: hover)and (pointer: fine){.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-error .mud-button-root:hover{background-color:var(--mud-palette-error-darken)}}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-error .mud-button-root:focus-visible,.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-error .mud-button-root:active{background-color:var(--mud-palette-error-darken)}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-error .mud-button-root:disabled{background-color:var(--mud-palette-action-disabled-background)}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-error.mud-button-group-horizontal:not(.mud-button-group-rtl) .mud-button-root:not(:first-child),.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-error.mud-button-group-horizontal:not(.mud-button-group-rtl)>:not(:first-child) .mud-button-root{border-left:1px solid var(--mud-palette-error-lighten)}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-error.mud-button-group-horizontal.mud-button-group-rtl .mud-button-root:not(:first-child),.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-error.mud-button-group-horizontal.mud-button-group-rtl>:not(:first-child) .mud-button-root{border-right:1px solid var(--mud-palette-error-lighten)}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-error.mud-button-group-vertical .mud-button-root:not(:first-child),.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-error.mud-button-group-vertical>:not(:first-child) .mud-button-root{border-top:1px solid var(--mud-palette-error-lighten)}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-dark .mud-button-root{background-color:var(--mud-palette-dark);color:var(--mud-palette-dark-text);--mud-ripple-color: var(--mud-palette-dark-text);--mud-ripple-opacity: var(--mud-ripple-opacity-secondary)}@media(hover: hover)and (pointer: fine){.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-dark .mud-button-root:hover{background-color:var(--mud-palette-dark-darken)}}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-dark .mud-button-root:focus-visible,.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-dark .mud-button-root:active{background-color:var(--mud-palette-dark-darken)}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-dark .mud-button-root:disabled{background-color:var(--mud-palette-action-disabled-background)}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-dark.mud-button-group-horizontal:not(.mud-button-group-rtl) .mud-button-root:not(:first-child),.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-dark.mud-button-group-horizontal:not(.mud-button-group-rtl)>:not(:first-child) .mud-button-root{border-left:1px solid var(--mud-palette-dark-lighten)}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-dark.mud-button-group-horizontal.mud-button-group-rtl .mud-button-root:not(:first-child),.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-dark.mud-button-group-horizontal.mud-button-group-rtl>:not(:first-child) .mud-button-root{border-right:1px solid var(--mud-palette-dark-lighten)}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-dark.mud-button-group-vertical .mud-button-root:not(:first-child),.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-dark.mud-button-group-vertical>:not(:first-child) .mud-button-root{border-top:1px solid var(--mud-palette-dark-lighten)}.mud-button-group-disable-elevation{box-shadow:none}.mud-icon-button{flex:0 0 auto;padding:12px;overflow:visible;font-size:1.5rem;text-align:center;transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;border-radius:50%;color:var(--mud-palette-action-default)}.mud-icon-button.mud-button{min-width:unset;border-radius:var(--mud-default-borderradius)}@media(hover: hover)and (pointer: fine){.mud-icon-button:hover{background-color:var(--mud-palette-action-default-hover)}}.mud-icon-button:has(:focus-visible),.mud-icon-button:active{background-color:var(--mud-palette-action-default-hover)}.mud-icon-button:disabled{color:var(--mud-palette-action-disabled);background-color:rgba(0,0,0,0)}.mud-icon-button.mud-readonly,.mud-icon-button .mud-readonly:hover{cursor:default}.mud-icon-button-color-inherit{color:inherit}@media(hover: hover)and (pointer: fine){.mud-icon-button-color-inherit:hover{background-color:var(--mud-palette-action-default-hover)}}.mud-icon-button-color-inherit:focus-visible,.mud-icon-button-color-inherit:active{background-color:var(--mud-palette-action-default-hover)}.mud-icon-button-label{width:100%;display:flex;align-items:inherit;justify-content:inherit}.mud-icon-button-edge-start{margin-left:-12px;margin-inline-start:-12px;margin-inline-end:unset}.mud-icon-button-edge-end{margin-right:-12px;margin-inline-end:-12px;margin-inline-start:unset}.mud-icon-button-edge-margin-end{margin-right:8px;margin-inline-end:8px;margin-inline-start:unset}.mud-icon-button-size-small{padding:3px;font-size:1.125rem}.mud-icon-button-size-small.mud-icon-button-edge-start{margin-left:-3px;margin-inline-start:-3px;margin-inline-end:unset}.mud-icon-button-size-small.mud-icon-button-edge-end{margin-right:-3px;margin-inline-end:-3px;margin-inline-start:unset}.mud-icon-button-size-large.mud-button>.mud-icon-button-label>.mud-icon-size-large{font-size:2rem}.mud-card{display:flex;flex-direction:column}.mud-card-header{display:flex;padding:16px;align-items:center;border-top-left-radius:inherit;border-top-right-radius:inherit}.mud-card-header .mud-card-header-avatar{flex:0 0 auto;margin-right:16px;margin-inline-end:16px;margin-inline-start:unset}.mud-card-header .mud-card-header-content{flex:1 1 auto}.mud-card-header .mud-card-header-content .mud-typography{margin-bottom:0}.mud-card-header .mud-card-header-actions{flex:0 0 auto;align-self:flex-start;margin-top:-8px;margin-right:-8px;margin-inline-end:-8px;margin-inline-start:unset}.mud-card-media{display:block;background-size:cover;background-repeat:no-repeat;background-position:center;border-top-left-radius:inherit;border-top-right-radius:inherit}.mud-card-header+.mud-card-media{border-top-left-radius:0px;border-top-right-radius:0px}.mud-card-content{flex-grow:1;padding:16px}.mud-card-actions{display:flex;padding:8px;align-items:center}.mud-carousel{display:flex !important;position:relative;margin:0px !important;clip-path:inset(0px 0px 0px 0px);overflow:hidden}.mud-carousel.mud-carousel-primary{color:var(--mud-palette-primary-text)}.mud-carousel.mud-carousel-secondary{color:var(--mud-palette-secondary-text)}.mud-carousel.mud-carousel-tertiary{color:var(--mud-palette-tertiary-text)}.mud-carousel.mud-carousel-info{color:var(--mud-palette-info-text)}.mud-carousel.mud-carousel-success{color:var(--mud-palette-success-text)}.mud-carousel.mud-carousel-warning{color:var(--mud-palette-warning-text)}.mud-carousel.mud-carousel-error{color:var(--mud-palette-error-text)}.mud-carousel.mud-carousel-dark{color:var(--mud-palette-dark-text)}.mud-carousel-elements-rtl{transform:rotate(180deg) !important}.mud-carousel-item{position:absolute;left:0px;right:0px;top:0px;bottom:0px;margin:inherit;padding:inherit;z-index:2}.mud-carousel-item.mud-carousel-item-primary{color:var(--mud-palette-primary-text);background-color:var(--mud-palette-primary)}.mud-carousel-item.mud-carousel-item-secondary{color:var(--mud-palette-secondary-text);background-color:var(--mud-palette-secondary)}.mud-carousel-item.mud-carousel-item-tertiary{color:var(--mud-palette-tertiary-text);background-color:var(--mud-palette-tertiary)}.mud-carousel-item.mud-carousel-item-info{color:var(--mud-palette-info-text);background-color:var(--mud-palette-info)}.mud-carousel-item.mud-carousel-item-success{color:var(--mud-palette-success-text);background-color:var(--mud-palette-success)}.mud-carousel-item.mud-carousel-item-warning{color:var(--mud-palette-warning-text);background-color:var(--mud-palette-warning)}.mud-carousel-item.mud-carousel-item-error{color:var(--mud-palette-error-text);background-color:var(--mud-palette-error)}.mud-carousel-item.mud-carousel-item-dark{color:var(--mud-palette-dark-text);background-color:var(--mud-palette-dark)}.mud-carousel-item-exit{z-index:1}@keyframes mud-carousel-transition-fade-in-keyframe{from{opacity:0}to{opacity:1}}@keyframes mud-carousel-transition-fade-out-keyframe{from{opacity:1}to{opacity:0}}.mud-carousel-transition-fade-in{animation:.5s mud-carousel-transition-fade-in-keyframe}.mud-carousel-transition-fade-out{animation:.5s mud-carousel-transition-fade-out-keyframe;animation-fill-mode:forwards}.mud-carousel-transition-none{display:none}@keyframes mud-carousel-transition-slide-next-enter-keyframe{from{transform:translate3d(100%, 0, 0);visibility:visible}to{transform:translate3d(0, 0, 0)}}@keyframes mud-carousel-transition-slide-next-rtl-enter-keyframe{from{transform:translate3d(-100%, 0, 0);visibility:visible}to{transform:translate3d(0, 0, 0)}}@keyframes mud-carousel-transition-slide-next-exit-keyframe{from{transform:translate3d(0, 0, 0);visibility:visible}to{transform:translate3d(-100%, 0, 0)}}@keyframes mud-carousel-transition-slide-next-rtl-exit-keyframe{from{transform:translate3d(0, 0, 0);visibility:visible}to{transform:translate3d(100%, 0, 0)}}.mud-carousel-transition-slide-next-enter{animation:.5s mud-carousel-transition-slide-next-enter-keyframe}.mud-carousel-transition-slide-next-rtl-enter{animation:.5s mud-carousel-transition-slide-next-rtl-enter-keyframe}.mud-carousel-transition-slide-next-exit{animation:.5s mud-carousel-transition-slide-next-exit-keyframe;animation-fill-mode:forwards}.mud-carousel-transition-slide-next-rtl-exit{animation:.5s mud-carousel-transition-slide-next-rtl-exit-keyframe;animation-fill-mode:forwards}@keyframes mud-carousel-transition-slide-prev-enter-keyframe{from{transform:translate3d(-100%, 0, 0);visibility:visible}to{transform:translate3d(0, 0, 0)}}@keyframes mud-carousel-transition-slide-prev-rtl-enter-keyframe{from{transform:translate3d(100%, 0, 0);visibility:visible}to{transform:translate3d(0, 0, 0)}}@keyframes mud-carousel-transition-slide-prev-exit-keyframe{from{transform:translate3d(0, 0, 0);visibility:visible}to{transform:translate3d(100%, 0, 0)}}@keyframes mud-carousel-transition-slide-prev-rtl-exit-keyframe{from{transform:translate3d(0, 0, 0);visibility:visible}to{transform:translate3d(-100%, 0, 0)}}.mud-carousel-transition-slide-prev-enter{animation:.5s mud-carousel-transition-slide-prev-enter-keyframe}.mud-carousel-transition-slide-prev-rtl-enter{animation:.5s mud-carousel-transition-slide-prev-rtl-enter-keyframe}.mud-carousel-transition-slide-prev-exit{animation:.5s mud-carousel-transition-slide-prev-exit-keyframe;animation-fill-mode:forwards}.mud-carousel-transition-slide-prev-rtl-exit{animation:.5s mud-carousel-transition-slide-prev-rtl-exit-keyframe;animation-fill-mode:forwards}.mud-chart{display:flex;min-height:fit-content;min-width:fit-content}.mud-chart svg{order:2}.mud-chart.mud-chart-legend-bottom{flex-direction:column}.mud-chart.mud-chart-legend-bottom .mud-chart-legend{margin-top:10px;justify-content:center;width:100%;order:3}.mud-chart.mud-chart-legend-top{flex-direction:column}.mud-chart.mud-chart-legend-top .mud-chart-legend{justify-content:center;width:100%;order:1}.mud-chart.mud-chart-legend-right{flex-direction:row}.mud-chart.mud-chart-legend-right .mud-chart-legend{flex-direction:column;order:3;min-width:fit-content}.mud-chart.mud-chart-legend-left{flex-direction:row}.mud-chart.mud-chart-legend-left .mud-chart-legend{flex-direction:column;order:1;min-width:fit-content}.mud-chart .mud-chart-donut,.mud-chart .mud-chart-pie,.mud-chart mud-chart-line{display:flex;margin:auto}.mud-chart .mud-chart-legend{display:flex;padding:10px 0px;margin:auto;flex-wrap:wrap}.mud-chart .mud-chart-legend .mud-chart-legend-item{display:block;margin:2px 5px}.mud-chart .mud-chart-legend .mud-chart-legend-item .mud-chart-legend-marker{height:12px;width:12px;border-radius:50%;position:relative;display:inline-flex}.mud-chart .mud-chart-legend .mud-chart-legend-item .mud-chart-legend-text{display:inline-flex}.mud-chart .mud-chart-legend .mud-chart-legend-item .mud-chart-legend-checkbox{display:flex;align-items:center}.mud-chart .mud-chart-legend .mud-chart-legend-item .mud-input-control{width:35px !important}.mud-charts-yaxis{fill:var(--mud-palette-text-primary)}.mud-charts-xaxis{fill:var(--mud-palette-text-primary)}.mud-chart-donut .mud-donut-hole{fill:rgba(0,0,0,0);user-select:none;pointer-events:unset}.mud-chart-donut .mud-donut-ring{fill:rgba(0,0,0,0);stroke:#fff;pointer-events:unset}.mud-chart-donut .mud-donut-segment{fill:rgba(0,0,0,0);pointer-events:stroke;-webkit-transition:stroke .2s ease;-moz-transition:stroke .2s ease;-o-transition:stroke .2s ease;transition:stroke .2s ease}.mud-chart-legend-marker{height:12px;width:12px;border-radius:50%;position:relative;display:inline-block}.mud-chart-marker-color-0{background-color:#008ffb}.mud-chart-marker-color-1{background-color:#00e396}.mud-chart-marker-color-2{background-color:#feb019}.mud-chart-marker-color-3{background-color:#ff4560}.mud-chart-marker-color-4{background-color:#594ae2}.mud-chart-cell text{fill:#000}.mud-chart-heatmap-legend line{stroke:var(--mud-palette-text-primary)}.mud-chart-heatmap-legend text{fill:var(--mud-palette-text-primary)}.mud-chat{display:grid;column-gap:.75rem;padding-top:.25rem;padding-bottom:.25rem;border-radius:var(--mud-default-borderradius)}.mud-chat.mud-dense .mud-chat-bubble{padding:.1875rem 1rem;min-height:.9166666667rem}.mud-chat.mud-dense .mud-chat-bubble+.mud-chat-bubble{margin-top:.1875rem}.mud-chat.mud-dense .mud-chat-header{line-height:.4166666667rem}.mud-chat.mud-square{border-radius:0px}.mud-chat.mud-square .mud-chat-bubble{border-radius:0px}.mud-chat.mud-chat-arrow-top .mud-chat-bubble:before{content:"";mask-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0nMycgaGVpZ2h0PSczJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnPjxwYXRoIGZpbGw9J2JsYWNrJyBkPSdtIDAgMCBMIDMgMCBMIDMgMyBDIDMgMiAxIDAgMCAwJy8+PC9zdmc+);bottom:auto;top:0}.mud-chat.mud-chat-arrow-top.mud-chat-start .mud-chat-bubble:before,.mud-chat.mud-chat-arrow-top.mud-chat-end.mud-chat-rtl .mud-chat-bubble:before{transform:none}.mud-chat.mud-chat-arrow-top.mud-chat-end .mud-chat-bubble:before,.mud-chat.mud-chat-arrow-top.mud-chat-start.mud-chat-rtl .mud-chat-bubble:before{transform:scaleX(-1)}.mud-chat.mud-chat-arrow-top.mud-chat-start .mud-chat-bubble,.mud-chat.mud-chat-arrow-top.mud-chat-end.mud-chat-rtl .mud-chat-bubble{border-top-left-radius:0}.mud-chat.mud-chat-arrow-top.mud-chat-end .mud-chat-bubble,.mud-chat.mud-chat-arrow-top.mud-chat-start.mud-chat-rtl .mud-chat-bubble{border-top-right-radius:0}.mud-chat.mud-chat-arrow-bottom .mud-chat-bubble:before{content:"";mask-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0nMycgaGVpZ2h0PSczJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnPjxwYXRoIGZpbGw9J2JsYWNrJyBkPSdtIDAgMyBMIDMgMyBMIDMgMCBDIDMgMSAxIDMgMCAzJy8+PC9zdmc+);bottom:0}.mud-chat.mud-chat-arrow-bottom.mud-chat-start .mud-chat-bubble:before,.mud-chat.mud-chat-arrow-bottom.mud-chat-end.mud-chat-rtl .mud-chat-bubble:before{transform:none}.mud-chat.mud-chat-arrow-bottom.mud-chat-end .mud-chat-bubble:before,.mud-chat.mud-chat-arrow-bottom.mud-chat-start.mud-chat-rtl .mud-chat-bubble:before{transform:scaleX(-1)}.mud-chat.mud-chat-arrow-bottom.mud-chat-start .mud-chat-bubble,.mud-chat.mud-chat-arrow-bottom.mud-chat-end.mud-chat-rtl .mud-chat-bubble{border-bottom-left-radius:0}.mud-chat.mud-chat-arrow-bottom.mud-chat-end .mud-chat-bubble,.mud-chat.mud-chat-arrow-bottom.mud-chat-start.mud-chat-rtl .mud-chat-bubble{border-bottom-right-radius:0}.mud-chat.mud-chat-arrow-middle .mud-chat-bubble:before{content:"";mask-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzIDMiIHdpZHRoPSIzMDAiIGhlaWdodD0iMzAwIj4KICA8cG9seWdvbiBwb2ludHM9IjMsMCAzLDMgMS41LDEuNSIgZmlsbD0iYmxhY2siIC8+Cjwvc3ZnPg==);top:50%}.mud-chat.mud-chat-arrow-middle.mud-chat-start .mud-chat-bubble:before,.mud-chat.mud-chat-arrow-middle.mud-chat-end.mud-chat-rtl .mud-chat-bubble:before{transform:translateY(-50%)}.mud-chat.mud-chat-arrow-middle.mud-chat-end .mud-chat-bubble:before,.mud-chat.mud-chat-arrow-middle.mud-chat-start.mud-chat-rtl .mud-chat-bubble:before{transform:scaleX(-1) translateY(-50%)}.mud-chat-bubble{position:relative;text-align:start;align-content:center;width:fit-content;padding:.5rem 1rem;max-width:90%;border-radius:var(--mud-default-borderradius);min-width:2.75rem;min-height:2.75rem}.mud-chat-bubble.mud-chat-bubble-clickable{cursor:pointer;user-select:none;-webkit-appearance:none;-webkit-tap-highlight-color:rgba(0,0,0,0);transition:background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;--mud-ripple-color: $default-foreground;--mud-ripple-opacity: var(--mud-ripple-opacity-secondary) !important}@media(hover: hover)and (pointer: fine){.mud-chat-bubble.mud-chat-bubble-clickable:hover{box-shadow:0px 2px 4px -1px rgba(0,0,0,.2),0px 4px 5px 0px rgba(0,0,0,.14),0px 1px 10px 0px rgba(0,0,0,.12);background-color:var(--mud-palette-action-disabled-background)}}.mud-chat-bubble.mud-chat-bubble-clickable:focus-visible{box-shadow:0px 2px 4px -1px rgba(0,0,0,.2),0px 4px 5px 0px rgba(0,0,0,.14),0px 1px 10px 0px rgba(0,0,0,.12);background-color:var(--mud-palette-action-disabled-background)}.mud-chat-bubble.mud-chat-bubble-clickable:active{box-shadow:0px 5px 5px -3px rgba(0,0,0,.2),0px 8px 10px 1px rgba(0,0,0,.14),0px 3px 14px 2px rgba(0,0,0,.12);background-color:var(--mud-palette-action-disabled-background)}.mud-chat-bubble:before{position:absolute;width:.75rem;height:.75rem;background-color:inherit;mask-size:contain;mask-repeat:no-repeat;mask-position:center}.mud-chat-bubble+.mud-chat-bubble{margin-top:.5rem}.mud-chat-bubble+.mud-chat-bubble:before{content:none !important}.mud-chat-header{grid-row-start:1;font-size:.875rem;line-height:1.25rem;margin-left:.25rem;margin-right:.25rem;min-height:.5rem}.mud-chat-header time{margin-left:.5rem;opacity:.5;font-size:.75rem;line-height:1rem}.mud-chat-footer{opacity:.5;font-size:.875rem;line-height:1rem;margin-left:.25rem;margin-right:.25rem;min-height:.5rem}.mud-chat .mud-avatar{align-self:center;grid-row-start:1}.mud-chat:has(.mud-chat-header) .mud-avatar{grid-row-start:2}.mud-chat-start{place-items:start;grid-template-columns:1fr 99fr}.mud-chat-start .mud-chat-header,.mud-chat-start .mud-chat-footer{grid-column-start:2}.mud-chat-start .mud-avatar{grid-column-start:1;margin-left:.25rem;margin-right:-0.35rem}.mud-chat-start .mud-chat-bubble{grid-column-start:2}.mud-chat-start .mud-chat-bubble:before{inset-inline-start:-0.749rem}.mud-chat-end{place-items:end;grid-template-columns:99fr 1fr}.mud-chat-end .mud-chat-header,.mud-chat-end .mud-chat-footer{grid-column-start:1}.mud-chat-end .mud-avatar{grid-column-start:2;margin-right:.25rem;margin-left:-0.35rem}.mud-chat-end .mud-chat-bubble{grid-column-start:1;text-align:end}.mud-chat-end .mud-chat-bubble:before{inset-inline-start:100%;transform:scaleX(-1)}.mud-chat-text-default{color:var(--mud-palette-text-primary);background-color:var(--mud-palette-action-default-hover);--mud-ripple-color: $default-foreground}.mud-chat-text-primary{color:var(--mud-palette-primary-darken);background-color:var(--mud-palette-primary-hover);--mud-ripple-color: var(--mud-palette-primary-darken)}.mud-chat-text-secondary{color:var(--mud-palette-secondary-darken);background-color:var(--mud-palette-secondary-hover);--mud-ripple-color: var(--mud-palette-secondary-darken)}.mud-chat-text-tertiary{color:var(--mud-palette-tertiary-darken);background-color:var(--mud-palette-tertiary-hover);--mud-ripple-color: var(--mud-palette-tertiary-darken)}.mud-chat-text-info{color:var(--mud-palette-info-darken);background-color:var(--mud-palette-info-hover);--mud-ripple-color: var(--mud-palette-info-darken)}.mud-chat-text-success{color:var(--mud-palette-success-darken);background-color:var(--mud-palette-success-hover);--mud-ripple-color: var(--mud-palette-success-darken)}.mud-chat-text-warning{color:var(--mud-palette-warning-darken);background-color:var(--mud-palette-warning-hover);--mud-ripple-color: var(--mud-palette-warning-darken)}.mud-chat-text-error{color:var(--mud-palette-error-darken);background-color:var(--mud-palette-error-hover);--mud-ripple-color: var(--mud-palette-error-darken)}.mud-chat-text-dark{color:var(--mud-palette-dark-darken);background-color:var(--mud-palette-dark-hover);--mud-ripple-color: var(--mud-palette-dark-darken)}.mud-chat-outlined-default{color:var(--mud-palette-text-primary);border:1px solid var(--mud-palette-action-default-hover);--mud-ripple-color: $default-foreground}.mud-chat-outlined-default:before{background-color:var(--mud-palette-action-default-hover)}.mud-chat-outlined-default.mud-chat-arrow-top:before{top:-0.05rem !important}.mud-chat-outlined-default.mud-chat-arrow-bottom:before{bottom:-0.07rem !important}.mud-chat-outlined-primary{color:var(--mud-palette-primary-darken);border:1px solid var(--mud-palette-primary);--mud-ripple-color: var(--mud-palette-primary-darken)}.mud-chat-outlined-primary:before{background-color:var(--mud-palette-primary-darken)}.mud-chat-outlined-primary.mud-chat-arrow-top:before{top:-0.05rem !important}.mud-chat-outlined-primary.mud-chat-arrow-bottom:before{bottom:-0.02rem !important}.mud-chat-outlined-secondary{color:var(--mud-palette-secondary-darken);border:1px solid var(--mud-palette-secondary);--mud-ripple-color: var(--mud-palette-secondary-darken)}.mud-chat-outlined-secondary:before{background-color:var(--mud-palette-secondary-darken)}.mud-chat-outlined-secondary.mud-chat-arrow-top:before{top:-0.05rem !important}.mud-chat-outlined-secondary.mud-chat-arrow-bottom:before{bottom:-0.02rem !important}.mud-chat-outlined-tertiary{color:var(--mud-palette-tertiary-darken);border:1px solid var(--mud-palette-tertiary);--mud-ripple-color: var(--mud-palette-tertiary-darken)}.mud-chat-outlined-tertiary:before{background-color:var(--mud-palette-tertiary-darken)}.mud-chat-outlined-tertiary.mud-chat-arrow-top:before{top:-0.05rem !important}.mud-chat-outlined-tertiary.mud-chat-arrow-bottom:before{bottom:-0.02rem !important}.mud-chat-outlined-info{color:var(--mud-palette-info-darken);border:1px solid var(--mud-palette-info);--mud-ripple-color: var(--mud-palette-info-darken)}.mud-chat-outlined-info:before{background-color:var(--mud-palette-info-darken)}.mud-chat-outlined-info.mud-chat-arrow-top:before{top:-0.05rem !important}.mud-chat-outlined-info.mud-chat-arrow-bottom:before{bottom:-0.02rem !important}.mud-chat-outlined-success{color:var(--mud-palette-success-darken);border:1px solid var(--mud-palette-success);--mud-ripple-color: var(--mud-palette-success-darken)}.mud-chat-outlined-success:before{background-color:var(--mud-palette-success-darken)}.mud-chat-outlined-success.mud-chat-arrow-top:before{top:-0.05rem !important}.mud-chat-outlined-success.mud-chat-arrow-bottom:before{bottom:-0.02rem !important}.mud-chat-outlined-warning{color:var(--mud-palette-warning-darken);border:1px solid var(--mud-palette-warning);--mud-ripple-color: var(--mud-palette-warning-darken)}.mud-chat-outlined-warning:before{background-color:var(--mud-palette-warning-darken)}.mud-chat-outlined-warning.mud-chat-arrow-top:before{top:-0.05rem !important}.mud-chat-outlined-warning.mud-chat-arrow-bottom:before{bottom:-0.02rem !important}.mud-chat-outlined-error{color:var(--mud-palette-error-darken);border:1px solid var(--mud-palette-error);--mud-ripple-color: var(--mud-palette-error-darken)}.mud-chat-outlined-error:before{background-color:var(--mud-palette-error-darken)}.mud-chat-outlined-error.mud-chat-arrow-top:before{top:-0.05rem !important}.mud-chat-outlined-error.mud-chat-arrow-bottom:before{bottom:-0.02rem !important}.mud-chat-outlined-dark{color:var(--mud-palette-dark-darken);border:1px solid var(--mud-palette-dark);--mud-ripple-color: var(--mud-palette-dark-darken)}.mud-chat-outlined-dark:before{background-color:var(--mud-palette-dark-darken)}.mud-chat-outlined-dark.mud-chat-arrow-top:before{top:-0.05rem !important}.mud-chat-outlined-dark.mud-chat-arrow-bottom:before{bottom:-0.02rem !important}.mud-chat-filled-default{color:var(--mud-palette-text-primary);font-weight:500;background-color:var(--mud-palette-action-default-hover);--mud-ripple-color: $default-foreground}.mud-chat-filled-primary{color:var(--mud-palette-primary-text);font-weight:500;background-color:var(--mud-palette-primary);--mud-ripple-color: var(--mud-palette-primary-text)}.mud-chat-filled-secondary{color:var(--mud-palette-secondary-text);font-weight:500;background-color:var(--mud-palette-secondary);--mud-ripple-color: var(--mud-palette-secondary-text)}.mud-chat-filled-tertiary{color:var(--mud-palette-tertiary-text);font-weight:500;background-color:var(--mud-palette-tertiary);--mud-ripple-color: var(--mud-palette-tertiary-text)}.mud-chat-filled-info{color:var(--mud-palette-info-text);font-weight:500;background-color:var(--mud-palette-info);--mud-ripple-color: var(--mud-palette-info-text)}.mud-chat-filled-success{color:var(--mud-palette-success-text);font-weight:500;background-color:var(--mud-palette-success);--mud-ripple-color: var(--mud-palette-success-text)}.mud-chat-filled-warning{color:var(--mud-palette-warning-text);font-weight:500;background-color:var(--mud-palette-warning);--mud-ripple-color: var(--mud-palette-warning-text)}.mud-chat-filled-error{color:var(--mud-palette-error-text);font-weight:500;background-color:var(--mud-palette-error);--mud-ripple-color: var(--mud-palette-error-text)}.mud-chat-filled-dark{color:var(--mud-palette-dark-text);font-weight:500;background-color:var(--mud-palette-dark);--mud-ripple-color: var(--mud-palette-dark-text)}.mud-checkbox{cursor:pointer;display:inline-flex;align-items:center;vertical-align:middle;-webkit-tap-highlight-color:rgba(0,0,0,0)}@media(hover: hover)and (pointer: fine){.mud-checkbox .mud-disabled:hover{cursor:default;background-color:rgba(0,0,0,0) !important}.mud-checkbox .mud-disabled:hover *{cursor:default;color:var(--mud-palette-text-disabled)}}.mud-checkbox.mud-disabled,.mud-checkbox .mud-disabled:focus-visible,.mud-checkbox .mud-disabled:active{cursor:default;background-color:rgba(0,0,0,0) !important}.mud-checkbox.mud-disabled *,.mud-checkbox .mud-disabled:focus-visible *,.mud-checkbox .mud-disabled:active *{cursor:default;color:var(--mud-palette-text-disabled)}.mud-checkbox.mud-readonly,.mud-checkbox .mud-readonly:hover{cursor:default;background-color:rgba(0,0,0,0) !important}.mud-checkbox .mud-checkbox-dense{padding:4px}.mud-checkbox-input{top:0;left:0;width:100%;cursor:inherit;height:100%;margin:0;opacity:0;padding:0;z-index:1;position:absolute}.mud-checkbox-span{display:inline-block;width:100%;cursor:pointer}.mud-chart-legend-checkbox .mud-checkbox svg path:last-child{fill:var(--checkbox-color) !important}.mud-chip-container{display:contents}.mud-chip{border:none;display:inline-flex;max-width:100%;outline:0;padding:0 12px;position:relative;box-sizing:border-box;transition:background-color 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;align-items:center;white-space:nowrap;vertical-align:middle;justify-content:center;text-decoration:none;line-height:normal;margin:4px}.mud-chip.mud-disabled{opacity:.5;pointer-events:none}.mud-chip.mud-chip-size-small{border-radius:12px;font-size:12px;height:24px;padding:0 8px}.mud-chip.mud-chip-size-small .mud-avatar{margin-left:-4px;margin-right:4px;margin-inline-start:-4px;margin-inline-end:4px;width:18px;height:18px;font-size:.625rem}.mud-chip.mud-chip-size-small .mud-icon-root{font-size:1.125rem}.mud-chip.mud-chip-size-small .mud-chip-close-button{margin-right:-4px;margin-left:4px;margin-inline-end:-4px;margin-inline-start:4px}.mud-chip.mud-chip-size-medium{height:32px;font-size:14px;border-radius:16px}.mud-chip.mud-chip-size-medium .mud-avatar{margin-left:-8px;margin-right:8px;margin-inline-start:-8px;margin-inline-end:8px;width:24px;height:24px;font-size:.75rem}.mud-chip.mud-chip-size-large{height:40px;font-size:16px;border-radius:20px;padding:0 16px}.mud-chip.mud-chip-size-large .mud-avatar{margin-left:-12px;margin-right:8px;margin-inline-start:-12px;margin-inline-end:8px;width:32px;height:32px;font-size:1rem}.mud-chip.mud-chip-size-large .mud-chip-icon{font-size:1.5rem;margin-left:-6px;margin-right:6px;margin-inline-start:-6px;margin-inline-end:6px}.mud-chip.mud-chip-label{border-radius:var(--mud-default-borderradius)}.mud-chip.mud-clickable{cursor:pointer;user-select:none}.mud-chip .mud-chip-icon{margin-left:-4px;margin-right:4px;margin-inline-start:-4px;margin-inline-end:4px;color:inherit}.mud-chip .mud-chip-close-button{padding:1px;margin-right:-4px;margin-left:6px;margin-inline-end:-4px;margin-inline-start:6px;height:18px;width:18px;color:inherit;transition:.3s cubic-bezier(0.25, 0.8, 0.5, 1),visibility 0s}.mud-chip .mud-chip-close-button .mud-icon-size-small{font-size:1.15rem}@media(hover: hover)and (pointer: fine){.mud-chip .mud-chip-close-button:hover:not(.mud-disabled){opacity:.7}}.mud-chip .mud-chip-close-button:focus-visible:not(.mud-disabled),.mud-chip .mud-chip-close-button:active:not(.mud-disabled){opacity:.7}.mud-chip>.mud-chip-content{align-items:center;display:inline-flex;height:100%;max-width:100%}.mud-chip-filled{color:var(--mud-palette-text-primary);background-color:var(--mud-palette-action-disabled-background);--mud-ripple-opacity: var(--mud-ripple-opacity-secondary)}@media(hover: hover)and (pointer: fine){.mud-chip-filled.mud-clickable:hover:not(.mud-disabled){background-color:var(--mud-palette-action-disabled)}}.mud-chip-filled.mud-clickable:focus-visible:not(.mud-disabled),.mud-chip-filled.mud-clickable:active:not(.mud-disabled){background-color:var(--mud-palette-action-disabled)}.mud-chip-filled.mud-chip-color-primary{color:var(--mud-palette-primary-text);--mud-ripple-color: var(--mud-palette-primary-text) !important;background-color:var(--mud-palette-primary)}@media(hover: hover)and (pointer: fine){.mud-chip-filled.mud-chip-color-primary.mud-clickable:hover:not(.mud-disabled){background-color:var(--mud-palette-primary-darken)}}.mud-chip-filled.mud-chip-color-primary.mud-clickable:focus-visible:not(.mud-disabled),.mud-chip-filled.mud-chip-color-primary.mud-clickable:active:not(.mud-disabled){background-color:var(--mud-palette-primary-darken)}.mud-chip-filled.mud-chip-color-secondary{color:var(--mud-palette-secondary-text);--mud-ripple-color: var(--mud-palette-secondary-text) !important;background-color:var(--mud-palette-secondary)}@media(hover: hover)and (pointer: fine){.mud-chip-filled.mud-chip-color-secondary.mud-clickable:hover:not(.mud-disabled){background-color:var(--mud-palette-secondary-darken)}}.mud-chip-filled.mud-chip-color-secondary.mud-clickable:focus-visible:not(.mud-disabled),.mud-chip-filled.mud-chip-color-secondary.mud-clickable:active:not(.mud-disabled){background-color:var(--mud-palette-secondary-darken)}.mud-chip-filled.mud-chip-color-tertiary{color:var(--mud-palette-tertiary-text);--mud-ripple-color: var(--mud-palette-tertiary-text) !important;background-color:var(--mud-palette-tertiary)}@media(hover: hover)and (pointer: fine){.mud-chip-filled.mud-chip-color-tertiary.mud-clickable:hover:not(.mud-disabled){background-color:var(--mud-palette-tertiary-darken)}}.mud-chip-filled.mud-chip-color-tertiary.mud-clickable:focus-visible:not(.mud-disabled),.mud-chip-filled.mud-chip-color-tertiary.mud-clickable:active:not(.mud-disabled){background-color:var(--mud-palette-tertiary-darken)}.mud-chip-filled.mud-chip-color-info{color:var(--mud-palette-info-text);--mud-ripple-color: var(--mud-palette-info-text) !important;background-color:var(--mud-palette-info)}@media(hover: hover)and (pointer: fine){.mud-chip-filled.mud-chip-color-info.mud-clickable:hover:not(.mud-disabled){background-color:var(--mud-palette-info-darken)}}.mud-chip-filled.mud-chip-color-info.mud-clickable:focus-visible:not(.mud-disabled),.mud-chip-filled.mud-chip-color-info.mud-clickable:active:not(.mud-disabled){background-color:var(--mud-palette-info-darken)}.mud-chip-filled.mud-chip-color-success{color:var(--mud-palette-success-text);--mud-ripple-color: var(--mud-palette-success-text) !important;background-color:var(--mud-palette-success)}@media(hover: hover)and (pointer: fine){.mud-chip-filled.mud-chip-color-success.mud-clickable:hover:not(.mud-disabled){background-color:var(--mud-palette-success-darken)}}.mud-chip-filled.mud-chip-color-success.mud-clickable:focus-visible:not(.mud-disabled),.mud-chip-filled.mud-chip-color-success.mud-clickable:active:not(.mud-disabled){background-color:var(--mud-palette-success-darken)}.mud-chip-filled.mud-chip-color-warning{color:var(--mud-palette-warning-text);--mud-ripple-color: var(--mud-palette-warning-text) !important;background-color:var(--mud-palette-warning)}@media(hover: hover)and (pointer: fine){.mud-chip-filled.mud-chip-color-warning.mud-clickable:hover:not(.mud-disabled){background-color:var(--mud-palette-warning-darken)}}.mud-chip-filled.mud-chip-color-warning.mud-clickable:focus-visible:not(.mud-disabled),.mud-chip-filled.mud-chip-color-warning.mud-clickable:active:not(.mud-disabled){background-color:var(--mud-palette-warning-darken)}.mud-chip-filled.mud-chip-color-error{color:var(--mud-palette-error-text);--mud-ripple-color: var(--mud-palette-error-text) !important;background-color:var(--mud-palette-error)}@media(hover: hover)and (pointer: fine){.mud-chip-filled.mud-chip-color-error.mud-clickable:hover:not(.mud-disabled){background-color:var(--mud-palette-error-darken)}}.mud-chip-filled.mud-chip-color-error.mud-clickable:focus-visible:not(.mud-disabled),.mud-chip-filled.mud-chip-color-error.mud-clickable:active:not(.mud-disabled){background-color:var(--mud-palette-error-darken)}.mud-chip-filled.mud-chip-color-dark{color:var(--mud-palette-dark-text);--mud-ripple-color: var(--mud-palette-dark-text) !important;background-color:var(--mud-palette-dark)}@media(hover: hover)and (pointer: fine){.mud-chip-filled.mud-chip-color-dark.mud-clickable:hover:not(.mud-disabled){background-color:var(--mud-palette-dark-darken)}}.mud-chip-filled.mud-chip-color-dark.mud-clickable:focus-visible:not(.mud-disabled),.mud-chip-filled.mud-chip-color-dark.mud-clickable:active:not(.mud-disabled){background-color:var(--mud-palette-dark-darken)}.mud-chip-outlined{color:var(--mud-palette-text-primary);border:1px solid var(--mud-palette-lines-inputs)}@media(hover: hover)and (pointer: fine){.mud-chip-outlined.mud-clickable:hover:not(.mud-disabled){background-color:var(--mud-palette-action-default-hover)}}.mud-chip-outlined.mud-clickable:focus-visible:not(.mud-disabled),.mud-chip-outlined.mud-clickable:active:not(.mud-disabled){background-color:var(--mud-palette-action-default-hover)}.mud-chip-outlined.mud-chip-color-primary{color:var(--mud-palette-primary);--mud-ripple-color: var(--mud-palette-primary) !important;border:1px solid rgb(from var(--mud-palette-primary) r g b/var(--mud-palette-border-opacity))}@media(hover: hover)and (pointer: fine){.mud-chip-outlined.mud-chip-color-primary.mud-clickable:hover:not(.mud-disabled){background-color:var(--mud-palette-primary-hover)}}.mud-chip-outlined.mud-chip-color-primary.mud-clickable:focus-visible:not(.mud-disabled),.mud-chip-outlined.mud-chip-color-primary.mud-clickable:active:not(.mud-disabled){background-color:var(--mud-palette-primary-hover)}.mud-chip-outlined.mud-chip-color-primary.mud-chip-selected{background-color:var(--mud-palette-primary-hover)}@media(hover: hover)and (pointer: fine){.mud-chip-outlined.mud-chip-color-primary.mud-chip-selected:hover:not(.mud-disabled){background-color:rgba(var(--mud-palette-primary-rgb), 0.12)}}.mud-chip-outlined.mud-chip-color-primary.mud-chip-selected:focus-visible:not(.mud-disabled),.mud-chip-outlined.mud-chip-color-primary.mud-chip-selected:active:not(.mud-disabled){background-color:rgba(var(--mud-palette-primary-rgb), 0.12)}.mud-chip-outlined.mud-chip-color-secondary{color:var(--mud-palette-secondary);--mud-ripple-color: var(--mud-palette-secondary) !important;border:1px solid rgb(from var(--mud-palette-secondary) r g b/var(--mud-palette-border-opacity))}@media(hover: hover)and (pointer: fine){.mud-chip-outlined.mud-chip-color-secondary.mud-clickable:hover:not(.mud-disabled){background-color:var(--mud-palette-secondary-hover)}}.mud-chip-outlined.mud-chip-color-secondary.mud-clickable:focus-visible:not(.mud-disabled),.mud-chip-outlined.mud-chip-color-secondary.mud-clickable:active:not(.mud-disabled){background-color:var(--mud-palette-secondary-hover)}.mud-chip-outlined.mud-chip-color-secondary.mud-chip-selected{background-color:var(--mud-palette-secondary-hover)}@media(hover: hover)and (pointer: fine){.mud-chip-outlined.mud-chip-color-secondary.mud-chip-selected:hover:not(.mud-disabled){background-color:rgba(var(--mud-palette-secondary-rgb), 0.12)}}.mud-chip-outlined.mud-chip-color-secondary.mud-chip-selected:focus-visible:not(.mud-disabled),.mud-chip-outlined.mud-chip-color-secondary.mud-chip-selected:active:not(.mud-disabled){background-color:rgba(var(--mud-palette-secondary-rgb), 0.12)}.mud-chip-outlined.mud-chip-color-tertiary{color:var(--mud-palette-tertiary);--mud-ripple-color: var(--mud-palette-tertiary) !important;border:1px solid rgb(from var(--mud-palette-tertiary) r g b/var(--mud-palette-border-opacity))}@media(hover: hover)and (pointer: fine){.mud-chip-outlined.mud-chip-color-tertiary.mud-clickable:hover:not(.mud-disabled){background-color:var(--mud-palette-tertiary-hover)}}.mud-chip-outlined.mud-chip-color-tertiary.mud-clickable:focus-visible:not(.mud-disabled),.mud-chip-outlined.mud-chip-color-tertiary.mud-clickable:active:not(.mud-disabled){background-color:var(--mud-palette-tertiary-hover)}.mud-chip-outlined.mud-chip-color-tertiary.mud-chip-selected{background-color:var(--mud-palette-tertiary-hover)}@media(hover: hover)and (pointer: fine){.mud-chip-outlined.mud-chip-color-tertiary.mud-chip-selected:hover:not(.mud-disabled){background-color:rgba(var(--mud-palette-tertiary-rgb), 0.12)}}.mud-chip-outlined.mud-chip-color-tertiary.mud-chip-selected:focus-visible:not(.mud-disabled),.mud-chip-outlined.mud-chip-color-tertiary.mud-chip-selected:active:not(.mud-disabled){background-color:rgba(var(--mud-palette-tertiary-rgb), 0.12)}.mud-chip-outlined.mud-chip-color-info{color:var(--mud-palette-info);--mud-ripple-color: var(--mud-palette-info) !important;border:1px solid rgb(from var(--mud-palette-info) r g b/var(--mud-palette-border-opacity))}@media(hover: hover)and (pointer: fine){.mud-chip-outlined.mud-chip-color-info.mud-clickable:hover:not(.mud-disabled){background-color:var(--mud-palette-info-hover)}}.mud-chip-outlined.mud-chip-color-info.mud-clickable:focus-visible:not(.mud-disabled),.mud-chip-outlined.mud-chip-color-info.mud-clickable:active:not(.mud-disabled){background-color:var(--mud-palette-info-hover)}.mud-chip-outlined.mud-chip-color-info.mud-chip-selected{background-color:var(--mud-palette-info-hover)}@media(hover: hover)and (pointer: fine){.mud-chip-outlined.mud-chip-color-info.mud-chip-selected:hover:not(.mud-disabled){background-color:rgba(var(--mud-palette-info-rgb), 0.12)}}.mud-chip-outlined.mud-chip-color-info.mud-chip-selected:focus-visible:not(.mud-disabled),.mud-chip-outlined.mud-chip-color-info.mud-chip-selected:active:not(.mud-disabled){background-color:rgba(var(--mud-palette-info-rgb), 0.12)}.mud-chip-outlined.mud-chip-color-success{color:var(--mud-palette-success);--mud-ripple-color: var(--mud-palette-success) !important;border:1px solid rgb(from var(--mud-palette-success) r g b/var(--mud-palette-border-opacity))}@media(hover: hover)and (pointer: fine){.mud-chip-outlined.mud-chip-color-success.mud-clickable:hover:not(.mud-disabled){background-color:var(--mud-palette-success-hover)}}.mud-chip-outlined.mud-chip-color-success.mud-clickable:focus-visible:not(.mud-disabled),.mud-chip-outlined.mud-chip-color-success.mud-clickable:active:not(.mud-disabled){background-color:var(--mud-palette-success-hover)}.mud-chip-outlined.mud-chip-color-success.mud-chip-selected{background-color:var(--mud-palette-success-hover)}@media(hover: hover)and (pointer: fine){.mud-chip-outlined.mud-chip-color-success.mud-chip-selected:hover:not(.mud-disabled){background-color:rgba(var(--mud-palette-success-rgb), 0.12)}}.mud-chip-outlined.mud-chip-color-success.mud-chip-selected:focus-visible:not(.mud-disabled),.mud-chip-outlined.mud-chip-color-success.mud-chip-selected:active:not(.mud-disabled){background-color:rgba(var(--mud-palette-success-rgb), 0.12)}.mud-chip-outlined.mud-chip-color-warning{color:var(--mud-palette-warning);--mud-ripple-color: var(--mud-palette-warning) !important;border:1px solid rgb(from var(--mud-palette-warning) r g b/var(--mud-palette-border-opacity))}@media(hover: hover)and (pointer: fine){.mud-chip-outlined.mud-chip-color-warning.mud-clickable:hover:not(.mud-disabled){background-color:var(--mud-palette-warning-hover)}}.mud-chip-outlined.mud-chip-color-warning.mud-clickable:focus-visible:not(.mud-disabled),.mud-chip-outlined.mud-chip-color-warning.mud-clickable:active:not(.mud-disabled){background-color:var(--mud-palette-warning-hover)}.mud-chip-outlined.mud-chip-color-warning.mud-chip-selected{background-color:var(--mud-palette-warning-hover)}@media(hover: hover)and (pointer: fine){.mud-chip-outlined.mud-chip-color-warning.mud-chip-selected:hover:not(.mud-disabled){background-color:rgba(var(--mud-palette-warning-rgb), 0.12)}}.mud-chip-outlined.mud-chip-color-warning.mud-chip-selected:focus-visible:not(.mud-disabled),.mud-chip-outlined.mud-chip-color-warning.mud-chip-selected:active:not(.mud-disabled){background-color:rgba(var(--mud-palette-warning-rgb), 0.12)}.mud-chip-outlined.mud-chip-color-error{color:var(--mud-palette-error);--mud-ripple-color: var(--mud-palette-error) !important;border:1px solid rgb(from var(--mud-palette-error) r g b/var(--mud-palette-border-opacity))}@media(hover: hover)and (pointer: fine){.mud-chip-outlined.mud-chip-color-error.mud-clickable:hover:not(.mud-disabled){background-color:var(--mud-palette-error-hover)}}.mud-chip-outlined.mud-chip-color-error.mud-clickable:focus-visible:not(.mud-disabled),.mud-chip-outlined.mud-chip-color-error.mud-clickable:active:not(.mud-disabled){background-color:var(--mud-palette-error-hover)}.mud-chip-outlined.mud-chip-color-error.mud-chip-selected{background-color:var(--mud-palette-error-hover)}@media(hover: hover)and (pointer: fine){.mud-chip-outlined.mud-chip-color-error.mud-chip-selected:hover:not(.mud-disabled){background-color:rgba(var(--mud-palette-error-rgb), 0.12)}}.mud-chip-outlined.mud-chip-color-error.mud-chip-selected:focus-visible:not(.mud-disabled),.mud-chip-outlined.mud-chip-color-error.mud-chip-selected:active:not(.mud-disabled){background-color:rgba(var(--mud-palette-error-rgb), 0.12)}.mud-chip-outlined.mud-chip-color-dark{color:var(--mud-palette-dark);--mud-ripple-color: var(--mud-palette-dark) !important;border:1px solid rgb(from var(--mud-palette-dark) r g b/var(--mud-palette-border-opacity))}@media(hover: hover)and (pointer: fine){.mud-chip-outlined.mud-chip-color-dark.mud-clickable:hover:not(.mud-disabled){background-color:var(--mud-palette-dark-hover)}}.mud-chip-outlined.mud-chip-color-dark.mud-clickable:focus-visible:not(.mud-disabled),.mud-chip-outlined.mud-chip-color-dark.mud-clickable:active:not(.mud-disabled){background-color:var(--mud-palette-dark-hover)}.mud-chip-outlined.mud-chip-color-dark.mud-chip-selected{background-color:var(--mud-palette-dark-hover)}@media(hover: hover)and (pointer: fine){.mud-chip-outlined.mud-chip-color-dark.mud-chip-selected:hover:not(.mud-disabled){background-color:rgba(var(--mud-palette-dark-rgb), 0.12)}}.mud-chip-outlined.mud-chip-color-dark.mud-chip-selected:focus-visible:not(.mud-disabled),.mud-chip-outlined.mud-chip-color-dark.mud-chip-selected:active:not(.mud-disabled){background-color:rgba(var(--mud-palette-dark-rgb), 0.12)}.mud-chip-text{color:var(--mud-palette-text-primary);background-color:var(--mud-palette-action-default-hover)}@media(hover: hover)and (pointer: fine){.mud-chip-text.mud-clickable:hover:not(.mud-disabled){background-color:var(--mud-palette-action-disabled-background)}}.mud-chip-text.mud-clickable:focus-visible:not(.mud-disabled),.mud-chip-text.mud-clickable:active:not(.mud-disabled){background-color:var(--mud-palette-action-disabled-background)}.mud-chip-text.mud-chip-color-primary{color:var(--mud-palette-primary);--mud-ripple-color: var(--mud-palette-primary) !important;background-color:var(--mud-palette-primary-hover)}@media(hover: hover)and (pointer: fine){.mud-chip-text.mud-chip-color-primary.mud-clickable:hover:not(.mud-disabled){background-color:rgba(var(--mud-palette-primary-rgb), 0.12)}}.mud-chip-text.mud-chip-color-primary.mud-clickable:focus-visible:not(.mud-disabled),.mud-chip-text.mud-chip-color-primary.mud-clickable:active:not(.mud-disabled){background-color:rgba(var(--mud-palette-primary-rgb), 0.12)}.mud-chip-text.mud-chip-color-secondary{color:var(--mud-palette-secondary);--mud-ripple-color: var(--mud-palette-secondary) !important;background-color:var(--mud-palette-secondary-hover)}@media(hover: hover)and (pointer: fine){.mud-chip-text.mud-chip-color-secondary.mud-clickable:hover:not(.mud-disabled){background-color:rgba(var(--mud-palette-secondary-rgb), 0.12)}}.mud-chip-text.mud-chip-color-secondary.mud-clickable:focus-visible:not(.mud-disabled),.mud-chip-text.mud-chip-color-secondary.mud-clickable:active:not(.mud-disabled){background-color:rgba(var(--mud-palette-secondary-rgb), 0.12)}.mud-chip-text.mud-chip-color-tertiary{color:var(--mud-palette-tertiary);--mud-ripple-color: var(--mud-palette-tertiary) !important;background-color:var(--mud-palette-tertiary-hover)}@media(hover: hover)and (pointer: fine){.mud-chip-text.mud-chip-color-tertiary.mud-clickable:hover:not(.mud-disabled){background-color:rgba(var(--mud-palette-tertiary-rgb), 0.12)}}.mud-chip-text.mud-chip-color-tertiary.mud-clickable:focus-visible:not(.mud-disabled),.mud-chip-text.mud-chip-color-tertiary.mud-clickable:active:not(.mud-disabled){background-color:rgba(var(--mud-palette-tertiary-rgb), 0.12)}.mud-chip-text.mud-chip-color-info{color:var(--mud-palette-info);--mud-ripple-color: var(--mud-palette-info) !important;background-color:var(--mud-palette-info-hover)}@media(hover: hover)and (pointer: fine){.mud-chip-text.mud-chip-color-info.mud-clickable:hover:not(.mud-disabled){background-color:rgba(var(--mud-palette-info-rgb), 0.12)}}.mud-chip-text.mud-chip-color-info.mud-clickable:focus-visible:not(.mud-disabled),.mud-chip-text.mud-chip-color-info.mud-clickable:active:not(.mud-disabled){background-color:rgba(var(--mud-palette-info-rgb), 0.12)}.mud-chip-text.mud-chip-color-success{color:var(--mud-palette-success);--mud-ripple-color: var(--mud-palette-success) !important;background-color:var(--mud-palette-success-hover)}@media(hover: hover)and (pointer: fine){.mud-chip-text.mud-chip-color-success.mud-clickable:hover:not(.mud-disabled){background-color:rgba(var(--mud-palette-success-rgb), 0.12)}}.mud-chip-text.mud-chip-color-success.mud-clickable:focus-visible:not(.mud-disabled),.mud-chip-text.mud-chip-color-success.mud-clickable:active:not(.mud-disabled){background-color:rgba(var(--mud-palette-success-rgb), 0.12)}.mud-chip-text.mud-chip-color-warning{color:var(--mud-palette-warning);--mud-ripple-color: var(--mud-palette-warning) !important;background-color:var(--mud-palette-warning-hover)}@media(hover: hover)and (pointer: fine){.mud-chip-text.mud-chip-color-warning.mud-clickable:hover:not(.mud-disabled){background-color:rgba(var(--mud-palette-warning-rgb), 0.12)}}.mud-chip-text.mud-chip-color-warning.mud-clickable:focus-visible:not(.mud-disabled),.mud-chip-text.mud-chip-color-warning.mud-clickable:active:not(.mud-disabled){background-color:rgba(var(--mud-palette-warning-rgb), 0.12)}.mud-chip-text.mud-chip-color-error{color:var(--mud-palette-error);--mud-ripple-color: var(--mud-palette-error) !important;background-color:var(--mud-palette-error-hover)}@media(hover: hover)and (pointer: fine){.mud-chip-text.mud-chip-color-error.mud-clickable:hover:not(.mud-disabled){background-color:rgba(var(--mud-palette-error-rgb), 0.12)}}.mud-chip-text.mud-chip-color-error.mud-clickable:focus-visible:not(.mud-disabled),.mud-chip-text.mud-chip-color-error.mud-clickable:active:not(.mud-disabled){background-color:rgba(var(--mud-palette-error-rgb), 0.12)}.mud-chip-text.mud-chip-color-dark{color:var(--mud-palette-dark);--mud-ripple-color: var(--mud-palette-dark) !important;background-color:var(--mud-palette-dark-hover)}@media(hover: hover)and (pointer: fine){.mud-chip-text.mud-chip-color-dark.mud-clickable:hover:not(.mud-disabled){background-color:rgba(var(--mud-palette-dark-rgb), 0.12)}}.mud-chip-text.mud-chip-color-dark.mud-clickable:focus-visible:not(.mud-disabled),.mud-chip-text.mud-chip-color-dark.mud-clickable:active:not(.mud-disabled){background-color:rgba(var(--mud-palette-dark-rgb), 0.12)}.mud-collapse-container{overflow:hidden;display:grid;grid-template-rows:minmax(0, 0fr);transition:grid-template-rows 300ms ease-in-out}.mud-collapse-entering{grid-template-rows:minmax(0, 1fr)}.mud-collapse-entered{overflow:initial;grid-template-rows:minmax(0, 1fr)}.mud-collapse-entered .mud-collapse-wrapper{overflow-y:auto}.mud-collapse-hidden{visibility:hidden}.mud-collapse-wrapper{overflow:hidden;display:flex}.mud-collapse-wrapper-inner{width:100%}.mud-dialog-container{display:flex;position:fixed;top:0;left:0;width:100%;height:100%;z-index:var(--mud-zindex-dialog)}.mud-dialog-container.mud-dialog-center{align-items:center;justify-content:center}.mud-dialog-container.mud-dialog-topcenter{align-items:flex-start;justify-content:center;padding-top:32px}.mud-dialog-container.mud-dialog-bottomcenter{align-items:flex-end;justify-content:center;padding-bottom:32px}.mud-dialog-container.mud-dialog-centerright{align-items:center;justify-content:flex-end;padding-right:32px}.mud-dialog-container.mud-dialog-centerleft{align-items:center;justify-content:flex-start;padding-left:32px}.mud-dialog-container.mud-dialog-topleft .mud-dialog{position:absolute;top:32px;left:32px}.mud-dialog-container.mud-dialog-topright .mud-dialog{position:absolute;top:32px;right:32px}.mud-dialog-container.mud-dialog-bottomleft .mud-dialog{position:absolute;bottom:32px;left:32px}.mud-dialog-container.mud-dialog-bottomright .mud-dialog{position:absolute;bottom:32px;right:32px}.mud-dialog{display:flex;z-index:calc(var(--mud-zindex-dialog) + 2);flex-direction:column;color:var(--mud-palette-text-primary);background-color:var(--mud-palette-surface);border-radius:var(--mud-default-borderradius);-webkit-animation:mud-open-dialog-center .1s cubic-bezier(0.39, 0.575, 0.565, 1) both;animation:mud-open-dialog-center .1s cubic-bezier(0.39, 0.575, 0.565, 1) both;box-shadow:0px 11px 15px -7px rgba(0,0,0,.2),0px 24px 38px 3px rgba(0,0,0,.14),0px 9px 46px 8px rgba(0,0,0,.12);max-height:calc(100vh - var(--mud-appbar-height));max-height:calc(100dvh - var(--mud-appbar-height));overflow-y:auto;outline-style:none}.mud-dialog.mud-dialog-rtl .mud-dialog-title .mud-button-close{right:unset;left:8px}.mud-dialog .mud-dialog-title{z-index:1;flex:0 0 auto;margin:0;padding:16px 24px;border-top-left-radius:var(--mud-default-borderradius);border-top-right-radius:var(--mud-default-borderradius)}.mud-dialog .mud-dialog-title+*>.mud-dialog-content{border-radius:0}.mud-dialog .mud-dialog-title .mud-button-close{top:8px;right:8px;position:absolute}.mud-dialog .mud-dialog-content{position:relative;flex:1 1 auto;overflow:auto;padding:0px 24px;margin:8px 0px;-webkit-overflow-scrolling:touch;border-top-left-radius:var(--mud-default-borderradius);border-top-right-radius:var(--mud-default-borderradius)}.mud-dialog .mud-dialog-content.mud-dialog-no-side-padding{padding:0px;margin:12px 0px}.mud-dialog .mud-dialog-actions{flex:0 0 auto;display:flex;gap:8px;padding:8px;align-items:center;justify-content:flex-end;border-bottom-left-radius:var(--mud-default-borderradius);border-bottom-right-radius:var(--mud-default-borderradius)}.mud-dialog-width-false{max-width:calc(100% - 64px)}.mud-dialog-width-xs{max-width:444px}.mud-dialog-width-sm{max-width:600px}.mud-dialog-width-md{max-width:960px}.mud-dialog-width-lg{max-width:1280px}.mud-dialog-width-xl{max-width:1920px}.mud-dialog-width-xxl{max-width:2560px}.mud-dialog-width-full{width:calc(100% - 64px)}.mud-dialog-fullscreen{width:100%;height:100%;margin:0;max-width:100%;max-height:none;border-radius:0;overflow-y:hidden}@-webkit-keyframes mud-open-dialog-center{0%{opacity:0}1%{-webkit-transform:scale(0.5);transform:scale(0.5);opacity:1}100%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes mud-open-dialog-center{0%{opacity:0}1%{-webkit-transform:scale(0.5);transform:scale(0.5);opacity:1}100%{-webkit-transform:scale(1);transform:scale(1)}}.mud-focus-trap{display:contents}.mud-focus-trap .mud-focus-trap-child-container{display:contents}.mud-input-control.mud-field .mud-input-slot{height:auto;min-height:19px}.mud-input-control.mud-field .mud-input-slot.mud-input-root-outlined.mud-input-adorned-start{padding-left:0;padding-inline-start:0;padding-inline-end:14px}.mud-input-control.mud-field .mud-input-slot.mud-input-root-filled.mud-input-adorned-start{padding-left:0;padding-inline-start:0;padding-inline-end:12px}.mud-input-control.mud-field .mud-input-slot.mud-input-slot-nopadding{padding-top:0px;padding-bottom:0px}.mud-input-control.mud-field .mud-input-slot.mud-input-slot-nopadding.mud-input-root-filled{padding-top:21px;padding-bottom:2px}.mud-input-control.mud-field .mud-input-slot.mud-input-slot-nopadding.mud-input-root-outlined{padding-top:7px;padding-bottom:2px}.mud-flex-break{flex-basis:100%;width:0}.mud-grid{width:100%;display:flex;flex-wrap:wrap;box-sizing:border-box}.mud-grid-item{margin:0;box-sizing:border-box}.mud-grid-spacing-xs-1{width:calc(100% + 4px);margin-left:-4px;margin-top:-4px}.mud-grid-spacing-xs-1>.mud-grid-item{padding-left:4px;padding-top:4px}.mud-grid-spacing-xs-2{width:calc(100% + 8px);margin-left:-8px;margin-top:-8px}.mud-grid-spacing-xs-2>.mud-grid-item{padding-left:8px;padding-top:8px}.mud-grid-spacing-xs-3{width:calc(100% + 12px);margin-left:-12px;margin-top:-12px}.mud-grid-spacing-xs-3>.mud-grid-item{padding-left:12px;padding-top:12px}.mud-grid-spacing-xs-4{width:calc(100% + 16px);margin-left:-16px;margin-top:-16px}.mud-grid-spacing-xs-4>.mud-grid-item{padding-left:16px;padding-top:16px}.mud-grid-spacing-xs-5{width:calc(100% + 20px);margin-left:-20px;margin-top:-20px}.mud-grid-spacing-xs-5>.mud-grid-item{padding-left:20px;padding-top:20px}.mud-grid-spacing-xs-6{width:calc(100% + 24px);margin-left:-24px;margin-top:-24px}.mud-grid-spacing-xs-6>.mud-grid-item{padding-left:24px;padding-top:24px}.mud-grid-spacing-xs-7{width:calc(100% + 28px);margin-left:-28px;margin-top:-28px}.mud-grid-spacing-xs-7>.mud-grid-item{padding-left:28px;padding-top:28px}.mud-grid-spacing-xs-8{width:calc(100% + 32px);margin-left:-32px;margin-top:-32px}.mud-grid-spacing-xs-8>.mud-grid-item{padding-left:32px;padding-top:32px}.mud-grid-spacing-xs-9{width:calc(100% + 36px);margin-left:-36px;margin-top:-36px}.mud-grid-spacing-xs-9>.mud-grid-item{padding-left:36px;padding-top:36px}.mud-grid-spacing-xs-10{width:calc(100% + 40px);margin-left:-40px;margin-top:-40px}.mud-grid-spacing-xs-10>.mud-grid-item{padding-left:40px;padding-top:40px}.mud-grid-spacing-xs-11{width:calc(100% + 44px);margin-left:-44px;margin-top:-44px}.mud-grid-spacing-xs-11>.mud-grid-item{padding-left:44px;padding-top:44px}.mud-grid-spacing-xs-12{width:calc(100% + 48px);margin-left:-48px;margin-top:-48px}.mud-grid-spacing-xs-12>.mud-grid-item{padding-left:48px;padding-top:48px}.mud-grid-spacing-xs-13{width:calc(100% + 52px);margin-left:-52px;margin-top:-52px}.mud-grid-spacing-xs-13>.mud-grid-item{padding-left:52px;padding-top:52px}.mud-grid-spacing-xs-14{width:calc(100% + 56px);margin-left:-56px;margin-top:-56px}.mud-grid-spacing-xs-14>.mud-grid-item{padding-left:56px;padding-top:56px}.mud-grid-spacing-xs-15{width:calc(100% + 60px);margin-left:-60px;margin-top:-60px}.mud-grid-spacing-xs-15>.mud-grid-item{padding-left:60px;padding-top:60px}.mud-grid-spacing-xs-16{width:calc(100% + 64px);margin-left:-64px;margin-top:-64px}.mud-grid-spacing-xs-16>.mud-grid-item{padding-left:64px;padding-top:64px}.mud-grid-spacing-xs-17{width:calc(100% + 68px);margin-left:-68px;margin-top:-68px}.mud-grid-spacing-xs-17>.mud-grid-item{padding-left:68px;padding-top:68px}.mud-grid-spacing-xs-18{width:calc(100% + 72px);margin-left:-72px;margin-top:-72px}.mud-grid-spacing-xs-18>.mud-grid-item{padding-left:72px;padding-top:72px}.mud-grid-spacing-xs-19{width:calc(100% + 76px);margin-left:-76px;margin-top:-76px}.mud-grid-spacing-xs-19>.mud-grid-item{padding-left:76px;padding-top:76px}.mud-grid-spacing-xs-20{width:calc(100% + 80px);margin-left:-80px;margin-top:-80px}.mud-grid-spacing-xs-20>.mud-grid-item{padding-left:80px;padding-top:80px}@media(min-width: 0px){.mud-grid-item-xs-1{flex-grow:0;max-width:calc(100%/12*1);flex-basis:calc(100%/12*1)}.mud-grid-item-xs-2{flex-grow:0;max-width:calc(100%/12*2);flex-basis:calc(100%/12*2)}.mud-grid-item-xs-3{flex-grow:0;max-width:calc(100%/12*3);flex-basis:calc(100%/12*3)}.mud-grid-item-xs-4{flex-grow:0;max-width:calc(100%/12*4);flex-basis:calc(100%/12*4)}.mud-grid-item-xs-5{flex-grow:0;max-width:calc(100%/12*5);flex-basis:calc(100%/12*5)}.mud-grid-item-xs-6{flex-grow:0;max-width:calc(100%/12*6);flex-basis:calc(100%/12*6)}.mud-grid-item-xs-7{flex-grow:0;max-width:calc(100%/12*7);flex-basis:calc(100%/12*7)}.mud-grid-item-xs-8{flex-grow:0;max-width:calc(100%/12*8);flex-basis:calc(100%/12*8)}.mud-grid-item-xs-9{flex-grow:0;max-width:calc(100%/12*9);flex-basis:calc(100%/12*9)}.mud-grid-item-xs-10{flex-grow:0;max-width:calc(100%/12*10);flex-basis:calc(100%/12*10)}.mud-grid-item-xs-11{flex-grow:0;max-width:calc(100%/12*11);flex-basis:calc(100%/12*11)}.mud-grid-item-xs-12{flex-grow:0;max-width:calc(100%/12*12);flex-basis:calc(100%/12*12)}.mud-grid-item-xs-auto{flex-grow:0;max-width:none;flex-basis:auto}.mud-grid-item-xs-true{flex-grow:1;max-width:100%;flex-basis:0}}@media(min-width: 600px){.mud-grid-item-sm-1{flex-grow:0;max-width:calc(100%/12*1);flex-basis:calc(100%/12*1)}.mud-grid-item-sm-2{flex-grow:0;max-width:calc(100%/12*2);flex-basis:calc(100%/12*2)}.mud-grid-item-sm-3{flex-grow:0;max-width:calc(100%/12*3);flex-basis:calc(100%/12*3)}.mud-grid-item-sm-4{flex-grow:0;max-width:calc(100%/12*4);flex-basis:calc(100%/12*4)}.mud-grid-item-sm-5{flex-grow:0;max-width:calc(100%/12*5);flex-basis:calc(100%/12*5)}.mud-grid-item-sm-6{flex-grow:0;max-width:calc(100%/12*6);flex-basis:calc(100%/12*6)}.mud-grid-item-sm-7{flex-grow:0;max-width:calc(100%/12*7);flex-basis:calc(100%/12*7)}.mud-grid-item-sm-8{flex-grow:0;max-width:calc(100%/12*8);flex-basis:calc(100%/12*8)}.mud-grid-item-sm-9{flex-grow:0;max-width:calc(100%/12*9);flex-basis:calc(100%/12*9)}.mud-grid-item-sm-10{flex-grow:0;max-width:calc(100%/12*10);flex-basis:calc(100%/12*10)}.mud-grid-item-sm-11{flex-grow:0;max-width:calc(100%/12*11);flex-basis:calc(100%/12*11)}.mud-grid-item-sm-12{flex-grow:0;max-width:calc(100%/12*12);flex-basis:calc(100%/12*12)}.mud-grid-item-sm-auto{flex-grow:0;max-width:none;flex-basis:auto}.mud-grid-item-sm-true{flex-grow:1;max-width:100%;flex-basis:0}}@media(min-width: 960px){.mud-grid-item-md-1{flex-grow:0;max-width:calc(100%/12*1);flex-basis:calc(100%/12*1)}.mud-grid-item-md-2{flex-grow:0;max-width:calc(100%/12*2);flex-basis:calc(100%/12*2)}.mud-grid-item-md-3{flex-grow:0;max-width:calc(100%/12*3);flex-basis:calc(100%/12*3)}.mud-grid-item-md-4{flex-grow:0;max-width:calc(100%/12*4);flex-basis:calc(100%/12*4)}.mud-grid-item-md-5{flex-grow:0;max-width:calc(100%/12*5);flex-basis:calc(100%/12*5)}.mud-grid-item-md-6{flex-grow:0;max-width:calc(100%/12*6);flex-basis:calc(100%/12*6)}.mud-grid-item-md-7{flex-grow:0;max-width:calc(100%/12*7);flex-basis:calc(100%/12*7)}.mud-grid-item-md-8{flex-grow:0;max-width:calc(100%/12*8);flex-basis:calc(100%/12*8)}.mud-grid-item-md-9{flex-grow:0;max-width:calc(100%/12*9);flex-basis:calc(100%/12*9)}.mud-grid-item-md-10{flex-grow:0;max-width:calc(100%/12*10);flex-basis:calc(100%/12*10)}.mud-grid-item-md-11{flex-grow:0;max-width:calc(100%/12*11);flex-basis:calc(100%/12*11)}.mud-grid-item-md-12{flex-grow:0;max-width:calc(100%/12*12);flex-basis:calc(100%/12*12)}.mud-grid-item-md-auto{flex-grow:0;max-width:none;flex-basis:auto}.mud-grid-item-md-true{flex-grow:1;max-width:100%;flex-basis:0}}@media(min-width: 1280px){.mud-grid-item-lg-1{flex-grow:0;max-width:calc(100%/12*1);flex-basis:calc(100%/12*1)}.mud-grid-item-lg-2{flex-grow:0;max-width:calc(100%/12*2);flex-basis:calc(100%/12*2)}.mud-grid-item-lg-3{flex-grow:0;max-width:calc(100%/12*3);flex-basis:calc(100%/12*3)}.mud-grid-item-lg-4{flex-grow:0;max-width:calc(100%/12*4);flex-basis:calc(100%/12*4)}.mud-grid-item-lg-5{flex-grow:0;max-width:calc(100%/12*5);flex-basis:calc(100%/12*5)}.mud-grid-item-lg-6{flex-grow:0;max-width:calc(100%/12*6);flex-basis:calc(100%/12*6)}.mud-grid-item-lg-7{flex-grow:0;max-width:calc(100%/12*7);flex-basis:calc(100%/12*7)}.mud-grid-item-lg-8{flex-grow:0;max-width:calc(100%/12*8);flex-basis:calc(100%/12*8)}.mud-grid-item-lg-9{flex-grow:0;max-width:calc(100%/12*9);flex-basis:calc(100%/12*9)}.mud-grid-item-lg-10{flex-grow:0;max-width:calc(100%/12*10);flex-basis:calc(100%/12*10)}.mud-grid-item-lg-11{flex-grow:0;max-width:calc(100%/12*11);flex-basis:calc(100%/12*11)}.mud-grid-item-lg-12{flex-grow:0;max-width:calc(100%/12*12);flex-basis:calc(100%/12*12)}.mud-grid-item-lg-auto{flex-grow:0;max-width:none;flex-basis:auto}.mud-grid-item-lg-true{flex-grow:1;max-width:100%;flex-basis:0}}@media(min-width: 1920px){.mud-grid-item-xl-1{flex-grow:0;max-width:calc(100%/12*1);flex-basis:calc(100%/12*1)}.mud-grid-item-xl-2{flex-grow:0;max-width:calc(100%/12*2);flex-basis:calc(100%/12*2)}.mud-grid-item-xl-3{flex-grow:0;max-width:calc(100%/12*3);flex-basis:calc(100%/12*3)}.mud-grid-item-xl-4{flex-grow:0;max-width:calc(100%/12*4);flex-basis:calc(100%/12*4)}.mud-grid-item-xl-5{flex-grow:0;max-width:calc(100%/12*5);flex-basis:calc(100%/12*5)}.mud-grid-item-xl-6{flex-grow:0;max-width:calc(100%/12*6);flex-basis:calc(100%/12*6)}.mud-grid-item-xl-7{flex-grow:0;max-width:calc(100%/12*7);flex-basis:calc(100%/12*7)}.mud-grid-item-xl-8{flex-grow:0;max-width:calc(100%/12*8);flex-basis:calc(100%/12*8)}.mud-grid-item-xl-9{flex-grow:0;max-width:calc(100%/12*9);flex-basis:calc(100%/12*9)}.mud-grid-item-xl-10{flex-grow:0;max-width:calc(100%/12*10);flex-basis:calc(100%/12*10)}.mud-grid-item-xl-11{flex-grow:0;max-width:calc(100%/12*11);flex-basis:calc(100%/12*11)}.mud-grid-item-xl-12{flex-grow:0;max-width:calc(100%/12*12);flex-basis:calc(100%/12*12)}.mud-grid-item-xl-auto{flex-grow:0;max-width:none;flex-basis:auto}.mud-grid-item-xl-true{flex-grow:1;max-width:100%;flex-basis:0}}@media(min-width: 2560px){.mud-grid-item-xxl-1{flex-grow:0;max-width:calc(100%/12*1);flex-basis:calc(100%/12*1)}.mud-grid-item-xxl-2{flex-grow:0;max-width:calc(100%/12*2);flex-basis:calc(100%/12*2)}.mud-grid-item-xxl-3{flex-grow:0;max-width:calc(100%/12*3);flex-basis:calc(100%/12*3)}.mud-grid-item-xxl-4{flex-grow:0;max-width:calc(100%/12*4);flex-basis:calc(100%/12*4)}.mud-grid-item-xxl-5{flex-grow:0;max-width:calc(100%/12*5);flex-basis:calc(100%/12*5)}.mud-grid-item-xxl-6{flex-grow:0;max-width:calc(100%/12*6);flex-basis:calc(100%/12*6)}.mud-grid-item-xxl-7{flex-grow:0;max-width:calc(100%/12*7);flex-basis:calc(100%/12*7)}.mud-grid-item-xxl-8{flex-grow:0;max-width:calc(100%/12*8);flex-basis:calc(100%/12*8)}.mud-grid-item-xxl-9{flex-grow:0;max-width:calc(100%/12*9);flex-basis:calc(100%/12*9)}.mud-grid-item-xxl-10{flex-grow:0;max-width:calc(100%/12*10);flex-basis:calc(100%/12*10)}.mud-grid-item-xxl-11{flex-grow:0;max-width:calc(100%/12*11);flex-basis:calc(100%/12*11)}.mud-grid-item-xxl-12{flex-grow:0;max-width:calc(100%/12*12);flex-basis:calc(100%/12*12)}.mud-grid-item-xxl-auto{flex-grow:0;max-width:none;flex-basis:auto}.mud-grid-item-xxl-true{flex-grow:1;max-width:100%;flex-basis:0}}.mud-paper{color:var(--mud-palette-text-primary);background-color:var(--mud-palette-surface);border-radius:var(--mud-default-borderradius);transition:box-shadow 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}.mud-paper-square{border-radius:0px}.mud-paper-outlined{border:1px solid var(--mud-palette-lines-default)}.mud-icon-default{color:var(--mud-palette-text-secondary)}.mud-disabled .mud-icon-root,.mud-disabled .mud-svg-icon,.mud-disabled .mud-icon-default{color:var(--mud-palette-text-disabled)}.mud-icon-root{width:1em;height:1em;display:inline-block;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;flex-shrink:0;user-select:none}.mud-icon-root:focus{outline:none}.mud-icon-root.mud-svg-icon{fill:currentColor}.mud-icon-size-small{font-size:1.25rem}.mud-icon-size-medium{font-size:1.5rem}.mud-icon-size-large{font-size:2.25rem}.mud-divider{margin:0;flex-shrink:0;border-color:var(--mud-palette-divider);border-width:1px;border-style:solid none none none}.mud-divider-absolute{left:0;width:100%;bottom:0;position:absolute}.mud-divider-inset{margin-left:72px;margin-inline-start:72px;margin-inline-end:unset}.mud-divider-light{border-color:var(--mud-palette-divider-light)}.mud-divider-middle{margin-left:16px;margin-right:16px}.mud-divider-vertical{border-style:none solid none none;height:100%}.mud-divider-flexitem{height:auto;align-self:stretch}.mud-divider-fullwidth{flex-grow:1;width:100%}.mud-drop-zone{position:relative;transition:all 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}.mud-drop-zone-drag-block>*{pointer-events:none}.mud-drop-zone-can-drop{background-color:var(--mud-palette-success-hover)}.mud-drop-zone-no-drop{background-color:var(--mud-palette-error-hover)}.mud-drop-item:not(.mud-drop-item-preview-start){cursor:grab;user-select:none}.mud-drop-item:not(.mud-drop-item-preview-start):active{cursor:grabbing}.mud-drop-item-preview-start{height:20px;width:100%;position:absolute;top:0;left:0;z-index:1;user-select:none}.mud-drop-item .mud-ripple:after{display:none;transform:none}.mud-expansion-panels{flex:0 1 auto;position:relative;max-width:100%;transition:.3s cubic-bezier(0.25, 0.8, 0.5, 1);border-radius:var(--mud-default-borderradius)}.mud-expansion-panels.mud-expansion-panels-square{border-radius:0px}.mud-expansion-panels.mud-expansion-panels-borders .mud-expand-panel{border-bottom:1px solid var(--mud-palette-lines-default)}.mud-expand-panel{flex:1 0 100%;max-width:100%;position:relative;transition:margin .3s cubic-bezier(0.25, 0.8, 0.5, 1);transition-delay:100ms;color:var(--mud-palette-text-primary);background-color:var(--mud-palette-surface)}.mud-expand-panel.mud-expand-panel-border{border-bottom:1px solid var(--mud-palette-lines-default)}.mud-expand-panel:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.mud-expand-panel:last-child{border-bottom:none;border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}.mud-expand-panel.mud-panel-expanded{margin:16px 0;border-radius:inherit;border-bottom:none;transition-delay:0ms}.mud-expand-panel.mud-panel-expanded:first-child{margin-top:0}.mud-expand-panel.mud-panel-expanded:last-child{margin-bottom:0}.mud-expand-panel.mud-panel-expanded+.mud-expand-panel{border-top-left-radius:inherit;border-top-right-radius:inherit}.mud-expand-panel.mud-panel-next-expanded{border-bottom:none;border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}.mud-expand-panel .mud-expand-panel-header{width:100%;align-items:center;display:flex;font-size:.9375rem;line-height:1;min-height:48px;outline:none;padding:16px 24px;position:relative;transition:min-height .3s cubic-bezier(0.25, 0.8, 0.5, 1);user-select:none}.mud-expand-panel .mud-expand-panel-header:hover{cursor:pointer}.mud-expand-panel .mud-expand-panel-header .mud-expand-panel-text{flex:1 1 auto}.mud-expand-panel .mud-expand-panel-header .mud-expand-panel-icon{transition:.3s cubic-bezier(0.25, 0.8, 0.5, 1),visibility 0s}.mud-expand-panel .mud-expand-panel-header .mud-expand-panel-icon.mud-transform{transform:rotate(-180deg)}.mud-expand-panel .mud-expand-panel-content{padding-bottom:16px;flex:1 1 auto;max-width:100%}.mud-expand-panel .mud-expand-panel-content.mud-expand-panel-gutters{padding-left:24px;padding-right:24px}.mud-expand-panel .mud-expand-panel-content.mud-expand-panel-dense{padding-top:0px;padding-bottom:0px}.mud-disabled>.mud-expand-panel-header{color:var(--mud-palette-text-disabled)}.mud-disabled>.mud-expand-panel-header:hover{cursor:default}.mud-fab{padding:0;font-family:var(--mud-typography-button-family);font-size:var(--mud-typography-button-size);font-weight:var(--mud-typography-button-weight);line-height:var(--mud-typography-button-lineheight);letter-spacing:var(--mud-typography-button-letterspacing);text-transform:var(--mud-typography-button-text-transform);min-width:0;box-shadow:0px 3px 5px -1px rgba(0,0,0,.2),0px 6px 10px 0px rgba(0,0,0,.14),0px 1px 18px 0px rgba(0,0,0,.12);box-sizing:border-box;min-height:36px;transition:background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;border-radius:50%;color:var(--mud-palette-text-primary);--mud-ripple-color: var(--mud-palette-text-primary);background-color:var(--mud-palette-action-default-hover)}@media(hover: hover)and (pointer: fine){.mud-fab:hover{box-shadow:0px 5px 5px -3px rgba(0,0,0,.2),0px 8px 10px 1px rgba(0,0,0,.14),0px 3px 14px 2px rgba(0,0,0,.12);text-decoration:none;background-color:var(--mud-palette-action-disabled-background)}}.mud-fab:focus-visible{box-shadow:0px 5px 5px -3px rgba(0,0,0,.2),0px 8px 10px 1px rgba(0,0,0,.14),0px 3px 14px 2px rgba(0,0,0,.12);text-decoration:none;background-color:var(--mud-palette-action-disabled-background)}.mud-fab:active{box-shadow:0px 7px 8px -4px rgba(0,0,0,.2),0px 12px 17px 2px rgba(0,0,0,.14),0px 5px 22px 4px rgba(0,0,0,.12);text-decoration:none;background-color:var(--mud-palette-action-disabled-background)}.mud-fab:disabled{color:var(--mud-palette-action-disabled);box-shadow:none;background-color:var(--mud-palette-action-disabled-background);cursor:default;pointer-events:none}@media(hover: hover)and (pointer: fine){.mud-fab:disabled:hover{background-color:var(--mud-palette-action-disabled-background)}}.mud-fab-disable-elevation{box-shadow:none}@media(hover: hover)and (pointer: fine){.mud-fab-disable-elevation:hover{box-shadow:none}}.mud-fab-disable-elevation:active{box-shadow:none}.mud-fab-disable-elevation.mud-focus-visible{box-shadow:none}.mud-fab-disable-elevation:disabled{box-shadow:none}.mud-fab-label{width:100%;display:inherit;align-items:inherit;justify-content:inherit}.mud-fab-primary{color:var(--mud-palette-primary-text);--mud-ripple-color: var(--mud-palette-primary-text) !important;--mud-ripple-opacity: var(--mud-ripple-opacity-secondary) !important;background-color:var(--mud-palette-primary)}@media(hover: hover)and (pointer: fine){.mud-fab-primary:hover{background-color:var(--mud-palette-primary-darken)}}.mud-fab-primary:focus-visible,.mud-fab-primary:active{background-color:var(--mud-palette-primary-darken)}.mud-fab-secondary{color:var(--mud-palette-secondary-text);--mud-ripple-color: var(--mud-palette-secondary-text) !important;--mud-ripple-opacity: var(--mud-ripple-opacity-secondary) !important;background-color:var(--mud-palette-secondary)}@media(hover: hover)and (pointer: fine){.mud-fab-secondary:hover{background-color:var(--mud-palette-secondary-darken)}}.mud-fab-secondary:focus-visible,.mud-fab-secondary:active{background-color:var(--mud-palette-secondary-darken)}.mud-fab-tertiary{color:var(--mud-palette-tertiary-text);--mud-ripple-color: var(--mud-palette-tertiary-text) !important;--mud-ripple-opacity: var(--mud-ripple-opacity-secondary) !important;background-color:var(--mud-palette-tertiary)}@media(hover: hover)and (pointer: fine){.mud-fab-tertiary:hover{background-color:var(--mud-palette-tertiary-darken)}}.mud-fab-tertiary:focus-visible,.mud-fab-tertiary:active{background-color:var(--mud-palette-tertiary-darken)}.mud-fab-info{color:var(--mud-palette-info-text);--mud-ripple-color: var(--mud-palette-info-text) !important;--mud-ripple-opacity: var(--mud-ripple-opacity-secondary) !important;background-color:var(--mud-palette-info)}@media(hover: hover)and (pointer: fine){.mud-fab-info:hover{background-color:var(--mud-palette-info-darken)}}.mud-fab-info:focus-visible,.mud-fab-info:active{background-color:var(--mud-palette-info-darken)}.mud-fab-success{color:var(--mud-palette-success-text);--mud-ripple-color: var(--mud-palette-success-text) !important;--mud-ripple-opacity: var(--mud-ripple-opacity-secondary) !important;background-color:var(--mud-palette-success)}@media(hover: hover)and (pointer: fine){.mud-fab-success:hover{background-color:var(--mud-palette-success-darken)}}.mud-fab-success:focus-visible,.mud-fab-success:active{background-color:var(--mud-palette-success-darken)}.mud-fab-warning{color:var(--mud-palette-warning-text);--mud-ripple-color: var(--mud-palette-warning-text) !important;--mud-ripple-opacity: var(--mud-ripple-opacity-secondary) !important;background-color:var(--mud-palette-warning)}@media(hover: hover)and (pointer: fine){.mud-fab-warning:hover{background-color:var(--mud-palette-warning-darken)}}.mud-fab-warning:focus-visible,.mud-fab-warning:active{background-color:var(--mud-palette-warning-darken)}.mud-fab-error{color:var(--mud-palette-error-text);--mud-ripple-color: var(--mud-palette-error-text) !important;--mud-ripple-opacity: var(--mud-ripple-opacity-secondary) !important;background-color:var(--mud-palette-error)}@media(hover: hover)and (pointer: fine){.mud-fab-error:hover{background-color:var(--mud-palette-error-darken)}}.mud-fab-error:focus-visible,.mud-fab-error:active{background-color:var(--mud-palette-error-darken)}.mud-fab-dark{color:var(--mud-palette-dark-text);--mud-ripple-color: var(--mud-palette-dark-text) !important;--mud-ripple-opacity: var(--mud-ripple-opacity-secondary) !important;background-color:var(--mud-palette-dark)}@media(hover: hover)and (pointer: fine){.mud-fab-dark:hover{background-color:var(--mud-palette-dark-darken)}}.mud-fab-dark:focus-visible,.mud-fab-dark:active{background-color:var(--mud-palette-dark-darken)}.mud-fab-extended.mud-fab-size-large{width:auto;height:48px;padding:0 16px;min-width:48px;min-height:auto;border-radius:24px}.mud-fab-extended.mud-fab-size-large .mud-fab-label{gap:8px}.mud-fab-extended.mud-fab-size-small{width:auto;height:34px;padding:0 12px;min-width:34px;border-radius:17px}.mud-fab-extended.mud-fab-size-small .mud-fab-label{gap:4px}.mud-fab-extended.mud-fab-size-medium{width:auto;height:40px;padding:0 16px;min-width:40px;border-radius:20px}.mud-fab-extended.mud-fab-size-medium .mud-fab-label{gap:8px}.mud-fab-color-inherit{color:inherit}.mud-fab-size-small{width:40px;height:40px}.mud-fab-size-medium{width:48px;height:48px}.mud-fab-size-large{width:56px;height:56px}.mud-form{display:flex;flex-direction:column}.mud-list{margin:0;padding:0;position:relative;list-style:none}.mud-list.mud-list-padding{padding-top:8px;padding-bottom:8px}.mud-list-item{width:100%;display:flex;position:relative;box-sizing:border-box;text-align:start;align-items:center;padding-top:8px;padding-bottom:8px;justify-content:flex-start;text-decoration:none}.mud-list-item.mud-list-item-dense{padding-top:4px;padding-bottom:4px}.mud-list-item.mud-list-item-disabled{color:var(--mud-palette-action-disabled) !important;cursor:default !important;pointer-events:none !important}.mud-list-item.mud-list-item-disabled .mud-list-item-icon{color:var(--mud-palette-action-disabled) !important}.mud-list-item.mud-list-item-disabled .mud-list-item-secondary-text{color:var(--mud-palette-action-disabled) !important}.mud-list-item-clickable{color:inherit;border:0;cursor:pointer;margin:0;outline:0;user-select:none;border-radius:0;vertical-align:middle;background-color:rgba(0,0,0,0);-webkit-appearance:none;-webkit-tap-highlight-color:rgba(0,0,0,0);transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}@media(hover: hover)and (pointer: fine){.mud-list-item-clickable:hover{background-color:var(--mud-palette-action-default-hover)}}.mud-list-item-clickable:focus:not(.mud-selected-item),.mud-list-item-clickable:active{background-color:var(--mud-palette-action-default-hover)}.mud-list-item-gutters{padding-left:16px;padding-right:16px}.mud-list-item-text{flex:1 1 auto;min-width:0;margin-top:4px;margin-bottom:4px}.mud-list-item-text-inset{padding-left:56px;padding-inline-start:56px;padding-inline-end:unset}.mud-list-item-icon{color:var(--mud-palette-action-default);display:inline-flex;min-width:56px;flex-shrink:0}.mud-list-subheader{color:var(--mud-palette-action-default);font-size:.875rem;box-sizing:border-box;list-style:none;font-weight:500;padding-top:8px;padding-bottom:20px}.mud-list-subheader-gutters{padding-left:16px;padding-right:16px}.mud-list-subheader-inset{padding-left:72px;padding-inline-start:72px;padding-inline-end:unset}.mud-list-subheader-sticky{top:0;z-index:1;position:sticky;background-color:inherit}.mud-list-item-avatar{min-width:56px;flex-shrink:0}.mud-nested-list>.mud-list-item{padding-left:32px;padding-inline-start:32px;padding-inline-end:unset}.mud-list-item-secondary-text{font-weight:500;color:var(--mud-palette-text-secondary)}.mud-application-layout-rtl{direction:rtl}.mud-menu{display:inline-flex;align-self:center;position:relative}.mud-menu *{cursor:pointer}.mud-menu>div.mud-disabled{cursor:default}.mud-menu>div.mud-disabled *{cursor:default}.mud-menu>div.mud-menu-activator{display:contents;user-select:none}.mud-menu-button-hidden{position:absolute}.mud-menu-list{padding:4px 0;min-width:112px}.mud-menu-list>.mud-menu{width:100%;display:inline}.mud-menu-list>.mud-divider{margin:4px 0}.mud-menu-item{width:100%;display:flex;position:relative;box-sizing:border-box;text-align:start;align-items:center;justify-content:flex-start;text-decoration:none;padding:8px 12px}.mud-menu-item>.mud-icon-root{color:var(--mud-palette-action-default)}.mud-menu-item .mud-menu-item-icon{display:inline-flex;flex-shrink:0;margin-inline-end:12px}.mud-menu-item .mud-menu-item-text{flex:1 1 auto;margin:4px 0}.mud-menu-item.mud-menu-item-dense{padding:2px 12px}.mud-menu-item.mud-disabled{color:var(--mud-palette-action-disabled) !important;cursor:default !important;pointer-events:none !important}.mud-menu-item.mud-disabled .mud-menu-item-icon{color:var(--mud-palette-action-disabled) !important}.mud-menu-list:has(.mud-menu-item-icon) .mud-menu-item:not(:has(.mud-menu-item-icon)) .mud-menu-item-text{margin-inline-start:36px}.mud-menu-list:has(.mud-menu-submenu-icon) .mud-menu-item:not(:has(.mud-menu-submenu-icon)) .mud-menu-item-text{margin-inline-end:36px}.mud-popover:has(>.mud-menu-list){overflow:hidden}.mud-link.mud-link-underline-none{text-decoration:none}.mud-link.mud-link-underline-hover{text-decoration:none}@media(hover: hover)and (pointer: fine){.mud-link.mud-link-underline-hover:hover{text-decoration:underline}}.mud-link.mud-link-underline-hover:focus-visible,.mud-link.mud-link-underline-hover:active{text-decoration:underline}.mud-link.mud-link-underline-always{text-decoration:underline}.mud-link.mud-link-disabled{cursor:default;color:var(--mud-palette-action-disabled) !important}.mud-link.mud-link-disabled:not(.mud-link-underline-always){text-decoration:none}.mud-navmenu{margin:0;position:relative;list-style:none;overscroll-behavior-y:contain}.mud-navmenu.mud-navmenu-dense .mud-nav-link{padding:4px 16px 4px 16px}.mud-navmenu.mud-navmenu-margin-dense .mud-nav-link{margin:2px 0}.mud-navmenu.mud-navmenu-margin-normal .mud-nav-link{margin:4px 0}.mud-navmenu.mud-navmenu-rounded .mud-nav-link{border-radius:var(--mud-default-borderradius)}.mud-navmenu.mud-navmenu-bordered .mud-nav-link.active:not(.mud-nav-link-disabled){border-inline-end-style:solid;border-inline-end-width:2px}.mud-navmenu.mud-navmenu-default .mud-nav-link.active:not(.mud-nav-link-disabled){color:var(--mud-palette-primary);background-color:var(--mud-palette-action-default-hover)}@media(hover: hover)and (pointer: fine){.mud-navmenu.mud-navmenu-default .mud-nav-link.active:not(.mud-nav-link-disabled):hover:not(.mud-nav-link-disabled){background-color:var(--mud-palette-action-default-hover)}}.mud-navmenu.mud-navmenu-default .mud-nav-link.active:not(.mud-nav-link-disabled):focus-visible:not(.mud-nav-link-disabled),.mud-navmenu.mud-navmenu-default .mud-nav-link.active:not(.mud-nav-link-disabled):active:not(.mud-nav-link-disabled){background-color:var(--mud-palette-action-default-hover)}.mud-navmenu.mud-navmenu-default .mud-nav-link-expand-icon.mud-transform{fill:var(--mud-palette-primary)}.mud-navmenu.mud-navmenu-primary .mud-nav-link.active:not(.mud-nav-link-disabled){color:var(--mud-palette-primary);--mud-ripple-color: var(--mud-palette-primary);background-color:var(--mud-palette-primary-hover)}@media(hover: hover)and (pointer: fine){.mud-navmenu.mud-navmenu-primary .mud-nav-link.active:not(.mud-nav-link-disabled):hover:not(.mud-nav-link-disabled){background-color:rgba(var(--mud-palette-primary-rgb), 0.12)}}.mud-navmenu.mud-navmenu-primary .mud-nav-link.active:not(.mud-nav-link-disabled):focus-visible:not(.mud-nav-link-disabled),.mud-navmenu.mud-navmenu-primary .mud-nav-link.active:not(.mud-nav-link-disabled):active:not(.mud-nav-link-disabled){background-color:rgba(var(--mud-palette-primary-rgb), 0.12)}.mud-navmenu.mud-navmenu-primary .mud-nav-link.active:not(.mud-nav-link-disabled) .mud-nav-link-icon{color:var(--mud-palette-primary)}.mud-navmenu.mud-navmenu-primary .mud-nav-link-expand-icon.mud-transform{fill:var(--mud-palette-primary)}.mud-navmenu.mud-navmenu-secondary .mud-nav-link.active:not(.mud-nav-link-disabled){color:var(--mud-palette-secondary);--mud-ripple-color: var(--mud-palette-secondary);background-color:var(--mud-palette-secondary-hover)}@media(hover: hover)and (pointer: fine){.mud-navmenu.mud-navmenu-secondary .mud-nav-link.active:not(.mud-nav-link-disabled):hover:not(.mud-nav-link-disabled){background-color:rgba(var(--mud-palette-secondary-rgb), 0.12)}}.mud-navmenu.mud-navmenu-secondary .mud-nav-link.active:not(.mud-nav-link-disabled):focus-visible:not(.mud-nav-link-disabled),.mud-navmenu.mud-navmenu-secondary .mud-nav-link.active:not(.mud-nav-link-disabled):active:not(.mud-nav-link-disabled){background-color:rgba(var(--mud-palette-secondary-rgb), 0.12)}.mud-navmenu.mud-navmenu-secondary .mud-nav-link.active:not(.mud-nav-link-disabled) .mud-nav-link-icon{color:var(--mud-palette-secondary)}.mud-navmenu.mud-navmenu-secondary .mud-nav-link-expand-icon.mud-transform{fill:var(--mud-palette-secondary)}.mud-navmenu.mud-navmenu-tertiary .mud-nav-link.active:not(.mud-nav-link-disabled){color:var(--mud-palette-tertiary);--mud-ripple-color: var(--mud-palette-tertiary);background-color:var(--mud-palette-tertiary-hover)}@media(hover: hover)and (pointer: fine){.mud-navmenu.mud-navmenu-tertiary .mud-nav-link.active:not(.mud-nav-link-disabled):hover:not(.mud-nav-link-disabled){background-color:rgba(var(--mud-palette-tertiary-rgb), 0.12)}}.mud-navmenu.mud-navmenu-tertiary .mud-nav-link.active:not(.mud-nav-link-disabled):focus-visible:not(.mud-nav-link-disabled),.mud-navmenu.mud-navmenu-tertiary .mud-nav-link.active:not(.mud-nav-link-disabled):active:not(.mud-nav-link-disabled){background-color:rgba(var(--mud-palette-tertiary-rgb), 0.12)}.mud-navmenu.mud-navmenu-tertiary .mud-nav-link.active:not(.mud-nav-link-disabled) .mud-nav-link-icon{color:var(--mud-palette-tertiary)}.mud-navmenu.mud-navmenu-tertiary .mud-nav-link-expand-icon.mud-transform{fill:var(--mud-palette-tertiary)}.mud-navmenu.mud-navmenu-info .mud-nav-link.active:not(.mud-nav-link-disabled){color:var(--mud-palette-info);--mud-ripple-color: var(--mud-palette-info);background-color:var(--mud-palette-info-hover)}@media(hover: hover)and (pointer: fine){.mud-navmenu.mud-navmenu-info .mud-nav-link.active:not(.mud-nav-link-disabled):hover:not(.mud-nav-link-disabled){background-color:rgba(var(--mud-palette-info-rgb), 0.12)}}.mud-navmenu.mud-navmenu-info .mud-nav-link.active:not(.mud-nav-link-disabled):focus-visible:not(.mud-nav-link-disabled),.mud-navmenu.mud-navmenu-info .mud-nav-link.active:not(.mud-nav-link-disabled):active:not(.mud-nav-link-disabled){background-color:rgba(var(--mud-palette-info-rgb), 0.12)}.mud-navmenu.mud-navmenu-info .mud-nav-link.active:not(.mud-nav-link-disabled) .mud-nav-link-icon{color:var(--mud-palette-info)}.mud-navmenu.mud-navmenu-info .mud-nav-link-expand-icon.mud-transform{fill:var(--mud-palette-info)}.mud-navmenu.mud-navmenu-success .mud-nav-link.active:not(.mud-nav-link-disabled){color:var(--mud-palette-success);--mud-ripple-color: var(--mud-palette-success);background-color:var(--mud-palette-success-hover)}@media(hover: hover)and (pointer: fine){.mud-navmenu.mud-navmenu-success .mud-nav-link.active:not(.mud-nav-link-disabled):hover:not(.mud-nav-link-disabled){background-color:rgba(var(--mud-palette-success-rgb), 0.12)}}.mud-navmenu.mud-navmenu-success .mud-nav-link.active:not(.mud-nav-link-disabled):focus-visible:not(.mud-nav-link-disabled),.mud-navmenu.mud-navmenu-success .mud-nav-link.active:not(.mud-nav-link-disabled):active:not(.mud-nav-link-disabled){background-color:rgba(var(--mud-palette-success-rgb), 0.12)}.mud-navmenu.mud-navmenu-success .mud-nav-link.active:not(.mud-nav-link-disabled) .mud-nav-link-icon{color:var(--mud-palette-success)}.mud-navmenu.mud-navmenu-success .mud-nav-link-expand-icon.mud-transform{fill:var(--mud-palette-success)}.mud-navmenu.mud-navmenu-warning .mud-nav-link.active:not(.mud-nav-link-disabled){color:var(--mud-palette-warning);--mud-ripple-color: var(--mud-palette-warning);background-color:var(--mud-palette-warning-hover)}@media(hover: hover)and (pointer: fine){.mud-navmenu.mud-navmenu-warning .mud-nav-link.active:not(.mud-nav-link-disabled):hover:not(.mud-nav-link-disabled){background-color:rgba(var(--mud-palette-warning-rgb), 0.12)}}.mud-navmenu.mud-navmenu-warning .mud-nav-link.active:not(.mud-nav-link-disabled):focus-visible:not(.mud-nav-link-disabled),.mud-navmenu.mud-navmenu-warning .mud-nav-link.active:not(.mud-nav-link-disabled):active:not(.mud-nav-link-disabled){background-color:rgba(var(--mud-palette-warning-rgb), 0.12)}.mud-navmenu.mud-navmenu-warning .mud-nav-link.active:not(.mud-nav-link-disabled) .mud-nav-link-icon{color:var(--mud-palette-warning)}.mud-navmenu.mud-navmenu-warning .mud-nav-link-expand-icon.mud-transform{fill:var(--mud-palette-warning)}.mud-navmenu.mud-navmenu-error .mud-nav-link.active:not(.mud-nav-link-disabled){color:var(--mud-palette-error);--mud-ripple-color: var(--mud-palette-error);background-color:var(--mud-palette-error-hover)}@media(hover: hover)and (pointer: fine){.mud-navmenu.mud-navmenu-error .mud-nav-link.active:not(.mud-nav-link-disabled):hover:not(.mud-nav-link-disabled){background-color:rgba(var(--mud-palette-error-rgb), 0.12)}}.mud-navmenu.mud-navmenu-error .mud-nav-link.active:not(.mud-nav-link-disabled):focus-visible:not(.mud-nav-link-disabled),.mud-navmenu.mud-navmenu-error .mud-nav-link.active:not(.mud-nav-link-disabled):active:not(.mud-nav-link-disabled){background-color:rgba(var(--mud-palette-error-rgb), 0.12)}.mud-navmenu.mud-navmenu-error .mud-nav-link.active:not(.mud-nav-link-disabled) .mud-nav-link-icon{color:var(--mud-palette-error)}.mud-navmenu.mud-navmenu-error .mud-nav-link-expand-icon.mud-transform{fill:var(--mud-palette-error)}.mud-navmenu.mud-navmenu-dark .mud-nav-link.active:not(.mud-nav-link-disabled){color:var(--mud-palette-dark);--mud-ripple-color: var(--mud-palette-dark);background-color:var(--mud-palette-dark-hover)}@media(hover: hover)and (pointer: fine){.mud-navmenu.mud-navmenu-dark .mud-nav-link.active:not(.mud-nav-link-disabled):hover:not(.mud-nav-link-disabled){background-color:rgba(var(--mud-palette-dark-rgb), 0.12)}}.mud-navmenu.mud-navmenu-dark .mud-nav-link.active:not(.mud-nav-link-disabled):focus-visible:not(.mud-nav-link-disabled),.mud-navmenu.mud-navmenu-dark .mud-nav-link.active:not(.mud-nav-link-disabled):active:not(.mud-nav-link-disabled){background-color:rgba(var(--mud-palette-dark-rgb), 0.12)}.mud-navmenu.mud-navmenu-dark .mud-nav-link.active:not(.mud-nav-link-disabled) .mud-nav-link-icon{color:var(--mud-palette-dark)}.mud-navmenu.mud-navmenu-dark .mud-nav-link-expand-icon.mud-transform{fill:var(--mud-palette-dark)}.mud-nav-group{width:100%;display:block;justify-content:flex-start}.mud-nav-group>.mud-nav-link>.mud-nav-link-text{font-weight:500}.mud-nav-group * .mud-nav-group>.mud-nav-link>.mud-nav-link-text{font-weight:400}.mud-nav-group * .mud-nav-group>.mud-nav-link.mud-expanded>.mud-nav-link-text{font-weight:500}.mud-nav-group * .mud-navmenu .mud-nav-item .mud-nav-link{padding-left:36px;padding-inline-start:36px;padding-inline-end:unset}.mud-nav-group-disabled,.mud-nav-group-disabled .mud-nav-link-text,.mud-nav-group-disabled .mud-nav-link-expand-icon,.mud-nav-group-disabled .mud-nav-link-icon{color:var(--mud-palette-text-disabled) !important;cursor:default;pointer-events:none}.mud-nav-item{width:100%;display:flex;justify-content:flex-start;text-decoration:none}.mud-nav-link{width:100%;font-weight:400;padding:8px 16px 8px 16px;color:inherit;line-height:1.75;display:inline-flex;justify-content:flex-start;text-transform:inherit;background-color:rgba(0,0,0,0);transition:background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,padding 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;align-items:flex-start}.mud-nav-link.mud-nav-link-disabled{color:var(--mud-palette-text-disabled) !important;cursor:default;pointer-events:none}@media(hover: hover)and (pointer: fine){.mud-nav-link:hover:not(.mud-nav-link-disabled){cursor:pointer;text-decoration:none;background-color:var(--mud-palette-action-default-hover)}}.mud-nav-link:focus:not(.mud-nav-link-disabled){background-color:var(--mud-palette-action-default-hover)}.mud-nav-link.active:not(.mud-nav-link-disabled){font-weight:500 !important}.mud-nav-link:not(.mud-nav-link-disabled) .mud-nav-link-icon.mud-nav-link-icon-default{color:var(--mud-palette-drawer-icon)}.mud-nav-link.mud-nav-link-disabled .mud-nav-link-icon{color:var(--mud-palette-text-disabled)}.mud-nav-link .mud-nav-link-expand-icon{color:var(--mud-palette-drawer-icon);transition:.3s cubic-bezier(0.25, 0.8, 0.5, 1),visibility 0s}.mud-nav-link .mud-nav-link-expand-icon.mud-transform{transform:rotate(-180deg)}.mud-nav-link .mud-nav-link-expand-icon.mud-transform-disabled{transform:rotate(-180deg)}.mud-nav-link .mud-nav-link-text{width:100%;text-align:start;margin-left:12px;margin-inline-start:12px;margin-inline-end:unset;letter-spacing:0}.mud-nav-group * .mud-navmenu>.mud-nav-group .mud-nav-link{padding-left:36px;padding-inline-start:36px;padding-inline-end:16px}.mud-nav-group * .mud-navmenu>.mud-nav-group * .mud-navmenu .mud-nav-item .mud-nav-link{padding-left:48px;padding-inline-start:48px}.mud-nav-group * .mud-navmenu>.mud-nav-group * .mud-navmenu>.mud-nav-group .mud-nav-link{padding-left:48px;padding-inline-start:48px;padding-inline-end:16px}.mud-nav-group * .mud-navmenu>.mud-nav-group * .mud-navmenu>.mud-nav-group * .mud-navmenu .mud-nav-item .mud-nav-link{padding-left:60px;padding-inline-start:60px;padding-inline-end:0}.mud-nav-group * .mud-navmenu>.mud-nav-group * .mud-navmenu>.mud-nav-group * .mud-navmenu>.mud-nav-group .mud-nav-link{padding-left:60px;padding-inline-start:60px;padding-inline-end:16px}.mud-nav-group * .mud-navmenu>.mud-nav-group * .mud-navmenu>.mud-nav-group * .mud-navmenu>.mud-nav-group * .mud-navmenu .mud-nav-item .mud-nav-link{padding-left:72px;padding-inline-start:72px;padding-inline-end:0}.mud-drawer-mini .mud-nav-link{line-height:1;display:flex;align-items:center}.mud-drawer--closed.mud-drawer-mini>.mud-drawer-content>.mud-navmenu .mud-nav-link .mud-icon-root:first-child+.mud-nav-link-text{display:none}.mud-drawer--closed.mud-drawer-mini .mud-nav-group * .mud-navmenu .mud-nav-item .mud-nav-link{padding:8px 16px 8px 16px}.mud-drawer--closed.mud-drawer-mini .mud-nav-group * .mud-navmenu>.mud-nav-group .mud-nav-link{padding:8px 16px 8px 16px}.mud-drawer--closed.mud-drawer-mini .mud-nav-group * .mud-navmenu>.mud-nav-group * .mud-navmenu .mud-nav-item .mud-nav-link{padding:8px 16px 8px 16px}.mud-drawer--closed.mud-drawer-mini .mud-nav-group * .mud-navmenu>.mud-nav-group * .mud-navmenu>.mud-nav-group .mud-nav-link{padding:8px 16px 8px 16px}.mud-drawer--closed.mud-drawer-mini .mud-nav-group * .mud-navmenu>.mud-nav-group * .mud-navmenu>.mud-nav-group * .mud-navmenu .mud-nav-item .mud-nav-link{padding:8px 16px 8px 16px}.mud-drawer--closed.mud-drawer-mini .mud-nav-group * .mud-navmenu>.mud-nav-group * .mud-navmenu>.mud-nav-group * .mud-navmenu>.mud-nav-group .mud-nav-link{padding:8px 16px 8px 16px}.mud-drawer--closed.mud-drawer-mini .mud-nav-group * .mud-navmenu>.mud-nav-group * .mud-navmenu>.mud-nav-group * .mud-navmenu>.mud-nav-group * .mud-navmenu .mud-nav-item .mud-nav-link{padding:8px 16px 8px 16px}.page-content-navigation .page-content-navigation-navlink.active .mud-nav-link{color:var(--mud-palette-primary);border-color:var(--mud-palette-primary);background-color:rgba(0,0,0,0)}.page-content-navigation .page-content-navigation-navlink .mud-nav-link{padding:4px 16px 4px 16px;color:var(--mud-palette-text-secondary);border-left:2px solid var(--mud-palette-action-disabled-background)}.page-content-navigation .page-content-navigation-navlink .mud-nav-link.active{color:var(--mud-palette-primary);border-color:var(--mud-palette-primary);background-color:rgba(0,0,0,0)}.page-content-navigation .page-content-navigation-navlink .mud-nav-link .mud-nav-link-text{margin-left:0px;margin-inline-start:0px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mud-pagination{display:inline-flex;flex-wrap:wrap;gap:6px;align-items:center;margin:0;list-style:none}.mud-pagination .mud-pagination-item>*{height:32px;min-width:32px;margin:0 3px;padding:0 6px;text-align:center;border-radius:16px}.mud-pagination .mud-pagination-item :not(mud-pagination-item-selected)>*{box-shadow:none}.mud-pagination .mud-pagination-item .mud-button{line-height:normal}.mud-pagination .mud-pagination-item .mud-icon-button{padding:0}.mud-pagination .mud-pagination-item-rectangular .mud-button{border-radius:var(--mud-default-borderradius)}.mud-pagination .mud-pagination-item .mud-typography[disabled]{color:var(--mud-palette-action-disabled) !important}.mud-pagination-outlined .mud-pagination-item-selected .mud-button-outlined-default{background-color:var(--mud-palette-action-default-hover)}.mud-pagination-outlined .mud-pagination-item-selected .mud-button-outlined-primary{background-color:var(--mud-palette-primary-hover)}.mud-pagination-outlined .mud-pagination-item-selected .mud-button-outlined-secondary{background-color:var(--mud-palette-secondary-hover)}.mud-pagination-outlined .mud-pagination-item-selected .mud-button-outlined-tertiary{background-color:var(--mud-palette-tertiary-hover)}.mud-pagination-outlined .mud-pagination-item-selected .mud-button-outlined-info{background-color:var(--mud-palette-info-hover)}.mud-pagination-outlined .mud-pagination-item-selected .mud-button-outlined-success{background-color:var(--mud-palette-success-hover)}.mud-pagination-outlined .mud-pagination-item-selected .mud-button-outlined-warning{background-color:var(--mud-palette-warning-hover)}.mud-pagination-outlined .mud-pagination-item-selected .mud-button-outlined-error{background-color:var(--mud-palette-error-hover)}.mud-pagination-outlined .mud-pagination-item-selected .mud-button-outlined-dark{background-color:var(--mud-palette-dark-hover)}.mud-pagination-filled .mud-pagination-item:not(.mud-pagination-item-selected) .mud-button{background-color:var(--mud-palette-surface)}.mud-pagination-filled .mud-pagination-item .mud-button{box-shadow:var(--mud-elevation-1)}.mud-pagination-small .mud-pagination-item>*{height:26px;min-width:26px;margin:0 1px;padding:0 4px;border-radius:13px}.mud-pagination-large .mud-pagination-item>*{height:40px;min-width:40px;padding:0 10px;border-radius:20px}.mud-pagination-disable-elevation .mud-pagination-item .mud-button{box-shadow:none}.mud-pagination-rtl .mud-pagination-item .mud-icon-root{transform:scaleX(-1)}.mud-picker.mud-rounded{border-radius:var(--mud-default-borderradius)}.mud-picker .mud-picker-actions{flex:0 0 auto;display:flex;padding:8px;align-items:center;justify-content:flex-end}.mud-picker .mud-picker-actions>:not(:first-child){margin-left:8px;margin-inline-start:8px;margin-inline-end:unset}.mud-picker-inline{display:flex;flex:1 1 auto;position:relative;max-width:100%}.mud-picker-inline.mud-picker-input-button .mud-input,.mud-picker-inline.mud-picker-input-button .mud-input .mud-input-root{cursor:pointer}.mud-picker-inline.mud-picker-input-button.mud-disabled .mud-input,.mud-picker-inline.mud-picker-input-button.mud-disabled .mud-input .mud-input-root{cursor:default}.mud-picker-inline.mud-picker-input-text{cursor:text}.mud-picker-inline.mud-picker-input-text:hover{cursor:text}.mud-picker-inline.mud-picker-input-text.mud-disabled{cursor:default}.mud-picker-inline.mud-picker-input-text.mud-disabled:hover{cursor:default}.mud-picker-static{display:flex;overflow:hidden;min-width:310px;flex-direction:column}.mud-picker-container{display:flex;flex-direction:column;border-radius:inherit}.mud-picker-container.mud-picker-container-landscape{flex-direction:row}.mud-picker-container .mud-toolbar{border-top-left-radius:inherit;border-top-right-radius:inherit}.mud-picker-popover-paper{outline:0;z-index:calc(var(--mud-zindex-popover) + 1);position:absolute;min-width:16px;min-height:16px;overflow-x:hidden;overflow-y:auto}.mud-picker-view{display:none}.mud-picker-view.mud-picker-open{display:block}.mud-picker-content{display:flex;max-width:100%;min-width:310px;min-height:305px;overflow:hidden;flex-direction:column;justify-content:center}.mud-picker-content.mud-picker-content-landscape{padding:0 8px}.mud-picker-toolbar{height:100px;display:flex;align-items:center;flex-direction:row;justify-content:center}.mud-picker-toolbar.mud-picker-toolbar-landscape{height:auto;padding:8px;max-width:150px;justify-content:flex-start}.mud-picker-toolbar.mud-button-root{padding:0;min-width:16px;text-transform:none}.mud-picker-inline-paper .mud-paper{position:relative !important}.mud-picker-hidden{visibility:hidden}.mud-picker-pos-top{top:0px;position:fixed;visibility:visible}.mud-picker-pos-top.mud-picker-pos-left{left:10px}.mud-picker-pos-top.mud-picker-pos-right{right:10px}.mud-picker-pos-above{bottom:0px;visibility:visible}.mud-picker-pos-above.mud-picker-pos-left{left:50%;transform:translateX(-50%)}.mud-picker-pos-above.mud-picker-pos-right{right:0px}.mud-picker-pos-bottom{bottom:10px;position:fixed;visibility:visible}.mud-picker-pos-bottom.mud-picker-pos-left{left:10px}.mud-picker-pos-bottom.mud-picker-pos-right{right:10px}.mud-picker-pos-below{visibility:visible}.mud-picker-pos-below.mud-picker-pos-left{left:50%;transform:translateX(-50%)}.mud-picker-pos-below.mud-picker-pos-right{right:0px}.mud-picker-datepicker-toolbar{align-items:flex-start;flex-direction:column}.mud-picker-datepicker-toolbar .mud-button-year{font-size:1rem;font-weight:400;line-height:1.75;letter-spacing:.00938em}.mud-picker-datepicker-toolbar .mud-button-date{font-size:2.125rem;font-weight:400;line-height:1.17;letter-spacing:.00735em;text-transform:none}.mud-picker-datepicker-toolbar-landscape{padding:16px}.mud-picker-datepicker-date-landscape{margin-right:16px;margin-inline-end:16px;margin-inline-start:unset}.mud-picker-calendar-header-switch{display:flex;margin-top:4px;align-items:center;margin-bottom:8px;justify-content:space-between}.mud-picker-calendar-header-switch>.mud-icon-button{z-index:1;padding:8px;margin:6px;background-color:var(--mud-palette-surface)}@media(hover: hover)and (pointer: fine){.mud-picker-calendar-header-switch>.mud-icon-button:hover{background-color:var(--mud-palette-action-default-hover)}}.mud-picker-calendar-header-switch .mud-picker-calendar-header-transition{width:100%;height:23px;overflow:hidden}@media(hover: hover)and (pointer: fine){.mud-picker-calendar-header-switch .mud-picker-calendar-header-transition:hover .mud-typography{cursor:pointer;font-weight:500}}.mud-picker-calendar-header-day{display:flex;max-height:16px;align-items:center;justify-content:center}.mud-picker-calendar-header-day .mud-day-label{color:var(--mud-palette-text-secondary);width:36px;margin:0 2px;text-align:center}.mud-picker-year-container{height:300px;overflow-y:auto}.mud-picker-year-container .mud-picker-year{cursor:pointer;height:40px;display:flex;outline:none;align-items:center;justify-content:center;user-select:none;animation:mud-animation-fadein 500ms;transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}@media(hover: hover)and (pointer: fine){.mud-picker-year-container .mud-picker-year:hover{background-color:var(--mud-palette-action-default-hover)}}.mud-picker-year-container .mud-picker-year .mud-picker-year-selected{margin:10px 0;font-weight:500}.mud-picker-month-container{width:310px;display:flex;flex-wrap:wrap;align-content:stretch}.mud-picker-month-container .mud-picker-month{flex:1 0 33.33%;cursor:pointer;height:60px;display:flex;outline:none;align-items:center;justify-content:center;transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}@media(hover: hover)and (pointer: fine){.mud-picker-month-container .mud-picker-month:hover{background-color:var(--mud-palette-action-default-hover)}}.mud-picker-month-container .mud-picker-month .mud-picker-month-selected{font-weight:500}.mud-picker-month-container .mud-picker-month.mud-disabled{color:var(--mud-palette-text-disabled);pointer-events:none}.mud-picker-slide-transition{display:block;position:relative}.mud-picker-slide-transition>*{top:0;left:0;right:0;position:absolute}.mud-picker-calendar-transition{margin-top:12px;min-height:216px}.mud-picker-calendar-progress-container{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.mud-picker-calendar-content{display:grid;--selected-day: 0;grid-column-gap:10px;grid-template-columns:auto}@media(min-width: 600px){.mud-picker-calendar-content:not(.mud-picker-calendar-content-1){grid-template-columns:repeat(2, minmax(auto, 1fr))}.mud-picker-calendar-content:not(.mud-picker-calendar-content-1) .mud-picker-calendar-header-1 .mud-picker-nav-button-next,.mud-picker-calendar-content:not(.mud-picker-calendar-content-1) .mud-picker-calendar-header-3 .mud-picker-nav-button-next,.mud-picker-calendar-content:not(.mud-picker-calendar-content-1) .mud-picker-calendar-header-5 .mud-picker-nav-button-next,.mud-picker-calendar-content:not(.mud-picker-calendar-content-1) .mud-picker-calendar-header-7 .mud-picker-nav-button-next,.mud-picker-calendar-content:not(.mud-picker-calendar-content-1) .mud-picker-calendar-header-9 .mud-picker-nav-button-next,.mud-picker-calendar-content:not(.mud-picker-calendar-content-1) .mud-picker-calendar-header-11 .mud-picker-nav-button-next{visibility:hidden}.mud-picker-calendar-content:not(.mud-picker-calendar-content-1) .mud-picker-calendar-header-1 .mud-picker-nav-button-prev,.mud-picker-calendar-content:not(.mud-picker-calendar-content-1) .mud-picker-calendar-header-3 .mud-picker-nav-button-prev,.mud-picker-calendar-content:not(.mud-picker-calendar-content-1) .mud-picker-calendar-header-5 .mud-picker-nav-button-prev,.mud-picker-calendar-content:not(.mud-picker-calendar-content-1) .mud-picker-calendar-header-7 .mud-picker-nav-button-prev,.mud-picker-calendar-content:not(.mud-picker-calendar-content-1) .mud-picker-calendar-header-9 .mud-picker-nav-button-prev,.mud-picker-calendar-content:not(.mud-picker-calendar-content-1) .mud-picker-calendar-header-11 .mud-picker-nav-button-prev{visibility:visible}.mud-picker-calendar-content:not(.mud-picker-calendar-content-1) .mud-picker-calendar-header-2 .mud-picker-nav-button-next,.mud-picker-calendar-content:not(.mud-picker-calendar-content-1) .mud-picker-calendar-header-4 .mud-picker-nav-button-next,.mud-picker-calendar-content:not(.mud-picker-calendar-content-1) .mud-picker-calendar-header-6 .mud-picker-nav-button-next,.mud-picker-calendar-content:not(.mud-picker-calendar-content-1) .mud-picker-calendar-header-8 .mud-picker-nav-button-next,.mud-picker-calendar-content:not(.mud-picker-calendar-content-1) .mud-picker-calendar-header-10 .mud-picker-nav-button-next,.mud-picker-calendar-content:not(.mud-picker-calendar-content-1) .mud-picker-calendar-header-12 .mud-picker-nav-button-next{visibility:visible}.mud-picker-calendar-content:not(.mud-picker-calendar-content-1) .mud-picker-calendar-header-2 .mud-picker-nav-button-prev,.mud-picker-calendar-content:not(.mud-picker-calendar-content-1) .mud-picker-calendar-header-4 .mud-picker-nav-button-prev,.mud-picker-calendar-content:not(.mud-picker-calendar-content-1) .mud-picker-calendar-header-6 .mud-picker-nav-button-prev,.mud-picker-calendar-content:not(.mud-picker-calendar-content-1) .mud-picker-calendar-header-8 .mud-picker-nav-button-prev,.mud-picker-calendar-content:not(.mud-picker-calendar-content-1) .mud-picker-calendar-header-10 .mud-picker-nav-button-prev,.mud-picker-calendar-content:not(.mud-picker-calendar-content-1) .mud-picker-calendar-header-12 .mud-picker-nav-button-prev{visibility:hidden}}@media(min-width: 960px){.mud-picker-calendar-content:not(.mud-picker-calendar-content-1):not(.mud-picker-calendar-content-2){grid-template-columns:repeat(3, minmax(auto, 1fr))}.mud-picker-calendar-content:not(.mud-picker-calendar-content-1):not(.mud-picker-calendar-content-2) .mud-picker-calendar-header-1 .mud-picker-nav-button-next,.mud-picker-calendar-content:not(.mud-picker-calendar-content-1):not(.mud-picker-calendar-content-2) .mud-picker-calendar-header-4 .mud-picker-nav-button-next,.mud-picker-calendar-content:not(.mud-picker-calendar-content-1):not(.mud-picker-calendar-content-2) .mud-picker-calendar-header-7 .mud-picker-nav-button-next,.mud-picker-calendar-content:not(.mud-picker-calendar-content-1):not(.mud-picker-calendar-content-2) .mud-picker-calendar-header-10 .mud-picker-nav-button-next{visibility:hidden}.mud-picker-calendar-content:not(.mud-picker-calendar-content-1):not(.mud-picker-calendar-content-2) .mud-picker-calendar-header-1 .mud-picker-nav-button-prev,.mud-picker-calendar-content:not(.mud-picker-calendar-content-1):not(.mud-picker-calendar-content-2) .mud-picker-calendar-header-4 .mud-picker-nav-button-prev,.mud-picker-calendar-content:not(.mud-picker-calendar-content-1):not(.mud-picker-calendar-content-2) .mud-picker-calendar-header-7 .mud-picker-nav-button-prev,.mud-picker-calendar-content:not(.mud-picker-calendar-content-1):not(.mud-picker-calendar-content-2) .mud-picker-calendar-header-10 .mud-picker-nav-button-prev{visibility:visible}.mud-picker-calendar-content:not(.mud-picker-calendar-content-1):not(.mud-picker-calendar-content-2) .mud-picker-calendar-header-2 .mud-picker-nav-button-next,.mud-picker-calendar-content:not(.mud-picker-calendar-content-1):not(.mud-picker-calendar-content-2) .mud-picker-calendar-header-2 .mud-picker-nav-button-prev,.mud-picker-calendar-content:not(.mud-picker-calendar-content-1):not(.mud-picker-calendar-content-2) .mud-picker-calendar-header-5 .mud-picker-nav-button-next,.mud-picker-calendar-content:not(.mud-picker-calendar-content-1):not(.mud-picker-calendar-content-2) .mud-picker-calendar-header-5 .mud-picker-nav-button-prev,.mud-picker-calendar-content:not(.mud-picker-calendar-content-1):not(.mud-picker-calendar-content-2) .mud-picker-calendar-header-8 .mud-picker-nav-button-next,.mud-picker-calendar-content:not(.mud-picker-calendar-content-1):not(.mud-picker-calendar-content-2) .mud-picker-calendar-header-8 .mud-picker-nav-button-prev,.mud-picker-calendar-content:not(.mud-picker-calendar-content-1):not(.mud-picker-calendar-content-2) .mud-picker-calendar-header-11 .mud-picker-nav-button-next,.mud-picker-calendar-content:not(.mud-picker-calendar-content-1):not(.mud-picker-calendar-content-2) .mud-picker-calendar-header-11 .mud-picker-nav-button-prev{visibility:hidden}.mud-picker-calendar-content:not(.mud-picker-calendar-content-1):not(.mud-picker-calendar-content-2) .mud-picker-calendar-header-3 .mud-picker-nav-button-next,.mud-picker-calendar-content:not(.mud-picker-calendar-content-1):not(.mud-picker-calendar-content-2) .mud-picker-calendar-header-6 .mud-picker-nav-button-next,.mud-picker-calendar-content:not(.mud-picker-calendar-content-1):not(.mud-picker-calendar-content-2) .mud-picker-calendar-header-9 .mud-picker-nav-button-next,.mud-picker-calendar-content:not(.mud-picker-calendar-content-1):not(.mud-picker-calendar-content-2) .mud-picker-calendar-header-12 .mud-picker-nav-button-next{visibility:visible}.mud-picker-calendar-content:not(.mud-picker-calendar-content-1):not(.mud-picker-calendar-content-2) .mud-picker-calendar-header-3 .mud-picker-nav-button-prev,.mud-picker-calendar-content:not(.mud-picker-calendar-content-1):not(.mud-picker-calendar-content-2) .mud-picker-calendar-header-6 .mud-picker-nav-button-prev,.mud-picker-calendar-content:not(.mud-picker-calendar-content-1):not(.mud-picker-calendar-content-2) .mud-picker-calendar-header-9 .mud-picker-nav-button-prev,.mud-picker-calendar-content:not(.mud-picker-calendar-content-1):not(.mud-picker-calendar-content-2) .mud-picker-calendar-header-12 .mud-picker-nav-button-prev{visibility:hidden}}:not(.mud-picker-hidden) .mud-picker-calendar-header-last .mud-picker-nav-button-next{visibility:inherit !important}.mud-picker-hidden .mud-picker-nav-button-next,.mud-picker-hidden .mud-picker-nav-button-prev{visibility:hidden !important}.mud-picker-calendar-container{display:flex;width:310px;flex-direction:column}.mud-picker-calendar{display:flex;flex-wrap:wrap;justify-content:center}.mud-picker-calendar .mud-day{color:var(--mud-palette-text-primary);width:36px;height:36px;margin:0 2px;padding:0;font-size:.75rem;font-weight:500}@media(hover: hover)and (pointer: fine){.mud-picker-calendar .mud-day:hover{background-color:var(--mud-palette-action-default-hover)}}.mud-picker-calendar .mud-day.mud-hidden{opacity:0;pointer-events:none}.mud-picker-calendar .mud-day.mud-current{font-weight:600}.mud-picker-calendar .mud-day.mud-selected{font-weight:500}.mud-picker-calendar .mud-day .mud-typography{margin-top:2px}.mud-picker-calendar .mud-day.mud-disabled{color:var(--mud-palette-text-disabled);pointer-events:none}.mud-picker-calendar .mud-day.mud-range{margin:0;width:40px;transition:none}.mud-picker-calendar .mud-day.mud-range.mud-range-start-selected{border-radius:50% 0% 0% 50%}.mud-picker-calendar .mud-day.mud-range.mud-range-end-selected{border-radius:0% 50% 50% 0%}.mud-picker-calendar .mud-day.mud-range.mud-range-between{border-radius:0;background-color:var(--mud-palette-action-default-hover)}@media(hover: hover)and (pointer: fine){.mud-picker-calendar .mud-day.mud-range.mud-range-selection:hover.mud-range-start-selected{border-radius:50%}.mud-picker-calendar .mud-day.mud-range.mud-range-selection:hover:not(.mud-range-start-selected){border-radius:0% 50% 50% 0%}}.mud-picker-calendar .mud-day.mud-range.mud-range-selection:not(:hover):not(.mud-range-start-selected){border-radius:0;background:linear-gradient(var(--mud-palette-action-default-hover) 100%, var(--mud-palette-action-default-hover) 100%, transparent 0%);background-size:100% calc(100%*(var(--selected-day) - var(--day-id)))}@media(hover: hover)and (pointer: fine){.mud-range-selection-primary:hover{color:var(--mud-palette-primary-text) !important;background-color:var(--mud-palette-primary) !important}}@media(hover: hover)and (pointer: fine){.mud-range-selection-secondary:hover{color:var(--mud-palette-secondary-text) !important;background-color:var(--mud-palette-secondary) !important}}@media(hover: hover)and (pointer: fine){.mud-range-selection-tertiary:hover{color:var(--mud-palette-tertiary-text) !important;background-color:var(--mud-palette-tertiary) !important}}@media(hover: hover)and (pointer: fine){.mud-range-selection-info:hover{color:var(--mud-palette-info-text) !important;background-color:var(--mud-palette-info) !important}}@media(hover: hover)and (pointer: fine){.mud-range-selection-success:hover{color:var(--mud-palette-success-text) !important;background-color:var(--mud-palette-success) !important}}@media(hover: hover)and (pointer: fine){.mud-range-selection-warning:hover{color:var(--mud-palette-warning-text) !important;background-color:var(--mud-palette-warning) !important}}@media(hover: hover)and (pointer: fine){.mud-range-selection-error:hover{color:var(--mud-palette-error-text) !important;background-color:var(--mud-palette-error) !important}}@media(hover: hover)and (pointer: fine){.mud-range-selection-dark:hover{color:var(--mud-palette-dark-text) !important;background-color:var(--mud-palette-dark) !important}}.mud-picker-calendar-week{display:flex;margin:0 5px;justify-content:center;align-items:center}.mud-picker-calendar-week .mud-picker-calendar-week-text{width:15px;margin-top:2px !important;color:var(--mud-palette-text-disabled)}.mud-application-layout-rtl .mud-picker-calendar .mud-day.mud-range.mud-range-start-selected{border-radius:0% 50% 50% 0%}.mud-application-layout-rtl .mud-picker-calendar .mud-day.mud-range.mud-range-end-selected{border-radius:50% 0% 0% 50%}@media(hover: hover)and (pointer: fine){.mud-application-layout-rtl .mud-picker-calendar .mud-day.mud-range.mud-range-selection:hover:not(.mud-range-start-selected){border-radius:50% 0% 0% 50%}}.mud-picker-timepicker-toolbar .mud-timepicker-button{padding:0;min-width:16px;text-transform:none}.mud-picker-timepicker-toolbar .mud-timepicker-button.mud-timepicker-toolbar-text{color:hsla(0,0%,100%,.54)}@media(hover: hover)and (pointer: fine){.mud-picker-timepicker-toolbar .mud-timepicker-button:hover{background-color:var(--mud-theme-default-hover)}}.mud-picker-timepicker-toolbar .mud-timepicker-hourminute{display:flex;align-items:baseline;justify-content:flex-end}.mud-picker-timepicker-toolbar .mud-timepicker-hourminute .mud-timepicker-button{font-size:3.75rem;font-weight:300;line-height:1;letter-spacing:-0.00833em}.mud-picker-timepicker-toolbar .mud-timepicker-ampm{display:flex;margin-left:20px;margin-right:-20px;margin-inline-start:20px;margin-inline-end:-20px;flex-direction:column}.mud-picker-timepicker-toolbar .mud-timepicker-ampm .mud-timepicker-button{font-size:18px;font-weight:400;line-height:1.75;letter-spacing:.00938em}.mud-picker-timepicker-toolbar .mud-timepicker-separator{cursor:default;margin:0 4px 0 2px;margin-inline-start:2px;margin-inline-end:4px}.mud-picker-timepicker-toolbar.mud-picker-timepicker-toolbar-landscape{flex-wrap:wrap;width:150px;justify-content:center}.mud-picker-timepicker-toolbar.mud-picker-timepicker-toolbar-landscape .mud-timepicker-hourminute .mud-timepicker-button{font-size:3rem;font-weight:400;line-height:1.04;letter-spacing:0em}.mud-picker-timepicker-toolbar.mud-picker-timepicker-toolbar-landscape .mud-timepicker-ampm{display:flex;margin-left:20px;margin-right:-20px;margin-inline-start:20px;margin-inline-end:-20px;flex-direction:column}.mud-picker-timepicker-toolbar.mud-picker-timepicker-toolbar-landscape .mud-timepicker-ampm .mud-timepicker-button{font-size:18px;font-weight:400;line-height:1.75;letter-spacing:.00938em}.mud-picker-timepicker-toolbar.mud-picker-timepicker-toolbar-landscape .mud-timepicker-separator{font-size:3rem;font-weight:400;line-height:1.04;letter-spacing:0em}.mud-picker-time-container{margin:16px 0 8px;display:flex;align-items:flex-end;justify-content:center}.mud-picker-time-container .mud-picker-time-clock{width:260px;height:260px;position:relative;border-radius:50%;pointer-events:none;touch-action:pinch-zoom;background-color:rgba(0,0,0,.07)}.mud-picker-time-container .mud-picker-time-clock .mud-picker-time-clock-mask{width:100%;height:100%;outline:none;position:absolute;user-select:none;pointer-events:auto}.mud-picker-time-container .mud-picker-time-clock .mud-picker-time-clock-pin{top:50%;left:50%;width:6px;height:6px;position:absolute;transform:translate(-50%, -50%);border-radius:50%}.mud-picker-time-container .mud-picker-time-clock .mud-picker-stick-inner{left:calc(50% - 1px);width:3px;height:35%;bottom:0;position:absolute;transform-origin:center bottom 0px}.mud-picker-time-container .mud-picker-time-clock .mud-picker-stick-inner.mud-hour:after{content:"";position:absolute;left:50%;transform:translate(-50%, -50%);height:48px;width:48px;top:-60%;border-radius:50%;background-color:inherit}.mud-picker-time-container .mud-picker-time-clock .mud-picker-stick-outer{left:calc(50% - 1px);width:0;height:35%;bottom:35%;position:absolute;transform-origin:center bottom 0px}.mud-picker-time-container .mud-picker-time-clock .mud-picker-stick-outer.mud-hour:after{content:"";position:absolute;left:50%;transform:translate(-50%, -50%);height:48px;width:62px;top:-20px;border-radius:50%;background-color:inherit}.mud-picker-time-container .mud-picker-time-clock .mud-picker-stick{left:calc(50% - 1px);width:3px;height:50%;bottom:50%;position:absolute;transform-origin:center bottom 0px}.mud-picker-time-container .mud-picker-time-clock .mud-picker-stick.mud-hour:after{content:"";position:absolute;left:50%;transform:translate(-50%, -50%);height:62px;width:62px;top:20px;border-radius:50%;background-color:inherit}.mud-picker-time-container .mud-picker-time-clock .mud-picker-stick.mud-minute:after{content:"";position:absolute;left:50%;transform:translate(-50%, -50%);height:44px;width:15px;top:20px;border-radius:50%;background-color:inherit}.mud-picker-time-container .mud-picker-time-clock .mud-picker-time-clock-pointer{left:calc(50% - 1px);width:2px;bottom:50%;position:absolute;transform-origin:center bottom 0px}.mud-picker-time-container .mud-picker-time-clock .mud-picker-time-clock-pointer.mud-picker-time-clock-pointer-animation{transition:transform 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,height 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}.mud-picker-time-container .mud-picker-time-clock .mud-picker-time-clock-pointer .mud-picker-time-clock-pointer-thumb{position:absolute;border-radius:100%}.mud-picker-time-container .mud-picker-time-clock .mud-picker-time-clock-pointer .mud-picker-time-clock-pointer-thumb.mud-onclock-text{top:-19px;left:-13px;width:28px;height:28px;border:none;background-color:inherit}.mud-picker-time-container .mud-picker-time-clock .mud-picker-time-clock-pointer .mud-picker-time-clock-pointer-thumb.mud-onclock-minute{background:rgba(0,0,0,0);border:2px solid;width:10px;height:10px;top:-9px;left:-4px}.mud-picker-time-container .mud-picker-time-clock .mud-clock-number{left:calc((100% - 32px)/2);color:var(--mud-palette-text-primary);background-color:rgba(0,0,0,0) !important;width:32px;height:32px;display:inline-flex;position:absolute;align-items:center;user-select:none;border-radius:50%;justify-content:center;transition-duration:120ms;transition-property:color}.mud-time-picker-dial{width:100%;height:100%;position:absolute;transition:transform 350ms,opacity 350ms}.mud-time-picker-dial-out{opacity:0}.mud-time-picker-hour.mud-time-picker-dial-out{transform:scale(1.2, 1.2);transform-origin:center}.mud-time-picker-minute.mud-time-picker-dial-out{transform:scale(0.8, 0.8);transform-origin:center}.mud-time-picker-dial-hidden{visibility:hidden}.mud-picker-container+.mud-picker-color-toolbar{border-top-left-radius:inherit;border-top-right-radius:inherit}.mud-picker-container+.mud-picker-color-content{border-top-left-radius:inherit;border-top-right-radius:inherit}.mud-picker-color-toolbar{height:32px;padding-right:2px;padding-left:2px}.mud-picker-color-content{min-height:unset;position:relative}.mud-picker-color-picker{width:312px;height:250px;position:relative;overflow:hidden;touch-action:pinch-zoom}.mud-picker-color-picker .mud-picker-color-overlay{width:100%;height:100%;user-select:none}.mud-picker-color-picker .mud-picker-color-overlay.mud-picker-color-overlay-white{background:linear-gradient(to right, white 0%, rgba(255, 255, 255, 0) 100%)}.mud-picker-color-picker .mud-picker-color-overlay.mud-picker-color-overlay-black{background:linear-gradient(to bottom, rgba(0, 0, 0, 0) 0%, black 100%)}.mud-picker-color-picker .mud-picker-color-selector{position:absolute;top:-13px;left:-13px;pointer-events:none}.mud-picker-color-picker .mud-picker-color-grid{display:flex;flex-wrap:wrap}.mud-picker-color-picker .mud-picker-color-grid .mud-picker-color-dot{height:25px;min-width:26px;max-width:26px;border-radius:0px;box-shadow:none}.mud-picker-color-controls{width:312px;padding:16px;display:flex;flex-direction:column}.mud-picker-color-controls .mud-picker-color-controls-row{display:flex;align-items:center}.mud-picker-color-controls .mud-picker-color-controls-row+.mud-picker-color-controls-row{margin-top:24px}.mud-picker-color-controls .mud-picker-color-controls-row .mud-picker-color-sliders{display:flex;flex:1 0 auto;flex-direction:column}.mud-picker-color-controls .mud-picker-color-controls-row .mud-picker-color-sliders .mud-picker-color-slider{min-width:224px;border-radius:var(--mud-default-borderradius)}.mud-picker-color-controls .mud-picker-color-controls-row .mud-picker-color-sliders .mud-picker-color-slider .mud-slider-input{height:10px;border-radius:var(--mud-default-borderradius)}.mud-picker-color-controls .mud-picker-color-controls-row .mud-picker-color-sliders .mud-picker-color-slider .mud-slider-input::-webkit-slider-runnable-track{background:initial}.mud-picker-color-controls .mud-picker-color-controls-row .mud-picker-color-sliders .mud-picker-color-slider .mud-slider-input::-moz-range-track{background:initial}.mud-picker-color-controls .mud-picker-color-controls-row .mud-picker-color-sliders .mud-picker-color-slider .mud-slider-input::-webkit-slider-thumb{appearance:none;margin-top:-6px;height:14px;width:14px;transform:none;transition:none;background:#f0f0f0;box-shadow:rgba(0,0,0,.37) 0px 1px 4px 0px}.mud-picker-color-controls .mud-picker-color-controls-row .mud-picker-color-sliders .mud-picker-color-slider .mud-slider-input::-moz-range-thumb{appearance:none;margin-top:-6px;height:14px;width:14px;transform:none;transition:none;background:#f0f0f0;box-shadow:rgba(0,0,0,.37) 0px 1px 4px 0px}.mud-picker-color-controls .mud-picker-color-controls-row .mud-picker-color-sliders .mud-picker-color-slider .mud-slider-input:active::-webkit-slider-thumb{box-shadow:0 0 0 2px var(--mud-palette-action-default-hover) !important}.mud-picker-color-controls .mud-picker-color-controls-row .mud-picker-color-sliders .mud-picker-color-slider .mud-slider-input:active::-moz-range-thumb{box-shadow:0 0 0 2px var(--mud-palette-action-default-hover) !important}.mud-picker-color-controls .mud-picker-color-controls-row .mud-picker-color-sliders .mud-picker-color-slider.hue+.alpha{margin-top:18px}.mud-picker-color-controls .mud-picker-color-controls-row .mud-picker-color-sliders .mud-picker-color-slider.hue .mud-slider-input{background:linear-gradient(90deg, #FF0000, #ff0 16.66%, #0f0 33.33%, #0ff 50%, #00f 66.66%, #f0f 83.33%, #FF0000)}.mud-picker-color-controls .mud-picker-color-controls-row .mud-picker-color-sliders .mud-picker-color-slider.alpha .mud-slider-input{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAGElEQVQYlWNgYGCQwoKxgqGgcJA5h3yFAAs8BRWVSwooAAAAAElFTkSuQmCC) repeat}.mud-picker-color-controls .mud-picker-color-controls-row .mud-picker-color-inputs{display:flex;flex:1 1 auto}.mud-picker-color-controls .mud-picker-color-controls-row .mud-picker-color-inputs .mud-picker-color-inputfield{width:100%;margin-right:8px;margin-inline-end:8px;margin-inline-start:unset}.mud-picker-color-controls .mud-picker-color-controls-row .mud-picker-color-inputs .mud-picker-color-inputfield:last-of-type{margin-right:0;margin-inline-end:0;margin-inline-start:unset}.mud-picker-color-controls .mud-picker-color-controls-row .mud-picker-color-inputs .mud-picker-color-inputfield .mud-input input{padding:6px;height:1em;text-align:center;font-size:14px}.mud-picker-color-controls .mud-picker-color-controls-row .mud-picker-color-inputs .mud-picker-color-inputfield .mud-input-helper-text{text-align:center}.mud-picker-color-controls .mud-picker-color-controls-row .mud-picker-color-inputs .mud-picker-color-inputfield .mud-input-helper-text div div{margin:auto}.mud-picker-color-controls .mud-picker-color-controls-row .mud-picker-control-switch{margin-left:8px;margin-inline-start:8px;margin-inline-end:unset;padding-bottom:16px}.mud-picker-color-controls .mud-picker-color-controls-row .mud-picker-color-collection{display:flex;min-width:230px;justify-content:space-between}.mud-picker-color-controls .mud-picker-color-controls-row .mud-picker-color-collection .mud-picker-color-dot{max-width:38px}.mud-picker-color-dot{height:38px;min-width:38px;width:100%;transition:background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border-radius 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;border-radius:var(--mud-default-borderradius);box-shadow:0 0 6px rgba(127,130,134,.18)}@media(hover: hover)and (pointer: fine){.mud-picker-color-dot:hover{cursor:pointer;box-shadow:0px 3px 1px -2px rgba(0,0,0,.2),0px 2px 2px 0px rgba(0,0,0,.14),0px 1px 5px 0px rgba(0,0,0,.12)}}.mud-picker-color-dot.mud-picker-color-dot-current{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAGElEQVQYlWNgYGCQwoKxgqGgcJA5h3yFAAs8BRWVSwooAAAAAElFTkSuQmCC) repeat}.mud-picker-color-dot .mud-picker-color-fill{width:100%;height:100%;border-radius:inherit}.mud-picker-color-dot+.mud-picker-color-sliders{margin-left:16px;margin-inline-start:16px;margin-inline-end:unset}.mud-picker-color-dot+.mud-picker-color-collection{margin-left:10px;margin-inline-start:10px;margin-inline-end:unset}.mud-picker-color-view{position:absolute;width:100%;height:100%;overflow:auto;padding:6px;background-color:var(--mud-palette-surface)}.mud-picker-color-view .mud-picker-color-view-collection{display:flex;flex-wrap:wrap;justify-content:space-evenly}.mud-picker-color-view .mud-picker-color-view-collection .mud-picker-color-dot{max-width:38px;margin:8px}.mud-picker-color-view .mud-picker-color-view-collection .mud-picker-color-dot.selected{border-radius:50%;box-shadow:0px 3px 1px -2px rgba(0,0,0,.2),0px 2px 2px 0px rgba(0,0,0,.14),0px 1px 5px 0px rgba(0,0,0,.12)}.mud-popover{outline:0;z-index:calc(var(--mud-zindex-popover) + 1);position:absolute;opacity:0;top:-9999px;left:-9999px}.mud-popover.mud-popover-fixed{position:fixed}.mud-popover.mud-popover-relative-width{width:100%}.mud-popover.mud-popover-open{opacity:1;transition:opacity}.mud-popover:not(.mud-popover-open){pointer-events:none;transition-duration:0ms !important;transition-delay:0ms !important}.mud-popover:empty{box-shadow:none !important}.mud-popover .mud-list{max-height:inherit;overflow-y:auto}.mud-popover .mud-popover{z-index:auto}.mud-appbar .mud-popover-cascading-value{z-index:calc(var(--mud-zindex-appbar) + 2)}.mud-drawer:not(.mud-drawer-temporary) .mud-popover-cascading-value{z-index:calc(var(--mud-zindex-drawer) + 2)}.mud-drawer.mud-drawer-temporary .mud-popover-cascading-value,.mud-drawer.mud-drawer-responsive .mud-popover-cascading-value{z-index:calc(var(--mud-zindex-appbar) + 4)}.mud-dialog .mud-popover-cascading-value{z-index:calc(var(--mud-zindex-dialog) + 3)}.mud-select .mud-popover-cascading-value{z-index:calc(var(--mud-zindex-select) + 5)}.mud-simple-table table{width:100%;display:table;border-spacing:0;border-collapse:collapse}.mud-simple-table table thead{display:table-header-group}.mud-simple-table table tbody{display:table-row-group}.mud-simple-table table tbody>tr:last-child>td{border-bottom:none}.mud-simple-table table * tr{color:inherit;display:table-row;outline:0;vertical-align:middle}.mud-simple-table table * tr>td,.mud-simple-table table * tr th{display:table-cell;padding:16px;font-size:.875rem;text-align:start;font-weight:400;line-height:1.43;border-bottom:1px solid var(--mud-palette-table-lines);letter-spacing:.01071em;vertical-align:inherit}.mud-simple-table table * tr>th{font-weight:500;line-height:1.5rem}.mud-simple-table.mud-table-dense * tr td,.mud-simple-table.mud-table-dense * tr th{padding:6px 16px}@media(hover: hover)and (pointer: fine){.mud-simple-table.mud-table-hover .mud-table-container table tbody tr:hover{background-color:var(--mud-palette-table-hover)}}.mud-simple-table.mud-table-bordered .mud-table-container table tbody tr td{border-right:1px solid var(--mud-palette-table-lines)}.mud-simple-table.mud-table-bordered .mud-table-container table tbody tr td:last-child{border-right:none}.mud-simple-table.mud-table-striped .mud-table-container table tbody tr:nth-of-type(odd){background-color:var(--mud-palette-table-striped)}@media(hover: hover)and (pointer: fine){.mud-table-hover.mud-table-striped .mud-table-container table tbody tr:nth-of-type(odd):nth-of-type(odd):hover{background-color:var(--mud-palette-table-hover)}}.mud-simple-table.mud-table-sticky-header .mud-table-container{overflow-x:auto;max-height:100%}.mud-simple-table.mud-table-sticky-header * table{border-collapse:separate}.mud-simple-table.mud-table-sticky-header * table thead * th:first-child{border-radius:var(--mud-default-borderradius) 0 0 0}.mud-simple-table.mud-table-sticky-header * table thead * th:last-child{border-radius:0 var(--mud-default-borderradius) 0 0}.mud-simple-table.mud-table-sticky-header * table thead * th{background-color:var(--mud-palette-surface);position:sticky;z-index:1;top:0}.mud-simple-table.mud-table-sticky-footer .mud-table-container{overflow-x:auto;max-height:100%}.mud-simple-table.mud-table-sticky-footer * table{border-collapse:separate}.mud-simple-table.mud-table-sticky-footer * table tfoot * td{background-color:var(--mud-palette-surface);position:sticky;z-index:1;bottom:0}.mud-skeleton{height:1.2em;display:block;background-color:var(--mud-palette-skeleton)}.mud-skeleton-text{height:auto;transform:scale(1, 0.6);margin-top:0;border-radius:var(--mud-default-borderradius);margin-bottom:0;transform-origin:0 60%}.mud-skeleton-text:empty:before{content:" "}.mud-skeleton-circle{border-radius:50%}.mud-skeleton-pulse{animation:mud-skeleton-keyframes-pulse 1.5s ease-in-out .5s infinite}.mud-skeleton-wave{overflow:hidden;position:relative}.mud-skeleton-wave::after{top:0;left:0;right:0;bottom:0;content:"";position:absolute;animation:mud-skeleton-keyframes-wave 1.6s linear .5s infinite;transform:translateX(-100%);background:linear-gradient(90deg, transparent, rgba(0, 0, 0, 0.04), transparent)}.mud-slider{color:var(--mud-palette-text-primary);display:inline-block;width:100%;user-select:none;touch-action:pinch-zoom}.mud-slider>.mud-typography{margin-top:10px}.mud-slider.mud-slider-vertical{transform:rotate(270deg);height:100%;width:unset}.mud-slider .mud-slider-input{-webkit-appearance:none;-moz-appearance:none;position:relative;display:block;width:100%;background-color:rgba(0,0,0,0);cursor:pointer}.mud-slider .mud-slider-input:focus{outline:none}.mud-slider .mud-slider-input:active+.mud-slider-value-label{opacity:1}.mud-slider .mud-slider-input::-webkit-slider-runnable-track{border-radius:var(--mud-default-borderradius);width:100%}.mud-slider .mud-slider-input::-moz-range-track{border-radius:var(--mud-default-borderradius);width:100%}.mud-slider .mud-slider-input::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;border:none;border-radius:50%;cursor:pointer;transition:box-shadow 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}.mud-slider .mud-slider-input::-moz-range-thumb{appearance:none;-webkit-appearance:none;border:none;border-radius:50%;cursor:pointer;transition:box-shadow 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}.mud-slider .mud-slider-input:disabled{cursor:default;opacity:.38}.mud-slider .mud-slider-input:disabled::-webkit-slider-runnable-track{background-color:var(--mud-palette-text-disabled)}.mud-slider .mud-slider-input:disabled::-moz-range-track{background-color:var(--mud-palette-text-disabled)}.mud-slider .mud-slider-input:disabled::-webkit-slider-thumb{background-color:#000;color:#fff;box-shadow:0 0 0 1px #fff !important;transform:scale(4, 4)}@media(hover: hover)and (pointer: fine){.mud-slider .mud-slider-input:disabled::-webkit-slider-thumb:hover{box-shadow:0 0 0 1px #fff !important}}.mud-slider .mud-slider-input:disabled::-moz-range-thumb{background-color:#000;color:#fff;box-shadow:0 0 0 1px #fff !important;transform:scale(4, 4)}@media(hover: hover)and (pointer: fine){.mud-slider .mud-slider-input:disabled::-moz-range-thumb:hover{box-shadow:0 0 0 1px #fff !important}}.mud-slider.mud-slider-primary .mud-slider-filled{background-color:var(--mud-palette-primary)}.mud-slider.mud-slider-primary .mud-slider-track-tick{background-color:var(--mud-palette-primary)}.mud-slider.mud-slider-primary .mud-slider-value-label{color:var(--mud-palette-primary-text);background-color:var(--mud-palette-primary)}.mud-slider.mud-slider-primary .mud-slider-input::-webkit-slider-runnable-track{background-color:rgba(var(--mud-palette-primary-rgb), 0.3)}.mud-slider.mud-slider-primary .mud-slider-input::-moz-range-track{background-color:rgba(var(--mud-palette-primary-rgb), 0.3)}.mud-slider.mud-slider-primary .mud-slider-input::-webkit-slider-thumb{background-color:var(--mud-palette-primary);box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-primary-rgb), 0.3)}.mud-slider.mud-slider-primary .mud-slider-input::-moz-range-thumb{background-color:var(--mud-palette-primary);box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-primary-rgb), 0.3)}@media(hover: hover)and (pointer: fine){.mud-slider.mud-slider-primary .mud-slider-input::-webkit-slider-thumb:hover{box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-primary-rgb), 0.3),0 0 0 1px rgba(var(--mud-palette-primary-rgb), 0.24)}}@media(hover: hover)and (pointer: fine){.mud-slider.mud-slider-primary .mud-slider-input::-moz-range-thumb:hover{box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-primary-rgb), 0.3),0 0 0 1px rgba(var(--mud-palette-primary-rgb), 0.24)}}.mud-slider.mud-slider-primary .mud-slider-input:focus-visible::-webkit-slider-thumb,.mud-slider.mud-slider-primary .mud-slider-input:active::-webkit-slider-thumb{box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-primary-rgb), 0.3),0 0 0 2px rgba(var(--mud-palette-primary-rgb), 0.24)}.mud-slider.mud-slider-primary .mud-slider-input:focus-visible::-moz-range-thumb,.mud-slider.mud-slider-primary .mud-slider-input:active::-moz-range-thumb{box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-primary-rgb), 0.3),0 0 0 2px rgba(var(--mud-palette-primary-rgb), 0.24)}.mud-slider.mud-slider-secondary .mud-slider-filled{background-color:var(--mud-palette-secondary)}.mud-slider.mud-slider-secondary .mud-slider-track-tick{background-color:var(--mud-palette-secondary)}.mud-slider.mud-slider-secondary .mud-slider-value-label{color:var(--mud-palette-secondary-text);background-color:var(--mud-palette-secondary)}.mud-slider.mud-slider-secondary .mud-slider-input::-webkit-slider-runnable-track{background-color:rgba(var(--mud-palette-secondary-rgb), 0.3)}.mud-slider.mud-slider-secondary .mud-slider-input::-moz-range-track{background-color:rgba(var(--mud-palette-secondary-rgb), 0.3)}.mud-slider.mud-slider-secondary .mud-slider-input::-webkit-slider-thumb{background-color:var(--mud-palette-secondary);box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-secondary-rgb), 0.3)}.mud-slider.mud-slider-secondary .mud-slider-input::-moz-range-thumb{background-color:var(--mud-palette-secondary);box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-secondary-rgb), 0.3)}@media(hover: hover)and (pointer: fine){.mud-slider.mud-slider-secondary .mud-slider-input::-webkit-slider-thumb:hover{box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-secondary-rgb), 0.3),0 0 0 1px rgba(var(--mud-palette-secondary-rgb), 0.24)}}@media(hover: hover)and (pointer: fine){.mud-slider.mud-slider-secondary .mud-slider-input::-moz-range-thumb:hover{box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-secondary-rgb), 0.3),0 0 0 1px rgba(var(--mud-palette-secondary-rgb), 0.24)}}.mud-slider.mud-slider-secondary .mud-slider-input:focus-visible::-webkit-slider-thumb,.mud-slider.mud-slider-secondary .mud-slider-input:active::-webkit-slider-thumb{box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-secondary-rgb), 0.3),0 0 0 2px rgba(var(--mud-palette-secondary-rgb), 0.24)}.mud-slider.mud-slider-secondary .mud-slider-input:focus-visible::-moz-range-thumb,.mud-slider.mud-slider-secondary .mud-slider-input:active::-moz-range-thumb{box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-secondary-rgb), 0.3),0 0 0 2px rgba(var(--mud-palette-secondary-rgb), 0.24)}.mud-slider.mud-slider-tertiary .mud-slider-filled{background-color:var(--mud-palette-tertiary)}.mud-slider.mud-slider-tertiary .mud-slider-track-tick{background-color:var(--mud-palette-tertiary)}.mud-slider.mud-slider-tertiary .mud-slider-value-label{color:var(--mud-palette-tertiary-text);background-color:var(--mud-palette-tertiary)}.mud-slider.mud-slider-tertiary .mud-slider-input::-webkit-slider-runnable-track{background-color:rgba(var(--mud-palette-tertiary-rgb), 0.3)}.mud-slider.mud-slider-tertiary .mud-slider-input::-moz-range-track{background-color:rgba(var(--mud-palette-tertiary-rgb), 0.3)}.mud-slider.mud-slider-tertiary .mud-slider-input::-webkit-slider-thumb{background-color:var(--mud-palette-tertiary);box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-tertiary-rgb), 0.3)}.mud-slider.mud-slider-tertiary .mud-slider-input::-moz-range-thumb{background-color:var(--mud-palette-tertiary);box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-tertiary-rgb), 0.3)}@media(hover: hover)and (pointer: fine){.mud-slider.mud-slider-tertiary .mud-slider-input::-webkit-slider-thumb:hover{box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-tertiary-rgb), 0.3),0 0 0 1px rgba(var(--mud-palette-tertiary-rgb), 0.24)}}@media(hover: hover)and (pointer: fine){.mud-slider.mud-slider-tertiary .mud-slider-input::-moz-range-thumb:hover{box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-tertiary-rgb), 0.3),0 0 0 1px rgba(var(--mud-palette-tertiary-rgb), 0.24)}}.mud-slider.mud-slider-tertiary .mud-slider-input:focus-visible::-webkit-slider-thumb,.mud-slider.mud-slider-tertiary .mud-slider-input:active::-webkit-slider-thumb{box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-tertiary-rgb), 0.3),0 0 0 2px rgba(var(--mud-palette-tertiary-rgb), 0.24)}.mud-slider.mud-slider-tertiary .mud-slider-input:focus-visible::-moz-range-thumb,.mud-slider.mud-slider-tertiary .mud-slider-input:active::-moz-range-thumb{box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-tertiary-rgb), 0.3),0 0 0 2px rgba(var(--mud-palette-tertiary-rgb), 0.24)}.mud-slider.mud-slider-info .mud-slider-filled{background-color:var(--mud-palette-info)}.mud-slider.mud-slider-info .mud-slider-track-tick{background-color:var(--mud-palette-info)}.mud-slider.mud-slider-info .mud-slider-value-label{color:var(--mud-palette-info-text);background-color:var(--mud-palette-info)}.mud-slider.mud-slider-info .mud-slider-input::-webkit-slider-runnable-track{background-color:rgba(var(--mud-palette-info-rgb), 0.3)}.mud-slider.mud-slider-info .mud-slider-input::-moz-range-track{background-color:rgba(var(--mud-palette-info-rgb), 0.3)}.mud-slider.mud-slider-info .mud-slider-input::-webkit-slider-thumb{background-color:var(--mud-palette-info);box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-info-rgb), 0.3)}.mud-slider.mud-slider-info .mud-slider-input::-moz-range-thumb{background-color:var(--mud-palette-info);box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-info-rgb), 0.3)}@media(hover: hover)and (pointer: fine){.mud-slider.mud-slider-info .mud-slider-input::-webkit-slider-thumb:hover{box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-info-rgb), 0.3),0 0 0 1px rgba(var(--mud-palette-info-rgb), 0.24)}}@media(hover: hover)and (pointer: fine){.mud-slider.mud-slider-info .mud-slider-input::-moz-range-thumb:hover{box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-info-rgb), 0.3),0 0 0 1px rgba(var(--mud-palette-info-rgb), 0.24)}}.mud-slider.mud-slider-info .mud-slider-input:focus-visible::-webkit-slider-thumb,.mud-slider.mud-slider-info .mud-slider-input:active::-webkit-slider-thumb{box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-info-rgb), 0.3),0 0 0 2px rgba(var(--mud-palette-info-rgb), 0.24)}.mud-slider.mud-slider-info .mud-slider-input:focus-visible::-moz-range-thumb,.mud-slider.mud-slider-info .mud-slider-input:active::-moz-range-thumb{box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-info-rgb), 0.3),0 0 0 2px rgba(var(--mud-palette-info-rgb), 0.24)}.mud-slider.mud-slider-success .mud-slider-filled{background-color:var(--mud-palette-success)}.mud-slider.mud-slider-success .mud-slider-track-tick{background-color:var(--mud-palette-success)}.mud-slider.mud-slider-success .mud-slider-value-label{color:var(--mud-palette-success-text);background-color:var(--mud-palette-success)}.mud-slider.mud-slider-success .mud-slider-input::-webkit-slider-runnable-track{background-color:rgba(var(--mud-palette-success-rgb), 0.3)}.mud-slider.mud-slider-success .mud-slider-input::-moz-range-track{background-color:rgba(var(--mud-palette-success-rgb), 0.3)}.mud-slider.mud-slider-success .mud-slider-input::-webkit-slider-thumb{background-color:var(--mud-palette-success);box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-success-rgb), 0.3)}.mud-slider.mud-slider-success .mud-slider-input::-moz-range-thumb{background-color:var(--mud-palette-success);box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-success-rgb), 0.3)}@media(hover: hover)and (pointer: fine){.mud-slider.mud-slider-success .mud-slider-input::-webkit-slider-thumb:hover{box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-success-rgb), 0.3),0 0 0 1px rgba(var(--mud-palette-success-rgb), 0.24)}}@media(hover: hover)and (pointer: fine){.mud-slider.mud-slider-success .mud-slider-input::-moz-range-thumb:hover{box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-success-rgb), 0.3),0 0 0 1px rgba(var(--mud-palette-success-rgb), 0.24)}}.mud-slider.mud-slider-success .mud-slider-input:focus-visible::-webkit-slider-thumb,.mud-slider.mud-slider-success .mud-slider-input:active::-webkit-slider-thumb{box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-success-rgb), 0.3),0 0 0 2px rgba(var(--mud-palette-success-rgb), 0.24)}.mud-slider.mud-slider-success .mud-slider-input:focus-visible::-moz-range-thumb,.mud-slider.mud-slider-success .mud-slider-input:active::-moz-range-thumb{box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-success-rgb), 0.3),0 0 0 2px rgba(var(--mud-palette-success-rgb), 0.24)}.mud-slider.mud-slider-warning .mud-slider-filled{background-color:var(--mud-palette-warning)}.mud-slider.mud-slider-warning .mud-slider-track-tick{background-color:var(--mud-palette-warning)}.mud-slider.mud-slider-warning .mud-slider-value-label{color:var(--mud-palette-warning-text);background-color:var(--mud-palette-warning)}.mud-slider.mud-slider-warning .mud-slider-input::-webkit-slider-runnable-track{background-color:rgba(var(--mud-palette-warning-rgb), 0.3)}.mud-slider.mud-slider-warning .mud-slider-input::-moz-range-track{background-color:rgba(var(--mud-palette-warning-rgb), 0.3)}.mud-slider.mud-slider-warning .mud-slider-input::-webkit-slider-thumb{background-color:var(--mud-palette-warning);box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-warning-rgb), 0.3)}.mud-slider.mud-slider-warning .mud-slider-input::-moz-range-thumb{background-color:var(--mud-palette-warning);box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-warning-rgb), 0.3)}@media(hover: hover)and (pointer: fine){.mud-slider.mud-slider-warning .mud-slider-input::-webkit-slider-thumb:hover{box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-warning-rgb), 0.3),0 0 0 1px rgba(var(--mud-palette-warning-rgb), 0.24)}}@media(hover: hover)and (pointer: fine){.mud-slider.mud-slider-warning .mud-slider-input::-moz-range-thumb:hover{box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-warning-rgb), 0.3),0 0 0 1px rgba(var(--mud-palette-warning-rgb), 0.24)}}.mud-slider.mud-slider-warning .mud-slider-input:focus-visible::-webkit-slider-thumb,.mud-slider.mud-slider-warning .mud-slider-input:active::-webkit-slider-thumb{box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-warning-rgb), 0.3),0 0 0 2px rgba(var(--mud-palette-warning-rgb), 0.24)}.mud-slider.mud-slider-warning .mud-slider-input:focus-visible::-moz-range-thumb,.mud-slider.mud-slider-warning .mud-slider-input:active::-moz-range-thumb{box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-warning-rgb), 0.3),0 0 0 2px rgba(var(--mud-palette-warning-rgb), 0.24)}.mud-slider.mud-slider-error .mud-slider-filled{background-color:var(--mud-palette-error)}.mud-slider.mud-slider-error .mud-slider-track-tick{background-color:var(--mud-palette-error)}.mud-slider.mud-slider-error .mud-slider-value-label{color:var(--mud-palette-error-text);background-color:var(--mud-palette-error)}.mud-slider.mud-slider-error .mud-slider-input::-webkit-slider-runnable-track{background-color:rgba(var(--mud-palette-error-rgb), 0.3)}.mud-slider.mud-slider-error .mud-slider-input::-moz-range-track{background-color:rgba(var(--mud-palette-error-rgb), 0.3)}.mud-slider.mud-slider-error .mud-slider-input::-webkit-slider-thumb{background-color:var(--mud-palette-error);box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-error-rgb), 0.3)}.mud-slider.mud-slider-error .mud-slider-input::-moz-range-thumb{background-color:var(--mud-palette-error);box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-error-rgb), 0.3)}@media(hover: hover)and (pointer: fine){.mud-slider.mud-slider-error .mud-slider-input::-webkit-slider-thumb:hover{box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-error-rgb), 0.3),0 0 0 1px rgba(var(--mud-palette-error-rgb), 0.24)}}@media(hover: hover)and (pointer: fine){.mud-slider.mud-slider-error .mud-slider-input::-moz-range-thumb:hover{box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-error-rgb), 0.3),0 0 0 1px rgba(var(--mud-palette-error-rgb), 0.24)}}.mud-slider.mud-slider-error .mud-slider-input:focus-visible::-webkit-slider-thumb,.mud-slider.mud-slider-error .mud-slider-input:active::-webkit-slider-thumb{box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-error-rgb), 0.3),0 0 0 2px rgba(var(--mud-palette-error-rgb), 0.24)}.mud-slider.mud-slider-error .mud-slider-input:focus-visible::-moz-range-thumb,.mud-slider.mud-slider-error .mud-slider-input:active::-moz-range-thumb{box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-error-rgb), 0.3),0 0 0 2px rgba(var(--mud-palette-error-rgb), 0.24)}.mud-slider.mud-slider-dark .mud-slider-filled{background-color:var(--mud-palette-dark)}.mud-slider.mud-slider-dark .mud-slider-track-tick{background-color:var(--mud-palette-dark)}.mud-slider.mud-slider-dark .mud-slider-value-label{color:var(--mud-palette-dark-text);background-color:var(--mud-palette-dark)}.mud-slider.mud-slider-dark .mud-slider-input::-webkit-slider-runnable-track{background-color:rgba(var(--mud-palette-dark-rgb), 0.3)}.mud-slider.mud-slider-dark .mud-slider-input::-moz-range-track{background-color:rgba(var(--mud-palette-dark-rgb), 0.3)}.mud-slider.mud-slider-dark .mud-slider-input::-webkit-slider-thumb{background-color:var(--mud-palette-dark);box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-dark-rgb), 0.3)}.mud-slider.mud-slider-dark .mud-slider-input::-moz-range-thumb{background-color:var(--mud-palette-dark);box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-dark-rgb), 0.3)}@media(hover: hover)and (pointer: fine){.mud-slider.mud-slider-dark .mud-slider-input::-webkit-slider-thumb:hover{box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-dark-rgb), 0.3),0 0 0 1px rgba(var(--mud-palette-dark-rgb), 0.24)}}@media(hover: hover)and (pointer: fine){.mud-slider.mud-slider-dark .mud-slider-input::-moz-range-thumb:hover{box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-dark-rgb), 0.3),0 0 0 1px rgba(var(--mud-palette-dark-rgb), 0.24)}}.mud-slider.mud-slider-dark .mud-slider-input:focus-visible::-webkit-slider-thumb,.mud-slider.mud-slider-dark .mud-slider-input:active::-webkit-slider-thumb{box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-dark-rgb), 0.3),0 0 0 2px rgba(var(--mud-palette-dark-rgb), 0.24)}.mud-slider.mud-slider-dark .mud-slider-input:focus-visible::-moz-range-thumb,.mud-slider.mud-slider-dark .mud-slider-input:active::-moz-range-thumb{box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-dark-rgb), 0.3),0 0 0 2px rgba(var(--mud-palette-dark-rgb), 0.24)}.mud-slider.mud-slider-small .mud-slider-filled{height:2px}.mud-slider.mud-slider-small .mud-slider-track-tick{width:2px;height:2px}.mud-slider.mud-slider-small .mud-slider-track-tick-label{transform:translateX(-50%) translateY(50%)}.mud-slider.mud-slider-small .mud-slider-input::-webkit-slider-runnable-track{height:2px;margin:10px 0}.mud-slider.mud-slider-small .mud-slider-input::-moz-range-track{height:2px;margin:10px 0}.mud-slider.mud-slider-small .mud-slider-input::-webkit-slider-thumb{height:2px;width:2px;transform:scale(6, 6)}.mud-slider.mud-slider-small .mud-slider-input::-moz-range-thumb{height:2px;width:2px;transform:scale(6, 6)}.mud-slider.mud-slider-medium .mud-slider-filled{height:4px}.mud-slider.mud-slider-medium .mud-slider-track-tick{width:4px;height:4px}.mud-slider.mud-slider-medium .mud-slider-track-tick-label{transform:translateX(-50%) translateY(80%)}.mud-slider.mud-slider-medium .mud-slider-input::-webkit-slider-runnable-track{height:4px;margin:12px 0}.mud-slider.mud-slider-medium .mud-slider-input::-moz-range-track{height:4px;margin:12px 0}.mud-slider.mud-slider-medium .mud-slider-input::-webkit-slider-thumb{height:4px;width:4px;transform:scale(5, 5)}.mud-slider.mud-slider-medium .mud-slider-input::-moz-range-thumb{height:4px;width:4px;transform:scale(5, 5)}.mud-slider.mud-slider-large .mud-slider-filled{height:6px}.mud-slider.mud-slider-large .mud-slider-track-tick{width:6px;height:6px}.mud-slider.mud-slider-large .mud-slider-track-tick-label{transform:translateX(-50%) translateY(110%)}.mud-slider.mud-slider-large .mud-slider-input::-webkit-slider-runnable-track{height:6px;margin:14px 0}.mud-slider.mud-slider-large .mud-slider-input::-moz-range-track{height:6px;margin:14px 0}.mud-slider.mud-slider-large .mud-slider-input::-webkit-slider-thumb{height:6px;width:6px;transform:scale(4, 4)}.mud-slider.mud-slider-large .mud-slider-input::-moz-range-thumb{height:6px;width:6px;transform:scale(4, 4)}.mud-slider .mud-slider-container{position:relative;width:100%;display:flex;align-content:center}.mud-slider .mud-slider-filled{border-radius:var(--mud-default-borderradius)}.mud-slider .mud-slider-inner-container{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;align-items:center}.mud-slider .mud-slider-value-label{position:absolute;top:0;transform:translateX(-50%) translateY(-125%);padding:4px 8px;text-align:center;align-items:center;justify-content:center;font-size:12px;border-radius:2px;line-height:normal;opacity:0;transition:opacity .2s ease-in-out;pointer-events:none;user-select:none}.mud-slider .mud-slider-tickmarks{display:flex;justify-content:space-between;flex-grow:1}.mud-slider .mud-slider-track-tick{border-radius:9999%;background-color:var(--mud-palette-primary)}.mud-slider .mud-slider-track-tick-label{position:absolute;top:0;left:50%}.mud-progress-circular{display:inline-block;position:relative;color:var(--mud-palette-text-secondary)}.mud-progress-circular.mud-progress-indeterminate{animation:mud-progress-circular-keyframes-circular-rotate 1.4s linear infinite}.mud-progress-circular.mud-progress-static{transition:transform 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}.mud-progress-circular.mud-progress-small{height:24px;width:24px}.mud-progress-circular.mud-progress-medium{height:40px;width:40px}.mud-progress-circular.mud-progress-large{height:56px;width:56px}.mud-progress-circular-svg{display:block;transform:rotate(-90deg)}.mud-progress-circular-indeterminate-child{animation:mud-progress-circular-keyframes-circular-rotate 1.4s linear reverse infinite}.mud-progress-circular-percentage{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center}.mud-progress-circular-circle{stroke:currentColor}.mud-progress-circular-circle.mud-progress-indeterminate{animation:mud-progress-circular-keyframes-circular-dash 1.4s ease-in-out infinite;stroke-dasharray:80px,200px;stroke-dashoffset:0px}.mud-progress-circular-circle.mud-progress-static{transition:stroke-dashoffset 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}.mud-progress-circular-circle.mud-progress-circular-circle-rounded{stroke-linecap:round}.mud-progress-circular-disable-shrink{animation:none}.mud-progress-linear{position:relative}.mud-progress-linear::before{content:"";position:absolute;top:0;left:0;height:100%;width:100%;display:block;opacity:.2}.mud-progress-linear.horizontal{width:100%}.mud-progress-linear.horizontal.mud-progress-linear-small{height:4px}.mud-progress-linear.horizontal.mud-progress-linear-medium{height:8px}.mud-progress-linear.horizontal.mud-progress-linear-large{height:12px}.mud-progress-linear.horizontal .mud-progress-linear-dashed{animation:mud-progress-linear-horizontal-keyframes-buffer 3s infinite linear}.mud-progress-linear.vertical{height:100%}.mud-progress-linear.vertical.mud-progress-linear-small{width:4px}.mud-progress-linear.vertical.mud-progress-linear-medium{width:8px}.mud-progress-linear.vertical.mud-progress-linear-large{width:12px}.mud-progress-linear .mud-progress-linear-content{position:absolute;height:100%;width:100%;display:flex;justify-content:center;align-items:center}.mud-progress-linear .mud-progress-linear-bars{position:absolute;height:100%;width:100%;overflow:hidden}.mud-progress-linear .mud-progress-linear-bar{top:0;left:0;width:100%;bottom:0;position:absolute;transition:transform .2s linear;transform-origin:left}.mud-progress-linear .mud-progress-linear-bar.mud-progress-linear-1-indeterminate.horizontal{width:auto;animation:mud-progress-linear-horizontal-keyframes-indeterminate1 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite}.mud-progress-linear .mud-progress-linear-bar.mud-progress-linear-1-indeterminate.vertical{height:auto;animation:mud-progress-linear-vertical-keyframes-indeterminate1 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite}.mud-progress-linear .mud-progress-linear-bar.mud-progress-linear-2-indeterminate.horizontal{width:auto;animation:mud-progress-linear-horizontal-keyframes-indeterminate2 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) 1.15s infinite}.mud-progress-linear .mud-progress-linear-bar.mud-progress-linear-2-indeterminate.vertical{height:auto;animation:mud-progress-linear-vertical-keyframes-indeterminate2 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) 1.15s infinite}.mud-progress-linear.mud-progress-linear-color-default:not(.mud-progress-linear-buffer)::before{background-color:var(--mud-palette-action-disabled)}.mud-progress-linear.mud-progress-linear-color-default:not(.mud-progress-linear-buffer) .mud-progress-linear-bar{background-color:var(--mud-palette-action-default)}.mud-progress-linear.mud-progress-linear-color-default.mud-progress-linear-buffer .mud-progress-linear-bar:first-child{background-size:10px 10px;background-image:radial-gradient(var(--mud-palette-action-disabled) 0%, var(--mud-palette-action-disabled) 16%, transparent 42%);background-position:0 50%}.mud-progress-linear.mud-progress-linear-color-default.mud-progress-linear-buffer .mud-progress-linear-bar:nth-child(2){background-color:var(--mud-palette-action-default)}.mud-progress-linear.mud-progress-linear-color-default.mud-progress-linear-buffer .mud-progress-linear-bar:last-child{transition:transform .4s linear}.mud-progress-linear.mud-progress-linear-color-default.mud-progress-linear-buffer .mud-progress-linear-bar:last-child::before{content:"";position:absolute;top:0;left:0;height:100%;width:100%;display:block;opacity:.4;background-color:var(--mud-palette-action-disabled)}.mud-progress-linear.mud-progress-linear-color-primary:not(.mud-progress-linear-buffer)::before{background-color:var(--mud-palette-primary)}.mud-progress-linear.mud-progress-linear-color-primary:not(.mud-progress-linear-buffer) .mud-progress-linear-bar{background-color:var(--mud-palette-primary)}.mud-progress-linear.mud-progress-linear-color-primary.mud-progress-linear-buffer .mud-progress-linear-bar:first-child{background-size:10px 10px;background-image:radial-gradient(var(--mud-palette-primary) 0%, var(--mud-palette-primary) 16%, transparent 42%);background-position:0 50%}.mud-progress-linear.mud-progress-linear-color-primary.mud-progress-linear-buffer .mud-progress-linear-bar:nth-child(2){background-color:var(--mud-palette-primary)}.mud-progress-linear.mud-progress-linear-color-primary.mud-progress-linear-buffer .mud-progress-linear-bar:last-child{transition:transform .4s linear}.mud-progress-linear.mud-progress-linear-color-primary.mud-progress-linear-buffer .mud-progress-linear-bar:last-child::before{content:"";position:absolute;top:0;left:0;height:100%;width:100%;display:block;opacity:.4;background-color:var(--mud-palette-primary)}.mud-progress-linear.mud-progress-linear-color-secondary:not(.mud-progress-linear-buffer)::before{background-color:var(--mud-palette-secondary)}.mud-progress-linear.mud-progress-linear-color-secondary:not(.mud-progress-linear-buffer) .mud-progress-linear-bar{background-color:var(--mud-palette-secondary)}.mud-progress-linear.mud-progress-linear-color-secondary.mud-progress-linear-buffer .mud-progress-linear-bar:first-child{background-size:10px 10px;background-image:radial-gradient(var(--mud-palette-secondary) 0%, var(--mud-palette-secondary) 16%, transparent 42%);background-position:0 50%}.mud-progress-linear.mud-progress-linear-color-secondary.mud-progress-linear-buffer .mud-progress-linear-bar:nth-child(2){background-color:var(--mud-palette-secondary)}.mud-progress-linear.mud-progress-linear-color-secondary.mud-progress-linear-buffer .mud-progress-linear-bar:last-child{transition:transform .4s linear}.mud-progress-linear.mud-progress-linear-color-secondary.mud-progress-linear-buffer .mud-progress-linear-bar:last-child::before{content:"";position:absolute;top:0;left:0;height:100%;width:100%;display:block;opacity:.4;background-color:var(--mud-palette-secondary)}.mud-progress-linear.mud-progress-linear-color-tertiary:not(.mud-progress-linear-buffer)::before{background-color:var(--mud-palette-tertiary)}.mud-progress-linear.mud-progress-linear-color-tertiary:not(.mud-progress-linear-buffer) .mud-progress-linear-bar{background-color:var(--mud-palette-tertiary)}.mud-progress-linear.mud-progress-linear-color-tertiary.mud-progress-linear-buffer .mud-progress-linear-bar:first-child{background-size:10px 10px;background-image:radial-gradient(var(--mud-palette-tertiary) 0%, var(--mud-palette-tertiary) 16%, transparent 42%);background-position:0 50%}.mud-progress-linear.mud-progress-linear-color-tertiary.mud-progress-linear-buffer .mud-progress-linear-bar:nth-child(2){background-color:var(--mud-palette-tertiary)}.mud-progress-linear.mud-progress-linear-color-tertiary.mud-progress-linear-buffer .mud-progress-linear-bar:last-child{transition:transform .4s linear}.mud-progress-linear.mud-progress-linear-color-tertiary.mud-progress-linear-buffer .mud-progress-linear-bar:last-child::before{content:"";position:absolute;top:0;left:0;height:100%;width:100%;display:block;opacity:.4;background-color:var(--mud-palette-tertiary)}.mud-progress-linear.mud-progress-linear-color-info:not(.mud-progress-linear-buffer)::before{background-color:var(--mud-palette-info)}.mud-progress-linear.mud-progress-linear-color-info:not(.mud-progress-linear-buffer) .mud-progress-linear-bar{background-color:var(--mud-palette-info)}.mud-progress-linear.mud-progress-linear-color-info.mud-progress-linear-buffer .mud-progress-linear-bar:first-child{background-size:10px 10px;background-image:radial-gradient(var(--mud-palette-info) 0%, var(--mud-palette-info) 16%, transparent 42%);background-position:0 50%}.mud-progress-linear.mud-progress-linear-color-info.mud-progress-linear-buffer .mud-progress-linear-bar:nth-child(2){background-color:var(--mud-palette-info)}.mud-progress-linear.mud-progress-linear-color-info.mud-progress-linear-buffer .mud-progress-linear-bar:last-child{transition:transform .4s linear}.mud-progress-linear.mud-progress-linear-color-info.mud-progress-linear-buffer .mud-progress-linear-bar:last-child::before{content:"";position:absolute;top:0;left:0;height:100%;width:100%;display:block;opacity:.4;background-color:var(--mud-palette-info)}.mud-progress-linear.mud-progress-linear-color-success:not(.mud-progress-linear-buffer)::before{background-color:var(--mud-palette-success)}.mud-progress-linear.mud-progress-linear-color-success:not(.mud-progress-linear-buffer) .mud-progress-linear-bar{background-color:var(--mud-palette-success)}.mud-progress-linear.mud-progress-linear-color-success.mud-progress-linear-buffer .mud-progress-linear-bar:first-child{background-size:10px 10px;background-image:radial-gradient(var(--mud-palette-success) 0%, var(--mud-palette-success) 16%, transparent 42%);background-position:0 50%}.mud-progress-linear.mud-progress-linear-color-success.mud-progress-linear-buffer .mud-progress-linear-bar:nth-child(2){background-color:var(--mud-palette-success)}.mud-progress-linear.mud-progress-linear-color-success.mud-progress-linear-buffer .mud-progress-linear-bar:last-child{transition:transform .4s linear}.mud-progress-linear.mud-progress-linear-color-success.mud-progress-linear-buffer .mud-progress-linear-bar:last-child::before{content:"";position:absolute;top:0;left:0;height:100%;width:100%;display:block;opacity:.4;background-color:var(--mud-palette-success)}.mud-progress-linear.mud-progress-linear-color-warning:not(.mud-progress-linear-buffer)::before{background-color:var(--mud-palette-warning)}.mud-progress-linear.mud-progress-linear-color-warning:not(.mud-progress-linear-buffer) .mud-progress-linear-bar{background-color:var(--mud-palette-warning)}.mud-progress-linear.mud-progress-linear-color-warning.mud-progress-linear-buffer .mud-progress-linear-bar:first-child{background-size:10px 10px;background-image:radial-gradient(var(--mud-palette-warning) 0%, var(--mud-palette-warning) 16%, transparent 42%);background-position:0 50%}.mud-progress-linear.mud-progress-linear-color-warning.mud-progress-linear-buffer .mud-progress-linear-bar:nth-child(2){background-color:var(--mud-palette-warning)}.mud-progress-linear.mud-progress-linear-color-warning.mud-progress-linear-buffer .mud-progress-linear-bar:last-child{transition:transform .4s linear}.mud-progress-linear.mud-progress-linear-color-warning.mud-progress-linear-buffer .mud-progress-linear-bar:last-child::before{content:"";position:absolute;top:0;left:0;height:100%;width:100%;display:block;opacity:.4;background-color:var(--mud-palette-warning)}.mud-progress-linear.mud-progress-linear-color-error:not(.mud-progress-linear-buffer)::before{background-color:var(--mud-palette-error)}.mud-progress-linear.mud-progress-linear-color-error:not(.mud-progress-linear-buffer) .mud-progress-linear-bar{background-color:var(--mud-palette-error)}.mud-progress-linear.mud-progress-linear-color-error.mud-progress-linear-buffer .mud-progress-linear-bar:first-child{background-size:10px 10px;background-image:radial-gradient(var(--mud-palette-error) 0%, var(--mud-palette-error) 16%, transparent 42%);background-position:0 50%}.mud-progress-linear.mud-progress-linear-color-error.mud-progress-linear-buffer .mud-progress-linear-bar:nth-child(2){background-color:var(--mud-palette-error)}.mud-progress-linear.mud-progress-linear-color-error.mud-progress-linear-buffer .mud-progress-linear-bar:last-child{transition:transform .4s linear}.mud-progress-linear.mud-progress-linear-color-error.mud-progress-linear-buffer .mud-progress-linear-bar:last-child::before{content:"";position:absolute;top:0;left:0;height:100%;width:100%;display:block;opacity:.4;background-color:var(--mud-palette-error)}.mud-progress-linear.mud-progress-linear-color-dark:not(.mud-progress-linear-buffer)::before{background-color:var(--mud-palette-dark)}.mud-progress-linear.mud-progress-linear-color-dark:not(.mud-progress-linear-buffer) .mud-progress-linear-bar{background-color:var(--mud-palette-dark)}.mud-progress-linear.mud-progress-linear-color-dark.mud-progress-linear-buffer .mud-progress-linear-bar:first-child{background-size:10px 10px;background-image:radial-gradient(var(--mud-palette-dark) 0%, var(--mud-palette-dark) 16%, transparent 42%);background-position:0 50%}.mud-progress-linear.mud-progress-linear-color-dark.mud-progress-linear-buffer .mud-progress-linear-bar:nth-child(2){background-color:var(--mud-palette-dark)}.mud-progress-linear.mud-progress-linear-color-dark.mud-progress-linear-buffer .mud-progress-linear-bar:last-child{transition:transform .4s linear}.mud-progress-linear.mud-progress-linear-color-dark.mud-progress-linear-buffer .mud-progress-linear-bar:last-child::before{content:"";position:absolute;top:0;left:0;height:100%;width:100%;display:block;opacity:.4;background-color:var(--mud-palette-dark)}.mud-progress-linear.mud-progress-indeterminate.horizontal .mud-progress-linear-bar:first-child{width:auto;animation:mud-progress-linear-horizontal-keyframes-indeterminate1 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite}.mud-progress-linear.mud-progress-indeterminate.horizontal .mud-progress-linear-bar:last-child{width:auto;animation:mud-progress-linear-horizontal-keyframes-indeterminate2 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) 1.15s infinite}.mud-progress-linear.mud-progress-indeterminate.vertical .mud-progress-linear-bar:first-child{height:auto;animation:mud-progress-linear-vertical-keyframes-indeterminate1 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite}.mud-progress-linear.mud-progress-indeterminate.vertical .mud-progress-linear-bar:last-child{height:auto;animation:mud-progress-linear-vertical-keyframes-indeterminate2 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) 1.15s infinite}.mud-progress-linear.mud-progress-linear-buffer .mud-progress-linear-bar:first-child{width:100%;height:100%;position:absolute;margin-top:0}.mud-progress-linear.mud-progress-linear-buffer .mud-progress-linear-bar:nth-child(2){z-index:1;transition:transform .4s linear}.mud-progress-linear.mud-progress-linear-buffer.horizontal .mud-progress-linear-bar:first-child{animation:mud-progress-linear-horizontal-keyframes-buffer 3s infinite linear}.mud-progress-linear.mud-progress-linear-buffer.vertical .mud-progress-linear-bar:first-child{animation:mud-progress-linear-vertical-keyframes-buffer 3s infinite linear}.mud-progress-linear.mud-progress-linear-striped .mud-progress-linear-bar{background-image:linear-gradient(135deg, hsla(0, 0%, 100%, 0.25) 25%, transparent 0, transparent 50%, hsla(0, 0%, 100%, 0.25) 0, hsla(0, 0%, 100%, 0.25) 75%, transparent 0, transparent);background-size:40px 40px;background-repeat:repeat;animation:mud-progress-linear-striped-loading 10s linear infinite}.mud-progress-linear.mud-progress-linear-rounded{border-radius:var(--mud-default-borderradius)}.mud-progress-linear.mud-progress-linear-rounded .mud-progress-linear-bars{border-radius:var(--mud-default-borderradius)}.mud-progress-linear.mud-progress-linear-rounded .mud-progress-linear-bar{border-radius:var(--mud-default-borderradius)}.mud-progress-linear.mud-progress-linear-rounded::before{border-radius:var(--mud-default-borderradius)}.mud-radio{cursor:pointer;display:inline-flex;align-items:center;vertical-align:middle;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mud-radio>.mud-radio-content{color:var(--mud-palette-text-primary)}@media(hover: hover)and (pointer: fine){.mud-radio .mud-disabled:hover{cursor:default;background-color:rgba(0,0,0,0) !important}.mud-radio .mud-disabled:hover>.mud-radio-content{color:var(--mud-palette-text-disabled)}.mud-radio .mud-disabled:hover *{cursor:default;color:var(--mud-palette-text-disabled)}}.mud-radio.mud-disabled,.mud-radio .mud-disabled:focus-visible,.mud-radio .mud-disabled:active{cursor:default;background-color:rgba(0,0,0,0) !important}.mud-radio.mud-disabled>.mud-radio-content,.mud-radio .mud-disabled:focus-visible>.mud-radio-content,.mud-radio .mud-disabled:active>.mud-radio-content{color:var(--mud-palette-text-disabled)}.mud-radio.mud-disabled *,.mud-radio .mud-disabled:focus-visible *,.mud-radio .mud-disabled:active *{cursor:default;color:var(--mud-palette-text-disabled)}.mud-radio.mud-readonly,.mud-radio .mud-readonly:hover{cursor:default;background-color:rgba(0,0,0,0) !important}.mud-radio .mud-radio-dense{padding:4px}.mud-radio.mud-checked{color:var(--mud-palette-action-default)}@media(hover: hover)and (pointer: fine){.mud-radio.mud-checked:hover{background-color:var(--mud-palette-action-default-hover)}}.mud-radio-input{top:0;left:0;width:100%;cursor:inherit;height:100%;margin:0;opacity:0;padding:0;z-index:1;position:absolute}.mud-radio-icons{display:flex;position:relative}.mud-radio-icons.mud-checked .mud-radio-icon-checked{transform:scale(1);transition:transform 150ms cubic-bezier(0, 0, 0.2, 1) 0ms}.mud-radio-icon-checked{left:0;position:absolute;transform:scale(0);transition:transform 150ms cubic-bezier(0.4, 0, 1, 1) 0ms}.mud-rating-root{display:inline-flex;color:#ffb400}.mud-rating-root:focus-visible,.mud-rating-root:active{outline:none}.mud-rating-root:focus-visible:not(.mud-disabled),.mud-rating-root:active:not(.mud-disabled){background-color:var(--mud-palette-action-default-hover)}.mud-rating-item{cursor:pointer;transition:transform 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}.mud-rating-item.mud-rating-item-active{transform:scale(1.2)}.mud-rating-item.mud-disabled{cursor:default;pointer-events:none}.mud-rating-item.mud-disabled *{cursor:default;color:var(--mud-palette-text-disabled)}@media(hover: hover)and (pointer: fine){.mud-rating-item .mud-disabled:hover{cursor:default;pointer-events:none}.mud-rating-item .mud-disabled:hover *{cursor:default;color:var(--mud-palette-text-disabled)}}.mud-rating-item.mud-readonly{cursor:default}.mud-rating-item .mud-rating-input{clip:rect(0, 0, 0, 0);margin:0;opacity:0;padding:0;z-index:1;position:absolute;cursor:inherit;overflow:hidden}.mud-rating-item svg{pointer-events:none}.mud-rating-item svg path{pointer-events:none}.mud-snackbar{display:flex;flex-grow:initial;padding:6px 16px;align-items:center;position:relative;pointer-events:auto;font-weight:400;line-height:1.43;overflow:hidden;margin-top:16px;min-width:288px;max-width:500px;border-radius:var(--mud-default-borderradius);box-shadow:0px 3px 5px -1px rgba(0,0,0,.2),0px 6px 10px 0px rgba(0,0,0,.14),0px 1px 18px 0px rgba(0,0,0,.12);touch-action:pinch-zoom}.mud-snackbar.force-cursor{cursor:pointer}.mud-snackbar.mud-snackbar-blurred{backdrop-filter:blur(18px)}.mud-snackbar.mud-snackbar-surface{background:var(--mud-palette-surface)}.mud-snackbar .mud-snackbar-content-message{padding:8px 0;overflow-wrap:anywhere}.mud-snackbar .mud-snackbar-content-action{display:flex;align-items:center;margin-left:auto;margin-right:-8px;padding-left:16px;margin-inline-start:auto;margin-inline-end:-8px;padding-inline-start:16px;padding-inline-end:unset}.mud-snackbar .mud-snackbar-content-action>button{color:inherit}.mud-snackbar-location-top-left{top:24px;left:24px}.mud-snackbar-location-top-center{top:24px;left:50%;transform:translateX(-50%)}.mud-snackbar-location-top-right{top:24px;right:24px}.mud-snackbar-location-bottom-right{right:24px;bottom:24px}.mud-snackbar-location-bottom-center{bottom:24px;left:50%;transform:translateX(-50%)}.mud-snackbar-location-bottom-left{bottom:24px;left:24px}#mud-snackbar-container{position:fixed;z-index:var(--mud-zindex-snackbar);pointer-events:none}.mud-snackbar-icon{display:flex;opacity:.9;padding:7px 0;font-size:22px;margin-right:12px;margin-inline-end:12px;margin-inline-start:unset}.mud-switch{cursor:pointer;display:inline-flex;align-items:center;vertical-align:middle;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mud-switch.mud-disabled{color:var(--mud-palette-text-disabled) !important;cursor:default}.mud-switch.mud-readonly{cursor:default;background-color:rgba(0,0,0,0) !important}@media(hover: hover)and (pointer: fine){.mud-switch .mud-readonly:hover{cursor:default;background-color:rgba(0,0,0,0) !important}}.mud-switch-span{width:58px;height:38px;display:inline-flex;padding:12px;z-index:0;overflow:hidden;position:relative;box-sizing:border-box;flex-shrink:0;vertical-align:middle}.mud-switch-span .mud-switch-track{width:100%;height:100%;opacity:.48;z-index:-1;transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;border-radius:9px;background-color:var(--mud-palette-action-default)}.mud-switch-base{padding:9px;top:0;left:0;color:#fafafa;z-index:1;position:absolute;transition:left 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,transform 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}.mud-switch-base.mud-checked{transform:translateX(20px)}.mud-switch-base.mud-checked+.mud-switch-track{opacity:.5}@media(hover: hover)and (pointer: fine){.mud-switch-base:hover{background-color:var(--mud-palette-action-default-hover)}}.mud-switch-base.mud-switch-disabled{color:var(--mud-palette-gray-default) !important}.mud-switch-base.mud-switch-disabled+.mud-switch-track{opacity:.12 !important}@media(hover: hover)and (pointer: fine){.mud-switch-base.mud-switch-disabled:hover{cursor:default;background-color:rgba(0,0,0,0) !important}}.mud-switch-base.mud-switch-disabled:focus-visible,.mud-switch-base.mud-switch-disabled:active{cursor:default;background-color:rgba(0,0,0,0) !important}.mud-switch-button{display:flex;align-items:inherit;justify-content:inherit}.mud-switch-button .mud-switch-input{top:0;left:0;width:100%;cursor:inherit;height:100%;margin:0;opacity:0;padding:0;z-index:1;position:absolute}.mud-switch-button .mud-switch-thumb-small{width:14px;height:14px;box-shadow:0px 2px 1px -1px rgba(0,0,0,.2),0px 1px 1px 0px rgba(0,0,0,.14),0px 1px 3px 0px rgba(0,0,0,.12);border-radius:50%;background-color:currentColor}.mud-switch-button .mud-switch-thumb-medium{width:20px;height:20px;box-shadow:0px 2px 1px -1px rgba(0,0,0,.2),0px 1px 1px 0px rgba(0,0,0,.14),0px 1px 3px 0px rgba(0,0,0,.12);border-radius:50%;background-color:currentColor}.mud-switch-button .mud-switch-thumb-large{width:26px;height:26px;box-shadow:0px 2px 1px -1px rgba(0,0,0,.2),0px 1px 1px 0px rgba(0,0,0,.14),0px 1px 3px 0px rgba(0,0,0,.12);border-radius:50%;background-color:currentColor}.mud-switch-base-small.mud-switch-base{padding:5px}.mud-switch-base-medium.mud-switch-base{padding:9px}.mud-switch-base-large.mud-switch-base{padding:13px}.mud-switch-span-small.mud-switch-span{padding:7px;width:44px;height:24px}.mud-switch-span-medium.mud-switch-span{padding:12px;width:58px;height:38px}.mud-switch-span-large.mud-switch-span{padding:17px;width:72px;height:52px}.mud-switch-label-small{font-size:.8125rem !important}.mud-switch-label-medium{font-size:1rem !important}.mud-switch-label-large{font-size:1.1875rem !important}.mud-timeline{position:relative;display:flex}.mud-timeline-item{display:flex}.mud-timeline-item .mud-timeline-item-content{position:relative;height:100%;flex:1 1 auto}.mud-timeline-item .mud-timeline-item-divider{position:relative;display:flex;align-items:center;justify-content:center}.mud-timeline-item .mud-timeline-item-opposite{align-self:center}.mud-timeline-vertical{padding-top:24px;flex-direction:column}.mud-timeline-vertical .mud-timeline-item{padding-bottom:24px}.mud-timeline-vertical .mud-timeline-item .mud-timeline-item-content{max-width:calc(50% - 48px)}.mud-timeline-vertical .mud-timeline-item .mud-timeline-item-divider{min-width:96px}.mud-timeline-vertical .mud-timeline-item .mud-timeline-item-opposite{flex:1 1 auto;max-width:calc(50% - 48px)}.mud-timeline-vertical::before{top:0;bottom:0;content:"";height:100%;position:absolute;width:2px;background:var(--mud-palette-divider)}.mud-timeline-vertical.mud-timeline-align-start .mud-timeline-item-divider{align-items:flex-start}.mud-timeline-vertical.mud-timeline-align-start .mud-timeline-item-opposite{align-self:flex-start}.mud-timeline-vertical.mud-timeline-align-end .mud-timeline-item-divider{align-items:flex-end}.mud-timeline-vertical.mud-timeline-align-end .mud-timeline-item-opposite{align-self:flex-end}.mud-timeline-vertical.mud-timeline-position-alternate::before{left:auto;right:calc(50% - 1px)}.mud-timeline-vertical.mud-timeline-position-alternate .mud-timeline-item:nth-child(odd):not(.mud-timeline-item-start),.mud-timeline-vertical.mud-timeline-position-alternate .mud-timeline-item.mud-timeline-item-end{flex-direction:row-reverse}.mud-timeline-vertical.mud-timeline-position-alternate .mud-timeline-item:nth-child(odd):not(.mud-timeline-item-start) .mud-timeline-item-opposite,.mud-timeline-vertical.mud-timeline-position-alternate .mud-timeline-item.mud-timeline-item-end .mud-timeline-item-opposite{text-align:end}.mud-timeline-vertical.mud-timeline-position-alternate .mud-timeline-item:nth-child(2n):not(.mud-timeline-item-end){flex-direction:row}.mud-timeline-vertical.mud-timeline-position-alternate .mud-timeline-item:nth-child(2n):not(.mud-timeline-item-end) .mud-timeline-item-opposite{text-align:start}.mud-timeline-vertical.mud-timeline-position-alternate.mud-timeline-reverse .mud-timeline-item:nth-child(odd):not(.mud-timeline-item-end),.mud-timeline-vertical.mud-timeline-position-alternate.mud-timeline-reverse .mud-timeline-item.mud-timeline-item-start{flex-direction:row}.mud-timeline-vertical.mud-timeline-position-alternate.mud-timeline-reverse .mud-timeline-item:nth-child(odd):not(.mud-timeline-item-end) .mud-timeline-item-opposite,.mud-timeline-vertical.mud-timeline-position-alternate.mud-timeline-reverse .mud-timeline-item.mud-timeline-item-start .mud-timeline-item-opposite{text-align:start}.mud-timeline-vertical.mud-timeline-position-alternate.mud-timeline-reverse .mud-timeline-item:nth-child(2n):not(.mud-timeline-item-start){flex-direction:row-reverse}.mud-timeline-vertical.mud-timeline-position-alternate.mud-timeline-reverse .mud-timeline-item:nth-child(2n):not(.mud-timeline-item-start) .mud-timeline-item-opposite{text-align:end}.mud-timeline-vertical.mud-timeline-position-start::before{right:auto;left:47px}.mud-timeline-vertical.mud-timeline-position-start.mud-timeline-rtl::before{right:47px;left:auto}.mud-timeline-vertical.mud-timeline-position-start .mud-timeline-item{flex-direction:row-reverse}.mud-timeline-vertical.mud-timeline-position-end::before{right:47px;left:auto}.mud-timeline-vertical.mud-timeline-position-end.mud-timeline-rtl::before{left:47px;right:auto}.mud-timeline-vertical.mud-timeline-position-end .mud-timeline-item{flex-direction:row}.mud-timeline-vertical.mud-timeline-position-start .mud-timeline-item-content,.mud-timeline-vertical.mud-timeline-position-end .mud-timeline-item-content{max-width:calc(100% - 96px)}.mud-timeline-vertical.mud-timeline-position-start .mud-timeline-item-opposite,.mud-timeline-vertical.mud-timeline-position-end .mud-timeline-item-opposite{display:none}.mud-timeline-horizontal{flex-direction:row}.mud-timeline-horizontal .mud-timeline-item{padding:0 24px;width:100%;min-width:0}.mud-timeline-horizontal .mud-timeline-item .mud-timeline-item-content{max-height:calc(50% - 48px)}.mud-timeline-horizontal .mud-timeline-item .mud-timeline-item-divider{min-height:96px}.mud-timeline-horizontal::before{top:0;bottom:0;content:"";height:2px;position:absolute;width:100%;background:var(--mud-palette-divider)}.mud-timeline-horizontal.mud-timeline-align-start .mud-timeline-item-divider{justify-content:flex-start}.mud-timeline-horizontal.mud-timeline-align-start .mud-timeline-item-opposite{align-self:flex-start}.mud-timeline-horizontal.mud-timeline-align-end .mud-timeline-item-divider{justify-content:flex-end}.mud-timeline-horizontal.mud-timeline-align-end .mud-timeline-item-opposite{align-self:flex-end}.mud-timeline-horizontal.mud-timeline-position-alternate::before{top:auto;bottom:calc(50% - 1px)}.mud-timeline-horizontal.mud-timeline-position-alternate .mud-timeline-item:nth-child(odd),.mud-timeline-horizontal.mud-timeline-position-alternate .mud-timeline-item.mud-timeline-item-end{flex-direction:column-reverse}.mud-timeline-horizontal.mud-timeline-position-alternate .mud-timeline-item:nth-child(2n),.mud-timeline-horizontal.mud-timeline-position-alternate .mud-timeline-item.mud-timeline-item-start{flex-direction:column}.mud-timeline-horizontal.mud-timeline-position-alternate.mud-timeline-reverse .mud-timeline-item:nth-child(odd),.mud-timeline-horizontal.mud-timeline-position-alternate.mud-timeline-reverse .mud-timeline-item.mud-timeline-item-end{flex-direction:column}.mud-timeline-horizontal.mud-timeline-position-alternate.mud-timeline-reverse .mud-timeline-item:nth-child(2n),.mud-timeline-horizontal.mud-timeline-position-alternate.mud-timeline-reverse .mud-timeline-item.mud-timeline-item-start{flex-direction:column-reverse}.mud-timeline-horizontal.mud-timeline-position-top::before{top:47px;bottom:auto}.mud-timeline-horizontal.mud-timeline-position-top .mud-timeline-item{flex-direction:column-reverse}.mud-timeline-horizontal.mud-timeline-position-bottom::before{top:auto;bottom:47px}.mud-timeline-horizontal.mud-timeline-position-bottom .mud-timeline-item{flex-direction:column}.mud-timeline-horizontal.mud-timeline-position-top .mud-timeline-item-content,.mud-timeline-horizontal.mud-timeline-position-bottom .mud-timeline-item-content{max-height:calc(100% - 96px)}.mud-timeline-horizontal.mud-timeline-position-top .mud-timeline-item-opposite,.mud-timeline-horizontal.mud-timeline-position-bottom .mud-timeline-item-opposite{display:none}.mud-timeline-item-dot{display:flex;justify-content:center;align-items:center;background:var(--mud-palette-surface);border-radius:50%;left:calc(50% - 19px)}.mud-timeline-item-dot.mud-timeline-dot-size-small{width:24px;height:24px}.mud-timeline-item-dot.mud-timeline-dot-size-small .mud-timeline-item-dot-inner{height:18px;width:18px}.mud-timeline-item-dot.mud-timeline-dot-size-medium{width:38px;height:38px}.mud-timeline-item-dot.mud-timeline-dot-size-medium .mud-timeline-item-dot-inner{height:30px;width:30px}.mud-timeline-item-dot.mud-timeline-dot-size-large{width:52px;height:52px}.mud-timeline-item-dot.mud-timeline-dot-size-large .mud-timeline-item-dot-inner{height:42px;width:42px}.mud-timeline-item-dot .mud-timeline-item-dot-inner{border-radius:50%;display:flex;justify-content:center;align-items:center}.mud-timeline-item-dot .mud-timeline-item-dot-inner.mud-timeline-dot-fill{height:inherit;width:inherit}.mud-timeline-item-dot .mud-timeline-item-dot-inner.mud-timeline-dot-default{background-color:var(--mud-palette-gray-light)}.mud-timeline-item-dot .mud-timeline-item-dot-inner.mud-timeline-dot-primary{color:var(--mud-palette-primary-text);background-color:var(--mud-palette-primary)}.mud-timeline-item-dot .mud-timeline-item-dot-inner.mud-timeline-dot-secondary{color:var(--mud-palette-secondary-text);background-color:var(--mud-palette-secondary)}.mud-timeline-item-dot .mud-timeline-item-dot-inner.mud-timeline-dot-tertiary{color:var(--mud-palette-tertiary-text);background-color:var(--mud-palette-tertiary)}.mud-timeline-item-dot .mud-timeline-item-dot-inner.mud-timeline-dot-info{color:var(--mud-palette-info-text);background-color:var(--mud-palette-info)}.mud-timeline-item-dot .mud-timeline-item-dot-inner.mud-timeline-dot-success{color:var(--mud-palette-success-text);background-color:var(--mud-palette-success)}.mud-timeline-item-dot .mud-timeline-item-dot-inner.mud-timeline-dot-warning{color:var(--mud-palette-warning-text);background-color:var(--mud-palette-warning)}.mud-timeline-item-dot .mud-timeline-item-dot-inner.mud-timeline-dot-error{color:var(--mud-palette-error-text);background-color:var(--mud-palette-error)}.mud-timeline-item-dot .mud-timeline-item-dot-inner.mud-timeline-dot-dark{color:var(--mud-palette-dark-text);background-color:var(--mud-palette-dark)}.mud-timeline-modifiers .mud-timeline-item-content .mud-card::before{content:"";position:absolute;border-top:16px solid rgba(0,0,0,0);border-bottom:16px solid rgba(0,0,0,0);border-right:16px solid rgba(0,0,0,.1);top:calc(50% - 14px)}.mud-timeline-modifiers .mud-timeline-item-content .mud-card::after{content:"";position:absolute;border-top:16px solid rgba(0,0,0,0);border-bottom:16px solid rgba(0,0,0,0);border-right:16px solid var(--mud-palette-surface);top:calc(50% - 16px)}.mud-timeline-modifiers .mud-timeline-item-content .mud-card.mud-paper-outlined::before{top:calc(50% - 16px);border-right-color:var(--mud-palette-lines-default)}.mud-timeline-modifiers.mud-timeline-vertical.mud-timeline-position-start:not(.mud-timeline-rtl) .mud-timeline-item-content .mud-card::before,.mud-timeline-modifiers.mud-timeline-vertical.mud-timeline-position-start:not(.mud-timeline-rtl) .mud-timeline-item-content .mud-card::after,.mud-timeline-modifiers.mud-timeline-vertical.mud-timeline-position-end.mud-timeline-rtl .mud-timeline-item-content .mud-card::before,.mud-timeline-modifiers.mud-timeline-vertical.mud-timeline-position-end.mud-timeline-rtl .mud-timeline-item-content .mud-card::after{transform:rotate(0);left:-16px;right:auto}.mud-timeline-modifiers.mud-timeline-vertical.mud-timeline-position-start:not(.mud-timeline-rtl) .mud-timeline-item-content .mud-card.mud-paper-outlined::after,.mud-timeline-modifiers.mud-timeline-vertical.mud-timeline-position-end.mud-timeline-rtl .mud-timeline-item-content .mud-card.mud-paper-outlined::after{left:-15px}.mud-timeline-modifiers.mud-timeline-vertical.mud-timeline-position-end:not(.mud-timeline-rtl) .mud-timeline-item-content .mud-card::before,.mud-timeline-modifiers.mud-timeline-vertical.mud-timeline-position-end:not(.mud-timeline-rtl) .mud-timeline-item-content .mud-card::after,.mud-timeline-modifiers.mud-timeline-vertical.mud-timeline-position-start.mud-timeline-rtl .mud-timeline-item-content .mud-card::before,.mud-timeline-modifiers.mud-timeline-vertical.mud-timeline-position-start.mud-timeline-rtl .mud-timeline-item-content .mud-card::after{transform:rotate(180deg);right:-16px;left:auto}.mud-timeline-modifiers.mud-timeline-vertical.mud-timeline-position-end:not(.mud-timeline-rtl) .mud-timeline-item-content .mud-card.mud-paper-outlined::after,.mud-timeline-modifiers.mud-timeline-vertical.mud-timeline-position-start.mud-timeline-rtl .mud-timeline-item-content .mud-card.mud-paper-outlined::after{right:-15px}.mud-timeline-modifiers.mud-timeline-vertical.mud-timeline-position-alternate .mud-timeline-item:nth-child(odd):not(.mud-timeline-item-start) .mud-timeline-item-content .mud-card::before,.mud-timeline-modifiers.mud-timeline-vertical.mud-timeline-position-alternate .mud-timeline-item:nth-child(odd):not(.mud-timeline-item-start) .mud-timeline-item-content .mud-card::after,.mud-timeline-modifiers.mud-timeline-vertical.mud-timeline-position-alternate .mud-timeline-item.mud-timeline-item-end .mud-timeline-item-content .mud-card::before,.mud-timeline-modifiers.mud-timeline-vertical.mud-timeline-position-alternate .mud-timeline-item.mud-timeline-item-end .mud-timeline-item-content .mud-card::after{transform:rotate(0);left:-16px;right:auto}.mud-timeline-modifiers.mud-timeline-vertical.mud-timeline-position-alternate .mud-timeline-item:nth-child(odd):not(.mud-timeline-item-start) .mud-timeline-item-content .mud-card.mud-paper-outlined::after,.mud-timeline-modifiers.mud-timeline-vertical.mud-timeline-position-alternate .mud-timeline-item.mud-timeline-item-end .mud-timeline-item-content .mud-card.mud-paper-outlined::after{left:-15px}.mud-timeline-modifiers.mud-timeline-vertical.mud-timeline-position-alternate .mud-timeline-item:nth-child(2n):not(.mud-timeline-item-end) .mud-timeline-item-content .mud-card::before,.mud-timeline-modifiers.mud-timeline-vertical.mud-timeline-position-alternate .mud-timeline-item:nth-child(2n):not(.mud-timeline-item-end) .mud-timeline-item-content .mud-card::after{transform:rotate(180deg);right:-16px;left:auto}.mud-timeline-modifiers.mud-timeline-vertical.mud-timeline-position-alternate .mud-timeline-item:nth-child(2n):not(.mud-timeline-item-end) .mud-timeline-item-content .mud-card.mud-paper-outlined::after{right:-15px}.mud-timeline-modifiers.mud-timeline-vertical.mud-timeline-reverse:not(.mud-timeline-rtl) .mud-timeline-item:nth-child(odd):not(.mud-timeline-item-end) .mud-timeline-item-content .mud-card::before,.mud-timeline-modifiers.mud-timeline-vertical.mud-timeline-reverse:not(.mud-timeline-rtl) .mud-timeline-item:nth-child(odd):not(.mud-timeline-item-end) .mud-timeline-item-content .mud-card::after,.mud-timeline-modifiers.mud-timeline-vertical.mud-timeline-reverse:not(.mud-timeline-rtl) .mud-timeline-item.mud-timeline-item-start .mud-timeline-item-content .mud-card::before,.mud-timeline-modifiers.mud-timeline-vertical.mud-timeline-reverse:not(.mud-timeline-rtl) .mud-timeline-item.mud-timeline-item-start .mud-timeline-item-content .mud-card::after,.mud-timeline-modifiers.mud-timeline-vertical.mud-timeline-position-alternate.mud-timeline-rtl:not(.mud-timeline-reverse) .mud-timeline-item:nth-child(odd):not(.mud-timeline-item-end) .mud-timeline-item-content .mud-card::before,.mud-timeline-modifiers.mud-timeline-vertical.mud-timeline-position-alternate.mud-timeline-rtl:not(.mud-timeline-reverse) .mud-timeline-item:nth-child(odd):not(.mud-timeline-item-end) .mud-timeline-item-content .mud-card::after,.mud-timeline-modifiers.mud-timeline-vertical.mud-timeline-position-alternate.mud-timeline-rtl:not(.mud-timeline-reverse) .mud-timeline-item.mud-timeline-item-start .mud-timeline-item-content .mud-card::before,.mud-timeline-modifiers.mud-timeline-vertical.mud-timeline-position-alternate.mud-timeline-rtl:not(.mud-timeline-reverse) .mud-timeline-item.mud-timeline-item-start .mud-timeline-item-content .mud-card::after{transform:rotate(180deg);right:-16px;left:auto}.mud-timeline-modifiers.mud-timeline-vertical.mud-timeline-reverse:not(.mud-timeline-rtl) .mud-timeline-item:nth-child(odd):not(.mud-timeline-item-end) .mud-timeline-item-content .mud-card.mud-paper-outlined::after,.mud-timeline-modifiers.mud-timeline-vertical.mud-timeline-reverse:not(.mud-timeline-rtl) .mud-timeline-item.mud-timeline-item-start .mud-timeline-item-content .mud-card.mud-paper-outlined::after,.mud-timeline-modifiers.mud-timeline-vertical.mud-timeline-position-alternate.mud-timeline-rtl:not(.mud-timeline-reverse) .mud-timeline-item:nth-child(odd):not(.mud-timeline-item-end) .mud-timeline-item-content .mud-card.mud-paper-outlined::after,.mud-timeline-modifiers.mud-timeline-vertical.mud-timeline-position-alternate.mud-timeline-rtl:not(.mud-timeline-reverse) .mud-timeline-item.mud-timeline-item-start .mud-timeline-item-content .mud-card.mud-paper-outlined::after{right:-15px}.mud-timeline-modifiers.mud-timeline-vertical.mud-timeline-reverse:not(.mud-timeline-rtl) .mud-timeline-item:nth-child(2n):not(.mud-timeline-item-start) .mud-timeline-item-content .mud-card::before,.mud-timeline-modifiers.mud-timeline-vertical.mud-timeline-reverse:not(.mud-timeline-rtl) .mud-timeline-item:nth-child(2n):not(.mud-timeline-item-start) .mud-timeline-item-content .mud-card::after,.mud-timeline-modifiers.mud-timeline-vertical.mud-timeline-position-alternate.mud-timeline-rtl:not(.mud-timeline-reverse) .mud-timeline-item:nth-child(2n):not(.mud-timeline-item-start) .mud-timeline-item-content .mud-card::before,.mud-timeline-modifiers.mud-timeline-vertical.mud-timeline-position-alternate.mud-timeline-rtl:not(.mud-timeline-reverse) .mud-timeline-item:nth-child(2n):not(.mud-timeline-item-start) .mud-timeline-item-content .mud-card::after{transform:rotate(0);left:-16px;right:auto}.mud-timeline-modifiers.mud-timeline-vertical.mud-timeline-reverse:not(.mud-timeline-rtl) .mud-timeline-item:nth-child(2n):not(.mud-timeline-item-start) .mud-timeline-item-content .mud-card.mud-paper-outlined::after,.mud-timeline-modifiers.mud-timeline-vertical.mud-timeline-position-alternate.mud-timeline-rtl:not(.mud-timeline-reverse) .mud-timeline-item:nth-child(2n):not(.mud-timeline-item-start) .mud-timeline-item-content .mud-card.mud-paper-outlined::after{left:-15px}.mud-timeline-modifiers.mud-timeline-horizontal.mud-timeline-position-top .mud-timeline-item-content .mud-card::before,.mud-timeline-modifiers.mud-timeline-horizontal.mud-timeline-position-top .mud-timeline-item-content .mud-card::after{transform:rotate(90deg);top:-24px;bottom:auto;left:calc(50% - 8px)}.mud-timeline-modifiers.mud-timeline-horizontal.mud-timeline-position-top .mud-timeline-item-content .mud-card.mud-paper-outlined::after{top:-23px}.mud-timeline-modifiers.mud-timeline-horizontal.mud-timeline-position-bottom .mud-timeline-item-content .mud-card::before,.mud-timeline-modifiers.mud-timeline-horizontal.mud-timeline-position-bottom .mud-timeline-item-content .mud-card::after{transform:rotate(270deg);bottom:-24px;top:auto;left:calc(50% - 8px)}.mud-timeline-modifiers.mud-timeline-horizontal.mud-timeline-position-bottom .mud-timeline-item-content .mud-card.mud-paper-outlined::after{bottom:-23px}.mud-timeline-modifiers.mud-timeline-horizontal.mud-timeline-position-alternate .mud-timeline-item:nth-child(odd):not(.mud-timeline-item-start) .mud-timeline-item-content .mud-card::before,.mud-timeline-modifiers.mud-timeline-horizontal.mud-timeline-position-alternate .mud-timeline-item:nth-child(odd):not(.mud-timeline-item-start) .mud-timeline-item-content .mud-card::after,.mud-timeline-modifiers.mud-timeline-horizontal.mud-timeline-position-alternate .mud-timeline-item.mud-timeline-item-end .mud-timeline-item-content .mud-card::before,.mud-timeline-modifiers.mud-timeline-horizontal.mud-timeline-position-alternate .mud-timeline-item.mud-timeline-item-end .mud-timeline-item-content .mud-card::after{transform:rotate(90deg);top:-24px;bottom:auto;left:calc(50% - 8px)}.mud-timeline-modifiers.mud-timeline-horizontal.mud-timeline-position-alternate .mud-timeline-item:nth-child(odd):not(.mud-timeline-item-start) .mud-timeline-item-content .mud-card.mud-paper-outlined::after,.mud-timeline-modifiers.mud-timeline-horizontal.mud-timeline-position-alternate .mud-timeline-item.mud-timeline-item-end .mud-timeline-item-content .mud-card.mud-paper-outlined::after{top:-23px}.mud-timeline-modifiers.mud-timeline-horizontal.mud-timeline-position-alternate .mud-timeline-item:nth-child(2n):not(.mud-timeline-item-end) .mud-timeline-item-content .mud-card::before,.mud-timeline-modifiers.mud-timeline-horizontal.mud-timeline-position-alternate .mud-timeline-item:nth-child(2n):not(.mud-timeline-item-end) .mud-timeline-item-content .mud-card::after{transform:rotate(270deg);bottom:-24px;top:auto;left:calc(50% - 8px)}.mud-timeline-modifiers.mud-timeline-horizontal.mud-timeline-position-alternate .mud-timeline-item:nth-child(2n):not(.mud-timeline-item-end) .mud-timeline-item-content .mud-card.mud-paper-outlined::after{bottom:-23px}.mud-timeline-modifiers.mud-timeline-horizontal.mud-timeline-position-alternate.mud-timeline-reverse .mud-timeline-item:nth-child(odd):not(.mud-timeline-item-start) .mud-timeline-item-content .mud-card::before,.mud-timeline-modifiers.mud-timeline-horizontal.mud-timeline-position-alternate.mud-timeline-reverse .mud-timeline-item:nth-child(odd):not(.mud-timeline-item-start) .mud-timeline-item-content .mud-card::after,.mud-timeline-modifiers.mud-timeline-horizontal.mud-timeline-position-alternate.mud-timeline-reverse .mud-timeline-item.mud-timeline-item-end .mud-timeline-item-content .mud-card::before,.mud-timeline-modifiers.mud-timeline-horizontal.mud-timeline-position-alternate.mud-timeline-reverse .mud-timeline-item.mud-timeline-item-end .mud-timeline-item-content .mud-card::after{transform:rotate(270deg);bottom:-24px;top:auto;left:calc(50% - 8px)}.mud-timeline-modifiers.mud-timeline-horizontal.mud-timeline-position-alternate.mud-timeline-reverse .mud-timeline-item:nth-child(odd):not(.mud-timeline-item-start) .mud-timeline-item-content .mud-card.mud-paper-outlined::after,.mud-timeline-modifiers.mud-timeline-horizontal.mud-timeline-position-alternate.mud-timeline-reverse .mud-timeline-item.mud-timeline-item-end .mud-timeline-item-content .mud-card.mud-paper-outlined::after{bottom:-23px}.mud-timeline-modifiers.mud-timeline-horizontal.mud-timeline-position-alternate.mud-timeline-reverse .mud-timeline-item:nth-child(2n):not(.mud-timeline-item-end) .mud-timeline-item-content .mud-card::before,.mud-timeline-modifiers.mud-timeline-horizontal.mud-timeline-position-alternate.mud-timeline-reverse .mud-timeline-item:nth-child(2n):not(.mud-timeline-item-end) .mud-timeline-item-content .mud-card::after{transform:rotate(90deg);top:-24px;bottom:auto;left:calc(50% - 8px)}.mud-timeline-modifiers.mud-timeline-horizontal.mud-timeline-position-alternate.mud-timeline-reverse .mud-timeline-item:nth-child(2n):not(.mud-timeline-item-end) .mud-timeline-item-content .mud-card.mud-paper-outlined::after{top:-23px}.mud-typography{margin:0}.mud-typography-h1{font-size:var(--mud-typography-h1-size);font-family:var(--mud-typography-h1-family);font-weight:var(--mud-typography-h1-weight);line-height:var(--mud-typography-h1-lineheight);letter-spacing:var(--mud-typography-h1-letterspacing);text-transform:var(--mud-typography-h1-text-transform)}.mud-typography-h2{font-size:var(--mud-typography-h2-size);font-family:var(--mud-typography-h2-family);font-weight:var(--mud-typography-h2-weight);line-height:var(--mud-typography-h2-lineheight);letter-spacing:var(--mud-typography-h2-letterspacing);text-transform:var(--mud-typography-h2-text-transform)}.mud-typography-h3{font-size:var(--mud-typography-h3-size);font-family:var(--mud-typography-h3-family);font-weight:var(--mud-typography-h3-weight);line-height:var(--mud-typography-h3-lineheight);letter-spacing:var(--mud-typography-h3-letterspacing);text-transform:var(--mud-typography-h3-text-transform)}.mud-typography-h4{font-size:var(--mud-typography-h4-size);font-family:var(--mud-typography-h4-family);font-weight:var(--mud-typography-h4-weight);line-height:var(--mud-typography-h4-lineheight);letter-spacing:var(--mud-typography-h4-letterspacing);text-transform:var(--mud-typography-h4-text-transform)}.mud-typography-h5{font-size:var(--mud-typography-h5-size);font-family:var(--mud-typography-h5-family);font-weight:var(--mud-typography-h5-weight);line-height:var(--mud-typography-h5-lineheight);letter-spacing:var(--mud-typography-h5-letterspacing);text-transform:var(--mud-typography-h5-text-transform)}.mud-typography-h6{font-size:var(--mud-typography-h6-size);font-family:var(--mud-typography-h6-family);font-weight:var(--mud-typography-h6-weight);line-height:var(--mud-typography-h6-lineheight);letter-spacing:var(--mud-typography-h6-letterspacing);text-transform:var(--mud-typography-h6-text-transform)}.mud-typography-subtitle1{font-size:var(--mud-typography-subtitle1-size);font-family:var(--mud-typography-subtitle1-family);font-weight:var(--mud-typography-subtitle1-weight);line-height:var(--mud-typography-subtitle1-lineheight);letter-spacing:var(--mud-typography-subtitle1-letterspacing);text-transform:var(--mud-typography-subtitle1-text-transform)}.mud-typography-subtitle2{font-size:var(--mud-typography-subtitle2-size);font-family:var(--mud-typography-subtitle2-family);font-weight:var(--mud-typography-subtitle2-weight);line-height:var(--mud-typography-subtitle2-lineheight);letter-spacing:var(--mud-typography-subtitle2-letterspacing);text-transform:var(--mud-typography-subtitle2-text-transform)}.mud-typography-body1{font-size:var(--mud-typography-body1-size);font-family:var(--mud-typography-body1-family);font-weight:var(--mud-typography-body1-weight);line-height:var(--mud-typography-body1-lineheight);letter-spacing:var(--mud-typography-body1-letterspacing);text-transform:var(--mud-typography-body1-text-transform)}.mud-typography-body2{font-size:var(--mud-typography-body2-size);font-family:var(--mud-typography-body2-family);font-weight:var(--mud-typography-body2-weight);line-height:var(--mud-typography-body2-lineheight);letter-spacing:var(--mud-typography-body2-letterspacing);text-transform:var(--mud-typography-body2-text-transform)}.mud-typography-button{font-size:var(--mud-typography-button-size);font-family:var(--mud-typography-button-family);font-weight:var(--mud-typography-button-weight);line-height:var(--mud-typography-button-lineheight);letter-spacing:var(--mud-typography-button-letterspacing);text-transform:var(--mud-typography-button-text-transform)}.mud-typography-caption{font-size:var(--mud-typography-caption-size);font-family:var(--mud-typography-caption-family);font-weight:var(--mud-typography-caption-weight);line-height:var(--mud-typography-caption-lineheight);letter-spacing:var(--mud-typography-caption-letterspacing);text-transform:var(--mud-typography-caption-text-transform)}.mud-typography-overline{font-size:var(--mud-typography-overline-size);font-family:var(--mud-typography-overline-family);font-weight:var(--mud-typography-overline-weight);line-height:var(--mud-typography-overline-lineheight);letter-spacing:var(--mud-typography-overline-letterspacing);text-transform:var(--mud-typography-overline-text-transform)}.mud-typography-srOnly{width:1px;height:1px;overflow:hidden;position:absolute}.mud-typography-align-left{text-align:left}.mud-typography-align-center{text-align:center}.mud-typography-align-right{text-align:right}.mud-typography-align-justify{text-align:justify}.mud-typography-nowrap{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.mud-typography-gutterbottom{margin-bottom:.35em}.mud-typography-paragraph{margin-bottom:16px}.mud-table{color:var(--mud-palette-text-primary);background-color:var(--mud-palette-surface);border-radius:var(--mud-default-borderradius);transition:box-shadow 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}.mud-table.mud-table-square{border-radius:0px}.mud-table.mud-table-outlined{border:1px solid var(--mud-palette-lines-default)}.mud-table-container{width:100%;overflow-y:auto}.mud-table-root{width:100%;border-spacing:0}.mud-table-root .mud-table-head{display:table-header-group}.mud-table-root .mud-table-head .mud-table-cell{color:var(--mud-palette-text-primary);font-weight:500;line-height:1.5rem}.mud-table-root .mud-table-body{display:table-row-group}.mud-table-root .mud-table-body .mud-table-cell{color:var(--mud-palette-text-primary)}.mud-table-root>.mud-table-body:last-child>.mud-table-row:last-child>.mud-table-cell,.mud-table-root>.mud-table-foot:last-child>.mud-table-row:last-child>.mud-table-cell{border-bottom:none}.mud-table-sort-label{display:inline-flex;align-items:center;flex-direction:inherit;justify-content:flex-start}.mud-table-sort-label.mud-clickable{cursor:pointer;user-select:none;transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}@media(hover: hover)and (pointer: fine){.mud-table-sort-label.mud-clickable:hover{opacity:.64}.mud-table-sort-label.mud-clickable:hover .mud-table-sort-label-icon{opacity:1}}.mud-table-sort-label .mud-table-sort-label-icon{font-size:18px;transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,transform 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;margin-left:4px;user-select:none;margin-right:4px;opacity:0}.mud-table-sort-label .mud-table-sort-label-icon.mud-direction-desc{opacity:1;transform:rotate(180deg)}.mud-table-sort-label .mud-table-sort-label-icon.mud-direction-asc{opacity:1;transform:rotate(0deg)}.mud-table-toolbar{left:0;position:sticky;padding-left:16px;padding-right:8px;padding-inline-start:16px;padding-inline-end:8px}.mud-table-cell{display:table-cell;padding:16px;font-size:.875rem;text-align:start;font-weight:400;line-height:1.43;border-bottom:1px solid var(--mud-palette-table-lines);letter-spacing:.01071em;vertical-align:inherit}.mud-table-cell .mud-checkbox{margin:-4px}.mud-table-cell .mud-checkbox>.mud-icon-button{padding:4px}.mud-table-cell>.mud-input-control>div.mud-input.mud-input-text{color:var(--mud-theme-on-surface);font-size:.875rem;margin-top:-14px;margin-bottom:-8px}.mud-table-cell>.mud-select>.mud-input-control>div.mud-input.mud-input-text{color:var(--mud-theme-on-surface);font-size:.875rem;margin-top:-14px;margin-bottom:-8px}.mud-table-cell-footer{color:var(--mud-palette-text-secondary);font-size:.75rem;line-height:1.3125rem}.mud-table-dense * .mud-table-row .mud-table-cell{padding:6px 24px 6px 16px;padding-inline-start:16px;padding-inline-end:24px}.mud-table-dense * .mud-table-row .mud-table-cell .mud-table-cell-checkbox .mud-button-root{padding:4px}.mud-table-dense * .mud-table-row .mud-table-cell .mud-table-row-expander{padding:4px}.mud-table-dense * .mud-table-row .mud-table-cell:last-child{padding-right:16px;padding-inline-end:16px}.mud-table-bordered .mud-table-container .mud-table-root .mud-table-body .mud-table-row .mud-table-cell:not(:last-child){border-right:1px solid var(--mud-palette-table-lines)}.mud-table-bordered .mud-table-container .mud-table-root .mud-table-head.table-head-bordered .mud-table-row .mud-table-cell:not(:last-child){border-right:1px solid var(--mud-palette-table-lines)}.mud-table-bordered .mud-table-container .mud-table-root .mud-table-foot.table-foot-bordered .mud-table-row .mud-table-cell:not(:last-child){border-right:1px solid var(--mud-palette-table-lines)}.mud-application-layout-rtl .mud-table-bordered .mud-table-container .mud-table-root .mud-table-body .mud-table-row .mud-table-cell:first-child{border-right:none;border-top-right-radius:0px}.mud-application-layout-rtl .mud-table-bordered .mud-table-container .mud-table-root .mud-table-body .mud-table-row .mud-table-cell:last-child{border-right:1px solid var(--mud-palette-table-lines);border-top-right-radius:0px}.mud-application-layout-rtl .mud-table-bordered .mud-table-container .mud-table-root .mud-table-head.table-head-bordered .mud-table-row .mud-table-cell:last-child{border-right:1px solid var(--mud-palette-table-lines);border-top-right-radius:0px}.mud-application-layout-rtl .mud-table-bordered .mud-table-container .mud-table-root .mud-table-head.table-head-bordered .mud-table-row .mud-table-cell:only-child{border-right:none;border-top-right-radius:var(--mud-default-borderradius)}.mud-application-layout-rtl .mud-table-bordered .mud-table-container .mud-table-root .mud-table-head .mud-table-row th.mud-table-cell:first-child{border-right:none;border-top-right-radius:var(--mud-default-borderradius)}.mud-application-layout-rtl .mud-table-bordered .mud-table-container .mud-table-root .mud-table-foot.table-foot-bordered .mud-table-row .mud-table-cell:last-child{border-right:1px solid var(--mud-palette-table-lines);border-top-right-radius:0px}.mud-application-layout-rtl .mud-table-bordered .mud-table-container .mud-table-root .mud-table-foot .mud-table-row .mud-table-cell:first-child{border-right:none}.mud-table-sticky-header .mud-table-container{overflow-x:auto}.mud-table-sticky-header * .mud-table-root .mud-table-head * .mud-table-cell:first-child{border-radius:var(--mud-default-borderradius) 0px 0px 0px}.mud-table-sticky-header * .mud-table-root .mud-table-head * .mud-table-cell:last-child{border-radius:0px var(--mud-default-borderradius) 0px 0px}.mud-table-sticky-header * .mud-table-root .mud-table-head * .mud-table-cell{background-color:var(--mud-palette-surface);position:sticky;z-index:2;top:0}.mud-table-sticky-header * .mud-table-root .mud-table-head * .mud-table-loading{background-color:var(--mud-palette-surface);position:sticky;z-index:2;top:59px}.mud-table-sticky-header * .mud-table-root .mud-table-head * .mud-filter-panel-cell{top:59px}table:has(.mud-table-loading) .mud-table-sticky-header * .mud-table-root .mud-table-head * .mud-filter-panel-cell{top:63px}.mud-table-sticky-header * .mud-table-root .mud-table-head * .mud-table-cell.sticky-left,.mud-table-sticky-header * .mud-table-root .mud-table-head * .mud-table-cell.sticky-right{z-index:3;background-color:var(--mud-palette-background-gray)}.mud-table-sticky-header.mud-table-dense * .mud-table-root .mud-table-head * .mud-table-loading{top:39px}.mud-table-sticky-header.mud-table-dense * .mud-table-root .mud-table-head * .mud-filter-panel-cell{top:39px}table:has(.mud-table-loading) .mud-table-sticky-header.mud-table-dense * .mud-table-root .mud-table-head * .mud-filter-panel-cell{top:43px}.mud-table-sticky-footer .mud-table-container{overflow-x:auto}.mud-table-sticky-footer * .mud-table-root .mud-table-foot{position:sticky;z-index:2;bottom:0}.mud-table-sticky-footer * .mud-table-root .mud-table-foot * .mud-table-cell{background-color:var(--mud-palette-surface)}.mud-table-row{color:inherit;display:table-row;outline:0;vertical-align:middle}@media(hover: hover)and (pointer: fine){.mud-table-hover .mud-table-container .mud-table-root .mud-table-body .mud-table-row:hover{background-color:var(--mud-palette-table-hover)}}.mud-table-striped .mud-table-container .mud-table-root .mud-table-body .mud-table-row:nth-of-type(odd){background-color:var(--mud-palette-table-striped)}@media(hover: hover)and (pointer: fine){.mud-table-hover.mud-table-striped .mud-table-container .mud-table-root .mud-table-body .mud-table-row:nth-of-type(odd):hover{background-color:var(--mud-palette-table-hover)}}.mud-table-cell-align-left{text-align:left}.mud-table-cell-align-center{text-align:center}.mud-table-cell-align-right{text-align:right;flex-direction:row-reverse}.mud-table-cell-align-justify{text-align:justify}.mud-table-pagination-display{display:flex;flex-shrink:0}.mud-table-pagination-display .mud-tablepager-left{flex-direction:row !important}.mud-table-pagination-display .mud-tablepager-right{flex-direction:row-reverse !important}.mud-table-pagination-information{white-space:nowrap;direction:initial}.mud-table-page-number-information{white-space:nowrap;direction:initial}.mud-table-pagination{color:var(--mud-theme-on-surface);overflow:auto;font-size:.875rem;display:initial;position:sticky;left:0}.mud-table-pagination:last-child{padding:0}.mud-table-pagination-toolbar{border-top:1px solid var(--mud-palette-table-lines);height:52px;padding-right:2px;padding-inline-end:2px;padding-inline-start:unset;flex-wrap:nowrap}.mud-table-pagination-toolbar .mud-tablepager-left{flex-direction:row !important}.mud-table-pagination-toolbar .mud-tablepager-right{flex-direction:row-reverse !important}.mud-table-pagination-spacer{flex:1 1 100%}.mud-table-pagination-caption{display:flex;flex-shrink:0;align-items:center;padding-left:10px;padding-right:10px}.mud-table-pagination-select{cursor:pointer;margin-left:10px !important;margin-right:10px !important;margin-top:0px !important;min-width:52px}.mud-table-pagination-select .mud-select-input{margin-top:0px !important;padding:0 7px !important}.mud-table-pagination-select .mud-input .mud-input-root{max-width:80px;cursor:pointer;margin-top:2px;border:none;font-size:.875rem;font-weight:400;line-height:1.43;letter-spacing:.01071em;color:var(--mud-theme-on-surface)}.mud-table-pagination-actions{flex-shrink:0;align-items:center;margin-left:10px;margin-inline-start:10px;margin-inline-end:unset}.mud-table-smalldevices-sortselect{display:none}.mud-table-loading{position:relative}.mud-table-loading .mud-table-loading-progress{width:100%}.mud-table-empty-row{background-color:var(--mud-palette-surface);vertical-align:middle;text-align:center}tr.mud-table-row-group-indented-1 td:first-child{padding-left:48px !important}tr.mud-table-row-group-indented-2 td:first-child{padding-left:96px !important}tr.mud-table-row-group-indented-3 td:first-child{padding-left:144px !important}tr.mud-table-row-group-indented-4 td:first-child{padding-left:192px !important}tr.mud-table-row-group-indented-5 td:first-child{padding-left:240px !important}.mud-header-togglehierarchy .mud-table-row-expander{padding:6px}.mud-table-row-expander{margin-top:-12px;margin-bottom:-12px;margin-inline-start:-12px;margin-inline-end:-2px}@media(max-width: 360px){.mud-table .mud-table-pagination .mud-select{margin-left:auto;margin-right:-14px;margin-inline-start:auto;margin-inline-end:-14px}.mud-table .mud-table-pagination .mud-select~.mud-table-pagination-caption{margin-left:unset !important;margin-inline-start:unset !important}}@media(max-width: 416px){.mud-table .mud-table-pagination .mud-table-pagination-toolbar{flex-wrap:wrap;padding-top:16px;padding-right:16px;padding-inline-end:16px;padding-inline-start:unset;min-height:100px}.mud-table .mud-table-pagination .mud-table-pagination-toolbar .mud-table-pagination-actions{margin-left:auto;margin-right:-14px;margin-inline-start:auto;margin-inline-end:-14px}}@media(max-width: 600px){.mud-xs-table .mud-table-root .mud-table-head,.mud-xs-table .mud-table-root .mud-table-foot{display:none}.mud-xs-table .mud-table-smalldevices-sortselect{display:block;padding:4px 16px 8px}.mud-xs-table .mud-table-body{border-top:1px solid var(--mud-palette-table-lines)}.mud-xs-table .mud-table-row{display:revert}.mud-xs-table .mud-table-row .mud-table-cell:last-child{border-bottom:1px solid var(--mud-palette-table-lines)}.mud-xs-table .mud-table-cell{display:flex;justify-content:space-between;align-items:center;border:none;padding:14px 16px;text-align:start !important}.mud-xs-table.mud-table-dense .mud-table-cell{padding:6px 16px}.mud-xs-table .mud-table-cell:before{content:attr(data-label);font-weight:500;padding-right:16px;padding-inline-end:16px;padding-inline-start:unset}.mud-xs-table.mud-table-small-alignright .mud-table-cell:before{margin-right:auto}.mud-xs-table .mud-table-cell-hide{visibility:collapse;height:0;padding:0;margin:0}.mud-xs-table .mud-table-pagination .mud-table-pagination-spacer{flex:none}.mud-xs-table .mud-table-pagination .mud-table-pagination-actions .mud-button-root:first-child{display:none}.mud-xs-table .mud-table-pagination .mud-table-pagination-actions .mud-button-root:last-child{display:none}.mud-xs-table .mud-table-pagination .mud-select~.mud-table-pagination-caption{margin-left:auto;margin-inline-start:auto}.mud-xs-table.mud-table-bordered .mud-table-container .mud-table-root colgroup~.mud-table-body .mud-table-row .mud-table-cell{border-right:1px solid var(--mud-palette-table-lines) !important}.mud-xs-table.mud-table-bordered .mud-table-container .mud-table-root .mud-table-body .mud-table-row .mud-table-cell{border-right:none !important}}@media(max-width: 960px){.mud-sm-table .mud-table-root .mud-table-head,.mud-sm-table .mud-table-root .mud-table-foot{display:none}.mud-sm-table .mud-table-smalldevices-sortselect{display:block;padding:4px 16px 8px}.mud-sm-table .mud-table-body{border-top:1px solid var(--mud-palette-table-lines)}.mud-sm-table .mud-table-row{display:revert}.mud-sm-table .mud-table-row .mud-table-cell:last-child{border-bottom:1px solid var(--mud-palette-table-lines)}.mud-sm-table .mud-table-cell{display:flex;justify-content:space-between;align-items:center;border:none;padding:14px 16px;text-align:start !important}.mud-sm-table.mud-table-dense .mud-table-cell{padding:6px 16px}.mud-sm-table .mud-table-cell:before{content:attr(data-label);font-weight:500;padding-right:16px;padding-inline-end:16px;padding-inline-start:unset}.mud-sm-table.mud-table-small-alignright .mud-table-cell:before{margin-right:auto}.mud-sm-table .mud-table-cell-hide{visibility:collapse;height:0;padding:0;margin:0}.mud-sm-table .mud-table-pagination .mud-table-pagination-spacer{flex:none}.mud-sm-table .mud-table-pagination .mud-table-pagination-actions .mud-button-root:first-child{display:none}.mud-sm-table .mud-table-pagination .mud-table-pagination-actions .mud-button-root:last-child{display:none}.mud-sm-table .mud-table-pagination .mud-select~.mud-table-pagination-caption{margin-left:auto;margin-inline-start:auto}.mud-sm-table.mud-table-bordered .mud-table-container .mud-table-root colgroup~.mud-table-body .mud-table-row .mud-table-cell{border-right:1px solid var(--mud-palette-table-lines) !important}.mud-sm-table.mud-table-bordered .mud-table-container .mud-table-root .mud-table-body .mud-table-row .mud-table-cell{border-right:none !important}}@media(max-width: 1280px){.mud-md-table .mud-table-root .mud-table-head,.mud-md-table .mud-table-root .mud-table-foot{display:none}.mud-md-table .mud-table-smalldevices-sortselect{display:block;padding:4px 16px 8px}.mud-md-table .mud-table-body{border-top:1px solid var(--mud-palette-table-lines)}.mud-md-table .mud-table-row{display:revert}.mud-md-table .mud-table-row .mud-table-cell:last-child{border-bottom:1px solid var(--mud-palette-table-lines)}.mud-md-table .mud-table-cell{display:flex;justify-content:space-between;align-items:center;border:none;padding:14px 16px;text-align:start !important}.mud-md-table.mud-table-dense .mud-table-cell{padding:6px 16px}.mud-md-table .mud-table-cell:before{content:attr(data-label);font-weight:500;padding-right:16px;padding-inline-end:16px;padding-inline-start:unset}.mud-md-table.mud-table-small-alignright .mud-table-cell:before{margin-right:auto}.mud-md-table .mud-table-cell-hide{visibility:collapse;height:0;padding:0;margin:0}.mud-md-table .mud-table-pagination .mud-table-pagination-spacer{flex:none}.mud-md-table .mud-table-pagination .mud-table-pagination-actions .mud-button-root:first-child{display:none}.mud-md-table .mud-table-pagination .mud-table-pagination-actions .mud-button-root:last-child{display:none}.mud-md-table .mud-table-pagination .mud-select~.mud-table-pagination-caption{margin-left:auto;margin-inline-start:auto}.mud-md-table.mud-table-bordered .mud-table-container .mud-table-root colgroup~.mud-table-body .mud-table-row .mud-table-cell{border-right:1px solid var(--mud-palette-table-lines) !important}.mud-md-table.mud-table-bordered .mud-table-container .mud-table-root .mud-table-body .mud-table-row .mud-table-cell{border-right:none !important}}@media(max-width: 1920px){.mud-lg-table .mud-table-root .mud-table-head,.mud-lg-table .mud-table-root .mud-table-foot{display:none}.mud-lg-table .mud-table-smalldevices-sortselect{display:block;padding:4px 16px 8px}.mud-lg-table .mud-table-body{border-top:1px solid var(--mud-palette-table-lines)}.mud-lg-table .mud-table-row{display:revert}.mud-lg-table .mud-table-row .mud-table-cell:last-child{border-bottom:1px solid var(--mud-palette-table-lines)}.mud-lg-table .mud-table-cell{display:flex;justify-content:space-between;align-items:center;border:none;padding:14px 16px;text-align:start !important}.mud-lg-table.mud-table-dense .mud-table-cell{padding:6px 16px}.mud-lg-table .mud-table-cell:before{content:attr(data-label);font-weight:500;padding-right:16px;padding-inline-end:16px;padding-inline-start:unset}.mud-lg-table.mud-table-small-alignright .mud-table-cell:before{margin-right:auto}.mud-lg-table .mud-table-cell-hide{visibility:collapse;height:0;padding:0;margin:0}.mud-lg-table .mud-table-pagination .mud-table-pagination-spacer{flex:none}.mud-lg-table .mud-table-pagination .mud-table-pagination-actions .mud-button-root:first-child{display:none}.mud-lg-table .mud-table-pagination .mud-table-pagination-actions .mud-button-root:last-child{display:none}.mud-lg-table .mud-table-pagination .mud-select~.mud-table-pagination-caption{margin-left:auto;margin-inline-start:auto}.mud-lg-table.mud-table-bordered .mud-table-container .mud-table-root colgroup~.mud-table-body .mud-table-row .mud-table-cell{border-right:1px solid var(--mud-palette-table-lines) !important}.mud-lg-table.mud-table-bordered .mud-table-container .mud-table-root .mud-table-body .mud-table-row .mud-table-cell{border-right:none !important}}@media(max-width: 2560px){.mud-xl-table .mud-table-root .mud-table-head,.mud-xl-table .mud-table-root .mud-table-foot{display:none}.mud-xl-table .mud-table-smalldevices-sortselect{display:block;padding:4px 16px 8px}.mud-xl-table .mud-table-body{border-top:1px solid var(--mud-palette-table-lines)}.mud-xl-table .mud-table-row{display:revert}.mud-xl-table .mud-table-row .mud-table-cell:last-child{border-bottom:1px solid var(--mud-palette-table-lines)}.mud-xl-table .mud-table-cell{display:flex;justify-content:space-between;align-items:center;border:none;padding:14px 16px;text-align:start !important}.mud-xl-table.mud-table-dense .mud-table-cell{padding:6px 16px}.mud-xl-table .mud-table-cell:before{content:attr(data-label);font-weight:500;padding-right:16px;padding-inline-end:16px;padding-inline-start:unset}.mud-xl-table.mud-table-small-alignright .mud-table-cell:before{margin-right:auto}.mud-xl-table .mud-table-cell-hide{visibility:collapse;height:0;padding:0;margin:0}.mud-xl-table .mud-table-pagination .mud-table-pagination-spacer{flex:none}.mud-xl-table .mud-table-pagination .mud-table-pagination-actions .mud-button-root:first-child{display:none}.mud-xl-table .mud-table-pagination .mud-table-pagination-actions .mud-button-root:last-child{display:none}.mud-xl-table .mud-table-pagination .mud-select~.mud-table-pagination-caption{margin-left:auto;margin-inline-start:auto}.mud-xl-table.mud-table-bordered .mud-table-container .mud-table-root colgroup~.mud-table-body .mud-table-row .mud-table-cell{border-right:1px solid var(--mud-palette-table-lines) !important}.mud-xl-table.mud-table-bordered .mud-table-container .mud-table-root .mud-table-body .mud-table-row .mud-table-cell{border-right:none !important}}@media(min-width: 2560px){.mud-xxl-table .mud-table-root .mud-table-head,.mud-xxl-table .mud-table-root .mud-table-foot{display:none}.mud-xxl-table .mud-table-smalldevices-sortselect{display:block;padding:4px 16px 8px}.mud-xxl-table .mud-table-body{border-top:1px solid var(--mud-palette-table-lines)}.mud-xxl-table .mud-table-row{display:revert}.mud-xxl-table .mud-table-row .mud-table-cell:last-child{border-bottom:1px solid var(--mud-palette-table-lines)}.mud-xxl-table .mud-table-cell{display:flex;justify-content:space-between;align-items:center;border:none;padding:14px 16px;text-align:start !important}.mud-xxl-table.mud-table-dense .mud-table-cell{padding:6px 16px}.mud-xxl-table .mud-table-cell:before{content:attr(data-label);font-weight:500;padding-right:16px;padding-inline-end:16px;padding-inline-start:unset}.mud-xxl-table.mud-table-small-alignright .mud-table-cell:before{margin-right:auto}.mud-xxl-table .mud-table-cell-hide{visibility:collapse;height:0;padding:0;margin:0}.mud-xxl-table .mud-table-pagination .mud-table-pagination-spacer{flex:none}.mud-xxl-table .mud-table-pagination .mud-table-pagination-actions .mud-button-root:first-child{display:none}.mud-xxl-table .mud-table-pagination .mud-table-pagination-actions .mud-button-root:last-child{display:none}.mud-xxl-table .mud-table-pagination .mud-select~.mud-table-pagination-caption{margin-left:auto;margin-inline-start:auto}.mud-xxl-table.mud-table-bordered .mud-table-container .mud-table-root colgroup~.mud-table-body .mud-table-row .mud-table-cell{border-right:1px solid var(--mud-palette-table-lines) !important}.mud-xxl-table.mud-table-bordered .mud-table-container .mud-table-root .mud-table-body .mud-table-row .mud-table-cell{border-right:none !important}}.mud-tabs{display:flex;flex-direction:column}.mud-tabs.mud-tabs-reverse{flex-direction:column-reverse}.mud-tabs.mud-tabs-vertical{flex-direction:row}.mud-tabs.mud-tabs-vertical .mud-tooltip-root{width:auto}.mud-tabs.mud-tabs-vertical-reverse{flex-direction:row-reverse}.mud-tabs.mud-tabs-rounded{border-radius:var(--mud-default-borderradius);overflow:hidden}.mud-tabs.mud-tabs-rounded .mud-tabs-tabbar{border-radius:var(--mud-default-borderradius)}.mud-tabs.mud-tabs-rounded .mud-tabs-panels{border-radius:var(--mud-default-borderradius)}.mud-tabs-tabbar{position:relative;background-color:var(--mud-palette-surface)}.mud-tabs-tabbar.mud-tabs-border-left{border-top-right-radius:0 !important;border-bottom-right-radius:0 !important;border-right:1px solid var(--mud-palette-lines-default)}.mud-tabs-tabbar.mud-tabs-border-right{border-top-left-radius:0 !important;border-bottom-left-radius:0 !important;border-left:1px solid var(--mud-palette-lines-default)}.mud-tabs-tabbar.mud-tabs-border-top{border-bottom-left-radius:0 !important;border-bottom-right-radius:0 !important;border-bottom:1px solid var(--mud-palette-lines-default)}.mud-tabs-tabbar.mud-tabs-border-bottom{border-top-left-radius:0 !important;border-top-right-radius:0 !important;border-top:1px solid var(--mud-palette-lines-default)}.mud-tabs-tabbar.mud-tabs-rounded{border-radius:var(--mud-default-borderradius)}.mud-tabs-tabbar.mud-tabs-vertical .mud-tabs-tabbar-inner{flex-direction:column}.mud-tabs-tabbar.mud-tabs-vertical .mud-tabs-tabbar-inner .mud-tabs-scroll-button .mud-button-root{width:100%;border-radius:0px;height:32px}.mud-tabs-tabbar.mud-tabs-vertical .mud-tabs-tabbar-inner .mud-tabs-scroll-button .mud-button-root .mud-icon-button-label .mud-icon-root{transform:rotate(90deg)}.mud-tabs-tabbar .mud-tabs-tabbar-inner{display:flex;min-height:48px}.mud-tabs-tabbar-content{width:100%;flex:1 1 auto;display:inline-block;position:relative;white-space:nowrap;overflow:hidden}.mud-tabs-tabbar-content .mud-tabs-tabbar-wrapper{width:max-content;position:inherit;display:flex;transition:.3s cubic-bezier(0.25, 0.8, 0.5, 1)}.mud-tabs-tabbar-content .mud-tabs-tabbar-wrapper.mud-tabs-centered{margin:auto}.mud-tabs-tabbar-content .mud-tabs-tabbar-wrapper.mud-tabs-vertical{flex-direction:column}.mud-tabs-panels{position:relative;transition:.3s cubic-bezier(0.25, 0.8, 0.5, 1)}.mud-tabs-panels.mud-tabs-vertical{display:flex;flex-grow:1}.mud-tab{width:100%;display:inline-flex;padding:6px 12px;min-height:48px;flex-shrink:0;font-weight:500;line-height:1.75;user-select:none;white-space:normal;letter-spacing:.02857em;text-transform:uppercase;text-align:center;align-items:center;justify-content:center;transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}@media(hover: hover)and (pointer: fine){.mud-tab:hover{cursor:pointer;background-color:var(--mud-palette-action-default-hover)}}.mud-tab.mud-tab-active{color:var(--mud-palette-primary)}@media(hover: hover)and (pointer: fine){.mud-tab.mud-tab-active:hover{background-color:var(--mud-palette-primary-hover)}}.mud-tab.mud-disabled{cursor:default;pointer-events:none;color:var(--mud-palette-text-disabled)}.mud-tab .mud-tab-icon-text{margin-right:8px;margin-inline-end:8px;margin-inline-start:unset}.mud-tab.mud-tab-panel-hidden{display:none}.mud-tab-slider{position:absolute;background:var(--mud-palette-primary)}.mud-tab-slider.mud-tab-slider-horizontal{height:2px;bottom:0;transition:left .3s cubic-bezier(0.64, 0.09, 0.08, 1);will-change:left}.mud-tab-slider.mud-tab-slider-horizontal.mud-tab-slider-horizontal-reverse{top:0;bottom:unset}.mud-tab-slider.mud-tab-slider-vertical{width:2px;right:0;transition:top .3s cubic-bezier(0.64, 0.09, 0.08, 1);will-change:top}.mud-tab-slider.mud-tab-slider-vertical.mud-tab-slider-vertical-reverse{left:0;right:unset}.mud-tab-badge{margin-left:8px;margin-inline-start:8px;margin-inline-end:unset}.mud-tabs-tabbar-primary{background-color:var(--mud-palette-primary);color:var(--mud-palette-primary-text)}.mud-tabs-tabbar-primary .mud-tab-slider{background:var(--mud-palette-primary-text)}.mud-tabs-tabbar-primary .mud-tab.mud-tab-active{color:var(--mud-palette-primary-text)}@media(hover: hover)and (pointer: fine){.mud-tabs-tabbar-primary .mud-tab.mud-tab-active:hover{background-color:var(--mud-palette-primary-lighten)}}.mud-tabs-tabbar-secondary{background-color:var(--mud-palette-secondary);color:var(--mud-palette-secondary-text)}.mud-tabs-tabbar-secondary .mud-tab-slider{background:var(--mud-palette-secondary-text)}.mud-tabs-tabbar-secondary .mud-tab.mud-tab-active{color:var(--mud-palette-secondary-text)}@media(hover: hover)and (pointer: fine){.mud-tabs-tabbar-secondary .mud-tab.mud-tab-active:hover{background-color:var(--mud-palette-secondary-lighten)}}.mud-tabs-tabbar-tertiary{background-color:var(--mud-palette-tertiary);color:var(--mud-palette-tertiary-text)}.mud-tabs-tabbar-tertiary .mud-tab-slider{background:var(--mud-palette-tertiary-text)}.mud-tabs-tabbar-tertiary .mud-tab.mud-tab-active{color:var(--mud-palette-tertiary-text)}@media(hover: hover)and (pointer: fine){.mud-tabs-tabbar-tertiary .mud-tab.mud-tab-active:hover{background-color:var(--mud-palette-tertiary-lighten)}}.mud-tabs-tabbar-info{background-color:var(--mud-palette-info);color:var(--mud-palette-info-text)}.mud-tabs-tabbar-info .mud-tab-slider{background:var(--mud-palette-info-text)}.mud-tabs-tabbar-info .mud-tab.mud-tab-active{color:var(--mud-palette-info-text)}@media(hover: hover)and (pointer: fine){.mud-tabs-tabbar-info .mud-tab.mud-tab-active:hover{background-color:var(--mud-palette-info-lighten)}}.mud-tabs-tabbar-success{background-color:var(--mud-palette-success);color:var(--mud-palette-success-text)}.mud-tabs-tabbar-success .mud-tab-slider{background:var(--mud-palette-success-text)}.mud-tabs-tabbar-success .mud-tab.mud-tab-active{color:var(--mud-palette-success-text)}@media(hover: hover)and (pointer: fine){.mud-tabs-tabbar-success .mud-tab.mud-tab-active:hover{background-color:var(--mud-palette-success-lighten)}}.mud-tabs-tabbar-warning{background-color:var(--mud-palette-warning);color:var(--mud-palette-warning-text)}.mud-tabs-tabbar-warning .mud-tab-slider{background:var(--mud-palette-warning-text)}.mud-tabs-tabbar-warning .mud-tab.mud-tab-active{color:var(--mud-palette-warning-text)}@media(hover: hover)and (pointer: fine){.mud-tabs-tabbar-warning .mud-tab.mud-tab-active:hover{background-color:var(--mud-palette-warning-lighten)}}.mud-tabs-tabbar-error{background-color:var(--mud-palette-error);color:var(--mud-palette-error-text)}.mud-tabs-tabbar-error .mud-tab-slider{background:var(--mud-palette-error-text)}.mud-tabs-tabbar-error .mud-tab.mud-tab-active{color:var(--mud-palette-error-text)}@media(hover: hover)and (pointer: fine){.mud-tabs-tabbar-error .mud-tab.mud-tab-active:hover{background-color:var(--mud-palette-error-lighten)}}.mud-tabs-tabbar-dark{background-color:var(--mud-palette-dark);color:var(--mud-palette-dark-text)}.mud-tabs-tabbar-dark .mud-tab-slider{background:var(--mud-palette-dark-text)}.mud-tabs-tabbar-dark .mud-tab.mud-tab-active{color:var(--mud-palette-dark-text)}@media(hover: hover)and (pointer: fine){.mud-tabs-tabbar-dark .mud-tab.mud-tab-active:hover{background-color:var(--mud-palette-dark-lighten)}}.tab-transition-enter{transform:translate(100%, 0)}.tab-transition-leave,.tab-transition-leave-active{position:absolute;top:0}.tab-transition-leave-to{position:absolute;transform:translate(-100%, 0)}.tab-reverse-transition-enter{transform:translate(-100%, 0)}.tab-reverse-transition-leave,.tab-reverse-transition-leave-to{top:0;position:absolute;transform:translate(100%, 0)}.mud-dynamic-tabs .mud-tabs-tabbar .mud-tab{padding:6px 14px}.mud-dynamic-tabs .mud-tabs-tabbar .mud-tab .mud-icon-button{padding:4px;margin-right:-4px;margin-inline-end:-4px;margin-inline-start:unset}.mud-dynamic-tabs .mud-tabs-tabbar .mud-tab .mud-tabs-panel-header-before{padding-right:8px;padding-inline-end:8px;padding-inline-start:unset}.mud-dynamic-tabs .mud-tabs-tabbar .mud-tab .mud-tabs-panel-header-after{padding-left:8px;padding-inline-start:8px;padding-inline-end:unset}.mud-tabs-header.mud-tabs-header-before{display:inherit}.mud-tabs-header.mud-tabs-header-after{display:inherit}.mud-tabs-panel-header{display:flex;flex:1 1 auto}.mud-tabs-panel-header.mud-tabs-panel-header-before{justify-content:flex-start}.mud-tabs-panel-header.mud-tabs-panel-header-after{justify-content:flex-end}.mud-select{display:flex;flex-grow:1;position:relative}.mud-select.mud-autocomplete{display:block}.mud-select.mud-autocomplete .mud-select-input{cursor:text}.mud-select.mud-autocomplete .mud-input-adornment{cursor:pointer}.mud-select.mud-autocomplete--with-progress .mud-select-input input{padding-right:3.5rem !important}.mud-select.mud-autocomplete--with-progress .mud-input-adorned-end input{padding-right:4.5rem !important}.mud-select.mud-autocomplete--with-progress .mud-select-input .mud-icon-button{display:none !important}.mud-select.mud-autocomplete--with-progress .progress-indicator-circular{position:absolute;width:100%;top:0;bottom:0;display:flex;align-items:center;justify-content:flex-end;padding-top:.25rem;padding-bottom:.25rem;padding-right:1rem}.mud-select.mud-autocomplete--with-progress .mud-progress-linear{position:absolute;bottom:-1px;height:2px}.mud-select .mud-select-input{cursor:pointer}.mud-select .mud-select-input .mud-input-slot{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.mud-select .mud-select-input .mud-input-adornment-end{margin-left:0}.mud-select .mud-select-input:disabled{cursor:default}.mud-select .mud-disabled .mud-select-input{cursor:default}.mud-rtl-provider .mud-select .progress-indicator-circular--with-adornment{padding-right:1rem}.mud-rtl-provider.mud-application-layout-rtl .mud-select .progress-indicator-circular--with-adornment{padding-right:0rem !important;padding-left:1rem !important}.mud-select>.mud-form-helpertext{margin-top:-21px}.mud-select-all{margin-top:10px;border-bottom:1px solid #d3d3d3;padding-bottom:18px}.mud-select-filler{white-space:nowrap;height:0px}.mud-width-content{max-width:min-content}.mud-input{position:relative;color:var(--mud-palette-text-primary);cursor:text;display:inline-flex;box-sizing:border-box;align-items:center;color-scheme:var(--mud-native-html-color-scheme);line-height:1.1876em}.mud-input.mud-input-full-width{width:100%}.mud-input.mud-disabled{color:var(--mud-palette-text-disabled);cursor:default}.mud-input.mud-disabled>.mud-input-adornment{color:var(--mud-palette-text-disabled);pointer-events:none}.mud-input.mud-input-underline:before{left:0;right:0;bottom:0;content:" ";position:absolute;transition:border-bottom .2s,background-color .2s;border-bottom:1px solid var(--mud-palette-lines-inputs);pointer-events:none}@media(hover: hover)and (pointer: fine){.mud-input.mud-input-underline:hover:not(.mud-disabled):before{border-bottom:1px solid var(--mud-palette-action-default)}}.mud-input.mud-input-underline:after{left:0;right:0;bottom:0;content:"";position:absolute;transform:scaleX(0);transition:transform 200ms cubic-bezier(0, 0, 0.2, 1) 0ms;border-bottom:2px solid var(--mud-palette-primary);pointer-events:none}.mud-input.mud-input-underline.mud-disabled:before{border-bottom-style:dotted}.mud-input.mud-input-underline.mud-input-error:after{transform:scaleX(1);border-bottom-color:var(--mud-palette-error)}.mud-input.mud-input-filled{position:relative;transition:background-color 200ms cubic-bezier(0, 0, 0.2, 1) 0ms;background-color:rgba(0,0,0,.09);border-top-left-radius:4px;border-top-right-radius:4px}@media(hover: hover)and (pointer: fine){.mud-input.mud-input-filled:hover{background-color:rgba(0,0,0,.13)}}.mud-input.mud-input-filled.mud-focused{background-color:rgba(0,0,0,.09)}.mud-input.mud-input-filled.mud-disabled{background-color:rgba(0,0,0,.12)}.mud-input.mud-input-filled.mud-input-adorned-start{padding-left:12px;padding-inline-start:12px;padding-inline-end:unset}.mud-input.mud-input-filled.mud-input-adorned-end{padding-right:12px;padding-inline-end:12px;padding-inline-start:unset}.mud-input.mud-input-filled.mud-input-underline:before{left:0;right:0;bottom:0;content:" ";position:absolute;transition:border-bottom-color 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;border-bottom:1px solid var(--mud-palette-lines-inputs);pointer-events:none}.mud-input.mud-input-filled.mud-input-underline:after{left:0;right:0;bottom:0;content:"";position:absolute;transform:scaleX(0);transition:transform 200ms cubic-bezier(0, 0, 0.2, 1) 0ms;border-bottom:2px solid var(--mud-palette-primary);pointer-events:none}@media(hover: hover)and (pointer: fine){.mud-input.mud-input-filled.mud-input-underline:hover:before{border-bottom:1px solid var(--mud-palette-action-default)}}.mud-input.mud-input-filled.mud-input-underline.mud-disabled:before{border-bottom-style:dotted}.mud-input.mud-input-filled.mud-input-underline.mud-input-error:after{transform:scaleX(1);border-bottom-color:var(--mud-palette-error)}.mud-input.mud-input-outlined{position:relative;border-width:0px}.mud-input.mud-input-outlined .mud-input-outlined-border{display:flex;position:absolute;top:0;right:0;left:0;box-sizing:border-box;width:100%;max-width:100%;min-width:0%;height:100%;text-align:start;pointer-events:none;border-radius:var(--mud-default-borderradius);border-color:var(--mud-palette-lines-inputs);border-width:1px;border-style:solid;transition:border-width,border-color 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}.mud-input.mud-input-outlined>.mud-input-outlined-border legend{float:none;visibility:hidden;font-size:.75rem;font-weight:inherit;width:0;height:0;margin:0 11px 0 11px;padding:0;position:relative}@media(hover: hover)and (pointer: fine){.mud-input.mud-input-outlined:not(.mud-disabled):not(:focus-within):hover .mud-input-outlined-border{border-color:var(--mud-palette-action-default)}}.mud-input.mud-input-outlined.mud-shrink>.mud-input-outlined-border legend{width:auto;padding:0 5px}.mud-input.mud-input-outlined:focus-within>.mud-input-outlined-border,.mud-input.mud-input-outlined:focus-within .mud-shrink>.mud-input-outlined-border{border-width:2px;border-color:var(--mud-palette-primary)}.mud-input.mud-input-outlined:focus-within>.mud-input-outlined-border legend,.mud-input.mud-input-outlined:focus-within .mud-shrink>.mud-input-outlined-border legend{width:auto;padding:0 5px}.mud-input.mud-input-outlined.mud-disabled .mud-input-outlined-border{border-color:var(--mud-palette-action-disabled)}.mud-input.mud-input-outlined.mud-input-adorned-start{padding-left:14px;padding-inline-start:14px;padding-inline-end:unset}.mud-input.mud-input-outlined.mud-input-adorned-end{padding-right:14px;padding-inline-end:14px;padding-inline-start:unset}.mud-input-error .mud-input-outlined-border{border-color:var(--mud-palette-error) !important}.mud-input:focus-within.mud-input-underline:after{transform:scaleX(1)}.mud-input>input.mud-input-root,div.mud-input-slot.mud-input-root{font:inherit;color:currentColor;width:100%;border:0;height:1lh;margin:0;display:block;padding:6px 0 7px;min-width:0;background:none;position:relative;box-sizing:content-box;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mud-input>input.mud-input-root::placeholder,div.mud-input-slot.mud-input-root::placeholder{color:currentColor;opacity:.42;transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}.mud-input>input.mud-input-root::-webkit-input-placeholder,div.mud-input-slot.mud-input-root::-webkit-input-placeholder{color:currentColor;opacity:.42;transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}.mud-input>input.mud-input-root:-moz-placeholder,div.mud-input-slot.mud-input-root:-moz-placeholder{color:currentColor;opacity:.42;transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}.mud-input>input.mud-input-root::-moz-placeholder,div.mud-input-slot.mud-input-root::-moz-placeholder{color:currentColor;opacity:.42;transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}.mud-input>input.mud-input-root:-ms-input-placeholder,div.mud-input-slot.mud-input-root:-ms-input-placeholder{color:currentColor;opacity:.42;transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}.mud-input>input.mud-input-root::-ms-input-placeholder,div.mud-input-slot.mud-input-root::-ms-input-placeholder{color:currentColor;opacity:.42;transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}.mud-input>input.mud-input-root.mud-input-root-margin-dense,div.mud-input-slot.mud-input-root.mud-input-root-margin-dense{padding-top:3px}.mud-input>input.mud-input-root.mud-input-root-multiline,div.mud-input-slot.mud-input-root.mud-input-root-multiline{height:auto;resize:none;padding:0}.mud-input>input.mud-input-root.mud-input-root-type-search,div.mud-input-slot.mud-input-root.mud-input-root-type-search{-moz-appearance:textfield;-webkit-appearance:textfield}.mud-input>input.mud-input-root:focus,.mud-input>input.mud-input-root:active,div.mud-input-slot.mud-input-root:focus,div.mud-input-slot.mud-input-root:active{outline:0}.mud-input>input.mud-input-root:invalid,div.mud-input-slot.mud-input-root:invalid{box-shadow:none}.mud-input>input.mud-input-root:disabled,div.mud-input-slot.mud-input-root:disabled{opacity:1}.mud-input>input.mud-input-root.mud-input-root-filled,div.mud-input-slot.mud-input-root.mud-input-root-filled{padding:27px 12px 10px}.mud-input>input.mud-input-root.mud-input-root-filled.mud-input-root-margin-dense,div.mud-input-slot.mud-input-root.mud-input-root-filled.mud-input-root-margin-dense{padding-top:23px;padding-bottom:6px}.mud-input>input.mud-input-root.mud-input-root-filled:-webkit-autofill,div.mud-input-slot.mud-input-root.mud-input-root-filled:-webkit-autofill{border-top-left-radius:inherit;border-top-right-radius:inherit}.mud-input>input.mud-input-root.mud-input-root-filled.mud-input-root-hidden-label,div.mud-input-slot.mud-input-root.mud-input-root-filled.mud-input-root-hidden-label{padding-top:18px;padding-bottom:19px}.mud-input>input.mud-input-root.mud-input-root-filled.mud-input-root-hidden-label.mud-input-root-margin-dense,div.mud-input-slot.mud-input-root.mud-input-root-filled.mud-input-root-hidden-label.mud-input-root-margin-dense{padding-top:10px;padding-bottom:11px}.mud-input>input.mud-input-root.mud-input-root-filled.mud-input-root-multiline,div.mud-input-slot.mud-input-root.mud-input-root-filled.mud-input-root-multiline{padding:0}.mud-input>input.mud-input-root.mud-input-root-filled.mud-input-root-adorned-start,div.mud-input-slot.mud-input-root.mud-input-root-filled.mud-input-root-adorned-start{padding-left:0;padding-inline-start:0;padding-inline-end:12px}.mud-input>input.mud-input-root.mud-input-root-filled.mud-input-root-adorned-end,div.mud-input-slot.mud-input-root.mud-input-root-filled.mud-input-root-adorned-end{padding-right:0;padding-inline-end:0;padding-inline-start:12px}.mud-input>input.mud-input-root-outlined,div.mud-input-slot.mud-input-root-outlined{padding:18.5px 14px}.mud-input>input.mud-input-root-outlined.mud-input-root:-webkit-autofill,div.mud-input-slot.mud-input-root-outlined.mud-input-root:-webkit-autofill{border-radius:inherit}.mud-input>input.mud-input-root-outlined.mud-input-root-margin-dense,div.mud-input-slot.mud-input-root-outlined.mud-input-root-margin-dense{padding-top:10.5px;padding-bottom:10.5px}.mud-input>input.mud-input-root-outlined.mud-input-root-adorned-start,div.mud-input-slot.mud-input-root-outlined.mud-input-root-adorned-start{padding-left:0;padding-inline-start:0;padding-inline-end:14px}.mud-input>input.mud-input-root-outlined.mud-input-root-adorned-end,div.mud-input-slot.mud-input-root-outlined.mud-input-root-adorned-end{padding-right:0;padding-inline-end:0;padding-inline-start:14px}.mud-input>input::-ms-reveal,.mud-input>input::-ms-clear,div.mud-input-slot::-ms-reveal,div.mud-input-slot::-ms-clear{display:none !important}.mud-input>textarea.mud-input-root{font:inherit;color:currentColor;width:100%;border:0;height:auto;margin:6px 0 7px;padding:0;display:block;min-width:0;background:none;position:relative;box-sizing:content-box;letter-spacing:inherit;-webkit-tap-highlight-color:rgba(0,0,0,0);resize:none;cursor:auto}.mud-input>textarea.mud-input-root::placeholder{color:currentColor;opacity:.42;transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}.mud-input>textarea.mud-input-root::-webkit-input-placeholder{color:currentColor;opacity:.42;transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}.mud-input>textarea.mud-input-root:-moz-placeholder{color:currentColor;opacity:.42;transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}.mud-input>textarea.mud-input-root::-moz-placeholder{color:currentColor;opacity:.42;transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}.mud-input>textarea.mud-input-root:-ms-input-placeholder{color:currentColor;opacity:.42;transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}.mud-input>textarea.mud-input-root::-ms-input-placeholder{color:currentColor;opacity:.42;transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}.mud-input>textarea.mud-input-root.mud-input-root-margin-dense{padding-top:3px}.mud-input>textarea.mud-input-root.mud-input-root-type-search{-moz-appearance:textfield;-webkit-appearance:textfield}.mud-input>textarea.mud-input-root:focus,.mud-input>textarea.mud-input-root:active{outline:0}.mud-input>textarea.mud-input-root:invalid{box-shadow:none}.mud-input>textarea.mud-input-root:disabled{opacity:1}.mud-input>textarea.mud-input-root.mud-input-root-filled{box-sizing:border-box;margin-top:27px;margin-bottom:0;padding:0px 12px 10px}.mud-input>textarea.mud-input-root.mud-input-root-filled.mud-input-root-margin-dense{padding-top:23px;padding-bottom:6px;mask-image:linear-gradient(to bottom, transparent 23px, black 23px)}.mud-input>textarea.mud-input-root.mud-input-root-filled:-webkit-autofill{border-top-left-radius:inherit;border-top-right-radius:inherit}.mud-input>textarea.mud-input-root.mud-input-root-filled.mud-input-root-hidden-label{padding-top:18px;padding-bottom:19px;mask-image:linear-gradient(to bottom, transparent 18px, black 18px)}.mud-input>textarea.mud-input-root.mud-input-root-filled.mud-input-root-hidden-label.mud-input-root-margin-dense{padding-top:10px;padding-bottom:11px;mask-image:linear-gradient(to bottom, transparent 10px, black 10px)}.mud-input>textarea.mud-input-root.mud-input-root-filled.mud-input-root-adorned-start{padding-left:0;padding-inline-start:0;padding-inline-end:12px}.mud-input>textarea.mud-input-root.mud-input-root-filled.mud-input-root-adorned-end{padding-right:0;padding-inline-end:unset;padding-inline-start:12px}.mud-input>textarea.mud-input-root::-webkit-scrollbar{width:8px;height:8px;z-index:1;cursor:crosshair}.mud-input>textarea.mud-input-root::-webkit-scrollbar-thumb{background:var(--mud-palette-lines-inputs);border-radius:1px}.mud-input>textarea.mud-input-root::-webkit-scrollbar-track{background:rgba(0,0,0,0)}.mud-input>textarea.mud-input-root-outlined{box-sizing:border-box;margin-top:18.5px;margin-bottom:0;padding:0px 18.5px 14px}.mud-input>textarea.mud-input-root-outlined.mud-input-root:-webkit-autofill{border-radius:inherit}.mud-input>textarea.mud-input-root-outlined.mud-input-root-margin-dense{padding-top:10.5px;padding-bottom:10.5px;mask-image:linear-gradient(to bottom, transparent 10.5px, black 10.5px)}.mud-input>textarea.mud-input-root-outlined.mud-input-root-adorned-start{padding-left:0;padding-inline-start:0;padding-inline-end:14px}.mud-input>textarea.mud-input-root-outlined.mud-input-root-adorned-end{padding-right:0;padding-inline-end:0;padding-inline-start:14px}.mud-input-adornment{height:.01em;display:flex;max-height:2em;align-items:center;white-space:nowrap}.mud-input-adornment-start{margin-right:8px;margin-inline-end:8px;margin-inline-start:unset}.mud-input-adornment-start.mud-input-root-filled-shrink{margin-top:16px}.mud-input-adornment-end{margin-left:8px;margin-inline-start:8px;margin-inline-end:unset}.mud-input-number-control.mud-input-showspin .mud-input-adornment-end{margin-right:12px;margin-inline-end:12px;margin-inline-start:unset}.mud-input-number-control.mud-input-showspin .mud-input-underline:not(.mud-input-filled) .mud-input-adornment-end{margin-right:24px;margin-inline-end:24px;margin-inline-start:unset}.mud-input-adornment-disable-pointerevents{pointer-events:none}.mud-range-input-separator{visibility:hidden;margin:0 4px}.mud-input:focus-within .mud-range-input-separator{visibility:visible}.mud-picker .mud-shrink .mud-range-input-separator{visibility:visible}.mud-input-input-control{user-select:none}.mud-input-control{border:0;margin:0;padding:0;display:flex;flex:1 1 auto;max-width:100%;position:relative;flex-direction:column;vertical-align:top}.mud-input-control.mud-input-control-full-width{width:100%}.mud-input-control.mud-input-control-boolean-input{flex:none;margin:0}.mud-input-control.mud-input-control-boolean-input .mud-radio-group{display:inherit;flex-direction:row;align-items:center;flex-wrap:wrap}.mud-input-control.mud-input-outlined-with-label{margin-top:8px;margin-bottom:4px}.mud-input-control.mud-input-control-margin-dense{margin:4px 0px}.mud-input-control.mud-input-control-margin-dense.mud-input-outlined-with-label{margin-top:8px;margin-bottom:4px}.mud-input-control.mud-input-control-margin-normal{margin:8px 0px}.mud-input-control.mud-input-control-margin-normal.mud-input-outlined-with-label{margin-top:16px;margin-bottom:8px}.mud-input-control>.mud-input-control-input-container{position:relative;display:flex;flex-direction:column}.mud-input-control>.mud-input-control-input-container>div.mud-input.mud-input-text.mud-input-text-with-label{margin-top:16px}.mud-input-control>.mud-input-control-input-container>.mud-input-label-outlined.mud-input-label-inputcontrol{line-height:1.15rem}.mud-input-control>.mud-input-control-input-container>.mud-input-label-inputcontrol{color:var(--mud-palette-text-secondary);padding:0;font-size:1rem;font-weight:400;line-height:1.15rem;letter-spacing:.00938em;z-index:0;pointer-events:none}.mud-input-control>.mud-input-control-input-container>.mud-input-label-inputcontrol.mud-disabled{color:var(--mud-palette-text-disabled)}.mud-input-control>.mud-input-control-input-container>.mud-input-label-inputcontrol.mud-input-error{color:var(--mud-palette-error) !important}.mud-input-control.mud-input-required>.mud-input-control-input-container>.mud-input-label::after{content:"*"}.mud-input-control.mud-input-number-control input::-webkit-outer-spin-button,.mud-input-control.mud-input-number-control input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.mud-input-control.mud-input-number-control input[type=number]{-moz-appearance:textfield}.mud-input-control.mud-input-number-control.mud-input-showspin .mud-input:not(.mud-input-adorned-end) input{padding-right:24px;padding-inline-end:24px}.mud-input-control.mud-input-number-control.mud-input-showspin .mud-input:not(.mud-input-adorned-end) input.mud-input-root-margin-dense{padding-right:20px;padding-inline-end:20px}.mud-input-control.mud-input-number-control.mud-input-showspin .mud-input:not(.mud-input-adorned-end).mud-input-text input{padding-inline-start:0}.mud-input-control.mud-input-number-control.mud-input-showspin .mud-input:not(.mud-input-adorned-end).mud-input-text input.mud-input-root-margin-dense{padding-inline-start:0}.mud-input-control.mud-input-number-control.mud-input-showspin .mud-input:not(.mud-input-adorned-end).mud-input-filled input{padding-inline-start:12px}.mud-input-control.mud-input-number-control.mud-input-showspin .mud-input:not(.mud-input-adorned-end).mud-input-filled input.mud-input-root-margin-dense{padding-inline-start:12px}.mud-input-control.mud-input-number-control.mud-input-showspin .mud-input:not(.mud-input-adorned-end).mud-input-outlined input{padding-inline-start:14px}.mud-input-control.mud-input-number-control.mud-input-showspin .mud-input:not(.mud-input-adorned-end).mud-input-outlined input.mud-input-root-margin-dense{padding-inline-start:14px}.mud-input-control.mud-input-number-control .mud-input-numeric-spin{display:inline-flex;flex-direction:column;justify-content:space-between;position:absolute;right:0;top:0;bottom:0}.mud-input-control.mud-input-number-control .mud-input-numeric-spin button{padding:2px 0;min-width:unset;min-height:unset}.mud-input-control:focus-within .mud-input-helper-text.mud-input-helper-onfocus,.mud-input-control.mud-input-error .mud-input-helper-text.mud-input-helper-onfocus{transform:translateY(0)}.mud-input-control-helper-container{overflow:hidden;margin-top:3px}.mud-input-helper-text{color:var(--mud-palette-text-secondary);margin:0;font-size:.75rem;text-align:start;font-weight:400;line-height:1.66;letter-spacing:.03333em}.mud-input-helper-text.mud-input-helper-onfocus{transform:translateY(-100%);transition:color 200ms cubic-bezier(0, 0, 0.2, 1) 0ms,transform 200ms cubic-bezier(0, 0, 0.2, 1) 0ms}.mud-input-helper-text.mud-disabled{color:var(--mud-palette-text-disabled)}.mud-input-helper-text.mud-input-error{color:var(--mud-palette-error) !important}.mud-input-helper-text-margin-dense{margin-top:4px}.mud-input-helper-text-contained{margin-left:14px;margin-right:14px}.mud-application-layout-rtl .mud-input-control.mud-input-number-control .mud-input-numeric-spin{left:0;right:unset}.mud-input-label{display:block;transform-origin:top left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.mud-input-label-inputcontrol{top:0;left:0;position:absolute;transform:translate(0, 24px) scale(1)}.mud-input-label-margindense{transform:translate(0, 21px) scale(1)}.mud-input-label-shrink{transform:translate(0, 1.5px) scale(0.75);transform-origin:top left}.mud-input-label-animated{transition:color 200ms cubic-bezier(0, 0, 0.2, 1) 0ms,transform 200ms cubic-bezier(0, 0, 0.2, 1) 0ms,max-width 200ms cubic-bezier(0, 0, 0.2, 1) 0ms}.mud-input-label-filled{z-index:1;transform:translate(12px, 20px) scale(1);max-width:calc(100% - 12px);pointer-events:none}.mud-input-label-filled.mud-input-label-margin-dense{transform:translate(12px, 17px) scale(1)}.mud-input-label-outlined{transform:translate(14px, 20px) scale(1);max-width:calc(100% - 14px);pointer-events:none;background-color:rgba(0,0,0,0);padding:0px 5px !important}.mud-input-label-outlined.mud-input-label-margin-dense{transform:translate(14px, 12px) scale(1)}.mud-shrink~label.mud-input-label.mud-input-label-inputcontrol{color:var(--mud-palette-text-primary)}.mud-input:focus-within~label.mud-input-label.mud-input-label-inputcontrol{color:var(--mud-palette-primary)}.mud-shrink~label.mud-input-label.mud-input-label-inputcontrol,.mud-input:focus-within~label.mud-input-label.mud-input-label-inputcontrol{transform:translate(0, 1.5px) scale(0.75);transform-origin:top left}.mud-shrink~label.mud-input-label.mud-input-label-inputcontrol.mud-input-label-filled,.mud-input:focus-within~label.mud-input-label.mud-input-label-inputcontrol.mud-input-label-filled{transform:translate(12px, 10px) scale(0.75);max-width:calc((100% - 12px)/.75)}.mud-shrink~label.mud-input-label.mud-input-label-inputcontrol.mud-input-label-filled.mud-input-label-margin-dense,.mud-input:focus-within~label.mud-input-label.mud-input-label-inputcontrol.mud-input-label-filled.mud-input-label-margin-dense{transform:translate(12px, 7px) scale(0.75)}.mud-shrink~label.mud-input-label.mud-input-label-inputcontrol.mud-input-label-outlined,.mud-input:focus-within~label.mud-input-label.mud-input-label-inputcontrol.mud-input-label-outlined{transform:translate(14px, -6px) scale(0.75);max-width:calc((100% - 14px)/.75)}.mud-input:focus-within~label.mud-input-label.mud-input-label-inputcontrol.mud-input-error{color:var(--mud-palette-error)}.mud-application-layout-rtl .mud-input-label{transform-origin:top right}.mud-application-layout-rtl .mud-input-label-inputcontrol{left:unset;right:0}.mud-application-layout-rtl .mud-input-label-shrink{transform-origin:top right}.mud-application-layout-rtl .mud-input-label-filled{transform:translate(-12px, 20px) scale(1)}.mud-application-layout-rtl .mud-input-label-filled.mud-input-label-margin-dense{transform:translate(-12px, 17px) scale(1)}.mud-application-layout-rtl .mud-input-label-outlined{transform:translate(-14px, 20px) scale(1)}.mud-application-layout-rtl .mud-input-label-outlined.mud-input-label-margin-dense{transform:translate(-14px, 12px) scale(1)}.mud-application-layout-rtl .mud-shrink~label.mud-input-label.mud-input-label-inputcontrol,.mud-application-layout-rtl .mud-input:focus-within~label.mud-input-label.mud-input-label-inputcontrol{transform-origin:top right}.mud-application-layout-rtl .mud-shrink~label.mud-input-label.mud-input-label-inputcontrol.mud-input-label-filled,.mud-application-layout-rtl .mud-input:focus-within~label.mud-input-label.mud-input-label-inputcontrol.mud-input-label-filled{transform:translate(-12px, 10px) scale(0.75)}.mud-application-layout-rtl .mud-shrink~label.mud-input-label.mud-input-label-inputcontrol.mud-input-label-filled.mud-input-label-margin-dense,.mud-application-layout-rtl .mud-input:focus-within~label.mud-input-label.mud-input-label-inputcontrol.mud-input-label-filled.mud-input-label-margin-dense{transform:translate(-12px, 7px) scale(0.75)}.mud-application-layout-rtl .mud-shrink~label.mud-input-label.mud-input-label-inputcontrol.mud-input-label-outlined,.mud-application-layout-rtl .mud-input:focus-within~label.mud-input-label.mud-input-label-inputcontrol.mud-input-label-outlined{transform:translate(-14px, -6px) scale(0.75)}.mud-input-content-placement-start{flex-direction:row-reverse}.mud-input-content-placement-start.mud-input-with-content{margin-left:16px;margin-inline-start:16px}.mud-input-content-placement-end{flex-direction:row}.mud-input-content-placement-end.mud-input-with-content{margin-right:16px;margin-inline-end:16px}.mud-input-content-placement-top{margin-inline-end:unset;flex-direction:column-reverse}.mud-input-content-placement-top.mud-input-with-content{margin-left:16px;margin-inline-start:16px}.mud-input-content-placement-bottom{margin-inline-end:unset;flex-direction:column}.mud-input-content-placement-bottom.mud-input-with-content{margin-left:16px;margin-inline-start:16px}.mud-file-upload{flex-grow:0}.mud-file-upload>.mud-input-control-input-container{display:initial !important}.mud-file-upload.mud-input-control{margin-top:0}.mud-image.fluid{max-width:100%;height:auto}.mud-overlay{top:0;left:0;right:0;bottom:0;margin:0 !important;align-items:center;justify-content:center;border-radius:inherit;display:flex;position:fixed;transition:.3s cubic-bezier(0.25, 0.8, 0.5, 1),z-index 1ms;z-index:5}.mud-overlay.mud-overlay-absolute{position:absolute}.mud-overlay .mud-overlay-scrim{top:0;left:0;right:0;bottom:0;border-radius:inherit;position:absolute;height:100%;width:100%;border-color:rgba(0,0,0,0);background-color:rgba(0,0,0,0);animation:mud-animation-fadein ease .15s;-webkit-animation:mud-animation-fadein ease .15s;-moz-animation:mud-animation-fadein ease .15s;-o-animation:mud-animation-fadein ease .15s}.mud-overlay .mud-overlay-scrim.mud-overlay-dark{border-color:var(--mud-palette-overlay-dark);background-color:var(--mud-palette-overlay-dark)}.mud-overlay .mud-overlay-scrim.mud-overlay-light{border-color:var(--mud-palette-overlay-light);background-color:var(--mud-palette-overlay-light)}.mud-overlay .mud-overlay-scrim:hover{cursor:default}.mud-overlay .mud-overlay-content{position:relative}.mud-overlay.mud-overlay-popover{z-index:var(--mud-zindex-popover)}.mud-overlay.mud-overlay-dialog{z-index:calc(var(--mud-zindex-dialog) + 1)}.mud-overlay.mud-overlay-drawer{z-index:calc(var(--mud-zindex-appbar) + 1)}.mud-treeview{margin:0px;padding:0px;list-style:none;overflow:auto}.mud-treeview.mud-treeview-selected-primary .mud-treeview-item-content.mud-treeview-item-selected{color:var(--mud-palette-primary);--mud-ripple-color: var(--mud-palette-primary);background-color:var(--mud-palette-primary-hover)}.mud-treeview.mud-treeview-selected-secondary .mud-treeview-item-content.mud-treeview-item-selected{color:var(--mud-palette-secondary);--mud-ripple-color: var(--mud-palette-secondary);background-color:var(--mud-palette-secondary-hover)}.mud-treeview.mud-treeview-selected-tertiary .mud-treeview-item-content.mud-treeview-item-selected{color:var(--mud-palette-tertiary);--mud-ripple-color: var(--mud-palette-tertiary);background-color:var(--mud-palette-tertiary-hover)}.mud-treeview.mud-treeview-selected-info .mud-treeview-item-content.mud-treeview-item-selected{color:var(--mud-palette-info);--mud-ripple-color: var(--mud-palette-info);background-color:var(--mud-palette-info-hover)}.mud-treeview.mud-treeview-selected-success .mud-treeview-item-content.mud-treeview-item-selected{color:var(--mud-palette-success);--mud-ripple-color: var(--mud-palette-success);background-color:var(--mud-palette-success-hover)}.mud-treeview.mud-treeview-selected-warning .mud-treeview-item-content.mud-treeview-item-selected{color:var(--mud-palette-warning);--mud-ripple-color: var(--mud-palette-warning);background-color:var(--mud-palette-warning-hover)}.mud-treeview.mud-treeview-selected-error .mud-treeview-item-content.mud-treeview-item-selected{color:var(--mud-palette-error);--mud-ripple-color: var(--mud-palette-error);background-color:var(--mud-palette-error-hover)}.mud-treeview.mud-treeview-selected-dark .mud-treeview-item-content.mud-treeview-item-selected{color:var(--mud-palette-dark);--mud-ripple-color: var(--mud-palette-dark);background-color:var(--mud-palette-dark-hover)}.mud-treeview.mud-treeview-checked-primary .mud-treeview-item-checkbox .mud-button-root.mud-icon-button{color:var(--mud-palette-primary)}.mud-treeview.mud-treeview-checked-secondary .mud-treeview-item-checkbox .mud-button-root.mud-icon-button{color:var(--mud-palette-secondary)}.mud-treeview.mud-treeview-checked-tertiary .mud-treeview-item-checkbox .mud-button-root.mud-icon-button{color:var(--mud-palette-tertiary)}.mud-treeview.mud-treeview-checked-info .mud-treeview-item-checkbox .mud-button-root.mud-icon-button{color:var(--mud-palette-info)}.mud-treeview.mud-treeview-checked-success .mud-treeview-item-checkbox .mud-button-root.mud-icon-button{color:var(--mud-palette-success)}.mud-treeview.mud-treeview-checked-warning .mud-treeview-item-checkbox .mud-button-root.mud-icon-button{color:var(--mud-palette-warning)}.mud-treeview.mud-treeview-checked-error .mud-treeview-item-checkbox .mud-button-root.mud-icon-button{color:var(--mud-palette-error)}.mud-treeview.mud-treeview-checked-dark .mud-treeview-item-checkbox .mud-button-root.mud-icon-button{color:var(--mud-palette-dark)}.mud-treeview-group{margin:0px;padding:0px;margin-left:17px;margin-inline-start:17px;margin-inline-end:unset;list-style:none}.mud-treeview-item{margin:0;outline:0;padding:0;cursor:default;list-style:none;min-height:2rem;align-items:center;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mud-treeview-item .mud-treeview-item-arrow .mud-icon-button,.mud-treeview-item .mud-treeview-item-checkbox .mud-icon-button{padding:4px}.mud-treeview-item.mud-treeview-item-disabled{color:var(--mud-palette-action-disabled) !important;cursor:default !important;pointer-events:none !important}.mud-treeview-item-content{width:100%;display:flex;padding:4px 8px;align-items:center;transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}@media(hover: hover)and (pointer: fine){.mud-treeview-hover .mud-treeview-item-content:hover{background-color:var(--mud-palette-action-default-hover)}}.mud-treeview-item-arrow{width:2rem;display:flex;flex-shrink:0;margin:0 4px;min-height:32px;justify-content:center}.mud-treeview-item-arrow .mud-treeview-item-arrow-expand{transition:.3s cubic-bezier(0.25, 0.8, 0.5, 1),visibility 0s}.mud-treeview-item-arrow .mud-treeview-item-arrow-expand.mud-transform{transform:rotate(90deg)}.mud-treeview-item-arrow .mud-treeview-item-arrow-load{animation:rotation 1s infinite linear}.mud-treeview-item-icon{width:32px;display:flex;flex-shrink:0;margin-right:4px;margin-inline-end:4px;margin-inline-start:unset;justify-content:center}.mud-treeview-item-label{flex-grow:1;padding-left:4px;padding-right:4px}.mud-treeview-dense .mud-treeview-item{min-height:unset}.mud-treeview-dense .mud-treeview-item-content{padding:1px 4px}.mud-treeview-dense .mud-treeview-item-arrow{min-height:unset}.mud-treeview-dense .mud-icon-button{padding:0}.mud-treeview-select-none{user-select:none}@keyframes rotation{from{transform:rotate(0deg)}to{transform:rotate(359deg)}}.mud-application-layout-rtl .mud-treeview-item-arrow{transform:scaleX(-1)}.mud-data-grid th{position:relative}.mud-data-grid .drop-allowed{color:var(--mud-palette-success)}.mud-data-grid .drop-not-allowed{color:var(--mud-palette-error)}.mud-data-grid .drag-icon-options{transition:opacity 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,transform 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;opacity:0;cursor:grab}.mud-data-grid .mud-table-cell.edit-mode-cell .mud-input-control{margin:0 !important}.mud-data-grid .mud-table-cell.edit-mode-cell .mud-input{font-size:inherit}.mud-data-grid .mud-table-cell.edit-mode-cell .mud-input:before{content:none}.mud-data-grid .mud-table-cell.edit-mode-cell .mud-inputafter{content:none}.mud-data-grid .mud-table-cell.edit-mode-cell .mud-input .mud-input-outlined-border{border:none}.mud-data-grid .mud-table-cell.filter-header-cell{padding:6px 24px 6px 16px;padding-inline-start:16px;padding-inline-end:24px}.mud-data-grid .mud-table-cell.sticky-left,.mud-data-grid .mud-table-cell.sticky-right{position:sticky;background-color:var(--mud-palette-background-gray);z-index:1}.mud-data-grid .mud-table-cell.sticky-left{left:0px}.mud-data-grid .mud-table-cell.sticky-right{right:0px}.mud-data-grid .mud-table-cell:not(.mud-table-child-content) .mud-input-text{margin-top:0 !important}.mud-data-grid .mud-table-cell .column-header{display:flex;align-items:center;justify-content:space-between}.mud-data-grid .mud-table-cell .column-header .sortable-column-header{width:100%}@media(hover: hover)and (pointer: fine){.mud-data-grid .mud-table-cell .column-header:hover .column-options .sort-direction-icon,.mud-data-grid .mud-table-cell .column-header:hover .column-options .column-options-icon,.mud-data-grid .mud-table-cell .column-header:hover .column-options .drag-icon-options{opacity:.8;color:var(--mud-palette-action-default)}.mud-data-grid .mud-table-cell .column-header:hover .column-options .mud-menu .mud-icon-button-label{opacity:1;color:var(--mud-palette-action-default)}}.mud-data-grid .mud-table-cell .column-header .column-options{display:inline-flex;align-items:center;flex-direction:inherit;justify-content:flex-start}.mud-data-grid .mud-table-cell .column-header .sort-direction-icon{font-size:18px;margin-left:4px;margin-inline-start:4px;margin-inline-end:unset;user-select:none;transition:opacity 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,transform 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;opacity:0}.mud-data-grid .mud-table-cell .column-header .sort-direction-icon.mud-direction-desc{opacity:1;transform:rotate(180deg)}.mud-data-grid .mud-table-cell .column-header .sort-direction-icon.mud-direction-asc{opacity:1;transform:rotate(0deg)}.mud-data-grid .mud-table-cell .column-header .mud-sort-index{transform:scale(0.9) translate(-2px, -2px)}.mud-data-grid .mud-table-cell .column-header .column-options .mud-menu .mud-icon-button-label{user-select:none;transition:opacity 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,transform 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;opacity:0}.mud-data-grid .mud-table-cell .mud-resizer{position:absolute;top:0;right:0;width:8px;cursor:col-resize;user-select:none}.mud-application-layout-rtl .mud-data-grid .mud-table-cell .mud-resizer{right:auto;left:0}@media(hover: hover)and (pointer: fine){.mud-data-grid .mud-table-cell .mud-resizer:hover{border-right:2px solid var(--mud-palette-primary)}}.mud-data-grid .mud-table-cell .mud-resizing{border-right:2px solid var(--mud-palette-primary)}.mud-data-grid .mud-table-cell.mud-datagrid-group{background-color:var(--mud-palette-background-gray)}.mud-data-grid .mud-table-cell.mud-row-group-indented-2{padding-left:48px !important}.mud-data-grid .mud-table-cell.mud-row-group-indented-3{padding-left:96px !important}.mud-data-grid .mud-table-cell.mud-row-group-indented-4{padding-left:144px !important}.mud-data-grid .mud-table-cell.mud-row-group-indented-5{padding-left:192px !important}@media(hover: hover)and (pointer: fine){.mud-data-grid-columns-panel:hover .column-options .sort-direction-icon,.mud-data-grid-columns-panel:hover .column-options .column-options-icon,.mud-data-grid-columns-panel:hover .column-options .drag-icon-options{opacity:.8;color:var(--mud-palette-action-default)}.mud-data-grid-columns-panel:hover .column-options .mud-menu .mud-icon-button-label{opacity:1;color:var(--mud-palette-action-default)}}.mud-data-grid-columns-panel .sort-direction-icon{font-size:18px;margin-left:4px;margin-inline-start:4px;margin-inline-end:unset;user-select:none;transition:opacity 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,transform 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}.mud-data-grid-columns-panel .sort-direction-icon.mud-direction-desc{opacity:1;transform:rotate(180deg)}.mud-data-grid-columns-panel .sort-direction-icon.mud-direction-asc{opacity:1;transform:rotate(0deg)}.mud-data-grid-columns-panel .mud-sort-index{transform:scale(0.9) translate(-2px, -2px)}.mud-data-grid-columns-panel .drag-icon-options{transition:opacity 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,transform 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;opacity:1;cursor:grab}.mud-data-grid-columns-panel .mud-drop-item-preview-start{z-index:0}.mud-toggle-group{display:grid;overflow:hidden;box-sizing:border-box;border-radius:var(--mud-default-borderradius)}.mud-toggle-group>.mud-toggle-item{box-shadow:none;border-width:inherit;border-color:inherit;border-radius:0}.mud-toggle-group-outlined{border-width:1px;border-color:rgb(from var(--mud-palette-text-primary) r g b/var(--mud-palette-border-opacity))}.mud-toggle-group-outlined.mud-toggle-group-primary{border-color:rgb(from var(--mud-palette-primary) r g b/var(--mud-palette-border-opacity))}.mud-toggle-group-outlined.mud-toggle-group-secondary{border-color:rgb(from var(--mud-palette-secondary) r g b/var(--mud-palette-border-opacity))}.mud-toggle-group-outlined.mud-toggle-group-tertiary{border-color:rgb(from var(--mud-palette-tertiary) r g b/var(--mud-palette-border-opacity))}.mud-toggle-group-outlined.mud-toggle-group-info{border-color:rgb(from var(--mud-palette-info) r g b/var(--mud-palette-border-opacity))}.mud-toggle-group-outlined.mud-toggle-group-success{border-color:rgb(from var(--mud-palette-success) r g b/var(--mud-palette-border-opacity))}.mud-toggle-group-outlined.mud-toggle-group-warning{border-color:rgb(from var(--mud-palette-warning) r g b/var(--mud-palette-border-opacity))}.mud-toggle-group-outlined.mud-toggle-group-error{border-color:rgb(from var(--mud-palette-error) r g b/var(--mud-palette-border-opacity))}.mud-toggle-group-outlined.mud-toggle-group-dark{border-color:rgb(from var(--mud-palette-dark) r g b/var(--mud-palette-border-opacity))}.mud-toggle-group-outlined.mud-toggle-group-horizontal:not(.mud-toggle-group-rtl)>.mud-toggle-item:not(:first-child),.mud-toggle-group-outlined.mud-toggle-group-horizontal:not(.mud-toggle-group-rtl)>:not(:first-child) .mud-toggle-item{margin-left:-1px}.mud-toggle-group-outlined.mud-toggle-group-horizontal:not(.mud-toggle-group-rtl)>.mud-toggle-item:not(:first-child).mud-toggle-item-delimiter,.mud-toggle-group-outlined.mud-toggle-group-horizontal:not(.mud-toggle-group-rtl)>:not(:first-child) .mud-toggle-item.mud-toggle-item-delimiter{border-left-style:solid !important}.mud-toggle-group-outlined.mud-toggle-group-horizontal.mud-toggle-group-rtl>.mud-toggle-item:not(:last-child),.mud-toggle-group-outlined.mud-toggle-group-horizontal.mud-toggle-group-rtl>:not(:last-child) .mud-toggle-item{margin-left:-1px}.mud-toggle-group-outlined.mud-toggle-group-horizontal.mud-toggle-group-rtl>.mud-toggle-item:not(:last-child).mud-toggle-item-delimiter,.mud-toggle-group-outlined.mud-toggle-group-horizontal.mud-toggle-group-rtl>:not(:last-child) .mud-toggle-item.mud-toggle-item-delimiter{border-left-style:solid !important}.mud-toggle-group-outlined.mud-toggle-group-vertical>.mud-toggle-item:not(:first-child),.mud-toggle-group-outlined.mud-toggle-group-vertical>:not(:first-child) .mud-toggle-item{margin-top:-1px}.mud-toggle-group-outlined.mud-toggle-group-vertical>.mud-toggle-item:not(:first-child).mud-toggle-item-delimiter,.mud-toggle-group-outlined.mud-toggle-group-vertical>:not(:first-child) .mud-toggle-item.mud-toggle-item-delimiter{border-top-style:solid !important}.mud-toggle-item{padding:6px;min-width:auto;border-style:none !important;display:flex;justify-content:center}.mud-toggle-item>.mud-button-label{min-height:20px}.mud-toggle-item .mud-toggle-item-check-icon{margin:0 6px;font-size:20px}.mud-toggle-item-size-small{padding:4px}.mud-toggle-item-size-small .mud-toggle-item-check-icon{margin:0 4px;font-size:18px}.mud-toggle-item-size-large{padding:8px}.mud-toggle-item-size-large .mud-toggle-item-check-icon{margin:0 8px;font-size:22px}.mud-toggle-item-fixed>.mud-button-label:has(>.mud-toggle-item-check-icon){display:grid;grid-template-columns:1fr repeat(3, auto) 1fr}.mud-toggle-item-check-icon{justify-self:start}.mud-toggle-item-content{display:contents}.mud-stepper .mud-stepper-nav .mud-step{padding:24px;position:relative;cursor:default;pointer-events:none;user-select:text}.mud-stepper .mud-stepper-nav .mud-step.mud-clickable{cursor:pointer;pointer-events:auto;user-select:none;transition:background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}@media(hover: hover)and (pointer: fine){.mud-stepper .mud-stepper-nav .mud-step.mud-clickable:hover{background-color:var(--mud-palette-action-default-hover)}}.mud-stepper .mud-stepper-nav .mud-step.mud-clickable:focus-visible,.mud-stepper .mud-stepper-nav .mud-step.mud-clickable:active{background-color:var(--mud-palette-action-default-hover)}.mud-stepper .mud-stepper-nav .mud-step:disabled .mud-step-label-icon{background-color:var(--mud-palette-lines-default) !important;color:var(--mud-palette-text-disabled) !important}.mud-stepper .mud-stepper-nav .mud-step:disabled .mud-step-label-content{color:var(--mud-palette-text-disabled) !important}.mud-stepper .mud-stepper-nav .mud-step .mud-step-label{display:flex;align-items:center;flex-direction:row;height:100%;gap:8px}.mud-stepper .mud-stepper-nav .mud-step .mud-step-label .mud-step-label-icon{display:flex;flex-shrink:0;color:var(--mud-palette-white);border-radius:50%;background-color:var(--mud-palette-text-disabled);height:24px;width:24px;align-items:center;justify-content:center;font-size:12px;letter-spacing:0;text-indent:0;white-space:nowrap}.mud-stepper .mud-stepper-nav .mud-step .mud-step-label .mud-step-label-icon .mud-typography{line-height:1}.mud-stepper .mud-stepper-nav .mud-step .mud-step-label .mud-step-label-content{width:100%;color:var(--mud-palette-text-secondary);--mud-ripple-color: var(--mud-palette-text-secondary);text-align:start}.mud-stepper .mud-stepper-nav .mud-step .mud-step-label .mud-step-label-content-title{line-height:var(--mud-typography-body2-lineheight)}.mud-stepper .mud-stepper-nav .mud-step.active .mud-step-label-content{color:var(--mud-palette-text-primary);--mud-ripple-color: var(--mud-palette-text-primary)}.mud-stepper .mud-stepper-nav.mud-stepper-nav-scrollable{overflow:auto}.mud-stepper .mud-stepper-nav.mud-stepper-nav-scrollable .mud-step{min-width:fit-content}.mud-stepper .mud-stepper-nav.mud-stepper-nav-scrollable .mud-stepper-nav-connector{min-width:32px}.mud-stepper .mud-stepper-content{padding:0 24px}.mud-stepper .mud-stepper-nav-connector{flex:1 1 auto}.mud-stepper .mud-stepper-nav-connector .mud-stepper-nav-connector-line{display:block;border-color:var(--mud-palette-lines-inputs)}.mud-stepper.mud-stepper__horizontal .mud-stepper-nav{display:flex}.mud-stepper.mud-stepper__horizontal.mud-stepper__center-labels .mud-step{flex-basis:175px}.mud-stepper.mud-stepper__horizontal.mud-stepper__center-labels .mud-step-label{flex-direction:column;justify-content:flex-start;align-items:center}.mud-stepper.mud-stepper__horizontal.mud-stepper__center-labels .mud-step-label .mud-step-label-icon{margin-inline-end:0px !important}.mud-stepper.mud-stepper__horizontal.mud-stepper__center-labels .mud-step-label .mud-step-label-content{margin-top:12px;text-align:center}.mud-stepper.mud-stepper__horizontal.mud-stepper__center-labels .mud-stepper-nav-connector{margin:35px -67px 0;align-self:flex-start}.mud-stepper.mud-stepper__horizontal .mud-stepper-nav-connector{align-self:center;margin:0 -16px}.mud-stepper.mud-stepper__horizontal .mud-stepper-nav-connector .mud-stepper-nav-connector-line{border-top-style:solid;border-top-width:1px}.mud-stepper.mud-stepper__vertical .mud-stepper-nav{padding:8px 0px}.mud-stepper.mud-stepper__vertical .mud-step{padding:0 16px}.mud-stepper.mud-stepper__vertical .mud-step .mud-step-label{padding:8px 0px}.mud-stepper.mud-stepper__vertical .mud-stepper-nav-connector{margin-inline-start:28px;margin-inline-end:0}.mud-stepper.mud-stepper__vertical .mud-stepper-nav-connector .mud-stepper-nav-connector-line{border-inline-start:1px solid #bdbdbd;min-height:24px}.mud-stepper.mud-stepper__vertical .mud-stepper-content{margin-inline-start:28px;margin-inline-end:0;padding-inline-start:20px;padding-inline-end:0;border-inline-start:1px solid var(--mud-palette-lines-inputs)}.mud-stepper-step-button{display:inline-flex;-moz-box-align:center;align-items:center;-moz-box-pack:center;justify-content:center;position:relative;background-color:rgba(0,0,0,0);outline:0px;border:0px;border-radius:0px;cursor:pointer;user-select:none;vertical-align:middle;appearance:none;text-decoration:none;color:inherit;width:100%;padding:24px 16px;margin:-24px -16px;box-sizing:content-box}.mud-swipearea{touch-action:none}.rounded-0{border-radius:0 !important}.rounded-t-0{border-top-left-radius:0 !important;border-top-right-radius:0 !important}.rounded-r-0,.rounded-e-0{border-top-right-radius:0 !important;border-bottom-right-radius:0 !important}.rounded-b-0{border-bottom-right-radius:0 !important;border-bottom-left-radius:0 !important}.rounded-l-0,.rounded-s-0{border-top-left-radius:0 !important;border-bottom-left-radius:0 !important}.rounded-tl-0,.rounded-ts-0{border-top-left-radius:0 !important}.rounded-tr-0,.rounded-te-0{border-top-right-radius:0 !important}.rounded-br-0,.rounded-be-0{border-bottom-right-radius:0 !important}.rounded-bl-0,.rounded-bs-0{border-bottom-left-radius:0 !important}.mud-application-layout-rtl .rounded-s-0{border-top-right-radius:0 !important;border-bottom-right-radius:0 !important;border-top-left-radius:0 !important;border-bottom-left-radius:0 !important}.mud-application-layout-rtl .rounded-e-0{border-top-left-radius:0 !important;border-bottom-left-radius:0 !important;border-top-right-radius:0 !important;border-bottom-right-radius:0 !important}.mud-application-layout-rtl .rounded-ts-0{border-top-right-radius:0 !important;border-top-left-radius:0 !important}.mud-application-layout-rtl .rounded-te-0{border-top-left-radius:0 !important;border-top-right-radius:0 !important}.mud-application-layout-rtl .rounded-bs-0{border-bottom-right-radius:0 !important;border-bottom-left-radius:0 !important}.mud-application-layout-rtl .rounded-be-0{border-bottom-left-radius:0 !important;border-bottom-right-radius:0 !important}.rounded-sm{border-radius:2px !important}.rounded-t-sm{border-top-left-radius:2px !important;border-top-right-radius:2px !important}.rounded-r-sm,.rounded-e-sm{border-top-right-radius:2px !important;border-bottom-right-radius:2px !important}.rounded-b-sm{border-bottom-right-radius:2px !important;border-bottom-left-radius:2px !important}.rounded-l-sm,.rounded-s-sm{border-top-left-radius:2px !important;border-bottom-left-radius:2px !important}.rounded-tl-sm,.rounded-ts-sm{border-top-left-radius:2px !important}.rounded-tr-sm,.rounded-te-sm{border-top-right-radius:2px !important}.rounded-br-sm,.rounded-be-sm{border-bottom-right-radius:2px !important}.rounded-bl-sm,.rounded-bs-sm{border-bottom-left-radius:2px !important}.mud-application-layout-rtl .rounded-s-sm{border-top-right-radius:2px !important;border-bottom-right-radius:2px !important;border-top-left-radius:0 !important;border-bottom-left-radius:0 !important}.mud-application-layout-rtl .rounded-e-sm{border-top-left-radius:2px !important;border-bottom-left-radius:2px !important;border-top-right-radius:0 !important;border-bottom-right-radius:0 !important}.mud-application-layout-rtl .rounded-ts-sm{border-top-right-radius:2px !important;border-top-left-radius:0 !important}.mud-application-layout-rtl .rounded-te-sm{border-top-left-radius:2px !important;border-top-right-radius:0 !important}.mud-application-layout-rtl .rounded-bs-sm{border-bottom-right-radius:2px !important;border-bottom-left-radius:0 !important}.mud-application-layout-rtl .rounded-be-sm{border-bottom-left-radius:2px !important;border-bottom-right-radius:0 !important}.rounded-lg{border-radius:8px !important}.rounded-t-lg{border-top-left-radius:8px !important;border-top-right-radius:8px !important}.rounded-r-lg,.rounded-e-lg{border-top-right-radius:8px !important;border-bottom-right-radius:8px !important}.rounded-b-lg{border-bottom-right-radius:8px !important;border-bottom-left-radius:8px !important}.rounded-l-lg,.rounded-s-lg{border-top-left-radius:8px !important;border-bottom-left-radius:8px !important}.rounded-tl-lg,.rounded-ts-lg{border-top-left-radius:8px !important}.rounded-tr-lg,.rounded-te-lg{border-top-right-radius:8px !important}.rounded-br-lg,.rounded-be-lg{border-bottom-right-radius:8px !important}.rounded-bl-lg,.rounded-bs-lg{border-bottom-left-radius:8px !important}.mud-application-layout-rtl .rounded-s-lg{border-top-right-radius:8px !important;border-bottom-right-radius:8px !important;border-top-left-radius:0 !important;border-bottom-left-radius:0 !important}.mud-application-layout-rtl .rounded-e-lg{border-top-left-radius:8px !important;border-bottom-left-radius:8px !important;border-top-right-radius:0 !important;border-bottom-right-radius:0 !important}.mud-application-layout-rtl .rounded-ts-lg{border-top-right-radius:8px !important;border-top-left-radius:0 !important}.mud-application-layout-rtl .rounded-te-lg{border-top-left-radius:8px !important;border-top-right-radius:0 !important}.mud-application-layout-rtl .rounded-bs-lg{border-bottom-right-radius:8px !important;border-bottom-left-radius:0 !important}.mud-application-layout-rtl .rounded-be-lg{border-bottom-left-radius:8px !important;border-bottom-right-radius:0 !important}.rounded-xl{border-radius:24px !important}.rounded-t-xl{border-top-left-radius:24px !important;border-top-right-radius:24px !important}.rounded-r-xl,.rounded-e-xl{border-top-right-radius:24px !important;border-bottom-right-radius:24px !important}.rounded-b-xl{border-bottom-right-radius:24px !important;border-bottom-left-radius:24px !important}.rounded-l-xl,.rounded-s-xl{border-top-left-radius:24px !important;border-bottom-left-radius:24px !important}.rounded-tl-xl,.rounded-ts-xl{border-top-left-radius:24px !important}.rounded-tr-xl,.rounded-te-xl{border-top-right-radius:24px !important}.rounded-br-xl,.rounded-be-xl{border-bottom-right-radius:24px !important}.rounded-bl-xl,.rounded-bs-xl{border-bottom-left-radius:24px !important}.mud-application-layout-rtl .rounded-s-xl{border-top-right-radius:24px !important;border-bottom-right-radius:24px !important;border-top-left-radius:0 !important;border-bottom-left-radius:0 !important}.mud-application-layout-rtl .rounded-e-xl{border-top-left-radius:24px !important;border-bottom-left-radius:24px !important;border-top-right-radius:0 !important;border-bottom-right-radius:0 !important}.mud-application-layout-rtl .rounded-ts-xl{border-top-right-radius:24px !important;border-top-left-radius:0 !important}.mud-application-layout-rtl .rounded-te-xl{border-top-left-radius:24px !important;border-top-right-radius:0 !important}.mud-application-layout-rtl .rounded-bs-xl{border-bottom-right-radius:24px !important;border-bottom-left-radius:0 !important}.mud-application-layout-rtl .rounded-be-xl{border-bottom-left-radius:24px !important;border-bottom-right-radius:0 !important}.rounded{border-radius:var(--mud-default-borderradius) !important}.rounded-t{border-top-left-radius:var(--mud-default-borderradius) !important;border-top-right-radius:var(--mud-default-borderradius) !important}.rounded-r,.rounded-e{border-top-right-radius:var(--mud-default-borderradius) !important;border-bottom-right-radius:var(--mud-default-borderradius) !important}.rounded-b{border-bottom-right-radius:var(--mud-default-borderradius) !important;border-bottom-left-radius:var(--mud-default-borderradius) !important}.rounded-l,.rounded-s{border-top-left-radius:var(--mud-default-borderradius) !important;border-bottom-left-radius:var(--mud-default-borderradius) !important}.rounded-tl,.rounded-ts{border-top-left-radius:var(--mud-default-borderradius) !important}.rounded-tr,.rounded-te{border-top-right-radius:var(--mud-default-borderradius) !important}.rounded-br,.rounded-be{border-bottom-right-radius:var(--mud-default-borderradius) !important}.rounded-bl,.rounded-bs{border-bottom-left-radius:var(--mud-default-borderradius) !important}.mud-application-layout-rtl .rounded-s{border-top-right-radius:var(--mud-default-borderradius) !important;border-bottom-right-radius:var(--mud-default-borderradius) !important;border-top-left-radius:0 !important;border-bottom-left-radius:0 !important}.mud-application-layout-rtl .rounded-e{border-top-left-radius:var(--mud-default-borderradius) !important;border-bottom-left-radius:var(--mud-default-borderradius) !important;border-top-right-radius:0 !important;border-bottom-right-radius:0 !important}.mud-application-layout-rtl .rounded-ts{border-top-right-radius:var(--mud-default-borderradius) !important;border-top-left-radius:0 !important}.mud-application-layout-rtl .rounded-te{border-top-left-radius:var(--mud-default-borderradius) !important;border-top-right-radius:0 !important}.mud-application-layout-rtl .rounded-bs{border-bottom-right-radius:var(--mud-default-borderradius) !important;border-bottom-left-radius:0 !important}.mud-application-layout-rtl .rounded-be{border-bottom-left-radius:var(--mud-default-borderradius) !important;border-bottom-right-radius:0 !important}.rounded-circle{border-radius:50% !important}.rounded-pill{border-radius:9999px !important}.border-solid{border-style:solid !important}.border-dashed{border-style:dashed !important}.border-dotted{border-style:dotted !important}.border-double{border-style:double !important}.border-hidden{border-style:hidden !important}.border-none{border-style:none !important}.border-0{border-width:0px !important}.border-t-0{border-top-width:0px !important}.border-r-0{border-right-width:0px !important}.border-b-0{border-bottom-width:0px !important}.border-l-0{border-left-width:0px !important}.border-x-0{border-left-width:0px !important;border-right-width:0px !important}.border-y-0{border-top-width:0px !important;border-bottom-width:0px !important}.border{border-width:1px !important}.border-t{border-top-width:1px !important}.border-r{border-right-width:1px !important}.border-b{border-bottom-width:1px !important}.border-l{border-left-width:1px !important}.border-x{border-left-width:1px !important;border-right-width:1px !important}.border-y{border-top-width:1px !important;border-bottom-width:1px !important}.border-2{border-width:2px !important}.border-t-2{border-top-width:2px !important}.border-r-2{border-right-width:2px !important}.border-b-2{border-bottom-width:2px !important}.border-l-2{border-left-width:2px !important}.border-x-2{border-left-width:2px !important;border-right-width:2px !important}.border-y-2{border-top-width:2px !important;border-bottom-width:2px !important}.border-4{border-width:4px !important}.border-t-4{border-top-width:4px !important}.border-r-4{border-right-width:4px !important}.border-b-4{border-bottom-width:4px !important}.border-l-4{border-left-width:4px !important}.border-x-4{border-left-width:4px !important;border-right-width:4px !important}.border-y-4{border-top-width:4px !important;border-bottom-width:4px !important}.border-8{border-width:8px !important}.border-t-8{border-top-width:8px !important}.border-r-8{border-right-width:8px !important}.border-b-8{border-bottom-width:8px !important}.border-l-8{border-left-width:8px !important}.border-x-8{border-left-width:8px !important;border-right-width:8px !important}.border-y-8{border-top-width:8px !important;border-bottom-width:8px !important}.outline-none{outline-style:none}.outline-solid{outline-style:solid}.outline-dashed{outline-style:dashed}.outline-dotted{outline-style:dotted}.outline-double{outline-style:double}.outline-hidden{outline-style:hidden}.flex-1{flex:1 1 0% !important}.flex-auto{flex:1 1 auto !important}.flex-initial{flex:0 1 auto !important}.flex-none{flex:none !important}.flex-row{flex-direction:row !important}.flex-row-reverse{flex-direction:row-reverse !important}.flex-column{flex-direction:column !important}.flex-column-reverse{flex-direction:column-reverse !important}.flex-grow-0{flex-grow:0 !important}.flex-grow-1{flex-grow:1 !important}.flex-grow-start>*:first-child{flex-grow:1 !important}.flex-grow-end>*:last-child{flex-grow:1 !important}.flex-grow-start-and-end>:first-child,.flex-grow-start-and-end>:last-child{flex-grow:1 !important}.flex-grow-middle>*:not(:first-child):not(:last-child){flex-grow:1 !important}.flex-grow-all>*{flex-grow:1 !important}.flex-shrink-0{flex-shrink:0 !important}.flex-shrink-1{flex-shrink:1 !important}.flex-wrap{flex-wrap:wrap !important}.flex-nowrap{flex-wrap:nowrap !important}.flex-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-start{justify-content:flex-start !important}.justify-end{justify-content:flex-end !important}.justify-center{justify-content:center !important}.justify-space-between{justify-content:space-between !important}.justify-space-around{justify-content:space-around !important}.justify-space-evenly{justify-content:space-evenly !important}.order-first{order:-9999 !important}.order-last{order:9999 !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-6{order:6 !important}.order-7{order:7 !important}.order-8{order:8 !important}.order-9{order:9 !important}.order-10{order:10 !important}.order-11{order:11 !important}.order-12{order:12 !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-space-between{align-content:space-between !important}.align-content-space-around{align-content:space-around !important}.align-content-stretch{align-content:stretch !important}.align-start{align-items:flex-start !important}.align-end{align-items:flex-end !important}.align-center{align-items:center !important}.align-baseline{align-items:baseline !important}.align-stretch{align-items: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-stretch{align-self:stretch !important}.gap-0{gap:0px}.gap-x-0{column-gap:0px}.gap-y-0{row-gap:0px}.gap-1{gap:4px}.gap-x-1{column-gap:4px}.gap-y-1{row-gap:4px}.gap-2{gap:8px}.gap-x-2{column-gap:8px}.gap-y-2{row-gap:8px}.gap-3{gap:12px}.gap-x-3{column-gap:12px}.gap-y-3{row-gap:12px}.gap-4{gap:16px}.gap-x-4{column-gap:16px}.gap-y-4{row-gap:16px}.gap-5{gap:20px}.gap-x-5{column-gap:20px}.gap-y-5{row-gap:20px}.gap-6{gap:24px}.gap-x-6{column-gap:24px}.gap-y-6{row-gap:24px}.gap-7{gap:28px}.gap-x-7{column-gap:28px}.gap-y-7{row-gap:28px}.gap-8{gap:32px}.gap-x-8{column-gap:32px}.gap-y-8{row-gap:32px}.gap-9{gap:36px}.gap-x-9{column-gap:36px}.gap-y-9{row-gap:36px}.gap-10{gap:40px}.gap-x-10{column-gap:40px}.gap-y-10{row-gap:40px}.gap-11{gap:44px}.gap-x-11{column-gap:44px}.gap-y-11{row-gap:44px}.gap-12{gap:48px}.gap-x-12{column-gap:48px}.gap-y-12{row-gap:48px}.gap-13{gap:52px}.gap-x-13{column-gap:52px}.gap-y-13{row-gap:52px}.gap-14{gap:56px}.gap-x-14{column-gap:56px}.gap-y-14{row-gap:56px}.gap-15{gap:60px}.gap-x-15{column-gap:60px}.gap-y-15{row-gap:60px}.gap-16{gap:64px}.gap-x-16{column-gap:64px}.gap-y-16{row-gap:64px}.gap-17{gap:68px}.gap-x-17{column-gap:68px}.gap-y-17{row-gap:68px}.gap-18{gap:72px}.gap-x-18{column-gap:72px}.gap-y-18{row-gap:72px}.gap-19{gap:76px}.gap-x-19{column-gap:76px}.gap-y-19{row-gap:76px}.gap-20{gap:80px}.gap-x-20{column-gap:80px}.gap-y-20{row-gap:80px}@media(min-width: 600px){.flex-sm-1{flex:1 1 0% !important}.flex-sm-auto{flex:1 1 auto !important}.flex-sm-initial{flex:0 1 auto !important}.flex-sm-none{flex:none !important}.flex-sm-row{flex-direction:row !important}.flex-sm-row-reverse{flex-direction:row-reverse !important}.flex-sm-column{flex-direction:column !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-grow-start>*:first-child{flex-grow:1 !important}.flex-sm-grow-end>*:last-child{flex-grow:1 !important}.flex-sm-grow-start-and-end>:first-child,.flex-sm-grow-start-and-end>:last-child{flex-grow:1 !important}.flex-sm-grow-middle>*:not(:first-child):not(:last-child){flex-grow:1 !important}.flex-sm-grow-all>*{flex-grow:1 !important}.flex-sm-shrink-0{flex-shrink:0 !important}.flex-sm-shrink-1{flex-shrink:1 !important}.flex-sm-wrap{flex-wrap:wrap !important}.flex-sm-nowrap{flex-wrap:nowrap !important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-sm-start{justify-content:flex-start !important}.justify-sm-end{justify-content:flex-end !important}.justify-sm-center{justify-content:center !important}.justify-sm-space-between{justify-content:space-between !important}.justify-sm-space-around{justify-content:space-around !important}.justify-sm-space-evenly{justify-content:space-evenly !important}.order-sm-first{order:-9999 !important}.order-sm-last{order:9999 !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-6{order:6 !important}.order-sm-7{order:7 !important}.order-sm-8{order:8 !important}.order-sm-9{order:9 !important}.order-sm-10{order:10 !important}.order-sm-11{order:11 !important}.order-sm-12{order:12 !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-space-between{align-content:space-between !important}.align-content-sm-space-around{align-content:space-around !important}.align-content-sm-stretch{align-content:stretch !important}.align-sm-start{align-items:flex-start !important}.align-sm-end{align-items:flex-end !important}.align-sm-center{align-items:center !important}.align-sm-baseline{align-items:baseline !important}.align-sm-stretch{align-items: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-stretch{align-self:stretch !important}.gap-sm-0{gap:0px}.gap-x-sm-0{column-gap:0px}.gap-y-sm-0{row-gap:0px}.gap-sm-1{gap:4px}.gap-x-sm-1{column-gap:4px}.gap-y-sm-1{row-gap:4px}.gap-sm-2{gap:8px}.gap-x-sm-2{column-gap:8px}.gap-y-sm-2{row-gap:8px}.gap-sm-3{gap:12px}.gap-x-sm-3{column-gap:12px}.gap-y-sm-3{row-gap:12px}.gap-sm-4{gap:16px}.gap-x-sm-4{column-gap:16px}.gap-y-sm-4{row-gap:16px}.gap-sm-5{gap:20px}.gap-x-sm-5{column-gap:20px}.gap-y-sm-5{row-gap:20px}.gap-sm-6{gap:24px}.gap-x-sm-6{column-gap:24px}.gap-y-sm-6{row-gap:24px}.gap-sm-7{gap:28px}.gap-x-sm-7{column-gap:28px}.gap-y-sm-7{row-gap:28px}.gap-sm-8{gap:32px}.gap-x-sm-8{column-gap:32px}.gap-y-sm-8{row-gap:32px}.gap-sm-9{gap:36px}.gap-x-sm-9{column-gap:36px}.gap-y-sm-9{row-gap:36px}.gap-sm-10{gap:40px}.gap-x-sm-10{column-gap:40px}.gap-y-sm-10{row-gap:40px}.gap-sm-11{gap:44px}.gap-x-sm-11{column-gap:44px}.gap-y-sm-11{row-gap:44px}.gap-sm-12{gap:48px}.gap-x-sm-12{column-gap:48px}.gap-y-sm-12{row-gap:48px}.gap-sm-13{gap:52px}.gap-x-sm-13{column-gap:52px}.gap-y-sm-13{row-gap:52px}.gap-sm-14{gap:56px}.gap-x-sm-14{column-gap:56px}.gap-y-sm-14{row-gap:56px}.gap-sm-15{gap:60px}.gap-x-sm-15{column-gap:60px}.gap-y-sm-15{row-gap:60px}.gap-sm-16{gap:64px}.gap-x-sm-16{column-gap:64px}.gap-y-sm-16{row-gap:64px}.gap-sm-17{gap:68px}.gap-x-sm-17{column-gap:68px}.gap-y-sm-17{row-gap:68px}.gap-sm-18{gap:72px}.gap-x-sm-18{column-gap:72px}.gap-y-sm-18{row-gap:72px}.gap-sm-19{gap:76px}.gap-x-sm-19{column-gap:76px}.gap-y-sm-19{row-gap:76px}.gap-sm-20{gap:80px}.gap-x-sm-20{column-gap:80px}.gap-y-sm-20{row-gap:80px}}@media(min-width: 960px){.flex-md-1{flex:1 1 0% !important}.flex-md-auto{flex:1 1 auto !important}.flex-md-initial{flex:0 1 auto !important}.flex-md-none{flex:none !important}.flex-md-row{flex-direction:row !important}.flex-md-row-reverse{flex-direction:row-reverse !important}.flex-md-column{flex-direction:column !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-grow-start>*:first-child{flex-grow:1 !important}.flex-md-grow-end>*:last-child{flex-grow:1 !important}.flex-md-grow-start-and-end>:first-child,.flex-md-grow-start-and-end>:last-child{flex-grow:1 !important}.flex-md-grow-middle>*:not(:first-child):not(:last-child){flex-grow:1 !important}.flex-md-grow-all>*{flex-grow:1 !important}.flex-md-shrink-0{flex-shrink:0 !important}.flex-md-shrink-1{flex-shrink:1 !important}.flex-md-wrap{flex-wrap:wrap !important}.flex-md-nowrap{flex-wrap:nowrap !important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-md-start{justify-content:flex-start !important}.justify-md-end{justify-content:flex-end !important}.justify-md-center{justify-content:center !important}.justify-md-space-between{justify-content:space-between !important}.justify-md-space-around{justify-content:space-around !important}.justify-md-space-evenly{justify-content:space-evenly !important}.order-md-first{order:-9999 !important}.order-md-last{order:9999 !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-6{order:6 !important}.order-md-7{order:7 !important}.order-md-8{order:8 !important}.order-md-9{order:9 !important}.order-md-10{order:10 !important}.order-md-11{order:11 !important}.order-md-12{order:12 !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-space-between{align-content:space-between !important}.align-content-md-space-around{align-content:space-around !important}.align-content-md-stretch{align-content:stretch !important}.align-md-start{align-items:flex-start !important}.align-md-end{align-items:flex-end !important}.align-md-center{align-items:center !important}.align-md-baseline{align-items:baseline !important}.align-md-stretch{align-items: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-stretch{align-self:stretch !important}.gap-md-0{gap:0px}.gap-x-md-0{column-gap:0px}.gap-y-md-0{row-gap:0px}.gap-md-1{gap:4px}.gap-x-md-1{column-gap:4px}.gap-y-md-1{row-gap:4px}.gap-md-2{gap:8px}.gap-x-md-2{column-gap:8px}.gap-y-md-2{row-gap:8px}.gap-md-3{gap:12px}.gap-x-md-3{column-gap:12px}.gap-y-md-3{row-gap:12px}.gap-md-4{gap:16px}.gap-x-md-4{column-gap:16px}.gap-y-md-4{row-gap:16px}.gap-md-5{gap:20px}.gap-x-md-5{column-gap:20px}.gap-y-md-5{row-gap:20px}.gap-md-6{gap:24px}.gap-x-md-6{column-gap:24px}.gap-y-md-6{row-gap:24px}.gap-md-7{gap:28px}.gap-x-md-7{column-gap:28px}.gap-y-md-7{row-gap:28px}.gap-md-8{gap:32px}.gap-x-md-8{column-gap:32px}.gap-y-md-8{row-gap:32px}.gap-md-9{gap:36px}.gap-x-md-9{column-gap:36px}.gap-y-md-9{row-gap:36px}.gap-md-10{gap:40px}.gap-x-md-10{column-gap:40px}.gap-y-md-10{row-gap:40px}.gap-md-11{gap:44px}.gap-x-md-11{column-gap:44px}.gap-y-md-11{row-gap:44px}.gap-md-12{gap:48px}.gap-x-md-12{column-gap:48px}.gap-y-md-12{row-gap:48px}.gap-md-13{gap:52px}.gap-x-md-13{column-gap:52px}.gap-y-md-13{row-gap:52px}.gap-md-14{gap:56px}.gap-x-md-14{column-gap:56px}.gap-y-md-14{row-gap:56px}.gap-md-15{gap:60px}.gap-x-md-15{column-gap:60px}.gap-y-md-15{row-gap:60px}.gap-md-16{gap:64px}.gap-x-md-16{column-gap:64px}.gap-y-md-16{row-gap:64px}.gap-md-17{gap:68px}.gap-x-md-17{column-gap:68px}.gap-y-md-17{row-gap:68px}.gap-md-18{gap:72px}.gap-x-md-18{column-gap:72px}.gap-y-md-18{row-gap:72px}.gap-md-19{gap:76px}.gap-x-md-19{column-gap:76px}.gap-y-md-19{row-gap:76px}.gap-md-20{gap:80px}.gap-x-md-20{column-gap:80px}.gap-y-md-20{row-gap:80px}}@media(min-width: 1280px){.flex-lg-1{flex:1 1 0% !important}.flex-lg-auto{flex:1 1 auto !important}.flex-lg-initial{flex:0 1 auto !important}.flex-lg-none{flex:none !important}.flex-lg-row{flex-direction:row !important}.flex-lg-row-reverse{flex-direction:row-reverse !important}.flex-lg-column{flex-direction:column !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-grow-start>*:first-child{flex-grow:1 !important}.flex-lg-grow-end>*:last-child{flex-grow:1 !important}.flex-lg-grow-start-and-end>:first-child,.flex-lg-grow-start-and-end>:last-child{flex-grow:1 !important}.flex-lg-grow-middle>*:not(:first-child):not(:last-child){flex-grow:1 !important}.flex-lg-grow-all>*{flex-grow:1 !important}.flex-lg-shrink-0{flex-shrink:0 !important}.flex-lg-shrink-1{flex-shrink:1 !important}.flex-lg-wrap{flex-wrap:wrap !important}.flex-lg-nowrap{flex-wrap:nowrap !important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-lg-start{justify-content:flex-start !important}.justify-lg-end{justify-content:flex-end !important}.justify-lg-center{justify-content:center !important}.justify-lg-space-between{justify-content:space-between !important}.justify-lg-space-around{justify-content:space-around !important}.justify-lg-space-evenly{justify-content:space-evenly !important}.order-lg-first{order:-9999 !important}.order-lg-last{order:9999 !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-6{order:6 !important}.order-lg-7{order:7 !important}.order-lg-8{order:8 !important}.order-lg-9{order:9 !important}.order-lg-10{order:10 !important}.order-lg-11{order:11 !important}.order-lg-12{order:12 !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-space-between{align-content:space-between !important}.align-content-lg-space-around{align-content:space-around !important}.align-content-lg-stretch{align-content:stretch !important}.align-lg-start{align-items:flex-start !important}.align-lg-end{align-items:flex-end !important}.align-lg-center{align-items:center !important}.align-lg-baseline{align-items:baseline !important}.align-lg-stretch{align-items: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-stretch{align-self:stretch !important}.gap-lg-0{gap:0px}.gap-x-lg-0{column-gap:0px}.gap-y-lg-0{row-gap:0px}.gap-lg-1{gap:4px}.gap-x-lg-1{column-gap:4px}.gap-y-lg-1{row-gap:4px}.gap-lg-2{gap:8px}.gap-x-lg-2{column-gap:8px}.gap-y-lg-2{row-gap:8px}.gap-lg-3{gap:12px}.gap-x-lg-3{column-gap:12px}.gap-y-lg-3{row-gap:12px}.gap-lg-4{gap:16px}.gap-x-lg-4{column-gap:16px}.gap-y-lg-4{row-gap:16px}.gap-lg-5{gap:20px}.gap-x-lg-5{column-gap:20px}.gap-y-lg-5{row-gap:20px}.gap-lg-6{gap:24px}.gap-x-lg-6{column-gap:24px}.gap-y-lg-6{row-gap:24px}.gap-lg-7{gap:28px}.gap-x-lg-7{column-gap:28px}.gap-y-lg-7{row-gap:28px}.gap-lg-8{gap:32px}.gap-x-lg-8{column-gap:32px}.gap-y-lg-8{row-gap:32px}.gap-lg-9{gap:36px}.gap-x-lg-9{column-gap:36px}.gap-y-lg-9{row-gap:36px}.gap-lg-10{gap:40px}.gap-x-lg-10{column-gap:40px}.gap-y-lg-10{row-gap:40px}.gap-lg-11{gap:44px}.gap-x-lg-11{column-gap:44px}.gap-y-lg-11{row-gap:44px}.gap-lg-12{gap:48px}.gap-x-lg-12{column-gap:48px}.gap-y-lg-12{row-gap:48px}.gap-lg-13{gap:52px}.gap-x-lg-13{column-gap:52px}.gap-y-lg-13{row-gap:52px}.gap-lg-14{gap:56px}.gap-x-lg-14{column-gap:56px}.gap-y-lg-14{row-gap:56px}.gap-lg-15{gap:60px}.gap-x-lg-15{column-gap:60px}.gap-y-lg-15{row-gap:60px}.gap-lg-16{gap:64px}.gap-x-lg-16{column-gap:64px}.gap-y-lg-16{row-gap:64px}.gap-lg-17{gap:68px}.gap-x-lg-17{column-gap:68px}.gap-y-lg-17{row-gap:68px}.gap-lg-18{gap:72px}.gap-x-lg-18{column-gap:72px}.gap-y-lg-18{row-gap:72px}.gap-lg-19{gap:76px}.gap-x-lg-19{column-gap:76px}.gap-y-lg-19{row-gap:76px}.gap-lg-20{gap:80px}.gap-x-lg-20{column-gap:80px}.gap-y-lg-20{row-gap:80px}}@media(min-width: 1920px){.flex-xl-1{flex:1 1 0% !important}.flex-xl-auto{flex:1 1 auto !important}.flex-xl-initial{flex:0 1 auto !important}.flex-xl-none{flex:none !important}.flex-xl-row{flex-direction:row !important}.flex-xl-row-reverse{flex-direction:row-reverse !important}.flex-xl-column{flex-direction:column !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-grow-start>*:first-child{flex-grow:1 !important}.flex-xl-grow-end>*:last-child{flex-grow:1 !important}.flex-xl-grow-start-and-end>:first-child,.flex-xl-grow-start-and-end>:last-child{flex-grow:1 !important}.flex-xl-grow-middle>*:not(:first-child):not(:last-child){flex-grow:1 !important}.flex-xl-grow-all>*{flex-grow:1 !important}.flex-xl-shrink-0{flex-shrink:0 !important}.flex-xl-shrink-1{flex-shrink:1 !important}.flex-xl-wrap{flex-wrap:wrap !important}.flex-xl-nowrap{flex-wrap:nowrap !important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-xl-start{justify-content:flex-start !important}.justify-xl-end{justify-content:flex-end !important}.justify-xl-center{justify-content:center !important}.justify-xl-space-between{justify-content:space-between !important}.justify-xl-space-around{justify-content:space-around !important}.justify-xl-space-evenly{justify-content:space-evenly !important}.order-xl-first{order:-9999 !important}.order-xl-last{order:9999 !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-6{order:6 !important}.order-xl-7{order:7 !important}.order-xl-8{order:8 !important}.order-xl-9{order:9 !important}.order-xl-10{order:10 !important}.order-xl-11{order:11 !important}.order-xl-12{order:12 !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-space-between{align-content:space-between !important}.align-content-xl-space-around{align-content:space-around !important}.align-content-xl-stretch{align-content:stretch !important}.align-xl-start{align-items:flex-start !important}.align-xl-end{align-items:flex-end !important}.align-xl-center{align-items:center !important}.align-xl-baseline{align-items:baseline !important}.align-xl-stretch{align-items: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-stretch{align-self:stretch !important}.gap-xl-0{gap:0px}.gap-x-xl-0{column-gap:0px}.gap-y-xl-0{row-gap:0px}.gap-xl-1{gap:4px}.gap-x-xl-1{column-gap:4px}.gap-y-xl-1{row-gap:4px}.gap-xl-2{gap:8px}.gap-x-xl-2{column-gap:8px}.gap-y-xl-2{row-gap:8px}.gap-xl-3{gap:12px}.gap-x-xl-3{column-gap:12px}.gap-y-xl-3{row-gap:12px}.gap-xl-4{gap:16px}.gap-x-xl-4{column-gap:16px}.gap-y-xl-4{row-gap:16px}.gap-xl-5{gap:20px}.gap-x-xl-5{column-gap:20px}.gap-y-xl-5{row-gap:20px}.gap-xl-6{gap:24px}.gap-x-xl-6{column-gap:24px}.gap-y-xl-6{row-gap:24px}.gap-xl-7{gap:28px}.gap-x-xl-7{column-gap:28px}.gap-y-xl-7{row-gap:28px}.gap-xl-8{gap:32px}.gap-x-xl-8{column-gap:32px}.gap-y-xl-8{row-gap:32px}.gap-xl-9{gap:36px}.gap-x-xl-9{column-gap:36px}.gap-y-xl-9{row-gap:36px}.gap-xl-10{gap:40px}.gap-x-xl-10{column-gap:40px}.gap-y-xl-10{row-gap:40px}.gap-xl-11{gap:44px}.gap-x-xl-11{column-gap:44px}.gap-y-xl-11{row-gap:44px}.gap-xl-12{gap:48px}.gap-x-xl-12{column-gap:48px}.gap-y-xl-12{row-gap:48px}.gap-xl-13{gap:52px}.gap-x-xl-13{column-gap:52px}.gap-y-xl-13{row-gap:52px}.gap-xl-14{gap:56px}.gap-x-xl-14{column-gap:56px}.gap-y-xl-14{row-gap:56px}.gap-xl-15{gap:60px}.gap-x-xl-15{column-gap:60px}.gap-y-xl-15{row-gap:60px}.gap-xl-16{gap:64px}.gap-x-xl-16{column-gap:64px}.gap-y-xl-16{row-gap:64px}.gap-xl-17{gap:68px}.gap-x-xl-17{column-gap:68px}.gap-y-xl-17{row-gap:68px}.gap-xl-18{gap:72px}.gap-x-xl-18{column-gap:72px}.gap-y-xl-18{row-gap:72px}.gap-xl-19{gap:76px}.gap-x-xl-19{column-gap:76px}.gap-y-xl-19{row-gap:76px}.gap-xl-20{gap:80px}.gap-x-xl-20{column-gap:80px}.gap-y-xl-20{row-gap:80px}}@media(min-width: 2560px){.flex-xxl-1{flex:1 1 0% !important}.flex-xxl-auto{flex:1 1 auto !important}.flex-xxl-initial{flex:0 1 auto !important}.flex-xxl-none{flex:none !important}.flex-xxl-row{flex-direction:row !important}.flex-xxl-row-reverse{flex-direction:row-reverse !important}.flex-xxl-column{flex-direction:column !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-grow-start>*:first-child{flex-grow:1 !important}.flex-xxl-grow-end>*:last-child{flex-grow:1 !important}.flex-xxl-grow-start-and-end>:first-child,.flex-xxl-grow-start-and-end>:last-child{flex-grow:1 !important}.flex-xxl-grow-middle>*:not(:first-child):not(:last-child){flex-grow:1 !important}.flex-xxl-grow-all>*{flex-grow:1 !important}.flex-xxl-shrink-0{flex-shrink:0 !important}.flex-xxl-shrink-1{flex-shrink:1 !important}.flex-xxl-wrap{flex-wrap:wrap !important}.flex-xxl-nowrap{flex-wrap:nowrap !important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-xxl-start{justify-content:flex-start !important}.justify-xxl-end{justify-content:flex-end !important}.justify-xxl-center{justify-content:center !important}.justify-xxl-space-between{justify-content:space-between !important}.justify-xxl-space-around{justify-content:space-around !important}.justify-xxl-space-evenly{justify-content:space-evenly !important}.order-xxl-first{order:-9999 !important}.order-xxl-last{order:9999 !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-6{order:6 !important}.order-xxl-7{order:7 !important}.order-xxl-8{order:8 !important}.order-xxl-9{order:9 !important}.order-xxl-10{order:10 !important}.order-xxl-11{order:11 !important}.order-xxl-12{order:12 !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-space-between{align-content:space-between !important}.align-content-xxl-space-around{align-content:space-around !important}.align-content-xxl-stretch{align-content:stretch !important}.align-xxl-start{align-items:flex-start !important}.align-xxl-end{align-items:flex-end !important}.align-xxl-center{align-items:center !important}.align-xxl-baseline{align-items:baseline !important}.align-xxl-stretch{align-items: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-stretch{align-self:stretch !important}.gap-xxl-0{gap:0px}.gap-x-xxl-0{column-gap:0px}.gap-y-xxl-0{row-gap:0px}.gap-xxl-1{gap:4px}.gap-x-xxl-1{column-gap:4px}.gap-y-xxl-1{row-gap:4px}.gap-xxl-2{gap:8px}.gap-x-xxl-2{column-gap:8px}.gap-y-xxl-2{row-gap:8px}.gap-xxl-3{gap:12px}.gap-x-xxl-3{column-gap:12px}.gap-y-xxl-3{row-gap:12px}.gap-xxl-4{gap:16px}.gap-x-xxl-4{column-gap:16px}.gap-y-xxl-4{row-gap:16px}.gap-xxl-5{gap:20px}.gap-x-xxl-5{column-gap:20px}.gap-y-xxl-5{row-gap:20px}.gap-xxl-6{gap:24px}.gap-x-xxl-6{column-gap:24px}.gap-y-xxl-6{row-gap:24px}.gap-xxl-7{gap:28px}.gap-x-xxl-7{column-gap:28px}.gap-y-xxl-7{row-gap:28px}.gap-xxl-8{gap:32px}.gap-x-xxl-8{column-gap:32px}.gap-y-xxl-8{row-gap:32px}.gap-xxl-9{gap:36px}.gap-x-xxl-9{column-gap:36px}.gap-y-xxl-9{row-gap:36px}.gap-xxl-10{gap:40px}.gap-x-xxl-10{column-gap:40px}.gap-y-xxl-10{row-gap:40px}.gap-xxl-11{gap:44px}.gap-x-xxl-11{column-gap:44px}.gap-y-xxl-11{row-gap:44px}.gap-xxl-12{gap:48px}.gap-x-xxl-12{column-gap:48px}.gap-y-xxl-12{row-gap:48px}.gap-xxl-13{gap:52px}.gap-x-xxl-13{column-gap:52px}.gap-y-xxl-13{row-gap:52px}.gap-xxl-14{gap:56px}.gap-x-xxl-14{column-gap:56px}.gap-y-xxl-14{row-gap:56px}.gap-xxl-15{gap:60px}.gap-x-xxl-15{column-gap:60px}.gap-y-xxl-15{row-gap:60px}.gap-xxl-16{gap:64px}.gap-x-xxl-16{column-gap:64px}.gap-y-xxl-16{row-gap:64px}.gap-xxl-17{gap:68px}.gap-x-xxl-17{column-gap:68px}.gap-y-xxl-17{row-gap:68px}.gap-xxl-18{gap:72px}.gap-x-xxl-18{column-gap:72px}.gap-y-xxl-18{row-gap:72px}.gap-xxl-19{gap:76px}.gap-x-xxl-19{column-gap:76px}.gap-y-xxl-19{row-gap:76px}.gap-xxl-20{gap:80px}.gap-x-xxl-20{column-gap:80px}.gap-y-xxl-20{row-gap:80px}}.cursor-auto{cursor:auto !important}.cursor-default{cursor:default !important}.cursor-pointer{cursor:pointer !important}.cursor-wait{cursor:wait !important}.cursor-text{cursor:text !important}.cursor-move{cursor:move !important}.cursor-help{cursor:help !important}.cursor-not-allowed{cursor:not-allowed !important}.cursor-none{cursor:none !important}.cursor-progress{cursor:progress !important}.cursor-cell{cursor:cell !important}.cursor-crosshair{cursor:crosshair !important}.cursor-vertical-text{cursor:vertical-text !important}.cursor-alias{cursor:alias !important}.cursor-copy{cursor:copy !important}.cursor-no-drop{cursor:no-drop !important}.cursor-grab{cursor:grab !important}.cursor-grabbing{cursor:grabbing !important}.cursor-all-scroll{cursor:all-scroll !important}.cursor-col-resize{cursor:col-resize !important}.cursor-row-resize{cursor:row-resize !important}.cursor-n-resize{cursor:n-resize !important}.cursor-w-resize{cursor:w-resize !important}.cursor-zoom-in{cursor:zoom-in !important}.cursor-zoom-out{cursor:zoom-out !important}.cursor-url{cursor:url !important}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.d-none{display:none !important}.d-inline{display:inline !important}.d-inline-block{display:inline-block !important}.d-block{display:block !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-contents{display:contents !important}@media(min-width: 600px){.d-sm-none{display:none !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-block{display:block !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-contents{display:contents !important}}@media(min-width: 960px){.d-md-none{display:none !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-block{display:block !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-contents{display:contents !important}}@media(min-width: 1280px){.d-lg-none{display:none !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-block{display:block !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-contents{display:contents !important}}@media(min-width: 1920px){.d-xl-none{display:none !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-block{display:block !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-contents{display:contents !important}}@media(min-width: 2560px){.d-xxl-none{display:none !important}.d-xxl-inline{display:inline !important}.d-xxl-inline-block{display:inline-block !important}.d-xxl-block{display:block !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-contents{display:contents !important}}.object-none{object-fit:none !important}.object-cover{object-fit:cover !important}.object-contain{object-fit:contain !important}.object-fill{object-fit:fill !important}.object-scale-down{object-fit:scale-down !important}.object-center{object-position:center !important}.object-top{object-position:top !important}.object-bottom{object-position:bottom !important}.object-left{object-position:left !important}.object-left-top{object-position:left top !important}.object-left-bottom{object-position:left bottom !important}.object-right{object-position:right !important}.object-right-top{object-position:right top !important}.object-right-bottom{object-position:right bottom !important}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-scroll{overflow:scroll}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-hidden{overflow-y:hidden}.overflow-x-visible{overflow-x:visible}.overflow-y-visible{overflow-y:visible}.overflow-x-scroll{overflow-x:scroll}.overflow-y-scroll{overflow-y:scroll}.absolute{position:absolute !important}.fixed{position:fixed !important}.relative{position:relative !important}.static{position:static !important}.sticky{position:sticky !important}.visible{visibility:visible}.invisible{visibility:hidden}[hidden]{display:none !important}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-60{z-index:60}.z-70{z-index:70}.z-80{z-index:80}.z-90{z-index:90}.z-100{z-index:100}.z-auto{z-index:auto}.mt-0,.my-0{margin-top:0 !important}.mr-0,.mx-0{margin-right:0 !important}.ml-0,.mx-0{margin-left:0 !important}.mb-0,.my-0{margin-bottom:0 !important}.ms-0{margin-inline-start:0 !important}.me-0{margin-inline-end:0 !important}.ma-0{margin:0 !important}.mt-1,.my-1{margin-top:4px !important}.mr-1,.mx-1{margin-right:4px !important}.ml-1,.mx-1{margin-left:4px !important}.mb-1,.my-1{margin-bottom:4px !important}.ms-1{margin-inline-start:4px !important}.me-1{margin-inline-end:4px !important}.ma-1{margin:4px !important}.mt-2,.my-2{margin-top:8px !important}.mr-2,.mx-2{margin-right:8px !important}.ml-2,.mx-2{margin-left:8px !important}.mb-2,.my-2{margin-bottom:8px !important}.ms-2{margin-inline-start:8px !important}.me-2{margin-inline-end:8px !important}.ma-2{margin:8px !important}.mt-3,.my-3{margin-top:12px !important}.mr-3,.mx-3{margin-right:12px !important}.ml-3,.mx-3{margin-left:12px !important}.mb-3,.my-3{margin-bottom:12px !important}.ms-3{margin-inline-start:12px !important}.me-3{margin-inline-end:12px !important}.ma-3{margin:12px !important}.mt-4,.my-4{margin-top:16px !important}.mr-4,.mx-4{margin-right:16px !important}.ml-4,.mx-4{margin-left:16px !important}.mb-4,.my-4{margin-bottom:16px !important}.ms-4{margin-inline-start:16px !important}.me-4{margin-inline-end:16px !important}.ma-4{margin:16px !important}.mt-5,.my-5{margin-top:20px !important}.mr-5,.mx-5{margin-right:20px !important}.ml-5,.mx-5{margin-left:20px !important}.mb-5,.my-5{margin-bottom:20px !important}.ms-5{margin-inline-start:20px !important}.me-5{margin-inline-end:20px !important}.ma-5{margin:20px !important}.mt-6,.my-6{margin-top:24px !important}.mr-6,.mx-6{margin-right:24px !important}.ml-6,.mx-6{margin-left:24px !important}.mb-6,.my-6{margin-bottom:24px !important}.ms-6{margin-inline-start:24px !important}.me-6{margin-inline-end:24px !important}.ma-6{margin:24px !important}.mt-7,.my-7{margin-top:28px !important}.mr-7,.mx-7{margin-right:28px !important}.ml-7,.mx-7{margin-left:28px !important}.mb-7,.my-7{margin-bottom:28px !important}.ms-7{margin-inline-start:28px !important}.me-7{margin-inline-end:28px !important}.ma-7{margin:28px !important}.mt-8,.my-8{margin-top:32px !important}.mr-8,.mx-8{margin-right:32px !important}.ml-8,.mx-8{margin-left:32px !important}.mb-8,.my-8{margin-bottom:32px !important}.ms-8{margin-inline-start:32px !important}.me-8{margin-inline-end:32px !important}.ma-8{margin:32px !important}.mt-9,.my-9{margin-top:36px !important}.mr-9,.mx-9{margin-right:36px !important}.ml-9,.mx-9{margin-left:36px !important}.mb-9,.my-9{margin-bottom:36px !important}.ms-9{margin-inline-start:36px !important}.me-9{margin-inline-end:36px !important}.ma-9{margin:36px !important}.mt-10,.my-10{margin-top:40px !important}.mr-10,.mx-10{margin-right:40px !important}.ml-10,.mx-10{margin-left:40px !important}.mb-10,.my-10{margin-bottom:40px !important}.ms-10{margin-inline-start:40px !important}.me-10{margin-inline-end:40px !important}.ma-10{margin:40px !important}.mt-11,.my-11{margin-top:44px !important}.mr-11,.mx-11{margin-right:44px !important}.ml-11,.mx-11{margin-left:44px !important}.mb-11,.my-11{margin-bottom:44px !important}.ms-11{margin-inline-start:44px !important}.me-11{margin-inline-end:44px !important}.ma-11{margin:44px !important}.mt-12,.my-12{margin-top:48px !important}.mr-12,.mx-12{margin-right:48px !important}.ml-12,.mx-12{margin-left:48px !important}.mb-12,.my-12{margin-bottom:48px !important}.ms-12{margin-inline-start:48px !important}.me-12{margin-inline-end:48px !important}.ma-12{margin:48px !important}.mt-13,.my-13{margin-top:52px !important}.mr-13,.mx-13{margin-right:52px !important}.ml-13,.mx-13{margin-left:52px !important}.mb-13,.my-13{margin-bottom:52px !important}.ms-13{margin-inline-start:52px !important}.me-13{margin-inline-end:52px !important}.ma-13{margin:52px !important}.mt-14,.my-14{margin-top:56px !important}.mr-14,.mx-14{margin-right:56px !important}.ml-14,.mx-14{margin-left:56px !important}.mb-14,.my-14{margin-bottom:56px !important}.ms-14{margin-inline-start:56px !important}.me-14{margin-inline-end:56px !important}.ma-14{margin:56px !important}.mt-15,.my-15{margin-top:60px !important}.mr-15,.mx-15{margin-right:60px !important}.ml-15,.mx-15{margin-left:60px !important}.mb-15,.my-15{margin-bottom:60px !important}.ms-15{margin-inline-start:60px !important}.me-15{margin-inline-end:60px !important}.ma-15{margin:60px !important}.mt-16,.my-16{margin-top:64px !important}.mr-16,.mx-16{margin-right:64px !important}.ml-16,.mx-16{margin-left:64px !important}.mb-16,.my-16{margin-bottom:64px !important}.ms-16{margin-inline-start:64px !important}.me-16{margin-inline-end:64px !important}.ma-16{margin:64px !important}.mt-17,.my-17{margin-top:68px !important}.mr-17,.mx-17{margin-right:68px !important}.ml-17,.mx-17{margin-left:68px !important}.mb-17,.my-17{margin-bottom:68px !important}.ms-17{margin-inline-start:68px !important}.me-17{margin-inline-end:68px !important}.ma-17{margin:68px !important}.mt-18,.my-18{margin-top:72px !important}.mr-18,.mx-18{margin-right:72px !important}.ml-18,.mx-18{margin-left:72px !important}.mb-18,.my-18{margin-bottom:72px !important}.ms-18{margin-inline-start:72px !important}.me-18{margin-inline-end:72px !important}.ma-18{margin:72px !important}.mt-19,.my-19{margin-top:76px !important}.mr-19,.mx-19{margin-right:76px !important}.ml-19,.mx-19{margin-left:76px !important}.mb-19,.my-19{margin-bottom:76px !important}.ms-19{margin-inline-start:76px !important}.me-19{margin-inline-end:76px !important}.ma-19{margin:76px !important}.mt-20,.my-20{margin-top:80px !important}.mr-20,.mx-20{margin-right:80px !important}.ml-20,.mx-20{margin-left:80px !important}.mb-20,.my-20{margin-bottom:80px !important}.ms-20{margin-inline-start:80px !important}.me-20{margin-inline-end:80px !important}.ma-20{margin:80px !important}.mt-auto,.my-auto{margin-top:auto !important}.mr-auto,.mx-auto{margin-right:auto !important}.ml-auto,.mx-auto{margin-left:auto !important}.mb-auto,.my-auto{margin-bottom:auto !important}.ms-auto{margin-inline-start:auto !important}.me-auto{margin-inline-end:auto !important}.ma-auto{margin:auto !important}.pt-0,.py-0{padding-top:0 !important}.pr-0,.px-0{padding-right:0 !important}.pl-0,.px-0{padding-left:0 !important}.pb-0,.py-0{padding-bottom:0 !important}.ps-0{padding-inline-start:0 !important}.pe-0{padding-inline-end:0 !important}.pa-0{padding:0 !important}.pt-1,.py-1{padding-top:4px !important}.pr-1,.px-1{padding-right:4px !important}.pl-1,.px-1{padding-left:4px !important}.pb-1,.py-1{padding-bottom:4px !important}.ps-1{padding-inline-start:4px !important}.pe-1{padding-inline-end:4px !important}.pa-1{padding:4px !important}.pt-2,.py-2{padding-top:8px !important}.pr-2,.px-2{padding-right:8px !important}.pl-2,.px-2{padding-left:8px !important}.pb-2,.py-2{padding-bottom:8px !important}.ps-2{padding-inline-start:8px !important}.pe-2{padding-inline-end:8px !important}.pa-2{padding:8px !important}.pt-3,.py-3{padding-top:12px !important}.pr-3,.px-3{padding-right:12px !important}.pl-3,.px-3{padding-left:12px !important}.pb-3,.py-3{padding-bottom:12px !important}.ps-3{padding-inline-start:12px !important}.pe-3{padding-inline-end:12px !important}.pa-3{padding:12px !important}.pt-4,.py-4{padding-top:16px !important}.pr-4,.px-4{padding-right:16px !important}.pl-4,.px-4{padding-left:16px !important}.pb-4,.py-4{padding-bottom:16px !important}.ps-4{padding-inline-start:16px !important}.pe-4{padding-inline-end:16px !important}.pa-4{padding:16px !important}.pt-5,.py-5{padding-top:20px !important}.pr-5,.px-5{padding-right:20px !important}.pl-5,.px-5{padding-left:20px !important}.pb-5,.py-5{padding-bottom:20px !important}.ps-5{padding-inline-start:20px !important}.pe-5{padding-inline-end:20px !important}.pa-5{padding:20px !important}.pt-6,.py-6{padding-top:24px !important}.pr-6,.px-6{padding-right:24px !important}.pl-6,.px-6{padding-left:24px !important}.pb-6,.py-6{padding-bottom:24px !important}.ps-6{padding-inline-start:24px !important}.pe-6{padding-inline-end:24px !important}.pa-6{padding:24px !important}.pt-7,.py-7{padding-top:28px !important}.pr-7,.px-7{padding-right:28px !important}.pl-7,.px-7{padding-left:28px !important}.pb-7,.py-7{padding-bottom:28px !important}.ps-7{padding-inline-start:28px !important}.pe-7{padding-inline-end:28px !important}.pa-7{padding:28px !important}.pt-8,.py-8{padding-top:32px !important}.pr-8,.px-8{padding-right:32px !important}.pl-8,.px-8{padding-left:32px !important}.pb-8,.py-8{padding-bottom:32px !important}.ps-8{padding-inline-start:32px !important}.pe-8{padding-inline-end:32px !important}.pa-8{padding:32px !important}.pt-9,.py-9{padding-top:36px !important}.pr-9,.px-9{padding-right:36px !important}.pl-9,.px-9{padding-left:36px !important}.pb-9,.py-9{padding-bottom:36px !important}.ps-9{padding-inline-start:36px !important}.pe-9{padding-inline-end:36px !important}.pa-9{padding:36px !important}.pt-10,.py-10{padding-top:40px !important}.pr-10,.px-10{padding-right:40px !important}.pl-10,.px-10{padding-left:40px !important}.pb-10,.py-10{padding-bottom:40px !important}.ps-10{padding-inline-start:40px !important}.pe-10{padding-inline-end:40px !important}.pa-10{padding:40px !important}.pt-11,.py-11{padding-top:44px !important}.pr-11,.px-11{padding-right:44px !important}.pl-11,.px-11{padding-left:44px !important}.pb-11,.py-11{padding-bottom:44px !important}.ps-11{padding-inline-start:44px !important}.pe-11{padding-inline-end:44px !important}.pa-11{padding:44px !important}.pt-12,.py-12{padding-top:48px !important}.pr-12,.px-12{padding-right:48px !important}.pl-12,.px-12{padding-left:48px !important}.pb-12,.py-12{padding-bottom:48px !important}.ps-12{padding-inline-start:48px !important}.pe-12{padding-inline-end:48px !important}.pa-12{padding:48px !important}.pt-13,.py-13{padding-top:52px !important}.pr-13,.px-13{padding-right:52px !important}.pl-13,.px-13{padding-left:52px !important}.pb-13,.py-13{padding-bottom:52px !important}.ps-13{padding-inline-start:52px !important}.pe-13{padding-inline-end:52px !important}.pa-13{padding:52px !important}.pt-14,.py-14{padding-top:56px !important}.pr-14,.px-14{padding-right:56px !important}.pl-14,.px-14{padding-left:56px !important}.pb-14,.py-14{padding-bottom:56px !important}.ps-14{padding-inline-start:56px !important}.pe-14{padding-inline-end:56px !important}.pa-14{padding:56px !important}.pt-15,.py-15{padding-top:60px !important}.pr-15,.px-15{padding-right:60px !important}.pl-15,.px-15{padding-left:60px !important}.pb-15,.py-15{padding-bottom:60px !important}.ps-15{padding-inline-start:60px !important}.pe-15{padding-inline-end:60px !important}.pa-15{padding:60px !important}.pt-16,.py-16{padding-top:64px !important}.pr-16,.px-16{padding-right:64px !important}.pl-16,.px-16{padding-left:64px !important}.pb-16,.py-16{padding-bottom:64px !important}.ps-16{padding-inline-start:64px !important}.pe-16{padding-inline-end:64px !important}.pa-16{padding:64px !important}.pt-17,.py-17{padding-top:68px !important}.pr-17,.px-17{padding-right:68px !important}.pl-17,.px-17{padding-left:68px !important}.pb-17,.py-17{padding-bottom:68px !important}.ps-17{padding-inline-start:68px !important}.pe-17{padding-inline-end:68px !important}.pa-17{padding:68px !important}.pt-18,.py-18{padding-top:72px !important}.pr-18,.px-18{padding-right:72px !important}.pl-18,.px-18{padding-left:72px !important}.pb-18,.py-18{padding-bottom:72px !important}.ps-18{padding-inline-start:72px !important}.pe-18{padding-inline-end:72px !important}.pa-18{padding:72px !important}.pt-19,.py-19{padding-top:76px !important}.pr-19,.px-19{padding-right:76px !important}.pl-19,.px-19{padding-left:76px !important}.pb-19,.py-19{padding-bottom:76px !important}.ps-19{padding-inline-start:76px !important}.pe-19{padding-inline-end:76px !important}.pa-19{padding:76px !important}.pt-20,.py-20{padding-top:80px !important}.pr-20,.px-20{padding-right:80px !important}.pl-20,.px-20{padding-left:80px !important}.pb-20,.py-20{padding-bottom:80px !important}.ps-20{padding-inline-start:80px !important}.pe-20{padding-inline-end:80px !important}.pa-20{padding:80px !important}.pt-auto,.py-auto{padding-top:auto !important}.pr-auto,.px-auto{padding-right:auto !important}.pl-auto,.px-auto{padding-left:auto !important}.pb-auto,.py-auto{padding-bottom:auto !important}.ps-auto{padding-inline-start:auto !important}.pe-auto{padding-inline-end:auto !important}.pa-auto{padding:auto !important}.mt-n1,.my-n1{margin-top:-4px !important}.mr-n1,.mx-n1{margin-right:-4px !important}.ml-n1,.mx-n1{margin-left:-4px !important}.mb-n1,.my-n1{margin-bottom:-4px !important}.ms-n1{margin-inline-start:-4px !important}.me-n1{margin-inline-end:-4px !important}.ma-n1{margin:-4px !important}.mt-n2,.my-n2{margin-top:-8px !important}.mr-n2,.mx-n2{margin-right:-8px !important}.ml-n2,.mx-n2{margin-left:-8px !important}.mb-n2,.my-n2{margin-bottom:-8px !important}.ms-n2{margin-inline-start:-8px !important}.me-n2{margin-inline-end:-8px !important}.ma-n2{margin:-8px !important}.mt-n3,.my-n3{margin-top:-12px !important}.mr-n3,.mx-n3{margin-right:-12px !important}.ml-n3,.mx-n3{margin-left:-12px !important}.mb-n3,.my-n3{margin-bottom:-12px !important}.ms-n3{margin-inline-start:-12px !important}.me-n3{margin-inline-end:-12px !important}.ma-n3{margin:-12px !important}.mt-n4,.my-n4{margin-top:-16px !important}.mr-n4,.mx-n4{margin-right:-16px !important}.ml-n4,.mx-n4{margin-left:-16px !important}.mb-n4,.my-n4{margin-bottom:-16px !important}.ms-n4{margin-inline-start:-16px !important}.me-n4{margin-inline-end:-16px !important}.ma-n4{margin:-16px !important}.mt-n5,.my-n5{margin-top:-20px !important}.mr-n5,.mx-n5{margin-right:-20px !important}.ml-n5,.mx-n5{margin-left:-20px !important}.mb-n5,.my-n5{margin-bottom:-20px !important}.ms-n5{margin-inline-start:-20px !important}.me-n5{margin-inline-end:-20px !important}.ma-n5{margin:-20px !important}.mt-n6,.my-n6{margin-top:-24px !important}.mr-n6,.mx-n6{margin-right:-24px !important}.ml-n6,.mx-n6{margin-left:-24px !important}.mb-n6,.my-n6{margin-bottom:-24px !important}.ms-n6{margin-inline-start:-24px !important}.me-n6{margin-inline-end:-24px !important}.ma-n6{margin:-24px !important}.mt-n7,.my-n7{margin-top:-28px !important}.mr-n7,.mx-n7{margin-right:-28px !important}.ml-n7,.mx-n7{margin-left:-28px !important}.mb-n7,.my-n7{margin-bottom:-28px !important}.ms-n7{margin-inline-start:-28px !important}.me-n7{margin-inline-end:-28px !important}.ma-n7{margin:-28px !important}.mt-n8,.my-n8{margin-top:-32px !important}.mr-n8,.mx-n8{margin-right:-32px !important}.ml-n8,.mx-n8{margin-left:-32px !important}.mb-n8,.my-n8{margin-bottom:-32px !important}.ms-n8{margin-inline-start:-32px !important}.me-n8{margin-inline-end:-32px !important}.ma-n8{margin:-32px !important}.mt-n9,.my-n9{margin-top:-36px !important}.mr-n9,.mx-n9{margin-right:-36px !important}.ml-n9,.mx-n9{margin-left:-36px !important}.mb-n9,.my-n9{margin-bottom:-36px !important}.ms-n9{margin-inline-start:-36px !important}.me-n9{margin-inline-end:-36px !important}.ma-n9{margin:-36px !important}.mt-n10,.my-n10{margin-top:-40px !important}.mr-n10,.mx-n10{margin-right:-40px !important}.ml-n10,.mx-n10{margin-left:-40px !important}.mb-n10,.my-n10{margin-bottom:-40px !important}.ms-n10{margin-inline-start:-40px !important}.me-n10{margin-inline-end:-40px !important}.ma-n10{margin:-40px !important}.mt-n11,.my-n11{margin-top:-44px !important}.mr-n11,.mx-n11{margin-right:-44px !important}.ml-n11,.mx-n11{margin-left:-44px !important}.mb-n11,.my-n11{margin-bottom:-44px !important}.ms-n11{margin-inline-start:-44px !important}.me-n11{margin-inline-end:-44px !important}.ma-n11{margin:-44px !important}.mt-n12,.my-n12{margin-top:-48px !important}.mr-n12,.mx-n12{margin-right:-48px !important}.ml-n12,.mx-n12{margin-left:-48px !important}.mb-n12,.my-n12{margin-bottom:-48px !important}.ms-n12{margin-inline-start:-48px !important}.me-n12{margin-inline-end:-48px !important}.ma-n12{margin:-48px !important}.mt-n13,.my-n13{margin-top:-52px !important}.mr-n13,.mx-n13{margin-right:-52px !important}.ml-n13,.mx-n13{margin-left:-52px !important}.mb-n13,.my-n13{margin-bottom:-52px !important}.ms-n13{margin-inline-start:-52px !important}.me-n13{margin-inline-end:-52px !important}.ma-n13{margin:-52px !important}.mt-n14,.my-n14{margin-top:-56px !important}.mr-n14,.mx-n14{margin-right:-56px !important}.ml-n14,.mx-n14{margin-left:-56px !important}.mb-n14,.my-n14{margin-bottom:-56px !important}.ms-n14{margin-inline-start:-56px !important}.me-n14{margin-inline-end:-56px !important}.ma-n14{margin:-56px !important}.mt-n15,.my-n15{margin-top:-60px !important}.mr-n15,.mx-n15{margin-right:-60px !important}.ml-n15,.mx-n15{margin-left:-60px !important}.mb-n15,.my-n15{margin-bottom:-60px !important}.ms-n15{margin-inline-start:-60px !important}.me-n15{margin-inline-end:-60px !important}.ma-n15{margin:-60px !important}.mt-n16,.my-n16{margin-top:-64px !important}.mr-n16,.mx-n16{margin-right:-64px !important}.ml-n16,.mx-n16{margin-left:-64px !important}.mb-n16,.my-n16{margin-bottom:-64px !important}.ms-n16{margin-inline-start:-64px !important}.me-n16{margin-inline-end:-64px !important}.ma-n16{margin:-64px !important}.mt-n17,.my-n17{margin-top:-68px !important}.mr-n17,.mx-n17{margin-right:-68px !important}.ml-n17,.mx-n17{margin-left:-68px !important}.mb-n17,.my-n17{margin-bottom:-68px !important}.ms-n17{margin-inline-start:-68px !important}.me-n17{margin-inline-end:-68px !important}.ma-n17{margin:-68px !important}.mt-n18,.my-n18{margin-top:-72px !important}.mr-n18,.mx-n18{margin-right:-72px !important}.ml-n18,.mx-n18{margin-left:-72px !important}.mb-n18,.my-n18{margin-bottom:-72px !important}.ms-n18{margin-inline-start:-72px !important}.me-n18{margin-inline-end:-72px !important}.ma-n18{margin:-72px !important}.mt-n19,.my-n19{margin-top:-76px !important}.mr-n19,.mx-n19{margin-right:-76px !important}.ml-n19,.mx-n19{margin-left:-76px !important}.mb-n19,.my-n19{margin-bottom:-76px !important}.ms-n19{margin-inline-start:-76px !important}.me-n19{margin-inline-end:-76px !important}.ma-n19{margin:-76px !important}.mt-n20,.my-n20{margin-top:-80px !important}.mr-n20,.mx-n20{margin-right:-80px !important}.ml-n20,.mx-n20{margin-left:-80px !important}.mb-n20,.my-n20{margin-bottom:-80px !important}.ms-n20{margin-inline-start:-80px !important}.me-n20{margin-inline-end:-80px !important}.ma-n20{margin:-80px !important}@media screen and (min-width: 600px){.mt-sm-0,.my-sm-0{margin-top:0 !important}.mr-sm-0,.mx-sm-0{margin-right:0 !important}.ml-sm-0,.mx-sm-0{margin-left:0 !important}.mb-sm-0,.my-sm-0{margin-bottom:0 !important}.ms-sm-0{margin-inline-start:0 !important}.me-sm-0{margin-inline-end:0 !important}.ma-sm-0{margin:0 !important}.mt-sm-1,.my-sm-1{margin-top:4px !important}.mr-sm-1,.mx-sm-1{margin-right:4px !important}.ml-sm-1,.mx-sm-1{margin-left:4px !important}.mb-sm-1,.my-sm-1{margin-bottom:4px !important}.ms-sm-1{margin-inline-start:4px !important}.me-sm-1{margin-inline-end:4px !important}.ma-sm-1{margin:4px !important}.mt-sm-2,.my-sm-2{margin-top:8px !important}.mr-sm-2,.mx-sm-2{margin-right:8px !important}.ml-sm-2,.mx-sm-2{margin-left:8px !important}.mb-sm-2,.my-sm-2{margin-bottom:8px !important}.ms-sm-2{margin-inline-start:8px !important}.me-sm-2{margin-inline-end:8px !important}.ma-sm-2{margin:8px !important}.mt-sm-3,.my-sm-3{margin-top:12px !important}.mr-sm-3,.mx-sm-3{margin-right:12px !important}.ml-sm-3,.mx-sm-3{margin-left:12px !important}.mb-sm-3,.my-sm-3{margin-bottom:12px !important}.ms-sm-3{margin-inline-start:12px !important}.me-sm-3{margin-inline-end:12px !important}.ma-sm-3{margin:12px !important}.mt-sm-4,.my-sm-4{margin-top:16px !important}.mr-sm-4,.mx-sm-4{margin-right:16px !important}.ml-sm-4,.mx-sm-4{margin-left:16px !important}.mb-sm-4,.my-sm-4{margin-bottom:16px !important}.ms-sm-4{margin-inline-start:16px !important}.me-sm-4{margin-inline-end:16px !important}.ma-sm-4{margin:16px !important}.mt-sm-5,.my-sm-5{margin-top:20px !important}.mr-sm-5,.mx-sm-5{margin-right:20px !important}.ml-sm-5,.mx-sm-5{margin-left:20px !important}.mb-sm-5,.my-sm-5{margin-bottom:20px !important}.ms-sm-5{margin-inline-start:20px !important}.me-sm-5{margin-inline-end:20px !important}.ma-sm-5{margin:20px !important}.mt-sm-6,.my-sm-6{margin-top:24px !important}.mr-sm-6,.mx-sm-6{margin-right:24px !important}.ml-sm-6,.mx-sm-6{margin-left:24px !important}.mb-sm-6,.my-sm-6{margin-bottom:24px !important}.ms-sm-6{margin-inline-start:24px !important}.me-sm-6{margin-inline-end:24px !important}.ma-sm-6{margin:24px !important}.mt-sm-7,.my-sm-7{margin-top:28px !important}.mr-sm-7,.mx-sm-7{margin-right:28px !important}.ml-sm-7,.mx-sm-7{margin-left:28px !important}.mb-sm-7,.my-sm-7{margin-bottom:28px !important}.ms-sm-7{margin-inline-start:28px !important}.me-sm-7{margin-inline-end:28px !important}.ma-sm-7{margin:28px !important}.mt-sm-8,.my-sm-8{margin-top:32px !important}.mr-sm-8,.mx-sm-8{margin-right:32px !important}.ml-sm-8,.mx-sm-8{margin-left:32px !important}.mb-sm-8,.my-sm-8{margin-bottom:32px !important}.ms-sm-8{margin-inline-start:32px !important}.me-sm-8{margin-inline-end:32px !important}.ma-sm-8{margin:32px !important}.mt-sm-9,.my-sm-9{margin-top:36px !important}.mr-sm-9,.mx-sm-9{margin-right:36px !important}.ml-sm-9,.mx-sm-9{margin-left:36px !important}.mb-sm-9,.my-sm-9{margin-bottom:36px !important}.ms-sm-9{margin-inline-start:36px !important}.me-sm-9{margin-inline-end:36px !important}.ma-sm-9{margin:36px !important}.mt-sm-10,.my-sm-10{margin-top:40px !important}.mr-sm-10,.mx-sm-10{margin-right:40px !important}.ml-sm-10,.mx-sm-10{margin-left:40px !important}.mb-sm-10,.my-sm-10{margin-bottom:40px !important}.ms-sm-10{margin-inline-start:40px !important}.me-sm-10{margin-inline-end:40px !important}.ma-sm-10{margin:40px !important}.mt-sm-11,.my-sm-11{margin-top:44px !important}.mr-sm-11,.mx-sm-11{margin-right:44px !important}.ml-sm-11,.mx-sm-11{margin-left:44px !important}.mb-sm-11,.my-sm-11{margin-bottom:44px !important}.ms-sm-11{margin-inline-start:44px !important}.me-sm-11{margin-inline-end:44px !important}.ma-sm-11{margin:44px !important}.mt-sm-12,.my-sm-12{margin-top:48px !important}.mr-sm-12,.mx-sm-12{margin-right:48px !important}.ml-sm-12,.mx-sm-12{margin-left:48px !important}.mb-sm-12,.my-sm-12{margin-bottom:48px !important}.ms-sm-12{margin-inline-start:48px !important}.me-sm-12{margin-inline-end:48px !important}.ma-sm-12{margin:48px !important}.mt-sm-13,.my-sm-13{margin-top:52px !important}.mr-sm-13,.mx-sm-13{margin-right:52px !important}.ml-sm-13,.mx-sm-13{margin-left:52px !important}.mb-sm-13,.my-sm-13{margin-bottom:52px !important}.ms-sm-13{margin-inline-start:52px !important}.me-sm-13{margin-inline-end:52px !important}.ma-sm-13{margin:52px !important}.mt-sm-14,.my-sm-14{margin-top:56px !important}.mr-sm-14,.mx-sm-14{margin-right:56px !important}.ml-sm-14,.mx-sm-14{margin-left:56px !important}.mb-sm-14,.my-sm-14{margin-bottom:56px !important}.ms-sm-14{margin-inline-start:56px !important}.me-sm-14{margin-inline-end:56px !important}.ma-sm-14{margin:56px !important}.mt-sm-15,.my-sm-15{margin-top:60px !important}.mr-sm-15,.mx-sm-15{margin-right:60px !important}.ml-sm-15,.mx-sm-15{margin-left:60px !important}.mb-sm-15,.my-sm-15{margin-bottom:60px !important}.ms-sm-15{margin-inline-start:60px !important}.me-sm-15{margin-inline-end:60px !important}.ma-sm-15{margin:60px !important}.mt-sm-16,.my-sm-16{margin-top:64px !important}.mr-sm-16,.mx-sm-16{margin-right:64px !important}.ml-sm-16,.mx-sm-16{margin-left:64px !important}.mb-sm-16,.my-sm-16{margin-bottom:64px !important}.ms-sm-16{margin-inline-start:64px !important}.me-sm-16{margin-inline-end:64px !important}.ma-sm-16{margin:64px !important}.mt-sm-17,.my-sm-17{margin-top:68px !important}.mr-sm-17,.mx-sm-17{margin-right:68px !important}.ml-sm-17,.mx-sm-17{margin-left:68px !important}.mb-sm-17,.my-sm-17{margin-bottom:68px !important}.ms-sm-17{margin-inline-start:68px !important}.me-sm-17{margin-inline-end:68px !important}.ma-sm-17{margin:68px !important}.mt-sm-18,.my-sm-18{margin-top:72px !important}.mr-sm-18,.mx-sm-18{margin-right:72px !important}.ml-sm-18,.mx-sm-18{margin-left:72px !important}.mb-sm-18,.my-sm-18{margin-bottom:72px !important}.ms-sm-18{margin-inline-start:72px !important}.me-sm-18{margin-inline-end:72px !important}.ma-sm-18{margin:72px !important}.mt-sm-19,.my-sm-19{margin-top:76px !important}.mr-sm-19,.mx-sm-19{margin-right:76px !important}.ml-sm-19,.mx-sm-19{margin-left:76px !important}.mb-sm-19,.my-sm-19{margin-bottom:76px !important}.ms-sm-19{margin-inline-start:76px !important}.me-sm-19{margin-inline-end:76px !important}.ma-sm-19{margin:76px !important}.mt-sm-20,.my-sm-20{margin-top:80px !important}.mr-sm-20,.mx-sm-20{margin-right:80px !important}.ml-sm-20,.mx-sm-20{margin-left:80px !important}.mb-sm-20,.my-sm-20{margin-bottom:80px !important}.ms-sm-20{margin-inline-start:80px !important}.me-sm-20{margin-inline-end:80px !important}.ma-sm-20{margin:80px !important}.mt-sm-auto,.my-sm-auto{margin-top:auto !important}.mr-sm-auto,.mx-sm-auto{margin-right:auto !important}.ml-sm-auto,.mx-sm-auto{margin-left:auto !important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto !important}.ms-sm-auto{margin-inline-start:auto !important}.me-sm-auto{margin-inline-end:auto !important}.ma-sm-auto{margin:auto !important}.pt-sm-0,.py-sm-0{padding-top:0 !important}.pr-sm-0,.px-sm-0{padding-right:0 !important}.pl-sm-0,.px-sm-0{padding-left:0 !important}.pb-sm-0,.py-sm-0{padding-bottom:0 !important}.ps-sm-0{padding-inline-start:0 !important}.pe-sm-0{padding-inline-end:0 !important}.pa-sm-0{padding:0 !important}.pt-sm-1,.py-sm-1{padding-top:4px !important}.pr-sm-1,.px-sm-1{padding-right:4px !important}.pl-sm-1,.px-sm-1{padding-left:4px !important}.pb-sm-1,.py-sm-1{padding-bottom:4px !important}.ps-sm-1{padding-inline-start:4px !important}.pe-sm-1{padding-inline-end:4px !important}.pa-sm-1{padding:4px !important}.pt-sm-2,.py-sm-2{padding-top:8px !important}.pr-sm-2,.px-sm-2{padding-right:8px !important}.pl-sm-2,.px-sm-2{padding-left:8px !important}.pb-sm-2,.py-sm-2{padding-bottom:8px !important}.ps-sm-2{padding-inline-start:8px !important}.pe-sm-2{padding-inline-end:8px !important}.pa-sm-2{padding:8px !important}.pt-sm-3,.py-sm-3{padding-top:12px !important}.pr-sm-3,.px-sm-3{padding-right:12px !important}.pl-sm-3,.px-sm-3{padding-left:12px !important}.pb-sm-3,.py-sm-3{padding-bottom:12px !important}.ps-sm-3{padding-inline-start:12px !important}.pe-sm-3{padding-inline-end:12px !important}.pa-sm-3{padding:12px !important}.pt-sm-4,.py-sm-4{padding-top:16px !important}.pr-sm-4,.px-sm-4{padding-right:16px !important}.pl-sm-4,.px-sm-4{padding-left:16px !important}.pb-sm-4,.py-sm-4{padding-bottom:16px !important}.ps-sm-4{padding-inline-start:16px !important}.pe-sm-4{padding-inline-end:16px !important}.pa-sm-4{padding:16px !important}.pt-sm-5,.py-sm-5{padding-top:20px !important}.pr-sm-5,.px-sm-5{padding-right:20px !important}.pl-sm-5,.px-sm-5{padding-left:20px !important}.pb-sm-5,.py-sm-5{padding-bottom:20px !important}.ps-sm-5{padding-inline-start:20px !important}.pe-sm-5{padding-inline-end:20px !important}.pa-sm-5{padding:20px !important}.pt-sm-6,.py-sm-6{padding-top:24px !important}.pr-sm-6,.px-sm-6{padding-right:24px !important}.pl-sm-6,.px-sm-6{padding-left:24px !important}.pb-sm-6,.py-sm-6{padding-bottom:24px !important}.ps-sm-6{padding-inline-start:24px !important}.pe-sm-6{padding-inline-end:24px !important}.pa-sm-6{padding:24px !important}.pt-sm-7,.py-sm-7{padding-top:28px !important}.pr-sm-7,.px-sm-7{padding-right:28px !important}.pl-sm-7,.px-sm-7{padding-left:28px !important}.pb-sm-7,.py-sm-7{padding-bottom:28px !important}.ps-sm-7{padding-inline-start:28px !important}.pe-sm-7{padding-inline-end:28px !important}.pa-sm-7{padding:28px !important}.pt-sm-8,.py-sm-8{padding-top:32px !important}.pr-sm-8,.px-sm-8{padding-right:32px !important}.pl-sm-8,.px-sm-8{padding-left:32px !important}.pb-sm-8,.py-sm-8{padding-bottom:32px !important}.ps-sm-8{padding-inline-start:32px !important}.pe-sm-8{padding-inline-end:32px !important}.pa-sm-8{padding:32px !important}.pt-sm-9,.py-sm-9{padding-top:36px !important}.pr-sm-9,.px-sm-9{padding-right:36px !important}.pl-sm-9,.px-sm-9{padding-left:36px !important}.pb-sm-9,.py-sm-9{padding-bottom:36px !important}.ps-sm-9{padding-inline-start:36px !important}.pe-sm-9{padding-inline-end:36px !important}.pa-sm-9{padding:36px !important}.pt-sm-10,.py-sm-10{padding-top:40px !important}.pr-sm-10,.px-sm-10{padding-right:40px !important}.pl-sm-10,.px-sm-10{padding-left:40px !important}.pb-sm-10,.py-sm-10{padding-bottom:40px !important}.ps-sm-10{padding-inline-start:40px !important}.pe-sm-10{padding-inline-end:40px !important}.pa-sm-10{padding:40px !important}.pt-sm-11,.py-sm-11{padding-top:44px !important}.pr-sm-11,.px-sm-11{padding-right:44px !important}.pl-sm-11,.px-sm-11{padding-left:44px !important}.pb-sm-11,.py-sm-11{padding-bottom:44px !important}.ps-sm-11{padding-inline-start:44px !important}.pe-sm-11{padding-inline-end:44px !important}.pa-sm-11{padding:44px !important}.pt-sm-12,.py-sm-12{padding-top:48px !important}.pr-sm-12,.px-sm-12{padding-right:48px !important}.pl-sm-12,.px-sm-12{padding-left:48px !important}.pb-sm-12,.py-sm-12{padding-bottom:48px !important}.ps-sm-12{padding-inline-start:48px !important}.pe-sm-12{padding-inline-end:48px !important}.pa-sm-12{padding:48px !important}.pt-sm-13,.py-sm-13{padding-top:52px !important}.pr-sm-13,.px-sm-13{padding-right:52px !important}.pl-sm-13,.px-sm-13{padding-left:52px !important}.pb-sm-13,.py-sm-13{padding-bottom:52px !important}.ps-sm-13{padding-inline-start:52px !important}.pe-sm-13{padding-inline-end:52px !important}.pa-sm-13{padding:52px !important}.pt-sm-14,.py-sm-14{padding-top:56px !important}.pr-sm-14,.px-sm-14{padding-right:56px !important}.pl-sm-14,.px-sm-14{padding-left:56px !important}.pb-sm-14,.py-sm-14{padding-bottom:56px !important}.ps-sm-14{padding-inline-start:56px !important}.pe-sm-14{padding-inline-end:56px !important}.pa-sm-14{padding:56px !important}.pt-sm-15,.py-sm-15{padding-top:60px !important}.pr-sm-15,.px-sm-15{padding-right:60px !important}.pl-sm-15,.px-sm-15{padding-left:60px !important}.pb-sm-15,.py-sm-15{padding-bottom:60px !important}.ps-sm-15{padding-inline-start:60px !important}.pe-sm-15{padding-inline-end:60px !important}.pa-sm-15{padding:60px !important}.pt-sm-16,.py-sm-16{padding-top:64px !important}.pr-sm-16,.px-sm-16{padding-right:64px !important}.pl-sm-16,.px-sm-16{padding-left:64px !important}.pb-sm-16,.py-sm-16{padding-bottom:64px !important}.ps-sm-16{padding-inline-start:64px !important}.pe-sm-16{padding-inline-end:64px !important}.pa-sm-16{padding:64px !important}.pt-sm-17,.py-sm-17{padding-top:68px !important}.pr-sm-17,.px-sm-17{padding-right:68px !important}.pl-sm-17,.px-sm-17{padding-left:68px !important}.pb-sm-17,.py-sm-17{padding-bottom:68px !important}.ps-sm-17{padding-inline-start:68px !important}.pe-sm-17{padding-inline-end:68px !important}.pa-sm-17{padding:68px !important}.pt-sm-18,.py-sm-18{padding-top:72px !important}.pr-sm-18,.px-sm-18{padding-right:72px !important}.pl-sm-18,.px-sm-18{padding-left:72px !important}.pb-sm-18,.py-sm-18{padding-bottom:72px !important}.ps-sm-18{padding-inline-start:72px !important}.pe-sm-18{padding-inline-end:72px !important}.pa-sm-18{padding:72px !important}.pt-sm-19,.py-sm-19{padding-top:76px !important}.pr-sm-19,.px-sm-19{padding-right:76px !important}.pl-sm-19,.px-sm-19{padding-left:76px !important}.pb-sm-19,.py-sm-19{padding-bottom:76px !important}.ps-sm-19{padding-inline-start:76px !important}.pe-sm-19{padding-inline-end:76px !important}.pa-sm-19{padding:76px !important}.pt-sm-20,.py-sm-20{padding-top:80px !important}.pr-sm-20,.px-sm-20{padding-right:80px !important}.pl-sm-20,.px-sm-20{padding-left:80px !important}.pb-sm-20,.py-sm-20{padding-bottom:80px !important}.ps-sm-20{padding-inline-start:80px !important}.pe-sm-20{padding-inline-end:80px !important}.pa-sm-20{padding:80px !important}.pt-sm-auto,.py-sm-auto{padding-top:auto !important}.pr-sm-auto,.px-sm-auto{padding-right:auto !important}.pl-sm-auto,.px-sm-auto{padding-left:auto !important}.pb-sm-auto,.py-sm-auto{padding-bottom:auto !important}.ps-sm-auto{padding-inline-start:auto !important}.pe-sm-auto{padding-inline-end:auto !important}.pa-sm-auto{padding:auto !important}.mt-sm-n1,.my-sm-n1{margin-top:-4px !important}.mr-sm-n1,.mx-sm-n1{margin-right:-4px !important}.ml-sm-n1,.mx-sm-n1{margin-left:-4px !important}.mb-sm-n1,.my-sm-n1{margin-bottom:-4px !important}.ms-sm-n1{margin-inline-start:-4px !important}.me-sm-n1{margin-inline-end:-4px !important}.ma-sm-n1{margin:-4px !important}.mt-sm-n2,.my-sm-n2{margin-top:-8px !important}.mr-sm-n2,.mx-sm-n2{margin-right:-8px !important}.ml-sm-n2,.mx-sm-n2{margin-left:-8px !important}.mb-sm-n2,.my-sm-n2{margin-bottom:-8px !important}.ms-sm-n2{margin-inline-start:-8px !important}.me-sm-n2{margin-inline-end:-8px !important}.ma-sm-n2{margin:-8px !important}.mt-sm-n3,.my-sm-n3{margin-top:-12px !important}.mr-sm-n3,.mx-sm-n3{margin-right:-12px !important}.ml-sm-n3,.mx-sm-n3{margin-left:-12px !important}.mb-sm-n3,.my-sm-n3{margin-bottom:-12px !important}.ms-sm-n3{margin-inline-start:-12px !important}.me-sm-n3{margin-inline-end:-12px !important}.ma-sm-n3{margin:-12px !important}.mt-sm-n4,.my-sm-n4{margin-top:-16px !important}.mr-sm-n4,.mx-sm-n4{margin-right:-16px !important}.ml-sm-n4,.mx-sm-n4{margin-left:-16px !important}.mb-sm-n4,.my-sm-n4{margin-bottom:-16px !important}.ms-sm-n4{margin-inline-start:-16px !important}.me-sm-n4{margin-inline-end:-16px !important}.ma-sm-n4{margin:-16px !important}.mt-sm-n5,.my-sm-n5{margin-top:-20px !important}.mr-sm-n5,.mx-sm-n5{margin-right:-20px !important}.ml-sm-n5,.mx-sm-n5{margin-left:-20px !important}.mb-sm-n5,.my-sm-n5{margin-bottom:-20px !important}.ms-sm-n5{margin-inline-start:-20px !important}.me-sm-n5{margin-inline-end:-20px !important}.ma-sm-n5{margin:-20px !important}.mt-sm-n6,.my-sm-n6{margin-top:-24px !important}.mr-sm-n6,.mx-sm-n6{margin-right:-24px !important}.ml-sm-n6,.mx-sm-n6{margin-left:-24px !important}.mb-sm-n6,.my-sm-n6{margin-bottom:-24px !important}.ms-sm-n6{margin-inline-start:-24px !important}.me-sm-n6{margin-inline-end:-24px !important}.ma-sm-n6{margin:-24px !important}.mt-sm-n7,.my-sm-n7{margin-top:-28px !important}.mr-sm-n7,.mx-sm-n7{margin-right:-28px !important}.ml-sm-n7,.mx-sm-n7{margin-left:-28px !important}.mb-sm-n7,.my-sm-n7{margin-bottom:-28px !important}.ms-sm-n7{margin-inline-start:-28px !important}.me-sm-n7{margin-inline-end:-28px !important}.ma-sm-n7{margin:-28px !important}.mt-sm-n8,.my-sm-n8{margin-top:-32px !important}.mr-sm-n8,.mx-sm-n8{margin-right:-32px !important}.ml-sm-n8,.mx-sm-n8{margin-left:-32px !important}.mb-sm-n8,.my-sm-n8{margin-bottom:-32px !important}.ms-sm-n8{margin-inline-start:-32px !important}.me-sm-n8{margin-inline-end:-32px !important}.ma-sm-n8{margin:-32px !important}.mt-sm-n9,.my-sm-n9{margin-top:-36px !important}.mr-sm-n9,.mx-sm-n9{margin-right:-36px !important}.ml-sm-n9,.mx-sm-n9{margin-left:-36px !important}.mb-sm-n9,.my-sm-n9{margin-bottom:-36px !important}.ms-sm-n9{margin-inline-start:-36px !important}.me-sm-n9{margin-inline-end:-36px !important}.ma-sm-n9{margin:-36px !important}.mt-sm-n10,.my-sm-n10{margin-top:-40px !important}.mr-sm-n10,.mx-sm-n10{margin-right:-40px !important}.ml-sm-n10,.mx-sm-n10{margin-left:-40px !important}.mb-sm-n10,.my-sm-n10{margin-bottom:-40px !important}.ms-sm-n10{margin-inline-start:-40px !important}.me-sm-n10{margin-inline-end:-40px !important}.ma-sm-n10{margin:-40px !important}.mt-sm-n11,.my-sm-n11{margin-top:-44px !important}.mr-sm-n11,.mx-sm-n11{margin-right:-44px !important}.ml-sm-n11,.mx-sm-n11{margin-left:-44px !important}.mb-sm-n11,.my-sm-n11{margin-bottom:-44px !important}.ms-sm-n11{margin-inline-start:-44px !important}.me-sm-n11{margin-inline-end:-44px !important}.ma-sm-n11{margin:-44px !important}.mt-sm-n12,.my-sm-n12{margin-top:-48px !important}.mr-sm-n12,.mx-sm-n12{margin-right:-48px !important}.ml-sm-n12,.mx-sm-n12{margin-left:-48px !important}.mb-sm-n12,.my-sm-n12{margin-bottom:-48px !important}.ms-sm-n12{margin-inline-start:-48px !important}.me-sm-n12{margin-inline-end:-48px !important}.ma-sm-n12{margin:-48px !important}.mt-sm-n13,.my-sm-n13{margin-top:-52px !important}.mr-sm-n13,.mx-sm-n13{margin-right:-52px !important}.ml-sm-n13,.mx-sm-n13{margin-left:-52px !important}.mb-sm-n13,.my-sm-n13{margin-bottom:-52px !important}.ms-sm-n13{margin-inline-start:-52px !important}.me-sm-n13{margin-inline-end:-52px !important}.ma-sm-n13{margin:-52px !important}.mt-sm-n14,.my-sm-n14{margin-top:-56px !important}.mr-sm-n14,.mx-sm-n14{margin-right:-56px !important}.ml-sm-n14,.mx-sm-n14{margin-left:-56px !important}.mb-sm-n14,.my-sm-n14{margin-bottom:-56px !important}.ms-sm-n14{margin-inline-start:-56px !important}.me-sm-n14{margin-inline-end:-56px !important}.ma-sm-n14{margin:-56px !important}.mt-sm-n15,.my-sm-n15{margin-top:-60px !important}.mr-sm-n15,.mx-sm-n15{margin-right:-60px !important}.ml-sm-n15,.mx-sm-n15{margin-left:-60px !important}.mb-sm-n15,.my-sm-n15{margin-bottom:-60px !important}.ms-sm-n15{margin-inline-start:-60px !important}.me-sm-n15{margin-inline-end:-60px !important}.ma-sm-n15{margin:-60px !important}.mt-sm-n16,.my-sm-n16{margin-top:-64px !important}.mr-sm-n16,.mx-sm-n16{margin-right:-64px !important}.ml-sm-n16,.mx-sm-n16{margin-left:-64px !important}.mb-sm-n16,.my-sm-n16{margin-bottom:-64px !important}.ms-sm-n16{margin-inline-start:-64px !important}.me-sm-n16{margin-inline-end:-64px !important}.ma-sm-n16{margin:-64px !important}.mt-sm-n17,.my-sm-n17{margin-top:-68px !important}.mr-sm-n17,.mx-sm-n17{margin-right:-68px !important}.ml-sm-n17,.mx-sm-n17{margin-left:-68px !important}.mb-sm-n17,.my-sm-n17{margin-bottom:-68px !important}.ms-sm-n17{margin-inline-start:-68px !important}.me-sm-n17{margin-inline-end:-68px !important}.ma-sm-n17{margin:-68px !important}.mt-sm-n18,.my-sm-n18{margin-top:-72px !important}.mr-sm-n18,.mx-sm-n18{margin-right:-72px !important}.ml-sm-n18,.mx-sm-n18{margin-left:-72px !important}.mb-sm-n18,.my-sm-n18{margin-bottom:-72px !important}.ms-sm-n18{margin-inline-start:-72px !important}.me-sm-n18{margin-inline-end:-72px !important}.ma-sm-n18{margin:-72px !important}.mt-sm-n19,.my-sm-n19{margin-top:-76px !important}.mr-sm-n19,.mx-sm-n19{margin-right:-76px !important}.ml-sm-n19,.mx-sm-n19{margin-left:-76px !important}.mb-sm-n19,.my-sm-n19{margin-bottom:-76px !important}.ms-sm-n19{margin-inline-start:-76px !important}.me-sm-n19{margin-inline-end:-76px !important}.ma-sm-n19{margin:-76px !important}.mt-sm-n20,.my-sm-n20{margin-top:-80px !important}.mr-sm-n20,.mx-sm-n20{margin-right:-80px !important}.ml-sm-n20,.mx-sm-n20{margin-left:-80px !important}.mb-sm-n20,.my-sm-n20{margin-bottom:-80px !important}.ms-sm-n20{margin-inline-start:-80px !important}.me-sm-n20{margin-inline-end:-80px !important}.ma-sm-n20{margin:-80px !important}}@media screen and (min-width: 960px){.mt-md-0,.my-md-0{margin-top:0 !important}.mr-md-0,.mx-md-0{margin-right:0 !important}.ml-md-0,.mx-md-0{margin-left:0 !important}.mb-md-0,.my-md-0{margin-bottom:0 !important}.ms-md-0{margin-inline-start:0 !important}.me-md-0{margin-inline-end:0 !important}.ma-md-0{margin:0 !important}.mt-md-1,.my-md-1{margin-top:4px !important}.mr-md-1,.mx-md-1{margin-right:4px !important}.ml-md-1,.mx-md-1{margin-left:4px !important}.mb-md-1,.my-md-1{margin-bottom:4px !important}.ms-md-1{margin-inline-start:4px !important}.me-md-1{margin-inline-end:4px !important}.ma-md-1{margin:4px !important}.mt-md-2,.my-md-2{margin-top:8px !important}.mr-md-2,.mx-md-2{margin-right:8px !important}.ml-md-2,.mx-md-2{margin-left:8px !important}.mb-md-2,.my-md-2{margin-bottom:8px !important}.ms-md-2{margin-inline-start:8px !important}.me-md-2{margin-inline-end:8px !important}.ma-md-2{margin:8px !important}.mt-md-3,.my-md-3{margin-top:12px !important}.mr-md-3,.mx-md-3{margin-right:12px !important}.ml-md-3,.mx-md-3{margin-left:12px !important}.mb-md-3,.my-md-3{margin-bottom:12px !important}.ms-md-3{margin-inline-start:12px !important}.me-md-3{margin-inline-end:12px !important}.ma-md-3{margin:12px !important}.mt-md-4,.my-md-4{margin-top:16px !important}.mr-md-4,.mx-md-4{margin-right:16px !important}.ml-md-4,.mx-md-4{margin-left:16px !important}.mb-md-4,.my-md-4{margin-bottom:16px !important}.ms-md-4{margin-inline-start:16px !important}.me-md-4{margin-inline-end:16px !important}.ma-md-4{margin:16px !important}.mt-md-5,.my-md-5{margin-top:20px !important}.mr-md-5,.mx-md-5{margin-right:20px !important}.ml-md-5,.mx-md-5{margin-left:20px !important}.mb-md-5,.my-md-5{margin-bottom:20px !important}.ms-md-5{margin-inline-start:20px !important}.me-md-5{margin-inline-end:20px !important}.ma-md-5{margin:20px !important}.mt-md-6,.my-md-6{margin-top:24px !important}.mr-md-6,.mx-md-6{margin-right:24px !important}.ml-md-6,.mx-md-6{margin-left:24px !important}.mb-md-6,.my-md-6{margin-bottom:24px !important}.ms-md-6{margin-inline-start:24px !important}.me-md-6{margin-inline-end:24px !important}.ma-md-6{margin:24px !important}.mt-md-7,.my-md-7{margin-top:28px !important}.mr-md-7,.mx-md-7{margin-right:28px !important}.ml-md-7,.mx-md-7{margin-left:28px !important}.mb-md-7,.my-md-7{margin-bottom:28px !important}.ms-md-7{margin-inline-start:28px !important}.me-md-7{margin-inline-end:28px !important}.ma-md-7{margin:28px !important}.mt-md-8,.my-md-8{margin-top:32px !important}.mr-md-8,.mx-md-8{margin-right:32px !important}.ml-md-8,.mx-md-8{margin-left:32px !important}.mb-md-8,.my-md-8{margin-bottom:32px !important}.ms-md-8{margin-inline-start:32px !important}.me-md-8{margin-inline-end:32px !important}.ma-md-8{margin:32px !important}.mt-md-9,.my-md-9{margin-top:36px !important}.mr-md-9,.mx-md-9{margin-right:36px !important}.ml-md-9,.mx-md-9{margin-left:36px !important}.mb-md-9,.my-md-9{margin-bottom:36px !important}.ms-md-9{margin-inline-start:36px !important}.me-md-9{margin-inline-end:36px !important}.ma-md-9{margin:36px !important}.mt-md-10,.my-md-10{margin-top:40px !important}.mr-md-10,.mx-md-10{margin-right:40px !important}.ml-md-10,.mx-md-10{margin-left:40px !important}.mb-md-10,.my-md-10{margin-bottom:40px !important}.ms-md-10{margin-inline-start:40px !important}.me-md-10{margin-inline-end:40px !important}.ma-md-10{margin:40px !important}.mt-md-11,.my-md-11{margin-top:44px !important}.mr-md-11,.mx-md-11{margin-right:44px !important}.ml-md-11,.mx-md-11{margin-left:44px !important}.mb-md-11,.my-md-11{margin-bottom:44px !important}.ms-md-11{margin-inline-start:44px !important}.me-md-11{margin-inline-end:44px !important}.ma-md-11{margin:44px !important}.mt-md-12,.my-md-12{margin-top:48px !important}.mr-md-12,.mx-md-12{margin-right:48px !important}.ml-md-12,.mx-md-12{margin-left:48px !important}.mb-md-12,.my-md-12{margin-bottom:48px !important}.ms-md-12{margin-inline-start:48px !important}.me-md-12{margin-inline-end:48px !important}.ma-md-12{margin:48px !important}.mt-md-13,.my-md-13{margin-top:52px !important}.mr-md-13,.mx-md-13{margin-right:52px !important}.ml-md-13,.mx-md-13{margin-left:52px !important}.mb-md-13,.my-md-13{margin-bottom:52px !important}.ms-md-13{margin-inline-start:52px !important}.me-md-13{margin-inline-end:52px !important}.ma-md-13{margin:52px !important}.mt-md-14,.my-md-14{margin-top:56px !important}.mr-md-14,.mx-md-14{margin-right:56px !important}.ml-md-14,.mx-md-14{margin-left:56px !important}.mb-md-14,.my-md-14{margin-bottom:56px !important}.ms-md-14{margin-inline-start:56px !important}.me-md-14{margin-inline-end:56px !important}.ma-md-14{margin:56px !important}.mt-md-15,.my-md-15{margin-top:60px !important}.mr-md-15,.mx-md-15{margin-right:60px !important}.ml-md-15,.mx-md-15{margin-left:60px !important}.mb-md-15,.my-md-15{margin-bottom:60px !important}.ms-md-15{margin-inline-start:60px !important}.me-md-15{margin-inline-end:60px !important}.ma-md-15{margin:60px !important}.mt-md-16,.my-md-16{margin-top:64px !important}.mr-md-16,.mx-md-16{margin-right:64px !important}.ml-md-16,.mx-md-16{margin-left:64px !important}.mb-md-16,.my-md-16{margin-bottom:64px !important}.ms-md-16{margin-inline-start:64px !important}.me-md-16{margin-inline-end:64px !important}.ma-md-16{margin:64px !important}.mt-md-17,.my-md-17{margin-top:68px !important}.mr-md-17,.mx-md-17{margin-right:68px !important}.ml-md-17,.mx-md-17{margin-left:68px !important}.mb-md-17,.my-md-17{margin-bottom:68px !important}.ms-md-17{margin-inline-start:68px !important}.me-md-17{margin-inline-end:68px !important}.ma-md-17{margin:68px !important}.mt-md-18,.my-md-18{margin-top:72px !important}.mr-md-18,.mx-md-18{margin-right:72px !important}.ml-md-18,.mx-md-18{margin-left:72px !important}.mb-md-18,.my-md-18{margin-bottom:72px !important}.ms-md-18{margin-inline-start:72px !important}.me-md-18{margin-inline-end:72px !important}.ma-md-18{margin:72px !important}.mt-md-19,.my-md-19{margin-top:76px !important}.mr-md-19,.mx-md-19{margin-right:76px !important}.ml-md-19,.mx-md-19{margin-left:76px !important}.mb-md-19,.my-md-19{margin-bottom:76px !important}.ms-md-19{margin-inline-start:76px !important}.me-md-19{margin-inline-end:76px !important}.ma-md-19{margin:76px !important}.mt-md-20,.my-md-20{margin-top:80px !important}.mr-md-20,.mx-md-20{margin-right:80px !important}.ml-md-20,.mx-md-20{margin-left:80px !important}.mb-md-20,.my-md-20{margin-bottom:80px !important}.ms-md-20{margin-inline-start:80px !important}.me-md-20{margin-inline-end:80px !important}.ma-md-20{margin:80px !important}.mt-md-auto,.my-md-auto{margin-top:auto !important}.mr-md-auto,.mx-md-auto{margin-right:auto !important}.ml-md-auto,.mx-md-auto{margin-left:auto !important}.mb-md-auto,.my-md-auto{margin-bottom:auto !important}.ms-md-auto{margin-inline-start:auto !important}.me-md-auto{margin-inline-end:auto !important}.ma-md-auto{margin:auto !important}.pt-md-0,.py-md-0{padding-top:0 !important}.pr-md-0,.px-md-0{padding-right:0 !important}.pl-md-0,.px-md-0{padding-left:0 !important}.pb-md-0,.py-md-0{padding-bottom:0 !important}.ps-md-0{padding-inline-start:0 !important}.pe-md-0{padding-inline-end:0 !important}.pa-md-0{padding:0 !important}.pt-md-1,.py-md-1{padding-top:4px !important}.pr-md-1,.px-md-1{padding-right:4px !important}.pl-md-1,.px-md-1{padding-left:4px !important}.pb-md-1,.py-md-1{padding-bottom:4px !important}.ps-md-1{padding-inline-start:4px !important}.pe-md-1{padding-inline-end:4px !important}.pa-md-1{padding:4px !important}.pt-md-2,.py-md-2{padding-top:8px !important}.pr-md-2,.px-md-2{padding-right:8px !important}.pl-md-2,.px-md-2{padding-left:8px !important}.pb-md-2,.py-md-2{padding-bottom:8px !important}.ps-md-2{padding-inline-start:8px !important}.pe-md-2{padding-inline-end:8px !important}.pa-md-2{padding:8px !important}.pt-md-3,.py-md-3{padding-top:12px !important}.pr-md-3,.px-md-3{padding-right:12px !important}.pl-md-3,.px-md-3{padding-left:12px !important}.pb-md-3,.py-md-3{padding-bottom:12px !important}.ps-md-3{padding-inline-start:12px !important}.pe-md-3{padding-inline-end:12px !important}.pa-md-3{padding:12px !important}.pt-md-4,.py-md-4{padding-top:16px !important}.pr-md-4,.px-md-4{padding-right:16px !important}.pl-md-4,.px-md-4{padding-left:16px !important}.pb-md-4,.py-md-4{padding-bottom:16px !important}.ps-md-4{padding-inline-start:16px !important}.pe-md-4{padding-inline-end:16px !important}.pa-md-4{padding:16px !important}.pt-md-5,.py-md-5{padding-top:20px !important}.pr-md-5,.px-md-5{padding-right:20px !important}.pl-md-5,.px-md-5{padding-left:20px !important}.pb-md-5,.py-md-5{padding-bottom:20px !important}.ps-md-5{padding-inline-start:20px !important}.pe-md-5{padding-inline-end:20px !important}.pa-md-5{padding:20px !important}.pt-md-6,.py-md-6{padding-top:24px !important}.pr-md-6,.px-md-6{padding-right:24px !important}.pl-md-6,.px-md-6{padding-left:24px !important}.pb-md-6,.py-md-6{padding-bottom:24px !important}.ps-md-6{padding-inline-start:24px !important}.pe-md-6{padding-inline-end:24px !important}.pa-md-6{padding:24px !important}.pt-md-7,.py-md-7{padding-top:28px !important}.pr-md-7,.px-md-7{padding-right:28px !important}.pl-md-7,.px-md-7{padding-left:28px !important}.pb-md-7,.py-md-7{padding-bottom:28px !important}.ps-md-7{padding-inline-start:28px !important}.pe-md-7{padding-inline-end:28px !important}.pa-md-7{padding:28px !important}.pt-md-8,.py-md-8{padding-top:32px !important}.pr-md-8,.px-md-8{padding-right:32px !important}.pl-md-8,.px-md-8{padding-left:32px !important}.pb-md-8,.py-md-8{padding-bottom:32px !important}.ps-md-8{padding-inline-start:32px !important}.pe-md-8{padding-inline-end:32px !important}.pa-md-8{padding:32px !important}.pt-md-9,.py-md-9{padding-top:36px !important}.pr-md-9,.px-md-9{padding-right:36px !important}.pl-md-9,.px-md-9{padding-left:36px !important}.pb-md-9,.py-md-9{padding-bottom:36px !important}.ps-md-9{padding-inline-start:36px !important}.pe-md-9{padding-inline-end:36px !important}.pa-md-9{padding:36px !important}.pt-md-10,.py-md-10{padding-top:40px !important}.pr-md-10,.px-md-10{padding-right:40px !important}.pl-md-10,.px-md-10{padding-left:40px !important}.pb-md-10,.py-md-10{padding-bottom:40px !important}.ps-md-10{padding-inline-start:40px !important}.pe-md-10{padding-inline-end:40px !important}.pa-md-10{padding:40px !important}.pt-md-11,.py-md-11{padding-top:44px !important}.pr-md-11,.px-md-11{padding-right:44px !important}.pl-md-11,.px-md-11{padding-left:44px !important}.pb-md-11,.py-md-11{padding-bottom:44px !important}.ps-md-11{padding-inline-start:44px !important}.pe-md-11{padding-inline-end:44px !important}.pa-md-11{padding:44px !important}.pt-md-12,.py-md-12{padding-top:48px !important}.pr-md-12,.px-md-12{padding-right:48px !important}.pl-md-12,.px-md-12{padding-left:48px !important}.pb-md-12,.py-md-12{padding-bottom:48px !important}.ps-md-12{padding-inline-start:48px !important}.pe-md-12{padding-inline-end:48px !important}.pa-md-12{padding:48px !important}.pt-md-13,.py-md-13{padding-top:52px !important}.pr-md-13,.px-md-13{padding-right:52px !important}.pl-md-13,.px-md-13{padding-left:52px !important}.pb-md-13,.py-md-13{padding-bottom:52px !important}.ps-md-13{padding-inline-start:52px !important}.pe-md-13{padding-inline-end:52px !important}.pa-md-13{padding:52px !important}.pt-md-14,.py-md-14{padding-top:56px !important}.pr-md-14,.px-md-14{padding-right:56px !important}.pl-md-14,.px-md-14{padding-left:56px !important}.pb-md-14,.py-md-14{padding-bottom:56px !important}.ps-md-14{padding-inline-start:56px !important}.pe-md-14{padding-inline-end:56px !important}.pa-md-14{padding:56px !important}.pt-md-15,.py-md-15{padding-top:60px !important}.pr-md-15,.px-md-15{padding-right:60px !important}.pl-md-15,.px-md-15{padding-left:60px !important}.pb-md-15,.py-md-15{padding-bottom:60px !important}.ps-md-15{padding-inline-start:60px !important}.pe-md-15{padding-inline-end:60px !important}.pa-md-15{padding:60px !important}.pt-md-16,.py-md-16{padding-top:64px !important}.pr-md-16,.px-md-16{padding-right:64px !important}.pl-md-16,.px-md-16{padding-left:64px !important}.pb-md-16,.py-md-16{padding-bottom:64px !important}.ps-md-16{padding-inline-start:64px !important}.pe-md-16{padding-inline-end:64px !important}.pa-md-16{padding:64px !important}.pt-md-17,.py-md-17{padding-top:68px !important}.pr-md-17,.px-md-17{padding-right:68px !important}.pl-md-17,.px-md-17{padding-left:68px !important}.pb-md-17,.py-md-17{padding-bottom:68px !important}.ps-md-17{padding-inline-start:68px !important}.pe-md-17{padding-inline-end:68px !important}.pa-md-17{padding:68px !important}.pt-md-18,.py-md-18{padding-top:72px !important}.pr-md-18,.px-md-18{padding-right:72px !important}.pl-md-18,.px-md-18{padding-left:72px !important}.pb-md-18,.py-md-18{padding-bottom:72px !important}.ps-md-18{padding-inline-start:72px !important}.pe-md-18{padding-inline-end:72px !important}.pa-md-18{padding:72px !important}.pt-md-19,.py-md-19{padding-top:76px !important}.pr-md-19,.px-md-19{padding-right:76px !important}.pl-md-19,.px-md-19{padding-left:76px !important}.pb-md-19,.py-md-19{padding-bottom:76px !important}.ps-md-19{padding-inline-start:76px !important}.pe-md-19{padding-inline-end:76px !important}.pa-md-19{padding:76px !important}.pt-md-20,.py-md-20{padding-top:80px !important}.pr-md-20,.px-md-20{padding-right:80px !important}.pl-md-20,.px-md-20{padding-left:80px !important}.pb-md-20,.py-md-20{padding-bottom:80px !important}.ps-md-20{padding-inline-start:80px !important}.pe-md-20{padding-inline-end:80px !important}.pa-md-20{padding:80px !important}.pt-md-auto,.py-md-auto{padding-top:auto !important}.pr-md-auto,.px-md-auto{padding-right:auto !important}.pl-md-auto,.px-md-auto{padding-left:auto !important}.pb-md-auto,.py-md-auto{padding-bottom:auto !important}.ps-md-auto{padding-inline-start:auto !important}.pe-md-auto{padding-inline-end:auto !important}.pa-md-auto{padding:auto !important}.mt-md-n1,.my-md-n1{margin-top:-4px !important}.mr-md-n1,.mx-md-n1{margin-right:-4px !important}.ml-md-n1,.mx-md-n1{margin-left:-4px !important}.mb-md-n1,.my-md-n1{margin-bottom:-4px !important}.ms-md-n1{margin-inline-start:-4px !important}.me-md-n1{margin-inline-end:-4px !important}.ma-md-n1{margin:-4px !important}.mt-md-n2,.my-md-n2{margin-top:-8px !important}.mr-md-n2,.mx-md-n2{margin-right:-8px !important}.ml-md-n2,.mx-md-n2{margin-left:-8px !important}.mb-md-n2,.my-md-n2{margin-bottom:-8px !important}.ms-md-n2{margin-inline-start:-8px !important}.me-md-n2{margin-inline-end:-8px !important}.ma-md-n2{margin:-8px !important}.mt-md-n3,.my-md-n3{margin-top:-12px !important}.mr-md-n3,.mx-md-n3{margin-right:-12px !important}.ml-md-n3,.mx-md-n3{margin-left:-12px !important}.mb-md-n3,.my-md-n3{margin-bottom:-12px !important}.ms-md-n3{margin-inline-start:-12px !important}.me-md-n3{margin-inline-end:-12px !important}.ma-md-n3{margin:-12px !important}.mt-md-n4,.my-md-n4{margin-top:-16px !important}.mr-md-n4,.mx-md-n4{margin-right:-16px !important}.ml-md-n4,.mx-md-n4{margin-left:-16px !important}.mb-md-n4,.my-md-n4{margin-bottom:-16px !important}.ms-md-n4{margin-inline-start:-16px !important}.me-md-n4{margin-inline-end:-16px !important}.ma-md-n4{margin:-16px !important}.mt-md-n5,.my-md-n5{margin-top:-20px !important}.mr-md-n5,.mx-md-n5{margin-right:-20px !important}.ml-md-n5,.mx-md-n5{margin-left:-20px !important}.mb-md-n5,.my-md-n5{margin-bottom:-20px !important}.ms-md-n5{margin-inline-start:-20px !important}.me-md-n5{margin-inline-end:-20px !important}.ma-md-n5{margin:-20px !important}.mt-md-n6,.my-md-n6{margin-top:-24px !important}.mr-md-n6,.mx-md-n6{margin-right:-24px !important}.ml-md-n6,.mx-md-n6{margin-left:-24px !important}.mb-md-n6,.my-md-n6{margin-bottom:-24px !important}.ms-md-n6{margin-inline-start:-24px !important}.me-md-n6{margin-inline-end:-24px !important}.ma-md-n6{margin:-24px !important}.mt-md-n7,.my-md-n7{margin-top:-28px !important}.mr-md-n7,.mx-md-n7{margin-right:-28px !important}.ml-md-n7,.mx-md-n7{margin-left:-28px !important}.mb-md-n7,.my-md-n7{margin-bottom:-28px !important}.ms-md-n7{margin-inline-start:-28px !important}.me-md-n7{margin-inline-end:-28px !important}.ma-md-n7{margin:-28px !important}.mt-md-n8,.my-md-n8{margin-top:-32px !important}.mr-md-n8,.mx-md-n8{margin-right:-32px !important}.ml-md-n8,.mx-md-n8{margin-left:-32px !important}.mb-md-n8,.my-md-n8{margin-bottom:-32px !important}.ms-md-n8{margin-inline-start:-32px !important}.me-md-n8{margin-inline-end:-32px !important}.ma-md-n8{margin:-32px !important}.mt-md-n9,.my-md-n9{margin-top:-36px !important}.mr-md-n9,.mx-md-n9{margin-right:-36px !important}.ml-md-n9,.mx-md-n9{margin-left:-36px !important}.mb-md-n9,.my-md-n9{margin-bottom:-36px !important}.ms-md-n9{margin-inline-start:-36px !important}.me-md-n9{margin-inline-end:-36px !important}.ma-md-n9{margin:-36px !important}.mt-md-n10,.my-md-n10{margin-top:-40px !important}.mr-md-n10,.mx-md-n10{margin-right:-40px !important}.ml-md-n10,.mx-md-n10{margin-left:-40px !important}.mb-md-n10,.my-md-n10{margin-bottom:-40px !important}.ms-md-n10{margin-inline-start:-40px !important}.me-md-n10{margin-inline-end:-40px !important}.ma-md-n10{margin:-40px !important}.mt-md-n11,.my-md-n11{margin-top:-44px !important}.mr-md-n11,.mx-md-n11{margin-right:-44px !important}.ml-md-n11,.mx-md-n11{margin-left:-44px !important}.mb-md-n11,.my-md-n11{margin-bottom:-44px !important}.ms-md-n11{margin-inline-start:-44px !important}.me-md-n11{margin-inline-end:-44px !important}.ma-md-n11{margin:-44px !important}.mt-md-n12,.my-md-n12{margin-top:-48px !important}.mr-md-n12,.mx-md-n12{margin-right:-48px !important}.ml-md-n12,.mx-md-n12{margin-left:-48px !important}.mb-md-n12,.my-md-n12{margin-bottom:-48px !important}.ms-md-n12{margin-inline-start:-48px !important}.me-md-n12{margin-inline-end:-48px !important}.ma-md-n12{margin:-48px !important}.mt-md-n13,.my-md-n13{margin-top:-52px !important}.mr-md-n13,.mx-md-n13{margin-right:-52px !important}.ml-md-n13,.mx-md-n13{margin-left:-52px !important}.mb-md-n13,.my-md-n13{margin-bottom:-52px !important}.ms-md-n13{margin-inline-start:-52px !important}.me-md-n13{margin-inline-end:-52px !important}.ma-md-n13{margin:-52px !important}.mt-md-n14,.my-md-n14{margin-top:-56px !important}.mr-md-n14,.mx-md-n14{margin-right:-56px !important}.ml-md-n14,.mx-md-n14{margin-left:-56px !important}.mb-md-n14,.my-md-n14{margin-bottom:-56px !important}.ms-md-n14{margin-inline-start:-56px !important}.me-md-n14{margin-inline-end:-56px !important}.ma-md-n14{margin:-56px !important}.mt-md-n15,.my-md-n15{margin-top:-60px !important}.mr-md-n15,.mx-md-n15{margin-right:-60px !important}.ml-md-n15,.mx-md-n15{margin-left:-60px !important}.mb-md-n15,.my-md-n15{margin-bottom:-60px !important}.ms-md-n15{margin-inline-start:-60px !important}.me-md-n15{margin-inline-end:-60px !important}.ma-md-n15{margin:-60px !important}.mt-md-n16,.my-md-n16{margin-top:-64px !important}.mr-md-n16,.mx-md-n16{margin-right:-64px !important}.ml-md-n16,.mx-md-n16{margin-left:-64px !important}.mb-md-n16,.my-md-n16{margin-bottom:-64px !important}.ms-md-n16{margin-inline-start:-64px !important}.me-md-n16{margin-inline-end:-64px !important}.ma-md-n16{margin:-64px !important}.mt-md-n17,.my-md-n17{margin-top:-68px !important}.mr-md-n17,.mx-md-n17{margin-right:-68px !important}.ml-md-n17,.mx-md-n17{margin-left:-68px !important}.mb-md-n17,.my-md-n17{margin-bottom:-68px !important}.ms-md-n17{margin-inline-start:-68px !important}.me-md-n17{margin-inline-end:-68px !important}.ma-md-n17{margin:-68px !important}.mt-md-n18,.my-md-n18{margin-top:-72px !important}.mr-md-n18,.mx-md-n18{margin-right:-72px !important}.ml-md-n18,.mx-md-n18{margin-left:-72px !important}.mb-md-n18,.my-md-n18{margin-bottom:-72px !important}.ms-md-n18{margin-inline-start:-72px !important}.me-md-n18{margin-inline-end:-72px !important}.ma-md-n18{margin:-72px !important}.mt-md-n19,.my-md-n19{margin-top:-76px !important}.mr-md-n19,.mx-md-n19{margin-right:-76px !important}.ml-md-n19,.mx-md-n19{margin-left:-76px !important}.mb-md-n19,.my-md-n19{margin-bottom:-76px !important}.ms-md-n19{margin-inline-start:-76px !important}.me-md-n19{margin-inline-end:-76px !important}.ma-md-n19{margin:-76px !important}.mt-md-n20,.my-md-n20{margin-top:-80px !important}.mr-md-n20,.mx-md-n20{margin-right:-80px !important}.ml-md-n20,.mx-md-n20{margin-left:-80px !important}.mb-md-n20,.my-md-n20{margin-bottom:-80px !important}.ms-md-n20{margin-inline-start:-80px !important}.me-md-n20{margin-inline-end:-80px !important}.ma-md-n20{margin:-80px !important}}@media screen and (min-width: 1280px){.mt-lg-0,.my-lg-0{margin-top:0 !important}.mr-lg-0,.mx-lg-0{margin-right:0 !important}.ml-lg-0,.mx-lg-0{margin-left:0 !important}.mb-lg-0,.my-lg-0{margin-bottom:0 !important}.ms-lg-0{margin-inline-start:0 !important}.me-lg-0{margin-inline-end:0 !important}.ma-lg-0{margin:0 !important}.mt-lg-1,.my-lg-1{margin-top:4px !important}.mr-lg-1,.mx-lg-1{margin-right:4px !important}.ml-lg-1,.mx-lg-1{margin-left:4px !important}.mb-lg-1,.my-lg-1{margin-bottom:4px !important}.ms-lg-1{margin-inline-start:4px !important}.me-lg-1{margin-inline-end:4px !important}.ma-lg-1{margin:4px !important}.mt-lg-2,.my-lg-2{margin-top:8px !important}.mr-lg-2,.mx-lg-2{margin-right:8px !important}.ml-lg-2,.mx-lg-2{margin-left:8px !important}.mb-lg-2,.my-lg-2{margin-bottom:8px !important}.ms-lg-2{margin-inline-start:8px !important}.me-lg-2{margin-inline-end:8px !important}.ma-lg-2{margin:8px !important}.mt-lg-3,.my-lg-3{margin-top:12px !important}.mr-lg-3,.mx-lg-3{margin-right:12px !important}.ml-lg-3,.mx-lg-3{margin-left:12px !important}.mb-lg-3,.my-lg-3{margin-bottom:12px !important}.ms-lg-3{margin-inline-start:12px !important}.me-lg-3{margin-inline-end:12px !important}.ma-lg-3{margin:12px !important}.mt-lg-4,.my-lg-4{margin-top:16px !important}.mr-lg-4,.mx-lg-4{margin-right:16px !important}.ml-lg-4,.mx-lg-4{margin-left:16px !important}.mb-lg-4,.my-lg-4{margin-bottom:16px !important}.ms-lg-4{margin-inline-start:16px !important}.me-lg-4{margin-inline-end:16px !important}.ma-lg-4{margin:16px !important}.mt-lg-5,.my-lg-5{margin-top:20px !important}.mr-lg-5,.mx-lg-5{margin-right:20px !important}.ml-lg-5,.mx-lg-5{margin-left:20px !important}.mb-lg-5,.my-lg-5{margin-bottom:20px !important}.ms-lg-5{margin-inline-start:20px !important}.me-lg-5{margin-inline-end:20px !important}.ma-lg-5{margin:20px !important}.mt-lg-6,.my-lg-6{margin-top:24px !important}.mr-lg-6,.mx-lg-6{margin-right:24px !important}.ml-lg-6,.mx-lg-6{margin-left:24px !important}.mb-lg-6,.my-lg-6{margin-bottom:24px !important}.ms-lg-6{margin-inline-start:24px !important}.me-lg-6{margin-inline-end:24px !important}.ma-lg-6{margin:24px !important}.mt-lg-7,.my-lg-7{margin-top:28px !important}.mr-lg-7,.mx-lg-7{margin-right:28px !important}.ml-lg-7,.mx-lg-7{margin-left:28px !important}.mb-lg-7,.my-lg-7{margin-bottom:28px !important}.ms-lg-7{margin-inline-start:28px !important}.me-lg-7{margin-inline-end:28px !important}.ma-lg-7{margin:28px !important}.mt-lg-8,.my-lg-8{margin-top:32px !important}.mr-lg-8,.mx-lg-8{margin-right:32px !important}.ml-lg-8,.mx-lg-8{margin-left:32px !important}.mb-lg-8,.my-lg-8{margin-bottom:32px !important}.ms-lg-8{margin-inline-start:32px !important}.me-lg-8{margin-inline-end:32px !important}.ma-lg-8{margin:32px !important}.mt-lg-9,.my-lg-9{margin-top:36px !important}.mr-lg-9,.mx-lg-9{margin-right:36px !important}.ml-lg-9,.mx-lg-9{margin-left:36px !important}.mb-lg-9,.my-lg-9{margin-bottom:36px !important}.ms-lg-9{margin-inline-start:36px !important}.me-lg-9{margin-inline-end:36px !important}.ma-lg-9{margin:36px !important}.mt-lg-10,.my-lg-10{margin-top:40px !important}.mr-lg-10,.mx-lg-10{margin-right:40px !important}.ml-lg-10,.mx-lg-10{margin-left:40px !important}.mb-lg-10,.my-lg-10{margin-bottom:40px !important}.ms-lg-10{margin-inline-start:40px !important}.me-lg-10{margin-inline-end:40px !important}.ma-lg-10{margin:40px !important}.mt-lg-11,.my-lg-11{margin-top:44px !important}.mr-lg-11,.mx-lg-11{margin-right:44px !important}.ml-lg-11,.mx-lg-11{margin-left:44px !important}.mb-lg-11,.my-lg-11{margin-bottom:44px !important}.ms-lg-11{margin-inline-start:44px !important}.me-lg-11{margin-inline-end:44px !important}.ma-lg-11{margin:44px !important}.mt-lg-12,.my-lg-12{margin-top:48px !important}.mr-lg-12,.mx-lg-12{margin-right:48px !important}.ml-lg-12,.mx-lg-12{margin-left:48px !important}.mb-lg-12,.my-lg-12{margin-bottom:48px !important}.ms-lg-12{margin-inline-start:48px !important}.me-lg-12{margin-inline-end:48px !important}.ma-lg-12{margin:48px !important}.mt-lg-13,.my-lg-13{margin-top:52px !important}.mr-lg-13,.mx-lg-13{margin-right:52px !important}.ml-lg-13,.mx-lg-13{margin-left:52px !important}.mb-lg-13,.my-lg-13{margin-bottom:52px !important}.ms-lg-13{margin-inline-start:52px !important}.me-lg-13{margin-inline-end:52px !important}.ma-lg-13{margin:52px !important}.mt-lg-14,.my-lg-14{margin-top:56px !important}.mr-lg-14,.mx-lg-14{margin-right:56px !important}.ml-lg-14,.mx-lg-14{margin-left:56px !important}.mb-lg-14,.my-lg-14{margin-bottom:56px !important}.ms-lg-14{margin-inline-start:56px !important}.me-lg-14{margin-inline-end:56px !important}.ma-lg-14{margin:56px !important}.mt-lg-15,.my-lg-15{margin-top:60px !important}.mr-lg-15,.mx-lg-15{margin-right:60px !important}.ml-lg-15,.mx-lg-15{margin-left:60px !important}.mb-lg-15,.my-lg-15{margin-bottom:60px !important}.ms-lg-15{margin-inline-start:60px !important}.me-lg-15{margin-inline-end:60px !important}.ma-lg-15{margin:60px !important}.mt-lg-16,.my-lg-16{margin-top:64px !important}.mr-lg-16,.mx-lg-16{margin-right:64px !important}.ml-lg-16,.mx-lg-16{margin-left:64px !important}.mb-lg-16,.my-lg-16{margin-bottom:64px !important}.ms-lg-16{margin-inline-start:64px !important}.me-lg-16{margin-inline-end:64px !important}.ma-lg-16{margin:64px !important}.mt-lg-17,.my-lg-17{margin-top:68px !important}.mr-lg-17,.mx-lg-17{margin-right:68px !important}.ml-lg-17,.mx-lg-17{margin-left:68px !important}.mb-lg-17,.my-lg-17{margin-bottom:68px !important}.ms-lg-17{margin-inline-start:68px !important}.me-lg-17{margin-inline-end:68px !important}.ma-lg-17{margin:68px !important}.mt-lg-18,.my-lg-18{margin-top:72px !important}.mr-lg-18,.mx-lg-18{margin-right:72px !important}.ml-lg-18,.mx-lg-18{margin-left:72px !important}.mb-lg-18,.my-lg-18{margin-bottom:72px !important}.ms-lg-18{margin-inline-start:72px !important}.me-lg-18{margin-inline-end:72px !important}.ma-lg-18{margin:72px !important}.mt-lg-19,.my-lg-19{margin-top:76px !important}.mr-lg-19,.mx-lg-19{margin-right:76px !important}.ml-lg-19,.mx-lg-19{margin-left:76px !important}.mb-lg-19,.my-lg-19{margin-bottom:76px !important}.ms-lg-19{margin-inline-start:76px !important}.me-lg-19{margin-inline-end:76px !important}.ma-lg-19{margin:76px !important}.mt-lg-20,.my-lg-20{margin-top:80px !important}.mr-lg-20,.mx-lg-20{margin-right:80px !important}.ml-lg-20,.mx-lg-20{margin-left:80px !important}.mb-lg-20,.my-lg-20{margin-bottom:80px !important}.ms-lg-20{margin-inline-start:80px !important}.me-lg-20{margin-inline-end:80px !important}.ma-lg-20{margin:80px !important}.mt-lg-auto,.my-lg-auto{margin-top:auto !important}.mr-lg-auto,.mx-lg-auto{margin-right:auto !important}.ml-lg-auto,.mx-lg-auto{margin-left:auto !important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto !important}.ms-lg-auto{margin-inline-start:auto !important}.me-lg-auto{margin-inline-end:auto !important}.ma-lg-auto{margin:auto !important}.pt-lg-0,.py-lg-0{padding-top:0 !important}.pr-lg-0,.px-lg-0{padding-right:0 !important}.pl-lg-0,.px-lg-0{padding-left:0 !important}.pb-lg-0,.py-lg-0{padding-bottom:0 !important}.ps-lg-0{padding-inline-start:0 !important}.pe-lg-0{padding-inline-end:0 !important}.pa-lg-0{padding:0 !important}.pt-lg-1,.py-lg-1{padding-top:4px !important}.pr-lg-1,.px-lg-1{padding-right:4px !important}.pl-lg-1,.px-lg-1{padding-left:4px !important}.pb-lg-1,.py-lg-1{padding-bottom:4px !important}.ps-lg-1{padding-inline-start:4px !important}.pe-lg-1{padding-inline-end:4px !important}.pa-lg-1{padding:4px !important}.pt-lg-2,.py-lg-2{padding-top:8px !important}.pr-lg-2,.px-lg-2{padding-right:8px !important}.pl-lg-2,.px-lg-2{padding-left:8px !important}.pb-lg-2,.py-lg-2{padding-bottom:8px !important}.ps-lg-2{padding-inline-start:8px !important}.pe-lg-2{padding-inline-end:8px !important}.pa-lg-2{padding:8px !important}.pt-lg-3,.py-lg-3{padding-top:12px !important}.pr-lg-3,.px-lg-3{padding-right:12px !important}.pl-lg-3,.px-lg-3{padding-left:12px !important}.pb-lg-3,.py-lg-3{padding-bottom:12px !important}.ps-lg-3{padding-inline-start:12px !important}.pe-lg-3{padding-inline-end:12px !important}.pa-lg-3{padding:12px !important}.pt-lg-4,.py-lg-4{padding-top:16px !important}.pr-lg-4,.px-lg-4{padding-right:16px !important}.pl-lg-4,.px-lg-4{padding-left:16px !important}.pb-lg-4,.py-lg-4{padding-bottom:16px !important}.ps-lg-4{padding-inline-start:16px !important}.pe-lg-4{padding-inline-end:16px !important}.pa-lg-4{padding:16px !important}.pt-lg-5,.py-lg-5{padding-top:20px !important}.pr-lg-5,.px-lg-5{padding-right:20px !important}.pl-lg-5,.px-lg-5{padding-left:20px !important}.pb-lg-5,.py-lg-5{padding-bottom:20px !important}.ps-lg-5{padding-inline-start:20px !important}.pe-lg-5{padding-inline-end:20px !important}.pa-lg-5{padding:20px !important}.pt-lg-6,.py-lg-6{padding-top:24px !important}.pr-lg-6,.px-lg-6{padding-right:24px !important}.pl-lg-6,.px-lg-6{padding-left:24px !important}.pb-lg-6,.py-lg-6{padding-bottom:24px !important}.ps-lg-6{padding-inline-start:24px !important}.pe-lg-6{padding-inline-end:24px !important}.pa-lg-6{padding:24px !important}.pt-lg-7,.py-lg-7{padding-top:28px !important}.pr-lg-7,.px-lg-7{padding-right:28px !important}.pl-lg-7,.px-lg-7{padding-left:28px !important}.pb-lg-7,.py-lg-7{padding-bottom:28px !important}.ps-lg-7{padding-inline-start:28px !important}.pe-lg-7{padding-inline-end:28px !important}.pa-lg-7{padding:28px !important}.pt-lg-8,.py-lg-8{padding-top:32px !important}.pr-lg-8,.px-lg-8{padding-right:32px !important}.pl-lg-8,.px-lg-8{padding-left:32px !important}.pb-lg-8,.py-lg-8{padding-bottom:32px !important}.ps-lg-8{padding-inline-start:32px !important}.pe-lg-8{padding-inline-end:32px !important}.pa-lg-8{padding:32px !important}.pt-lg-9,.py-lg-9{padding-top:36px !important}.pr-lg-9,.px-lg-9{padding-right:36px !important}.pl-lg-9,.px-lg-9{padding-left:36px !important}.pb-lg-9,.py-lg-9{padding-bottom:36px !important}.ps-lg-9{padding-inline-start:36px !important}.pe-lg-9{padding-inline-end:36px !important}.pa-lg-9{padding:36px !important}.pt-lg-10,.py-lg-10{padding-top:40px !important}.pr-lg-10,.px-lg-10{padding-right:40px !important}.pl-lg-10,.px-lg-10{padding-left:40px !important}.pb-lg-10,.py-lg-10{padding-bottom:40px !important}.ps-lg-10{padding-inline-start:40px !important}.pe-lg-10{padding-inline-end:40px !important}.pa-lg-10{padding:40px !important}.pt-lg-11,.py-lg-11{padding-top:44px !important}.pr-lg-11,.px-lg-11{padding-right:44px !important}.pl-lg-11,.px-lg-11{padding-left:44px !important}.pb-lg-11,.py-lg-11{padding-bottom:44px !important}.ps-lg-11{padding-inline-start:44px !important}.pe-lg-11{padding-inline-end:44px !important}.pa-lg-11{padding:44px !important}.pt-lg-12,.py-lg-12{padding-top:48px !important}.pr-lg-12,.px-lg-12{padding-right:48px !important}.pl-lg-12,.px-lg-12{padding-left:48px !important}.pb-lg-12,.py-lg-12{padding-bottom:48px !important}.ps-lg-12{padding-inline-start:48px !important}.pe-lg-12{padding-inline-end:48px !important}.pa-lg-12{padding:48px !important}.pt-lg-13,.py-lg-13{padding-top:52px !important}.pr-lg-13,.px-lg-13{padding-right:52px !important}.pl-lg-13,.px-lg-13{padding-left:52px !important}.pb-lg-13,.py-lg-13{padding-bottom:52px !important}.ps-lg-13{padding-inline-start:52px !important}.pe-lg-13{padding-inline-end:52px !important}.pa-lg-13{padding:52px !important}.pt-lg-14,.py-lg-14{padding-top:56px !important}.pr-lg-14,.px-lg-14{padding-right:56px !important}.pl-lg-14,.px-lg-14{padding-left:56px !important}.pb-lg-14,.py-lg-14{padding-bottom:56px !important}.ps-lg-14{padding-inline-start:56px !important}.pe-lg-14{padding-inline-end:56px !important}.pa-lg-14{padding:56px !important}.pt-lg-15,.py-lg-15{padding-top:60px !important}.pr-lg-15,.px-lg-15{padding-right:60px !important}.pl-lg-15,.px-lg-15{padding-left:60px !important}.pb-lg-15,.py-lg-15{padding-bottom:60px !important}.ps-lg-15{padding-inline-start:60px !important}.pe-lg-15{padding-inline-end:60px !important}.pa-lg-15{padding:60px !important}.pt-lg-16,.py-lg-16{padding-top:64px !important}.pr-lg-16,.px-lg-16{padding-right:64px !important}.pl-lg-16,.px-lg-16{padding-left:64px !important}.pb-lg-16,.py-lg-16{padding-bottom:64px !important}.ps-lg-16{padding-inline-start:64px !important}.pe-lg-16{padding-inline-end:64px !important}.pa-lg-16{padding:64px !important}.pt-lg-17,.py-lg-17{padding-top:68px !important}.pr-lg-17,.px-lg-17{padding-right:68px !important}.pl-lg-17,.px-lg-17{padding-left:68px !important}.pb-lg-17,.py-lg-17{padding-bottom:68px !important}.ps-lg-17{padding-inline-start:68px !important}.pe-lg-17{padding-inline-end:68px !important}.pa-lg-17{padding:68px !important}.pt-lg-18,.py-lg-18{padding-top:72px !important}.pr-lg-18,.px-lg-18{padding-right:72px !important}.pl-lg-18,.px-lg-18{padding-left:72px !important}.pb-lg-18,.py-lg-18{padding-bottom:72px !important}.ps-lg-18{padding-inline-start:72px !important}.pe-lg-18{padding-inline-end:72px !important}.pa-lg-18{padding:72px !important}.pt-lg-19,.py-lg-19{padding-top:76px !important}.pr-lg-19,.px-lg-19{padding-right:76px !important}.pl-lg-19,.px-lg-19{padding-left:76px !important}.pb-lg-19,.py-lg-19{padding-bottom:76px !important}.ps-lg-19{padding-inline-start:76px !important}.pe-lg-19{padding-inline-end:76px !important}.pa-lg-19{padding:76px !important}.pt-lg-20,.py-lg-20{padding-top:80px !important}.pr-lg-20,.px-lg-20{padding-right:80px !important}.pl-lg-20,.px-lg-20{padding-left:80px !important}.pb-lg-20,.py-lg-20{padding-bottom:80px !important}.ps-lg-20{padding-inline-start:80px !important}.pe-lg-20{padding-inline-end:80px !important}.pa-lg-20{padding:80px !important}.pt-lg-auto,.py-lg-auto{padding-top:auto !important}.pr-lg-auto,.px-lg-auto{padding-right:auto !important}.pl-lg-auto,.px-lg-auto{padding-left:auto !important}.pb-lg-auto,.py-lg-auto{padding-bottom:auto !important}.ps-lg-auto{padding-inline-start:auto !important}.pe-lg-auto{padding-inline-end:auto !important}.pa-lg-auto{padding:auto !important}.mt-lg-n1,.my-lg-n1{margin-top:-4px !important}.mr-lg-n1,.mx-lg-n1{margin-right:-4px !important}.ml-lg-n1,.mx-lg-n1{margin-left:-4px !important}.mb-lg-n1,.my-lg-n1{margin-bottom:-4px !important}.ms-lg-n1{margin-inline-start:-4px !important}.me-lg-n1{margin-inline-end:-4px !important}.ma-lg-n1{margin:-4px !important}.mt-lg-n2,.my-lg-n2{margin-top:-8px !important}.mr-lg-n2,.mx-lg-n2{margin-right:-8px !important}.ml-lg-n2,.mx-lg-n2{margin-left:-8px !important}.mb-lg-n2,.my-lg-n2{margin-bottom:-8px !important}.ms-lg-n2{margin-inline-start:-8px !important}.me-lg-n2{margin-inline-end:-8px !important}.ma-lg-n2{margin:-8px !important}.mt-lg-n3,.my-lg-n3{margin-top:-12px !important}.mr-lg-n3,.mx-lg-n3{margin-right:-12px !important}.ml-lg-n3,.mx-lg-n3{margin-left:-12px !important}.mb-lg-n3,.my-lg-n3{margin-bottom:-12px !important}.ms-lg-n3{margin-inline-start:-12px !important}.me-lg-n3{margin-inline-end:-12px !important}.ma-lg-n3{margin:-12px !important}.mt-lg-n4,.my-lg-n4{margin-top:-16px !important}.mr-lg-n4,.mx-lg-n4{margin-right:-16px !important}.ml-lg-n4,.mx-lg-n4{margin-left:-16px !important}.mb-lg-n4,.my-lg-n4{margin-bottom:-16px !important}.ms-lg-n4{margin-inline-start:-16px !important}.me-lg-n4{margin-inline-end:-16px !important}.ma-lg-n4{margin:-16px !important}.mt-lg-n5,.my-lg-n5{margin-top:-20px !important}.mr-lg-n5,.mx-lg-n5{margin-right:-20px !important}.ml-lg-n5,.mx-lg-n5{margin-left:-20px !important}.mb-lg-n5,.my-lg-n5{margin-bottom:-20px !important}.ms-lg-n5{margin-inline-start:-20px !important}.me-lg-n5{margin-inline-end:-20px !important}.ma-lg-n5{margin:-20px !important}.mt-lg-n6,.my-lg-n6{margin-top:-24px !important}.mr-lg-n6,.mx-lg-n6{margin-right:-24px !important}.ml-lg-n6,.mx-lg-n6{margin-left:-24px !important}.mb-lg-n6,.my-lg-n6{margin-bottom:-24px !important}.ms-lg-n6{margin-inline-start:-24px !important}.me-lg-n6{margin-inline-end:-24px !important}.ma-lg-n6{margin:-24px !important}.mt-lg-n7,.my-lg-n7{margin-top:-28px !important}.mr-lg-n7,.mx-lg-n7{margin-right:-28px !important}.ml-lg-n7,.mx-lg-n7{margin-left:-28px !important}.mb-lg-n7,.my-lg-n7{margin-bottom:-28px !important}.ms-lg-n7{margin-inline-start:-28px !important}.me-lg-n7{margin-inline-end:-28px !important}.ma-lg-n7{margin:-28px !important}.mt-lg-n8,.my-lg-n8{margin-top:-32px !important}.mr-lg-n8,.mx-lg-n8{margin-right:-32px !important}.ml-lg-n8,.mx-lg-n8{margin-left:-32px !important}.mb-lg-n8,.my-lg-n8{margin-bottom:-32px !important}.ms-lg-n8{margin-inline-start:-32px !important}.me-lg-n8{margin-inline-end:-32px !important}.ma-lg-n8{margin:-32px !important}.mt-lg-n9,.my-lg-n9{margin-top:-36px !important}.mr-lg-n9,.mx-lg-n9{margin-right:-36px !important}.ml-lg-n9,.mx-lg-n9{margin-left:-36px !important}.mb-lg-n9,.my-lg-n9{margin-bottom:-36px !important}.ms-lg-n9{margin-inline-start:-36px !important}.me-lg-n9{margin-inline-end:-36px !important}.ma-lg-n9{margin:-36px !important}.mt-lg-n10,.my-lg-n10{margin-top:-40px !important}.mr-lg-n10,.mx-lg-n10{margin-right:-40px !important}.ml-lg-n10,.mx-lg-n10{margin-left:-40px !important}.mb-lg-n10,.my-lg-n10{margin-bottom:-40px !important}.ms-lg-n10{margin-inline-start:-40px !important}.me-lg-n10{margin-inline-end:-40px !important}.ma-lg-n10{margin:-40px !important}.mt-lg-n11,.my-lg-n11{margin-top:-44px !important}.mr-lg-n11,.mx-lg-n11{margin-right:-44px !important}.ml-lg-n11,.mx-lg-n11{margin-left:-44px !important}.mb-lg-n11,.my-lg-n11{margin-bottom:-44px !important}.ms-lg-n11{margin-inline-start:-44px !important}.me-lg-n11{margin-inline-end:-44px !important}.ma-lg-n11{margin:-44px !important}.mt-lg-n12,.my-lg-n12{margin-top:-48px !important}.mr-lg-n12,.mx-lg-n12{margin-right:-48px !important}.ml-lg-n12,.mx-lg-n12{margin-left:-48px !important}.mb-lg-n12,.my-lg-n12{margin-bottom:-48px !important}.ms-lg-n12{margin-inline-start:-48px !important}.me-lg-n12{margin-inline-end:-48px !important}.ma-lg-n12{margin:-48px !important}.mt-lg-n13,.my-lg-n13{margin-top:-52px !important}.mr-lg-n13,.mx-lg-n13{margin-right:-52px !important}.ml-lg-n13,.mx-lg-n13{margin-left:-52px !important}.mb-lg-n13,.my-lg-n13{margin-bottom:-52px !important}.ms-lg-n13{margin-inline-start:-52px !important}.me-lg-n13{margin-inline-end:-52px !important}.ma-lg-n13{margin:-52px !important}.mt-lg-n14,.my-lg-n14{margin-top:-56px !important}.mr-lg-n14,.mx-lg-n14{margin-right:-56px !important}.ml-lg-n14,.mx-lg-n14{margin-left:-56px !important}.mb-lg-n14,.my-lg-n14{margin-bottom:-56px !important}.ms-lg-n14{margin-inline-start:-56px !important}.me-lg-n14{margin-inline-end:-56px !important}.ma-lg-n14{margin:-56px !important}.mt-lg-n15,.my-lg-n15{margin-top:-60px !important}.mr-lg-n15,.mx-lg-n15{margin-right:-60px !important}.ml-lg-n15,.mx-lg-n15{margin-left:-60px !important}.mb-lg-n15,.my-lg-n15{margin-bottom:-60px !important}.ms-lg-n15{margin-inline-start:-60px !important}.me-lg-n15{margin-inline-end:-60px !important}.ma-lg-n15{margin:-60px !important}.mt-lg-n16,.my-lg-n16{margin-top:-64px !important}.mr-lg-n16,.mx-lg-n16{margin-right:-64px !important}.ml-lg-n16,.mx-lg-n16{margin-left:-64px !important}.mb-lg-n16,.my-lg-n16{margin-bottom:-64px !important}.ms-lg-n16{margin-inline-start:-64px !important}.me-lg-n16{margin-inline-end:-64px !important}.ma-lg-n16{margin:-64px !important}.mt-lg-n17,.my-lg-n17{margin-top:-68px !important}.mr-lg-n17,.mx-lg-n17{margin-right:-68px !important}.ml-lg-n17,.mx-lg-n17{margin-left:-68px !important}.mb-lg-n17,.my-lg-n17{margin-bottom:-68px !important}.ms-lg-n17{margin-inline-start:-68px !important}.me-lg-n17{margin-inline-end:-68px !important}.ma-lg-n17{margin:-68px !important}.mt-lg-n18,.my-lg-n18{margin-top:-72px !important}.mr-lg-n18,.mx-lg-n18{margin-right:-72px !important}.ml-lg-n18,.mx-lg-n18{margin-left:-72px !important}.mb-lg-n18,.my-lg-n18{margin-bottom:-72px !important}.ms-lg-n18{margin-inline-start:-72px !important}.me-lg-n18{margin-inline-end:-72px !important}.ma-lg-n18{margin:-72px !important}.mt-lg-n19,.my-lg-n19{margin-top:-76px !important}.mr-lg-n19,.mx-lg-n19{margin-right:-76px !important}.ml-lg-n19,.mx-lg-n19{margin-left:-76px !important}.mb-lg-n19,.my-lg-n19{margin-bottom:-76px !important}.ms-lg-n19{margin-inline-start:-76px !important}.me-lg-n19{margin-inline-end:-76px !important}.ma-lg-n19{margin:-76px !important}.mt-lg-n20,.my-lg-n20{margin-top:-80px !important}.mr-lg-n20,.mx-lg-n20{margin-right:-80px !important}.ml-lg-n20,.mx-lg-n20{margin-left:-80px !important}.mb-lg-n20,.my-lg-n20{margin-bottom:-80px !important}.ms-lg-n20{margin-inline-start:-80px !important}.me-lg-n20{margin-inline-end:-80px !important}.ma-lg-n20{margin:-80px !important}}@media screen and (min-width: 1920px){.mt-xl-0,.my-xl-0{margin-top:0 !important}.mr-xl-0,.mx-xl-0{margin-right:0 !important}.ml-xl-0,.mx-xl-0{margin-left:0 !important}.mb-xl-0,.my-xl-0{margin-bottom:0 !important}.ms-xl-0{margin-inline-start:0 !important}.me-xl-0{margin-inline-end:0 !important}.ma-xl-0{margin:0 !important}.mt-xl-1,.my-xl-1{margin-top:4px !important}.mr-xl-1,.mx-xl-1{margin-right:4px !important}.ml-xl-1,.mx-xl-1{margin-left:4px !important}.mb-xl-1,.my-xl-1{margin-bottom:4px !important}.ms-xl-1{margin-inline-start:4px !important}.me-xl-1{margin-inline-end:4px !important}.ma-xl-1{margin:4px !important}.mt-xl-2,.my-xl-2{margin-top:8px !important}.mr-xl-2,.mx-xl-2{margin-right:8px !important}.ml-xl-2,.mx-xl-2{margin-left:8px !important}.mb-xl-2,.my-xl-2{margin-bottom:8px !important}.ms-xl-2{margin-inline-start:8px !important}.me-xl-2{margin-inline-end:8px !important}.ma-xl-2{margin:8px !important}.mt-xl-3,.my-xl-3{margin-top:12px !important}.mr-xl-3,.mx-xl-3{margin-right:12px !important}.ml-xl-3,.mx-xl-3{margin-left:12px !important}.mb-xl-3,.my-xl-3{margin-bottom:12px !important}.ms-xl-3{margin-inline-start:12px !important}.me-xl-3{margin-inline-end:12px !important}.ma-xl-3{margin:12px !important}.mt-xl-4,.my-xl-4{margin-top:16px !important}.mr-xl-4,.mx-xl-4{margin-right:16px !important}.ml-xl-4,.mx-xl-4{margin-left:16px !important}.mb-xl-4,.my-xl-4{margin-bottom:16px !important}.ms-xl-4{margin-inline-start:16px !important}.me-xl-4{margin-inline-end:16px !important}.ma-xl-4{margin:16px !important}.mt-xl-5,.my-xl-5{margin-top:20px !important}.mr-xl-5,.mx-xl-5{margin-right:20px !important}.ml-xl-5,.mx-xl-5{margin-left:20px !important}.mb-xl-5,.my-xl-5{margin-bottom:20px !important}.ms-xl-5{margin-inline-start:20px !important}.me-xl-5{margin-inline-end:20px !important}.ma-xl-5{margin:20px !important}.mt-xl-6,.my-xl-6{margin-top:24px !important}.mr-xl-6,.mx-xl-6{margin-right:24px !important}.ml-xl-6,.mx-xl-6{margin-left:24px !important}.mb-xl-6,.my-xl-6{margin-bottom:24px !important}.ms-xl-6{margin-inline-start:24px !important}.me-xl-6{margin-inline-end:24px !important}.ma-xl-6{margin:24px !important}.mt-xl-7,.my-xl-7{margin-top:28px !important}.mr-xl-7,.mx-xl-7{margin-right:28px !important}.ml-xl-7,.mx-xl-7{margin-left:28px !important}.mb-xl-7,.my-xl-7{margin-bottom:28px !important}.ms-xl-7{margin-inline-start:28px !important}.me-xl-7{margin-inline-end:28px !important}.ma-xl-7{margin:28px !important}.mt-xl-8,.my-xl-8{margin-top:32px !important}.mr-xl-8,.mx-xl-8{margin-right:32px !important}.ml-xl-8,.mx-xl-8{margin-left:32px !important}.mb-xl-8,.my-xl-8{margin-bottom:32px !important}.ms-xl-8{margin-inline-start:32px !important}.me-xl-8{margin-inline-end:32px !important}.ma-xl-8{margin:32px !important}.mt-xl-9,.my-xl-9{margin-top:36px !important}.mr-xl-9,.mx-xl-9{margin-right:36px !important}.ml-xl-9,.mx-xl-9{margin-left:36px !important}.mb-xl-9,.my-xl-9{margin-bottom:36px !important}.ms-xl-9{margin-inline-start:36px !important}.me-xl-9{margin-inline-end:36px !important}.ma-xl-9{margin:36px !important}.mt-xl-10,.my-xl-10{margin-top:40px !important}.mr-xl-10,.mx-xl-10{margin-right:40px !important}.ml-xl-10,.mx-xl-10{margin-left:40px !important}.mb-xl-10,.my-xl-10{margin-bottom:40px !important}.ms-xl-10{margin-inline-start:40px !important}.me-xl-10{margin-inline-end:40px !important}.ma-xl-10{margin:40px !important}.mt-xl-11,.my-xl-11{margin-top:44px !important}.mr-xl-11,.mx-xl-11{margin-right:44px !important}.ml-xl-11,.mx-xl-11{margin-left:44px !important}.mb-xl-11,.my-xl-11{margin-bottom:44px !important}.ms-xl-11{margin-inline-start:44px !important}.me-xl-11{margin-inline-end:44px !important}.ma-xl-11{margin:44px !important}.mt-xl-12,.my-xl-12{margin-top:48px !important}.mr-xl-12,.mx-xl-12{margin-right:48px !important}.ml-xl-12,.mx-xl-12{margin-left:48px !important}.mb-xl-12,.my-xl-12{margin-bottom:48px !important}.ms-xl-12{margin-inline-start:48px !important}.me-xl-12{margin-inline-end:48px !important}.ma-xl-12{margin:48px !important}.mt-xl-13,.my-xl-13{margin-top:52px !important}.mr-xl-13,.mx-xl-13{margin-right:52px !important}.ml-xl-13,.mx-xl-13{margin-left:52px !important}.mb-xl-13,.my-xl-13{margin-bottom:52px !important}.ms-xl-13{margin-inline-start:52px !important}.me-xl-13{margin-inline-end:52px !important}.ma-xl-13{margin:52px !important}.mt-xl-14,.my-xl-14{margin-top:56px !important}.mr-xl-14,.mx-xl-14{margin-right:56px !important}.ml-xl-14,.mx-xl-14{margin-left:56px !important}.mb-xl-14,.my-xl-14{margin-bottom:56px !important}.ms-xl-14{margin-inline-start:56px !important}.me-xl-14{margin-inline-end:56px !important}.ma-xl-14{margin:56px !important}.mt-xl-15,.my-xl-15{margin-top:60px !important}.mr-xl-15,.mx-xl-15{margin-right:60px !important}.ml-xl-15,.mx-xl-15{margin-left:60px !important}.mb-xl-15,.my-xl-15{margin-bottom:60px !important}.ms-xl-15{margin-inline-start:60px !important}.me-xl-15{margin-inline-end:60px !important}.ma-xl-15{margin:60px !important}.mt-xl-16,.my-xl-16{margin-top:64px !important}.mr-xl-16,.mx-xl-16{margin-right:64px !important}.ml-xl-16,.mx-xl-16{margin-left:64px !important}.mb-xl-16,.my-xl-16{margin-bottom:64px !important}.ms-xl-16{margin-inline-start:64px !important}.me-xl-16{margin-inline-end:64px !important}.ma-xl-16{margin:64px !important}.mt-xl-17,.my-xl-17{margin-top:68px !important}.mr-xl-17,.mx-xl-17{margin-right:68px !important}.ml-xl-17,.mx-xl-17{margin-left:68px !important}.mb-xl-17,.my-xl-17{margin-bottom:68px !important}.ms-xl-17{margin-inline-start:68px !important}.me-xl-17{margin-inline-end:68px !important}.ma-xl-17{margin:68px !important}.mt-xl-18,.my-xl-18{margin-top:72px !important}.mr-xl-18,.mx-xl-18{margin-right:72px !important}.ml-xl-18,.mx-xl-18{margin-left:72px !important}.mb-xl-18,.my-xl-18{margin-bottom:72px !important}.ms-xl-18{margin-inline-start:72px !important}.me-xl-18{margin-inline-end:72px !important}.ma-xl-18{margin:72px !important}.mt-xl-19,.my-xl-19{margin-top:76px !important}.mr-xl-19,.mx-xl-19{margin-right:76px !important}.ml-xl-19,.mx-xl-19{margin-left:76px !important}.mb-xl-19,.my-xl-19{margin-bottom:76px !important}.ms-xl-19{margin-inline-start:76px !important}.me-xl-19{margin-inline-end:76px !important}.ma-xl-19{margin:76px !important}.mt-xl-20,.my-xl-20{margin-top:80px !important}.mr-xl-20,.mx-xl-20{margin-right:80px !important}.ml-xl-20,.mx-xl-20{margin-left:80px !important}.mb-xl-20,.my-xl-20{margin-bottom:80px !important}.ms-xl-20{margin-inline-start:80px !important}.me-xl-20{margin-inline-end:80px !important}.ma-xl-20{margin:80px !important}.mt-xl-auto,.my-xl-auto{margin-top:auto !important}.mr-xl-auto,.mx-xl-auto{margin-right:auto !important}.ml-xl-auto,.mx-xl-auto{margin-left:auto !important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto !important}.ms-xl-auto{margin-inline-start:auto !important}.me-xl-auto{margin-inline-end:auto !important}.ma-xl-auto{margin:auto !important}.pt-xl-0,.py-xl-0{padding-top:0 !important}.pr-xl-0,.px-xl-0{padding-right:0 !important}.pl-xl-0,.px-xl-0{padding-left:0 !important}.pb-xl-0,.py-xl-0{padding-bottom:0 !important}.ps-xl-0{padding-inline-start:0 !important}.pe-xl-0{padding-inline-end:0 !important}.pa-xl-0{padding:0 !important}.pt-xl-1,.py-xl-1{padding-top:4px !important}.pr-xl-1,.px-xl-1{padding-right:4px !important}.pl-xl-1,.px-xl-1{padding-left:4px !important}.pb-xl-1,.py-xl-1{padding-bottom:4px !important}.ps-xl-1{padding-inline-start:4px !important}.pe-xl-1{padding-inline-end:4px !important}.pa-xl-1{padding:4px !important}.pt-xl-2,.py-xl-2{padding-top:8px !important}.pr-xl-2,.px-xl-2{padding-right:8px !important}.pl-xl-2,.px-xl-2{padding-left:8px !important}.pb-xl-2,.py-xl-2{padding-bottom:8px !important}.ps-xl-2{padding-inline-start:8px !important}.pe-xl-2{padding-inline-end:8px !important}.pa-xl-2{padding:8px !important}.pt-xl-3,.py-xl-3{padding-top:12px !important}.pr-xl-3,.px-xl-3{padding-right:12px !important}.pl-xl-3,.px-xl-3{padding-left:12px !important}.pb-xl-3,.py-xl-3{padding-bottom:12px !important}.ps-xl-3{padding-inline-start:12px !important}.pe-xl-3{padding-inline-end:12px !important}.pa-xl-3{padding:12px !important}.pt-xl-4,.py-xl-4{padding-top:16px !important}.pr-xl-4,.px-xl-4{padding-right:16px !important}.pl-xl-4,.px-xl-4{padding-left:16px !important}.pb-xl-4,.py-xl-4{padding-bottom:16px !important}.ps-xl-4{padding-inline-start:16px !important}.pe-xl-4{padding-inline-end:16px !important}.pa-xl-4{padding:16px !important}.pt-xl-5,.py-xl-5{padding-top:20px !important}.pr-xl-5,.px-xl-5{padding-right:20px !important}.pl-xl-5,.px-xl-5{padding-left:20px !important}.pb-xl-5,.py-xl-5{padding-bottom:20px !important}.ps-xl-5{padding-inline-start:20px !important}.pe-xl-5{padding-inline-end:20px !important}.pa-xl-5{padding:20px !important}.pt-xl-6,.py-xl-6{padding-top:24px !important}.pr-xl-6,.px-xl-6{padding-right:24px !important}.pl-xl-6,.px-xl-6{padding-left:24px !important}.pb-xl-6,.py-xl-6{padding-bottom:24px !important}.ps-xl-6{padding-inline-start:24px !important}.pe-xl-6{padding-inline-end:24px !important}.pa-xl-6{padding:24px !important}.pt-xl-7,.py-xl-7{padding-top:28px !important}.pr-xl-7,.px-xl-7{padding-right:28px !important}.pl-xl-7,.px-xl-7{padding-left:28px !important}.pb-xl-7,.py-xl-7{padding-bottom:28px !important}.ps-xl-7{padding-inline-start:28px !important}.pe-xl-7{padding-inline-end:28px !important}.pa-xl-7{padding:28px !important}.pt-xl-8,.py-xl-8{padding-top:32px !important}.pr-xl-8,.px-xl-8{padding-right:32px !important}.pl-xl-8,.px-xl-8{padding-left:32px !important}.pb-xl-8,.py-xl-8{padding-bottom:32px !important}.ps-xl-8{padding-inline-start:32px !important}.pe-xl-8{padding-inline-end:32px !important}.pa-xl-8{padding:32px !important}.pt-xl-9,.py-xl-9{padding-top:36px !important}.pr-xl-9,.px-xl-9{padding-right:36px !important}.pl-xl-9,.px-xl-9{padding-left:36px !important}.pb-xl-9,.py-xl-9{padding-bottom:36px !important}.ps-xl-9{padding-inline-start:36px !important}.pe-xl-9{padding-inline-end:36px !important}.pa-xl-9{padding:36px !important}.pt-xl-10,.py-xl-10{padding-top:40px !important}.pr-xl-10,.px-xl-10{padding-right:40px !important}.pl-xl-10,.px-xl-10{padding-left:40px !important}.pb-xl-10,.py-xl-10{padding-bottom:40px !important}.ps-xl-10{padding-inline-start:40px !important}.pe-xl-10{padding-inline-end:40px !important}.pa-xl-10{padding:40px !important}.pt-xl-11,.py-xl-11{padding-top:44px !important}.pr-xl-11,.px-xl-11{padding-right:44px !important}.pl-xl-11,.px-xl-11{padding-left:44px !important}.pb-xl-11,.py-xl-11{padding-bottom:44px !important}.ps-xl-11{padding-inline-start:44px !important}.pe-xl-11{padding-inline-end:44px !important}.pa-xl-11{padding:44px !important}.pt-xl-12,.py-xl-12{padding-top:48px !important}.pr-xl-12,.px-xl-12{padding-right:48px !important}.pl-xl-12,.px-xl-12{padding-left:48px !important}.pb-xl-12,.py-xl-12{padding-bottom:48px !important}.ps-xl-12{padding-inline-start:48px !important}.pe-xl-12{padding-inline-end:48px !important}.pa-xl-12{padding:48px !important}.pt-xl-13,.py-xl-13{padding-top:52px !important}.pr-xl-13,.px-xl-13{padding-right:52px !important}.pl-xl-13,.px-xl-13{padding-left:52px !important}.pb-xl-13,.py-xl-13{padding-bottom:52px !important}.ps-xl-13{padding-inline-start:52px !important}.pe-xl-13{padding-inline-end:52px !important}.pa-xl-13{padding:52px !important}.pt-xl-14,.py-xl-14{padding-top:56px !important}.pr-xl-14,.px-xl-14{padding-right:56px !important}.pl-xl-14,.px-xl-14{padding-left:56px !important}.pb-xl-14,.py-xl-14{padding-bottom:56px !important}.ps-xl-14{padding-inline-start:56px !important}.pe-xl-14{padding-inline-end:56px !important}.pa-xl-14{padding:56px !important}.pt-xl-15,.py-xl-15{padding-top:60px !important}.pr-xl-15,.px-xl-15{padding-right:60px !important}.pl-xl-15,.px-xl-15{padding-left:60px !important}.pb-xl-15,.py-xl-15{padding-bottom:60px !important}.ps-xl-15{padding-inline-start:60px !important}.pe-xl-15{padding-inline-end:60px !important}.pa-xl-15{padding:60px !important}.pt-xl-16,.py-xl-16{padding-top:64px !important}.pr-xl-16,.px-xl-16{padding-right:64px !important}.pl-xl-16,.px-xl-16{padding-left:64px !important}.pb-xl-16,.py-xl-16{padding-bottom:64px !important}.ps-xl-16{padding-inline-start:64px !important}.pe-xl-16{padding-inline-end:64px !important}.pa-xl-16{padding:64px !important}.pt-xl-17,.py-xl-17{padding-top:68px !important}.pr-xl-17,.px-xl-17{padding-right:68px !important}.pl-xl-17,.px-xl-17{padding-left:68px !important}.pb-xl-17,.py-xl-17{padding-bottom:68px !important}.ps-xl-17{padding-inline-start:68px !important}.pe-xl-17{padding-inline-end:68px !important}.pa-xl-17{padding:68px !important}.pt-xl-18,.py-xl-18{padding-top:72px !important}.pr-xl-18,.px-xl-18{padding-right:72px !important}.pl-xl-18,.px-xl-18{padding-left:72px !important}.pb-xl-18,.py-xl-18{padding-bottom:72px !important}.ps-xl-18{padding-inline-start:72px !important}.pe-xl-18{padding-inline-end:72px !important}.pa-xl-18{padding:72px !important}.pt-xl-19,.py-xl-19{padding-top:76px !important}.pr-xl-19,.px-xl-19{padding-right:76px !important}.pl-xl-19,.px-xl-19{padding-left:76px !important}.pb-xl-19,.py-xl-19{padding-bottom:76px !important}.ps-xl-19{padding-inline-start:76px !important}.pe-xl-19{padding-inline-end:76px !important}.pa-xl-19{padding:76px !important}.pt-xl-20,.py-xl-20{padding-top:80px !important}.pr-xl-20,.px-xl-20{padding-right:80px !important}.pl-xl-20,.px-xl-20{padding-left:80px !important}.pb-xl-20,.py-xl-20{padding-bottom:80px !important}.ps-xl-20{padding-inline-start:80px !important}.pe-xl-20{padding-inline-end:80px !important}.pa-xl-20{padding:80px !important}.pt-xl-auto,.py-xl-auto{padding-top:auto !important}.pr-xl-auto,.px-xl-auto{padding-right:auto !important}.pl-xl-auto,.px-xl-auto{padding-left:auto !important}.pb-xl-auto,.py-xl-auto{padding-bottom:auto !important}.ps-xl-auto{padding-inline-start:auto !important}.pe-xl-auto{padding-inline-end:auto !important}.pa-xl-auto{padding:auto !important}.mt-xl-n1,.my-xl-n1{margin-top:-4px !important}.mr-xl-n1,.mx-xl-n1{margin-right:-4px !important}.ml-xl-n1,.mx-xl-n1{margin-left:-4px !important}.mb-xl-n1,.my-xl-n1{margin-bottom:-4px !important}.ms-xl-n1{margin-inline-start:-4px !important}.me-xl-n1{margin-inline-end:-4px !important}.ma-xl-n1{margin:-4px !important}.mt-xl-n2,.my-xl-n2{margin-top:-8px !important}.mr-xl-n2,.mx-xl-n2{margin-right:-8px !important}.ml-xl-n2,.mx-xl-n2{margin-left:-8px !important}.mb-xl-n2,.my-xl-n2{margin-bottom:-8px !important}.ms-xl-n2{margin-inline-start:-8px !important}.me-xl-n2{margin-inline-end:-8px !important}.ma-xl-n2{margin:-8px !important}.mt-xl-n3,.my-xl-n3{margin-top:-12px !important}.mr-xl-n3,.mx-xl-n3{margin-right:-12px !important}.ml-xl-n3,.mx-xl-n3{margin-left:-12px !important}.mb-xl-n3,.my-xl-n3{margin-bottom:-12px !important}.ms-xl-n3{margin-inline-start:-12px !important}.me-xl-n3{margin-inline-end:-12px !important}.ma-xl-n3{margin:-12px !important}.mt-xl-n4,.my-xl-n4{margin-top:-16px !important}.mr-xl-n4,.mx-xl-n4{margin-right:-16px !important}.ml-xl-n4,.mx-xl-n4{margin-left:-16px !important}.mb-xl-n4,.my-xl-n4{margin-bottom:-16px !important}.ms-xl-n4{margin-inline-start:-16px !important}.me-xl-n4{margin-inline-end:-16px !important}.ma-xl-n4{margin:-16px !important}.mt-xl-n5,.my-xl-n5{margin-top:-20px !important}.mr-xl-n5,.mx-xl-n5{margin-right:-20px !important}.ml-xl-n5,.mx-xl-n5{margin-left:-20px !important}.mb-xl-n5,.my-xl-n5{margin-bottom:-20px !important}.ms-xl-n5{margin-inline-start:-20px !important}.me-xl-n5{margin-inline-end:-20px !important}.ma-xl-n5{margin:-20px !important}.mt-xl-n6,.my-xl-n6{margin-top:-24px !important}.mr-xl-n6,.mx-xl-n6{margin-right:-24px !important}.ml-xl-n6,.mx-xl-n6{margin-left:-24px !important}.mb-xl-n6,.my-xl-n6{margin-bottom:-24px !important}.ms-xl-n6{margin-inline-start:-24px !important}.me-xl-n6{margin-inline-end:-24px !important}.ma-xl-n6{margin:-24px !important}.mt-xl-n7,.my-xl-n7{margin-top:-28px !important}.mr-xl-n7,.mx-xl-n7{margin-right:-28px !important}.ml-xl-n7,.mx-xl-n7{margin-left:-28px !important}.mb-xl-n7,.my-xl-n7{margin-bottom:-28px !important}.ms-xl-n7{margin-inline-start:-28px !important}.me-xl-n7{margin-inline-end:-28px !important}.ma-xl-n7{margin:-28px !important}.mt-xl-n8,.my-xl-n8{margin-top:-32px !important}.mr-xl-n8,.mx-xl-n8{margin-right:-32px !important}.ml-xl-n8,.mx-xl-n8{margin-left:-32px !important}.mb-xl-n8,.my-xl-n8{margin-bottom:-32px !important}.ms-xl-n8{margin-inline-start:-32px !important}.me-xl-n8{margin-inline-end:-32px !important}.ma-xl-n8{margin:-32px !important}.mt-xl-n9,.my-xl-n9{margin-top:-36px !important}.mr-xl-n9,.mx-xl-n9{margin-right:-36px !important}.ml-xl-n9,.mx-xl-n9{margin-left:-36px !important}.mb-xl-n9,.my-xl-n9{margin-bottom:-36px !important}.ms-xl-n9{margin-inline-start:-36px !important}.me-xl-n9{margin-inline-end:-36px !important}.ma-xl-n9{margin:-36px !important}.mt-xl-n10,.my-xl-n10{margin-top:-40px !important}.mr-xl-n10,.mx-xl-n10{margin-right:-40px !important}.ml-xl-n10,.mx-xl-n10{margin-left:-40px !important}.mb-xl-n10,.my-xl-n10{margin-bottom:-40px !important}.ms-xl-n10{margin-inline-start:-40px !important}.me-xl-n10{margin-inline-end:-40px !important}.ma-xl-n10{margin:-40px !important}.mt-xl-n11,.my-xl-n11{margin-top:-44px !important}.mr-xl-n11,.mx-xl-n11{margin-right:-44px !important}.ml-xl-n11,.mx-xl-n11{margin-left:-44px !important}.mb-xl-n11,.my-xl-n11{margin-bottom:-44px !important}.ms-xl-n11{margin-inline-start:-44px !important}.me-xl-n11{margin-inline-end:-44px !important}.ma-xl-n11{margin:-44px !important}.mt-xl-n12,.my-xl-n12{margin-top:-48px !important}.mr-xl-n12,.mx-xl-n12{margin-right:-48px !important}.ml-xl-n12,.mx-xl-n12{margin-left:-48px !important}.mb-xl-n12,.my-xl-n12{margin-bottom:-48px !important}.ms-xl-n12{margin-inline-start:-48px !important}.me-xl-n12{margin-inline-end:-48px !important}.ma-xl-n12{margin:-48px !important}.mt-xl-n13,.my-xl-n13{margin-top:-52px !important}.mr-xl-n13,.mx-xl-n13{margin-right:-52px !important}.ml-xl-n13,.mx-xl-n13{margin-left:-52px !important}.mb-xl-n13,.my-xl-n13{margin-bottom:-52px !important}.ms-xl-n13{margin-inline-start:-52px !important}.me-xl-n13{margin-inline-end:-52px !important}.ma-xl-n13{margin:-52px !important}.mt-xl-n14,.my-xl-n14{margin-top:-56px !important}.mr-xl-n14,.mx-xl-n14{margin-right:-56px !important}.ml-xl-n14,.mx-xl-n14{margin-left:-56px !important}.mb-xl-n14,.my-xl-n14{margin-bottom:-56px !important}.ms-xl-n14{margin-inline-start:-56px !important}.me-xl-n14{margin-inline-end:-56px !important}.ma-xl-n14{margin:-56px !important}.mt-xl-n15,.my-xl-n15{margin-top:-60px !important}.mr-xl-n15,.mx-xl-n15{margin-right:-60px !important}.ml-xl-n15,.mx-xl-n15{margin-left:-60px !important}.mb-xl-n15,.my-xl-n15{margin-bottom:-60px !important}.ms-xl-n15{margin-inline-start:-60px !important}.me-xl-n15{margin-inline-end:-60px !important}.ma-xl-n15{margin:-60px !important}.mt-xl-n16,.my-xl-n16{margin-top:-64px !important}.mr-xl-n16,.mx-xl-n16{margin-right:-64px !important}.ml-xl-n16,.mx-xl-n16{margin-left:-64px !important}.mb-xl-n16,.my-xl-n16{margin-bottom:-64px !important}.ms-xl-n16{margin-inline-start:-64px !important}.me-xl-n16{margin-inline-end:-64px !important}.ma-xl-n16{margin:-64px !important}.mt-xl-n17,.my-xl-n17{margin-top:-68px !important}.mr-xl-n17,.mx-xl-n17{margin-right:-68px !important}.ml-xl-n17,.mx-xl-n17{margin-left:-68px !important}.mb-xl-n17,.my-xl-n17{margin-bottom:-68px !important}.ms-xl-n17{margin-inline-start:-68px !important}.me-xl-n17{margin-inline-end:-68px !important}.ma-xl-n17{margin:-68px !important}.mt-xl-n18,.my-xl-n18{margin-top:-72px !important}.mr-xl-n18,.mx-xl-n18{margin-right:-72px !important}.ml-xl-n18,.mx-xl-n18{margin-left:-72px !important}.mb-xl-n18,.my-xl-n18{margin-bottom:-72px !important}.ms-xl-n18{margin-inline-start:-72px !important}.me-xl-n18{margin-inline-end:-72px !important}.ma-xl-n18{margin:-72px !important}.mt-xl-n19,.my-xl-n19{margin-top:-76px !important}.mr-xl-n19,.mx-xl-n19{margin-right:-76px !important}.ml-xl-n19,.mx-xl-n19{margin-left:-76px !important}.mb-xl-n19,.my-xl-n19{margin-bottom:-76px !important}.ms-xl-n19{margin-inline-start:-76px !important}.me-xl-n19{margin-inline-end:-76px !important}.ma-xl-n19{margin:-76px !important}.mt-xl-n20,.my-xl-n20{margin-top:-80px !important}.mr-xl-n20,.mx-xl-n20{margin-right:-80px !important}.ml-xl-n20,.mx-xl-n20{margin-left:-80px !important}.mb-xl-n20,.my-xl-n20{margin-bottom:-80px !important}.ms-xl-n20{margin-inline-start:-80px !important}.me-xl-n20{margin-inline-end:-80px !important}.ma-xl-n20{margin:-80px !important}}@media screen and (min-width: 2560px){.mt-xxl-0,.my-xxl-0{margin-top:0 !important}.mr-xxl-0,.mx-xxl-0{margin-right:0 !important}.ml-xxl-0,.mx-xxl-0{margin-left:0 !important}.mb-xxl-0,.my-xxl-0{margin-bottom:0 !important}.ms-xxl-0{margin-inline-start:0 !important}.me-xxl-0{margin-inline-end:0 !important}.ma-xxl-0{margin:0 !important}.mt-xxl-1,.my-xxl-1{margin-top:4px !important}.mr-xxl-1,.mx-xxl-1{margin-right:4px !important}.ml-xxl-1,.mx-xxl-1{margin-left:4px !important}.mb-xxl-1,.my-xxl-1{margin-bottom:4px !important}.ms-xxl-1{margin-inline-start:4px !important}.me-xxl-1{margin-inline-end:4px !important}.ma-xxl-1{margin:4px !important}.mt-xxl-2,.my-xxl-2{margin-top:8px !important}.mr-xxl-2,.mx-xxl-2{margin-right:8px !important}.ml-xxl-2,.mx-xxl-2{margin-left:8px !important}.mb-xxl-2,.my-xxl-2{margin-bottom:8px !important}.ms-xxl-2{margin-inline-start:8px !important}.me-xxl-2{margin-inline-end:8px !important}.ma-xxl-2{margin:8px !important}.mt-xxl-3,.my-xxl-3{margin-top:12px !important}.mr-xxl-3,.mx-xxl-3{margin-right:12px !important}.ml-xxl-3,.mx-xxl-3{margin-left:12px !important}.mb-xxl-3,.my-xxl-3{margin-bottom:12px !important}.ms-xxl-3{margin-inline-start:12px !important}.me-xxl-3{margin-inline-end:12px !important}.ma-xxl-3{margin:12px !important}.mt-xxl-4,.my-xxl-4{margin-top:16px !important}.mr-xxl-4,.mx-xxl-4{margin-right:16px !important}.ml-xxl-4,.mx-xxl-4{margin-left:16px !important}.mb-xxl-4,.my-xxl-4{margin-bottom:16px !important}.ms-xxl-4{margin-inline-start:16px !important}.me-xxl-4{margin-inline-end:16px !important}.ma-xxl-4{margin:16px !important}.mt-xxl-5,.my-xxl-5{margin-top:20px !important}.mr-xxl-5,.mx-xxl-5{margin-right:20px !important}.ml-xxl-5,.mx-xxl-5{margin-left:20px !important}.mb-xxl-5,.my-xxl-5{margin-bottom:20px !important}.ms-xxl-5{margin-inline-start:20px !important}.me-xxl-5{margin-inline-end:20px !important}.ma-xxl-5{margin:20px !important}.mt-xxl-6,.my-xxl-6{margin-top:24px !important}.mr-xxl-6,.mx-xxl-6{margin-right:24px !important}.ml-xxl-6,.mx-xxl-6{margin-left:24px !important}.mb-xxl-6,.my-xxl-6{margin-bottom:24px !important}.ms-xxl-6{margin-inline-start:24px !important}.me-xxl-6{margin-inline-end:24px !important}.ma-xxl-6{margin:24px !important}.mt-xxl-7,.my-xxl-7{margin-top:28px !important}.mr-xxl-7,.mx-xxl-7{margin-right:28px !important}.ml-xxl-7,.mx-xxl-7{margin-left:28px !important}.mb-xxl-7,.my-xxl-7{margin-bottom:28px !important}.ms-xxl-7{margin-inline-start:28px !important}.me-xxl-7{margin-inline-end:28px !important}.ma-xxl-7{margin:28px !important}.mt-xxl-8,.my-xxl-8{margin-top:32px !important}.mr-xxl-8,.mx-xxl-8{margin-right:32px !important}.ml-xxl-8,.mx-xxl-8{margin-left:32px !important}.mb-xxl-8,.my-xxl-8{margin-bottom:32px !important}.ms-xxl-8{margin-inline-start:32px !important}.me-xxl-8{margin-inline-end:32px !important}.ma-xxl-8{margin:32px !important}.mt-xxl-9,.my-xxl-9{margin-top:36px !important}.mr-xxl-9,.mx-xxl-9{margin-right:36px !important}.ml-xxl-9,.mx-xxl-9{margin-left:36px !important}.mb-xxl-9,.my-xxl-9{margin-bottom:36px !important}.ms-xxl-9{margin-inline-start:36px !important}.me-xxl-9{margin-inline-end:36px !important}.ma-xxl-9{margin:36px !important}.mt-xxl-10,.my-xxl-10{margin-top:40px !important}.mr-xxl-10,.mx-xxl-10{margin-right:40px !important}.ml-xxl-10,.mx-xxl-10{margin-left:40px !important}.mb-xxl-10,.my-xxl-10{margin-bottom:40px !important}.ms-xxl-10{margin-inline-start:40px !important}.me-xxl-10{margin-inline-end:40px !important}.ma-xxl-10{margin:40px !important}.mt-xxl-11,.my-xxl-11{margin-top:44px !important}.mr-xxl-11,.mx-xxl-11{margin-right:44px !important}.ml-xxl-11,.mx-xxl-11{margin-left:44px !important}.mb-xxl-11,.my-xxl-11{margin-bottom:44px !important}.ms-xxl-11{margin-inline-start:44px !important}.me-xxl-11{margin-inline-end:44px !important}.ma-xxl-11{margin:44px !important}.mt-xxl-12,.my-xxl-12{margin-top:48px !important}.mr-xxl-12,.mx-xxl-12{margin-right:48px !important}.ml-xxl-12,.mx-xxl-12{margin-left:48px !important}.mb-xxl-12,.my-xxl-12{margin-bottom:48px !important}.ms-xxl-12{margin-inline-start:48px !important}.me-xxl-12{margin-inline-end:48px !important}.ma-xxl-12{margin:48px !important}.mt-xxl-13,.my-xxl-13{margin-top:52px !important}.mr-xxl-13,.mx-xxl-13{margin-right:52px !important}.ml-xxl-13,.mx-xxl-13{margin-left:52px !important}.mb-xxl-13,.my-xxl-13{margin-bottom:52px !important}.ms-xxl-13{margin-inline-start:52px !important}.me-xxl-13{margin-inline-end:52px !important}.ma-xxl-13{margin:52px !important}.mt-xxl-14,.my-xxl-14{margin-top:56px !important}.mr-xxl-14,.mx-xxl-14{margin-right:56px !important}.ml-xxl-14,.mx-xxl-14{margin-left:56px !important}.mb-xxl-14,.my-xxl-14{margin-bottom:56px !important}.ms-xxl-14{margin-inline-start:56px !important}.me-xxl-14{margin-inline-end:56px !important}.ma-xxl-14{margin:56px !important}.mt-xxl-15,.my-xxl-15{margin-top:60px !important}.mr-xxl-15,.mx-xxl-15{margin-right:60px !important}.ml-xxl-15,.mx-xxl-15{margin-left:60px !important}.mb-xxl-15,.my-xxl-15{margin-bottom:60px !important}.ms-xxl-15{margin-inline-start:60px !important}.me-xxl-15{margin-inline-end:60px !important}.ma-xxl-15{margin:60px !important}.mt-xxl-16,.my-xxl-16{margin-top:64px !important}.mr-xxl-16,.mx-xxl-16{margin-right:64px !important}.ml-xxl-16,.mx-xxl-16{margin-left:64px !important}.mb-xxl-16,.my-xxl-16{margin-bottom:64px !important}.ms-xxl-16{margin-inline-start:64px !important}.me-xxl-16{margin-inline-end:64px !important}.ma-xxl-16{margin:64px !important}.mt-xxl-17,.my-xxl-17{margin-top:68px !important}.mr-xxl-17,.mx-xxl-17{margin-right:68px !important}.ml-xxl-17,.mx-xxl-17{margin-left:68px !important}.mb-xxl-17,.my-xxl-17{margin-bottom:68px !important}.ms-xxl-17{margin-inline-start:68px !important}.me-xxl-17{margin-inline-end:68px !important}.ma-xxl-17{margin:68px !important}.mt-xxl-18,.my-xxl-18{margin-top:72px !important}.mr-xxl-18,.mx-xxl-18{margin-right:72px !important}.ml-xxl-18,.mx-xxl-18{margin-left:72px !important}.mb-xxl-18,.my-xxl-18{margin-bottom:72px !important}.ms-xxl-18{margin-inline-start:72px !important}.me-xxl-18{margin-inline-end:72px !important}.ma-xxl-18{margin:72px !important}.mt-xxl-19,.my-xxl-19{margin-top:76px !important}.mr-xxl-19,.mx-xxl-19{margin-right:76px !important}.ml-xxl-19,.mx-xxl-19{margin-left:76px !important}.mb-xxl-19,.my-xxl-19{margin-bottom:76px !important}.ms-xxl-19{margin-inline-start:76px !important}.me-xxl-19{margin-inline-end:76px !important}.ma-xxl-19{margin:76px !important}.mt-xxl-20,.my-xxl-20{margin-top:80px !important}.mr-xxl-20,.mx-xxl-20{margin-right:80px !important}.ml-xxl-20,.mx-xxl-20{margin-left:80px !important}.mb-xxl-20,.my-xxl-20{margin-bottom:80px !important}.ms-xxl-20{margin-inline-start:80px !important}.me-xxl-20{margin-inline-end:80px !important}.ma-xxl-20{margin:80px !important}.mt-xxl-auto,.my-xxl-auto{margin-top:auto !important}.mr-xxl-auto,.mx-xxl-auto{margin-right:auto !important}.ml-xxl-auto,.mx-xxl-auto{margin-left:auto !important}.mb-xxl-auto,.my-xxl-auto{margin-bottom:auto !important}.ms-xxl-auto{margin-inline-start:auto !important}.me-xxl-auto{margin-inline-end:auto !important}.ma-xxl-auto{margin:auto !important}.pt-xxl-0,.py-xxl-0{padding-top:0 !important}.pr-xxl-0,.px-xxl-0{padding-right:0 !important}.pl-xxl-0,.px-xxl-0{padding-left:0 !important}.pb-xxl-0,.py-xxl-0{padding-bottom:0 !important}.ps-xxl-0{padding-inline-start:0 !important}.pe-xxl-0{padding-inline-end:0 !important}.pa-xxl-0{padding:0 !important}.pt-xxl-1,.py-xxl-1{padding-top:4px !important}.pr-xxl-1,.px-xxl-1{padding-right:4px !important}.pl-xxl-1,.px-xxl-1{padding-left:4px !important}.pb-xxl-1,.py-xxl-1{padding-bottom:4px !important}.ps-xxl-1{padding-inline-start:4px !important}.pe-xxl-1{padding-inline-end:4px !important}.pa-xxl-1{padding:4px !important}.pt-xxl-2,.py-xxl-2{padding-top:8px !important}.pr-xxl-2,.px-xxl-2{padding-right:8px !important}.pl-xxl-2,.px-xxl-2{padding-left:8px !important}.pb-xxl-2,.py-xxl-2{padding-bottom:8px !important}.ps-xxl-2{padding-inline-start:8px !important}.pe-xxl-2{padding-inline-end:8px !important}.pa-xxl-2{padding:8px !important}.pt-xxl-3,.py-xxl-3{padding-top:12px !important}.pr-xxl-3,.px-xxl-3{padding-right:12px !important}.pl-xxl-3,.px-xxl-3{padding-left:12px !important}.pb-xxl-3,.py-xxl-3{padding-bottom:12px !important}.ps-xxl-3{padding-inline-start:12px !important}.pe-xxl-3{padding-inline-end:12px !important}.pa-xxl-3{padding:12px !important}.pt-xxl-4,.py-xxl-4{padding-top:16px !important}.pr-xxl-4,.px-xxl-4{padding-right:16px !important}.pl-xxl-4,.px-xxl-4{padding-left:16px !important}.pb-xxl-4,.py-xxl-4{padding-bottom:16px !important}.ps-xxl-4{padding-inline-start:16px !important}.pe-xxl-4{padding-inline-end:16px !important}.pa-xxl-4{padding:16px !important}.pt-xxl-5,.py-xxl-5{padding-top:20px !important}.pr-xxl-5,.px-xxl-5{padding-right:20px !important}.pl-xxl-5,.px-xxl-5{padding-left:20px !important}.pb-xxl-5,.py-xxl-5{padding-bottom:20px !important}.ps-xxl-5{padding-inline-start:20px !important}.pe-xxl-5{padding-inline-end:20px !important}.pa-xxl-5{padding:20px !important}.pt-xxl-6,.py-xxl-6{padding-top:24px !important}.pr-xxl-6,.px-xxl-6{padding-right:24px !important}.pl-xxl-6,.px-xxl-6{padding-left:24px !important}.pb-xxl-6,.py-xxl-6{padding-bottom:24px !important}.ps-xxl-6{padding-inline-start:24px !important}.pe-xxl-6{padding-inline-end:24px !important}.pa-xxl-6{padding:24px !important}.pt-xxl-7,.py-xxl-7{padding-top:28px !important}.pr-xxl-7,.px-xxl-7{padding-right:28px !important}.pl-xxl-7,.px-xxl-7{padding-left:28px !important}.pb-xxl-7,.py-xxl-7{padding-bottom:28px !important}.ps-xxl-7{padding-inline-start:28px !important}.pe-xxl-7{padding-inline-end:28px !important}.pa-xxl-7{padding:28px !important}.pt-xxl-8,.py-xxl-8{padding-top:32px !important}.pr-xxl-8,.px-xxl-8{padding-right:32px !important}.pl-xxl-8,.px-xxl-8{padding-left:32px !important}.pb-xxl-8,.py-xxl-8{padding-bottom:32px !important}.ps-xxl-8{padding-inline-start:32px !important}.pe-xxl-8{padding-inline-end:32px !important}.pa-xxl-8{padding:32px !important}.pt-xxl-9,.py-xxl-9{padding-top:36px !important}.pr-xxl-9,.px-xxl-9{padding-right:36px !important}.pl-xxl-9,.px-xxl-9{padding-left:36px !important}.pb-xxl-9,.py-xxl-9{padding-bottom:36px !important}.ps-xxl-9{padding-inline-start:36px !important}.pe-xxl-9{padding-inline-end:36px !important}.pa-xxl-9{padding:36px !important}.pt-xxl-10,.py-xxl-10{padding-top:40px !important}.pr-xxl-10,.px-xxl-10{padding-right:40px !important}.pl-xxl-10,.px-xxl-10{padding-left:40px !important}.pb-xxl-10,.py-xxl-10{padding-bottom:40px !important}.ps-xxl-10{padding-inline-start:40px !important}.pe-xxl-10{padding-inline-end:40px !important}.pa-xxl-10{padding:40px !important}.pt-xxl-11,.py-xxl-11{padding-top:44px !important}.pr-xxl-11,.px-xxl-11{padding-right:44px !important}.pl-xxl-11,.px-xxl-11{padding-left:44px !important}.pb-xxl-11,.py-xxl-11{padding-bottom:44px !important}.ps-xxl-11{padding-inline-start:44px !important}.pe-xxl-11{padding-inline-end:44px !important}.pa-xxl-11{padding:44px !important}.pt-xxl-12,.py-xxl-12{padding-top:48px !important}.pr-xxl-12,.px-xxl-12{padding-right:48px !important}.pl-xxl-12,.px-xxl-12{padding-left:48px !important}.pb-xxl-12,.py-xxl-12{padding-bottom:48px !important}.ps-xxl-12{padding-inline-start:48px !important}.pe-xxl-12{padding-inline-end:48px !important}.pa-xxl-12{padding:48px !important}.pt-xxl-13,.py-xxl-13{padding-top:52px !important}.pr-xxl-13,.px-xxl-13{padding-right:52px !important}.pl-xxl-13,.px-xxl-13{padding-left:52px !important}.pb-xxl-13,.py-xxl-13{padding-bottom:52px !important}.ps-xxl-13{padding-inline-start:52px !important}.pe-xxl-13{padding-inline-end:52px !important}.pa-xxl-13{padding:52px !important}.pt-xxl-14,.py-xxl-14{padding-top:56px !important}.pr-xxl-14,.px-xxl-14{padding-right:56px !important}.pl-xxl-14,.px-xxl-14{padding-left:56px !important}.pb-xxl-14,.py-xxl-14{padding-bottom:56px !important}.ps-xxl-14{padding-inline-start:56px !important}.pe-xxl-14{padding-inline-end:56px !important}.pa-xxl-14{padding:56px !important}.pt-xxl-15,.py-xxl-15{padding-top:60px !important}.pr-xxl-15,.px-xxl-15{padding-right:60px !important}.pl-xxl-15,.px-xxl-15{padding-left:60px !important}.pb-xxl-15,.py-xxl-15{padding-bottom:60px !important}.ps-xxl-15{padding-inline-start:60px !important}.pe-xxl-15{padding-inline-end:60px !important}.pa-xxl-15{padding:60px !important}.pt-xxl-16,.py-xxl-16{padding-top:64px !important}.pr-xxl-16,.px-xxl-16{padding-right:64px !important}.pl-xxl-16,.px-xxl-16{padding-left:64px !important}.pb-xxl-16,.py-xxl-16{padding-bottom:64px !important}.ps-xxl-16{padding-inline-start:64px !important}.pe-xxl-16{padding-inline-end:64px !important}.pa-xxl-16{padding:64px !important}.pt-xxl-17,.py-xxl-17{padding-top:68px !important}.pr-xxl-17,.px-xxl-17{padding-right:68px !important}.pl-xxl-17,.px-xxl-17{padding-left:68px !important}.pb-xxl-17,.py-xxl-17{padding-bottom:68px !important}.ps-xxl-17{padding-inline-start:68px !important}.pe-xxl-17{padding-inline-end:68px !important}.pa-xxl-17{padding:68px !important}.pt-xxl-18,.py-xxl-18{padding-top:72px !important}.pr-xxl-18,.px-xxl-18{padding-right:72px !important}.pl-xxl-18,.px-xxl-18{padding-left:72px !important}.pb-xxl-18,.py-xxl-18{padding-bottom:72px !important}.ps-xxl-18{padding-inline-start:72px !important}.pe-xxl-18{padding-inline-end:72px !important}.pa-xxl-18{padding:72px !important}.pt-xxl-19,.py-xxl-19{padding-top:76px !important}.pr-xxl-19,.px-xxl-19{padding-right:76px !important}.pl-xxl-19,.px-xxl-19{padding-left:76px !important}.pb-xxl-19,.py-xxl-19{padding-bottom:76px !important}.ps-xxl-19{padding-inline-start:76px !important}.pe-xxl-19{padding-inline-end:76px !important}.pa-xxl-19{padding:76px !important}.pt-xxl-20,.py-xxl-20{padding-top:80px !important}.pr-xxl-20,.px-xxl-20{padding-right:80px !important}.pl-xxl-20,.px-xxl-20{padding-left:80px !important}.pb-xxl-20,.py-xxl-20{padding-bottom:80px !important}.ps-xxl-20{padding-inline-start:80px !important}.pe-xxl-20{padding-inline-end:80px !important}.pa-xxl-20{padding:80px !important}.pt-xxl-auto,.py-xxl-auto{padding-top:auto !important}.pr-xxl-auto,.px-xxl-auto{padding-right:auto !important}.pl-xxl-auto,.px-xxl-auto{padding-left:auto !important}.pb-xxl-auto,.py-xxl-auto{padding-bottom:auto !important}.ps-xxl-auto{padding-inline-start:auto !important}.pe-xxl-auto{padding-inline-end:auto !important}.pa-xxl-auto{padding:auto !important}.mt-xxl-n1,.my-xxl-n1{margin-top:-4px !important}.mr-xxl-n1,.mx-xxl-n1{margin-right:-4px !important}.ml-xxl-n1,.mx-xxl-n1{margin-left:-4px !important}.mb-xxl-n1,.my-xxl-n1{margin-bottom:-4px !important}.ms-xxl-n1{margin-inline-start:-4px !important}.me-xxl-n1{margin-inline-end:-4px !important}.ma-xxl-n1{margin:-4px !important}.mt-xxl-n2,.my-xxl-n2{margin-top:-8px !important}.mr-xxl-n2,.mx-xxl-n2{margin-right:-8px !important}.ml-xxl-n2,.mx-xxl-n2{margin-left:-8px !important}.mb-xxl-n2,.my-xxl-n2{margin-bottom:-8px !important}.ms-xxl-n2{margin-inline-start:-8px !important}.me-xxl-n2{margin-inline-end:-8px !important}.ma-xxl-n2{margin:-8px !important}.mt-xxl-n3,.my-xxl-n3{margin-top:-12px !important}.mr-xxl-n3,.mx-xxl-n3{margin-right:-12px !important}.ml-xxl-n3,.mx-xxl-n3{margin-left:-12px !important}.mb-xxl-n3,.my-xxl-n3{margin-bottom:-12px !important}.ms-xxl-n3{margin-inline-start:-12px !important}.me-xxl-n3{margin-inline-end:-12px !important}.ma-xxl-n3{margin:-12px !important}.mt-xxl-n4,.my-xxl-n4{margin-top:-16px !important}.mr-xxl-n4,.mx-xxl-n4{margin-right:-16px !important}.ml-xxl-n4,.mx-xxl-n4{margin-left:-16px !important}.mb-xxl-n4,.my-xxl-n4{margin-bottom:-16px !important}.ms-xxl-n4{margin-inline-start:-16px !important}.me-xxl-n4{margin-inline-end:-16px !important}.ma-xxl-n4{margin:-16px !important}.mt-xxl-n5,.my-xxl-n5{margin-top:-20px !important}.mr-xxl-n5,.mx-xxl-n5{margin-right:-20px !important}.ml-xxl-n5,.mx-xxl-n5{margin-left:-20px !important}.mb-xxl-n5,.my-xxl-n5{margin-bottom:-20px !important}.ms-xxl-n5{margin-inline-start:-20px !important}.me-xxl-n5{margin-inline-end:-20px !important}.ma-xxl-n5{margin:-20px !important}.mt-xxl-n6,.my-xxl-n6{margin-top:-24px !important}.mr-xxl-n6,.mx-xxl-n6{margin-right:-24px !important}.ml-xxl-n6,.mx-xxl-n6{margin-left:-24px !important}.mb-xxl-n6,.my-xxl-n6{margin-bottom:-24px !important}.ms-xxl-n6{margin-inline-start:-24px !important}.me-xxl-n6{margin-inline-end:-24px !important}.ma-xxl-n6{margin:-24px !important}.mt-xxl-n7,.my-xxl-n7{margin-top:-28px !important}.mr-xxl-n7,.mx-xxl-n7{margin-right:-28px !important}.ml-xxl-n7,.mx-xxl-n7{margin-left:-28px !important}.mb-xxl-n7,.my-xxl-n7{margin-bottom:-28px !important}.ms-xxl-n7{margin-inline-start:-28px !important}.me-xxl-n7{margin-inline-end:-28px !important}.ma-xxl-n7{margin:-28px !important}.mt-xxl-n8,.my-xxl-n8{margin-top:-32px !important}.mr-xxl-n8,.mx-xxl-n8{margin-right:-32px !important}.ml-xxl-n8,.mx-xxl-n8{margin-left:-32px !important}.mb-xxl-n8,.my-xxl-n8{margin-bottom:-32px !important}.ms-xxl-n8{margin-inline-start:-32px !important}.me-xxl-n8{margin-inline-end:-32px !important}.ma-xxl-n8{margin:-32px !important}.mt-xxl-n9,.my-xxl-n9{margin-top:-36px !important}.mr-xxl-n9,.mx-xxl-n9{margin-right:-36px !important}.ml-xxl-n9,.mx-xxl-n9{margin-left:-36px !important}.mb-xxl-n9,.my-xxl-n9{margin-bottom:-36px !important}.ms-xxl-n9{margin-inline-start:-36px !important}.me-xxl-n9{margin-inline-end:-36px !important}.ma-xxl-n9{margin:-36px !important}.mt-xxl-n10,.my-xxl-n10{margin-top:-40px !important}.mr-xxl-n10,.mx-xxl-n10{margin-right:-40px !important}.ml-xxl-n10,.mx-xxl-n10{margin-left:-40px !important}.mb-xxl-n10,.my-xxl-n10{margin-bottom:-40px !important}.ms-xxl-n10{margin-inline-start:-40px !important}.me-xxl-n10{margin-inline-end:-40px !important}.ma-xxl-n10{margin:-40px !important}.mt-xxl-n11,.my-xxl-n11{margin-top:-44px !important}.mr-xxl-n11,.mx-xxl-n11{margin-right:-44px !important}.ml-xxl-n11,.mx-xxl-n11{margin-left:-44px !important}.mb-xxl-n11,.my-xxl-n11{margin-bottom:-44px !important}.ms-xxl-n11{margin-inline-start:-44px !important}.me-xxl-n11{margin-inline-end:-44px !important}.ma-xxl-n11{margin:-44px !important}.mt-xxl-n12,.my-xxl-n12{margin-top:-48px !important}.mr-xxl-n12,.mx-xxl-n12{margin-right:-48px !important}.ml-xxl-n12,.mx-xxl-n12{margin-left:-48px !important}.mb-xxl-n12,.my-xxl-n12{margin-bottom:-48px !important}.ms-xxl-n12{margin-inline-start:-48px !important}.me-xxl-n12{margin-inline-end:-48px !important}.ma-xxl-n12{margin:-48px !important}.mt-xxl-n13,.my-xxl-n13{margin-top:-52px !important}.mr-xxl-n13,.mx-xxl-n13{margin-right:-52px !important}.ml-xxl-n13,.mx-xxl-n13{margin-left:-52px !important}.mb-xxl-n13,.my-xxl-n13{margin-bottom:-52px !important}.ms-xxl-n13{margin-inline-start:-52px !important}.me-xxl-n13{margin-inline-end:-52px !important}.ma-xxl-n13{margin:-52px !important}.mt-xxl-n14,.my-xxl-n14{margin-top:-56px !important}.mr-xxl-n14,.mx-xxl-n14{margin-right:-56px !important}.ml-xxl-n14,.mx-xxl-n14{margin-left:-56px !important}.mb-xxl-n14,.my-xxl-n14{margin-bottom:-56px !important}.ms-xxl-n14{margin-inline-start:-56px !important}.me-xxl-n14{margin-inline-end:-56px !important}.ma-xxl-n14{margin:-56px !important}.mt-xxl-n15,.my-xxl-n15{margin-top:-60px !important}.mr-xxl-n15,.mx-xxl-n15{margin-right:-60px !important}.ml-xxl-n15,.mx-xxl-n15{margin-left:-60px !important}.mb-xxl-n15,.my-xxl-n15{margin-bottom:-60px !important}.ms-xxl-n15{margin-inline-start:-60px !important}.me-xxl-n15{margin-inline-end:-60px !important}.ma-xxl-n15{margin:-60px !important}.mt-xxl-n16,.my-xxl-n16{margin-top:-64px !important}.mr-xxl-n16,.mx-xxl-n16{margin-right:-64px !important}.ml-xxl-n16,.mx-xxl-n16{margin-left:-64px !important}.mb-xxl-n16,.my-xxl-n16{margin-bottom:-64px !important}.ms-xxl-n16{margin-inline-start:-64px !important}.me-xxl-n16{margin-inline-end:-64px !important}.ma-xxl-n16{margin:-64px !important}.mt-xxl-n17,.my-xxl-n17{margin-top:-68px !important}.mr-xxl-n17,.mx-xxl-n17{margin-right:-68px !important}.ml-xxl-n17,.mx-xxl-n17{margin-left:-68px !important}.mb-xxl-n17,.my-xxl-n17{margin-bottom:-68px !important}.ms-xxl-n17{margin-inline-start:-68px !important}.me-xxl-n17{margin-inline-end:-68px !important}.ma-xxl-n17{margin:-68px !important}.mt-xxl-n18,.my-xxl-n18{margin-top:-72px !important}.mr-xxl-n18,.mx-xxl-n18{margin-right:-72px !important}.ml-xxl-n18,.mx-xxl-n18{margin-left:-72px !important}.mb-xxl-n18,.my-xxl-n18{margin-bottom:-72px !important}.ms-xxl-n18{margin-inline-start:-72px !important}.me-xxl-n18{margin-inline-end:-72px !important}.ma-xxl-n18{margin:-72px !important}.mt-xxl-n19,.my-xxl-n19{margin-top:-76px !important}.mr-xxl-n19,.mx-xxl-n19{margin-right:-76px !important}.ml-xxl-n19,.mx-xxl-n19{margin-left:-76px !important}.mb-xxl-n19,.my-xxl-n19{margin-bottom:-76px !important}.ms-xxl-n19{margin-inline-start:-76px !important}.me-xxl-n19{margin-inline-end:-76px !important}.ma-xxl-n19{margin:-76px !important}.mt-xxl-n20,.my-xxl-n20{margin-top:-80px !important}.mr-xxl-n20,.mx-xxl-n20{margin-right:-80px !important}.ml-xxl-n20,.mx-xxl-n20{margin-left:-80px !important}.mb-xxl-n20,.my-xxl-n20{margin-bottom:-80px !important}.ms-xxl-n20{margin-inline-start:-80px !important}.me-xxl-n20{margin-inline-end:-80px !important}.ma-xxl-n20{margin:-80px !important}}.mud-width-full{width:100%}.mud-height-full{height:100%}.w-max{width:max-content}.mud-appbar{width:100%;display:flex;z-index:var(--mud-zindex-appbar);position:relative;box-sizing:border-box;flex-shrink:0;flex-direction:column;color:var(--mud-palette-appbar-text);background-color:var(--mud-palette-appbar-background);transition:margin 225ms cubic-bezier(0, 0, 0.2, 1) 0ms,width 225ms cubic-bezier(0, 0, 0.2, 1) 0ms}.mud-appbar.mud-appbar-fixed-top{position:fixed;top:0;right:0;left:0}.mud-appbar.mud-appbar-fixed-top .mud-popover-cascading-value{position:fixed}.mud-appbar.mud-appbar-fixed-bottom{position:fixed;bottom:0;right:0;left:0}.mud-appbar.mud-appbar-fixed-bottom .mud-popover-cascading-value{position:fixed}.mud-appbar .mud-toolbar-appbar{height:calc(var(--mud-appbar-height) - var(--mud-appbar-height)/8)}@media(min-width: 0px)and (orientation: landscape){.mud-appbar .mud-toolbar-appbar{height:calc(var(--mud-appbar-height) - var(--mud-appbar-height)/4)}}@media(min-width: 600px){.mud-appbar .mud-toolbar-appbar{height:var(--mud-appbar-height)}}.mud-appbar.mud-appbar-dense .mud-toolbar-appbar{height:calc(var(--mud-appbar-height) - var(--mud-appbar-height)/4)}@media(min-width: 0px){.mud-drawer-open-responsive-xs-left.mud-drawer-left-clipped-never .mud-appbar{margin-left:var(--mud-drawer-width-left);width:calc(100% - var(--mud-drawer-width-left))}.mud-drawer-open-responsive-xs-right.mud-drawer-right-clipped-never .mud-appbar{margin-right:var(--mud-drawer-width-right);width:calc(100% - var(--mud-drawer-width-right))}.mud-drawer-open-responsive-xs-left.mud-drawer-left-clipped-never.mud-drawer-open-responsive-xs-right.mud-drawer-right-clipped-never .mud-appbar{margin-left:var(--mud-drawer-width-left);margin-right:var(--mud-drawer-width-right);width:calc(100% - var(--mud-drawer-width-left) - var(--mud-drawer-width-right))}}@media(min-width: 600px){.mud-drawer-open-responsive-sm-left.mud-drawer-left-clipped-never .mud-appbar{margin-left:var(--mud-drawer-width-left);width:calc(100% - var(--mud-drawer-width-left))}.mud-drawer-open-responsive-sm-right.mud-drawer-right-clipped-never .mud-appbar{margin-right:var(--mud-drawer-width-right);width:calc(100% - var(--mud-drawer-width-right))}.mud-drawer-open-responsive-sm-left.mud-drawer-left-clipped-never.mud-drawer-open-responsive-sm-right.mud-drawer-right-clipped-never .mud-appbar{margin-left:var(--mud-drawer-width-left);margin-right:var(--mud-drawer-width-right);width:calc(100% - var(--mud-drawer-width-left) - var(--mud-drawer-width-right))}}@media(min-width: 960px){.mud-drawer-open-responsive-md-left.mud-drawer-left-clipped-never .mud-appbar{margin-left:var(--mud-drawer-width-left);width:calc(100% - var(--mud-drawer-width-left))}.mud-drawer-open-responsive-md-right.mud-drawer-right-clipped-never .mud-appbar{margin-right:var(--mud-drawer-width-right);width:calc(100% - var(--mud-drawer-width-right))}.mud-drawer-open-responsive-md-left.mud-drawer-left-clipped-never.mud-drawer-open-responsive-md-right.mud-drawer-right-clipped-never .mud-appbar{margin-left:var(--mud-drawer-width-left);margin-right:var(--mud-drawer-width-right);width:calc(100% - var(--mud-drawer-width-left) - var(--mud-drawer-width-right))}}@media(min-width: 1280px){.mud-drawer-open-responsive-lg-left.mud-drawer-left-clipped-never .mud-appbar{margin-left:var(--mud-drawer-width-left);width:calc(100% - var(--mud-drawer-width-left))}.mud-drawer-open-responsive-lg-right.mud-drawer-right-clipped-never .mud-appbar{margin-right:var(--mud-drawer-width-right);width:calc(100% - var(--mud-drawer-width-right))}.mud-drawer-open-responsive-lg-left.mud-drawer-left-clipped-never.mud-drawer-open-responsive-lg-right.mud-drawer-right-clipped-never .mud-appbar{margin-left:var(--mud-drawer-width-left);margin-right:var(--mud-drawer-width-right);width:calc(100% - var(--mud-drawer-width-left) - var(--mud-drawer-width-right))}}@media(min-width: 1920px){.mud-drawer-open-responsive-xl-left.mud-drawer-left-clipped-never .mud-appbar{margin-left:var(--mud-drawer-width-left);width:calc(100% - var(--mud-drawer-width-left))}.mud-drawer-open-responsive-xl-right.mud-drawer-right-clipped-never .mud-appbar{margin-right:var(--mud-drawer-width-right);width:calc(100% - var(--mud-drawer-width-right))}.mud-drawer-open-responsive-xl-left.mud-drawer-left-clipped-never.mud-drawer-open-responsive-xl-right.mud-drawer-right-clipped-never .mud-appbar{margin-left:var(--mud-drawer-width-left);margin-right:var(--mud-drawer-width-right);width:calc(100% - var(--mud-drawer-width-left) - var(--mud-drawer-width-right))}}@media(min-width: 2560px){.mud-drawer-open-responsive-xxl-left.mud-drawer-left-clipped-never .mud-appbar{margin-left:var(--mud-drawer-width-left);width:calc(100% - var(--mud-drawer-width-left))}.mud-drawer-open-responsive-xxl-right.mud-drawer-right-clipped-never .mud-appbar{margin-right:var(--mud-drawer-width-right);width:calc(100% - var(--mud-drawer-width-right))}.mud-drawer-open-responsive-xxl-left.mud-drawer-left-clipped-never.mud-drawer-open-responsive-xxl-right.mud-drawer-right-clipped-never .mud-appbar{margin-left:var(--mud-drawer-width-left);margin-right:var(--mud-drawer-width-right);width:calc(100% - var(--mud-drawer-width-left) - var(--mud-drawer-width-right))}}.mud-drawer-open-persistent-left.mud-drawer-left-clipped-never .mud-appbar{margin-left:var(--mud-drawer-width-left);width:calc(100% - var(--mud-drawer-width-left))}.mud-drawer-open-persistent-right.mud-drawer-right-clipped-never .mud-appbar{margin-right:var(--mud-drawer-width-right);width:calc(100% - var(--mud-drawer-width-right))}.mud-drawer-open-persistent-left.mud-drawer-left-clipped-never.mud-drawer-open-persistent-right.mud-drawer-right-clipped-never .mud-appbar{margin-left:var(--mud-drawer-width-left);margin-right:var(--mud-drawer-width-right);width:calc(100% - var(--mud-drawer-width-left) - var(--mud-drawer-width-right))}@media(min-width: 0px){.mud-drawer-open-mini-xs-left.mud-drawer-left-clipped-never .mud-appbar{margin-left:var(--mud-drawer-width-left);width:calc(100% - var(--mud-drawer-width-left))}.mud-drawer-open-mini-xs-right.mud-drawer-right-clipped-never .mud-appbar{margin-right:var(--mud-drawer-width-right);width:calc(100% - var(--mud-drawer-width-right))}.mud-drawer-open-mini-xs-left.mud-drawer-left-clipped-never.mud-drawer-open-mini-xs-right.mud-drawer-right-clipped-never .mud-appbar{margin-left:var(--mud-drawer-width-left);margin-right:var(--mud-drawer-width-right);width:calc(100% - var(--mud-drawer-width-left) - var(--mud-drawer-width-right))}}@media(min-width: 600px){.mud-drawer-open-mini-sm-left.mud-drawer-left-clipped-never .mud-appbar{margin-left:var(--mud-drawer-width-left);width:calc(100% - var(--mud-drawer-width-left))}.mud-drawer-open-mini-sm-right.mud-drawer-right-clipped-never .mud-appbar{margin-right:var(--mud-drawer-width-right);width:calc(100% - var(--mud-drawer-width-right))}.mud-drawer-open-mini-sm-left.mud-drawer-left-clipped-never.mud-drawer-open-mini-sm-right.mud-drawer-right-clipped-never .mud-appbar{margin-left:var(--mud-drawer-width-left);margin-right:var(--mud-drawer-width-right);width:calc(100% - var(--mud-drawer-width-left) - var(--mud-drawer-width-right))}}@media(min-width: 960px){.mud-drawer-open-mini-md-left.mud-drawer-left-clipped-never .mud-appbar{margin-left:var(--mud-drawer-width-left);width:calc(100% - var(--mud-drawer-width-left))}.mud-drawer-open-mini-md-right.mud-drawer-right-clipped-never .mud-appbar{margin-right:var(--mud-drawer-width-right);width:calc(100% - var(--mud-drawer-width-right))}.mud-drawer-open-mini-md-left.mud-drawer-left-clipped-never.mud-drawer-open-mini-md-right.mud-drawer-right-clipped-never .mud-appbar{margin-left:var(--mud-drawer-width-left);margin-right:var(--mud-drawer-width-right);width:calc(100% - var(--mud-drawer-width-left) - var(--mud-drawer-width-right))}}@media(min-width: 1280px){.mud-drawer-open-mini-lg-left.mud-drawer-left-clipped-never .mud-appbar{margin-left:var(--mud-drawer-width-left);width:calc(100% - var(--mud-drawer-width-left))}.mud-drawer-open-mini-lg-right.mud-drawer-right-clipped-never .mud-appbar{margin-right:var(--mud-drawer-width-right);width:calc(100% - var(--mud-drawer-width-right))}.mud-drawer-open-mini-lg-left.mud-drawer-left-clipped-never.mud-drawer-open-mini-lg-right.mud-drawer-right-clipped-never .mud-appbar{margin-left:var(--mud-drawer-width-left);margin-right:var(--mud-drawer-width-right);width:calc(100% - var(--mud-drawer-width-left) - var(--mud-drawer-width-right))}}@media(min-width: 1920px){.mud-drawer-open-mini-xl-left.mud-drawer-left-clipped-never .mud-appbar{margin-left:var(--mud-drawer-width-left);width:calc(100% - var(--mud-drawer-width-left))}.mud-drawer-open-mini-xl-right.mud-drawer-right-clipped-never .mud-appbar{margin-right:var(--mud-drawer-width-right);width:calc(100% - var(--mud-drawer-width-right))}.mud-drawer-open-mini-xl-left.mud-drawer-left-clipped-never.mud-drawer-open-mini-xl-right.mud-drawer-right-clipped-never .mud-appbar{margin-left:var(--mud-drawer-width-left);margin-right:var(--mud-drawer-width-right);width:calc(100% - var(--mud-drawer-width-left) - var(--mud-drawer-width-right))}}@media(min-width: 2560px){.mud-drawer-open-mini-xxl-left.mud-drawer-left-clipped-never .mud-appbar{margin-left:var(--mud-drawer-width-left);width:calc(100% - var(--mud-drawer-width-left))}.mud-drawer-open-mini-xxl-right.mud-drawer-right-clipped-never .mud-appbar{margin-right:var(--mud-drawer-width-right);width:calc(100% - var(--mud-drawer-width-right))}.mud-drawer-open-mini-xxl-left.mud-drawer-left-clipped-never.mud-drawer-open-mini-xxl-right.mud-drawer-right-clipped-never .mud-appbar{margin-left:var(--mud-drawer-width-left);margin-right:var(--mud-drawer-width-right);width:calc(100% - var(--mud-drawer-width-left) - var(--mud-drawer-width-right))}}.mud-drawer-close-mini-xs-left.mud-drawer-left-clipped-never .mud-appbar{margin-left:var(--mud-drawer-width-mini-left);width:calc(100% - var(--mud-drawer-width-mini-left))}.mud-drawer-close-mini-xs-right.mud-drawer-right-clipped-never .mud-appbar{margin-right:var(--mud-drawer-width-mini-right);width:calc(100% - var(--mud-drawer-width-mini-right))}.mud-drawer-close-mini-xs-left.mud-drawer-left-clipped-never.mud-drawer-close-mini-xs-right.mud-drawer-right-clipped-never .mud-appbar{margin-left:var(--mud-drawer-width-mini-left);margin-right:var(--mud-drawer-width-mini-right);width:calc(100% - var(--mud-drawer-width-mini-left) - var(--mud-drawer-width-mini-right))}@media(max-width: 0px){.mud-drawer-close-mini-xs-left.mud-drawer-left-clipped-docked .mud-appbar{margin-left:var(--mud-drawer-width-mini-left);width:calc(100% - var(--mud-drawer-width-mini-left))}.mud-drawer-close-mini-xs-right.mud-drawer-right-clipped-docked .mud-appbar{margin-right:var(--mud-drawer-width-mini-right);width:calc(100% - var(--mud-drawer-width-mini-right))}.mud-drawer-close-mini-xs-left.mud-drawer-left-clipped-docked.mud-drawer-close-mini-xs-right.mud-drawer-right-clipped-docked .mud-appbar{margin-left:var(--mud-drawer-width-mini-left);margin-right:var(--mud-drawer-width-mini-right);width:calc(100% - var(--mud-drawer-width-mini-left) - var(--mud-drawer-width-mini-right))}}.mud-drawer-close-mini-sm-left.mud-drawer-left-clipped-never .mud-appbar{margin-left:var(--mud-drawer-width-mini-left);width:calc(100% - var(--mud-drawer-width-mini-left))}.mud-drawer-close-mini-sm-right.mud-drawer-right-clipped-never .mud-appbar{margin-right:var(--mud-drawer-width-mini-right);width:calc(100% - var(--mud-drawer-width-mini-right))}.mud-drawer-close-mini-sm-left.mud-drawer-left-clipped-never.mud-drawer-close-mini-sm-right.mud-drawer-right-clipped-never .mud-appbar{margin-left:var(--mud-drawer-width-mini-left);margin-right:var(--mud-drawer-width-mini-right);width:calc(100% - var(--mud-drawer-width-mini-left) - var(--mud-drawer-width-mini-right))}@media(max-width: 600px){.mud-drawer-close-mini-sm-left.mud-drawer-left-clipped-docked .mud-appbar{margin-left:var(--mud-drawer-width-mini-left);width:calc(100% - var(--mud-drawer-width-mini-left))}.mud-drawer-close-mini-sm-right.mud-drawer-right-clipped-docked .mud-appbar{margin-right:var(--mud-drawer-width-mini-right);width:calc(100% - var(--mud-drawer-width-mini-right))}.mud-drawer-close-mini-sm-left.mud-drawer-left-clipped-docked.mud-drawer-close-mini-sm-right.mud-drawer-right-clipped-docked .mud-appbar{margin-left:var(--mud-drawer-width-mini-left);margin-right:var(--mud-drawer-width-mini-right);width:calc(100% - var(--mud-drawer-width-mini-left) - var(--mud-drawer-width-mini-right))}}.mud-drawer-close-mini-md-left.mud-drawer-left-clipped-never .mud-appbar{margin-left:var(--mud-drawer-width-mini-left);width:calc(100% - var(--mud-drawer-width-mini-left))}.mud-drawer-close-mini-md-right.mud-drawer-right-clipped-never .mud-appbar{margin-right:var(--mud-drawer-width-mini-right);width:calc(100% - var(--mud-drawer-width-mini-right))}.mud-drawer-close-mini-md-left.mud-drawer-left-clipped-never.mud-drawer-close-mini-md-right.mud-drawer-right-clipped-never .mud-appbar{margin-left:var(--mud-drawer-width-mini-left);margin-right:var(--mud-drawer-width-mini-right);width:calc(100% - var(--mud-drawer-width-mini-left) - var(--mud-drawer-width-mini-right))}@media(max-width: 960px){.mud-drawer-close-mini-md-left.mud-drawer-left-clipped-docked .mud-appbar{margin-left:var(--mud-drawer-width-mini-left);width:calc(100% - var(--mud-drawer-width-mini-left))}.mud-drawer-close-mini-md-right.mud-drawer-right-clipped-docked .mud-appbar{margin-right:var(--mud-drawer-width-mini-right);width:calc(100% - var(--mud-drawer-width-mini-right))}.mud-drawer-close-mini-md-left.mud-drawer-left-clipped-docked.mud-drawer-close-mini-md-right.mud-drawer-right-clipped-docked .mud-appbar{margin-left:var(--mud-drawer-width-mini-left);margin-right:var(--mud-drawer-width-mini-right);width:calc(100% - var(--mud-drawer-width-mini-left) - var(--mud-drawer-width-mini-right))}}.mud-drawer-close-mini-lg-left.mud-drawer-left-clipped-never .mud-appbar{margin-left:var(--mud-drawer-width-mini-left);width:calc(100% - var(--mud-drawer-width-mini-left))}.mud-drawer-close-mini-lg-right.mud-drawer-right-clipped-never .mud-appbar{margin-right:var(--mud-drawer-width-mini-right);width:calc(100% - var(--mud-drawer-width-mini-right))}.mud-drawer-close-mini-lg-left.mud-drawer-left-clipped-never.mud-drawer-close-mini-lg-right.mud-drawer-right-clipped-never .mud-appbar{margin-left:var(--mud-drawer-width-mini-left);margin-right:var(--mud-drawer-width-mini-right);width:calc(100% - var(--mud-drawer-width-mini-left) - var(--mud-drawer-width-mini-right))}@media(max-width: 1280px){.mud-drawer-close-mini-lg-left.mud-drawer-left-clipped-docked .mud-appbar{margin-left:var(--mud-drawer-width-mini-left);width:calc(100% - var(--mud-drawer-width-mini-left))}.mud-drawer-close-mini-lg-right.mud-drawer-right-clipped-docked .mud-appbar{margin-right:var(--mud-drawer-width-mini-right);width:calc(100% - var(--mud-drawer-width-mini-right))}.mud-drawer-close-mini-lg-left.mud-drawer-left-clipped-docked.mud-drawer-close-mini-lg-right.mud-drawer-right-clipped-docked .mud-appbar{margin-left:var(--mud-drawer-width-mini-left);margin-right:var(--mud-drawer-width-mini-right);width:calc(100% - var(--mud-drawer-width-mini-left) - var(--mud-drawer-width-mini-right))}}.mud-drawer-close-mini-xl-left.mud-drawer-left-clipped-never .mud-appbar{margin-left:var(--mud-drawer-width-mini-left);width:calc(100% - var(--mud-drawer-width-mini-left))}.mud-drawer-close-mini-xl-right.mud-drawer-right-clipped-never .mud-appbar{margin-right:var(--mud-drawer-width-mini-right);width:calc(100% - var(--mud-drawer-width-mini-right))}.mud-drawer-close-mini-xl-left.mud-drawer-left-clipped-never.mud-drawer-close-mini-xl-right.mud-drawer-right-clipped-never .mud-appbar{margin-left:var(--mud-drawer-width-mini-left);margin-right:var(--mud-drawer-width-mini-right);width:calc(100% - var(--mud-drawer-width-mini-left) - var(--mud-drawer-width-mini-right))}@media(max-width: 1920px){.mud-drawer-close-mini-xl-left.mud-drawer-left-clipped-docked .mud-appbar{margin-left:var(--mud-drawer-width-mini-left);width:calc(100% - var(--mud-drawer-width-mini-left))}.mud-drawer-close-mini-xl-right.mud-drawer-right-clipped-docked .mud-appbar{margin-right:var(--mud-drawer-width-mini-right);width:calc(100% - var(--mud-drawer-width-mini-right))}.mud-drawer-close-mini-xl-left.mud-drawer-left-clipped-docked.mud-drawer-close-mini-xl-right.mud-drawer-right-clipped-docked .mud-appbar{margin-left:var(--mud-drawer-width-mini-left);margin-right:var(--mud-drawer-width-mini-right);width:calc(100% - var(--mud-drawer-width-mini-left) - var(--mud-drawer-width-mini-right))}}.mud-drawer-close-mini-xxl-left.mud-drawer-left-clipped-never .mud-appbar{margin-left:var(--mud-drawer-width-mini-left);width:calc(100% - var(--mud-drawer-width-mini-left))}.mud-drawer-close-mini-xxl-right.mud-drawer-right-clipped-never .mud-appbar{margin-right:var(--mud-drawer-width-mini-right);width:calc(100% - var(--mud-drawer-width-mini-right))}.mud-drawer-close-mini-xxl-left.mud-drawer-left-clipped-never.mud-drawer-close-mini-xxl-right.mud-drawer-right-clipped-never .mud-appbar{margin-left:var(--mud-drawer-width-mini-left);margin-right:var(--mud-drawer-width-mini-right);width:calc(100% - var(--mud-drawer-width-mini-left) - var(--mud-drawer-width-mini-right))}@media(max-width: 2560px){.mud-drawer-close-mini-xxl-left.mud-drawer-left-clipped-docked .mud-appbar{margin-left:var(--mud-drawer-width-mini-left);width:calc(100% - var(--mud-drawer-width-mini-left))}.mud-drawer-close-mini-xxl-right.mud-drawer-right-clipped-docked .mud-appbar{margin-right:var(--mud-drawer-width-mini-right);width:calc(100% - var(--mud-drawer-width-mini-right))}.mud-drawer-close-mini-xxl-left.mud-drawer-left-clipped-docked.mud-drawer-close-mini-xxl-right.mud-drawer-right-clipped-docked .mud-appbar{margin-left:var(--mud-drawer-width-mini-left);margin-right:var(--mud-drawer-width-mini-right);width:calc(100% - var(--mud-drawer-width-mini-left) - var(--mud-drawer-width-mini-right))}}.mud-drawer{display:flex;flex:0 0 auto;outline:0;position:fixed;z-index:var(--mud-zindex-drawer);overflow-y:auto;flex-direction:column;color:var(--mud-palette-drawer-text);background-color:var(--mud-palette-drawer-background);--mud-drawer-content-height: 0}.mud-drawer .mud-drawer-content{height:100%;max-height:100%;display:flex;flex:0 0 auto;flex-direction:column}.mud-drawer:not(.mud-drawer-fixed){position:absolute}@media(max-width: -1px){.mud-drawer.mud-drawer-mini.mud-drawer-xs:not(.mud-drawer--closed),.mud-drawer.mud-drawer-responsive.mud-drawer-xs{z-index:calc(var(--mud-zindex-appbar) + 2)}.mud-drawer.mud-drawer-mini.mud-drawer-xs:not(.mud-drawer--closed).mud-drawer--initial:not(.mud-drawer-mini),.mud-drawer.mud-drawer-responsive.mud-drawer-xs.mud-drawer--initial:not(.mud-drawer-mini){display:none !important}}@media(max-width: 599px){.mud-drawer.mud-drawer-mini.mud-drawer-sm:not(.mud-drawer--closed),.mud-drawer.mud-drawer-responsive.mud-drawer-sm{z-index:calc(var(--mud-zindex-appbar) + 2)}.mud-drawer.mud-drawer-mini.mud-drawer-sm:not(.mud-drawer--closed).mud-drawer--initial:not(.mud-drawer-mini),.mud-drawer.mud-drawer-responsive.mud-drawer-sm.mud-drawer--initial:not(.mud-drawer-mini){display:none !important}}@media(max-width: 959px){.mud-drawer.mud-drawer-mini.mud-drawer-md:not(.mud-drawer--closed),.mud-drawer.mud-drawer-responsive.mud-drawer-md{z-index:calc(var(--mud-zindex-appbar) + 2)}.mud-drawer.mud-drawer-mini.mud-drawer-md:not(.mud-drawer--closed).mud-drawer--initial:not(.mud-drawer-mini),.mud-drawer.mud-drawer-responsive.mud-drawer-md.mud-drawer--initial:not(.mud-drawer-mini){display:none !important}}@media(max-width: 1279px){.mud-drawer.mud-drawer-mini.mud-drawer-lg:not(.mud-drawer--closed),.mud-drawer.mud-drawer-responsive.mud-drawer-lg{z-index:calc(var(--mud-zindex-appbar) + 2)}.mud-drawer.mud-drawer-mini.mud-drawer-lg:not(.mud-drawer--closed).mud-drawer--initial:not(.mud-drawer-mini),.mud-drawer.mud-drawer-responsive.mud-drawer-lg.mud-drawer--initial:not(.mud-drawer-mini){display:none !important}}@media(max-width: 1919px){.mud-drawer.mud-drawer-mini.mud-drawer-xl:not(.mud-drawer--closed),.mud-drawer.mud-drawer-responsive.mud-drawer-xl{z-index:calc(var(--mud-zindex-appbar) + 2)}.mud-drawer.mud-drawer-mini.mud-drawer-xl:not(.mud-drawer--closed).mud-drawer--initial:not(.mud-drawer-mini),.mud-drawer.mud-drawer-responsive.mud-drawer-xl.mud-drawer--initial:not(.mud-drawer-mini){display:none !important}}@media(max-width: 2559px){.mud-drawer.mud-drawer-mini.mud-drawer-xxl:not(.mud-drawer--closed),.mud-drawer.mud-drawer-responsive.mud-drawer-xxl{z-index:calc(var(--mud-zindex-appbar) + 2)}.mud-drawer.mud-drawer-mini.mud-drawer-xxl:not(.mud-drawer--closed).mud-drawer--initial:not(.mud-drawer-mini),.mud-drawer.mud-drawer-responsive.mud-drawer-xxl.mud-drawer--initial:not(.mud-drawer-mini){display:none !important}}.mud-drawer.mud-drawer-responsive,.mud-drawer.mud-drawer-persistent{height:100%}.mud-drawer.mud-drawer-responsive.mud-drawer-pos-left,.mud-drawer.mud-drawer-persistent.mud-drawer-pos-left{right:auto;width:var(--mud-drawer-width, var(--mud-drawer-width-left))}.mud-drawer.mud-drawer-responsive.mud-drawer-pos-left.mud-drawer--open,.mud-drawer.mud-drawer-persistent.mud-drawer-pos-left.mud-drawer--open{left:0}.mud-drawer.mud-drawer-responsive.mud-drawer-pos-left.mud-drawer--open:not(.mud-drawer--initial),.mud-drawer.mud-drawer-persistent.mud-drawer-pos-left.mud-drawer--open:not(.mud-drawer--initial){animation:mud-drawer-slide-in-left 225ms cubic-bezier(0, 0, 0.2, 1)}.mud-drawer.mud-drawer-responsive.mud-drawer-pos-left.mud-drawer--closed,.mud-drawer.mud-drawer-persistent.mud-drawer-pos-left.mud-drawer--closed{box-shadow:none;left:calc(-1*var(--mud-drawer-width, var(--mud-drawer-width-left)))}.mud-drawer.mud-drawer-responsive.mud-drawer-pos-left.mud-drawer--closed:not(.mud-drawer--initial),.mud-drawer.mud-drawer-persistent.mud-drawer-pos-left.mud-drawer--closed:not(.mud-drawer--initial){animation:mud-drawer-slide-out-left 225ms cubic-bezier(0, 0, 0.2, 1)}.mud-drawer.mud-drawer-responsive.mud-drawer-pos-right,.mud-drawer.mud-drawer-persistent.mud-drawer-pos-right{left:auto;width:var(--mud-drawer-width, var(--mud-drawer-width-right))}.mud-drawer.mud-drawer-responsive.mud-drawer-pos-right.mud-drawer--open,.mud-drawer.mud-drawer-persistent.mud-drawer-pos-right.mud-drawer--open{right:0}.mud-drawer.mud-drawer-responsive.mud-drawer-pos-right.mud-drawer--open:not(.mud-drawer--initial),.mud-drawer.mud-drawer-persistent.mud-drawer-pos-right.mud-drawer--open:not(.mud-drawer--initial){animation:mud-drawer-slide-in-right 225ms cubic-bezier(0, 0, 0.2, 1)}.mud-drawer.mud-drawer-responsive.mud-drawer-pos-right.mud-drawer--closed,.mud-drawer.mud-drawer-persistent.mud-drawer-pos-right.mud-drawer--closed{box-shadow:none;right:calc(-1*var(--mud-drawer-width, var(--mud-drawer-width-right)))}.mud-drawer.mud-drawer-responsive.mud-drawer-pos-right.mud-drawer--closed:not(.mud-drawer--initial),.mud-drawer.mud-drawer-persistent.mud-drawer-pos-right.mud-drawer--closed:not(.mud-drawer--initial){animation:mud-drawer-slide-out-right 225ms cubic-bezier(0, 0, 0.2, 1)}.mud-drawer.mud-drawer-mini{height:100%;transition:width 225ms cubic-bezier(0, 0, 0.2, 1)}.mud-drawer.mud-drawer-mini.mud-drawer-pos-left{left:0;right:auto}.mud-drawer.mud-drawer-mini.mud-drawer-pos-left.mud-drawer--closed{width:var(--mud-drawer-width-mini-left)}.mud-drawer.mud-drawer-mini.mud-drawer-pos-left.mud-drawer--open{width:var(--mud-drawer-width-left)}.mud-drawer.mud-drawer-mini.mud-drawer-pos-right{left:auto;right:0}.mud-drawer.mud-drawer-mini.mud-drawer-pos-right.mud-drawer--closed{width:var(--mud-drawer-width-mini-right)}.mud-drawer.mud-drawer-mini.mud-drawer-pos-right.mud-drawer--open{width:var(--mud-drawer-width-right)}.mud-drawer.mud-drawer-temporary{margin:0 !important;z-index:calc(var(--mud-zindex-appbar) + 2);transition:transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms}.mud-drawer.mud-drawer-temporary.mud-drawer-pos-left{right:auto;top:0;height:100%;width:var(--mud-drawer-width, var(--mud-drawer-width-left))}.mud-drawer.mud-drawer-temporary.mud-drawer-pos-left.mud-drawer--open{left:0}.mud-drawer.mud-drawer-temporary.mud-drawer-pos-left.mud-drawer--open:not(.mud-drawer--initial){animation:mud-drawer-slide-in-left 225ms cubic-bezier(0, 0, 0.2, 1) forwards}.mud-drawer.mud-drawer-temporary.mud-drawer-pos-left.mud-drawer--closed{left:calc(-1*var(--mud-drawer-width, var(--mud-drawer-width-left)))}.mud-drawer.mud-drawer-temporary.mud-drawer-pos-left.mud-drawer--closed:not(.mud-drawer--initial){animation:mud-drawer-slide-out-left 225ms cubic-bezier(0, 0, 0.2, 1) forwards}.mud-drawer.mud-drawer-temporary.mud-drawer-pos-right{left:auto;top:0;height:100%;width:var(--mud-drawer-width, var(--mud-drawer-width-right))}.mud-drawer.mud-drawer-temporary.mud-drawer-pos-right.mud-drawer--open{right:0}.mud-drawer.mud-drawer-temporary.mud-drawer-pos-right.mud-drawer--open:not(.mud-drawer--initial){animation:mud-drawer-slide-in-right 225ms cubic-bezier(0, 0, 0.2, 1) forwards}.mud-drawer.mud-drawer-temporary.mud-drawer-pos-right.mud-drawer--closed{right:calc(-1*var(--mud-drawer-width, var(--mud-drawer-width-right)))}.mud-drawer.mud-drawer-temporary.mud-drawer-pos-right.mud-drawer--closed:not(.mud-drawer--initial){animation:mud-drawer-slide-out-right 225ms cubic-bezier(0, 0, 0.2, 1) forwards}.mud-drawer.mud-drawer-temporary.mud-drawer-pos-bottom{left:0;top:auto;width:100%}.mud-drawer.mud-drawer-temporary.mud-drawer-pos-bottom.mud-drawer--open{bottom:0}.mud-drawer.mud-drawer-temporary.mud-drawer-pos-bottom.mud-drawer--open:not(.mud-drawer--initial){animation:mud-drawer-slide-in-bottom 225ms cubic-bezier(0, 0, 0.2, 1) 0ms 1}.mud-drawer.mud-drawer-temporary.mud-drawer-pos-bottom.mud-drawer--closed{bottom:calc(-1*var(--mud-drawer-content-height))}.mud-drawer.mud-drawer-temporary.mud-drawer-pos-bottom.mud-drawer--closed:not(.mud-drawer--initial){animation:mud-drawer-slide-out-bottom 225ms cubic-bezier(0, 0, 0.2, 1) 0ms 1}.mud-drawer.mud-drawer-temporary.mud-drawer-pos-top{left:0;bottom:auto;width:100%}.mud-drawer.mud-drawer-temporary.mud-drawer-pos-top.mud-drawer--open{top:0}.mud-drawer.mud-drawer-temporary.mud-drawer-pos-top.mud-drawer--open:not(.mud-drawer--initial){animation:mud-drawer-slide-in-top 225ms cubic-bezier(0, 0, 0.2, 1) 0ms 1}.mud-drawer.mud-drawer-temporary.mud-drawer-pos-top.mud-drawer--closed{top:calc(-1*var(--mud-drawer-content-height))}.mud-drawer.mud-drawer-temporary.mud-drawer-pos-top.mud-drawer--closed:not(.mud-drawer--initial){animation:mud-drawer-slide-out-top 225ms cubic-bezier(0, 0, 0.2, 1) 0ms 1}.mud-drawer.mud-drawer-mini.mud-drawer-pos-left~div:not(.mud-main-content),.mud-drawer.mud-drawer-mini.mud-drawer-pos-right~div:not(.mud-main-content),.mud-drawer.mud-drawer-persistent.mud-drawer-pos-left~div:not(.mud-main-content),.mud-drawer.mud-drawer-persistent.mud-drawer-pos-right~div:not(.mud-main-content){transition:margin 225ms cubic-bezier(0, 0, 0.2, 1) 0ms}.mud-drawer.mud-drawer-mini.mud-drawer-pos-left.mud-drawer--open~div:not(.mud-main-content),.mud-drawer.mud-drawer-persistent.mud-drawer-pos-left.mud-drawer--open~div:not(.mud-main-content){margin-left:var(--mud-drawer-width, var(--mud-drawer-width-left))}.mud-drawer.mud-drawer-mini.mud-drawer-pos-right.mud-drawer--open~div:not(.mud-main-content),.mud-drawer.mud-drawer-persistent.mud-drawer-pos-right.mud-drawer--open~div:not(.mud-main-content){margin-right:var(--mud-drawer-width, var(--mud-drawer-width-right))}.mud-drawer.mud-drawer-mini.mud-drawer-pos-left.mud-drawer--closed~div:not(.mud-main-content){margin-left:var(--mud-drawer-width, var(--mud-drawer-width-mini-left))}.mud-drawer.mud-drawer-mini.mud-drawer-pos-right.mud-drawer--closed~div:not(.mud-main-content){margin-right:var(--mud-drawer-width, var(--mud-drawer-width-mini-right))}.mud-drawer-header{display:flex;min-height:var(--mud-appbar-height);padding:12px 24px 12px 24px}.mud-drawer-header.mud-drawer-header-dense{min-height:calc(var(--mud-appbar-height) - var(--mud-appbar-height)/4);padding:8px 24px 8px 24px}.mud-drawer-fixed.mud-drawer-mini.mud-drawer-clipped-always,.mud-drawer-fixed.mud-drawer-persistent:not(.mud-drawer-clipped-never),.mud-drawer-fixed.mud-drawer-responsive.mud-drawer-clipped-always,.mud-drawer-fixed.mud-drawer-temporary.mud-drawer-clipped-always{top:var(--mud-appbar-height);height:calc(100% - var(--mud-appbar-height))}@media(max-width: 599px)and (orientation: landscape){.mud-drawer-fixed.mud-drawer-mini.mud-drawer-clipped-always,.mud-drawer-fixed.mud-drawer-persistent:not(.mud-drawer-clipped-never),.mud-drawer-fixed.mud-drawer-responsive.mud-drawer-clipped-always,.mud-drawer-fixed.mud-drawer-temporary.mud-drawer-clipped-always{top:calc(var(--mud-appbar-height) - var(--mud-appbar-height)/4);height:calc(100% - (var(--mud-appbar-height) - var(--mud-appbar-height)/4))}}@media(max-width: 599px)and (orientation: portrait){.mud-drawer-fixed.mud-drawer-mini.mud-drawer-clipped-always,.mud-drawer-fixed.mud-drawer-persistent:not(.mud-drawer-clipped-never),.mud-drawer-fixed.mud-drawer-responsive.mud-drawer-clipped-always,.mud-drawer-fixed.mud-drawer-temporary.mud-drawer-clipped-always{top:calc(var(--mud-appbar-height) - var(--mud-appbar-height)/8);height:calc(100% - (var(--mud-appbar-height) - var(--mud-appbar-height)/8))}}@media(min-width: 0px){.mud-drawer-fixed.mud-drawer-mini.mud-drawer-clipped-docked.mud-drawer-xs,.mud-drawer-fixed.mud-drawer-responsive.mud-drawer-clipped-docked.mud-drawer-xs{top:var(--mud-appbar-height);height:calc(100% - var(--mud-appbar-height))}}@media(min-width: 0px)and (max-width: 599px)and (orientation: landscape){.mud-drawer-fixed.mud-drawer-mini.mud-drawer-clipped-docked.mud-drawer-xs,.mud-drawer-fixed.mud-drawer-responsive.mud-drawer-clipped-docked.mud-drawer-xs{top:calc(var(--mud-appbar-height) - var(--mud-appbar-height) - var(--mud-appbar-height)/4);height:calc(100% - var(--mud-appbar-height) + var(--mud-appbar-height) - var(--mud-appbar-height)/4)}}@media(min-width: 0px)and (max-width: 599px)and (orientation: portrait){.mud-drawer-fixed.mud-drawer-mini.mud-drawer-clipped-docked.mud-drawer-xs,.mud-drawer-fixed.mud-drawer-responsive.mud-drawer-clipped-docked.mud-drawer-xs{top:calc(var(--mud-appbar-height) - var(--mud-appbar-height)/8);height:calc(100% - var(--mud-appbar-height)/8)}}@media(min-width: 600px){.mud-drawer-fixed.mud-drawer-mini.mud-drawer-clipped-docked.mud-drawer-sm,.mud-drawer-fixed.mud-drawer-responsive.mud-drawer-clipped-docked.mud-drawer-sm{top:var(--mud-appbar-height);height:calc(100% - var(--mud-appbar-height))}}@media(min-width: 600px)and (max-width: 599px)and (orientation: landscape){.mud-drawer-fixed.mud-drawer-mini.mud-drawer-clipped-docked.mud-drawer-sm,.mud-drawer-fixed.mud-drawer-responsive.mud-drawer-clipped-docked.mud-drawer-sm{top:calc(var(--mud-appbar-height) - var(--mud-appbar-height) - var(--mud-appbar-height)/4);height:calc(100% - var(--mud-appbar-height) + var(--mud-appbar-height) - var(--mud-appbar-height)/4)}}@media(min-width: 600px)and (max-width: 599px)and (orientation: portrait){.mud-drawer-fixed.mud-drawer-mini.mud-drawer-clipped-docked.mud-drawer-sm,.mud-drawer-fixed.mud-drawer-responsive.mud-drawer-clipped-docked.mud-drawer-sm{top:calc(var(--mud-appbar-height) - var(--mud-appbar-height)/8);height:calc(100% - var(--mud-appbar-height)/8)}}@media(min-width: 960px){.mud-drawer-fixed.mud-drawer-mini.mud-drawer-clipped-docked.mud-drawer-md,.mud-drawer-fixed.mud-drawer-responsive.mud-drawer-clipped-docked.mud-drawer-md{top:var(--mud-appbar-height);height:calc(100% - var(--mud-appbar-height))}}@media(min-width: 960px)and (max-width: 599px)and (orientation: landscape){.mud-drawer-fixed.mud-drawer-mini.mud-drawer-clipped-docked.mud-drawer-md,.mud-drawer-fixed.mud-drawer-responsive.mud-drawer-clipped-docked.mud-drawer-md{top:calc(var(--mud-appbar-height) - var(--mud-appbar-height) - var(--mud-appbar-height)/4);height:calc(100% - var(--mud-appbar-height) + var(--mud-appbar-height) - var(--mud-appbar-height)/4)}}@media(min-width: 960px)and (max-width: 599px)and (orientation: portrait){.mud-drawer-fixed.mud-drawer-mini.mud-drawer-clipped-docked.mud-drawer-md,.mud-drawer-fixed.mud-drawer-responsive.mud-drawer-clipped-docked.mud-drawer-md{top:calc(var(--mud-appbar-height) - var(--mud-appbar-height)/8);height:calc(100% - var(--mud-appbar-height)/8)}}@media(min-width: 1280px){.mud-drawer-fixed.mud-drawer-mini.mud-drawer-clipped-docked.mud-drawer-lg,.mud-drawer-fixed.mud-drawer-responsive.mud-drawer-clipped-docked.mud-drawer-lg{top:var(--mud-appbar-height);height:calc(100% - var(--mud-appbar-height))}}@media(min-width: 1280px)and (max-width: 599px)and (orientation: landscape){.mud-drawer-fixed.mud-drawer-mini.mud-drawer-clipped-docked.mud-drawer-lg,.mud-drawer-fixed.mud-drawer-responsive.mud-drawer-clipped-docked.mud-drawer-lg{top:calc(var(--mud-appbar-height) - var(--mud-appbar-height) - var(--mud-appbar-height)/4);height:calc(100% - var(--mud-appbar-height) + var(--mud-appbar-height) - var(--mud-appbar-height)/4)}}@media(min-width: 1280px)and (max-width: 599px)and (orientation: portrait){.mud-drawer-fixed.mud-drawer-mini.mud-drawer-clipped-docked.mud-drawer-lg,.mud-drawer-fixed.mud-drawer-responsive.mud-drawer-clipped-docked.mud-drawer-lg{top:calc(var(--mud-appbar-height) - var(--mud-appbar-height)/8);height:calc(100% - var(--mud-appbar-height)/8)}}@media(min-width: 1920px){.mud-drawer-fixed.mud-drawer-mini.mud-drawer-clipped-docked.mud-drawer-xl,.mud-drawer-fixed.mud-drawer-responsive.mud-drawer-clipped-docked.mud-drawer-xl{top:var(--mud-appbar-height);height:calc(100% - var(--mud-appbar-height))}}@media(min-width: 1920px)and (max-width: 599px)and (orientation: landscape){.mud-drawer-fixed.mud-drawer-mini.mud-drawer-clipped-docked.mud-drawer-xl,.mud-drawer-fixed.mud-drawer-responsive.mud-drawer-clipped-docked.mud-drawer-xl{top:calc(var(--mud-appbar-height) - var(--mud-appbar-height) - var(--mud-appbar-height)/4);height:calc(100% - var(--mud-appbar-height) + var(--mud-appbar-height) - var(--mud-appbar-height)/4)}}@media(min-width: 1920px)and (max-width: 599px)and (orientation: portrait){.mud-drawer-fixed.mud-drawer-mini.mud-drawer-clipped-docked.mud-drawer-xl,.mud-drawer-fixed.mud-drawer-responsive.mud-drawer-clipped-docked.mud-drawer-xl{top:calc(var(--mud-appbar-height) - var(--mud-appbar-height)/8);height:calc(100% - var(--mud-appbar-height)/8)}}@media(min-width: 2560px){.mud-drawer-fixed.mud-drawer-mini.mud-drawer-clipped-docked.mud-drawer-xxl,.mud-drawer-fixed.mud-drawer-responsive.mud-drawer-clipped-docked.mud-drawer-xxl{top:var(--mud-appbar-height);height:calc(100% - var(--mud-appbar-height))}}@media(min-width: 2560px)and (max-width: 599px)and (orientation: landscape){.mud-drawer-fixed.mud-drawer-mini.mud-drawer-clipped-docked.mud-drawer-xxl,.mud-drawer-fixed.mud-drawer-responsive.mud-drawer-clipped-docked.mud-drawer-xxl{top:calc(var(--mud-appbar-height) - var(--mud-appbar-height) - var(--mud-appbar-height)/4);height:calc(100% - var(--mud-appbar-height) + var(--mud-appbar-height) - var(--mud-appbar-height)/4)}}@media(min-width: 2560px)and (max-width: 599px)and (orientation: portrait){.mud-drawer-fixed.mud-drawer-mini.mud-drawer-clipped-docked.mud-drawer-xxl,.mud-drawer-fixed.mud-drawer-responsive.mud-drawer-clipped-docked.mud-drawer-xxl{top:calc(var(--mud-appbar-height) - var(--mud-appbar-height)/8);height:calc(100% - var(--mud-appbar-height)/8)}}.mud-appbar-dense~.mud-drawer-fixed.mud-drawer-mini:not(.mud-drawer-clipped-never),.mud-appbar-dense~.mud-drawer-fixed.mud-drawer-persistent:not(.mud-drawer-clipped-never),.mud-appbar-dense~.mud-drawer-fixed.mud-drawer-responsive.mud-drawer-clipped-always,.mud-appbar-dense~.mud-drawer-fixed.mud-drawer-temporary.mud-drawer-clipped-always{top:calc(var(--mud-appbar-height) - var(--mud-appbar-height)/4);height:calc(100% - var(--mud-appbar-height) + var(--mud-appbar-height)/4)}@media(min-width: 0px){.mud-appbar-dense~.mud-drawer-fixed.mud-drawer-responsive.mud-drawer-clipped-docked.mud-drawer-xs{top:calc(var(--mud-appbar-height) - var(--mud-appbar-height)/4);height:calc(100% - var(--mud-appbar-height) + var(--mud-appbar-height)/4)}}@media(min-width: 600px){.mud-appbar-dense~.mud-drawer-fixed.mud-drawer-responsive.mud-drawer-clipped-docked.mud-drawer-sm{top:calc(var(--mud-appbar-height) - var(--mud-appbar-height)/4);height:calc(100% - var(--mud-appbar-height) + var(--mud-appbar-height)/4)}}@media(min-width: 960px){.mud-appbar-dense~.mud-drawer-fixed.mud-drawer-responsive.mud-drawer-clipped-docked.mud-drawer-md{top:calc(var(--mud-appbar-height) - var(--mud-appbar-height)/4);height:calc(100% - var(--mud-appbar-height) + var(--mud-appbar-height)/4)}}@media(min-width: 1280px){.mud-appbar-dense~.mud-drawer-fixed.mud-drawer-responsive.mud-drawer-clipped-docked.mud-drawer-lg{top:calc(var(--mud-appbar-height) - var(--mud-appbar-height)/4);height:calc(100% - var(--mud-appbar-height) + var(--mud-appbar-height)/4)}}@media(min-width: 1920px){.mud-appbar-dense~.mud-drawer-fixed.mud-drawer-responsive.mud-drawer-clipped-docked.mud-drawer-xl{top:calc(var(--mud-appbar-height) - var(--mud-appbar-height)/4);height:calc(100% - var(--mud-appbar-height) + var(--mud-appbar-height)/4)}}@media(min-width: 2560px){.mud-appbar-dense~.mud-drawer-fixed.mud-drawer-responsive.mud-drawer-clipped-docked.mud-drawer-xxl{top:calc(var(--mud-appbar-height) - var(--mud-appbar-height)/4);height:calc(100% - var(--mud-appbar-height) + var(--mud-appbar-height)/4)}}.mud-drawer-overlay{display:none}@media(max-width: -1px){.mud-drawer-overlay.mud-drawer-overlay--open.mud-drawer-overlay-responsive.mud-drawer-overlay-xs{display:block}.mud-drawer-overlay.mud-drawer-overlay--open.mud-drawer-overlay-responsive.mud-drawer-overlay-xs.mud-drawer--initial{display:none}}@media(max-width: -1px){.mud-drawer-overlay.mud-drawer-overlay--open.mud-drawer-overlay-mini.mud-drawer-overlay-xs{display:block}}@media(max-width: 599px){.mud-drawer-overlay.mud-drawer-overlay--open.mud-drawer-overlay-responsive.mud-drawer-overlay-sm{display:block}.mud-drawer-overlay.mud-drawer-overlay--open.mud-drawer-overlay-responsive.mud-drawer-overlay-sm.mud-drawer--initial{display:none}}@media(max-width: 599px){.mud-drawer-overlay.mud-drawer-overlay--open.mud-drawer-overlay-mini.mud-drawer-overlay-sm{display:block}}@media(max-width: 959px){.mud-drawer-overlay.mud-drawer-overlay--open.mud-drawer-overlay-responsive.mud-drawer-overlay-md{display:block}.mud-drawer-overlay.mud-drawer-overlay--open.mud-drawer-overlay-responsive.mud-drawer-overlay-md.mud-drawer--initial{display:none}}@media(max-width: 959px){.mud-drawer-overlay.mud-drawer-overlay--open.mud-drawer-overlay-mini.mud-drawer-overlay-md{display:block}}@media(max-width: 1279px){.mud-drawer-overlay.mud-drawer-overlay--open.mud-drawer-overlay-responsive.mud-drawer-overlay-lg{display:block}.mud-drawer-overlay.mud-drawer-overlay--open.mud-drawer-overlay-responsive.mud-drawer-overlay-lg.mud-drawer--initial{display:none}}@media(max-width: 1279px){.mud-drawer-overlay.mud-drawer-overlay--open.mud-drawer-overlay-mini.mud-drawer-overlay-lg{display:block}}@media(max-width: 1919px){.mud-drawer-overlay.mud-drawer-overlay--open.mud-drawer-overlay-responsive.mud-drawer-overlay-xl{display:block}.mud-drawer-overlay.mud-drawer-overlay--open.mud-drawer-overlay-responsive.mud-drawer-overlay-xl.mud-drawer--initial{display:none}}@media(max-width: 1919px){.mud-drawer-overlay.mud-drawer-overlay--open.mud-drawer-overlay-mini.mud-drawer-overlay-xl{display:block}}@media(max-width: 2559px){.mud-drawer-overlay.mud-drawer-overlay--open.mud-drawer-overlay-responsive.mud-drawer-overlay-xxl{display:block}.mud-drawer-overlay.mud-drawer-overlay--open.mud-drawer-overlay-responsive.mud-drawer-overlay-xxl.mud-drawer--initial{display:none}}@media(max-width: 2559px){.mud-drawer-overlay.mud-drawer-overlay--open.mud-drawer-overlay-mini.mud-drawer-overlay-xxl{display:block}}.mud-drawer-overlay.mud-drawer-overlay--open.mud-drawer-overlay-temporary{display:block}@keyframes mud-drawer-slide-in-left{from{left:calc(-1*var(--mud-drawer-width, var(--mud-drawer-width-left)))}}@keyframes mud-drawer-slide-out-left{from{left:0}}@keyframes mud-drawer-slide-in-right{from{right:calc(-1*var(--mud-drawer-width, var(--mud-drawer-width-right)))}}@keyframes mud-drawer-slide-out-right{from{right:0}}@keyframes mud-drawer-slide-in-bottom{from{bottom:calc(-1*var(--mud-drawer-content-height))}}@keyframes mud-drawer-slide-out-bottom{from{bottom:0}}@keyframes mud-drawer-slide-in-top{from{top:calc(-1*var(--mud-drawer-content-height))}}@keyframes mud-drawer-slide-out-top{from{top:0}}.mud-main-content{margin:0;flex:1 1 auto;padding-top:calc(var(--mud-appbar-height) - var(--mud-appbar-height)/8);transition:margin 225ms cubic-bezier(0, 0, 0.2, 1) 0ms}@media(min-width: 0px)and (orientation: landscape){.mud-main-content{padding-top:calc(var(--mud-appbar-height) - var(--mud-appbar-height)/4)}}@media(min-width: 600px){.mud-main-content{padding-top:var(--mud-appbar-height)}}.mud-appbar-dense~.mud-main-content{padding-top:calc(var(--mud-appbar-height) - var(--mud-appbar-height)/4)}@media(min-width: 0px){.mud-drawer-open-responsive-xs-left .mud-main-content{margin-left:var(--mud-drawer-width-left)}.mud-drawer-open-responsive-xs-right .mud-main-content{margin-right:var(--mud-drawer-width-right)}.mud-drawer-open-responsive-xs-left.mud-drawer-open-responsive-xs-right .mud-main-content{margin-right:var(--mud-drawer-width-right);margin-left:var(--mud-drawer-width-left)}}@media(min-width: 600px){.mud-drawer-open-responsive-sm-left .mud-main-content{margin-left:var(--mud-drawer-width-left)}.mud-drawer-open-responsive-sm-right .mud-main-content{margin-right:var(--mud-drawer-width-right)}.mud-drawer-open-responsive-sm-left.mud-drawer-open-responsive-sm-right .mud-main-content{margin-right:var(--mud-drawer-width-right);margin-left:var(--mud-drawer-width-left)}}@media(min-width: 960px){.mud-drawer-open-responsive-md-left .mud-main-content{margin-left:var(--mud-drawer-width-left)}.mud-drawer-open-responsive-md-right .mud-main-content{margin-right:var(--mud-drawer-width-right)}.mud-drawer-open-responsive-md-left.mud-drawer-open-responsive-md-right .mud-main-content{margin-right:var(--mud-drawer-width-right);margin-left:var(--mud-drawer-width-left)}}@media(min-width: 1280px){.mud-drawer-open-responsive-lg-left .mud-main-content{margin-left:var(--mud-drawer-width-left)}.mud-drawer-open-responsive-lg-right .mud-main-content{margin-right:var(--mud-drawer-width-right)}.mud-drawer-open-responsive-lg-left.mud-drawer-open-responsive-lg-right .mud-main-content{margin-right:var(--mud-drawer-width-right);margin-left:var(--mud-drawer-width-left)}}@media(min-width: 1920px){.mud-drawer-open-responsive-xl-left .mud-main-content{margin-left:var(--mud-drawer-width-left)}.mud-drawer-open-responsive-xl-right .mud-main-content{margin-right:var(--mud-drawer-width-right)}.mud-drawer-open-responsive-xl-left.mud-drawer-open-responsive-xl-right .mud-main-content{margin-right:var(--mud-drawer-width-right);margin-left:var(--mud-drawer-width-left)}}@media(min-width: 2560px){.mud-drawer-open-responsive-xxl-left .mud-main-content{margin-left:var(--mud-drawer-width-left)}.mud-drawer-open-responsive-xxl-right .mud-main-content{margin-right:var(--mud-drawer-width-right)}.mud-drawer-open-responsive-xxl-left.mud-drawer-open-responsive-xxl-right .mud-main-content{margin-right:var(--mud-drawer-width-right);margin-left:var(--mud-drawer-width-left)}}.mud-drawer-open-persistent-left:not(.mud-drawer-open-persistent-right) .mud-main-content{margin-left:var(--mud-drawer-width-left)}.mud-drawer-open-persistent-right:not(.mud-drawer-open-persistent-left) .mud-main-content{margin-right:var(--mud-drawer-width-right)}.mud-drawer-open-persistent-left.mud-drawer-open-persistent-right .mud-main-content{margin-right:var(--mud-drawer-width-right);margin-left:var(--mud-drawer-width-left)}.mud-drawer-open-mini-xs-left .mud-main-content{margin-left:var(--mud-drawer-width-left)}.mud-drawer-open-mini-xs-right .mud-main-content{margin-right:var(--mud-drawer-width-right)}.mud-drawer-open-mini-xs-left.mud-drawer-open-mini-xs-right .mud-main-content{margin-right:var(--mud-drawer-width-right);margin-left:var(--mud-drawer-width-left)}.mud-drawer-open-mini-sm-left .mud-main-content{margin-left:var(--mud-drawer-width-left)}.mud-drawer-open-mini-sm-right .mud-main-content{margin-right:var(--mud-drawer-width-right)}.mud-drawer-open-mini-sm-left.mud-drawer-open-mini-sm-right .mud-main-content{margin-right:var(--mud-drawer-width-right);margin-left:var(--mud-drawer-width-left)}.mud-drawer-open-mini-md-left .mud-main-content{margin-left:var(--mud-drawer-width-left)}.mud-drawer-open-mini-md-right .mud-main-content{margin-right:var(--mud-drawer-width-right)}.mud-drawer-open-mini-md-left.mud-drawer-open-mini-md-right .mud-main-content{margin-right:var(--mud-drawer-width-right);margin-left:var(--mud-drawer-width-left)}.mud-drawer-open-mini-lg-left .mud-main-content{margin-left:var(--mud-drawer-width-left)}.mud-drawer-open-mini-lg-right .mud-main-content{margin-right:var(--mud-drawer-width-right)}.mud-drawer-open-mini-lg-left.mud-drawer-open-mini-lg-right .mud-main-content{margin-right:var(--mud-drawer-width-right);margin-left:var(--mud-drawer-width-left)}.mud-drawer-open-mini-xl-left .mud-main-content{margin-left:var(--mud-drawer-width-left)}.mud-drawer-open-mini-xl-right .mud-main-content{margin-right:var(--mud-drawer-width-right)}.mud-drawer-open-mini-xl-left.mud-drawer-open-mini-xl-right .mud-main-content{margin-right:var(--mud-drawer-width-right);margin-left:var(--mud-drawer-width-left)}.mud-drawer-open-mini-xxl-left .mud-main-content{margin-left:var(--mud-drawer-width-left)}.mud-drawer-open-mini-xxl-right .mud-main-content{margin-right:var(--mud-drawer-width-right)}.mud-drawer-open-mini-xxl-left.mud-drawer-open-mini-xxl-right .mud-main-content{margin-right:var(--mud-drawer-width-right);margin-left:var(--mud-drawer-width-left)}.mud-drawer-open-mini-none-left .mud-main-content,.mud-drawer-open-mini-always-left .mud-main-content{margin-left:var(--mud-drawer-width-left)}.mud-drawer-open-mini-none-right .mud-main-content,.mud-drawer-open-mini-always-right .mud-main-content{margin-right:var(--mud-drawer-width-right)}.mud-drawer-open-mini-none-left.mud-drawer-open-mini-none,.mud-drawer-open-mini-none .mud-drawer-open-mini-always-right .mud-main-content,.mud-drawer-open-mini-always-left.mud-drawer-open-mini-none,.mud-drawer-open-mini-always .mud-drawer-open-mini-always-right .mud-main-content{margin-right:var(--mud-drawer-width-right);margin-left:var(--mud-drawer-width-left)}.mud-drawer-close-mini-xs-left .mud-main-content{margin-left:var(--mud-drawer-width-mini-left)}.mud-drawer-close-mini-xs-right .mud-main-content{margin-right:var(--mud-drawer-width-mini-right)}.mud-drawer-close-mini-xs-left.mud-drawer-close-mini-xs-right .mud-main-content{margin-right:var(--mud-drawer-width-mini-right);margin-left:var(--mud-drawer-width-mini-left)}.mud-drawer-close-mini-sm-left .mud-main-content{margin-left:var(--mud-drawer-width-mini-left)}.mud-drawer-close-mini-sm-right .mud-main-content{margin-right:var(--mud-drawer-width-mini-right)}.mud-drawer-close-mini-sm-left.mud-drawer-close-mini-sm-right .mud-main-content{margin-right:var(--mud-drawer-width-mini-right);margin-left:var(--mud-drawer-width-mini-left)}.mud-drawer-close-mini-md-left .mud-main-content{margin-left:var(--mud-drawer-width-mini-left)}.mud-drawer-close-mini-md-right .mud-main-content{margin-right:var(--mud-drawer-width-mini-right)}.mud-drawer-close-mini-md-left.mud-drawer-close-mini-md-right .mud-main-content{margin-right:var(--mud-drawer-width-mini-right);margin-left:var(--mud-drawer-width-mini-left)}.mud-drawer-close-mini-lg-left .mud-main-content{margin-left:var(--mud-drawer-width-mini-left)}.mud-drawer-close-mini-lg-right .mud-main-content{margin-right:var(--mud-drawer-width-mini-right)}.mud-drawer-close-mini-lg-left.mud-drawer-close-mini-lg-right .mud-main-content{margin-right:var(--mud-drawer-width-mini-right);margin-left:var(--mud-drawer-width-mini-left)}.mud-drawer-close-mini-xl-left .mud-main-content{margin-left:var(--mud-drawer-width-mini-left)}.mud-drawer-close-mini-xl-right .mud-main-content{margin-right:var(--mud-drawer-width-mini-right)}.mud-drawer-close-mini-xl-left.mud-drawer-close-mini-xl-right .mud-main-content{margin-right:var(--mud-drawer-width-mini-right);margin-left:var(--mud-drawer-width-mini-left)}.mud-drawer-close-mini-xxl-left .mud-main-content{margin-left:var(--mud-drawer-width-mini-left)}.mud-drawer-close-mini-xxl-right .mud-main-content{margin-right:var(--mud-drawer-width-mini-right)}.mud-drawer-close-mini-xxl-left.mud-drawer-close-mini-xxl-right .mud-main-content{margin-right:var(--mud-drawer-width-mini-right);margin-left:var(--mud-drawer-width-mini-left)}.mud-drawer-close-mini-none-left .mud-main-content,.mud-drawer-close-mini-always-left .mud-main-content{margin-left:var(--mud-drawer-width-mini-left)}.mud-drawer-close-mini-none-right .mud-main-content,.mud-drawer-close-mini-always-right .mud-main-content{margin-right:var(--mud-drawer-width-mini-right)}.mud-drawer-close-mini-none-left.mud-drawer-close-mini-none,.mud-drawer-close-mini-none .mud-drawer-close-mini-always-right .mud-main-content,.mud-drawer-close-mini-always-left.mud-drawer-close-mini-none,.mud-drawer-close-mini-always .mud-drawer-close-mini-always-right .mud-main-content{margin-right:var(--mud-drawer-width-mini-right);margin-left:var(--mud-drawer-width-mini-left)}.mud-container{width:100%;display:block;box-sizing:border-box;margin-left:auto;margin-right:auto}.mud-container--gutters{padding-left:16px;padding-right:16px}@media(min-width: 600px){.mud-container--gutters{padding-left:24px;padding-right:24px}}@media(min-width: 600px){.mud-container-fixed{max-width:600px}}@media(min-width: 960px){.mud-container-fixed{max-width:960px}}@media(min-width: 1280px){.mud-container-fixed{max-width:1280px}}@media(min-width: 1920px){.mud-container-fixed{max-width:1920px}}@media(min-width: 2560px){.mud-container-fixed{max-width:2560px}}@media(min-width: 0px){.mud-container-maxwidth-xs{max-width:444px}}@media(min-width: 600px){.mud-container-maxwidth-sm{max-width:600px}}@media(min-width: 960px){.mud-container-maxwidth-md{max-width:960px}}@media(min-width: 1280px){.mud-container-maxwidth-lg{max-width:1280px}}@media(min-width: 1920px){.mud-container-maxwidth-xl{max-width:1920px}}@media(min-width: 2560px){.mud-container-maxwidth-xxl{max-width:2560px}}.scroll-locked{padding-right:8px;overflow:hidden}.scroll-locked .mud-layout .mud-appbar{padding-right:8px}.scroll-locked .mud-layout .mud-main-content .mud-scroll-to-top{padding-right:8px}.scroll-locked-no-padding{overflow:hidden}@-moz-document url-prefix(){.scroll-locked{padding-right:17px}.scroll-locked .mud-layout .mud-appbar{padding-right:17px}.scroll-locked .mud-layout .mud-main-content .mud-scroll-to-top{padding-right:17px}}.mud-scroll-to-top{position:fixed;cursor:pointer;z-index:100}.mud-scroll-to-top.visible{bottom:16px;right:16px;opacity:1;transition:transform .5s;flex:1}.mud-scroll-to-top.hidden{bottom:16px;right:16px;opacity:0;transition:all .5s;visibility:hidden;transform:scale(0) rotate(180deg);flex:0}.mud-scroll-to-top:after{content:"";background:rgba(0,0,0,0);top:0;bottom:0;left:0;right:0;position:absolute;z-index:var(--mud-zindex-tooltip)}.red{background-color:#f44336}.red-text{color:#f44336}.red.lighten-5{background-color:#ffebee}.red-text.text-lighten-5{color:#ffebee}.red.lighten-4{background-color:#ffcdd2}.red-text.text-lighten-4{color:#ffcdd2}.red.lighten-3{background-color:#ef9a9a}.red-text.text-lighten-3{color:#ef9a9a}.red.lighten-2{background-color:#e57373}.red-text.text-lighten-2{color:#e57373}.red.lighten-1{background-color:#ef5350}.red-text.text-lighten-1{color:#ef5350}.red.darken-1{background-color:#e53935}.red-text.text-darken-1{color:#e53935}.red.darken-2{background-color:#d32f2f}.red-text.text-darken-2{color:#d32f2f}.red.darken-3{background-color:#c62828}.red-text.text-darken-3{color:#c62828}.red.darken-4{background-color:#b71c1c}.red-text.text-darken-4{color:#b71c1c}.red.accent-1{background-color:#ff8a80}.red-text.text-accent-1{color:#ff8a80}.red.accent-2{background-color:#ff5252}.red-text.text-accent-2{color:#ff5252}.red.accent-3{background-color:#ff1744}.red-text.text-accent-3{color:#ff1744}.red.accent-4{background-color:#d50000}.red-text.text-accent-4{color:#d50000}.pink{background-color:#e91e63}.pink-text{color:#e91e63}.pink.lighten-5{background-color:#fce4ec}.pink-text.text-lighten-5{color:#fce4ec}.pink.lighten-4{background-color:#f8bbd0}.pink-text.text-lighten-4{color:#f8bbd0}.pink.lighten-3{background-color:#f48fb1}.pink-text.text-lighten-3{color:#f48fb1}.pink.lighten-2{background-color:#f06292}.pink-text.text-lighten-2{color:#f06292}.pink.lighten-1{background-color:#ec407a}.pink-text.text-lighten-1{color:#ec407a}.pink.darken-1{background-color:#d81b60}.pink-text.text-darken-1{color:#d81b60}.pink.darken-2{background-color:#c2185b}.pink-text.text-darken-2{color:#c2185b}.pink.darken-3{background-color:#ad1457}.pink-text.text-darken-3{color:#ad1457}.pink.darken-4{background-color:#880e4f}.pink-text.text-darken-4{color:#880e4f}.pink.accent-1{background-color:#ff80ab}.pink-text.text-accent-1{color:#ff80ab}.pink.accent-2{background-color:#ff4081}.pink-text.text-accent-2{color:#ff4081}.pink.accent-3{background-color:#f50057}.pink-text.text-accent-3{color:#f50057}.pink.accent-4{background-color:#c51162}.pink-text.text-accent-4{color:#c51162}.purple{background-color:#9c27b0}.purple-text{color:#9c27b0}.purple.lighten-5{background-color:#f3e5f5}.purple-text.text-lighten-5{color:#f3e5f5}.purple.lighten-4{background-color:#e1bee7}.purple-text.text-lighten-4{color:#e1bee7}.purple.lighten-3{background-color:#ce93d8}.purple-text.text-lighten-3{color:#ce93d8}.purple.lighten-2{background-color:#ba68c8}.purple-text.text-lighten-2{color:#ba68c8}.purple.lighten-1{background-color:#ab47bc}.purple-text.text-lighten-1{color:#ab47bc}.purple.darken-1{background-color:#8e24aa}.purple-text.text-darken-1{color:#8e24aa}.purple.darken-2{background-color:#7b1fa2}.purple-text.text-darken-2{color:#7b1fa2}.purple.darken-3{background-color:#6a1b9a}.purple-text.text-darken-3{color:#6a1b9a}.purple.darken-4{background-color:#4a148c}.purple-text.text-darken-4{color:#4a148c}.purple.accent-1{background-color:#ea80fc}.purple-text.text-accent-1{color:#ea80fc}.purple.accent-2{background-color:#e040fb}.purple-text.text-accent-2{color:#e040fb}.purple.accent-3{background-color:#d500f9}.purple-text.text-accent-3{color:#d500f9}.purple.accent-4{background-color:#a0f}.purple-text.text-accent-4{color:#a0f}.deep-purple{background-color:#673ab7}.deep-purple-text{color:#673ab7}.deep-purple.lighten-5{background-color:#ede7f6}.deep-purple-text.text-lighten-5{color:#ede7f6}.deep-purple.lighten-4{background-color:#d1c4e9}.deep-purple-text.text-lighten-4{color:#d1c4e9}.deep-purple.lighten-3{background-color:#b39ddb}.deep-purple-text.text-lighten-3{color:#b39ddb}.deep-purple.lighten-2{background-color:#9575cd}.deep-purple-text.text-lighten-2{color:#9575cd}.deep-purple.lighten-1{background-color:#7e57c2}.deep-purple-text.text-lighten-1{color:#7e57c2}.deep-purple.darken-1{background-color:#5e35b1}.deep-purple-text.text-darken-1{color:#5e35b1}.deep-purple.darken-2{background-color:#512da8}.deep-purple-text.text-darken-2{color:#512da8}.deep-purple.darken-3{background-color:#4527a0}.deep-purple-text.text-darken-3{color:#4527a0}.deep-purple.darken-4{background-color:#311b92}.deep-purple-text.text-darken-4{color:#311b92}.deep-purple.accent-1{background-color:#b388ff}.deep-purple-text.text-accent-1{color:#b388ff}.deep-purple.accent-2{background-color:#7c4dff}.deep-purple-text.text-accent-2{color:#7c4dff}.deep-purple.accent-3{background-color:#651fff}.deep-purple-text.text-accent-3{color:#651fff}.deep-purple.accent-4{background-color:#6200ea}.deep-purple-text.text-accent-4{color:#6200ea}.indigo{background-color:#3f51b5}.indigo-text{color:#3f51b5}.indigo.lighten-5{background-color:#e8eaf6}.indigo-text.text-lighten-5{color:#e8eaf6}.indigo.lighten-4{background-color:#c5cae9}.indigo-text.text-lighten-4{color:#c5cae9}.indigo.lighten-3{background-color:#9fa8da}.indigo-text.text-lighten-3{color:#9fa8da}.indigo.lighten-2{background-color:#7986cb}.indigo-text.text-lighten-2{color:#7986cb}.indigo.lighten-1{background-color:#5c6bc0}.indigo-text.text-lighten-1{color:#5c6bc0}.indigo.darken-1{background-color:#3949ab}.indigo-text.text-darken-1{color:#3949ab}.indigo.darken-2{background-color:#303f9f}.indigo-text.text-darken-2{color:#303f9f}.indigo.darken-3{background-color:#283593}.indigo-text.text-darken-3{color:#283593}.indigo.darken-4{background-color:#1a237e}.indigo-text.text-darken-4{color:#1a237e}.indigo.accent-1{background-color:#8c9eff}.indigo-text.text-accent-1{color:#8c9eff}.indigo.accent-2{background-color:#536dfe}.indigo-text.text-accent-2{color:#536dfe}.indigo.accent-3{background-color:#3d5afe}.indigo-text.text-accent-3{color:#3d5afe}.indigo.accent-4{background-color:#304ffe}.indigo-text.text-accent-4{color:#304ffe}.blue{background-color:#2196f3}.blue-text{color:#2196f3}.blue.lighten-5{background-color:#e3f2fd}.blue-text.text-lighten-5{color:#e3f2fd}.blue.lighten-4{background-color:#bbdefb}.blue-text.text-lighten-4{color:#bbdefb}.blue.lighten-3{background-color:#90caf9}.blue-text.text-lighten-3{color:#90caf9}.blue.lighten-2{background-color:#64b5f6}.blue-text.text-lighten-2{color:#64b5f6}.blue.lighten-1{background-color:#42a5f5}.blue-text.text-lighten-1{color:#42a5f5}.blue.darken-1{background-color:#1e88e5}.blue-text.text-darken-1{color:#1e88e5}.blue.darken-2{background-color:#1976d2}.blue-text.text-darken-2{color:#1976d2}.blue.darken-3{background-color:#1565c0}.blue-text.text-darken-3{color:#1565c0}.blue.darken-4{background-color:#0d47a1}.blue-text.text-darken-4{color:#0d47a1}.blue.accent-1{background-color:#82b1ff}.blue-text.text-accent-1{color:#82b1ff}.blue.accent-2{background-color:#448aff}.blue-text.text-accent-2{color:#448aff}.blue.accent-3{background-color:#2979ff}.blue-text.text-accent-3{color:#2979ff}.blue.accent-4{background-color:#2962ff}.blue-text.text-accent-4{color:#2962ff}.light-blue{background-color:#03a9f4}.light-blue-text{color:#03a9f4}.light-blue.lighten-5{background-color:#e1f5fe}.light-blue-text.text-lighten-5{color:#e1f5fe}.light-blue.lighten-4{background-color:#b3e5fc}.light-blue-text.text-lighten-4{color:#b3e5fc}.light-blue.lighten-3{background-color:#81d4fa}.light-blue-text.text-lighten-3{color:#81d4fa}.light-blue.lighten-2{background-color:#4fc3f7}.light-blue-text.text-lighten-2{color:#4fc3f7}.light-blue.lighten-1{background-color:#29b6f6}.light-blue-text.text-lighten-1{color:#29b6f6}.light-blue.darken-1{background-color:#039be5}.light-blue-text.text-darken-1{color:#039be5}.light-blue.darken-2{background-color:#0288d1}.light-blue-text.text-darken-2{color:#0288d1}.light-blue.darken-3{background-color:#0277bd}.light-blue-text.text-darken-3{color:#0277bd}.light-blue.darken-4{background-color:#01579b}.light-blue-text.text-darken-4{color:#01579b}.light-blue.accent-1{background-color:#80d8ff}.light-blue-text.text-accent-1{color:#80d8ff}.light-blue.accent-2{background-color:#40c4ff}.light-blue-text.text-accent-2{color:#40c4ff}.light-blue.accent-3{background-color:#00b0ff}.light-blue-text.text-accent-3{color:#00b0ff}.light-blue.accent-4{background-color:#0091ea}.light-blue-text.text-accent-4{color:#0091ea}.cyan{background-color:#00bcd4}.cyan-text{color:#00bcd4}.cyan.lighten-5{background-color:#e0f7fa}.cyan-text.text-lighten-5{color:#e0f7fa}.cyan.lighten-4{background-color:#b2ebf2}.cyan-text.text-lighten-4{color:#b2ebf2}.cyan.lighten-3{background-color:#80deea}.cyan-text.text-lighten-3{color:#80deea}.cyan.lighten-2{background-color:#4dd0e1}.cyan-text.text-lighten-2{color:#4dd0e1}.cyan.lighten-1{background-color:#26c6da}.cyan-text.text-lighten-1{color:#26c6da}.cyan.darken-1{background-color:#00acc1}.cyan-text.text-darken-1{color:#00acc1}.cyan.darken-2{background-color:#0097a7}.cyan-text.text-darken-2{color:#0097a7}.cyan.darken-3{background-color:#00838f}.cyan-text.text-darken-3{color:#00838f}.cyan.darken-4{background-color:#006064}.cyan-text.text-darken-4{color:#006064}.cyan.accent-1{background-color:#84ffff}.cyan-text.text-accent-1{color:#84ffff}.cyan.accent-2{background-color:#18ffff}.cyan-text.text-accent-2{color:#18ffff}.cyan.accent-3{background-color:#00e5ff}.cyan-text.text-accent-3{color:#00e5ff}.cyan.accent-4{background-color:#00b8d4}.cyan-text.text-accent-4{color:#00b8d4}.teal{background-color:#009688}.teal-text{color:#009688}.teal.lighten-5{background-color:#e0f2f1}.teal-text.text-lighten-5{color:#e0f2f1}.teal.lighten-4{background-color:#b2dfdb}.teal-text.text-lighten-4{color:#b2dfdb}.teal.lighten-3{background-color:#80cbc4}.teal-text.text-lighten-3{color:#80cbc4}.teal.lighten-2{background-color:#4db6ac}.teal-text.text-lighten-2{color:#4db6ac}.teal.lighten-1{background-color:#26a69a}.teal-text.text-lighten-1{color:#26a69a}.teal.darken-1{background-color:#00897b}.teal-text.text-darken-1{color:#00897b}.teal.darken-2{background-color:#00796b}.teal-text.text-darken-2{color:#00796b}.teal.darken-3{background-color:#00695c}.teal-text.text-darken-3{color:#00695c}.teal.darken-4{background-color:#004d40}.teal-text.text-darken-4{color:#004d40}.teal.accent-1{background-color:#a7ffeb}.teal-text.text-accent-1{color:#a7ffeb}.teal.accent-2{background-color:#64ffda}.teal-text.text-accent-2{color:#64ffda}.teal.accent-3{background-color:#1de9b6}.teal-text.text-accent-3{color:#1de9b6}.teal.accent-4{background-color:#00bfa5}.teal-text.text-accent-4{color:#00bfa5}.green{background-color:#4caf50}.green-text{color:#4caf50}.green.lighten-5{background-color:#e8f5e9}.green-text.text-lighten-5{color:#e8f5e9}.green.lighten-4{background-color:#c8e6c9}.green-text.text-lighten-4{color:#c8e6c9}.green.lighten-3{background-color:#a5d6a7}.green-text.text-lighten-3{color:#a5d6a7}.green.lighten-2{background-color:#81c784}.green-text.text-lighten-2{color:#81c784}.green.lighten-1{background-color:#66bb6a}.green-text.text-lighten-1{color:#66bb6a}.green.darken-1{background-color:#43a047}.green-text.text-darken-1{color:#43a047}.green.darken-2{background-color:#388e3c}.green-text.text-darken-2{color:#388e3c}.green.darken-3{background-color:#2e7d32}.green-text.text-darken-3{color:#2e7d32}.green.darken-4{background-color:#1b5e20}.green-text.text-darken-4{color:#1b5e20}.green.accent-1{background-color:#b9f6ca}.green-text.text-accent-1{color:#b9f6ca}.green.accent-2{background-color:#69f0ae}.green-text.text-accent-2{color:#69f0ae}.green.accent-3{background-color:#00e676}.green-text.text-accent-3{color:#00e676}.green.accent-4{background-color:#00c853}.green-text.text-accent-4{color:#00c853}.light-green{background-color:#8bc34a}.light-green-text{color:#8bc34a}.light-green.lighten-5{background-color:#f1f8e9}.light-green-text.text-lighten-5{color:#f1f8e9}.light-green.lighten-4{background-color:#dcedc8}.light-green-text.text-lighten-4{color:#dcedc8}.light-green.lighten-3{background-color:#c5e1a5}.light-green-text.text-lighten-3{color:#c5e1a5}.light-green.lighten-2{background-color:#aed581}.light-green-text.text-lighten-2{color:#aed581}.light-green.lighten-1{background-color:#9ccc65}.light-green-text.text-lighten-1{color:#9ccc65}.light-green.darken-1{background-color:#7cb342}.light-green-text.text-darken-1{color:#7cb342}.light-green.darken-2{background-color:#689f38}.light-green-text.text-darken-2{color:#689f38}.light-green.darken-3{background-color:#558b2f}.light-green-text.text-darken-3{color:#558b2f}.light-green.darken-4{background-color:#33691e}.light-green-text.text-darken-4{color:#33691e}.light-green.accent-1{background-color:#ccff90}.light-green-text.text-accent-1{color:#ccff90}.light-green.accent-2{background-color:#b2ff59}.light-green-text.text-accent-2{color:#b2ff59}.light-green.accent-3{background-color:#76ff03}.light-green-text.text-accent-3{color:#76ff03}.light-green.accent-4{background-color:#64dd17}.light-green-text.text-accent-4{color:#64dd17}.lime{background-color:#cddc39}.lime-text{color:#cddc39}.lime.lighten-5{background-color:#f9fbe7}.lime-text.text-lighten-5{color:#f9fbe7}.lime.lighten-4{background-color:#f0f4c3}.lime-text.text-lighten-4{color:#f0f4c3}.lime.lighten-3{background-color:#e6ee9c}.lime-text.text-lighten-3{color:#e6ee9c}.lime.lighten-2{background-color:#dce775}.lime-text.text-lighten-2{color:#dce775}.lime.lighten-1{background-color:#d4e157}.lime-text.text-lighten-1{color:#d4e157}.lime.darken-1{background-color:#c0ca33}.lime-text.text-darken-1{color:#c0ca33}.lime.darken-2{background-color:#afb42b}.lime-text.text-darken-2{color:#afb42b}.lime.darken-3{background-color:#9e9d24}.lime-text.text-darken-3{color:#9e9d24}.lime.darken-4{background-color:#827717}.lime-text.text-darken-4{color:#827717}.lime.accent-1{background-color:#f4ff81}.lime-text.text-accent-1{color:#f4ff81}.lime.accent-2{background-color:#eeff41}.lime-text.text-accent-2{color:#eeff41}.lime.accent-3{background-color:#c6ff00}.lime-text.text-accent-3{color:#c6ff00}.lime.accent-4{background-color:#aeea00}.lime-text.text-accent-4{color:#aeea00}.yellow{background-color:#ffeb3b}.yellow-text{color:#ffeb3b}.yellow.lighten-5{background-color:#fffde7}.yellow-text.text-lighten-5{color:#fffde7}.yellow.lighten-4{background-color:#fff9c4}.yellow-text.text-lighten-4{color:#fff9c4}.yellow.lighten-3{background-color:#fff59d}.yellow-text.text-lighten-3{color:#fff59d}.yellow.lighten-2{background-color:#fff176}.yellow-text.text-lighten-2{color:#fff176}.yellow.lighten-1{background-color:#ffee58}.yellow-text.text-lighten-1{color:#ffee58}.yellow.darken-1{background-color:#fdd835}.yellow-text.text-darken-1{color:#fdd835}.yellow.darken-2{background-color:#fbc02d}.yellow-text.text-darken-2{color:#fbc02d}.yellow.darken-3{background-color:#f9a825}.yellow-text.text-darken-3{color:#f9a825}.yellow.darken-4{background-color:#f57f17}.yellow-text.text-darken-4{color:#f57f17}.yellow.accent-1{background-color:#ffff8d}.yellow-text.text-accent-1{color:#ffff8d}.yellow.accent-2{background-color:#ff0}.yellow-text.text-accent-2{color:#ff0}.yellow.accent-3{background-color:#ffea00}.yellow-text.text-accent-3{color:#ffea00}.yellow.accent-4{background-color:#ffd600}.yellow-text.text-accent-4{color:#ffd600}.amber{background-color:#ffc107}.amber-text{color:#ffc107}.amber.lighten-5{background-color:#fff8e1}.amber-text.text-lighten-5{color:#fff8e1}.amber.lighten-4{background-color:#ffecb3}.amber-text.text-lighten-4{color:#ffecb3}.amber.lighten-3{background-color:#ffe082}.amber-text.text-lighten-3{color:#ffe082}.amber.lighten-2{background-color:#ffd54f}.amber-text.text-lighten-2{color:#ffd54f}.amber.lighten-1{background-color:#ffca28}.amber-text.text-lighten-1{color:#ffca28}.amber.darken-1{background-color:#ffb300}.amber-text.text-darken-1{color:#ffb300}.amber.darken-2{background-color:#ffa000}.amber-text.text-darken-2{color:#ffa000}.amber.darken-3{background-color:#ff8f00}.amber-text.text-darken-3{color:#ff8f00}.amber.darken-4{background-color:#ff6f00}.amber-text.text-darken-4{color:#ff6f00}.amber.accent-1{background-color:#ffe57f}.amber-text.text-accent-1{color:#ffe57f}.amber.accent-2{background-color:#ffd740}.amber-text.text-accent-2{color:#ffd740}.amber.accent-3{background-color:#ffc400}.amber-text.text-accent-3{color:#ffc400}.amber.accent-4{background-color:#ffab00}.amber-text.text-accent-4{color:#ffab00}.orange{background-color:#ff9800}.orange-text{color:#ff9800}.orange.lighten-5{background-color:#fff3e0}.orange-text.text-lighten-5{color:#fff3e0}.orange.lighten-4{background-color:#ffe0b2}.orange-text.text-lighten-4{color:#ffe0b2}.orange.lighten-3{background-color:#ffcc80}.orange-text.text-lighten-3{color:#ffcc80}.orange.lighten-2{background-color:#ffb74d}.orange-text.text-lighten-2{color:#ffb74d}.orange.lighten-1{background-color:#ffa726}.orange-text.text-lighten-1{color:#ffa726}.orange.darken-1{background-color:#fb8c00}.orange-text.text-darken-1{color:#fb8c00}.orange.darken-2{background-color:#f57c00}.orange-text.text-darken-2{color:#f57c00}.orange.darken-3{background-color:#ef6c00}.orange-text.text-darken-3{color:#ef6c00}.orange.darken-4{background-color:#e65100}.orange-text.text-darken-4{color:#e65100}.orange.accent-1{background-color:#ffd180}.orange-text.text-accent-1{color:#ffd180}.orange.accent-2{background-color:#ffab40}.orange-text.text-accent-2{color:#ffab40}.orange.accent-3{background-color:#ff9100}.orange-text.text-accent-3{color:#ff9100}.orange.accent-4{background-color:#ff6d00}.orange-text.text-accent-4{color:#ff6d00}.deep-orange{background-color:#ff5722}.deep-orange-text{color:#ff5722}.deep-orange.lighten-5{background-color:#fbe9e7}.deep-orange-text.text-lighten-5{color:#fbe9e7}.deep-orange.lighten-4{background-color:#ffccbc}.deep-orange-text.text-lighten-4{color:#ffccbc}.deep-orange.lighten-3{background-color:#ffab91}.deep-orange-text.text-lighten-3{color:#ffab91}.deep-orange.lighten-2{background-color:#ff8a65}.deep-orange-text.text-lighten-2{color:#ff8a65}.deep-orange.lighten-1{background-color:#ff7043}.deep-orange-text.text-lighten-1{color:#ff7043}.deep-orange.darken-1{background-color:#f4511e}.deep-orange-text.text-darken-1{color:#f4511e}.deep-orange.darken-2{background-color:#e64a19}.deep-orange-text.text-darken-2{color:#e64a19}.deep-orange.darken-3{background-color:#d84315}.deep-orange-text.text-darken-3{color:#d84315}.deep-orange.darken-4{background-color:#bf360c}.deep-orange-text.text-darken-4{color:#bf360c}.deep-orange.accent-1{background-color:#ff9e80}.deep-orange-text.text-accent-1{color:#ff9e80}.deep-orange.accent-2{background-color:#ff6e40}.deep-orange-text.text-accent-2{color:#ff6e40}.deep-orange.accent-3{background-color:#ff3d00}.deep-orange-text.text-accent-3{color:#ff3d00}.deep-orange.accent-4{background-color:#dd2c00}.deep-orange-text.text-accent-4{color:#dd2c00}.brown{background-color:#795548}.brown-text{color:#795548}.brown.lighten-5{background-color:#efebe9}.brown-text.text-lighten-5{color:#efebe9}.brown.lighten-4{background-color:#d7ccc8}.brown-text.text-lighten-4{color:#d7ccc8}.brown.lighten-3{background-color:#bcaaa4}.brown-text.text-lighten-3{color:#bcaaa4}.brown.lighten-2{background-color:#a1887f}.brown-text.text-lighten-2{color:#a1887f}.brown.lighten-1{background-color:#8d6e63}.brown-text.text-lighten-1{color:#8d6e63}.brown.darken-1{background-color:#6d4c41}.brown-text.text-darken-1{color:#6d4c41}.brown.darken-2{background-color:#5d4037}.brown-text.text-darken-2{color:#5d4037}.brown.darken-3{background-color:#4e342e}.brown-text.text-darken-3{color:#4e342e}.brown.darken-4{background-color:#3e2723}.brown-text.text-darken-4{color:#3e2723}.blue-gray{background-color:#607d8b}.blue-gray-text{color:#607d8b}.blue-gray.lighten-5{background-color:#eceff1}.blue-gray-text.text-lighten-5{color:#eceff1}.blue-gray.lighten-4{background-color:#cfd8dc}.blue-gray-text.text-lighten-4{color:#cfd8dc}.blue-gray.lighten-3{background-color:#b0bec5}.blue-gray-text.text-lighten-3{color:#b0bec5}.blue-gray.lighten-2{background-color:#90a4ae}.blue-gray-text.text-lighten-2{color:#90a4ae}.blue-gray.lighten-1{background-color:#78909c}.blue-gray-text.text-lighten-1{color:#78909c}.blue-gray.darken-1{background-color:#546e7a}.blue-gray-text.text-darken-1{color:#546e7a}.blue-gray.darken-2{background-color:#455a64}.blue-gray-text.text-darken-2{color:#455a64}.blue-gray.darken-3{background-color:#37474f}.blue-gray-text.text-darken-3{color:#37474f}.blue-gray.darken-4{background-color:#263238}.blue-gray-text.text-darken-4{color:#263238}.gray{background-color:#9e9e9e}.gray-text{color:#9e9e9e}.gray.lighten-5{background-color:#fafafa}.gray-text.text-lighten-5{color:#fafafa}.gray.lighten-4{background-color:#f5f5f5}.gray-text.text-lighten-4{color:#f5f5f5}.gray.lighten-3{background-color:#eee}.gray-text.text-lighten-3{color:#eee}.gray.lighten-2{background-color:#e0e0e0}.gray-text.text-lighten-2{color:#e0e0e0}.gray.lighten-1{background-color:#bdbdbd}.gray-text.text-lighten-1{color:#bdbdbd}.gray.darken-1{background-color:#757575}.gray-text.text-darken-1{color:#757575}.gray.darken-2{background-color:#616161}.gray-text.text-darken-2{color:#616161}.gray.darken-3{background-color:#424242}.gray-text.text-darken-3{color:#424242}.gray.darken-4{background-color:#212121}.gray-text.text-darken-4{color:#212121}.shades.black{background-color:#000}.shades-text.text-black{color:#000}.shades.white{background-color:#fff}.shades-text.text-white{color:#fff}.shades.transparent{background-color:rgba(0,0,0,0)}.shades-text.text-transparent{color:rgba(0,0,0,0)}.mud-ripple{--mud-ripple-offset-x: 0;--mud-ripple-offset-y: 0;position:relative;overflow:hidden}.mud-ripple:after{content:"";display:block;position:absolute;width:100%;height:100%;top:var(--mud-ripple-offset-y);left:var(--mud-ripple-offset-x);pointer-events:none;background-image:radial-gradient(circle, var(--mud-ripple-color) 10%, transparent 10.01%);background-repeat:no-repeat;background-position:50%;transform:scale(20, 20);opacity:0;transition:transform .6s,opacity 1s}.mud-ripple:active:after{transform:scale(0, 0);opacity:var(--mud-ripple-opacity);transition:0s}.mud-ripple:has(.mud-ripple:active):after{opacity:0}.mud-ripple-icon:after,.mud-ripple-checkbox:after,.mud-ripple-switch:after,.mud-ripple-radio:after{transform:scale(14, 14)}.mud-ripple-switch{position:absolute}.mud-rtl{direction:rtl !important}.mud-ltr{direction:ltr !important}.mud-application-layout-rtl .mud-flip-x-rtl{transform:scaleX(-1)} + */.mud-primary{background-color:var(--mud-palette-primary) !important}.mud-primary-text{color:var(--mud-palette-primary) !important;--mud-ripple-color: var(--mud-palette-primary) !important}.mud-primary-hover{background-color:var(--mud-palette-primary-hover) !important}@media(hover: hover)and (pointer: fine){.hover\:mud-primary-hover:hover{background-color:var(--mud-palette-primary-hover) !important}}.hover\:mud-primary-hover:focus-visible,.hover\:mud-primary-hover:active{background-color:var(--mud-palette-primary-hover) !important}.mud-border-primary{border-color:var(--mud-palette-primary) !important}.mud-theme-primary{color:var(--mud-palette-primary-text) !important;background-color:var(--mud-palette-primary) !important}.mud-secondary{background-color:var(--mud-palette-secondary) !important}.mud-secondary-text{color:var(--mud-palette-secondary) !important;--mud-ripple-color: var(--mud-palette-secondary) !important}.mud-secondary-hover{background-color:var(--mud-palette-secondary-hover) !important}@media(hover: hover)and (pointer: fine){.hover\:mud-secondary-hover:hover{background-color:var(--mud-palette-secondary-hover) !important}}.hover\:mud-secondary-hover:focus-visible,.hover\:mud-secondary-hover:active{background-color:var(--mud-palette-secondary-hover) !important}.mud-border-secondary{border-color:var(--mud-palette-secondary) !important}.mud-theme-secondary{color:var(--mud-palette-secondary-text) !important;background-color:var(--mud-palette-secondary) !important}.mud-tertiary{background-color:var(--mud-palette-tertiary) !important}.mud-tertiary-text{color:var(--mud-palette-tertiary) !important;--mud-ripple-color: var(--mud-palette-tertiary) !important}.mud-tertiary-hover{background-color:var(--mud-palette-tertiary-hover) !important}@media(hover: hover)and (pointer: fine){.hover\:mud-tertiary-hover:hover{background-color:var(--mud-palette-tertiary-hover) !important}}.hover\:mud-tertiary-hover:focus-visible,.hover\:mud-tertiary-hover:active{background-color:var(--mud-palette-tertiary-hover) !important}.mud-border-tertiary{border-color:var(--mud-palette-tertiary) !important}.mud-theme-tertiary{color:var(--mud-palette-tertiary-text) !important;background-color:var(--mud-palette-tertiary) !important}.mud-info{background-color:var(--mud-palette-info) !important}.mud-info-text{color:var(--mud-palette-info) !important;--mud-ripple-color: var(--mud-palette-info) !important}.mud-info-hover{background-color:var(--mud-palette-info-hover) !important}@media(hover: hover)and (pointer: fine){.hover\:mud-info-hover:hover{background-color:var(--mud-palette-info-hover) !important}}.hover\:mud-info-hover:focus-visible,.hover\:mud-info-hover:active{background-color:var(--mud-palette-info-hover) !important}.mud-border-info{border-color:var(--mud-palette-info) !important}.mud-theme-info{color:var(--mud-palette-info-text) !important;background-color:var(--mud-palette-info) !important}.mud-success{background-color:var(--mud-palette-success) !important}.mud-success-text{color:var(--mud-palette-success) !important;--mud-ripple-color: var(--mud-palette-success) !important}.mud-success-hover{background-color:var(--mud-palette-success-hover) !important}@media(hover: hover)and (pointer: fine){.hover\:mud-success-hover:hover{background-color:var(--mud-palette-success-hover) !important}}.hover\:mud-success-hover:focus-visible,.hover\:mud-success-hover:active{background-color:var(--mud-palette-success-hover) !important}.mud-border-success{border-color:var(--mud-palette-success) !important}.mud-theme-success{color:var(--mud-palette-success-text) !important;background-color:var(--mud-palette-success) !important}.mud-warning{background-color:var(--mud-palette-warning) !important}.mud-warning-text{color:var(--mud-palette-warning) !important;--mud-ripple-color: var(--mud-palette-warning) !important}.mud-warning-hover{background-color:var(--mud-palette-warning-hover) !important}@media(hover: hover)and (pointer: fine){.hover\:mud-warning-hover:hover{background-color:var(--mud-palette-warning-hover) !important}}.hover\:mud-warning-hover:focus-visible,.hover\:mud-warning-hover:active{background-color:var(--mud-palette-warning-hover) !important}.mud-border-warning{border-color:var(--mud-palette-warning) !important}.mud-theme-warning{color:var(--mud-palette-warning-text) !important;background-color:var(--mud-palette-warning) !important}.mud-error{background-color:var(--mud-palette-error) !important}.mud-error-text{color:var(--mud-palette-error) !important;--mud-ripple-color: var(--mud-palette-error) !important}.mud-error-hover{background-color:var(--mud-palette-error-hover) !important}@media(hover: hover)and (pointer: fine){.hover\:mud-error-hover:hover{background-color:var(--mud-palette-error-hover) !important}}.hover\:mud-error-hover:focus-visible,.hover\:mud-error-hover:active{background-color:var(--mud-palette-error-hover) !important}.mud-border-error{border-color:var(--mud-palette-error) !important}.mud-theme-error{color:var(--mud-palette-error-text) !important;background-color:var(--mud-palette-error) !important}.mud-dark{background-color:var(--mud-palette-dark) !important}.mud-dark-text{color:var(--mud-palette-dark) !important;--mud-ripple-color: var(--mud-palette-dark) !important}.mud-dark-hover{background-color:var(--mud-palette-dark-hover) !important}@media(hover: hover)and (pointer: fine){.hover\:mud-dark-hover:hover{background-color:var(--mud-palette-dark-hover) !important}}.hover\:mud-dark-hover:focus-visible,.hover\:mud-dark-hover:active{background-color:var(--mud-palette-dark-hover) !important}.mud-border-dark{border-color:var(--mud-palette-dark) !important}.mud-theme-dark{color:var(--mud-palette-dark-text) !important;background-color:var(--mud-palette-dark) !important}.mud-inherit-text{color:inherit !important}.mud-border-lines-default{border-color:var(--mud-palette-lines-default)}.mud-background{background-color:var(--mud-palette-background) !important}.mud-background-gray{background-color:var(--mud-palette-background-gray) !important}.mud-theme-transparent{color:inherit !important;background-color:rgba(0,0,0,0) !important}.mud-transparent{background-color:rgba(0,0,0,0) !important}.mud-transparent-text{color:rgba(0,0,0,0) !important}.mud-text-primary{color:var(--mud-palette-text-primary)}.mud-text-secondary{color:var(--mud-palette-text-secondary)}.mud-text-disabled{color:var(--mud-palette-text-disabled)}.white{background-color:#fff !important}.white-text{color:#fff !important}.black{background-color:#000 !important}.black-text{color:#000 !important}*{box-sizing:border-box;margin:0;padding:0;border-width:0;border-style:solid;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:rgba(0,0,0,0)}strong,b{font-weight:700}body{color:var(--mud-palette-text-primary);font-family:var(--mud-typography-default-family);font-size:var(--mud-typography-default-size);font-weight:var(--mud-typography-default-weight);line-height:var(--mud-typography-default-lineheight);letter-spacing:var(--mud-typography-default-letterspacing);text-transform:var(--mud-typography-default-text-transform);background-color:var(--mud-palette-background)}a{color:var(--mud-palette-text-primary)}.mud-layout{height:100%;width:100%;position:relative}#blazor-error-ui{background-color:var(--mud-palette-error);color:var(--mud-palette-error-text);bottom:0;box-shadow:0 -1px 2px rgba(0,0,0,.2);display:none;left:0;padding:.6rem 1.75rem .7rem 1.25rem;position:fixed;width:100%;z-index:9999}#blazor-error-ui .reload{color:inherit;text-decoration:underline}#blazor-error-ui .dismiss{color:inherit;cursor:pointer;position:absolute;right:.75rem;top:.5rem}#components-reconnect-modal{z-index:9999 !important;background-color:var(--mud-palette-background) !important}#components-reconnect-modal h5{font-size:18px}#components-reconnect-modal button{color:var(--mud-palette-text-primary);padding:8px 16px;font-size:.875rem;min-width:64px;box-sizing:border-box;transition:background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-weight:500;line-height:1;border-radius:var(--mud-default-borderradius);letter-spacing:.02857em;text-transform:uppercase;margin:40px auto !important}@media(hover: hover)and (pointer: fine){#components-reconnect-modal button:hover{background-color:var(--mud-palette-action-default-hover)}}@keyframes mud-animation-fadein{0%{opacity:0}100%{opacity:1}}@-moz-keyframes mud-animation-fadein{0%{opacity:0}100%{opacity:1}}@-webkit-keyframes mud-animation-fadein{0%{opacity:0}100%{opacity:1}}@-o-keyframes mud-animation-fadein{0%{opacity:0}100%{opacity:1}}@-ms-keyframes mud-animation-fadein{0%{opacity:0}100%{opacity:1}}@-webkit-keyframes mud-scale-up-center{0%{-webkit-transform:scale(0.5);transform:scale(0.5)}100%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes mud-scale-up-center{0%{-webkit-transform:scale(0.5);transform:scale(0.5)}100%{-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes mud-skeleton-keyframes-pulse{0%{opacity:1}50%{opacity:.4}100%{opacity:1}}@-webkit-keyframes mud-skeleton-keyframes-wave{0%{transform:translateX(-100%)}60%{transform:translateX(100%)}100%{transform:translateX(100%)}}@-webkit-keyframes mud-progress-circular-keyframes-circular-rotate{0%{transform-origin:50% 50%}100%{transform:rotate(360deg)}}@-webkit-keyframes mud-progress-circular-keyframes-circular-dash{0%{stroke-dasharray:1px,200px;stroke-dashoffset:0px}50%{stroke-dasharray:100px,200px;stroke-dashoffset:-15px}100%{stroke-dasharray:100px,200px;stroke-dashoffset:-125px}}@-webkit-keyframes mud-progress-linear-horizontal-keyframes-indeterminate1{0%{left:-35%;right:100%}60%{left:100%;right:-90%}100%{left:100%;right:-90%}}@-webkit-keyframes mud-progress-linear-horizontal-keyframes-indeterminate2{0%{left:-200%;right:100%}60%{left:107%;right:-8%}100%{left:107%;right:-8%}}@-webkit-keyframes mud-progress-linear-horizontal-keyframes-buffer{0%{opacity:1;background-position:0 50%}50%{opacity:0;background-position:0 50%}100%{opacity:1;background-position:-200px 50%}}@-webkit-keyframes mud-progress-linear-vertical-keyframes-indeterminate1{0%{bottom:-35%;top:100%}60%{bottom:100%;top:-90%}100%{bottom:100%;top:-90%}}@-webkit-keyframes mud-progress-linear-vertical-keyframes-indeterminate2{0%{bottom:-200%;top:100%}60%{bottom:107%;top:-8%}100%{bottom:107%;top:-8%}}@-webkit-keyframes mud-progress-linear-vertical-keyframes-buffer{0%{opacity:1;background-position:50% 0}50%{opacity:0;background-position:50% 0}100%{opacity:1;background-position:50% -200px}}@keyframes mud-progress-linear-striped-loading{0%{background-position:0 0}100%{background-position:300px 0}}a{text-decoration:none}a:focus-visible{outline:none}label{display:inline-block}button{color:inherit;border:0;cursor:pointer;margin:0;display:inline-flex;outline:0;padding:0;position:relative;align-items:center;user-select:none;border-radius:0;vertical-align:middle;-moz-appearance:none;justify-content:center;text-decoration:none;background-color:rgba(0,0,0,0);-webkit-appearance:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}button:focus{outline:none}input,button,select,optgroup,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}iframe{border:none;height:100%;width:100%}.mud-elevation-0{box-shadow:var(--mud-elevation-0)}.mud-elevation-1{box-shadow:var(--mud-elevation-1)}.mud-elevation-2{box-shadow:var(--mud-elevation-2)}.mud-elevation-3{box-shadow:var(--mud-elevation-3)}.mud-elevation-4{box-shadow:var(--mud-elevation-4)}.mud-elevation-5{box-shadow:var(--mud-elevation-5)}.mud-elevation-6{box-shadow:var(--mud-elevation-6)}.mud-elevation-7{box-shadow:var(--mud-elevation-7)}.mud-elevation-8{box-shadow:var(--mud-elevation-8)}.mud-elevation-9{box-shadow:var(--mud-elevation-9)}.mud-elevation-10{box-shadow:var(--mud-elevation-10)}.mud-elevation-11{box-shadow:var(--mud-elevation-11)}.mud-elevation-12{box-shadow:var(--mud-elevation-12)}.mud-elevation-13{box-shadow:var(--mud-elevation-13)}.mud-elevation-14{box-shadow:var(--mud-elevation-14)}.mud-elevation-15{box-shadow:var(--mud-elevation-15)}.mud-elevation-16{box-shadow:var(--mud-elevation-16)}.mud-elevation-17{box-shadow:var(--mud-elevation-17)}.mud-elevation-18{box-shadow:var(--mud-elevation-18)}.mud-elevation-19{box-shadow:var(--mud-elevation-19)}.mud-elevation-20{box-shadow:var(--mud-elevation-20)}.mud-elevation-21{box-shadow:var(--mud-elevation-21)}.mud-elevation-22{box-shadow:var(--mud-elevation-22)}.mud-elevation-23{box-shadow:var(--mud-elevation-23)}.mud-elevation-24{box-shadow:var(--mud-elevation-24)}.mud-elevation-25{box-shadow:var(--mud-elevation-25)}.mud-alert{display:flex;padding:6px 16px;border-radius:var(--mud-default-borderradius);background-color:rgba(0,0,0,0);transition:box-shadow 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}.mud-alert.mud-square{border-radius:0px}.mud-alert.mud-dense{padding:0px 12px}.mud-alert-text-normal{color:var(--mud-palette-text-primary);background-color:var(--mud-palette-dark-hover)}.mud-alert-text-primary{color:var(--mud-palette-primary-darken);background-color:var(--mud-palette-primary-hover)}.mud-alert-text-primary .mud-alert-icon{color:var(--mud-palette-primary)}.mud-alert-text-secondary{color:var(--mud-palette-secondary-darken);background-color:var(--mud-palette-secondary-hover)}.mud-alert-text-secondary .mud-alert-icon{color:var(--mud-palette-secondary)}.mud-alert-text-tertiary{color:var(--mud-palette-tertiary-darken);background-color:var(--mud-palette-tertiary-hover)}.mud-alert-text-tertiary .mud-alert-icon{color:var(--mud-palette-tertiary)}.mud-alert-text-info{color:var(--mud-palette-info-darken);background-color:var(--mud-palette-info-hover)}.mud-alert-text-info .mud-alert-icon{color:var(--mud-palette-info)}.mud-alert-text-success{color:var(--mud-palette-success-darken);background-color:var(--mud-palette-success-hover)}.mud-alert-text-success .mud-alert-icon{color:var(--mud-palette-success)}.mud-alert-text-warning{color:var(--mud-palette-warning-darken);background-color:var(--mud-palette-warning-hover)}.mud-alert-text-warning .mud-alert-icon{color:var(--mud-palette-warning)}.mud-alert-text-error{color:var(--mud-palette-error-darken);background-color:var(--mud-palette-error-hover)}.mud-alert-text-error .mud-alert-icon{color:var(--mud-palette-error)}.mud-alert-text-dark{color:var(--mud-palette-dark-darken);background-color:var(--mud-palette-dark-hover)}.mud-alert-text-dark .mud-alert-icon{color:var(--mud-palette-dark)}.mud-alert-outlined-normal{color:var(--mud-palette-text-primary);border:1px solid rgb(from var(--mud-palette-text-primary) r g b/var(--mud-palette-border-opacity))}.mud-alert-outlined-primary{color:var(--mud-palette-primary-darken);border:1px solid rgb(from var(--mud-palette-primary) r g b/var(--mud-palette-border-opacity))}.mud-alert-outlined-primary .mud-alert-icon{color:var(--mud-palette-primary)}.mud-alert-outlined-secondary{color:var(--mud-palette-secondary-darken);border:1px solid rgb(from var(--mud-palette-secondary) r g b/var(--mud-palette-border-opacity))}.mud-alert-outlined-secondary .mud-alert-icon{color:var(--mud-palette-secondary)}.mud-alert-outlined-tertiary{color:var(--mud-palette-tertiary-darken);border:1px solid rgb(from var(--mud-palette-tertiary) r g b/var(--mud-palette-border-opacity))}.mud-alert-outlined-tertiary .mud-alert-icon{color:var(--mud-palette-tertiary)}.mud-alert-outlined-info{color:var(--mud-palette-info-darken);border:1px solid rgb(from var(--mud-palette-info) r g b/var(--mud-palette-border-opacity))}.mud-alert-outlined-info .mud-alert-icon{color:var(--mud-palette-info)}.mud-alert-outlined-success{color:var(--mud-palette-success-darken);border:1px solid rgb(from var(--mud-palette-success) r g b/var(--mud-palette-border-opacity))}.mud-alert-outlined-success .mud-alert-icon{color:var(--mud-palette-success)}.mud-alert-outlined-warning{color:var(--mud-palette-warning-darken);border:1px solid rgb(from var(--mud-palette-warning) r g b/var(--mud-palette-border-opacity))}.mud-alert-outlined-warning .mud-alert-icon{color:var(--mud-palette-warning)}.mud-alert-outlined-error{color:var(--mud-palette-error-darken);border:1px solid rgb(from var(--mud-palette-error) r g b/var(--mud-palette-border-opacity))}.mud-alert-outlined-error .mud-alert-icon{color:var(--mud-palette-error)}.mud-alert-outlined-dark{color:var(--mud-palette-dark-darken);border:1px solid rgb(from var(--mud-palette-dark) r g b/var(--mud-palette-border-opacity))}.mud-alert-outlined-dark .mud-alert-icon{color:var(--mud-palette-dark)}.mud-alert-filled-normal{color:var(--mud-palette-dark-text);font-weight:500;background-color:var(--mud-palette-dark)}.mud-alert-filled-normal .mud-alert-close .mud-button-root{color:currentColor}.mud-alert-filled-primary{color:var(--mud-palette-primary-text);font-weight:500;background-color:var(--mud-palette-primary)}.mud-alert-filled-primary .mud-button-root{color:currentColor}.mud-alert-filled-secondary{color:var(--mud-palette-secondary-text);font-weight:500;background-color:var(--mud-palette-secondary)}.mud-alert-filled-secondary .mud-button-root{color:currentColor}.mud-alert-filled-tertiary{color:var(--mud-palette-tertiary-text);font-weight:500;background-color:var(--mud-palette-tertiary)}.mud-alert-filled-tertiary .mud-button-root{color:currentColor}.mud-alert-filled-info{color:var(--mud-palette-info-text);font-weight:500;background-color:var(--mud-palette-info)}.mud-alert-filled-info .mud-button-root{color:currentColor}.mud-alert-filled-success{color:var(--mud-palette-success-text);font-weight:500;background-color:var(--mud-palette-success)}.mud-alert-filled-success .mud-button-root{color:currentColor}.mud-alert-filled-warning{color:var(--mud-palette-warning-text);font-weight:500;background-color:var(--mud-palette-warning)}.mud-alert-filled-warning .mud-button-root{color:currentColor}.mud-alert-filled-error{color:var(--mud-palette-error-text);font-weight:500;background-color:var(--mud-palette-error)}.mud-alert-filled-error .mud-button-root{color:currentColor}.mud-alert-filled-dark{color:var(--mud-palette-dark-text);font-weight:500;background-color:var(--mud-palette-dark)}.mud-alert-filled-dark .mud-button-root{color:currentColor}.mud-alert-icon{display:flex;opacity:.9;padding:7px 0;font-size:22px;margin-right:12px;margin-inline-end:12px;margin-inline-start:unset}.mud-alert-icon.mud-alert-icon-left{margin-right:12px;margin-inline-end:12px;margin-inline-start:unset}.mud-alert-icon.mud-alert-icon-right{margin-left:12px;margin-inline-start:12px;margin-inline-end:unset}.mud-alert-message{padding:9px 0}.mud-alert-position{flex:1;display:flex;align-items:start}.mud-alert-close{display:flex;flex:0;align-items:center;margin-left:8px}.mud-badge-root{position:relative;display:inline-block}.mud-badge-root .mud-badge-wrapper{top:0;left:0;flex:0 1;width:100%;height:100%;display:flex;pointer-events:none;position:absolute}.mud-badge-root .mud-badge-wrapper.mud-badge-top{align-items:flex-start}.mud-badge-root .mud-badge-wrapper.mud-badge-top.left{justify-content:flex-start}.mud-badge-root .mud-badge-wrapper.mud-badge-top.center{justify-content:center}.mud-badge-root .mud-badge-wrapper.mud-badge-top.right{justify-content:flex-end}.mud-badge-root .mud-badge-wrapper.mud-badge-center{align-items:center}.mud-badge-root .mud-badge-wrapper.mud-badge-center.left{justify-content:flex-start}.mud-badge-root .mud-badge-wrapper.mud-badge-center.center{justify-content:center}.mud-badge-root .mud-badge-wrapper.mud-badge-center.right{justify-content:flex-end}.mud-badge-root .mud-badge-wrapper.mud-badge-bottom{align-items:flex-end}.mud-badge-root .mud-badge-wrapper.mud-badge-bottom.left{justify-content:flex-start}.mud-badge-root .mud-badge-wrapper.mud-badge-bottom.center{justify-content:center}.mud-badge-root .mud-badge-wrapper.mud-badge-bottom.right{justify-content:flex-end}.mud-badge{border-radius:10px;font-size:12px;height:20px;letter-spacing:0;min-width:20px;padding:4px 6px;pointer-events:auto;line-height:1;position:absolute;text-align:center;text-indent:0;top:auto;transition:.3s cubic-bezier(0.25, 0.8, 0.5, 1);white-space:nowrap}.mud-badge.mud-badge-default{color:var(--mud-palette-text-primary);background-color:var(--mud-palette-gray-light)}.mud-badge.mud-badge-bordered{border-color:var(--mud-palette-surface);border-style:solid;border-width:2px;padding:3px 4px}.mud-badge.mud-badge-bordered.mud-badge-icon{padding:4px 6px}.mud-badge.mud-badge-icon{width:20px;height:20px}.mud-badge.mud-badge-icon .mud-icon-badge{color:inherit;font-size:12px}.mud-badge.mud-badge-dot{border-radius:50%;height:9px;min-width:0;padding:0;width:9px}.mud-badge.mud-badge{display:flex;align-items:center;justify-content:center}.mud-badge.mud-badge-top.left{inset:auto calc(100% - 4px) calc(100% - 4px) auto}.mud-badge.mud-badge-top.left.mud-badge-overlap{inset:auto calc(100% - 12px) calc(100% - 12px) auto}.mud-badge.mud-badge-top.center{bottom:calc(100% - 4px)}.mud-badge.mud-badge-top.center.mud-badge-overlap{bottom:calc(100% - 12px)}.mud-badge.mud-badge-top.right{inset:auto auto calc(100% - 4px) calc(100% - 4px)}.mud-badge.mud-badge-top.right.mud-badge-overlap{inset:auto auto calc(100% - 12px) calc(100% - 12px)}.mud-badge.mud-badge-center.left{right:calc(100% - 4px)}.mud-badge.mud-badge-center.left.mud-badge-overlap{right:calc(100% - 12px)}.mud-badge.mud-badge-center.right{left:calc(100% - 4px)}.mud-badge.mud-badge-center.right.mud-badge-overlap{left:calc(100% - 12px)}.mud-badge.mud-badge-bottom.left{inset:calc(100% - 4px) calc(100% - 4px) auto auto}.mud-badge.mud-badge-bottom.left.mud-badge-overlap{inset:calc(100% - 12px) calc(100% - 12px) auto auto}.mud-badge.mud-badge-bottom.center{top:calc(100% - 4px)}.mud-badge.mud-badge-bottom.center.mud-badge-overlap{top:calc(100% - 12px)}.mud-badge.mud-badge-bottom.right{inset:calc(100% - 4px) auto auto calc(100% - 4px)}.mud-badge.mud-badge-bottom.right.mud-badge-overlap{inset:calc(100% - 12px) auto auto calc(100% - 12px)}.mud-toolbar{display:flex;position:relative;align-items:center;--mud-internal-toolbar-height: 56px;height:var(--mud-internal-toolbar-height)}.mud-toolbar-gutters{padding-left:16px;padding-right:16px}@media(min-width: 0px)and (orientation: landscape){.mud-toolbar{--mud-internal-toolbar-height: 48px}}@media(min-width: 600px){.mud-toolbar{--mud-internal-toolbar-height: 64px}.mud-toolbar-gutters{padding-left:24px;padding-right:24px}}.mud-toolbar-dense{--mud-internal-toolbar-height: 48px}.mud-toolbar.mud-toolbar-wrap-content{height:auto;min-height:var(--mud-internal-toolbar-height);flex-wrap:wrap}.mud-toolbar.mud-toolbar-wrap-content.mud-toolbar-appbar{min-height:min(var(--mud-appbar-height),var(--mud-internal-toolbar-height))}.mud-tooltip-root.mud-tooltip-inline{display:inline-block}.mud-tooltip{padding:4px 8px;text-align:center;align-items:center;justify-content:center;font-weight:500;font-size:12px;line-height:1.4em;border-radius:var(--mud-default-borderradius);z-index:var(--mud-zindex-tooltip)}.mud-tooltip.mud-tooltip-default{color:var(--mud-palette-dark-text);background-color:var(--mud-palette-gray-darker)}.mud-tooltip.mud-tooltip-default.mud-tooltip-arrow::after{border-color:var(--mud-palette-gray-darker) rgba(0,0,0,0) rgba(0,0,0,0) rgba(0,0,0,0)}.mud-tooltip.mud-tooltip-center-left:not([data-mudpopover-flip]),.mud-tooltip.mud-tooltip-center-right[data-mudpopover-flip]{transform:translateX(-10px)}.mud-tooltip.mud-tooltip-center-left:not([data-mudpopover-flip]).mud-tooltip-arrow::after,.mud-tooltip.mud-tooltip-center-right[data-mudpopover-flip].mud-tooltip-arrow::after{left:100%;transform:rotate(270deg)}.mud-tooltip.mud-tooltip-center-right:not([data-mudpopover-flip]),.mud-tooltip.mud-tooltip-center-left[data-mudpopover-flip]{transform:translateX(10px)}.mud-tooltip.mud-tooltip-center-right:not([data-mudpopover-flip]).mud-tooltip-arrow::after,.mud-tooltip.mud-tooltip-center-left[data-mudpopover-flip].mud-tooltip-arrow::after{right:100%;transform:rotate(90deg)}.mud-tooltip.mud-tooltip-top-center:not([data-mudpopover-flip]),.mud-tooltip.mud-tooltip-bottom-center[data-mudpopover-flip]{transform:translateY(-10px)}.mud-tooltip.mud-tooltip-top-center:not([data-mudpopover-flip]).mud-tooltip-arrow::after,.mud-tooltip.mud-tooltip-bottom-center[data-mudpopover-flip].mud-tooltip-arrow::after{top:100%;transform:rotate(0deg)}.mud-tooltip.mud-tooltip-bottom-center:not([data-mudpopover-flip]),.mud-tooltip.mud-tooltip-top-center[data-mudpopover-flip]{transform:translateY(10px)}.mud-tooltip.mud-tooltip-bottom-center:not([data-mudpopover-flip]).mud-tooltip-arrow::after,.mud-tooltip.mud-tooltip-top-center[data-mudpopover-flip].mud-tooltip-arrow::after{bottom:100%;transform:rotate(180deg)}.mud-tooltip.mud-tooltip-arrow::after{content:"";position:absolute;border-width:6px;border-style:solid;border-color:rgba(0,0,0,0);border-top-color:inherit}.mud-avatar{display:inline-flex;overflow:hidden;position:relative;align-items:center;flex-shrink:0;line-height:1;user-select:none;border-radius:50%;justify-content:center;color:var(--mud-palette-white);background-color:var(--mud-palette-gray-light)}.mud-avatar.mud-avatar-small{width:24px;height:24px;font-size:.75rem}.mud-avatar.mud-avatar-medium{width:40px;height:40px;font-size:1.25rem}.mud-avatar.mud-avatar-large{width:56px;height:56px;font-size:1.5rem}.mud-avatar-rounded{border-radius:var(--mud-default-borderradius)}.mud-avatar-square{border-radius:0}.mud-avatar>.mud-image{color:rgba(0,0,0,0);width:100%;height:100%;object-fit:cover;text-align:center;text-indent:10000px}.mud-avatar-fallback{width:75%;height:75%}.mud-avatar-outlined{color:var(--mud-palette-text-primary);background-color:unset;border:1px solid rgb(from var(--mud-palette-text-primary) r g b/var(--mud-palette-border-opacity))}.mud-avatar-outlined.mud-avatar-outlined-primary{color:var(--mud-palette-primary);border:1px solid rgb(from var(--mud-palette-primary) r g b/var(--mud-palette-border-opacity))}.mud-avatar-outlined.mud-avatar-outlined-secondary{color:var(--mud-palette-secondary);border:1px solid rgb(from var(--mud-palette-secondary) r g b/var(--mud-palette-border-opacity))}.mud-avatar-outlined.mud-avatar-outlined-tertiary{color:var(--mud-palette-tertiary);border:1px solid rgb(from var(--mud-palette-tertiary) r g b/var(--mud-palette-border-opacity))}.mud-avatar-outlined.mud-avatar-outlined-info{color:var(--mud-palette-info);border:1px solid rgb(from var(--mud-palette-info) r g b/var(--mud-palette-border-opacity))}.mud-avatar-outlined.mud-avatar-outlined-success{color:var(--mud-palette-success);border:1px solid rgb(from var(--mud-palette-success) r g b/var(--mud-palette-border-opacity))}.mud-avatar-outlined.mud-avatar-outlined-warning{color:var(--mud-palette-warning);border:1px solid rgb(from var(--mud-palette-warning) r g b/var(--mud-palette-border-opacity))}.mud-avatar-outlined.mud-avatar-outlined-error{color:var(--mud-palette-error);border:1px solid rgb(from var(--mud-palette-error) r g b/var(--mud-palette-border-opacity))}.mud-avatar-outlined.mud-avatar-outlined-dark{color:var(--mud-palette-dark);border:1px solid rgb(from var(--mud-palette-dark) r g b/var(--mud-palette-border-opacity))}.mud-avatar-filled{color:var(--mud-palette-text-primary);background-color:var(--mud-palette-lines-inputs)}.mud-avatar-filled.mud-avatar-filled-primary{color:var(--mud-palette-primary-text);background-color:var(--mud-palette-primary)}.mud-avatar-filled.mud-avatar-filled-secondary{color:var(--mud-palette-secondary-text);background-color:var(--mud-palette-secondary)}.mud-avatar-filled.mud-avatar-filled-tertiary{color:var(--mud-palette-tertiary-text);background-color:var(--mud-palette-tertiary)}.mud-avatar-filled.mud-avatar-filled-info{color:var(--mud-palette-info-text);background-color:var(--mud-palette-info)}.mud-avatar-filled.mud-avatar-filled-success{color:var(--mud-palette-success-text);background-color:var(--mud-palette-success)}.mud-avatar-filled.mud-avatar-filled-warning{color:var(--mud-palette-warning-text);background-color:var(--mud-palette-warning)}.mud-avatar-filled.mud-avatar-filled-error{color:var(--mud-palette-error-text);background-color:var(--mud-palette-error)}.mud-avatar-filled.mud-avatar-filled-dark{color:var(--mud-palette-dark-text);background-color:var(--mud-palette-dark)}.mud-avatar-group{display:flex}.mud-avatar-group .mud-avatar:first-child{margin-inline-start:0px !important}.mud-avatar-group.mud-avatar-group-outlined.mud-avatar-group-outlined-transparent .mud-avatar:not(.mud-avatar-outlined){border-color:rgba(0,0,0,0)}.mud-avatar-group.mud-avatar-group-outlined.mud-avatar-group-outlined-surface .mud-avatar:not(.mud-avatar-outlined){border-color:var(--mud-palette-surface)}.mud-avatar-group.mud-avatar-group-outlined.mud-avatar-group-outlined-primary .mud-avatar:not(.mud-avatar-outlined){border-color:var(--mud-palette-primary)}.mud-avatar-group.mud-avatar-group-outlined.mud-avatar-group-outlined-secondary .mud-avatar:not(.mud-avatar-outlined){border-color:var(--mud-palette-secondary)}.mud-avatar-group.mud-avatar-group-outlined.mud-avatar-group-outlined-tertiary .mud-avatar:not(.mud-avatar-outlined){border-color:var(--mud-palette-tertiary)}.mud-avatar-group.mud-avatar-group-outlined.mud-avatar-group-outlined-info .mud-avatar:not(.mud-avatar-outlined){border-color:var(--mud-palette-info)}.mud-avatar-group.mud-avatar-group-outlined.mud-avatar-group-outlined-success .mud-avatar:not(.mud-avatar-outlined){border-color:var(--mud-palette-success)}.mud-avatar-group.mud-avatar-group-outlined.mud-avatar-group-outlined-warning .mud-avatar:not(.mud-avatar-outlined){border-color:var(--mud-palette-warning)}.mud-avatar-group.mud-avatar-group-outlined.mud-avatar-group-outlined-error .mud-avatar:not(.mud-avatar-outlined){border-color:var(--mud-palette-error)}.mud-avatar-group.mud-avatar-group-outlined.mud-avatar-group-outlined-dark .mud-avatar:not(.mud-avatar-outlined){border-color:var(--mud-palette-dark)}.mud-avatar-group.mud-avatar-group-outlined .mud-avatar{border:2px solid}.mud-avatar-group.mud-avatar-group-outlined .mud-avatar.mud-avatar-small{width:28px;height:28px}.mud-avatar-group.mud-avatar-group-outlined .mud-avatar.mud-avatar-medium{width:44px;height:44px}.mud-avatar-group.mud-avatar-group-outlined .mud-avatar.mud-avatar-large{width:60px;height:60px}.mud-breadcrumbs{display:flex;flex-wrap:wrap;flex:0 1 auto;align-items:center;list-style:none;margin:0;padding:16px 12px}.mud-breadcrumb-separator{display:inline-flex;padding:0 12px}.mud-breadcrumb-separator>span{color:var(--mud-palette-text-primary);opacity:.38}.mud-breadcrumb-item>a{display:flex;align-items:center}.mud-breadcrumb-item>a>svg.mud-icon-root{margin-right:4px;margin-inline-end:4px;margin-inline-start:unset}.mud-breadcrumb-item.mud-disabled>a{pointer-events:none;color:var(--mud-palette-action-disabled)}.mud-breadcrumbs-expander{cursor:pointer;display:flex;background-color:#eee}@media(hover: hover)and (pointer: fine){.mud-breadcrumbs-expander:hover{background-color:#e0e0e0}}.mud-breadcrumbs-expander>svg{width:26px}.mud-button-root{color:inherit;border:0;cursor:pointer;margin:0;display:inline-flex;outline:0;padding:0;position:relative;align-items:center;user-select:none;border-radius:0;vertical-align:middle;-moz-appearance:none;justify-content:center;text-decoration:none;background-color:rgba(0,0,0,0);-webkit-appearance:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mud-button-root::-moz-focus-inner{border-style:none}.mud-button-root:disabled{color:var(--mud-palette-action-disabled) !important;cursor:default;pointer-events:none}.mud-button{padding:6px 16px;font-family:var(--mud-typography-button-family);font-size:var(--mud-typography-button-size);font-weight:var(--mud-typography-button-weight);line-height:var(--mud-typography-button-lineheight);letter-spacing:var(--mud-typography-button-letterspacing);text-transform:var(--mud-typography-button-text-transform);min-width:64px;box-sizing:border-box;transition:background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;border-radius:var(--mud-default-borderradius);color:var(--mud-palette-text-primary);--mud-ripple-color: var(--mud-palette-text-primary)}@media(hover: hover)and (pointer: fine){.mud-button:hover{background-color:var(--mud-palette-action-default-hover)}}.mud-button:focus-visible,.mud-button:active{background-color:var(--mud-palette-action-default-hover)}.mud-button-text{padding:6px 8px}.mud-button-text.mud-button-text-inherit{color:inherit}.mud-button-text.mud-button-text-primary{color:var(--mud-palette-primary);--mud-ripple-color: var(--mud-palette-primary)}@media(hover: hover)and (pointer: fine){.mud-button-text.mud-button-text-primary:hover{background-color:var(--mud-palette-primary-hover)}}.mud-button-text.mud-button-text-primary:focus-visible,.mud-button-text.mud-button-text-primary:active{background-color:var(--mud-palette-primary-hover)}.mud-button-text.mud-button-text-secondary{color:var(--mud-palette-secondary);--mud-ripple-color: var(--mud-palette-secondary)}@media(hover: hover)and (pointer: fine){.mud-button-text.mud-button-text-secondary:hover{background-color:var(--mud-palette-secondary-hover)}}.mud-button-text.mud-button-text-secondary:focus-visible,.mud-button-text.mud-button-text-secondary:active{background-color:var(--mud-palette-secondary-hover)}.mud-button-text.mud-button-text-tertiary{color:var(--mud-palette-tertiary);--mud-ripple-color: var(--mud-palette-tertiary)}@media(hover: hover)and (pointer: fine){.mud-button-text.mud-button-text-tertiary:hover{background-color:var(--mud-palette-tertiary-hover)}}.mud-button-text.mud-button-text-tertiary:focus-visible,.mud-button-text.mud-button-text-tertiary:active{background-color:var(--mud-palette-tertiary-hover)}.mud-button-text.mud-button-text-info{color:var(--mud-palette-info);--mud-ripple-color: var(--mud-palette-info)}@media(hover: hover)and (pointer: fine){.mud-button-text.mud-button-text-info:hover{background-color:var(--mud-palette-info-hover)}}.mud-button-text.mud-button-text-info:focus-visible,.mud-button-text.mud-button-text-info:active{background-color:var(--mud-palette-info-hover)}.mud-button-text.mud-button-text-success{color:var(--mud-palette-success);--mud-ripple-color: var(--mud-palette-success)}@media(hover: hover)and (pointer: fine){.mud-button-text.mud-button-text-success:hover{background-color:var(--mud-palette-success-hover)}}.mud-button-text.mud-button-text-success:focus-visible,.mud-button-text.mud-button-text-success:active{background-color:var(--mud-palette-success-hover)}.mud-button-text.mud-button-text-warning{color:var(--mud-palette-warning);--mud-ripple-color: var(--mud-palette-warning)}@media(hover: hover)and (pointer: fine){.mud-button-text.mud-button-text-warning:hover{background-color:var(--mud-palette-warning-hover)}}.mud-button-text.mud-button-text-warning:focus-visible,.mud-button-text.mud-button-text-warning:active{background-color:var(--mud-palette-warning-hover)}.mud-button-text.mud-button-text-error{color:var(--mud-palette-error);--mud-ripple-color: var(--mud-palette-error)}@media(hover: hover)and (pointer: fine){.mud-button-text.mud-button-text-error:hover{background-color:var(--mud-palette-error-hover)}}.mud-button-text.mud-button-text-error:focus-visible,.mud-button-text.mud-button-text-error:active{background-color:var(--mud-palette-error-hover)}.mud-button-text.mud-button-text-dark{color:var(--mud-palette-dark);--mud-ripple-color: var(--mud-palette-dark)}@media(hover: hover)and (pointer: fine){.mud-button-text.mud-button-text-dark:hover{background-color:var(--mud-palette-dark-hover)}}.mud-button-text.mud-button-text-dark:focus-visible,.mud-button-text.mud-button-text-dark:active{background-color:var(--mud-palette-dark-hover)}.mud-button-outlined{color:var(--mud-palette-text-primary);border:1px solid rgb(from var(--mud-palette-text-primary) r g b/var(--mud-palette-border-opacity));padding:5px 15px}.mud-button-outlined.mud-button-outlined-inherit{color:inherit;border-color:currentColor}.mud-button-outlined.mud-icon-button{padding:5px}@media(hover: hover)and (pointer: fine){.mud-button-outlined:hover{background-color:var(--mud-palette-action-default-hover)}}.mud-button-outlined:focus-visible,.mud-button-outlined:active{background-color:var(--mud-palette-action-default-hover)}.mud-button-outlined.mud-button-outlined-primary{color:var(--mud-palette-primary);--mud-ripple-color: var(--mud-palette-primary);border:1px solid rgb(from var(--mud-palette-primary) r g b/var(--mud-palette-border-opacity))}@media(hover: hover)and (pointer: fine){.mud-button-outlined.mud-button-outlined-primary:hover{border:1px solid rgb(from var(--mud-palette-primary) r g b/var(--mud-palette-border-opacity));background-color:var(--mud-palette-primary-hover)}}.mud-button-outlined.mud-button-outlined-primary:focus-visible,.mud-button-outlined.mud-button-outlined-primary:active{border:1px solid rgb(from var(--mud-palette-primary) r g b/var(--mud-palette-border-opacity));background-color:var(--mud-palette-primary-hover)}.mud-button-outlined.mud-button-outlined-secondary{color:var(--mud-palette-secondary);--mud-ripple-color: var(--mud-palette-secondary);border:1px solid rgb(from var(--mud-palette-secondary) r g b/var(--mud-palette-border-opacity))}@media(hover: hover)and (pointer: fine){.mud-button-outlined.mud-button-outlined-secondary:hover{border:1px solid rgb(from var(--mud-palette-secondary) r g b/var(--mud-palette-border-opacity));background-color:var(--mud-palette-secondary-hover)}}.mud-button-outlined.mud-button-outlined-secondary:focus-visible,.mud-button-outlined.mud-button-outlined-secondary:active{border:1px solid rgb(from var(--mud-palette-secondary) r g b/var(--mud-palette-border-opacity));background-color:var(--mud-palette-secondary-hover)}.mud-button-outlined.mud-button-outlined-tertiary{color:var(--mud-palette-tertiary);--mud-ripple-color: var(--mud-palette-tertiary);border:1px solid rgb(from var(--mud-palette-tertiary) r g b/var(--mud-palette-border-opacity))}@media(hover: hover)and (pointer: fine){.mud-button-outlined.mud-button-outlined-tertiary:hover{border:1px solid rgb(from var(--mud-palette-tertiary) r g b/var(--mud-palette-border-opacity));background-color:var(--mud-palette-tertiary-hover)}}.mud-button-outlined.mud-button-outlined-tertiary:focus-visible,.mud-button-outlined.mud-button-outlined-tertiary:active{border:1px solid rgb(from var(--mud-palette-tertiary) r g b/var(--mud-palette-border-opacity));background-color:var(--mud-palette-tertiary-hover)}.mud-button-outlined.mud-button-outlined-info{color:var(--mud-palette-info);--mud-ripple-color: var(--mud-palette-info);border:1px solid rgb(from var(--mud-palette-info) r g b/var(--mud-palette-border-opacity))}@media(hover: hover)and (pointer: fine){.mud-button-outlined.mud-button-outlined-info:hover{border:1px solid rgb(from var(--mud-palette-info) r g b/var(--mud-palette-border-opacity));background-color:var(--mud-palette-info-hover)}}.mud-button-outlined.mud-button-outlined-info:focus-visible,.mud-button-outlined.mud-button-outlined-info:active{border:1px solid rgb(from var(--mud-palette-info) r g b/var(--mud-palette-border-opacity));background-color:var(--mud-palette-info-hover)}.mud-button-outlined.mud-button-outlined-success{color:var(--mud-palette-success);--mud-ripple-color: var(--mud-palette-success);border:1px solid rgb(from var(--mud-palette-success) r g b/var(--mud-palette-border-opacity))}@media(hover: hover)and (pointer: fine){.mud-button-outlined.mud-button-outlined-success:hover{border:1px solid rgb(from var(--mud-palette-success) r g b/var(--mud-palette-border-opacity));background-color:var(--mud-palette-success-hover)}}.mud-button-outlined.mud-button-outlined-success:focus-visible,.mud-button-outlined.mud-button-outlined-success:active{border:1px solid rgb(from var(--mud-palette-success) r g b/var(--mud-palette-border-opacity));background-color:var(--mud-palette-success-hover)}.mud-button-outlined.mud-button-outlined-warning{color:var(--mud-palette-warning);--mud-ripple-color: var(--mud-palette-warning);border:1px solid rgb(from var(--mud-palette-warning) r g b/var(--mud-palette-border-opacity))}@media(hover: hover)and (pointer: fine){.mud-button-outlined.mud-button-outlined-warning:hover{border:1px solid rgb(from var(--mud-palette-warning) r g b/var(--mud-palette-border-opacity));background-color:var(--mud-palette-warning-hover)}}.mud-button-outlined.mud-button-outlined-warning:focus-visible,.mud-button-outlined.mud-button-outlined-warning:active{border:1px solid rgb(from var(--mud-palette-warning) r g b/var(--mud-palette-border-opacity));background-color:var(--mud-palette-warning-hover)}.mud-button-outlined.mud-button-outlined-error{color:var(--mud-palette-error);--mud-ripple-color: var(--mud-palette-error);border:1px solid rgb(from var(--mud-palette-error) r g b/var(--mud-palette-border-opacity))}@media(hover: hover)and (pointer: fine){.mud-button-outlined.mud-button-outlined-error:hover{border:1px solid rgb(from var(--mud-palette-error) r g b/var(--mud-palette-border-opacity));background-color:var(--mud-palette-error-hover)}}.mud-button-outlined.mud-button-outlined-error:focus-visible,.mud-button-outlined.mud-button-outlined-error:active{border:1px solid rgb(from var(--mud-palette-error) r g b/var(--mud-palette-border-opacity));background-color:var(--mud-palette-error-hover)}.mud-button-outlined.mud-button-outlined-dark{color:var(--mud-palette-dark);--mud-ripple-color: var(--mud-palette-dark);border:1px solid rgb(from var(--mud-palette-dark) r g b/var(--mud-palette-border-opacity))}@media(hover: hover)and (pointer: fine){.mud-button-outlined.mud-button-outlined-dark:hover{border:1px solid rgb(from var(--mud-palette-dark) r g b/var(--mud-palette-border-opacity));background-color:var(--mud-palette-dark-hover)}}.mud-button-outlined.mud-button-outlined-dark:focus-visible,.mud-button-outlined.mud-button-outlined-dark:active{border:1px solid rgb(from var(--mud-palette-dark) r g b/var(--mud-palette-border-opacity));background-color:var(--mud-palette-dark-hover)}.mud-button-outlined:disabled{border:1px solid var(--mud-palette-action-disabled-background)}.mud-button-filled{color:var(--mud-palette-text-primary);--mud-ripple-color: var(--mud-palette-text-primary);--mud-ripple-opacity: var(--mud-ripple-opacity-secondary) !important;box-shadow:0px 3px 1px -2px rgba(0,0,0,.2),0px 2px 2px 0px rgba(0,0,0,.14),0px 1px 5px 0px rgba(0,0,0,.12);background-color:var(--mud-palette-action-default-hover)}.mud-button-filled.mud-icon-button{padding:6px}@media(hover: hover)and (pointer: fine){.mud-button-filled:hover{box-shadow:0px 2px 4px -1px rgba(0,0,0,.2),0px 4px 5px 0px rgba(0,0,0,.14),0px 1px 10px 0px rgba(0,0,0,.12);background-color:var(--mud-palette-action-disabled-background)}}.mud-button-filled:focus-visible{box-shadow:0px 2px 4px -1px rgba(0,0,0,.2),0px 4px 5px 0px rgba(0,0,0,.14),0px 1px 10px 0px rgba(0,0,0,.12);background-color:var(--mud-palette-action-disabled-background)}.mud-button-filled:active{box-shadow:0px 5px 5px -3px rgba(0,0,0,.2),0px 8px 10px 1px rgba(0,0,0,.14),0px 3px 14px 2px rgba(0,0,0,.12);background-color:var(--mud-palette-action-disabled-background)}.mud-button-filled:disabled{color:var(--mud-palette-action-disabled);box-shadow:none;background-color:var(--mud-palette-action-disabled-background) !important}.mud-button-filled.mud-button-filled-primary{color:var(--mud-palette-primary-text);--mud-ripple-color: var(--mud-palette-primary-text);background-color:var(--mud-palette-primary)}@media(hover: hover)and (pointer: fine){.mud-button-filled.mud-button-filled-primary:hover{background-color:var(--mud-palette-primary-darken)}}.mud-button-filled.mud-button-filled-primary:focus-visible,.mud-button-filled.mud-button-filled-primary:active{background-color:var(--mud-palette-primary-darken)}.mud-button-filled.mud-button-filled-secondary{color:var(--mud-palette-secondary-text);--mud-ripple-color: var(--mud-palette-secondary-text);background-color:var(--mud-palette-secondary)}@media(hover: hover)and (pointer: fine){.mud-button-filled.mud-button-filled-secondary:hover{background-color:var(--mud-palette-secondary-darken)}}.mud-button-filled.mud-button-filled-secondary:focus-visible,.mud-button-filled.mud-button-filled-secondary:active{background-color:var(--mud-palette-secondary-darken)}.mud-button-filled.mud-button-filled-tertiary{color:var(--mud-palette-tertiary-text);--mud-ripple-color: var(--mud-palette-tertiary-text);background-color:var(--mud-palette-tertiary)}@media(hover: hover)and (pointer: fine){.mud-button-filled.mud-button-filled-tertiary:hover{background-color:var(--mud-palette-tertiary-darken)}}.mud-button-filled.mud-button-filled-tertiary:focus-visible,.mud-button-filled.mud-button-filled-tertiary:active{background-color:var(--mud-palette-tertiary-darken)}.mud-button-filled.mud-button-filled-info{color:var(--mud-palette-info-text);--mud-ripple-color: var(--mud-palette-info-text);background-color:var(--mud-palette-info)}@media(hover: hover)and (pointer: fine){.mud-button-filled.mud-button-filled-info:hover{background-color:var(--mud-palette-info-darken)}}.mud-button-filled.mud-button-filled-info:focus-visible,.mud-button-filled.mud-button-filled-info:active{background-color:var(--mud-palette-info-darken)}.mud-button-filled.mud-button-filled-success{color:var(--mud-palette-success-text);--mud-ripple-color: var(--mud-palette-success-text);background-color:var(--mud-palette-success)}@media(hover: hover)and (pointer: fine){.mud-button-filled.mud-button-filled-success:hover{background-color:var(--mud-palette-success-darken)}}.mud-button-filled.mud-button-filled-success:focus-visible,.mud-button-filled.mud-button-filled-success:active{background-color:var(--mud-palette-success-darken)}.mud-button-filled.mud-button-filled-warning{color:var(--mud-palette-warning-text);--mud-ripple-color: var(--mud-palette-warning-text);background-color:var(--mud-palette-warning)}@media(hover: hover)and (pointer: fine){.mud-button-filled.mud-button-filled-warning:hover{background-color:var(--mud-palette-warning-darken)}}.mud-button-filled.mud-button-filled-warning:focus-visible,.mud-button-filled.mud-button-filled-warning:active{background-color:var(--mud-palette-warning-darken)}.mud-button-filled.mud-button-filled-error{color:var(--mud-palette-error-text);--mud-ripple-color: var(--mud-palette-error-text);background-color:var(--mud-palette-error)}@media(hover: hover)and (pointer: fine){.mud-button-filled.mud-button-filled-error:hover{background-color:var(--mud-palette-error-darken)}}.mud-button-filled.mud-button-filled-error:focus-visible,.mud-button-filled.mud-button-filled-error:active{background-color:var(--mud-palette-error-darken)}.mud-button-filled.mud-button-filled-dark{color:var(--mud-palette-dark-text);--mud-ripple-color: var(--mud-palette-dark-text);background-color:var(--mud-palette-dark)}@media(hover: hover)and (pointer: fine){.mud-button-filled.mud-button-filled-dark:hover{background-color:var(--mud-palette-dark-darken)}}.mud-button-filled.mud-button-filled-dark:focus-visible,.mud-button-filled.mud-button-filled-dark:active{background-color:var(--mud-palette-dark-darken)}.mud-button-disable-elevation{box-shadow:none}@media(hover: hover)and (pointer: fine){.mud-button-disable-elevation:hover{box-shadow:none}}.mud-button-disable-elevation:active{box-shadow:none}.mud-button-disable-elevation.mud-focus-visible{box-shadow:none}.mud-button-disable-elevation:disabled{box-shadow:none}.mud-button-color-inherit{color:inherit;border-color:currentColor}.mud-button-text-size-small{padding:4px 5px;font-size:.8125rem}.mud-button-text-size-large{padding:8px 11px;font-size:.9375rem}.mud-button-outlined-size-small{padding:3px 9px;font-size:.8125rem}.mud-button-outlined-size-small.mud-icon-button{padding:4px}.mud-button-outlined-size-large{padding:7px 21px;font-size:.9375rem}.mud-button-outlined-size-large.mud-icon-button{padding:4px}.mud-button-filled-size-small{padding:4px 10px;font-size:.8125rem}.mud-button-filled-size-small.mud-icon-button{padding:5px}.mud-button-filled-size-large{padding:8px 22px;font-size:.9375rem}.mud-button-filled-size-large.mud-icon-button{padding:5px}.mud-button-full-width{width:100%}.mud-button-label{width:100%;display:inherit;align-items:inherit;justify-content:inherit}.mud-button-label .mud-button-icon-start{display:inherit;margin-left:-4px;margin-right:8px;margin-inline-start:-4px;margin-inline-end:8px}.mud-button-label .mud-button-icon-start.mud-button-icon-size-small{margin-left:-2px;margin-inline-start:-2px;margin-inline-end:8px}.mud-button-label .mud-button-icon-end{display:inherit;margin-left:8px;margin-right:-4px;margin-inline-start:8px;margin-inline-end:-4px}.mud-button-label .mud-button-icon-end.mud-button-icon-size-small{margin-right:-2px;margin-inline-end:-2px;margin-inline-start:8px}.mud-button-icon-size-small>*:first-child{font-size:18px}.mud-button-icon-size-medium>*:first-child{font-size:20px}.mud-button-icon-size-large>*:first-child{font-size:22px}.mud-button-group-root{border-radius:var(--mud-default-borderradius);display:inline-flex}.mud-button-group-root .mud-button-root{border-radius:var(--mud-default-borderradius)}.mud-button-group-root.mud-button-group-override-styles .mud-button{color:var(--mud-palette-text-primary);--mud-ripple-color: var(--mud-palette-text-primary)}.mud-button-group-root.mud-button-group-override-styles .mud-button-root{background-color:inherit;box-shadow:none;border:none}@media(hover: hover)and (pointer: fine){.mud-button-group-root.mud-button-group-override-styles .mud-button-root:hover{background-color:var(--mud-palette-action-default-hover)}}.mud-button-group-root.mud-button-group-override-styles .mud-button-root:focus-visible,.mud-button-group-root.mud-button-group-override-styles .mud-button-root:active{background-color:var(--mud-palette-action-default-hover)}.mud-button-group-root.mud-button-group-override-styles .mud-button-root:disabled{border-color:var(--mud-palette-action-disabled-background) !important}.mud-button-group-root.mud-button-group-text-size-small .mud-button-root{padding:4px 5px;font-size:.8125rem}.mud-button-group-root.mud-button-group-text-size-small .mud-button-root.mud-icon-button .mud-icon-root{font-size:1.422rem}.mud-button-group-root.mud-button-group-text-size-large .mud-button-root{padding:8px 11px;font-size:.9375rem}.mud-button-group-root.mud-button-group-text-size-large .mud-button-root.mud-icon-button .mud-icon-root{font-size:1.641rem}.mud-button-group-root.mud-button-group-outlined-size-small .mud-button-root{padding:3px 9px;font-size:.8125rem}.mud-button-group-root.mud-button-group-outlined-size-small .mud-button-root.mud-icon-button{padding:3px 9px}.mud-button-group-root.mud-button-group-outlined-size-small .mud-button-root.mud-icon-button .mud-icon-root{font-size:1.422rem}.mud-button-group-root.mud-button-group-outlined-size-large .mud-button-root{padding:7px 21px;font-size:.9375rem}.mud-button-group-root.mud-button-group-outlined-size-large .mud-button-root.mud-icon-button{padding:7px 15px}.mud-button-group-root.mud-button-group-outlined-size-large .mud-button-root.mud-icon-button .mud-icon-root{font-size:1.641rem}.mud-button-group-root.mud-button-group-filled-size-small .mud-button-root{padding:4px 10px;font-size:.8125rem}.mud-button-group-root.mud-button-group-filled-size-small .mud-button-root.mud-icon-button{padding:4px 10px}.mud-button-group-root.mud-button-group-filled-size-small .mud-button-root.mud-icon-button .mud-icon-root{font-size:1.422rem}.mud-button-group-root.mud-button-group-filled-size-large .mud-button-root{padding:8px 22px;font-size:.9375rem}.mud-button-group-root.mud-button-group-filled-size-large .mud-button-root.mud-icon-button{padding:8px 16px}.mud-button-group-root.mud-button-group-filled-size-large .mud-button-root.mud-icon-button .mud-icon-root{font-size:1.641rem}.mud-button-group-root .mud-button-root.mud-icon-button{padding-right:12px;padding-left:12px}.mud-button-group-root .mud-button-root.mud-icon-button .mud-icon-root{font-size:1.516rem}.mud-button-group-root .mud-button-root.mud-icon-button.mud-ripple-icon:after{transform:scale(10, 10)}.mud-button-group-root .mud-button-root.mud-icon-button.mud-ripple-icon:active:after{transform:scale(0, 0);opacity:.1;transition:0s}.mud-button-group-horizontal:not(.mud-button-group-rtl)>.mud-button-root:not(:last-child),.mud-button-group-horizontal:not(.mud-button-group-rtl)>:not(:last-child) .mud-button-root{border-top-right-radius:0;border-bottom-right-radius:0}.mud-button-group-horizontal:not(.mud-button-group-rtl)>.mud-button-root:not(:first-child),.mud-button-group-horizontal:not(.mud-button-group-rtl)>:not(:first-child) .mud-button-root{border-top-left-radius:0;border-bottom-left-radius:0;margin-left:-1px}.mud-button-group-horizontal.mud-button-group-rtl>.mud-button-root:not(:last-child),.mud-button-group-horizontal.mud-button-group-rtl>:not(:last-child) .mud-button-root{border-top-left-radius:0;border-bottom-left-radius:0;margin-left:-1px}.mud-button-group-horizontal.mud-button-group-rtl>.mud-button-root:not(:first-child),.mud-button-group-horizontal.mud-button-group-rtl>:not(:first-child) .mud-button-root{border-top-right-radius:0;border-bottom-right-radius:0}.mud-button-group-vertical{flex-direction:column}.mud-button-group-vertical .mud-icon-button{width:100%}.mud-button-group-vertical>.mud-button-root:not(:last-child),.mud-button-group-vertical>:not(:last-child) .mud-button-root{border-bottom-right-radius:0;border-bottom-left-radius:0}.mud-button-group-vertical>.mud-button-root:not(:first-child),.mud-button-group-vertical>:not(:first-child) .mud-button-root{border-top-right-radius:0;border-top-left-radius:0;margin-top:-1px}.mud-button-group-text.mud-button-group-override-styles .mud-button-root{padding:6px 8px}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-horizontal:not(.mud-button-group-rtl) .mud-button-root:not(:first-child),.mud-button-group-text.mud-button-group-override-styles.mud-button-group-horizontal:not(.mud-button-group-rtl)>:not(:first-child) .mud-button-root{border-left:1px solid rgb(from var(--mud-palette-text-primary) r g b/var(--mud-palette-border-opacity))}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-horizontal.mud-button-group-rtl .mud-button-root:not(:first-child),.mud-button-group-text.mud-button-group-override-styles.mud-button-group-horizontal.mud-button-group-rtl>:not(:first-child) .mud-button-root{border-right:1px solid rgb(from var(--mud-palette-text-primary) r g b/var(--mud-palette-border-opacity))}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-vertical .mud-button-root:not(:last-child),.mud-button-group-text.mud-button-group-override-styles.mud-button-group-vertical>:not(:last-child) .mud-button-root{border-bottom:1px solid rgb(from var(--mud-palette-text-primary) r g b/var(--mud-palette-border-opacity))}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-primary .mud-button-root{color:var(--mud-palette-primary);--mud-ripple-color: var(--mud-palette-primary)}@media(hover: hover)and (pointer: fine){.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-primary .mud-button-root:hover{background-color:var(--mud-palette-primary-hover)}}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-primary .mud-button-root:focus-visible,.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-primary .mud-button-root:active{background-color:var(--mud-palette-primary-hover)}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-primary.mud-button-group-horizontal:not(.mud-button-group-rtl) .mud-button-root:not(:first-child),.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-primary.mud-button-group-horizontal:not(.mud-button-group-rtl)>:not(:first-child) .mud-button-root{border-left:1px solid rgb(from var(--mud-palette-primary) r g b/var(--mud-palette-border-opacity))}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-primary.mud-button-group-horizontal.mud-button-group-rtl .mud-button-root:not(:first-child),.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-primary.mud-button-group-horizontal.mud-button-group-rtl>:not(:first-child) .mud-button-root{border-right:1px solid rgb(from var(--mud-palette-primary) r g b/var(--mud-palette-border-opacity))}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-primary.mud-button-group-vertical .mud-button-root:not(:last-child),.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-primary.mud-button-group-vertical>:not(:last-child) .mud-button-root{border-bottom:1px solid rgb(from var(--mud-palette-primary) r g b/var(--mud-palette-border-opacity))}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-secondary .mud-button-root{color:var(--mud-palette-secondary);--mud-ripple-color: var(--mud-palette-secondary)}@media(hover: hover)and (pointer: fine){.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-secondary .mud-button-root:hover{background-color:var(--mud-palette-secondary-hover)}}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-secondary .mud-button-root:focus-visible,.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-secondary .mud-button-root:active{background-color:var(--mud-palette-secondary-hover)}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-secondary.mud-button-group-horizontal:not(.mud-button-group-rtl) .mud-button-root:not(:first-child),.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-secondary.mud-button-group-horizontal:not(.mud-button-group-rtl)>:not(:first-child) .mud-button-root{border-left:1px solid rgb(from var(--mud-palette-secondary) r g b/var(--mud-palette-border-opacity))}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-secondary.mud-button-group-horizontal.mud-button-group-rtl .mud-button-root:not(:first-child),.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-secondary.mud-button-group-horizontal.mud-button-group-rtl>:not(:first-child) .mud-button-root{border-right:1px solid rgb(from var(--mud-palette-secondary) r g b/var(--mud-palette-border-opacity))}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-secondary.mud-button-group-vertical .mud-button-root:not(:last-child),.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-secondary.mud-button-group-vertical>:not(:last-child) .mud-button-root{border-bottom:1px solid rgb(from var(--mud-palette-secondary) r g b/var(--mud-palette-border-opacity))}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-tertiary .mud-button-root{color:var(--mud-palette-tertiary);--mud-ripple-color: var(--mud-palette-tertiary)}@media(hover: hover)and (pointer: fine){.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-tertiary .mud-button-root:hover{background-color:var(--mud-palette-tertiary-hover)}}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-tertiary .mud-button-root:focus-visible,.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-tertiary .mud-button-root:active{background-color:var(--mud-palette-tertiary-hover)}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-tertiary.mud-button-group-horizontal:not(.mud-button-group-rtl) .mud-button-root:not(:first-child),.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-tertiary.mud-button-group-horizontal:not(.mud-button-group-rtl)>:not(:first-child) .mud-button-root{border-left:1px solid rgb(from var(--mud-palette-tertiary) r g b/var(--mud-palette-border-opacity))}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-tertiary.mud-button-group-horizontal.mud-button-group-rtl .mud-button-root:not(:first-child),.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-tertiary.mud-button-group-horizontal.mud-button-group-rtl>:not(:first-child) .mud-button-root{border-right:1px solid rgb(from var(--mud-palette-tertiary) r g b/var(--mud-palette-border-opacity))}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-tertiary.mud-button-group-vertical .mud-button-root:not(:last-child),.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-tertiary.mud-button-group-vertical>:not(:last-child) .mud-button-root{border-bottom:1px solid rgb(from var(--mud-palette-tertiary) r g b/var(--mud-palette-border-opacity))}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-info .mud-button-root{color:var(--mud-palette-info);--mud-ripple-color: var(--mud-palette-info)}@media(hover: hover)and (pointer: fine){.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-info .mud-button-root:hover{background-color:var(--mud-palette-info-hover)}}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-info .mud-button-root:focus-visible,.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-info .mud-button-root:active{background-color:var(--mud-palette-info-hover)}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-info.mud-button-group-horizontal:not(.mud-button-group-rtl) .mud-button-root:not(:first-child),.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-info.mud-button-group-horizontal:not(.mud-button-group-rtl)>:not(:first-child) .mud-button-root{border-left:1px solid rgb(from var(--mud-palette-info) r g b/var(--mud-palette-border-opacity))}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-info.mud-button-group-horizontal.mud-button-group-rtl .mud-button-root:not(:first-child),.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-info.mud-button-group-horizontal.mud-button-group-rtl>:not(:first-child) .mud-button-root{border-right:1px solid rgb(from var(--mud-palette-info) r g b/var(--mud-palette-border-opacity))}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-info.mud-button-group-vertical .mud-button-root:not(:last-child),.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-info.mud-button-group-vertical>:not(:last-child) .mud-button-root{border-bottom:1px solid rgb(from var(--mud-palette-info) r g b/var(--mud-palette-border-opacity))}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-success .mud-button-root{color:var(--mud-palette-success);--mud-ripple-color: var(--mud-palette-success)}@media(hover: hover)and (pointer: fine){.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-success .mud-button-root:hover{background-color:var(--mud-palette-success-hover)}}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-success .mud-button-root:focus-visible,.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-success .mud-button-root:active{background-color:var(--mud-palette-success-hover)}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-success.mud-button-group-horizontal:not(.mud-button-group-rtl) .mud-button-root:not(:first-child),.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-success.mud-button-group-horizontal:not(.mud-button-group-rtl)>:not(:first-child) .mud-button-root{border-left:1px solid rgb(from var(--mud-palette-success) r g b/var(--mud-palette-border-opacity))}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-success.mud-button-group-horizontal.mud-button-group-rtl .mud-button-root:not(:first-child),.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-success.mud-button-group-horizontal.mud-button-group-rtl>:not(:first-child) .mud-button-root{border-right:1px solid rgb(from var(--mud-palette-success) r g b/var(--mud-palette-border-opacity))}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-success.mud-button-group-vertical .mud-button-root:not(:last-child),.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-success.mud-button-group-vertical>:not(:last-child) .mud-button-root{border-bottom:1px solid rgb(from var(--mud-palette-success) r g b/var(--mud-palette-border-opacity))}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-warning .mud-button-root{color:var(--mud-palette-warning);--mud-ripple-color: var(--mud-palette-warning)}@media(hover: hover)and (pointer: fine){.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-warning .mud-button-root:hover{background-color:var(--mud-palette-warning-hover)}}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-warning .mud-button-root:focus-visible,.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-warning .mud-button-root:active{background-color:var(--mud-palette-warning-hover)}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-warning.mud-button-group-horizontal:not(.mud-button-group-rtl) .mud-button-root:not(:first-child),.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-warning.mud-button-group-horizontal:not(.mud-button-group-rtl)>:not(:first-child) .mud-button-root{border-left:1px solid rgb(from var(--mud-palette-warning) r g b/var(--mud-palette-border-opacity))}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-warning.mud-button-group-horizontal.mud-button-group-rtl .mud-button-root:not(:first-child),.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-warning.mud-button-group-horizontal.mud-button-group-rtl>:not(:first-child) .mud-button-root{border-right:1px solid rgb(from var(--mud-palette-warning) r g b/var(--mud-palette-border-opacity))}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-warning.mud-button-group-vertical .mud-button-root:not(:last-child),.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-warning.mud-button-group-vertical>:not(:last-child) .mud-button-root{border-bottom:1px solid rgb(from var(--mud-palette-warning) r g b/var(--mud-palette-border-opacity))}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-error .mud-button-root{color:var(--mud-palette-error);--mud-ripple-color: var(--mud-palette-error)}@media(hover: hover)and (pointer: fine){.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-error .mud-button-root:hover{background-color:var(--mud-palette-error-hover)}}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-error .mud-button-root:focus-visible,.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-error .mud-button-root:active{background-color:var(--mud-palette-error-hover)}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-error.mud-button-group-horizontal:not(.mud-button-group-rtl) .mud-button-root:not(:first-child),.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-error.mud-button-group-horizontal:not(.mud-button-group-rtl)>:not(:first-child) .mud-button-root{border-left:1px solid rgb(from var(--mud-palette-error) r g b/var(--mud-palette-border-opacity))}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-error.mud-button-group-horizontal.mud-button-group-rtl .mud-button-root:not(:first-child),.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-error.mud-button-group-horizontal.mud-button-group-rtl>:not(:first-child) .mud-button-root{border-right:1px solid rgb(from var(--mud-palette-error) r g b/var(--mud-palette-border-opacity))}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-error.mud-button-group-vertical .mud-button-root:not(:last-child),.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-error.mud-button-group-vertical>:not(:last-child) .mud-button-root{border-bottom:1px solid rgb(from var(--mud-palette-error) r g b/var(--mud-palette-border-opacity))}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-dark .mud-button-root{color:var(--mud-palette-dark);--mud-ripple-color: var(--mud-palette-dark)}@media(hover: hover)and (pointer: fine){.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-dark .mud-button-root:hover{background-color:var(--mud-palette-dark-hover)}}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-dark .mud-button-root:focus-visible,.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-dark .mud-button-root:active{background-color:var(--mud-palette-dark-hover)}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-dark.mud-button-group-horizontal:not(.mud-button-group-rtl) .mud-button-root:not(:first-child),.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-dark.mud-button-group-horizontal:not(.mud-button-group-rtl)>:not(:first-child) .mud-button-root{border-left:1px solid rgb(from var(--mud-palette-dark) r g b/var(--mud-palette-border-opacity))}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-dark.mud-button-group-horizontal.mud-button-group-rtl .mud-button-root:not(:first-child),.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-dark.mud-button-group-horizontal.mud-button-group-rtl>:not(:first-child) .mud-button-root{border-right:1px solid rgb(from var(--mud-palette-dark) r g b/var(--mud-palette-border-opacity))}.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-dark.mud-button-group-vertical .mud-button-root:not(:last-child),.mud-button-group-text.mud-button-group-override-styles.mud-button-group-text-dark.mud-button-group-vertical>:not(:last-child) .mud-button-root{border-bottom:1px solid rgb(from var(--mud-palette-dark) r g b/var(--mud-palette-border-opacity))}.mud-button-group-outlined.mud-button-group-override-styles .mud-button-root{padding:5px 15px;border:1px solid rgb(from var(--mud-palette-text-primary) r g b/var(--mud-palette-border-opacity))}.mud-button-group-outlined.mud-button-group-override-styles.mud-button-group-outlined-primary .mud-button-root{color:var(--mud-palette-primary);border:1px solid rgb(from var(--mud-palette-primary) r g b/var(--mud-palette-border-opacity));--mud-ripple-color: var(--mud-palette-primary)}@media(hover: hover)and (pointer: fine){.mud-button-group-outlined.mud-button-group-override-styles.mud-button-group-outlined-primary .mud-button-root:hover{background-color:var(--mud-palette-primary-hover)}}.mud-button-group-outlined.mud-button-group-override-styles.mud-button-group-outlined-primary .mud-button-root:focus-visible,.mud-button-group-outlined.mud-button-group-override-styles.mud-button-group-outlined-primary .mud-button-root:active{background-color:var(--mud-palette-primary-hover)}.mud-button-group-outlined.mud-button-group-override-styles.mud-button-group-outlined-secondary .mud-button-root{color:var(--mud-palette-secondary);border:1px solid rgb(from var(--mud-palette-secondary) r g b/var(--mud-palette-border-opacity));--mud-ripple-color: var(--mud-palette-secondary)}@media(hover: hover)and (pointer: fine){.mud-button-group-outlined.mud-button-group-override-styles.mud-button-group-outlined-secondary .mud-button-root:hover{background-color:var(--mud-palette-secondary-hover)}}.mud-button-group-outlined.mud-button-group-override-styles.mud-button-group-outlined-secondary .mud-button-root:focus-visible,.mud-button-group-outlined.mud-button-group-override-styles.mud-button-group-outlined-secondary .mud-button-root:active{background-color:var(--mud-palette-secondary-hover)}.mud-button-group-outlined.mud-button-group-override-styles.mud-button-group-outlined-tertiary .mud-button-root{color:var(--mud-palette-tertiary);border:1px solid rgb(from var(--mud-palette-tertiary) r g b/var(--mud-palette-border-opacity));--mud-ripple-color: var(--mud-palette-tertiary)}@media(hover: hover)and (pointer: fine){.mud-button-group-outlined.mud-button-group-override-styles.mud-button-group-outlined-tertiary .mud-button-root:hover{background-color:var(--mud-palette-tertiary-hover)}}.mud-button-group-outlined.mud-button-group-override-styles.mud-button-group-outlined-tertiary .mud-button-root:focus-visible,.mud-button-group-outlined.mud-button-group-override-styles.mud-button-group-outlined-tertiary .mud-button-root:active{background-color:var(--mud-palette-tertiary-hover)}.mud-button-group-outlined.mud-button-group-override-styles.mud-button-group-outlined-info .mud-button-root{color:var(--mud-palette-info);border:1px solid rgb(from var(--mud-palette-info) r g b/var(--mud-palette-border-opacity));--mud-ripple-color: var(--mud-palette-info)}@media(hover: hover)and (pointer: fine){.mud-button-group-outlined.mud-button-group-override-styles.mud-button-group-outlined-info .mud-button-root:hover{background-color:var(--mud-palette-info-hover)}}.mud-button-group-outlined.mud-button-group-override-styles.mud-button-group-outlined-info .mud-button-root:focus-visible,.mud-button-group-outlined.mud-button-group-override-styles.mud-button-group-outlined-info .mud-button-root:active{background-color:var(--mud-palette-info-hover)}.mud-button-group-outlined.mud-button-group-override-styles.mud-button-group-outlined-success .mud-button-root{color:var(--mud-palette-success);border:1px solid rgb(from var(--mud-palette-success) r g b/var(--mud-palette-border-opacity));--mud-ripple-color: var(--mud-palette-success)}@media(hover: hover)and (pointer: fine){.mud-button-group-outlined.mud-button-group-override-styles.mud-button-group-outlined-success .mud-button-root:hover{background-color:var(--mud-palette-success-hover)}}.mud-button-group-outlined.mud-button-group-override-styles.mud-button-group-outlined-success .mud-button-root:focus-visible,.mud-button-group-outlined.mud-button-group-override-styles.mud-button-group-outlined-success .mud-button-root:active{background-color:var(--mud-palette-success-hover)}.mud-button-group-outlined.mud-button-group-override-styles.mud-button-group-outlined-warning .mud-button-root{color:var(--mud-palette-warning);border:1px solid rgb(from var(--mud-palette-warning) r g b/var(--mud-palette-border-opacity));--mud-ripple-color: var(--mud-palette-warning)}@media(hover: hover)and (pointer: fine){.mud-button-group-outlined.mud-button-group-override-styles.mud-button-group-outlined-warning .mud-button-root:hover{background-color:var(--mud-palette-warning-hover)}}.mud-button-group-outlined.mud-button-group-override-styles.mud-button-group-outlined-warning .mud-button-root:focus-visible,.mud-button-group-outlined.mud-button-group-override-styles.mud-button-group-outlined-warning .mud-button-root:active{background-color:var(--mud-palette-warning-hover)}.mud-button-group-outlined.mud-button-group-override-styles.mud-button-group-outlined-error .mud-button-root{color:var(--mud-palette-error);border:1px solid rgb(from var(--mud-palette-error) r g b/var(--mud-palette-border-opacity));--mud-ripple-color: var(--mud-palette-error)}@media(hover: hover)and (pointer: fine){.mud-button-group-outlined.mud-button-group-override-styles.mud-button-group-outlined-error .mud-button-root:hover{background-color:var(--mud-palette-error-hover)}}.mud-button-group-outlined.mud-button-group-override-styles.mud-button-group-outlined-error .mud-button-root:focus-visible,.mud-button-group-outlined.mud-button-group-override-styles.mud-button-group-outlined-error .mud-button-root:active{background-color:var(--mud-palette-error-hover)}.mud-button-group-outlined.mud-button-group-override-styles.mud-button-group-outlined-dark .mud-button-root{color:var(--mud-palette-dark);border:1px solid rgb(from var(--mud-palette-dark) r g b/var(--mud-palette-border-opacity));--mud-ripple-color: var(--mud-palette-dark)}@media(hover: hover)and (pointer: fine){.mud-button-group-outlined.mud-button-group-override-styles.mud-button-group-outlined-dark .mud-button-root:hover{background-color:var(--mud-palette-dark-hover)}}.mud-button-group-outlined.mud-button-group-override-styles.mud-button-group-outlined-dark .mud-button-root:focus-visible,.mud-button-group-outlined.mud-button-group-override-styles.mud-button-group-outlined-dark .mud-button-root:active{background-color:var(--mud-palette-dark-hover)}.mud-button-group-filled{box-shadow:var(--mud-elevation-2)}.mud-button-group-filled .mud-button-root{box-shadow:none}@media(hover: hover)and (pointer: fine){.mud-button-group-filled .mud-button-root:hover{box-shadow:var(--mud-elevation-4)}}.mud-button-group-filled .mud-button-root:focus-visible,.mud-button-group-filled .mud-button-root:active{box-shadow:var(--mud-elevation-4)}.mud-button-group-filled.mud-button-group-override-styles .mud-button-root{background-color:var(--mud-palette-action-default-hover);padding:6px 16px}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-horizontal:not(.mud-button-group-rtl) .mud-button-root:not(:first-child),.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-horizontal:not(.mud-button-group-rtl)>:not(:first-child) .mud-button-root{border-left:1px solid rgb(from var(--mud-palette-divider) r g b/var(--mud-palette-border-opacity))}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-horizontal.mud-button-group-rtl .mud-button-root:not(:first-child),.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-horizontal.mud-button-group-rtl>:not(:first-child) .mud-button-root{border-right:1px solid rgb(from var(--mud-palette-divider) r g b/var(--mud-palette-border-opacity))}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-vertical .mud-button-root:not(:first-child),.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-vertical>:not(:first-child) .mud-button-root{border-top:1px solid rgb(from var(--mud-palette-divider) r g b/var(--mud-palette-border-opacity))}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-primary .mud-button-root{background-color:var(--mud-palette-primary);color:var(--mud-palette-primary-text);--mud-ripple-color: var(--mud-palette-primary-text);--mud-ripple-opacity: var(--mud-ripple-opacity-secondary)}@media(hover: hover)and (pointer: fine){.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-primary .mud-button-root:hover{background-color:var(--mud-palette-primary-darken)}}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-primary .mud-button-root:focus-visible,.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-primary .mud-button-root:active{background-color:var(--mud-palette-primary-darken)}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-primary .mud-button-root:disabled{background-color:var(--mud-palette-action-disabled-background)}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-primary.mud-button-group-horizontal:not(.mud-button-group-rtl) .mud-button-root:not(:first-child),.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-primary.mud-button-group-horizontal:not(.mud-button-group-rtl)>:not(:first-child) .mud-button-root{border-left:1px solid var(--mud-palette-primary-lighten)}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-primary.mud-button-group-horizontal.mud-button-group-rtl .mud-button-root:not(:first-child),.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-primary.mud-button-group-horizontal.mud-button-group-rtl>:not(:first-child) .mud-button-root{border-right:1px solid var(--mud-palette-primary-lighten)}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-primary.mud-button-group-vertical .mud-button-root:not(:first-child),.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-primary.mud-button-group-vertical>:not(:first-child) .mud-button-root{border-top:1px solid var(--mud-palette-primary-lighten)}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-secondary .mud-button-root{background-color:var(--mud-palette-secondary);color:var(--mud-palette-secondary-text);--mud-ripple-color: var(--mud-palette-secondary-text);--mud-ripple-opacity: var(--mud-ripple-opacity-secondary)}@media(hover: hover)and (pointer: fine){.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-secondary .mud-button-root:hover{background-color:var(--mud-palette-secondary-darken)}}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-secondary .mud-button-root:focus-visible,.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-secondary .mud-button-root:active{background-color:var(--mud-palette-secondary-darken)}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-secondary .mud-button-root:disabled{background-color:var(--mud-palette-action-disabled-background)}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-secondary.mud-button-group-horizontal:not(.mud-button-group-rtl) .mud-button-root:not(:first-child),.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-secondary.mud-button-group-horizontal:not(.mud-button-group-rtl)>:not(:first-child) .mud-button-root{border-left:1px solid var(--mud-palette-secondary-lighten)}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-secondary.mud-button-group-horizontal.mud-button-group-rtl .mud-button-root:not(:first-child),.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-secondary.mud-button-group-horizontal.mud-button-group-rtl>:not(:first-child) .mud-button-root{border-right:1px solid var(--mud-palette-secondary-lighten)}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-secondary.mud-button-group-vertical .mud-button-root:not(:first-child),.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-secondary.mud-button-group-vertical>:not(:first-child) .mud-button-root{border-top:1px solid var(--mud-palette-secondary-lighten)}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-tertiary .mud-button-root{background-color:var(--mud-palette-tertiary);color:var(--mud-palette-tertiary-text);--mud-ripple-color: var(--mud-palette-tertiary-text);--mud-ripple-opacity: var(--mud-ripple-opacity-secondary)}@media(hover: hover)and (pointer: fine){.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-tertiary .mud-button-root:hover{background-color:var(--mud-palette-tertiary-darken)}}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-tertiary .mud-button-root:focus-visible,.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-tertiary .mud-button-root:active{background-color:var(--mud-palette-tertiary-darken)}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-tertiary .mud-button-root:disabled{background-color:var(--mud-palette-action-disabled-background)}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-tertiary.mud-button-group-horizontal:not(.mud-button-group-rtl) .mud-button-root:not(:first-child),.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-tertiary.mud-button-group-horizontal:not(.mud-button-group-rtl)>:not(:first-child) .mud-button-root{border-left:1px solid var(--mud-palette-tertiary-lighten)}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-tertiary.mud-button-group-horizontal.mud-button-group-rtl .mud-button-root:not(:first-child),.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-tertiary.mud-button-group-horizontal.mud-button-group-rtl>:not(:first-child) .mud-button-root{border-right:1px solid var(--mud-palette-tertiary-lighten)}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-tertiary.mud-button-group-vertical .mud-button-root:not(:first-child),.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-tertiary.mud-button-group-vertical>:not(:first-child) .mud-button-root{border-top:1px solid var(--mud-palette-tertiary-lighten)}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-info .mud-button-root{background-color:var(--mud-palette-info);color:var(--mud-palette-info-text);--mud-ripple-color: var(--mud-palette-info-text);--mud-ripple-opacity: var(--mud-ripple-opacity-secondary)}@media(hover: hover)and (pointer: fine){.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-info .mud-button-root:hover{background-color:var(--mud-palette-info-darken)}}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-info .mud-button-root:focus-visible,.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-info .mud-button-root:active{background-color:var(--mud-palette-info-darken)}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-info .mud-button-root:disabled{background-color:var(--mud-palette-action-disabled-background)}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-info.mud-button-group-horizontal:not(.mud-button-group-rtl) .mud-button-root:not(:first-child),.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-info.mud-button-group-horizontal:not(.mud-button-group-rtl)>:not(:first-child) .mud-button-root{border-left:1px solid var(--mud-palette-info-lighten)}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-info.mud-button-group-horizontal.mud-button-group-rtl .mud-button-root:not(:first-child),.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-info.mud-button-group-horizontal.mud-button-group-rtl>:not(:first-child) .mud-button-root{border-right:1px solid var(--mud-palette-info-lighten)}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-info.mud-button-group-vertical .mud-button-root:not(:first-child),.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-info.mud-button-group-vertical>:not(:first-child) .mud-button-root{border-top:1px solid var(--mud-palette-info-lighten)}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-success .mud-button-root{background-color:var(--mud-palette-success);color:var(--mud-palette-success-text);--mud-ripple-color: var(--mud-palette-success-text);--mud-ripple-opacity: var(--mud-ripple-opacity-secondary)}@media(hover: hover)and (pointer: fine){.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-success .mud-button-root:hover{background-color:var(--mud-palette-success-darken)}}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-success .mud-button-root:focus-visible,.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-success .mud-button-root:active{background-color:var(--mud-palette-success-darken)}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-success .mud-button-root:disabled{background-color:var(--mud-palette-action-disabled-background)}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-success.mud-button-group-horizontal:not(.mud-button-group-rtl) .mud-button-root:not(:first-child),.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-success.mud-button-group-horizontal:not(.mud-button-group-rtl)>:not(:first-child) .mud-button-root{border-left:1px solid var(--mud-palette-success-lighten)}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-success.mud-button-group-horizontal.mud-button-group-rtl .mud-button-root:not(:first-child),.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-success.mud-button-group-horizontal.mud-button-group-rtl>:not(:first-child) .mud-button-root{border-right:1px solid var(--mud-palette-success-lighten)}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-success.mud-button-group-vertical .mud-button-root:not(:first-child),.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-success.mud-button-group-vertical>:not(:first-child) .mud-button-root{border-top:1px solid var(--mud-palette-success-lighten)}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-warning .mud-button-root{background-color:var(--mud-palette-warning);color:var(--mud-palette-warning-text);--mud-ripple-color: var(--mud-palette-warning-text);--mud-ripple-opacity: var(--mud-ripple-opacity-secondary)}@media(hover: hover)and (pointer: fine){.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-warning .mud-button-root:hover{background-color:var(--mud-palette-warning-darken)}}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-warning .mud-button-root:focus-visible,.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-warning .mud-button-root:active{background-color:var(--mud-palette-warning-darken)}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-warning .mud-button-root:disabled{background-color:var(--mud-palette-action-disabled-background)}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-warning.mud-button-group-horizontal:not(.mud-button-group-rtl) .mud-button-root:not(:first-child),.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-warning.mud-button-group-horizontal:not(.mud-button-group-rtl)>:not(:first-child) .mud-button-root{border-left:1px solid var(--mud-palette-warning-lighten)}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-warning.mud-button-group-horizontal.mud-button-group-rtl .mud-button-root:not(:first-child),.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-warning.mud-button-group-horizontal.mud-button-group-rtl>:not(:first-child) .mud-button-root{border-right:1px solid var(--mud-palette-warning-lighten)}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-warning.mud-button-group-vertical .mud-button-root:not(:first-child),.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-warning.mud-button-group-vertical>:not(:first-child) .mud-button-root{border-top:1px solid var(--mud-palette-warning-lighten)}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-error .mud-button-root{background-color:var(--mud-palette-error);color:var(--mud-palette-error-text);--mud-ripple-color: var(--mud-palette-error-text);--mud-ripple-opacity: var(--mud-ripple-opacity-secondary)}@media(hover: hover)and (pointer: fine){.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-error .mud-button-root:hover{background-color:var(--mud-palette-error-darken)}}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-error .mud-button-root:focus-visible,.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-error .mud-button-root:active{background-color:var(--mud-palette-error-darken)}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-error .mud-button-root:disabled{background-color:var(--mud-palette-action-disabled-background)}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-error.mud-button-group-horizontal:not(.mud-button-group-rtl) .mud-button-root:not(:first-child),.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-error.mud-button-group-horizontal:not(.mud-button-group-rtl)>:not(:first-child) .mud-button-root{border-left:1px solid var(--mud-palette-error-lighten)}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-error.mud-button-group-horizontal.mud-button-group-rtl .mud-button-root:not(:first-child),.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-error.mud-button-group-horizontal.mud-button-group-rtl>:not(:first-child) .mud-button-root{border-right:1px solid var(--mud-palette-error-lighten)}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-error.mud-button-group-vertical .mud-button-root:not(:first-child),.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-error.mud-button-group-vertical>:not(:first-child) .mud-button-root{border-top:1px solid var(--mud-palette-error-lighten)}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-dark .mud-button-root{background-color:var(--mud-palette-dark);color:var(--mud-palette-dark-text);--mud-ripple-color: var(--mud-palette-dark-text);--mud-ripple-opacity: var(--mud-ripple-opacity-secondary)}@media(hover: hover)and (pointer: fine){.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-dark .mud-button-root:hover{background-color:var(--mud-palette-dark-darken)}}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-dark .mud-button-root:focus-visible,.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-dark .mud-button-root:active{background-color:var(--mud-palette-dark-darken)}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-dark .mud-button-root:disabled{background-color:var(--mud-palette-action-disabled-background)}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-dark.mud-button-group-horizontal:not(.mud-button-group-rtl) .mud-button-root:not(:first-child),.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-dark.mud-button-group-horizontal:not(.mud-button-group-rtl)>:not(:first-child) .mud-button-root{border-left:1px solid var(--mud-palette-dark-lighten)}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-dark.mud-button-group-horizontal.mud-button-group-rtl .mud-button-root:not(:first-child),.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-dark.mud-button-group-horizontal.mud-button-group-rtl>:not(:first-child) .mud-button-root{border-right:1px solid var(--mud-palette-dark-lighten)}.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-dark.mud-button-group-vertical .mud-button-root:not(:first-child),.mud-button-group-filled.mud-button-group-override-styles.mud-button-group-filled-dark.mud-button-group-vertical>:not(:first-child) .mud-button-root{border-top:1px solid var(--mud-palette-dark-lighten)}.mud-button-group-disable-elevation{box-shadow:none}.mud-icon-button{flex:0 0 auto;padding:12px;overflow:visible;font-size:1.5rem;text-align:center;transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;border-radius:50%;color:var(--mud-palette-action-default)}.mud-icon-button.mud-button{min-width:unset;border-radius:var(--mud-default-borderradius)}@media(hover: hover)and (pointer: fine){.mud-icon-button:hover{background-color:var(--mud-palette-action-default-hover)}}.mud-icon-button:has(:focus-visible),.mud-icon-button:active{background-color:var(--mud-palette-action-default-hover)}.mud-icon-button:disabled{color:var(--mud-palette-action-disabled);background-color:rgba(0,0,0,0)}.mud-icon-button.mud-readonly,.mud-icon-button .mud-readonly:hover{cursor:default}.mud-icon-button-color-inherit{color:inherit}@media(hover: hover)and (pointer: fine){.mud-icon-button-color-inherit:hover{background-color:var(--mud-palette-action-default-hover)}}.mud-icon-button-color-inherit:focus-visible,.mud-icon-button-color-inherit:active{background-color:var(--mud-palette-action-default-hover)}.mud-icon-button-label{width:100%;display:flex;align-items:inherit;justify-content:inherit}.mud-icon-button-edge-start{margin-left:-12px;margin-inline-start:-12px;margin-inline-end:unset}.mud-icon-button-edge-end{margin-right:-12px;margin-inline-end:-12px;margin-inline-start:unset}.mud-icon-button-edge-margin-end{margin-right:8px;margin-inline-end:8px;margin-inline-start:unset}.mud-icon-button-size-small{padding:3px;font-size:1.125rem}.mud-icon-button-size-small.mud-icon-button-edge-start{margin-left:-3px;margin-inline-start:-3px;margin-inline-end:unset}.mud-icon-button-size-small.mud-icon-button-edge-end{margin-right:-3px;margin-inline-end:-3px;margin-inline-start:unset}.mud-icon-button-size-large.mud-button>.mud-icon-button-label>.mud-icon-size-large{font-size:2rem}.mud-card{display:flex;flex-direction:column}.mud-card-header{display:flex;padding:16px;align-items:center;border-top-left-radius:inherit;border-top-right-radius:inherit}.mud-card-header .mud-card-header-avatar{flex:0 0 auto;margin-right:16px;margin-inline-end:16px;margin-inline-start:unset}.mud-card-header .mud-card-header-content{flex:1 1 auto}.mud-card-header .mud-card-header-content .mud-typography{margin-bottom:0}.mud-card-header .mud-card-header-actions{flex:0 0 auto;align-self:flex-start;margin-top:-8px;margin-right:-8px;margin-inline-end:-8px;margin-inline-start:unset}.mud-card-media{display:block;background-size:cover;background-repeat:no-repeat;background-position:center;border-top-left-radius:inherit;border-top-right-radius:inherit}.mud-card-header+.mud-card-media{border-top-left-radius:0px;border-top-right-radius:0px}.mud-card-content{flex-grow:1;padding:16px}.mud-card-actions{display:flex;padding:8px;align-items:center}.mud-carousel{display:flex !important;position:relative;margin:0px !important;clip-path:inset(0px 0px 0px 0px);overflow:hidden}.mud-carousel.mud-carousel-primary{color:var(--mud-palette-primary-text)}.mud-carousel.mud-carousel-secondary{color:var(--mud-palette-secondary-text)}.mud-carousel.mud-carousel-tertiary{color:var(--mud-palette-tertiary-text)}.mud-carousel.mud-carousel-info{color:var(--mud-palette-info-text)}.mud-carousel.mud-carousel-success{color:var(--mud-palette-success-text)}.mud-carousel.mud-carousel-warning{color:var(--mud-palette-warning-text)}.mud-carousel.mud-carousel-error{color:var(--mud-palette-error-text)}.mud-carousel.mud-carousel-dark{color:var(--mud-palette-dark-text)}.mud-carousel-elements-rtl{transform:rotate(180deg) !important}.mud-carousel-item{position:absolute;left:0px;right:0px;top:0px;bottom:0px;margin:inherit;padding:inherit;z-index:2}.mud-carousel-item.mud-carousel-item-primary{color:var(--mud-palette-primary-text);background-color:var(--mud-palette-primary)}.mud-carousel-item.mud-carousel-item-secondary{color:var(--mud-palette-secondary-text);background-color:var(--mud-palette-secondary)}.mud-carousel-item.mud-carousel-item-tertiary{color:var(--mud-palette-tertiary-text);background-color:var(--mud-palette-tertiary)}.mud-carousel-item.mud-carousel-item-info{color:var(--mud-palette-info-text);background-color:var(--mud-palette-info)}.mud-carousel-item.mud-carousel-item-success{color:var(--mud-palette-success-text);background-color:var(--mud-palette-success)}.mud-carousel-item.mud-carousel-item-warning{color:var(--mud-palette-warning-text);background-color:var(--mud-palette-warning)}.mud-carousel-item.mud-carousel-item-error{color:var(--mud-palette-error-text);background-color:var(--mud-palette-error)}.mud-carousel-item.mud-carousel-item-dark{color:var(--mud-palette-dark-text);background-color:var(--mud-palette-dark)}.mud-carousel-item-exit{z-index:1}@keyframes mud-carousel-transition-fade-in-keyframe{from{opacity:0}to{opacity:1}}@keyframes mud-carousel-transition-fade-out-keyframe{from{opacity:1}to{opacity:0}}.mud-carousel-transition-fade-in{animation:.5s mud-carousel-transition-fade-in-keyframe}.mud-carousel-transition-fade-out{animation:.5s mud-carousel-transition-fade-out-keyframe;animation-fill-mode:forwards}.mud-carousel-transition-none{display:none}@keyframes mud-carousel-transition-slide-next-enter-keyframe{from{transform:translate3d(100%, 0, 0);visibility:visible}to{transform:translate3d(0, 0, 0)}}@keyframes mud-carousel-transition-slide-next-rtl-enter-keyframe{from{transform:translate3d(-100%, 0, 0);visibility:visible}to{transform:translate3d(0, 0, 0)}}@keyframes mud-carousel-transition-slide-next-exit-keyframe{from{transform:translate3d(0, 0, 0);visibility:visible}to{transform:translate3d(-100%, 0, 0)}}@keyframes mud-carousel-transition-slide-next-rtl-exit-keyframe{from{transform:translate3d(0, 0, 0);visibility:visible}to{transform:translate3d(100%, 0, 0)}}.mud-carousel-transition-slide-next-enter{animation:.5s mud-carousel-transition-slide-next-enter-keyframe}.mud-carousel-transition-slide-next-rtl-enter{animation:.5s mud-carousel-transition-slide-next-rtl-enter-keyframe}.mud-carousel-transition-slide-next-exit{animation:.5s mud-carousel-transition-slide-next-exit-keyframe;animation-fill-mode:forwards}.mud-carousel-transition-slide-next-rtl-exit{animation:.5s mud-carousel-transition-slide-next-rtl-exit-keyframe;animation-fill-mode:forwards}@keyframes mud-carousel-transition-slide-prev-enter-keyframe{from{transform:translate3d(-100%, 0, 0);visibility:visible}to{transform:translate3d(0, 0, 0)}}@keyframes mud-carousel-transition-slide-prev-rtl-enter-keyframe{from{transform:translate3d(100%, 0, 0);visibility:visible}to{transform:translate3d(0, 0, 0)}}@keyframes mud-carousel-transition-slide-prev-exit-keyframe{from{transform:translate3d(0, 0, 0);visibility:visible}to{transform:translate3d(100%, 0, 0)}}@keyframes mud-carousel-transition-slide-prev-rtl-exit-keyframe{from{transform:translate3d(0, 0, 0);visibility:visible}to{transform:translate3d(-100%, 0, 0)}}.mud-carousel-transition-slide-prev-enter{animation:.5s mud-carousel-transition-slide-prev-enter-keyframe}.mud-carousel-transition-slide-prev-rtl-enter{animation:.5s mud-carousel-transition-slide-prev-rtl-enter-keyframe}.mud-carousel-transition-slide-prev-exit{animation:.5s mud-carousel-transition-slide-prev-exit-keyframe;animation-fill-mode:forwards}.mud-carousel-transition-slide-prev-rtl-exit{animation:.5s mud-carousel-transition-slide-prev-rtl-exit-keyframe;animation-fill-mode:forwards}.mud-chart{display:flex;min-height:fit-content;min-width:fit-content}.mud-chart svg{order:2}.mud-chart.mud-chart-legend-bottom{flex-direction:column}.mud-chart.mud-chart-legend-bottom .mud-chart-legend{margin-top:10px;justify-content:center;width:100%;order:3}.mud-chart.mud-chart-legend-top{flex-direction:column}.mud-chart.mud-chart-legend-top .mud-chart-legend{justify-content:center;width:100%;order:1}.mud-chart.mud-chart-legend-right{flex-direction:row}.mud-chart.mud-chart-legend-right .mud-chart-legend{flex-direction:column;order:3;min-width:fit-content}.mud-chart.mud-chart-legend-left{flex-direction:row}.mud-chart.mud-chart-legend-left .mud-chart-legend{flex-direction:column;order:1;min-width:fit-content}.mud-chart .mud-chart-donut,.mud-chart .mud-chart-pie,.mud-chart mud-chart-line{display:flex;margin:auto}.mud-chart .mud-chart-legend{display:flex;padding:10px 0px;margin:auto;flex-wrap:wrap}.mud-chart .mud-chart-legend .mud-chart-legend-item{display:block;margin:2px 5px}.mud-chart .mud-chart-legend .mud-chart-legend-item .mud-chart-legend-marker{height:12px;width:12px;border-radius:50%;position:relative;display:inline-flex}.mud-chart .mud-chart-legend .mud-chart-legend-item .mud-chart-legend-text{display:inline-flex}.mud-chart .mud-chart-legend .mud-chart-legend-item .mud-chart-legend-checkbox{display:flex;align-items:center}.mud-chart .mud-chart-legend .mud-chart-legend-item .mud-input-control{width:35px !important}.mud-charts-yaxis{fill:var(--mud-palette-text-primary)}.mud-charts-xaxis{fill:var(--mud-palette-text-primary)}.mud-chart-donut .mud-donut-hole{fill:rgba(0,0,0,0);user-select:none;pointer-events:unset}.mud-chart-donut .mud-donut-ring{fill:rgba(0,0,0,0);stroke:#fff;pointer-events:unset}.mud-chart-donut .mud-donut-segment{fill:rgba(0,0,0,0);pointer-events:stroke;-webkit-transition:stroke .2s ease;-moz-transition:stroke .2s ease;-o-transition:stroke .2s ease;transition:stroke .2s ease}.mud-chart-legend-marker{height:12px;width:12px;border-radius:50%;position:relative;display:inline-block}.mud-chart-marker-color-0{background-color:#008ffb}.mud-chart-marker-color-1{background-color:#00e396}.mud-chart-marker-color-2{background-color:#feb019}.mud-chart-marker-color-3{background-color:#ff4560}.mud-chart-marker-color-4{background-color:#594ae2}.mud-chart-cell text{fill:#000}.mud-chart-heatmap-legend line{stroke:var(--mud-palette-text-primary)}.mud-chart-heatmap-legend text{fill:var(--mud-palette-text-primary)}.mud-chat{display:grid;column-gap:.75rem;padding-top:.25rem;padding-bottom:.25rem;border-radius:var(--mud-default-borderradius)}.mud-chat.mud-dense .mud-chat-bubble{padding:.1875rem 1rem;min-height:.9166666667rem}.mud-chat.mud-dense .mud-chat-bubble+.mud-chat-bubble{margin-top:.1875rem}.mud-chat.mud-dense .mud-chat-header{line-height:.4166666667rem}.mud-chat.mud-square{border-radius:0px}.mud-chat.mud-square .mud-chat-bubble{border-radius:0px}.mud-chat.mud-chat-arrow-top .mud-chat-bubble:before{content:"";mask-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0nMycgaGVpZ2h0PSczJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnPjxwYXRoIGZpbGw9J2JsYWNrJyBkPSdtIDAgMCBMIDMgMCBMIDMgMyBDIDMgMiAxIDAgMCAwJy8+PC9zdmc+);bottom:auto;top:0}.mud-chat.mud-chat-arrow-top.mud-chat-start .mud-chat-bubble:before,.mud-chat.mud-chat-arrow-top.mud-chat-end.mud-chat-rtl .mud-chat-bubble:before{transform:none}.mud-chat.mud-chat-arrow-top.mud-chat-end .mud-chat-bubble:before,.mud-chat.mud-chat-arrow-top.mud-chat-start.mud-chat-rtl .mud-chat-bubble:before{transform:scaleX(-1)}.mud-chat.mud-chat-arrow-top.mud-chat-start .mud-chat-bubble,.mud-chat.mud-chat-arrow-top.mud-chat-end.mud-chat-rtl .mud-chat-bubble{border-top-left-radius:0}.mud-chat.mud-chat-arrow-top.mud-chat-end .mud-chat-bubble,.mud-chat.mud-chat-arrow-top.mud-chat-start.mud-chat-rtl .mud-chat-bubble{border-top-right-radius:0}.mud-chat.mud-chat-arrow-bottom .mud-chat-bubble:before{content:"";mask-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0nMycgaGVpZ2h0PSczJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnPjxwYXRoIGZpbGw9J2JsYWNrJyBkPSdtIDAgMyBMIDMgMyBMIDMgMCBDIDMgMSAxIDMgMCAzJy8+PC9zdmc+);bottom:0}.mud-chat.mud-chat-arrow-bottom.mud-chat-start .mud-chat-bubble:before,.mud-chat.mud-chat-arrow-bottom.mud-chat-end.mud-chat-rtl .mud-chat-bubble:before{transform:none}.mud-chat.mud-chat-arrow-bottom.mud-chat-end .mud-chat-bubble:before,.mud-chat.mud-chat-arrow-bottom.mud-chat-start.mud-chat-rtl .mud-chat-bubble:before{transform:scaleX(-1)}.mud-chat.mud-chat-arrow-bottom.mud-chat-start .mud-chat-bubble,.mud-chat.mud-chat-arrow-bottom.mud-chat-end.mud-chat-rtl .mud-chat-bubble{border-bottom-left-radius:0}.mud-chat.mud-chat-arrow-bottom.mud-chat-end .mud-chat-bubble,.mud-chat.mud-chat-arrow-bottom.mud-chat-start.mud-chat-rtl .mud-chat-bubble{border-bottom-right-radius:0}.mud-chat.mud-chat-arrow-middle .mud-chat-bubble:before{content:"";mask-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzIDMiIHdpZHRoPSIzMDAiIGhlaWdodD0iMzAwIj4KICA8cG9seWdvbiBwb2ludHM9IjMsMCAzLDMgMS41LDEuNSIgZmlsbD0iYmxhY2siIC8+Cjwvc3ZnPg==);top:50%}.mud-chat.mud-chat-arrow-middle.mud-chat-start .mud-chat-bubble:before,.mud-chat.mud-chat-arrow-middle.mud-chat-end.mud-chat-rtl .mud-chat-bubble:before{transform:translateY(-50%)}.mud-chat.mud-chat-arrow-middle.mud-chat-end .mud-chat-bubble:before,.mud-chat.mud-chat-arrow-middle.mud-chat-start.mud-chat-rtl .mud-chat-bubble:before{transform:scaleX(-1) translateY(-50%)}.mud-chat-bubble{position:relative;text-align:start;align-content:center;width:fit-content;padding:.5rem 1rem;max-width:90%;border-radius:var(--mud-default-borderradius);min-width:2.75rem;min-height:2.75rem}.mud-chat-bubble.mud-chat-bubble-clickable{cursor:pointer;user-select:none;-webkit-appearance:none;-webkit-tap-highlight-color:rgba(0,0,0,0);transition:background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;--mud-ripple-color: $default-foreground;--mud-ripple-opacity: var(--mud-ripple-opacity-secondary) !important}@media(hover: hover)and (pointer: fine){.mud-chat-bubble.mud-chat-bubble-clickable:hover{box-shadow:0px 2px 4px -1px rgba(0,0,0,.2),0px 4px 5px 0px rgba(0,0,0,.14),0px 1px 10px 0px rgba(0,0,0,.12);background-color:var(--mud-palette-action-disabled-background)}}.mud-chat-bubble.mud-chat-bubble-clickable:focus-visible{box-shadow:0px 2px 4px -1px rgba(0,0,0,.2),0px 4px 5px 0px rgba(0,0,0,.14),0px 1px 10px 0px rgba(0,0,0,.12);background-color:var(--mud-palette-action-disabled-background)}.mud-chat-bubble.mud-chat-bubble-clickable:active{box-shadow:0px 5px 5px -3px rgba(0,0,0,.2),0px 8px 10px 1px rgba(0,0,0,.14),0px 3px 14px 2px rgba(0,0,0,.12);background-color:var(--mud-palette-action-disabled-background)}.mud-chat-bubble:before{position:absolute;width:.75rem;height:.75rem;background-color:inherit;mask-size:contain;mask-repeat:no-repeat;mask-position:center}.mud-chat-bubble+.mud-chat-bubble{margin-top:.5rem}.mud-chat-bubble+.mud-chat-bubble:before{content:none !important}.mud-chat-header{grid-row-start:1;font-size:.875rem;line-height:1.25rem;margin-left:.25rem;margin-right:.25rem;min-height:.5rem}.mud-chat-header time{margin-left:.5rem;opacity:.5;font-size:.75rem;line-height:1rem}.mud-chat-footer{opacity:.5;font-size:.875rem;line-height:1rem;margin-left:.25rem;margin-right:.25rem;min-height:.5rem}.mud-chat .mud-avatar{align-self:center;grid-row-start:1}.mud-chat:has(.mud-chat-header) .mud-avatar{grid-row-start:2}.mud-chat-start{place-items:start;grid-template-columns:1fr 99fr}.mud-chat-start .mud-chat-header,.mud-chat-start .mud-chat-footer{grid-column-start:2}.mud-chat-start .mud-avatar{grid-column-start:1;margin-left:.25rem;margin-right:-0.35rem}.mud-chat-start .mud-chat-bubble{grid-column-start:2}.mud-chat-start .mud-chat-bubble:before{inset-inline-start:-0.749rem}.mud-chat-end{place-items:end;grid-template-columns:99fr 1fr}.mud-chat-end .mud-chat-header,.mud-chat-end .mud-chat-footer{grid-column-start:1}.mud-chat-end .mud-avatar{grid-column-start:2;margin-right:.25rem;margin-left:-0.35rem}.mud-chat-end .mud-chat-bubble{grid-column-start:1;text-align:end}.mud-chat-end .mud-chat-bubble:before{inset-inline-start:100%;transform:scaleX(-1)}.mud-chat-text-default{color:var(--mud-palette-text-primary);background-color:var(--mud-palette-action-default-hover);--mud-ripple-color: $default-foreground}.mud-chat-text-primary{color:var(--mud-palette-primary-darken);background-color:var(--mud-palette-primary-hover);--mud-ripple-color: var(--mud-palette-primary-darken)}.mud-chat-text-secondary{color:var(--mud-palette-secondary-darken);background-color:var(--mud-palette-secondary-hover);--mud-ripple-color: var(--mud-palette-secondary-darken)}.mud-chat-text-tertiary{color:var(--mud-palette-tertiary-darken);background-color:var(--mud-palette-tertiary-hover);--mud-ripple-color: var(--mud-palette-tertiary-darken)}.mud-chat-text-info{color:var(--mud-palette-info-darken);background-color:var(--mud-palette-info-hover);--mud-ripple-color: var(--mud-palette-info-darken)}.mud-chat-text-success{color:var(--mud-palette-success-darken);background-color:var(--mud-palette-success-hover);--mud-ripple-color: var(--mud-palette-success-darken)}.mud-chat-text-warning{color:var(--mud-palette-warning-darken);background-color:var(--mud-palette-warning-hover);--mud-ripple-color: var(--mud-palette-warning-darken)}.mud-chat-text-error{color:var(--mud-palette-error-darken);background-color:var(--mud-palette-error-hover);--mud-ripple-color: var(--mud-palette-error-darken)}.mud-chat-text-dark{color:var(--mud-palette-dark-darken);background-color:var(--mud-palette-dark-hover);--mud-ripple-color: var(--mud-palette-dark-darken)}.mud-chat-outlined-default{color:var(--mud-palette-text-primary);border:1px solid var(--mud-palette-action-default-hover);--mud-ripple-color: $default-foreground}.mud-chat-outlined-default:before{background-color:var(--mud-palette-action-default-hover)}.mud-chat-outlined-default.mud-chat-arrow-top:before{top:-0.05rem !important}.mud-chat-outlined-default.mud-chat-arrow-bottom:before{bottom:-0.07rem !important}.mud-chat-outlined-primary{color:var(--mud-palette-primary-darken);border:1px solid var(--mud-palette-primary);--mud-ripple-color: var(--mud-palette-primary-darken)}.mud-chat-outlined-primary:before{background-color:var(--mud-palette-primary-darken)}.mud-chat-outlined-primary.mud-chat-arrow-top:before{top:-0.05rem !important}.mud-chat-outlined-primary.mud-chat-arrow-bottom:before{bottom:-0.02rem !important}.mud-chat-outlined-secondary{color:var(--mud-palette-secondary-darken);border:1px solid var(--mud-palette-secondary);--mud-ripple-color: var(--mud-palette-secondary-darken)}.mud-chat-outlined-secondary:before{background-color:var(--mud-palette-secondary-darken)}.mud-chat-outlined-secondary.mud-chat-arrow-top:before{top:-0.05rem !important}.mud-chat-outlined-secondary.mud-chat-arrow-bottom:before{bottom:-0.02rem !important}.mud-chat-outlined-tertiary{color:var(--mud-palette-tertiary-darken);border:1px solid var(--mud-palette-tertiary);--mud-ripple-color: var(--mud-palette-tertiary-darken)}.mud-chat-outlined-tertiary:before{background-color:var(--mud-palette-tertiary-darken)}.mud-chat-outlined-tertiary.mud-chat-arrow-top:before{top:-0.05rem !important}.mud-chat-outlined-tertiary.mud-chat-arrow-bottom:before{bottom:-0.02rem !important}.mud-chat-outlined-info{color:var(--mud-palette-info-darken);border:1px solid var(--mud-palette-info);--mud-ripple-color: var(--mud-palette-info-darken)}.mud-chat-outlined-info:before{background-color:var(--mud-palette-info-darken)}.mud-chat-outlined-info.mud-chat-arrow-top:before{top:-0.05rem !important}.mud-chat-outlined-info.mud-chat-arrow-bottom:before{bottom:-0.02rem !important}.mud-chat-outlined-success{color:var(--mud-palette-success-darken);border:1px solid var(--mud-palette-success);--mud-ripple-color: var(--mud-palette-success-darken)}.mud-chat-outlined-success:before{background-color:var(--mud-palette-success-darken)}.mud-chat-outlined-success.mud-chat-arrow-top:before{top:-0.05rem !important}.mud-chat-outlined-success.mud-chat-arrow-bottom:before{bottom:-0.02rem !important}.mud-chat-outlined-warning{color:var(--mud-palette-warning-darken);border:1px solid var(--mud-palette-warning);--mud-ripple-color: var(--mud-palette-warning-darken)}.mud-chat-outlined-warning:before{background-color:var(--mud-palette-warning-darken)}.mud-chat-outlined-warning.mud-chat-arrow-top:before{top:-0.05rem !important}.mud-chat-outlined-warning.mud-chat-arrow-bottom:before{bottom:-0.02rem !important}.mud-chat-outlined-error{color:var(--mud-palette-error-darken);border:1px solid var(--mud-palette-error);--mud-ripple-color: var(--mud-palette-error-darken)}.mud-chat-outlined-error:before{background-color:var(--mud-palette-error-darken)}.mud-chat-outlined-error.mud-chat-arrow-top:before{top:-0.05rem !important}.mud-chat-outlined-error.mud-chat-arrow-bottom:before{bottom:-0.02rem !important}.mud-chat-outlined-dark{color:var(--mud-palette-dark-darken);border:1px solid var(--mud-palette-dark);--mud-ripple-color: var(--mud-palette-dark-darken)}.mud-chat-outlined-dark:before{background-color:var(--mud-palette-dark-darken)}.mud-chat-outlined-dark.mud-chat-arrow-top:before{top:-0.05rem !important}.mud-chat-outlined-dark.mud-chat-arrow-bottom:before{bottom:-0.02rem !important}.mud-chat-filled-default{color:var(--mud-palette-text-primary);font-weight:500;background-color:var(--mud-palette-action-default-hover);--mud-ripple-color: $default-foreground}.mud-chat-filled-primary{color:var(--mud-palette-primary-text);font-weight:500;background-color:var(--mud-palette-primary);--mud-ripple-color: var(--mud-palette-primary-text)}.mud-chat-filled-secondary{color:var(--mud-palette-secondary-text);font-weight:500;background-color:var(--mud-palette-secondary);--mud-ripple-color: var(--mud-palette-secondary-text)}.mud-chat-filled-tertiary{color:var(--mud-palette-tertiary-text);font-weight:500;background-color:var(--mud-palette-tertiary);--mud-ripple-color: var(--mud-palette-tertiary-text)}.mud-chat-filled-info{color:var(--mud-palette-info-text);font-weight:500;background-color:var(--mud-palette-info);--mud-ripple-color: var(--mud-palette-info-text)}.mud-chat-filled-success{color:var(--mud-palette-success-text);font-weight:500;background-color:var(--mud-palette-success);--mud-ripple-color: var(--mud-palette-success-text)}.mud-chat-filled-warning{color:var(--mud-palette-warning-text);font-weight:500;background-color:var(--mud-palette-warning);--mud-ripple-color: var(--mud-palette-warning-text)}.mud-chat-filled-error{color:var(--mud-palette-error-text);font-weight:500;background-color:var(--mud-palette-error);--mud-ripple-color: var(--mud-palette-error-text)}.mud-chat-filled-dark{color:var(--mud-palette-dark-text);font-weight:500;background-color:var(--mud-palette-dark);--mud-ripple-color: var(--mud-palette-dark-text)}.mud-checkbox{cursor:pointer;display:inline-flex;align-items:center;vertical-align:middle;-webkit-tap-highlight-color:rgba(0,0,0,0)}@media(hover: hover)and (pointer: fine){.mud-checkbox .mud-disabled:hover{cursor:default;background-color:rgba(0,0,0,0) !important}.mud-checkbox .mud-disabled:hover *{cursor:default;color:var(--mud-palette-text-disabled)}}.mud-checkbox.mud-disabled,.mud-checkbox .mud-disabled:focus-visible,.mud-checkbox .mud-disabled:active{cursor:default;background-color:rgba(0,0,0,0) !important}.mud-checkbox.mud-disabled *,.mud-checkbox .mud-disabled:focus-visible *,.mud-checkbox .mud-disabled:active *{cursor:default;color:var(--mud-palette-text-disabled)}.mud-checkbox.mud-readonly,.mud-checkbox .mud-readonly:hover{cursor:default;background-color:rgba(0,0,0,0) !important}.mud-checkbox .mud-checkbox-dense{padding:4px}.mud-checkbox-input{top:0;left:0;width:100%;cursor:inherit;height:100%;margin:0;opacity:0;padding:0;z-index:1;position:absolute}.mud-checkbox-span{display:inline-block;width:100%;cursor:pointer}.mud-chart-legend-checkbox .mud-checkbox svg path:last-child{fill:var(--checkbox-color) !important}.mud-chip-container{display:contents}.mud-chip{border:none;display:inline-flex;max-width:100%;outline:0;padding:0 12px;position:relative;box-sizing:border-box;transition:background-color 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;align-items:center;white-space:nowrap;vertical-align:middle;justify-content:center;text-decoration:none;line-height:normal;margin:4px}.mud-chip.mud-disabled{opacity:.5;pointer-events:none}.mud-chip.mud-chip-size-small{border-radius:12px;font-size:12px;height:24px;padding:0 8px}.mud-chip.mud-chip-size-small .mud-avatar{margin-left:-4px;margin-right:4px;margin-inline-start:-4px;margin-inline-end:4px;width:18px;height:18px;font-size:.625rem}.mud-chip.mud-chip-size-small .mud-icon-root{font-size:1.125rem}.mud-chip.mud-chip-size-small .mud-chip-close-button{margin-right:-4px;margin-left:4px;margin-inline-end:-4px;margin-inline-start:4px}.mud-chip.mud-chip-size-medium{height:32px;font-size:14px;border-radius:16px}.mud-chip.mud-chip-size-medium .mud-avatar{margin-left:-8px;margin-right:8px;margin-inline-start:-8px;margin-inline-end:8px;width:24px;height:24px;font-size:.75rem}.mud-chip.mud-chip-size-large{height:40px;font-size:16px;border-radius:20px;padding:0 16px}.mud-chip.mud-chip-size-large .mud-avatar{margin-left:-12px;margin-right:8px;margin-inline-start:-12px;margin-inline-end:8px;width:32px;height:32px;font-size:1rem}.mud-chip.mud-chip-size-large .mud-chip-icon{font-size:1.5rem;margin-left:-6px;margin-right:6px;margin-inline-start:-6px;margin-inline-end:6px}.mud-chip.mud-chip-label{border-radius:var(--mud-default-borderradius)}.mud-chip.mud-clickable{cursor:pointer;user-select:none}.mud-chip .mud-chip-icon{margin-left:-4px;margin-right:4px;margin-inline-start:-4px;margin-inline-end:4px;color:inherit}.mud-chip .mud-chip-close-button{padding:1px;margin-right:-4px;margin-left:6px;margin-inline-end:-4px;margin-inline-start:6px;height:18px;width:18px;color:inherit;transition:.3s cubic-bezier(0.25, 0.8, 0.5, 1),visibility 0s}.mud-chip .mud-chip-close-button .mud-icon-size-small{font-size:1.15rem}@media(hover: hover)and (pointer: fine){.mud-chip .mud-chip-close-button:hover:not(.mud-disabled){opacity:.7}}.mud-chip .mud-chip-close-button:focus-visible:not(.mud-disabled),.mud-chip .mud-chip-close-button:active:not(.mud-disabled){opacity:.7}.mud-chip>.mud-chip-content{align-items:center;display:inline-flex;height:100%;max-width:100%}.mud-chip-filled{color:var(--mud-palette-text-primary);background-color:var(--mud-palette-action-disabled-background);--mud-ripple-opacity: var(--mud-ripple-opacity-secondary)}@media(hover: hover)and (pointer: fine){.mud-chip-filled.mud-clickable:hover:not(.mud-disabled){background-color:var(--mud-palette-action-disabled)}}.mud-chip-filled.mud-clickable:focus-visible:not(.mud-disabled),.mud-chip-filled.mud-clickable:active:not(.mud-disabled){background-color:var(--mud-palette-action-disabled)}.mud-chip-filled.mud-chip-color-primary{color:var(--mud-palette-primary-text);--mud-ripple-color: var(--mud-palette-primary-text) !important;background-color:var(--mud-palette-primary)}@media(hover: hover)and (pointer: fine){.mud-chip-filled.mud-chip-color-primary.mud-clickable:hover:not(.mud-disabled){background-color:var(--mud-palette-primary-darken)}}.mud-chip-filled.mud-chip-color-primary.mud-clickable:focus-visible:not(.mud-disabled),.mud-chip-filled.mud-chip-color-primary.mud-clickable:active:not(.mud-disabled){background-color:var(--mud-palette-primary-darken)}.mud-chip-filled.mud-chip-color-secondary{color:var(--mud-palette-secondary-text);--mud-ripple-color: var(--mud-palette-secondary-text) !important;background-color:var(--mud-palette-secondary)}@media(hover: hover)and (pointer: fine){.mud-chip-filled.mud-chip-color-secondary.mud-clickable:hover:not(.mud-disabled){background-color:var(--mud-palette-secondary-darken)}}.mud-chip-filled.mud-chip-color-secondary.mud-clickable:focus-visible:not(.mud-disabled),.mud-chip-filled.mud-chip-color-secondary.mud-clickable:active:not(.mud-disabled){background-color:var(--mud-palette-secondary-darken)}.mud-chip-filled.mud-chip-color-tertiary{color:var(--mud-palette-tertiary-text);--mud-ripple-color: var(--mud-palette-tertiary-text) !important;background-color:var(--mud-palette-tertiary)}@media(hover: hover)and (pointer: fine){.mud-chip-filled.mud-chip-color-tertiary.mud-clickable:hover:not(.mud-disabled){background-color:var(--mud-palette-tertiary-darken)}}.mud-chip-filled.mud-chip-color-tertiary.mud-clickable:focus-visible:not(.mud-disabled),.mud-chip-filled.mud-chip-color-tertiary.mud-clickable:active:not(.mud-disabled){background-color:var(--mud-palette-tertiary-darken)}.mud-chip-filled.mud-chip-color-info{color:var(--mud-palette-info-text);--mud-ripple-color: var(--mud-palette-info-text) !important;background-color:var(--mud-palette-info)}@media(hover: hover)and (pointer: fine){.mud-chip-filled.mud-chip-color-info.mud-clickable:hover:not(.mud-disabled){background-color:var(--mud-palette-info-darken)}}.mud-chip-filled.mud-chip-color-info.mud-clickable:focus-visible:not(.mud-disabled),.mud-chip-filled.mud-chip-color-info.mud-clickable:active:not(.mud-disabled){background-color:var(--mud-palette-info-darken)}.mud-chip-filled.mud-chip-color-success{color:var(--mud-palette-success-text);--mud-ripple-color: var(--mud-palette-success-text) !important;background-color:var(--mud-palette-success)}@media(hover: hover)and (pointer: fine){.mud-chip-filled.mud-chip-color-success.mud-clickable:hover:not(.mud-disabled){background-color:var(--mud-palette-success-darken)}}.mud-chip-filled.mud-chip-color-success.mud-clickable:focus-visible:not(.mud-disabled),.mud-chip-filled.mud-chip-color-success.mud-clickable:active:not(.mud-disabled){background-color:var(--mud-palette-success-darken)}.mud-chip-filled.mud-chip-color-warning{color:var(--mud-palette-warning-text);--mud-ripple-color: var(--mud-palette-warning-text) !important;background-color:var(--mud-palette-warning)}@media(hover: hover)and (pointer: fine){.mud-chip-filled.mud-chip-color-warning.mud-clickable:hover:not(.mud-disabled){background-color:var(--mud-palette-warning-darken)}}.mud-chip-filled.mud-chip-color-warning.mud-clickable:focus-visible:not(.mud-disabled),.mud-chip-filled.mud-chip-color-warning.mud-clickable:active:not(.mud-disabled){background-color:var(--mud-palette-warning-darken)}.mud-chip-filled.mud-chip-color-error{color:var(--mud-palette-error-text);--mud-ripple-color: var(--mud-palette-error-text) !important;background-color:var(--mud-palette-error)}@media(hover: hover)and (pointer: fine){.mud-chip-filled.mud-chip-color-error.mud-clickable:hover:not(.mud-disabled){background-color:var(--mud-palette-error-darken)}}.mud-chip-filled.mud-chip-color-error.mud-clickable:focus-visible:not(.mud-disabled),.mud-chip-filled.mud-chip-color-error.mud-clickable:active:not(.mud-disabled){background-color:var(--mud-palette-error-darken)}.mud-chip-filled.mud-chip-color-dark{color:var(--mud-palette-dark-text);--mud-ripple-color: var(--mud-palette-dark-text) !important;background-color:var(--mud-palette-dark)}@media(hover: hover)and (pointer: fine){.mud-chip-filled.mud-chip-color-dark.mud-clickable:hover:not(.mud-disabled){background-color:var(--mud-palette-dark-darken)}}.mud-chip-filled.mud-chip-color-dark.mud-clickable:focus-visible:not(.mud-disabled),.mud-chip-filled.mud-chip-color-dark.mud-clickable:active:not(.mud-disabled){background-color:var(--mud-palette-dark-darken)}.mud-chip-outlined{color:var(--mud-palette-text-primary);border:1px solid var(--mud-palette-lines-inputs)}@media(hover: hover)and (pointer: fine){.mud-chip-outlined.mud-clickable:hover:not(.mud-disabled){background-color:var(--mud-palette-action-default-hover)}}.mud-chip-outlined.mud-clickable:focus-visible:not(.mud-disabled),.mud-chip-outlined.mud-clickable:active:not(.mud-disabled){background-color:var(--mud-palette-action-default-hover)}.mud-chip-outlined.mud-chip-color-primary{color:var(--mud-palette-primary);--mud-ripple-color: var(--mud-palette-primary) !important;border:1px solid rgb(from var(--mud-palette-primary) r g b/var(--mud-palette-border-opacity))}@media(hover: hover)and (pointer: fine){.mud-chip-outlined.mud-chip-color-primary.mud-clickable:hover:not(.mud-disabled){background-color:var(--mud-palette-primary-hover)}}.mud-chip-outlined.mud-chip-color-primary.mud-clickable:focus-visible:not(.mud-disabled),.mud-chip-outlined.mud-chip-color-primary.mud-clickable:active:not(.mud-disabled){background-color:var(--mud-palette-primary-hover)}.mud-chip-outlined.mud-chip-color-primary.mud-chip-selected{background-color:var(--mud-palette-primary-hover)}@media(hover: hover)and (pointer: fine){.mud-chip-outlined.mud-chip-color-primary.mud-chip-selected:hover:not(.mud-disabled){background-color:rgba(var(--mud-palette-primary-rgb), 0.12)}}.mud-chip-outlined.mud-chip-color-primary.mud-chip-selected:focus-visible:not(.mud-disabled),.mud-chip-outlined.mud-chip-color-primary.mud-chip-selected:active:not(.mud-disabled){background-color:rgba(var(--mud-palette-primary-rgb), 0.12)}.mud-chip-outlined.mud-chip-color-secondary{color:var(--mud-palette-secondary);--mud-ripple-color: var(--mud-palette-secondary) !important;border:1px solid rgb(from var(--mud-palette-secondary) r g b/var(--mud-palette-border-opacity))}@media(hover: hover)and (pointer: fine){.mud-chip-outlined.mud-chip-color-secondary.mud-clickable:hover:not(.mud-disabled){background-color:var(--mud-palette-secondary-hover)}}.mud-chip-outlined.mud-chip-color-secondary.mud-clickable:focus-visible:not(.mud-disabled),.mud-chip-outlined.mud-chip-color-secondary.mud-clickable:active:not(.mud-disabled){background-color:var(--mud-palette-secondary-hover)}.mud-chip-outlined.mud-chip-color-secondary.mud-chip-selected{background-color:var(--mud-palette-secondary-hover)}@media(hover: hover)and (pointer: fine){.mud-chip-outlined.mud-chip-color-secondary.mud-chip-selected:hover:not(.mud-disabled){background-color:rgba(var(--mud-palette-secondary-rgb), 0.12)}}.mud-chip-outlined.mud-chip-color-secondary.mud-chip-selected:focus-visible:not(.mud-disabled),.mud-chip-outlined.mud-chip-color-secondary.mud-chip-selected:active:not(.mud-disabled){background-color:rgba(var(--mud-palette-secondary-rgb), 0.12)}.mud-chip-outlined.mud-chip-color-tertiary{color:var(--mud-palette-tertiary);--mud-ripple-color: var(--mud-palette-tertiary) !important;border:1px solid rgb(from var(--mud-palette-tertiary) r g b/var(--mud-palette-border-opacity))}@media(hover: hover)and (pointer: fine){.mud-chip-outlined.mud-chip-color-tertiary.mud-clickable:hover:not(.mud-disabled){background-color:var(--mud-palette-tertiary-hover)}}.mud-chip-outlined.mud-chip-color-tertiary.mud-clickable:focus-visible:not(.mud-disabled),.mud-chip-outlined.mud-chip-color-tertiary.mud-clickable:active:not(.mud-disabled){background-color:var(--mud-palette-tertiary-hover)}.mud-chip-outlined.mud-chip-color-tertiary.mud-chip-selected{background-color:var(--mud-palette-tertiary-hover)}@media(hover: hover)and (pointer: fine){.mud-chip-outlined.mud-chip-color-tertiary.mud-chip-selected:hover:not(.mud-disabled){background-color:rgba(var(--mud-palette-tertiary-rgb), 0.12)}}.mud-chip-outlined.mud-chip-color-tertiary.mud-chip-selected:focus-visible:not(.mud-disabled),.mud-chip-outlined.mud-chip-color-tertiary.mud-chip-selected:active:not(.mud-disabled){background-color:rgba(var(--mud-palette-tertiary-rgb), 0.12)}.mud-chip-outlined.mud-chip-color-info{color:var(--mud-palette-info);--mud-ripple-color: var(--mud-palette-info) !important;border:1px solid rgb(from var(--mud-palette-info) r g b/var(--mud-palette-border-opacity))}@media(hover: hover)and (pointer: fine){.mud-chip-outlined.mud-chip-color-info.mud-clickable:hover:not(.mud-disabled){background-color:var(--mud-palette-info-hover)}}.mud-chip-outlined.mud-chip-color-info.mud-clickable:focus-visible:not(.mud-disabled),.mud-chip-outlined.mud-chip-color-info.mud-clickable:active:not(.mud-disabled){background-color:var(--mud-palette-info-hover)}.mud-chip-outlined.mud-chip-color-info.mud-chip-selected{background-color:var(--mud-palette-info-hover)}@media(hover: hover)and (pointer: fine){.mud-chip-outlined.mud-chip-color-info.mud-chip-selected:hover:not(.mud-disabled){background-color:rgba(var(--mud-palette-info-rgb), 0.12)}}.mud-chip-outlined.mud-chip-color-info.mud-chip-selected:focus-visible:not(.mud-disabled),.mud-chip-outlined.mud-chip-color-info.mud-chip-selected:active:not(.mud-disabled){background-color:rgba(var(--mud-palette-info-rgb), 0.12)}.mud-chip-outlined.mud-chip-color-success{color:var(--mud-palette-success);--mud-ripple-color: var(--mud-palette-success) !important;border:1px solid rgb(from var(--mud-palette-success) r g b/var(--mud-palette-border-opacity))}@media(hover: hover)and (pointer: fine){.mud-chip-outlined.mud-chip-color-success.mud-clickable:hover:not(.mud-disabled){background-color:var(--mud-palette-success-hover)}}.mud-chip-outlined.mud-chip-color-success.mud-clickable:focus-visible:not(.mud-disabled),.mud-chip-outlined.mud-chip-color-success.mud-clickable:active:not(.mud-disabled){background-color:var(--mud-palette-success-hover)}.mud-chip-outlined.mud-chip-color-success.mud-chip-selected{background-color:var(--mud-palette-success-hover)}@media(hover: hover)and (pointer: fine){.mud-chip-outlined.mud-chip-color-success.mud-chip-selected:hover:not(.mud-disabled){background-color:rgba(var(--mud-palette-success-rgb), 0.12)}}.mud-chip-outlined.mud-chip-color-success.mud-chip-selected:focus-visible:not(.mud-disabled),.mud-chip-outlined.mud-chip-color-success.mud-chip-selected:active:not(.mud-disabled){background-color:rgba(var(--mud-palette-success-rgb), 0.12)}.mud-chip-outlined.mud-chip-color-warning{color:var(--mud-palette-warning);--mud-ripple-color: var(--mud-palette-warning) !important;border:1px solid rgb(from var(--mud-palette-warning) r g b/var(--mud-palette-border-opacity))}@media(hover: hover)and (pointer: fine){.mud-chip-outlined.mud-chip-color-warning.mud-clickable:hover:not(.mud-disabled){background-color:var(--mud-palette-warning-hover)}}.mud-chip-outlined.mud-chip-color-warning.mud-clickable:focus-visible:not(.mud-disabled),.mud-chip-outlined.mud-chip-color-warning.mud-clickable:active:not(.mud-disabled){background-color:var(--mud-palette-warning-hover)}.mud-chip-outlined.mud-chip-color-warning.mud-chip-selected{background-color:var(--mud-palette-warning-hover)}@media(hover: hover)and (pointer: fine){.mud-chip-outlined.mud-chip-color-warning.mud-chip-selected:hover:not(.mud-disabled){background-color:rgba(var(--mud-palette-warning-rgb), 0.12)}}.mud-chip-outlined.mud-chip-color-warning.mud-chip-selected:focus-visible:not(.mud-disabled),.mud-chip-outlined.mud-chip-color-warning.mud-chip-selected:active:not(.mud-disabled){background-color:rgba(var(--mud-palette-warning-rgb), 0.12)}.mud-chip-outlined.mud-chip-color-error{color:var(--mud-palette-error);--mud-ripple-color: var(--mud-palette-error) !important;border:1px solid rgb(from var(--mud-palette-error) r g b/var(--mud-palette-border-opacity))}@media(hover: hover)and (pointer: fine){.mud-chip-outlined.mud-chip-color-error.mud-clickable:hover:not(.mud-disabled){background-color:var(--mud-palette-error-hover)}}.mud-chip-outlined.mud-chip-color-error.mud-clickable:focus-visible:not(.mud-disabled),.mud-chip-outlined.mud-chip-color-error.mud-clickable:active:not(.mud-disabled){background-color:var(--mud-palette-error-hover)}.mud-chip-outlined.mud-chip-color-error.mud-chip-selected{background-color:var(--mud-palette-error-hover)}@media(hover: hover)and (pointer: fine){.mud-chip-outlined.mud-chip-color-error.mud-chip-selected:hover:not(.mud-disabled){background-color:rgba(var(--mud-palette-error-rgb), 0.12)}}.mud-chip-outlined.mud-chip-color-error.mud-chip-selected:focus-visible:not(.mud-disabled),.mud-chip-outlined.mud-chip-color-error.mud-chip-selected:active:not(.mud-disabled){background-color:rgba(var(--mud-palette-error-rgb), 0.12)}.mud-chip-outlined.mud-chip-color-dark{color:var(--mud-palette-dark);--mud-ripple-color: var(--mud-palette-dark) !important;border:1px solid rgb(from var(--mud-palette-dark) r g b/var(--mud-palette-border-opacity))}@media(hover: hover)and (pointer: fine){.mud-chip-outlined.mud-chip-color-dark.mud-clickable:hover:not(.mud-disabled){background-color:var(--mud-palette-dark-hover)}}.mud-chip-outlined.mud-chip-color-dark.mud-clickable:focus-visible:not(.mud-disabled),.mud-chip-outlined.mud-chip-color-dark.mud-clickable:active:not(.mud-disabled){background-color:var(--mud-palette-dark-hover)}.mud-chip-outlined.mud-chip-color-dark.mud-chip-selected{background-color:var(--mud-palette-dark-hover)}@media(hover: hover)and (pointer: fine){.mud-chip-outlined.mud-chip-color-dark.mud-chip-selected:hover:not(.mud-disabled){background-color:rgba(var(--mud-palette-dark-rgb), 0.12)}}.mud-chip-outlined.mud-chip-color-dark.mud-chip-selected:focus-visible:not(.mud-disabled),.mud-chip-outlined.mud-chip-color-dark.mud-chip-selected:active:not(.mud-disabled){background-color:rgba(var(--mud-palette-dark-rgb), 0.12)}.mud-chip-text{color:var(--mud-palette-text-primary);background-color:var(--mud-palette-action-default-hover)}@media(hover: hover)and (pointer: fine){.mud-chip-text.mud-clickable:hover:not(.mud-disabled){background-color:var(--mud-palette-action-disabled-background)}}.mud-chip-text.mud-clickable:focus-visible:not(.mud-disabled),.mud-chip-text.mud-clickable:active:not(.mud-disabled){background-color:var(--mud-palette-action-disabled-background)}.mud-chip-text.mud-chip-color-primary{color:var(--mud-palette-primary);--mud-ripple-color: var(--mud-palette-primary) !important;background-color:var(--mud-palette-primary-hover)}@media(hover: hover)and (pointer: fine){.mud-chip-text.mud-chip-color-primary.mud-clickable:hover:not(.mud-disabled){background-color:rgba(var(--mud-palette-primary-rgb), 0.12)}}.mud-chip-text.mud-chip-color-primary.mud-clickable:focus-visible:not(.mud-disabled),.mud-chip-text.mud-chip-color-primary.mud-clickable:active:not(.mud-disabled){background-color:rgba(var(--mud-palette-primary-rgb), 0.12)}.mud-chip-text.mud-chip-color-secondary{color:var(--mud-palette-secondary);--mud-ripple-color: var(--mud-palette-secondary) !important;background-color:var(--mud-palette-secondary-hover)}@media(hover: hover)and (pointer: fine){.mud-chip-text.mud-chip-color-secondary.mud-clickable:hover:not(.mud-disabled){background-color:rgba(var(--mud-palette-secondary-rgb), 0.12)}}.mud-chip-text.mud-chip-color-secondary.mud-clickable:focus-visible:not(.mud-disabled),.mud-chip-text.mud-chip-color-secondary.mud-clickable:active:not(.mud-disabled){background-color:rgba(var(--mud-palette-secondary-rgb), 0.12)}.mud-chip-text.mud-chip-color-tertiary{color:var(--mud-palette-tertiary);--mud-ripple-color: var(--mud-palette-tertiary) !important;background-color:var(--mud-palette-tertiary-hover)}@media(hover: hover)and (pointer: fine){.mud-chip-text.mud-chip-color-tertiary.mud-clickable:hover:not(.mud-disabled){background-color:rgba(var(--mud-palette-tertiary-rgb), 0.12)}}.mud-chip-text.mud-chip-color-tertiary.mud-clickable:focus-visible:not(.mud-disabled),.mud-chip-text.mud-chip-color-tertiary.mud-clickable:active:not(.mud-disabled){background-color:rgba(var(--mud-palette-tertiary-rgb), 0.12)}.mud-chip-text.mud-chip-color-info{color:var(--mud-palette-info);--mud-ripple-color: var(--mud-palette-info) !important;background-color:var(--mud-palette-info-hover)}@media(hover: hover)and (pointer: fine){.mud-chip-text.mud-chip-color-info.mud-clickable:hover:not(.mud-disabled){background-color:rgba(var(--mud-palette-info-rgb), 0.12)}}.mud-chip-text.mud-chip-color-info.mud-clickable:focus-visible:not(.mud-disabled),.mud-chip-text.mud-chip-color-info.mud-clickable:active:not(.mud-disabled){background-color:rgba(var(--mud-palette-info-rgb), 0.12)}.mud-chip-text.mud-chip-color-success{color:var(--mud-palette-success);--mud-ripple-color: var(--mud-palette-success) !important;background-color:var(--mud-palette-success-hover)}@media(hover: hover)and (pointer: fine){.mud-chip-text.mud-chip-color-success.mud-clickable:hover:not(.mud-disabled){background-color:rgba(var(--mud-palette-success-rgb), 0.12)}}.mud-chip-text.mud-chip-color-success.mud-clickable:focus-visible:not(.mud-disabled),.mud-chip-text.mud-chip-color-success.mud-clickable:active:not(.mud-disabled){background-color:rgba(var(--mud-palette-success-rgb), 0.12)}.mud-chip-text.mud-chip-color-warning{color:var(--mud-palette-warning);--mud-ripple-color: var(--mud-palette-warning) !important;background-color:var(--mud-palette-warning-hover)}@media(hover: hover)and (pointer: fine){.mud-chip-text.mud-chip-color-warning.mud-clickable:hover:not(.mud-disabled){background-color:rgba(var(--mud-palette-warning-rgb), 0.12)}}.mud-chip-text.mud-chip-color-warning.mud-clickable:focus-visible:not(.mud-disabled),.mud-chip-text.mud-chip-color-warning.mud-clickable:active:not(.mud-disabled){background-color:rgba(var(--mud-palette-warning-rgb), 0.12)}.mud-chip-text.mud-chip-color-error{color:var(--mud-palette-error);--mud-ripple-color: var(--mud-palette-error) !important;background-color:var(--mud-palette-error-hover)}@media(hover: hover)and (pointer: fine){.mud-chip-text.mud-chip-color-error.mud-clickable:hover:not(.mud-disabled){background-color:rgba(var(--mud-palette-error-rgb), 0.12)}}.mud-chip-text.mud-chip-color-error.mud-clickable:focus-visible:not(.mud-disabled),.mud-chip-text.mud-chip-color-error.mud-clickable:active:not(.mud-disabled){background-color:rgba(var(--mud-palette-error-rgb), 0.12)}.mud-chip-text.mud-chip-color-dark{color:var(--mud-palette-dark);--mud-ripple-color: var(--mud-palette-dark) !important;background-color:var(--mud-palette-dark-hover)}@media(hover: hover)and (pointer: fine){.mud-chip-text.mud-chip-color-dark.mud-clickable:hover:not(.mud-disabled){background-color:rgba(var(--mud-palette-dark-rgb), 0.12)}}.mud-chip-text.mud-chip-color-dark.mud-clickable:focus-visible:not(.mud-disabled),.mud-chip-text.mud-chip-color-dark.mud-clickable:active:not(.mud-disabled){background-color:rgba(var(--mud-palette-dark-rgb), 0.12)}.mud-collapse-container{overflow:hidden;display:grid;grid-template-rows:minmax(0, 0fr);transition:grid-template-rows 300ms ease-in-out}.mud-collapse-entering{grid-template-rows:minmax(0, 1fr)}.mud-collapse-entered{overflow:initial;grid-template-rows:minmax(0, 1fr)}.mud-collapse-entered .mud-collapse-wrapper{overflow-y:auto}.mud-collapse-hidden{visibility:hidden}.mud-collapse-wrapper{overflow:hidden;display:flex}.mud-collapse-wrapper-inner{width:100%}.mud-dialog-container{display:flex;position:fixed;top:0;left:0;width:100%;height:100%;z-index:var(--mud-zindex-dialog)}.mud-dialog-container.mud-dialog-center{align-items:center;justify-content:center}.mud-dialog-container.mud-dialog-topcenter{align-items:flex-start;justify-content:center;padding-top:32px}.mud-dialog-container.mud-dialog-bottomcenter{align-items:flex-end;justify-content:center;padding-bottom:32px}.mud-dialog-container.mud-dialog-centerright{align-items:center;justify-content:flex-end;padding-right:32px}.mud-dialog-container.mud-dialog-centerleft{align-items:center;justify-content:flex-start;padding-left:32px}.mud-dialog-container.mud-dialog-topleft .mud-dialog{position:absolute;top:32px;left:32px}.mud-dialog-container.mud-dialog-topright .mud-dialog{position:absolute;top:32px;right:32px}.mud-dialog-container.mud-dialog-bottomleft .mud-dialog{position:absolute;bottom:32px;left:32px}.mud-dialog-container.mud-dialog-bottomright .mud-dialog{position:absolute;bottom:32px;right:32px}.mud-dialog{display:flex;z-index:calc(var(--mud-zindex-dialog) + 2);flex-direction:column;color:var(--mud-palette-text-primary);background-color:var(--mud-palette-surface);border-radius:var(--mud-default-borderradius);-webkit-animation:mud-open-dialog-center .1s cubic-bezier(0.39, 0.575, 0.565, 1) both;animation:mud-open-dialog-center .1s cubic-bezier(0.39, 0.575, 0.565, 1) both;box-shadow:0px 11px 15px -7px rgba(0,0,0,.2),0px 24px 38px 3px rgba(0,0,0,.14),0px 9px 46px 8px rgba(0,0,0,.12);max-height:calc(100vh - var(--mud-appbar-height));max-height:calc(100dvh - var(--mud-appbar-height));overflow-y:auto;outline-style:none}.mud-dialog.mud-dialog-rtl .mud-dialog-title .mud-button-close{right:unset;left:8px}.mud-dialog .mud-dialog-title{z-index:1;flex:0 0 auto;margin:0;padding:16px 24px;border-top-left-radius:var(--mud-default-borderradius);border-top-right-radius:var(--mud-default-borderradius)}.mud-dialog .mud-dialog-title+*>.mud-dialog-content{border-radius:0}.mud-dialog .mud-dialog-title .mud-button-close{top:8px;right:8px;position:absolute}.mud-dialog .mud-dialog-content{position:relative;flex:1 1 auto;overflow:auto;padding:0px 24px;margin:8px 0px;-webkit-overflow-scrolling:touch;border-top-left-radius:var(--mud-default-borderradius);border-top-right-radius:var(--mud-default-borderradius)}.mud-dialog .mud-dialog-content.mud-dialog-no-side-padding{padding:0px;margin:12px 0px}.mud-dialog .mud-dialog-actions{flex:0 0 auto;display:flex;gap:8px;padding:8px;align-items:center;justify-content:flex-end;border-bottom-left-radius:var(--mud-default-borderradius);border-bottom-right-radius:var(--mud-default-borderradius)}.mud-dialog-width-false{max-width:calc(100% - 64px)}.mud-dialog-width-xs{max-width:444px}.mud-dialog-width-sm{max-width:600px}.mud-dialog-width-md{max-width:960px}.mud-dialog-width-lg{max-width:1280px}.mud-dialog-width-xl{max-width:1920px}.mud-dialog-width-xxl{max-width:2560px}.mud-dialog-width-full{width:calc(100% - 64px)}.mud-dialog-fullscreen{width:100%;height:100%;margin:0;max-width:100%;max-height:none;border-radius:0;overflow-y:hidden}@-webkit-keyframes mud-open-dialog-center{0%{opacity:0}1%{-webkit-transform:scale(0.5);transform:scale(0.5);opacity:1}100%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes mud-open-dialog-center{0%{opacity:0}1%{-webkit-transform:scale(0.5);transform:scale(0.5);opacity:1}100%{-webkit-transform:scale(1);transform:scale(1)}}.mud-focus-trap{display:contents}.mud-focus-trap .mud-focus-trap-child-container{display:contents}.mud-input-control.mud-field .mud-input-slot{height:auto;min-height:19px}.mud-input-control.mud-field .mud-input-slot.mud-input-root-outlined.mud-input-adorned-start{padding-left:0;padding-inline-start:0;padding-inline-end:14px}.mud-input-control.mud-field .mud-input-slot.mud-input-root-filled.mud-input-adorned-start{padding-left:0;padding-inline-start:0;padding-inline-end:12px}.mud-input-control.mud-field .mud-input-slot.mud-input-slot-nopadding{padding-top:0px;padding-bottom:0px}.mud-input-control.mud-field .mud-input-slot.mud-input-slot-nopadding.mud-input-root-filled{padding-top:21px;padding-bottom:2px}.mud-input-control.mud-field .mud-input-slot.mud-input-slot-nopadding.mud-input-root-outlined{padding-top:7px;padding-bottom:2px}.mud-flex-break{flex-basis:100%;width:0}.mud-grid{width:100%;display:flex;flex-wrap:wrap;box-sizing:border-box}.mud-grid-item{margin:0;box-sizing:border-box}.mud-grid-spacing-xs-1{width:calc(100% + 4px);margin-left:-4px;margin-top:-4px}.mud-grid-spacing-xs-1>.mud-grid-item{padding-left:4px;padding-top:4px}.mud-grid-spacing-xs-2{width:calc(100% + 8px);margin-left:-8px;margin-top:-8px}.mud-grid-spacing-xs-2>.mud-grid-item{padding-left:8px;padding-top:8px}.mud-grid-spacing-xs-3{width:calc(100% + 12px);margin-left:-12px;margin-top:-12px}.mud-grid-spacing-xs-3>.mud-grid-item{padding-left:12px;padding-top:12px}.mud-grid-spacing-xs-4{width:calc(100% + 16px);margin-left:-16px;margin-top:-16px}.mud-grid-spacing-xs-4>.mud-grid-item{padding-left:16px;padding-top:16px}.mud-grid-spacing-xs-5{width:calc(100% + 20px);margin-left:-20px;margin-top:-20px}.mud-grid-spacing-xs-5>.mud-grid-item{padding-left:20px;padding-top:20px}.mud-grid-spacing-xs-6{width:calc(100% + 24px);margin-left:-24px;margin-top:-24px}.mud-grid-spacing-xs-6>.mud-grid-item{padding-left:24px;padding-top:24px}.mud-grid-spacing-xs-7{width:calc(100% + 28px);margin-left:-28px;margin-top:-28px}.mud-grid-spacing-xs-7>.mud-grid-item{padding-left:28px;padding-top:28px}.mud-grid-spacing-xs-8{width:calc(100% + 32px);margin-left:-32px;margin-top:-32px}.mud-grid-spacing-xs-8>.mud-grid-item{padding-left:32px;padding-top:32px}.mud-grid-spacing-xs-9{width:calc(100% + 36px);margin-left:-36px;margin-top:-36px}.mud-grid-spacing-xs-9>.mud-grid-item{padding-left:36px;padding-top:36px}.mud-grid-spacing-xs-10{width:calc(100% + 40px);margin-left:-40px;margin-top:-40px}.mud-grid-spacing-xs-10>.mud-grid-item{padding-left:40px;padding-top:40px}.mud-grid-spacing-xs-11{width:calc(100% + 44px);margin-left:-44px;margin-top:-44px}.mud-grid-spacing-xs-11>.mud-grid-item{padding-left:44px;padding-top:44px}.mud-grid-spacing-xs-12{width:calc(100% + 48px);margin-left:-48px;margin-top:-48px}.mud-grid-spacing-xs-12>.mud-grid-item{padding-left:48px;padding-top:48px}.mud-grid-spacing-xs-13{width:calc(100% + 52px);margin-left:-52px;margin-top:-52px}.mud-grid-spacing-xs-13>.mud-grid-item{padding-left:52px;padding-top:52px}.mud-grid-spacing-xs-14{width:calc(100% + 56px);margin-left:-56px;margin-top:-56px}.mud-grid-spacing-xs-14>.mud-grid-item{padding-left:56px;padding-top:56px}.mud-grid-spacing-xs-15{width:calc(100% + 60px);margin-left:-60px;margin-top:-60px}.mud-grid-spacing-xs-15>.mud-grid-item{padding-left:60px;padding-top:60px}.mud-grid-spacing-xs-16{width:calc(100% + 64px);margin-left:-64px;margin-top:-64px}.mud-grid-spacing-xs-16>.mud-grid-item{padding-left:64px;padding-top:64px}.mud-grid-spacing-xs-17{width:calc(100% + 68px);margin-left:-68px;margin-top:-68px}.mud-grid-spacing-xs-17>.mud-grid-item{padding-left:68px;padding-top:68px}.mud-grid-spacing-xs-18{width:calc(100% + 72px);margin-left:-72px;margin-top:-72px}.mud-grid-spacing-xs-18>.mud-grid-item{padding-left:72px;padding-top:72px}.mud-grid-spacing-xs-19{width:calc(100% + 76px);margin-left:-76px;margin-top:-76px}.mud-grid-spacing-xs-19>.mud-grid-item{padding-left:76px;padding-top:76px}.mud-grid-spacing-xs-20{width:calc(100% + 80px);margin-left:-80px;margin-top:-80px}.mud-grid-spacing-xs-20>.mud-grid-item{padding-left:80px;padding-top:80px}@media(min-width: 0px){.mud-grid-item-xs-1{flex-grow:0;max-width:calc(100%/12*1);flex-basis:calc(100%/12*1)}.mud-grid-item-xs-2{flex-grow:0;max-width:calc(100%/12*2);flex-basis:calc(100%/12*2)}.mud-grid-item-xs-3{flex-grow:0;max-width:calc(100%/12*3);flex-basis:calc(100%/12*3)}.mud-grid-item-xs-4{flex-grow:0;max-width:calc(100%/12*4);flex-basis:calc(100%/12*4)}.mud-grid-item-xs-5{flex-grow:0;max-width:calc(100%/12*5);flex-basis:calc(100%/12*5)}.mud-grid-item-xs-6{flex-grow:0;max-width:calc(100%/12*6);flex-basis:calc(100%/12*6)}.mud-grid-item-xs-7{flex-grow:0;max-width:calc(100%/12*7);flex-basis:calc(100%/12*7)}.mud-grid-item-xs-8{flex-grow:0;max-width:calc(100%/12*8);flex-basis:calc(100%/12*8)}.mud-grid-item-xs-9{flex-grow:0;max-width:calc(100%/12*9);flex-basis:calc(100%/12*9)}.mud-grid-item-xs-10{flex-grow:0;max-width:calc(100%/12*10);flex-basis:calc(100%/12*10)}.mud-grid-item-xs-11{flex-grow:0;max-width:calc(100%/12*11);flex-basis:calc(100%/12*11)}.mud-grid-item-xs-12{flex-grow:0;max-width:calc(100%/12*12);flex-basis:calc(100%/12*12)}.mud-grid-item-xs-auto{flex-grow:0;max-width:none;flex-basis:auto}.mud-grid-item-xs-true{flex-grow:1;max-width:100%;flex-basis:0}}@media(min-width: 600px){.mud-grid-item-sm-1{flex-grow:0;max-width:calc(100%/12*1);flex-basis:calc(100%/12*1)}.mud-grid-item-sm-2{flex-grow:0;max-width:calc(100%/12*2);flex-basis:calc(100%/12*2)}.mud-grid-item-sm-3{flex-grow:0;max-width:calc(100%/12*3);flex-basis:calc(100%/12*3)}.mud-grid-item-sm-4{flex-grow:0;max-width:calc(100%/12*4);flex-basis:calc(100%/12*4)}.mud-grid-item-sm-5{flex-grow:0;max-width:calc(100%/12*5);flex-basis:calc(100%/12*5)}.mud-grid-item-sm-6{flex-grow:0;max-width:calc(100%/12*6);flex-basis:calc(100%/12*6)}.mud-grid-item-sm-7{flex-grow:0;max-width:calc(100%/12*7);flex-basis:calc(100%/12*7)}.mud-grid-item-sm-8{flex-grow:0;max-width:calc(100%/12*8);flex-basis:calc(100%/12*8)}.mud-grid-item-sm-9{flex-grow:0;max-width:calc(100%/12*9);flex-basis:calc(100%/12*9)}.mud-grid-item-sm-10{flex-grow:0;max-width:calc(100%/12*10);flex-basis:calc(100%/12*10)}.mud-grid-item-sm-11{flex-grow:0;max-width:calc(100%/12*11);flex-basis:calc(100%/12*11)}.mud-grid-item-sm-12{flex-grow:0;max-width:calc(100%/12*12);flex-basis:calc(100%/12*12)}.mud-grid-item-sm-auto{flex-grow:0;max-width:none;flex-basis:auto}.mud-grid-item-sm-true{flex-grow:1;max-width:100%;flex-basis:0}}@media(min-width: 960px){.mud-grid-item-md-1{flex-grow:0;max-width:calc(100%/12*1);flex-basis:calc(100%/12*1)}.mud-grid-item-md-2{flex-grow:0;max-width:calc(100%/12*2);flex-basis:calc(100%/12*2)}.mud-grid-item-md-3{flex-grow:0;max-width:calc(100%/12*3);flex-basis:calc(100%/12*3)}.mud-grid-item-md-4{flex-grow:0;max-width:calc(100%/12*4);flex-basis:calc(100%/12*4)}.mud-grid-item-md-5{flex-grow:0;max-width:calc(100%/12*5);flex-basis:calc(100%/12*5)}.mud-grid-item-md-6{flex-grow:0;max-width:calc(100%/12*6);flex-basis:calc(100%/12*6)}.mud-grid-item-md-7{flex-grow:0;max-width:calc(100%/12*7);flex-basis:calc(100%/12*7)}.mud-grid-item-md-8{flex-grow:0;max-width:calc(100%/12*8);flex-basis:calc(100%/12*8)}.mud-grid-item-md-9{flex-grow:0;max-width:calc(100%/12*9);flex-basis:calc(100%/12*9)}.mud-grid-item-md-10{flex-grow:0;max-width:calc(100%/12*10);flex-basis:calc(100%/12*10)}.mud-grid-item-md-11{flex-grow:0;max-width:calc(100%/12*11);flex-basis:calc(100%/12*11)}.mud-grid-item-md-12{flex-grow:0;max-width:calc(100%/12*12);flex-basis:calc(100%/12*12)}.mud-grid-item-md-auto{flex-grow:0;max-width:none;flex-basis:auto}.mud-grid-item-md-true{flex-grow:1;max-width:100%;flex-basis:0}}@media(min-width: 1280px){.mud-grid-item-lg-1{flex-grow:0;max-width:calc(100%/12*1);flex-basis:calc(100%/12*1)}.mud-grid-item-lg-2{flex-grow:0;max-width:calc(100%/12*2);flex-basis:calc(100%/12*2)}.mud-grid-item-lg-3{flex-grow:0;max-width:calc(100%/12*3);flex-basis:calc(100%/12*3)}.mud-grid-item-lg-4{flex-grow:0;max-width:calc(100%/12*4);flex-basis:calc(100%/12*4)}.mud-grid-item-lg-5{flex-grow:0;max-width:calc(100%/12*5);flex-basis:calc(100%/12*5)}.mud-grid-item-lg-6{flex-grow:0;max-width:calc(100%/12*6);flex-basis:calc(100%/12*6)}.mud-grid-item-lg-7{flex-grow:0;max-width:calc(100%/12*7);flex-basis:calc(100%/12*7)}.mud-grid-item-lg-8{flex-grow:0;max-width:calc(100%/12*8);flex-basis:calc(100%/12*8)}.mud-grid-item-lg-9{flex-grow:0;max-width:calc(100%/12*9);flex-basis:calc(100%/12*9)}.mud-grid-item-lg-10{flex-grow:0;max-width:calc(100%/12*10);flex-basis:calc(100%/12*10)}.mud-grid-item-lg-11{flex-grow:0;max-width:calc(100%/12*11);flex-basis:calc(100%/12*11)}.mud-grid-item-lg-12{flex-grow:0;max-width:calc(100%/12*12);flex-basis:calc(100%/12*12)}.mud-grid-item-lg-auto{flex-grow:0;max-width:none;flex-basis:auto}.mud-grid-item-lg-true{flex-grow:1;max-width:100%;flex-basis:0}}@media(min-width: 1920px){.mud-grid-item-xl-1{flex-grow:0;max-width:calc(100%/12*1);flex-basis:calc(100%/12*1)}.mud-grid-item-xl-2{flex-grow:0;max-width:calc(100%/12*2);flex-basis:calc(100%/12*2)}.mud-grid-item-xl-3{flex-grow:0;max-width:calc(100%/12*3);flex-basis:calc(100%/12*3)}.mud-grid-item-xl-4{flex-grow:0;max-width:calc(100%/12*4);flex-basis:calc(100%/12*4)}.mud-grid-item-xl-5{flex-grow:0;max-width:calc(100%/12*5);flex-basis:calc(100%/12*5)}.mud-grid-item-xl-6{flex-grow:0;max-width:calc(100%/12*6);flex-basis:calc(100%/12*6)}.mud-grid-item-xl-7{flex-grow:0;max-width:calc(100%/12*7);flex-basis:calc(100%/12*7)}.mud-grid-item-xl-8{flex-grow:0;max-width:calc(100%/12*8);flex-basis:calc(100%/12*8)}.mud-grid-item-xl-9{flex-grow:0;max-width:calc(100%/12*9);flex-basis:calc(100%/12*9)}.mud-grid-item-xl-10{flex-grow:0;max-width:calc(100%/12*10);flex-basis:calc(100%/12*10)}.mud-grid-item-xl-11{flex-grow:0;max-width:calc(100%/12*11);flex-basis:calc(100%/12*11)}.mud-grid-item-xl-12{flex-grow:0;max-width:calc(100%/12*12);flex-basis:calc(100%/12*12)}.mud-grid-item-xl-auto{flex-grow:0;max-width:none;flex-basis:auto}.mud-grid-item-xl-true{flex-grow:1;max-width:100%;flex-basis:0}}@media(min-width: 2560px){.mud-grid-item-xxl-1{flex-grow:0;max-width:calc(100%/12*1);flex-basis:calc(100%/12*1)}.mud-grid-item-xxl-2{flex-grow:0;max-width:calc(100%/12*2);flex-basis:calc(100%/12*2)}.mud-grid-item-xxl-3{flex-grow:0;max-width:calc(100%/12*3);flex-basis:calc(100%/12*3)}.mud-grid-item-xxl-4{flex-grow:0;max-width:calc(100%/12*4);flex-basis:calc(100%/12*4)}.mud-grid-item-xxl-5{flex-grow:0;max-width:calc(100%/12*5);flex-basis:calc(100%/12*5)}.mud-grid-item-xxl-6{flex-grow:0;max-width:calc(100%/12*6);flex-basis:calc(100%/12*6)}.mud-grid-item-xxl-7{flex-grow:0;max-width:calc(100%/12*7);flex-basis:calc(100%/12*7)}.mud-grid-item-xxl-8{flex-grow:0;max-width:calc(100%/12*8);flex-basis:calc(100%/12*8)}.mud-grid-item-xxl-9{flex-grow:0;max-width:calc(100%/12*9);flex-basis:calc(100%/12*9)}.mud-grid-item-xxl-10{flex-grow:0;max-width:calc(100%/12*10);flex-basis:calc(100%/12*10)}.mud-grid-item-xxl-11{flex-grow:0;max-width:calc(100%/12*11);flex-basis:calc(100%/12*11)}.mud-grid-item-xxl-12{flex-grow:0;max-width:calc(100%/12*12);flex-basis:calc(100%/12*12)}.mud-grid-item-xxl-auto{flex-grow:0;max-width:none;flex-basis:auto}.mud-grid-item-xxl-true{flex-grow:1;max-width:100%;flex-basis:0}}.mud-paper{color:var(--mud-palette-text-primary);background-color:var(--mud-palette-surface);border-radius:var(--mud-default-borderradius);transition:box-shadow 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}.mud-paper-square{border-radius:0px}.mud-paper-outlined{border:1px solid var(--mud-palette-lines-default)}.mud-icon-default{color:var(--mud-palette-text-secondary)}.mud-disabled .mud-icon-root,.mud-disabled .mud-svg-icon,.mud-disabled .mud-icon-default{color:var(--mud-palette-text-disabled)}.mud-icon-root{width:1em;height:1em;display:inline-block;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;flex-shrink:0;user-select:none}.mud-icon-root:focus{outline:none}.mud-icon-root.mud-svg-icon{fill:currentColor}.mud-icon-size-small{font-size:1.25rem}.mud-icon-size-medium{font-size:1.5rem}.mud-icon-size-large{font-size:2.25rem}.mud-divider{margin:0;flex-shrink:0;border-color:var(--mud-palette-divider);border-width:1px;border-style:solid none none none}.mud-divider-absolute{left:0;width:100%;bottom:0;position:absolute}.mud-divider-inset{margin-left:72px;margin-inline-start:72px;margin-inline-end:unset}.mud-divider-light{border-color:var(--mud-palette-divider-light)}.mud-divider-middle{margin-left:16px;margin-right:16px}.mud-divider-vertical{border-style:none solid none none;height:100%}.mud-divider-flexitem{height:auto;align-self:stretch}.mud-divider-fullwidth{flex-grow:1;width:100%}.mud-drop-zone{position:relative;transition:all 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}.mud-drop-zone-drag-block>*{pointer-events:none}.mud-drop-zone-can-drop{background-color:var(--mud-palette-success-hover)}.mud-drop-zone-no-drop{background-color:var(--mud-palette-error-hover)}.mud-drop-item:not(.mud-drop-item-preview-start){cursor:grab;user-select:none}.mud-drop-item:not(.mud-drop-item-preview-start):active{cursor:grabbing}.mud-drop-item-preview-start{height:20px;width:100%;position:absolute;top:0;left:0;z-index:1;user-select:none}.mud-drop-item .mud-ripple:after{display:none;transform:none}.mud-expansion-panels{flex:0 1 auto;position:relative;max-width:100%;transition:.3s cubic-bezier(0.25, 0.8, 0.5, 1);border-radius:var(--mud-default-borderradius)}.mud-expansion-panels.mud-expansion-panels-square{border-radius:0px}.mud-expansion-panels.mud-expansion-panels-borders .mud-expand-panel{border-bottom:1px solid var(--mud-palette-lines-default)}.mud-expand-panel{flex:1 0 100%;max-width:100%;position:relative;transition:margin .3s cubic-bezier(0.25, 0.8, 0.5, 1);transition-delay:100ms;color:var(--mud-palette-text-primary);background-color:var(--mud-palette-surface)}.mud-expand-panel.mud-expand-panel-border{border-bottom:1px solid var(--mud-palette-lines-default)}.mud-expand-panel:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.mud-expand-panel:last-child{border-bottom:none;border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}.mud-expand-panel.mud-panel-expanded{margin:16px 0;border-radius:inherit;border-bottom:none;transition-delay:0ms}.mud-expand-panel.mud-panel-expanded:first-child{margin-top:0}.mud-expand-panel.mud-panel-expanded:last-child{margin-bottom:0}.mud-expand-panel.mud-panel-expanded+.mud-expand-panel{border-top-left-radius:inherit;border-top-right-radius:inherit}.mud-expand-panel.mud-panel-next-expanded{border-bottom:none;border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}.mud-expand-panel .mud-expand-panel-header{width:100%;align-items:center;display:flex;font-size:.9375rem;line-height:1;min-height:48px;outline:none;padding:16px 24px;position:relative;transition:min-height .3s cubic-bezier(0.25, 0.8, 0.5, 1);user-select:none}.mud-expand-panel .mud-expand-panel-header:hover{cursor:pointer}.mud-expand-panel .mud-expand-panel-header .mud-expand-panel-text{flex:1 1 auto}.mud-expand-panel .mud-expand-panel-header .mud-expand-panel-icon{transition:.3s cubic-bezier(0.25, 0.8, 0.5, 1),visibility 0s}.mud-expand-panel .mud-expand-panel-header .mud-expand-panel-icon.mud-transform{transform:rotate(-180deg)}.mud-expand-panel .mud-expand-panel-content{padding-bottom:16px;flex:1 1 auto;max-width:100%}.mud-expand-panel .mud-expand-panel-content.mud-expand-panel-gutters{padding-left:24px;padding-right:24px}.mud-expand-panel .mud-expand-panel-content.mud-expand-panel-dense{padding-top:0px;padding-bottom:0px}.mud-disabled>.mud-expand-panel-header{color:var(--mud-palette-text-disabled)}.mud-disabled>.mud-expand-panel-header:hover{cursor:default}.mud-fab{padding:0;font-family:var(--mud-typography-button-family);font-size:var(--mud-typography-button-size);font-weight:var(--mud-typography-button-weight);line-height:var(--mud-typography-button-lineheight);letter-spacing:var(--mud-typography-button-letterspacing);text-transform:var(--mud-typography-button-text-transform);min-width:0;box-shadow:0px 3px 5px -1px rgba(0,0,0,.2),0px 6px 10px 0px rgba(0,0,0,.14),0px 1px 18px 0px rgba(0,0,0,.12);box-sizing:border-box;min-height:36px;transition:background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;border-radius:50%;color:var(--mud-palette-text-primary);--mud-ripple-color: var(--mud-palette-text-primary);background-color:var(--mud-palette-action-default-hover)}@media(hover: hover)and (pointer: fine){.mud-fab:hover{box-shadow:0px 5px 5px -3px rgba(0,0,0,.2),0px 8px 10px 1px rgba(0,0,0,.14),0px 3px 14px 2px rgba(0,0,0,.12);text-decoration:none;background-color:var(--mud-palette-action-disabled-background)}}.mud-fab:focus-visible{box-shadow:0px 5px 5px -3px rgba(0,0,0,.2),0px 8px 10px 1px rgba(0,0,0,.14),0px 3px 14px 2px rgba(0,0,0,.12);text-decoration:none;background-color:var(--mud-palette-action-disabled-background)}.mud-fab:active{box-shadow:0px 7px 8px -4px rgba(0,0,0,.2),0px 12px 17px 2px rgba(0,0,0,.14),0px 5px 22px 4px rgba(0,0,0,.12);text-decoration:none;background-color:var(--mud-palette-action-disabled-background)}.mud-fab:disabled{color:var(--mud-palette-action-disabled);box-shadow:none;background-color:var(--mud-palette-action-disabled-background);cursor:default;pointer-events:none}@media(hover: hover)and (pointer: fine){.mud-fab:disabled:hover{background-color:var(--mud-palette-action-disabled-background)}}.mud-fab-disable-elevation{box-shadow:none}@media(hover: hover)and (pointer: fine){.mud-fab-disable-elevation:hover{box-shadow:none}}.mud-fab-disable-elevation:active{box-shadow:none}.mud-fab-disable-elevation.mud-focus-visible{box-shadow:none}.mud-fab-disable-elevation:disabled{box-shadow:none}.mud-fab-label{width:100%;display:inherit;align-items:inherit;justify-content:inherit}.mud-fab-primary{color:var(--mud-palette-primary-text);--mud-ripple-color: var(--mud-palette-primary-text) !important;--mud-ripple-opacity: var(--mud-ripple-opacity-secondary) !important;background-color:var(--mud-palette-primary)}@media(hover: hover)and (pointer: fine){.mud-fab-primary:hover{background-color:var(--mud-palette-primary-darken)}}.mud-fab-primary:focus-visible,.mud-fab-primary:active{background-color:var(--mud-palette-primary-darken)}.mud-fab-secondary{color:var(--mud-palette-secondary-text);--mud-ripple-color: var(--mud-palette-secondary-text) !important;--mud-ripple-opacity: var(--mud-ripple-opacity-secondary) !important;background-color:var(--mud-palette-secondary)}@media(hover: hover)and (pointer: fine){.mud-fab-secondary:hover{background-color:var(--mud-palette-secondary-darken)}}.mud-fab-secondary:focus-visible,.mud-fab-secondary:active{background-color:var(--mud-palette-secondary-darken)}.mud-fab-tertiary{color:var(--mud-palette-tertiary-text);--mud-ripple-color: var(--mud-palette-tertiary-text) !important;--mud-ripple-opacity: var(--mud-ripple-opacity-secondary) !important;background-color:var(--mud-palette-tertiary)}@media(hover: hover)and (pointer: fine){.mud-fab-tertiary:hover{background-color:var(--mud-palette-tertiary-darken)}}.mud-fab-tertiary:focus-visible,.mud-fab-tertiary:active{background-color:var(--mud-palette-tertiary-darken)}.mud-fab-info{color:var(--mud-palette-info-text);--mud-ripple-color: var(--mud-palette-info-text) !important;--mud-ripple-opacity: var(--mud-ripple-opacity-secondary) !important;background-color:var(--mud-palette-info)}@media(hover: hover)and (pointer: fine){.mud-fab-info:hover{background-color:var(--mud-palette-info-darken)}}.mud-fab-info:focus-visible,.mud-fab-info:active{background-color:var(--mud-palette-info-darken)}.mud-fab-success{color:var(--mud-palette-success-text);--mud-ripple-color: var(--mud-palette-success-text) !important;--mud-ripple-opacity: var(--mud-ripple-opacity-secondary) !important;background-color:var(--mud-palette-success)}@media(hover: hover)and (pointer: fine){.mud-fab-success:hover{background-color:var(--mud-palette-success-darken)}}.mud-fab-success:focus-visible,.mud-fab-success:active{background-color:var(--mud-palette-success-darken)}.mud-fab-warning{color:var(--mud-palette-warning-text);--mud-ripple-color: var(--mud-palette-warning-text) !important;--mud-ripple-opacity: var(--mud-ripple-opacity-secondary) !important;background-color:var(--mud-palette-warning)}@media(hover: hover)and (pointer: fine){.mud-fab-warning:hover{background-color:var(--mud-palette-warning-darken)}}.mud-fab-warning:focus-visible,.mud-fab-warning:active{background-color:var(--mud-palette-warning-darken)}.mud-fab-error{color:var(--mud-palette-error-text);--mud-ripple-color: var(--mud-palette-error-text) !important;--mud-ripple-opacity: var(--mud-ripple-opacity-secondary) !important;background-color:var(--mud-palette-error)}@media(hover: hover)and (pointer: fine){.mud-fab-error:hover{background-color:var(--mud-palette-error-darken)}}.mud-fab-error:focus-visible,.mud-fab-error:active{background-color:var(--mud-palette-error-darken)}.mud-fab-dark{color:var(--mud-palette-dark-text);--mud-ripple-color: var(--mud-palette-dark-text) !important;--mud-ripple-opacity: var(--mud-ripple-opacity-secondary) !important;background-color:var(--mud-palette-dark)}@media(hover: hover)and (pointer: fine){.mud-fab-dark:hover{background-color:var(--mud-palette-dark-darken)}}.mud-fab-dark:focus-visible,.mud-fab-dark:active{background-color:var(--mud-palette-dark-darken)}.mud-fab-extended.mud-fab-size-large{width:auto;height:48px;padding:0 16px;min-width:48px;min-height:auto;border-radius:24px}.mud-fab-extended.mud-fab-size-large .mud-fab-label{gap:8px}.mud-fab-extended.mud-fab-size-small{width:auto;height:34px;padding:0 12px;min-width:34px;border-radius:17px}.mud-fab-extended.mud-fab-size-small .mud-fab-label{gap:4px}.mud-fab-extended.mud-fab-size-medium{width:auto;height:40px;padding:0 16px;min-width:40px;border-radius:20px}.mud-fab-extended.mud-fab-size-medium .mud-fab-label{gap:8px}.mud-fab-color-inherit{color:inherit}.mud-fab-size-small{width:40px;height:40px}.mud-fab-size-medium{width:48px;height:48px}.mud-fab-size-large{width:56px;height:56px}.mud-form{display:flex;flex-direction:column}.mud-list{margin:0;padding:0;position:relative;list-style:none}.mud-list.mud-list-padding{padding-top:8px;padding-bottom:8px}.mud-list-item{width:100%;display:flex;position:relative;box-sizing:border-box;text-align:start;align-items:center;padding-top:8px;padding-bottom:8px;justify-content:flex-start;text-decoration:none}.mud-list-item.mud-list-item-dense{padding-top:4px;padding-bottom:4px}.mud-list-item.mud-list-item-disabled{color:var(--mud-palette-action-disabled) !important;cursor:default !important;pointer-events:none !important}.mud-list-item.mud-list-item-disabled .mud-list-item-icon{color:var(--mud-palette-action-disabled) !important}.mud-list-item.mud-list-item-disabled .mud-list-item-secondary-text{color:var(--mud-palette-action-disabled) !important}.mud-list-item-clickable{color:inherit;border:0;cursor:pointer;margin:0;outline:0;user-select:none;border-radius:0;vertical-align:middle;background-color:rgba(0,0,0,0);-webkit-appearance:none;-webkit-tap-highlight-color:rgba(0,0,0,0);transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}@media(hover: hover)and (pointer: fine){.mud-list-item-clickable:hover{background-color:var(--mud-palette-action-default-hover)}}.mud-list-item-clickable:focus:not(.mud-selected-item),.mud-list-item-clickable:active{background-color:var(--mud-palette-action-default-hover)}.mud-list-item-gutters{padding-left:16px;padding-right:16px}.mud-list-item-text{flex:1 1 auto;min-width:0;margin-top:4px;margin-bottom:4px}.mud-list-item-text-inset{padding-left:56px;padding-inline-start:56px;padding-inline-end:unset}.mud-list-item-icon{color:var(--mud-palette-action-default);display:inline-flex;min-width:56px;flex-shrink:0}.mud-list-subheader{color:var(--mud-palette-action-default);font-size:.875rem;box-sizing:border-box;list-style:none;font-weight:500;padding-top:8px;padding-bottom:20px}.mud-list-subheader-gutters{padding-left:16px;padding-right:16px}.mud-list-subheader-inset{padding-left:72px;padding-inline-start:72px;padding-inline-end:unset}.mud-list-subheader-sticky{top:0;z-index:1;position:sticky;background-color:inherit}.mud-list-item-avatar{min-width:56px;flex-shrink:0}.mud-nested-list>.mud-list-item{padding-left:32px;padding-inline-start:32px;padding-inline-end:unset}.mud-list-item-secondary-text{font-weight:500;color:var(--mud-palette-text-secondary)}.mud-application-layout-rtl{direction:rtl}.mud-menu{display:inline-flex;align-self:center;position:relative}.mud-menu *{cursor:pointer}.mud-menu>div.mud-disabled{cursor:default}.mud-menu>div.mud-disabled *{cursor:default}.mud-menu>div.mud-menu-activator{display:contents;user-select:none}.mud-menu-button-hidden{position:absolute}.mud-menu-list{padding:4px 0;min-width:112px}.mud-menu-list>.mud-menu{width:100%;display:inline}.mud-menu-list>.mud-divider{margin:4px 0}.mud-menu-item{width:100%;display:flex;position:relative;box-sizing:border-box;text-align:start;align-items:center;justify-content:flex-start;text-decoration:none;padding:8px 12px}.mud-menu-item>.mud-icon-root{color:var(--mud-palette-action-default)}.mud-menu-item .mud-menu-item-icon{display:inline-flex;flex-shrink:0;margin-inline-end:12px}.mud-menu-item .mud-menu-item-text{flex:1 1 auto;margin:4px 0}.mud-menu-item.mud-menu-item-dense{padding:2px 12px}.mud-menu-item.mud-disabled{color:var(--mud-palette-action-disabled) !important;cursor:default !important;pointer-events:none !important}.mud-menu-item.mud-disabled .mud-menu-item-icon{color:var(--mud-palette-action-disabled) !important}.mud-menu-list:has(.mud-menu-item-icon) .mud-menu-item:not(:has(.mud-menu-item-icon)) .mud-menu-item-text{margin-inline-start:36px}.mud-menu-list:has(.mud-menu-submenu-icon) .mud-menu-item:not(:has(.mud-menu-submenu-icon)) .mud-menu-item-text{margin-inline-end:36px}.mud-popover:has(>.mud-menu-list){overflow:hidden}.mud-popover:has(>.mud-menu-list):has(>.mud-menu-list:empty){visibility:hidden}.mud-link.mud-link-underline-none{text-decoration:none}.mud-link.mud-link-underline-hover{text-decoration:none}@media(hover: hover)and (pointer: fine){.mud-link.mud-link-underline-hover:hover{text-decoration:underline}}.mud-link.mud-link-underline-hover:focus-visible,.mud-link.mud-link-underline-hover:active{text-decoration:underline}.mud-link.mud-link-underline-always{text-decoration:underline}.mud-link.mud-link-disabled{cursor:default;color:var(--mud-palette-action-disabled) !important}.mud-link.mud-link-disabled:not(.mud-link-underline-always){text-decoration:none}.mud-navmenu{margin:0;position:relative;list-style:none;overscroll-behavior-y:contain}.mud-navmenu.mud-navmenu-dense .mud-nav-link{padding:4px 16px 4px 16px}.mud-navmenu.mud-navmenu-margin-dense .mud-nav-link{margin:2px 0}.mud-navmenu.mud-navmenu-margin-normal .mud-nav-link{margin:4px 0}.mud-navmenu.mud-navmenu-rounded .mud-nav-link{border-radius:var(--mud-default-borderradius)}.mud-navmenu.mud-navmenu-bordered .mud-nav-link.active:not(.mud-nav-link-disabled){border-inline-end-style:solid;border-inline-end-width:2px}.mud-navmenu.mud-navmenu-default .mud-nav-link.active:not(.mud-nav-link-disabled){color:var(--mud-palette-primary);background-color:var(--mud-palette-action-default-hover)}@media(hover: hover)and (pointer: fine){.mud-navmenu.mud-navmenu-default .mud-nav-link.active:not(.mud-nav-link-disabled):hover:not(.mud-nav-link-disabled){background-color:var(--mud-palette-action-default-hover)}}.mud-navmenu.mud-navmenu-default .mud-nav-link.active:not(.mud-nav-link-disabled):focus-visible:not(.mud-nav-link-disabled),.mud-navmenu.mud-navmenu-default .mud-nav-link.active:not(.mud-nav-link-disabled):active:not(.mud-nav-link-disabled){background-color:var(--mud-palette-action-default-hover)}.mud-navmenu.mud-navmenu-default .mud-nav-link-expand-icon.mud-transform{fill:var(--mud-palette-primary)}.mud-navmenu.mud-navmenu-primary .mud-nav-link.active:not(.mud-nav-link-disabled){color:var(--mud-palette-primary);--mud-ripple-color: var(--mud-palette-primary);background-color:var(--mud-palette-primary-hover)}@media(hover: hover)and (pointer: fine){.mud-navmenu.mud-navmenu-primary .mud-nav-link.active:not(.mud-nav-link-disabled):hover:not(.mud-nav-link-disabled){background-color:rgba(var(--mud-palette-primary-rgb), 0.12)}}.mud-navmenu.mud-navmenu-primary .mud-nav-link.active:not(.mud-nav-link-disabled):focus-visible:not(.mud-nav-link-disabled),.mud-navmenu.mud-navmenu-primary .mud-nav-link.active:not(.mud-nav-link-disabled):active:not(.mud-nav-link-disabled){background-color:rgba(var(--mud-palette-primary-rgb), 0.12)}.mud-navmenu.mud-navmenu-primary .mud-nav-link.active:not(.mud-nav-link-disabled) .mud-nav-link-icon{color:var(--mud-palette-primary)}.mud-navmenu.mud-navmenu-primary .mud-nav-link-expand-icon.mud-transform{fill:var(--mud-palette-primary)}.mud-navmenu.mud-navmenu-secondary .mud-nav-link.active:not(.mud-nav-link-disabled){color:var(--mud-palette-secondary);--mud-ripple-color: var(--mud-palette-secondary);background-color:var(--mud-palette-secondary-hover)}@media(hover: hover)and (pointer: fine){.mud-navmenu.mud-navmenu-secondary .mud-nav-link.active:not(.mud-nav-link-disabled):hover:not(.mud-nav-link-disabled){background-color:rgba(var(--mud-palette-secondary-rgb), 0.12)}}.mud-navmenu.mud-navmenu-secondary .mud-nav-link.active:not(.mud-nav-link-disabled):focus-visible:not(.mud-nav-link-disabled),.mud-navmenu.mud-navmenu-secondary .mud-nav-link.active:not(.mud-nav-link-disabled):active:not(.mud-nav-link-disabled){background-color:rgba(var(--mud-palette-secondary-rgb), 0.12)}.mud-navmenu.mud-navmenu-secondary .mud-nav-link.active:not(.mud-nav-link-disabled) .mud-nav-link-icon{color:var(--mud-palette-secondary)}.mud-navmenu.mud-navmenu-secondary .mud-nav-link-expand-icon.mud-transform{fill:var(--mud-palette-secondary)}.mud-navmenu.mud-navmenu-tertiary .mud-nav-link.active:not(.mud-nav-link-disabled){color:var(--mud-palette-tertiary);--mud-ripple-color: var(--mud-palette-tertiary);background-color:var(--mud-palette-tertiary-hover)}@media(hover: hover)and (pointer: fine){.mud-navmenu.mud-navmenu-tertiary .mud-nav-link.active:not(.mud-nav-link-disabled):hover:not(.mud-nav-link-disabled){background-color:rgba(var(--mud-palette-tertiary-rgb), 0.12)}}.mud-navmenu.mud-navmenu-tertiary .mud-nav-link.active:not(.mud-nav-link-disabled):focus-visible:not(.mud-nav-link-disabled),.mud-navmenu.mud-navmenu-tertiary .mud-nav-link.active:not(.mud-nav-link-disabled):active:not(.mud-nav-link-disabled){background-color:rgba(var(--mud-palette-tertiary-rgb), 0.12)}.mud-navmenu.mud-navmenu-tertiary .mud-nav-link.active:not(.mud-nav-link-disabled) .mud-nav-link-icon{color:var(--mud-palette-tertiary)}.mud-navmenu.mud-navmenu-tertiary .mud-nav-link-expand-icon.mud-transform{fill:var(--mud-palette-tertiary)}.mud-navmenu.mud-navmenu-info .mud-nav-link.active:not(.mud-nav-link-disabled){color:var(--mud-palette-info);--mud-ripple-color: var(--mud-palette-info);background-color:var(--mud-palette-info-hover)}@media(hover: hover)and (pointer: fine){.mud-navmenu.mud-navmenu-info .mud-nav-link.active:not(.mud-nav-link-disabled):hover:not(.mud-nav-link-disabled){background-color:rgba(var(--mud-palette-info-rgb), 0.12)}}.mud-navmenu.mud-navmenu-info .mud-nav-link.active:not(.mud-nav-link-disabled):focus-visible:not(.mud-nav-link-disabled),.mud-navmenu.mud-navmenu-info .mud-nav-link.active:not(.mud-nav-link-disabled):active:not(.mud-nav-link-disabled){background-color:rgba(var(--mud-palette-info-rgb), 0.12)}.mud-navmenu.mud-navmenu-info .mud-nav-link.active:not(.mud-nav-link-disabled) .mud-nav-link-icon{color:var(--mud-palette-info)}.mud-navmenu.mud-navmenu-info .mud-nav-link-expand-icon.mud-transform{fill:var(--mud-palette-info)}.mud-navmenu.mud-navmenu-success .mud-nav-link.active:not(.mud-nav-link-disabled){color:var(--mud-palette-success);--mud-ripple-color: var(--mud-palette-success);background-color:var(--mud-palette-success-hover)}@media(hover: hover)and (pointer: fine){.mud-navmenu.mud-navmenu-success .mud-nav-link.active:not(.mud-nav-link-disabled):hover:not(.mud-nav-link-disabled){background-color:rgba(var(--mud-palette-success-rgb), 0.12)}}.mud-navmenu.mud-navmenu-success .mud-nav-link.active:not(.mud-nav-link-disabled):focus-visible:not(.mud-nav-link-disabled),.mud-navmenu.mud-navmenu-success .mud-nav-link.active:not(.mud-nav-link-disabled):active:not(.mud-nav-link-disabled){background-color:rgba(var(--mud-palette-success-rgb), 0.12)}.mud-navmenu.mud-navmenu-success .mud-nav-link.active:not(.mud-nav-link-disabled) .mud-nav-link-icon{color:var(--mud-palette-success)}.mud-navmenu.mud-navmenu-success .mud-nav-link-expand-icon.mud-transform{fill:var(--mud-palette-success)}.mud-navmenu.mud-navmenu-warning .mud-nav-link.active:not(.mud-nav-link-disabled){color:var(--mud-palette-warning);--mud-ripple-color: var(--mud-palette-warning);background-color:var(--mud-palette-warning-hover)}@media(hover: hover)and (pointer: fine){.mud-navmenu.mud-navmenu-warning .mud-nav-link.active:not(.mud-nav-link-disabled):hover:not(.mud-nav-link-disabled){background-color:rgba(var(--mud-palette-warning-rgb), 0.12)}}.mud-navmenu.mud-navmenu-warning .mud-nav-link.active:not(.mud-nav-link-disabled):focus-visible:not(.mud-nav-link-disabled),.mud-navmenu.mud-navmenu-warning .mud-nav-link.active:not(.mud-nav-link-disabled):active:not(.mud-nav-link-disabled){background-color:rgba(var(--mud-palette-warning-rgb), 0.12)}.mud-navmenu.mud-navmenu-warning .mud-nav-link.active:not(.mud-nav-link-disabled) .mud-nav-link-icon{color:var(--mud-palette-warning)}.mud-navmenu.mud-navmenu-warning .mud-nav-link-expand-icon.mud-transform{fill:var(--mud-palette-warning)}.mud-navmenu.mud-navmenu-error .mud-nav-link.active:not(.mud-nav-link-disabled){color:var(--mud-palette-error);--mud-ripple-color: var(--mud-palette-error);background-color:var(--mud-palette-error-hover)}@media(hover: hover)and (pointer: fine){.mud-navmenu.mud-navmenu-error .mud-nav-link.active:not(.mud-nav-link-disabled):hover:not(.mud-nav-link-disabled){background-color:rgba(var(--mud-palette-error-rgb), 0.12)}}.mud-navmenu.mud-navmenu-error .mud-nav-link.active:not(.mud-nav-link-disabled):focus-visible:not(.mud-nav-link-disabled),.mud-navmenu.mud-navmenu-error .mud-nav-link.active:not(.mud-nav-link-disabled):active:not(.mud-nav-link-disabled){background-color:rgba(var(--mud-palette-error-rgb), 0.12)}.mud-navmenu.mud-navmenu-error .mud-nav-link.active:not(.mud-nav-link-disabled) .mud-nav-link-icon{color:var(--mud-palette-error)}.mud-navmenu.mud-navmenu-error .mud-nav-link-expand-icon.mud-transform{fill:var(--mud-palette-error)}.mud-navmenu.mud-navmenu-dark .mud-nav-link.active:not(.mud-nav-link-disabled){color:var(--mud-palette-dark);--mud-ripple-color: var(--mud-palette-dark);background-color:var(--mud-palette-dark-hover)}@media(hover: hover)and (pointer: fine){.mud-navmenu.mud-navmenu-dark .mud-nav-link.active:not(.mud-nav-link-disabled):hover:not(.mud-nav-link-disabled){background-color:rgba(var(--mud-palette-dark-rgb), 0.12)}}.mud-navmenu.mud-navmenu-dark .mud-nav-link.active:not(.mud-nav-link-disabled):focus-visible:not(.mud-nav-link-disabled),.mud-navmenu.mud-navmenu-dark .mud-nav-link.active:not(.mud-nav-link-disabled):active:not(.mud-nav-link-disabled){background-color:rgba(var(--mud-palette-dark-rgb), 0.12)}.mud-navmenu.mud-navmenu-dark .mud-nav-link.active:not(.mud-nav-link-disabled) .mud-nav-link-icon{color:var(--mud-palette-dark)}.mud-navmenu.mud-navmenu-dark .mud-nav-link-expand-icon.mud-transform{fill:var(--mud-palette-dark)}.mud-nav-group{width:100%;display:block;justify-content:flex-start}.mud-nav-group>.mud-nav-link>.mud-nav-link-text{font-weight:500}.mud-nav-group * .mud-nav-group>.mud-nav-link>.mud-nav-link-text{font-weight:400}.mud-nav-group * .mud-nav-group>.mud-nav-link.mud-expanded>.mud-nav-link-text{font-weight:500}.mud-nav-group * .mud-navmenu .mud-nav-item .mud-nav-link{padding-left:36px;padding-inline-start:36px;padding-inline-end:unset}.mud-nav-group-disabled,.mud-nav-group-disabled .mud-nav-link-text,.mud-nav-group-disabled .mud-nav-link-expand-icon,.mud-nav-group-disabled .mud-nav-link-icon{color:var(--mud-palette-text-disabled) !important;cursor:default;pointer-events:none}.mud-nav-item{width:100%;display:flex;justify-content:flex-start;text-decoration:none}.mud-nav-link{width:100%;font-weight:400;padding:8px 16px 8px 16px;color:inherit;line-height:1.75;display:inline-flex;justify-content:flex-start;text-transform:inherit;background-color:rgba(0,0,0,0);transition:background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,padding 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;align-items:flex-start}.mud-nav-link.mud-nav-link-disabled{color:var(--mud-palette-text-disabled) !important;cursor:default;pointer-events:none}@media(hover: hover)and (pointer: fine){.mud-nav-link:hover:not(.mud-nav-link-disabled){cursor:pointer;text-decoration:none;background-color:var(--mud-palette-action-default-hover)}}.mud-nav-link:focus:not(.mud-nav-link-disabled){background-color:var(--mud-palette-action-default-hover)}.mud-nav-link.active:not(.mud-nav-link-disabled){font-weight:500 !important}.mud-nav-link:not(.mud-nav-link-disabled) .mud-nav-link-icon.mud-nav-link-icon-default{color:var(--mud-palette-drawer-icon)}.mud-nav-link.mud-nav-link-disabled .mud-nav-link-icon{color:var(--mud-palette-text-disabled)}.mud-nav-link .mud-nav-link-expand-icon{color:var(--mud-palette-drawer-icon);transition:.3s cubic-bezier(0.25, 0.8, 0.5, 1),visibility 0s}.mud-nav-link .mud-nav-link-expand-icon.mud-transform{transform:rotate(-180deg)}.mud-nav-link .mud-nav-link-expand-icon.mud-transform-disabled{transform:rotate(-180deg)}.mud-nav-link .mud-nav-link-text{width:100%;text-align:start;margin-left:12px;margin-inline-start:12px;margin-inline-end:unset;letter-spacing:0}.mud-nav-group * .mud-navmenu>.mud-nav-group .mud-nav-link{padding-left:36px;padding-inline-start:36px;padding-inline-end:16px}.mud-nav-group * .mud-navmenu>.mud-nav-group * .mud-navmenu .mud-nav-item .mud-nav-link{padding-left:48px;padding-inline-start:48px}.mud-nav-group * .mud-navmenu>.mud-nav-group * .mud-navmenu>.mud-nav-group .mud-nav-link{padding-left:48px;padding-inline-start:48px;padding-inline-end:16px}.mud-nav-group * .mud-navmenu>.mud-nav-group * .mud-navmenu>.mud-nav-group * .mud-navmenu .mud-nav-item .mud-nav-link{padding-left:60px;padding-inline-start:60px;padding-inline-end:0}.mud-nav-group * .mud-navmenu>.mud-nav-group * .mud-navmenu>.mud-nav-group * .mud-navmenu>.mud-nav-group .mud-nav-link{padding-left:60px;padding-inline-start:60px;padding-inline-end:16px}.mud-nav-group * .mud-navmenu>.mud-nav-group * .mud-navmenu>.mud-nav-group * .mud-navmenu>.mud-nav-group * .mud-navmenu .mud-nav-item .mud-nav-link{padding-left:72px;padding-inline-start:72px;padding-inline-end:0}.mud-drawer-mini .mud-nav-link{line-height:1;display:flex;align-items:center}.mud-drawer--closed.mud-drawer-mini>.mud-drawer-content>.mud-navmenu .mud-nav-link .mud-icon-root:first-child+.mud-nav-link-text{display:none}.mud-drawer--closed.mud-drawer-mini .mud-nav-group * .mud-navmenu .mud-nav-item .mud-nav-link{padding:8px 16px 8px 16px}.mud-drawer--closed.mud-drawer-mini .mud-nav-group * .mud-navmenu>.mud-nav-group .mud-nav-link{padding:8px 16px 8px 16px}.mud-drawer--closed.mud-drawer-mini .mud-nav-group * .mud-navmenu>.mud-nav-group * .mud-navmenu .mud-nav-item .mud-nav-link{padding:8px 16px 8px 16px}.mud-drawer--closed.mud-drawer-mini .mud-nav-group * .mud-navmenu>.mud-nav-group * .mud-navmenu>.mud-nav-group .mud-nav-link{padding:8px 16px 8px 16px}.mud-drawer--closed.mud-drawer-mini .mud-nav-group * .mud-navmenu>.mud-nav-group * .mud-navmenu>.mud-nav-group * .mud-navmenu .mud-nav-item .mud-nav-link{padding:8px 16px 8px 16px}.mud-drawer--closed.mud-drawer-mini .mud-nav-group * .mud-navmenu>.mud-nav-group * .mud-navmenu>.mud-nav-group * .mud-navmenu>.mud-nav-group .mud-nav-link{padding:8px 16px 8px 16px}.mud-drawer--closed.mud-drawer-mini .mud-nav-group * .mud-navmenu>.mud-nav-group * .mud-navmenu>.mud-nav-group * .mud-navmenu>.mud-nav-group * .mud-navmenu .mud-nav-item .mud-nav-link{padding:8px 16px 8px 16px}.page-content-navigation .page-content-navigation-navlink.active .mud-nav-link{color:var(--mud-palette-primary);border-color:var(--mud-palette-primary);background-color:rgba(0,0,0,0)}.page-content-navigation .page-content-navigation-navlink .mud-nav-link{padding:4px 16px 4px 16px;color:var(--mud-palette-text-secondary);border-left:2px solid var(--mud-palette-action-disabled-background)}.page-content-navigation .page-content-navigation-navlink .mud-nav-link.active{color:var(--mud-palette-primary);border-color:var(--mud-palette-primary);background-color:rgba(0,0,0,0)}.page-content-navigation .page-content-navigation-navlink .mud-nav-link .mud-nav-link-text{margin-left:0px;margin-inline-start:0px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mud-pagination{display:inline-flex;flex-wrap:wrap;gap:6px;align-items:center;margin:0;list-style:none}.mud-pagination .mud-pagination-item>*{height:32px;min-width:32px;margin:0 3px;padding:0 6px;text-align:center;border-radius:16px}.mud-pagination .mud-pagination-item :not(mud-pagination-item-selected)>*{box-shadow:none}.mud-pagination .mud-pagination-item .mud-button{line-height:normal}.mud-pagination .mud-pagination-item .mud-icon-button{padding:0}.mud-pagination .mud-pagination-item-rectangular .mud-button{border-radius:var(--mud-default-borderradius)}.mud-pagination .mud-pagination-item .mud-typography[disabled]{color:var(--mud-palette-action-disabled) !important}.mud-pagination-outlined .mud-pagination-item-selected .mud-button-outlined-default{background-color:var(--mud-palette-action-default-hover)}.mud-pagination-outlined .mud-pagination-item-selected .mud-button-outlined-primary{background-color:var(--mud-palette-primary-hover)}.mud-pagination-outlined .mud-pagination-item-selected .mud-button-outlined-secondary{background-color:var(--mud-palette-secondary-hover)}.mud-pagination-outlined .mud-pagination-item-selected .mud-button-outlined-tertiary{background-color:var(--mud-palette-tertiary-hover)}.mud-pagination-outlined .mud-pagination-item-selected .mud-button-outlined-info{background-color:var(--mud-palette-info-hover)}.mud-pagination-outlined .mud-pagination-item-selected .mud-button-outlined-success{background-color:var(--mud-palette-success-hover)}.mud-pagination-outlined .mud-pagination-item-selected .mud-button-outlined-warning{background-color:var(--mud-palette-warning-hover)}.mud-pagination-outlined .mud-pagination-item-selected .mud-button-outlined-error{background-color:var(--mud-palette-error-hover)}.mud-pagination-outlined .mud-pagination-item-selected .mud-button-outlined-dark{background-color:var(--mud-palette-dark-hover)}.mud-pagination-filled .mud-pagination-item:not(.mud-pagination-item-selected) .mud-button{background-color:var(--mud-palette-surface)}.mud-pagination-filled .mud-pagination-item .mud-button{box-shadow:var(--mud-elevation-1)}.mud-pagination-small .mud-pagination-item>*{height:26px;min-width:26px;margin:0 1px;padding:0 4px;border-radius:13px}.mud-pagination-large .mud-pagination-item>*{height:40px;min-width:40px;padding:0 10px;border-radius:20px}.mud-pagination-disable-elevation .mud-pagination-item .mud-button{box-shadow:none}.mud-pagination-rtl .mud-pagination-item .mud-icon-root{transform:scaleX(-1)}.mud-picker.mud-rounded{border-radius:var(--mud-default-borderradius)}.mud-picker .mud-picker-actions{flex:0 0 auto;display:flex;padding:8px;align-items:center;justify-content:flex-end}.mud-picker .mud-picker-actions>:not(:first-child){margin-left:8px;margin-inline-start:8px;margin-inline-end:unset}.mud-picker-inline{display:flex;flex:1 1 auto;position:relative;max-width:100%}.mud-picker-inline.mud-picker-input-button .mud-input,.mud-picker-inline.mud-picker-input-button .mud-input .mud-input-root{cursor:pointer}.mud-picker-inline.mud-picker-input-button.mud-disabled .mud-input,.mud-picker-inline.mud-picker-input-button.mud-disabled .mud-input .mud-input-root{cursor:default}.mud-picker-inline.mud-picker-input-text{cursor:text}.mud-picker-inline.mud-picker-input-text:hover{cursor:text}.mud-picker-inline.mud-picker-input-text.mud-disabled{cursor:default}.mud-picker-inline.mud-picker-input-text.mud-disabled:hover{cursor:default}.mud-picker-static{display:flex;overflow:hidden;min-width:310px;flex-direction:column}.mud-picker-container{display:flex;flex-direction:column;border-radius:inherit}.mud-picker-container.mud-picker-container-landscape{flex-direction:row}.mud-picker-container .mud-toolbar{border-top-left-radius:inherit;border-top-right-radius:inherit}.mud-picker-popover-paper{outline:0;z-index:calc(var(--mud-zindex-popover) + 1);position:absolute;min-width:16px;min-height:16px;overflow-x:hidden;overflow-y:auto}.mud-picker-view{display:none}.mud-picker-view.mud-picker-open{display:block}.mud-picker-content{display:flex;max-width:100%;min-width:310px;min-height:305px;overflow:hidden;flex-direction:column;justify-content:center}.mud-picker-content.mud-picker-content-landscape{padding:0 8px}.mud-picker-toolbar{height:100px;display:flex;align-items:center;flex-direction:row;justify-content:center}.mud-picker-toolbar.mud-picker-toolbar-landscape{height:auto;padding:8px;max-width:150px;justify-content:flex-start}.mud-picker-toolbar.mud-button-root{padding:0;min-width:16px;text-transform:none}.mud-picker-inline-paper .mud-paper{position:relative !important}.mud-picker-hidden{visibility:hidden}.mud-picker-pos-top{top:0px;position:fixed;visibility:visible}.mud-picker-pos-top.mud-picker-pos-left{left:10px}.mud-picker-pos-top.mud-picker-pos-right{right:10px}.mud-picker-pos-above{bottom:0px;visibility:visible}.mud-picker-pos-above.mud-picker-pos-left{left:50%;transform:translateX(-50%)}.mud-picker-pos-above.mud-picker-pos-right{right:0px}.mud-picker-pos-bottom{bottom:10px;position:fixed;visibility:visible}.mud-picker-pos-bottom.mud-picker-pos-left{left:10px}.mud-picker-pos-bottom.mud-picker-pos-right{right:10px}.mud-picker-pos-below{visibility:visible}.mud-picker-pos-below.mud-picker-pos-left{left:50%;transform:translateX(-50%)}.mud-picker-pos-below.mud-picker-pos-right{right:0px}.mud-picker-datepicker-toolbar{align-items:flex-start;flex-direction:column}.mud-picker-datepicker-toolbar .mud-button-year{font-size:1rem;font-weight:400;line-height:1.75;letter-spacing:.00938em}.mud-picker-datepicker-toolbar .mud-button-date{font-size:2.125rem;font-weight:400;line-height:1.17;letter-spacing:.00735em;text-transform:none}.mud-picker-datepicker-toolbar-landscape{padding:16px}.mud-picker-datepicker-date-landscape{margin-right:16px;margin-inline-end:16px;margin-inline-start:unset}.mud-picker-calendar-header-switch{display:flex;margin-top:4px;align-items:center;margin-bottom:8px;justify-content:space-between}.mud-picker-calendar-header-switch>.mud-icon-button{z-index:1;padding:8px;margin:6px;background-color:var(--mud-palette-surface)}@media(hover: hover)and (pointer: fine){.mud-picker-calendar-header-switch>.mud-icon-button:hover{background-color:var(--mud-palette-action-default-hover)}}.mud-picker-calendar-header-switch .mud-picker-calendar-header-transition{width:100%;height:23px;overflow:hidden}@media(hover: hover)and (pointer: fine){.mud-picker-calendar-header-switch .mud-picker-calendar-header-transition:hover .mud-typography{cursor:pointer;font-weight:500}}.mud-picker-calendar-header-day{display:flex;max-height:16px;align-items:center;justify-content:center}.mud-picker-calendar-header-day .mud-day-label{color:var(--mud-palette-text-secondary);width:36px;margin:0 2px;text-align:center}.mud-picker-year-container{height:300px;overflow-y:auto}.mud-picker-year-container .mud-picker-year{cursor:pointer;height:40px;display:flex;outline:none;align-items:center;justify-content:center;user-select:none;animation:mud-animation-fadein 500ms;transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}@media(hover: hover)and (pointer: fine){.mud-picker-year-container .mud-picker-year:hover{background-color:var(--mud-palette-action-default-hover)}}.mud-picker-year-container .mud-picker-year .mud-picker-year-selected{margin:10px 0;font-weight:500}.mud-picker-month-container{width:310px;display:flex;flex-wrap:wrap;align-content:stretch}.mud-picker-month-container .mud-picker-month{flex:1 0 33.33%;cursor:pointer;height:60px;display:flex;outline:none;align-items:center;justify-content:center;transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}@media(hover: hover)and (pointer: fine){.mud-picker-month-container .mud-picker-month:hover{background-color:var(--mud-palette-action-default-hover)}}.mud-picker-month-container .mud-picker-month .mud-picker-month-selected{font-weight:500}.mud-picker-month-container .mud-picker-month.mud-disabled{color:var(--mud-palette-text-disabled);pointer-events:none}.mud-picker-slide-transition{display:block;position:relative}.mud-picker-slide-transition>*{top:0;left:0;right:0;position:absolute}.mud-picker-calendar-transition{margin-top:12px;min-height:216px}.mud-picker-calendar-progress-container{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.mud-picker-calendar-content{display:grid;--selected-day: 0;grid-column-gap:10px;grid-template-columns:auto}@media(min-width: 600px){.mud-picker-calendar-content:not(.mud-picker-calendar-content-1){grid-template-columns:repeat(2, minmax(auto, 1fr))}.mud-picker-calendar-content:not(.mud-picker-calendar-content-1) .mud-picker-calendar-header-1 .mud-picker-nav-button-next,.mud-picker-calendar-content:not(.mud-picker-calendar-content-1) .mud-picker-calendar-header-3 .mud-picker-nav-button-next,.mud-picker-calendar-content:not(.mud-picker-calendar-content-1) .mud-picker-calendar-header-5 .mud-picker-nav-button-next,.mud-picker-calendar-content:not(.mud-picker-calendar-content-1) .mud-picker-calendar-header-7 .mud-picker-nav-button-next,.mud-picker-calendar-content:not(.mud-picker-calendar-content-1) .mud-picker-calendar-header-9 .mud-picker-nav-button-next,.mud-picker-calendar-content:not(.mud-picker-calendar-content-1) .mud-picker-calendar-header-11 .mud-picker-nav-button-next{visibility:hidden}.mud-picker-calendar-content:not(.mud-picker-calendar-content-1) .mud-picker-calendar-header-1 .mud-picker-nav-button-prev,.mud-picker-calendar-content:not(.mud-picker-calendar-content-1) .mud-picker-calendar-header-3 .mud-picker-nav-button-prev,.mud-picker-calendar-content:not(.mud-picker-calendar-content-1) .mud-picker-calendar-header-5 .mud-picker-nav-button-prev,.mud-picker-calendar-content:not(.mud-picker-calendar-content-1) .mud-picker-calendar-header-7 .mud-picker-nav-button-prev,.mud-picker-calendar-content:not(.mud-picker-calendar-content-1) .mud-picker-calendar-header-9 .mud-picker-nav-button-prev,.mud-picker-calendar-content:not(.mud-picker-calendar-content-1) .mud-picker-calendar-header-11 .mud-picker-nav-button-prev{visibility:visible}.mud-picker-calendar-content:not(.mud-picker-calendar-content-1) .mud-picker-calendar-header-2 .mud-picker-nav-button-next,.mud-picker-calendar-content:not(.mud-picker-calendar-content-1) .mud-picker-calendar-header-4 .mud-picker-nav-button-next,.mud-picker-calendar-content:not(.mud-picker-calendar-content-1) .mud-picker-calendar-header-6 .mud-picker-nav-button-next,.mud-picker-calendar-content:not(.mud-picker-calendar-content-1) .mud-picker-calendar-header-8 .mud-picker-nav-button-next,.mud-picker-calendar-content:not(.mud-picker-calendar-content-1) .mud-picker-calendar-header-10 .mud-picker-nav-button-next,.mud-picker-calendar-content:not(.mud-picker-calendar-content-1) .mud-picker-calendar-header-12 .mud-picker-nav-button-next{visibility:visible}.mud-picker-calendar-content:not(.mud-picker-calendar-content-1) .mud-picker-calendar-header-2 .mud-picker-nav-button-prev,.mud-picker-calendar-content:not(.mud-picker-calendar-content-1) .mud-picker-calendar-header-4 .mud-picker-nav-button-prev,.mud-picker-calendar-content:not(.mud-picker-calendar-content-1) .mud-picker-calendar-header-6 .mud-picker-nav-button-prev,.mud-picker-calendar-content:not(.mud-picker-calendar-content-1) .mud-picker-calendar-header-8 .mud-picker-nav-button-prev,.mud-picker-calendar-content:not(.mud-picker-calendar-content-1) .mud-picker-calendar-header-10 .mud-picker-nav-button-prev,.mud-picker-calendar-content:not(.mud-picker-calendar-content-1) .mud-picker-calendar-header-12 .mud-picker-nav-button-prev{visibility:hidden}}@media(min-width: 960px){.mud-picker-calendar-content:not(.mud-picker-calendar-content-1):not(.mud-picker-calendar-content-2){grid-template-columns:repeat(3, minmax(auto, 1fr))}.mud-picker-calendar-content:not(.mud-picker-calendar-content-1):not(.mud-picker-calendar-content-2) .mud-picker-calendar-header-1 .mud-picker-nav-button-next,.mud-picker-calendar-content:not(.mud-picker-calendar-content-1):not(.mud-picker-calendar-content-2) .mud-picker-calendar-header-4 .mud-picker-nav-button-next,.mud-picker-calendar-content:not(.mud-picker-calendar-content-1):not(.mud-picker-calendar-content-2) .mud-picker-calendar-header-7 .mud-picker-nav-button-next,.mud-picker-calendar-content:not(.mud-picker-calendar-content-1):not(.mud-picker-calendar-content-2) .mud-picker-calendar-header-10 .mud-picker-nav-button-next{visibility:hidden}.mud-picker-calendar-content:not(.mud-picker-calendar-content-1):not(.mud-picker-calendar-content-2) .mud-picker-calendar-header-1 .mud-picker-nav-button-prev,.mud-picker-calendar-content:not(.mud-picker-calendar-content-1):not(.mud-picker-calendar-content-2) .mud-picker-calendar-header-4 .mud-picker-nav-button-prev,.mud-picker-calendar-content:not(.mud-picker-calendar-content-1):not(.mud-picker-calendar-content-2) .mud-picker-calendar-header-7 .mud-picker-nav-button-prev,.mud-picker-calendar-content:not(.mud-picker-calendar-content-1):not(.mud-picker-calendar-content-2) .mud-picker-calendar-header-10 .mud-picker-nav-button-prev{visibility:visible}.mud-picker-calendar-content:not(.mud-picker-calendar-content-1):not(.mud-picker-calendar-content-2) .mud-picker-calendar-header-2 .mud-picker-nav-button-next,.mud-picker-calendar-content:not(.mud-picker-calendar-content-1):not(.mud-picker-calendar-content-2) .mud-picker-calendar-header-2 .mud-picker-nav-button-prev,.mud-picker-calendar-content:not(.mud-picker-calendar-content-1):not(.mud-picker-calendar-content-2) .mud-picker-calendar-header-5 .mud-picker-nav-button-next,.mud-picker-calendar-content:not(.mud-picker-calendar-content-1):not(.mud-picker-calendar-content-2) .mud-picker-calendar-header-5 .mud-picker-nav-button-prev,.mud-picker-calendar-content:not(.mud-picker-calendar-content-1):not(.mud-picker-calendar-content-2) .mud-picker-calendar-header-8 .mud-picker-nav-button-next,.mud-picker-calendar-content:not(.mud-picker-calendar-content-1):not(.mud-picker-calendar-content-2) .mud-picker-calendar-header-8 .mud-picker-nav-button-prev,.mud-picker-calendar-content:not(.mud-picker-calendar-content-1):not(.mud-picker-calendar-content-2) .mud-picker-calendar-header-11 .mud-picker-nav-button-next,.mud-picker-calendar-content:not(.mud-picker-calendar-content-1):not(.mud-picker-calendar-content-2) .mud-picker-calendar-header-11 .mud-picker-nav-button-prev{visibility:hidden}.mud-picker-calendar-content:not(.mud-picker-calendar-content-1):not(.mud-picker-calendar-content-2) .mud-picker-calendar-header-3 .mud-picker-nav-button-next,.mud-picker-calendar-content:not(.mud-picker-calendar-content-1):not(.mud-picker-calendar-content-2) .mud-picker-calendar-header-6 .mud-picker-nav-button-next,.mud-picker-calendar-content:not(.mud-picker-calendar-content-1):not(.mud-picker-calendar-content-2) .mud-picker-calendar-header-9 .mud-picker-nav-button-next,.mud-picker-calendar-content:not(.mud-picker-calendar-content-1):not(.mud-picker-calendar-content-2) .mud-picker-calendar-header-12 .mud-picker-nav-button-next{visibility:visible}.mud-picker-calendar-content:not(.mud-picker-calendar-content-1):not(.mud-picker-calendar-content-2) .mud-picker-calendar-header-3 .mud-picker-nav-button-prev,.mud-picker-calendar-content:not(.mud-picker-calendar-content-1):not(.mud-picker-calendar-content-2) .mud-picker-calendar-header-6 .mud-picker-nav-button-prev,.mud-picker-calendar-content:not(.mud-picker-calendar-content-1):not(.mud-picker-calendar-content-2) .mud-picker-calendar-header-9 .mud-picker-nav-button-prev,.mud-picker-calendar-content:not(.mud-picker-calendar-content-1):not(.mud-picker-calendar-content-2) .mud-picker-calendar-header-12 .mud-picker-nav-button-prev{visibility:hidden}}:not(.mud-picker-hidden) .mud-picker-calendar-header-last .mud-picker-nav-button-next{visibility:inherit !important}.mud-picker-hidden .mud-picker-nav-button-next,.mud-picker-hidden .mud-picker-nav-button-prev{visibility:hidden !important}.mud-picker-calendar-container{display:flex;width:310px;flex-direction:column}.mud-picker-calendar{display:flex;flex-wrap:wrap;justify-content:center}.mud-picker-calendar .mud-day{color:var(--mud-palette-text-primary);width:36px;height:36px;margin:0 2px;padding:0;font-size:.75rem;font-weight:500}@media(hover: hover)and (pointer: fine){.mud-picker-calendar .mud-day:hover{background-color:var(--mud-palette-action-default-hover)}}.mud-picker-calendar .mud-day.mud-hidden{opacity:0;pointer-events:none}.mud-picker-calendar .mud-day.mud-current{font-weight:600}.mud-picker-calendar .mud-day.mud-selected{font-weight:500}.mud-picker-calendar .mud-day .mud-typography{margin-top:2px}.mud-picker-calendar .mud-day.mud-disabled{color:var(--mud-palette-text-disabled);pointer-events:none}.mud-picker-calendar .mud-day.mud-range{margin:0;width:40px;transition:none}.mud-picker-calendar .mud-day.mud-range.mud-range-start-selected{border-radius:50% 0% 0% 50%}.mud-picker-calendar .mud-day.mud-range.mud-range-end-selected{border-radius:0% 50% 50% 0%}.mud-picker-calendar .mud-day.mud-range.mud-range-between{border-radius:0;background-color:var(--mud-palette-action-default-hover)}@media(hover: hover)and (pointer: fine){.mud-picker-calendar .mud-day.mud-range.mud-range-selection:hover.mud-range-start-selected{border-radius:50%}.mud-picker-calendar .mud-day.mud-range.mud-range-selection:hover:not(.mud-range-start-selected){border-radius:0% 50% 50% 0%}}.mud-picker-calendar .mud-day.mud-range.mud-range-selection:not(:hover):not(.mud-range-start-selected){border-radius:0;background:linear-gradient(var(--mud-palette-action-default-hover) 100%, var(--mud-palette-action-default-hover) 100%, transparent 0%);background-size:100% calc(100%*(var(--selected-day) - var(--day-id)))}@media(hover: hover)and (pointer: fine){.mud-range-selection-primary:hover{color:var(--mud-palette-primary-text) !important;background-color:var(--mud-palette-primary) !important}}@media(hover: hover)and (pointer: fine){.mud-range-selection-secondary:hover{color:var(--mud-palette-secondary-text) !important;background-color:var(--mud-palette-secondary) !important}}@media(hover: hover)and (pointer: fine){.mud-range-selection-tertiary:hover{color:var(--mud-palette-tertiary-text) !important;background-color:var(--mud-palette-tertiary) !important}}@media(hover: hover)and (pointer: fine){.mud-range-selection-info:hover{color:var(--mud-palette-info-text) !important;background-color:var(--mud-palette-info) !important}}@media(hover: hover)and (pointer: fine){.mud-range-selection-success:hover{color:var(--mud-palette-success-text) !important;background-color:var(--mud-palette-success) !important}}@media(hover: hover)and (pointer: fine){.mud-range-selection-warning:hover{color:var(--mud-palette-warning-text) !important;background-color:var(--mud-palette-warning) !important}}@media(hover: hover)and (pointer: fine){.mud-range-selection-error:hover{color:var(--mud-palette-error-text) !important;background-color:var(--mud-palette-error) !important}}@media(hover: hover)and (pointer: fine){.mud-range-selection-dark:hover{color:var(--mud-palette-dark-text) !important;background-color:var(--mud-palette-dark) !important}}.mud-picker-calendar-week{display:flex;margin:0 5px;justify-content:center;align-items:center}.mud-picker-calendar-week .mud-picker-calendar-week-text{width:15px;margin-top:2px !important;color:var(--mud-palette-text-disabled)}.mud-application-layout-rtl .mud-picker-calendar .mud-day.mud-range.mud-range-start-selected{border-radius:0% 50% 50% 0%}.mud-application-layout-rtl .mud-picker-calendar .mud-day.mud-range.mud-range-end-selected{border-radius:50% 0% 0% 50%}@media(hover: hover)and (pointer: fine){.mud-application-layout-rtl .mud-picker-calendar .mud-day.mud-range.mud-range-selection:hover:not(.mud-range-start-selected){border-radius:50% 0% 0% 50%}}.mud-picker-timepicker-toolbar .mud-timepicker-button{padding:0;min-width:16px;text-transform:none}.mud-picker-timepicker-toolbar .mud-timepicker-button.mud-timepicker-toolbar-text{color:hsla(0,0%,100%,.54)}@media(hover: hover)and (pointer: fine){.mud-picker-timepicker-toolbar .mud-timepicker-button:hover{background-color:var(--mud-theme-default-hover)}}.mud-picker-timepicker-toolbar .mud-timepicker-hourminute{display:flex;align-items:baseline;justify-content:flex-end}.mud-picker-timepicker-toolbar .mud-timepicker-hourminute .mud-timepicker-button{font-size:3.75rem;font-weight:300;line-height:1;letter-spacing:-0.00833em}.mud-picker-timepicker-toolbar .mud-timepicker-ampm{display:flex;margin-left:20px;margin-right:-20px;margin-inline-start:20px;margin-inline-end:-20px;flex-direction:column}.mud-picker-timepicker-toolbar .mud-timepicker-ampm .mud-timepicker-button{font-size:18px;font-weight:400;line-height:1.75;letter-spacing:.00938em}.mud-picker-timepicker-toolbar .mud-timepicker-separator{cursor:default;margin:0 4px 0 2px;margin-inline-start:2px;margin-inline-end:4px}.mud-picker-timepicker-toolbar.mud-picker-timepicker-toolbar-landscape{flex-wrap:wrap;width:150px;justify-content:center}.mud-picker-timepicker-toolbar.mud-picker-timepicker-toolbar-landscape .mud-timepicker-hourminute .mud-timepicker-button{font-size:3rem;font-weight:400;line-height:1.04;letter-spacing:0em}.mud-picker-timepicker-toolbar.mud-picker-timepicker-toolbar-landscape .mud-timepicker-ampm{display:flex;margin-left:20px;margin-right:-20px;margin-inline-start:20px;margin-inline-end:-20px;flex-direction:column}.mud-picker-timepicker-toolbar.mud-picker-timepicker-toolbar-landscape .mud-timepicker-ampm .mud-timepicker-button{font-size:18px;font-weight:400;line-height:1.75;letter-spacing:.00938em}.mud-picker-timepicker-toolbar.mud-picker-timepicker-toolbar-landscape .mud-timepicker-separator{font-size:3rem;font-weight:400;line-height:1.04;letter-spacing:0em}.mud-picker-time-container{margin:16px 0 8px;display:flex;align-items:flex-end;justify-content:center}.mud-picker-time-container .mud-picker-time-clock{width:260px;height:260px;position:relative;border-radius:50%;pointer-events:none;touch-action:pinch-zoom;background-color:rgba(0,0,0,.07)}.mud-picker-time-container .mud-picker-time-clock .mud-picker-time-clock-mask{width:100%;height:100%;outline:none;position:absolute;user-select:none;pointer-events:auto}.mud-picker-time-container .mud-picker-time-clock .mud-picker-time-clock-pin{top:50%;left:50%;width:6px;height:6px;position:absolute;transform:translate(-50%, -50%);border-radius:50%}.mud-picker-time-container .mud-picker-time-clock .mud-picker-stick-inner{left:calc(50% - 1px);width:3px;height:35%;bottom:0;position:absolute;transform-origin:center bottom 0px}.mud-picker-time-container .mud-picker-time-clock .mud-picker-stick-inner.mud-hour:after{content:"";position:absolute;left:50%;transform:translate(-50%, -50%);height:48px;width:48px;top:-60%;border-radius:50%;background-color:inherit}.mud-picker-time-container .mud-picker-time-clock .mud-picker-stick-outer{left:calc(50% - 1px);width:0;height:35%;bottom:35%;position:absolute;transform-origin:center bottom 0px}.mud-picker-time-container .mud-picker-time-clock .mud-picker-stick-outer.mud-hour:after{content:"";position:absolute;left:50%;transform:translate(-50%, -50%);height:48px;width:62px;top:-20px;border-radius:50%;background-color:inherit}.mud-picker-time-container .mud-picker-time-clock .mud-picker-stick{left:calc(50% - 1px);width:3px;height:50%;bottom:50%;position:absolute;transform-origin:center bottom 0px}.mud-picker-time-container .mud-picker-time-clock .mud-picker-stick.mud-hour:after{content:"";position:absolute;left:50%;transform:translate(-50%, -50%);height:62px;width:62px;top:20px;border-radius:50%;background-color:inherit}.mud-picker-time-container .mud-picker-time-clock .mud-picker-stick.mud-minute:after{content:"";position:absolute;left:50%;transform:translate(-50%, -50%);height:44px;width:15px;top:20px;border-radius:50%;background-color:inherit}.mud-picker-time-container .mud-picker-time-clock .mud-picker-time-clock-pointer{left:calc(50% - 1px);width:2px;bottom:50%;position:absolute;transform-origin:center bottom 0px}.mud-picker-time-container .mud-picker-time-clock .mud-picker-time-clock-pointer.mud-picker-time-clock-pointer-animation{transition:transform 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,height 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}.mud-picker-time-container .mud-picker-time-clock .mud-picker-time-clock-pointer .mud-picker-time-clock-pointer-thumb{position:absolute;border-radius:100%}.mud-picker-time-container .mud-picker-time-clock .mud-picker-time-clock-pointer .mud-picker-time-clock-pointer-thumb.mud-onclock-text{top:-19px;left:-13px;width:28px;height:28px;border:none;background-color:inherit}.mud-picker-time-container .mud-picker-time-clock .mud-picker-time-clock-pointer .mud-picker-time-clock-pointer-thumb.mud-onclock-minute{background:rgba(0,0,0,0);border:2px solid;width:10px;height:10px;top:-9px;left:-4px}.mud-picker-time-container .mud-picker-time-clock .mud-clock-number{left:calc((100% - 32px)/2);color:var(--mud-palette-text-primary);background-color:rgba(0,0,0,0) !important;width:32px;height:32px;display:inline-flex;position:absolute;align-items:center;user-select:none;border-radius:50%;justify-content:center;transition-duration:120ms;transition-property:color}.mud-time-picker-dial{width:100%;height:100%;position:absolute;transition:transform 350ms,opacity 350ms}.mud-time-picker-dial-out{opacity:0}.mud-time-picker-hour.mud-time-picker-dial-out{transform:scale(1.2, 1.2);transform-origin:center}.mud-time-picker-minute.mud-time-picker-dial-out{transform:scale(0.8, 0.8);transform-origin:center}.mud-time-picker-dial-hidden{visibility:hidden}.mud-picker-container+.mud-picker-color-toolbar{border-top-left-radius:inherit;border-top-right-radius:inherit}.mud-picker-container+.mud-picker-color-content{border-top-left-radius:inherit;border-top-right-radius:inherit}.mud-picker-color-toolbar{height:32px;padding-right:2px;padding-left:2px}.mud-picker-color-content{min-height:unset;position:relative}.mud-picker-color-picker{width:312px;height:250px;position:relative;overflow:hidden;touch-action:pinch-zoom}.mud-picker-color-picker .mud-picker-color-overlay{width:100%;height:100%;user-select:none}.mud-picker-color-picker .mud-picker-color-overlay.mud-picker-color-overlay-white{background:linear-gradient(to right, white 0%, rgba(255, 255, 255, 0) 100%)}.mud-picker-color-picker .mud-picker-color-overlay.mud-picker-color-overlay-black{background:linear-gradient(to bottom, rgba(0, 0, 0, 0) 0%, black 100%)}.mud-picker-color-picker .mud-picker-color-selector{position:absolute;top:-13px;left:-13px;pointer-events:none}.mud-picker-color-picker .mud-picker-color-grid{display:flex;flex-wrap:wrap}.mud-picker-color-picker .mud-picker-color-grid .mud-picker-color-dot{height:25px;min-width:26px;max-width:26px;border-radius:0px;box-shadow:none}.mud-picker-color-controls{width:312px;padding:16px;display:flex;flex-direction:column}.mud-picker-color-controls .mud-picker-color-controls-row{display:flex;align-items:center}.mud-picker-color-controls .mud-picker-color-controls-row+.mud-picker-color-controls-row{margin-top:24px}.mud-picker-color-controls .mud-picker-color-controls-row .mud-picker-color-sliders{display:flex;flex:1 0 auto;flex-direction:column}.mud-picker-color-controls .mud-picker-color-controls-row .mud-picker-color-sliders .mud-picker-color-slider{min-width:224px;border-radius:var(--mud-default-borderradius)}.mud-picker-color-controls .mud-picker-color-controls-row .mud-picker-color-sliders .mud-picker-color-slider .mud-slider-input{height:10px;border-radius:var(--mud-default-borderradius)}.mud-picker-color-controls .mud-picker-color-controls-row .mud-picker-color-sliders .mud-picker-color-slider .mud-slider-input::-webkit-slider-runnable-track{background:initial}.mud-picker-color-controls .mud-picker-color-controls-row .mud-picker-color-sliders .mud-picker-color-slider .mud-slider-input::-moz-range-track{background:initial}.mud-picker-color-controls .mud-picker-color-controls-row .mud-picker-color-sliders .mud-picker-color-slider .mud-slider-input::-webkit-slider-thumb{appearance:none;margin-top:-6px;height:14px;width:14px;transform:none;transition:none;background:#f0f0f0;box-shadow:rgba(0,0,0,.37) 0px 1px 4px 0px}.mud-picker-color-controls .mud-picker-color-controls-row .mud-picker-color-sliders .mud-picker-color-slider .mud-slider-input::-moz-range-thumb{appearance:none;margin-top:-6px;height:14px;width:14px;transform:none;transition:none;background:#f0f0f0;box-shadow:rgba(0,0,0,.37) 0px 1px 4px 0px}.mud-picker-color-controls .mud-picker-color-controls-row .mud-picker-color-sliders .mud-picker-color-slider .mud-slider-input:active::-webkit-slider-thumb{box-shadow:0 0 0 2px var(--mud-palette-action-default-hover) !important}.mud-picker-color-controls .mud-picker-color-controls-row .mud-picker-color-sliders .mud-picker-color-slider .mud-slider-input:active::-moz-range-thumb{box-shadow:0 0 0 2px var(--mud-palette-action-default-hover) !important}.mud-picker-color-controls .mud-picker-color-controls-row .mud-picker-color-sliders .mud-picker-color-slider.hue+.alpha{margin-top:18px}.mud-picker-color-controls .mud-picker-color-controls-row .mud-picker-color-sliders .mud-picker-color-slider.hue .mud-slider-input{background:linear-gradient(90deg, #FF0000, #ff0 16.66%, #0f0 33.33%, #0ff 50%, #00f 66.66%, #f0f 83.33%, #FF0000)}.mud-picker-color-controls .mud-picker-color-controls-row .mud-picker-color-sliders .mud-picker-color-slider.alpha .mud-slider-input{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAGElEQVQYlWNgYGCQwoKxgqGgcJA5h3yFAAs8BRWVSwooAAAAAElFTkSuQmCC) repeat}.mud-picker-color-controls .mud-picker-color-controls-row .mud-picker-color-inputs{display:flex;flex:1 1 auto}.mud-picker-color-controls .mud-picker-color-controls-row .mud-picker-color-inputs .mud-picker-color-inputfield{width:100%;margin-right:8px;margin-inline-end:8px;margin-inline-start:unset}.mud-picker-color-controls .mud-picker-color-controls-row .mud-picker-color-inputs .mud-picker-color-inputfield:last-of-type{margin-right:0;margin-inline-end:0;margin-inline-start:unset}.mud-picker-color-controls .mud-picker-color-controls-row .mud-picker-color-inputs .mud-picker-color-inputfield .mud-input input{padding:6px;height:1em;text-align:center;font-size:14px}.mud-picker-color-controls .mud-picker-color-controls-row .mud-picker-color-inputs .mud-picker-color-inputfield .mud-input-helper-text{text-align:center}.mud-picker-color-controls .mud-picker-color-controls-row .mud-picker-color-inputs .mud-picker-color-inputfield .mud-input-helper-text div div{margin:auto}.mud-picker-color-controls .mud-picker-color-controls-row .mud-picker-control-switch{margin-left:8px;margin-inline-start:8px;margin-inline-end:unset;padding-bottom:16px}.mud-picker-color-controls .mud-picker-color-controls-row .mud-picker-color-collection{display:flex;min-width:230px;justify-content:space-between}.mud-picker-color-controls .mud-picker-color-controls-row .mud-picker-color-collection .mud-picker-color-dot{max-width:38px}.mud-picker-color-dot{height:38px;min-width:38px;width:100%;transition:background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border-radius 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;border-radius:var(--mud-default-borderradius);box-shadow:0 0 6px rgba(127,130,134,.18)}@media(hover: hover)and (pointer: fine){.mud-picker-color-dot:hover{cursor:pointer;box-shadow:0px 3px 1px -2px rgba(0,0,0,.2),0px 2px 2px 0px rgba(0,0,0,.14),0px 1px 5px 0px rgba(0,0,0,.12)}}.mud-picker-color-dot.mud-picker-color-dot-current{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAGElEQVQYlWNgYGCQwoKxgqGgcJA5h3yFAAs8BRWVSwooAAAAAElFTkSuQmCC) repeat}.mud-picker-color-dot .mud-picker-color-fill{width:100%;height:100%;border-radius:inherit}.mud-picker-color-dot+.mud-picker-color-sliders{margin-left:16px;margin-inline-start:16px;margin-inline-end:unset}.mud-picker-color-dot+.mud-picker-color-collection{margin-left:10px;margin-inline-start:10px;margin-inline-end:unset}.mud-picker-color-view{position:absolute;width:100%;height:100%;overflow:auto;padding:6px;background-color:var(--mud-palette-surface)}.mud-picker-color-view .mud-picker-color-view-collection{display:flex;flex-wrap:wrap;justify-content:space-evenly}.mud-picker-color-view .mud-picker-color-view-collection .mud-picker-color-dot{max-width:38px;margin:8px}.mud-picker-color-view .mud-picker-color-view-collection .mud-picker-color-dot.selected{border-radius:50%;box-shadow:0px 3px 1px -2px rgba(0,0,0,.2),0px 2px 2px 0px rgba(0,0,0,.14),0px 1px 5px 0px rgba(0,0,0,.12)}.mud-popover{outline:0;z-index:calc(var(--mud-zindex-popover) + 1);position:absolute;opacity:0;top:-9999px;left:-9999px}.mud-popover.mud-popover-fixed{position:fixed}.mud-popover.mud-popover-relative-width{width:100%}.mud-popover.mud-popover-open{opacity:1;transition:opacity}.mud-popover:not(.mud-popover-open){pointer-events:none;transition-duration:0ms !important;transition-delay:0ms !important}.mud-popover:empty{box-shadow:none !important}.mud-popover .mud-list{max-height:inherit;overflow-y:auto}.mud-popover .mud-popover{z-index:auto}.mud-appbar .mud-popover-cascading-value{z-index:calc(var(--mud-zindex-appbar) + 2)}.mud-drawer:not(.mud-drawer-temporary) .mud-popover-cascading-value{z-index:calc(var(--mud-zindex-drawer) + 2)}.mud-drawer.mud-drawer-temporary .mud-popover-cascading-value,.mud-drawer.mud-drawer-responsive .mud-popover-cascading-value{z-index:calc(var(--mud-zindex-appbar) + 4)}.mud-dialog .mud-popover-cascading-value{z-index:calc(var(--mud-zindex-dialog) + 3)}.mud-select .mud-popover-cascading-value{z-index:calc(var(--mud-zindex-select) + 5)}.mud-simple-table table{width:100%;display:table;border-spacing:0;border-collapse:collapse}.mud-simple-table table thead{display:table-header-group}.mud-simple-table table tbody{display:table-row-group}.mud-simple-table table tbody>tr:last-child>td,.mud-simple-table table tbody>tr:last-child>th{border-bottom:none}.mud-simple-table table * tr{color:inherit;display:table-row;outline:0;vertical-align:middle}.mud-simple-table table * tr>td,.mud-simple-table table * tr th{display:table-cell;padding:16px;font-size:.875rem;text-align:start;font-weight:400;line-height:1.43;border-bottom:1px solid var(--mud-palette-table-lines);letter-spacing:.01071em;vertical-align:inherit}.mud-simple-table table * tr>th{font-weight:500;line-height:1.5rem}.mud-simple-table.mud-table-dense * tr td,.mud-simple-table.mud-table-dense * tr th{padding:6px 16px}@media(hover: hover)and (pointer: fine){.mud-simple-table.mud-table-hover .mud-table-container table tbody tr:hover{background-color:var(--mud-palette-table-hover)}}.mud-simple-table.mud-table-bordered .mud-table-container table tbody tr td{border-right:1px solid var(--mud-palette-table-lines)}.mud-simple-table.mud-table-bordered .mud-table-container table tbody tr td:last-child{border-right:none}.mud-simple-table.mud-table-striped .mud-table-container table tbody tr:nth-of-type(odd){background-color:var(--mud-palette-table-striped)}@media(hover: hover)and (pointer: fine){.mud-table-hover.mud-table-striped .mud-table-container table tbody tr:nth-of-type(odd):nth-of-type(odd):hover{background-color:var(--mud-palette-table-hover)}}.mud-simple-table.mud-table-sticky-header .mud-table-container{overflow-x:auto;max-height:100%}.mud-simple-table.mud-table-sticky-header * table{border-collapse:separate}.mud-simple-table.mud-table-sticky-header * table thead * th:first-child{border-radius:var(--mud-default-borderradius) 0 0 0}.mud-simple-table.mud-table-sticky-header * table thead * th:last-child{border-radius:0 var(--mud-default-borderradius) 0 0}.mud-simple-table.mud-table-sticky-header * table thead * th{background-color:var(--mud-palette-surface);position:sticky;z-index:1;top:0}.mud-simple-table.mud-table-sticky-footer .mud-table-container{overflow-x:auto;max-height:100%}.mud-simple-table.mud-table-sticky-footer * table{border-collapse:separate}.mud-simple-table.mud-table-sticky-footer * table tfoot * td{background-color:var(--mud-palette-surface);position:sticky;z-index:1;bottom:0}.mud-skeleton{height:1.2em;display:block;background-color:var(--mud-palette-skeleton)}.mud-skeleton-text{height:auto;transform:scale(1, 0.6);margin-top:0;border-radius:var(--mud-default-borderradius);margin-bottom:0;transform-origin:0 60%}.mud-skeleton-text:empty:before{content:" "}.mud-skeleton-circle{border-radius:50%}.mud-skeleton-pulse{animation:mud-skeleton-keyframes-pulse 1.5s ease-in-out .5s infinite}.mud-skeleton-wave{overflow:hidden;position:relative}.mud-skeleton-wave::after{top:0;left:0;right:0;bottom:0;content:"";position:absolute;animation:mud-skeleton-keyframes-wave 1.6s linear .5s infinite;transform:translateX(-100%);background:linear-gradient(90deg, transparent, rgba(0, 0, 0, 0.04), transparent)}.mud-slider{color:var(--mud-palette-text-primary);display:inline-block;width:100%;user-select:none;touch-action:pinch-zoom}.mud-slider>.mud-typography{margin-top:10px}.mud-slider.mud-slider-vertical{transform:rotate(270deg);height:100%;width:unset}.mud-slider .mud-slider-input{-webkit-appearance:none;-moz-appearance:none;position:relative;display:block;width:100%;background-color:rgba(0,0,0,0);cursor:pointer}.mud-slider .mud-slider-input:focus{outline:none}.mud-slider .mud-slider-input:active+.mud-slider-value-label{opacity:1}.mud-slider .mud-slider-input::-webkit-slider-runnable-track{border-radius:var(--mud-default-borderradius);width:100%}.mud-slider .mud-slider-input::-moz-range-track{border-radius:var(--mud-default-borderradius);width:100%}.mud-slider .mud-slider-input::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;border:none;border-radius:50%;cursor:pointer;transition:box-shadow 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}.mud-slider .mud-slider-input::-moz-range-thumb{appearance:none;-webkit-appearance:none;border:none;border-radius:50%;cursor:pointer;transition:box-shadow 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}.mud-slider .mud-slider-input:disabled{cursor:default;opacity:.38}.mud-slider .mud-slider-input:disabled::-webkit-slider-runnable-track{background-color:var(--mud-palette-text-disabled)}.mud-slider .mud-slider-input:disabled::-moz-range-track{background-color:var(--mud-palette-text-disabled)}.mud-slider .mud-slider-input:disabled::-webkit-slider-thumb{background-color:#000;color:#fff;box-shadow:0 0 0 1px #fff !important;transform:scale(4, 4)}@media(hover: hover)and (pointer: fine){.mud-slider .mud-slider-input:disabled::-webkit-slider-thumb:hover{box-shadow:0 0 0 1px #fff !important}}.mud-slider .mud-slider-input:disabled::-moz-range-thumb{background-color:#000;color:#fff;box-shadow:0 0 0 1px #fff !important;transform:scale(4, 4)}@media(hover: hover)and (pointer: fine){.mud-slider .mud-slider-input:disabled::-moz-range-thumb:hover{box-shadow:0 0 0 1px #fff !important}}.mud-slider.mud-slider-primary .mud-slider-filled{background-color:var(--mud-palette-primary)}.mud-slider.mud-slider-primary .mud-slider-track-tick{background-color:var(--mud-palette-primary)}.mud-slider.mud-slider-primary .mud-slider-value-label{color:var(--mud-palette-primary-text);background-color:var(--mud-palette-primary)}.mud-slider.mud-slider-primary .mud-slider-input::-webkit-slider-runnable-track{background-color:rgba(var(--mud-palette-primary-rgb), 0.3)}.mud-slider.mud-slider-primary .mud-slider-input::-moz-range-track{background-color:rgba(var(--mud-palette-primary-rgb), 0.3)}.mud-slider.mud-slider-primary .mud-slider-input::-webkit-slider-thumb{background-color:var(--mud-palette-primary);box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-primary-rgb), 0.3)}.mud-slider.mud-slider-primary .mud-slider-input::-moz-range-thumb{background-color:var(--mud-palette-primary);box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-primary-rgb), 0.3)}@media(hover: hover)and (pointer: fine){.mud-slider.mud-slider-primary .mud-slider-input::-webkit-slider-thumb:hover{box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-primary-rgb), 0.3),0 0 0 1px rgba(var(--mud-palette-primary-rgb), 0.24)}}@media(hover: hover)and (pointer: fine){.mud-slider.mud-slider-primary .mud-slider-input::-moz-range-thumb:hover{box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-primary-rgb), 0.3),0 0 0 1px rgba(var(--mud-palette-primary-rgb), 0.24)}}.mud-slider.mud-slider-primary .mud-slider-input:focus-visible::-webkit-slider-thumb,.mud-slider.mud-slider-primary .mud-slider-input:active::-webkit-slider-thumb{box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-primary-rgb), 0.3),0 0 0 2px rgba(var(--mud-palette-primary-rgb), 0.24)}.mud-slider.mud-slider-primary .mud-slider-input:focus-visible::-moz-range-thumb,.mud-slider.mud-slider-primary .mud-slider-input:active::-moz-range-thumb{box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-primary-rgb), 0.3),0 0 0 2px rgba(var(--mud-palette-primary-rgb), 0.24)}.mud-slider.mud-slider-secondary .mud-slider-filled{background-color:var(--mud-palette-secondary)}.mud-slider.mud-slider-secondary .mud-slider-track-tick{background-color:var(--mud-palette-secondary)}.mud-slider.mud-slider-secondary .mud-slider-value-label{color:var(--mud-palette-secondary-text);background-color:var(--mud-palette-secondary)}.mud-slider.mud-slider-secondary .mud-slider-input::-webkit-slider-runnable-track{background-color:rgba(var(--mud-palette-secondary-rgb), 0.3)}.mud-slider.mud-slider-secondary .mud-slider-input::-moz-range-track{background-color:rgba(var(--mud-palette-secondary-rgb), 0.3)}.mud-slider.mud-slider-secondary .mud-slider-input::-webkit-slider-thumb{background-color:var(--mud-palette-secondary);box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-secondary-rgb), 0.3)}.mud-slider.mud-slider-secondary .mud-slider-input::-moz-range-thumb{background-color:var(--mud-palette-secondary);box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-secondary-rgb), 0.3)}@media(hover: hover)and (pointer: fine){.mud-slider.mud-slider-secondary .mud-slider-input::-webkit-slider-thumb:hover{box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-secondary-rgb), 0.3),0 0 0 1px rgba(var(--mud-palette-secondary-rgb), 0.24)}}@media(hover: hover)and (pointer: fine){.mud-slider.mud-slider-secondary .mud-slider-input::-moz-range-thumb:hover{box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-secondary-rgb), 0.3),0 0 0 1px rgba(var(--mud-palette-secondary-rgb), 0.24)}}.mud-slider.mud-slider-secondary .mud-slider-input:focus-visible::-webkit-slider-thumb,.mud-slider.mud-slider-secondary .mud-slider-input:active::-webkit-slider-thumb{box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-secondary-rgb), 0.3),0 0 0 2px rgba(var(--mud-palette-secondary-rgb), 0.24)}.mud-slider.mud-slider-secondary .mud-slider-input:focus-visible::-moz-range-thumb,.mud-slider.mud-slider-secondary .mud-slider-input:active::-moz-range-thumb{box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-secondary-rgb), 0.3),0 0 0 2px rgba(var(--mud-palette-secondary-rgb), 0.24)}.mud-slider.mud-slider-tertiary .mud-slider-filled{background-color:var(--mud-palette-tertiary)}.mud-slider.mud-slider-tertiary .mud-slider-track-tick{background-color:var(--mud-palette-tertiary)}.mud-slider.mud-slider-tertiary .mud-slider-value-label{color:var(--mud-palette-tertiary-text);background-color:var(--mud-palette-tertiary)}.mud-slider.mud-slider-tertiary .mud-slider-input::-webkit-slider-runnable-track{background-color:rgba(var(--mud-palette-tertiary-rgb), 0.3)}.mud-slider.mud-slider-tertiary .mud-slider-input::-moz-range-track{background-color:rgba(var(--mud-palette-tertiary-rgb), 0.3)}.mud-slider.mud-slider-tertiary .mud-slider-input::-webkit-slider-thumb{background-color:var(--mud-palette-tertiary);box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-tertiary-rgb), 0.3)}.mud-slider.mud-slider-tertiary .mud-slider-input::-moz-range-thumb{background-color:var(--mud-palette-tertiary);box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-tertiary-rgb), 0.3)}@media(hover: hover)and (pointer: fine){.mud-slider.mud-slider-tertiary .mud-slider-input::-webkit-slider-thumb:hover{box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-tertiary-rgb), 0.3),0 0 0 1px rgba(var(--mud-palette-tertiary-rgb), 0.24)}}@media(hover: hover)and (pointer: fine){.mud-slider.mud-slider-tertiary .mud-slider-input::-moz-range-thumb:hover{box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-tertiary-rgb), 0.3),0 0 0 1px rgba(var(--mud-palette-tertiary-rgb), 0.24)}}.mud-slider.mud-slider-tertiary .mud-slider-input:focus-visible::-webkit-slider-thumb,.mud-slider.mud-slider-tertiary .mud-slider-input:active::-webkit-slider-thumb{box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-tertiary-rgb), 0.3),0 0 0 2px rgba(var(--mud-palette-tertiary-rgb), 0.24)}.mud-slider.mud-slider-tertiary .mud-slider-input:focus-visible::-moz-range-thumb,.mud-slider.mud-slider-tertiary .mud-slider-input:active::-moz-range-thumb{box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-tertiary-rgb), 0.3),0 0 0 2px rgba(var(--mud-palette-tertiary-rgb), 0.24)}.mud-slider.mud-slider-info .mud-slider-filled{background-color:var(--mud-palette-info)}.mud-slider.mud-slider-info .mud-slider-track-tick{background-color:var(--mud-palette-info)}.mud-slider.mud-slider-info .mud-slider-value-label{color:var(--mud-palette-info-text);background-color:var(--mud-palette-info)}.mud-slider.mud-slider-info .mud-slider-input::-webkit-slider-runnable-track{background-color:rgba(var(--mud-palette-info-rgb), 0.3)}.mud-slider.mud-slider-info .mud-slider-input::-moz-range-track{background-color:rgba(var(--mud-palette-info-rgb), 0.3)}.mud-slider.mud-slider-info .mud-slider-input::-webkit-slider-thumb{background-color:var(--mud-palette-info);box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-info-rgb), 0.3)}.mud-slider.mud-slider-info .mud-slider-input::-moz-range-thumb{background-color:var(--mud-palette-info);box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-info-rgb), 0.3)}@media(hover: hover)and (pointer: fine){.mud-slider.mud-slider-info .mud-slider-input::-webkit-slider-thumb:hover{box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-info-rgb), 0.3),0 0 0 1px rgba(var(--mud-palette-info-rgb), 0.24)}}@media(hover: hover)and (pointer: fine){.mud-slider.mud-slider-info .mud-slider-input::-moz-range-thumb:hover{box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-info-rgb), 0.3),0 0 0 1px rgba(var(--mud-palette-info-rgb), 0.24)}}.mud-slider.mud-slider-info .mud-slider-input:focus-visible::-webkit-slider-thumb,.mud-slider.mud-slider-info .mud-slider-input:active::-webkit-slider-thumb{box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-info-rgb), 0.3),0 0 0 2px rgba(var(--mud-palette-info-rgb), 0.24)}.mud-slider.mud-slider-info .mud-slider-input:focus-visible::-moz-range-thumb,.mud-slider.mud-slider-info .mud-slider-input:active::-moz-range-thumb{box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-info-rgb), 0.3),0 0 0 2px rgba(var(--mud-palette-info-rgb), 0.24)}.mud-slider.mud-slider-success .mud-slider-filled{background-color:var(--mud-palette-success)}.mud-slider.mud-slider-success .mud-slider-track-tick{background-color:var(--mud-palette-success)}.mud-slider.mud-slider-success .mud-slider-value-label{color:var(--mud-palette-success-text);background-color:var(--mud-palette-success)}.mud-slider.mud-slider-success .mud-slider-input::-webkit-slider-runnable-track{background-color:rgba(var(--mud-palette-success-rgb), 0.3)}.mud-slider.mud-slider-success .mud-slider-input::-moz-range-track{background-color:rgba(var(--mud-palette-success-rgb), 0.3)}.mud-slider.mud-slider-success .mud-slider-input::-webkit-slider-thumb{background-color:var(--mud-palette-success);box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-success-rgb), 0.3)}.mud-slider.mud-slider-success .mud-slider-input::-moz-range-thumb{background-color:var(--mud-palette-success);box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-success-rgb), 0.3)}@media(hover: hover)and (pointer: fine){.mud-slider.mud-slider-success .mud-slider-input::-webkit-slider-thumb:hover{box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-success-rgb), 0.3),0 0 0 1px rgba(var(--mud-palette-success-rgb), 0.24)}}@media(hover: hover)and (pointer: fine){.mud-slider.mud-slider-success .mud-slider-input::-moz-range-thumb:hover{box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-success-rgb), 0.3),0 0 0 1px rgba(var(--mud-palette-success-rgb), 0.24)}}.mud-slider.mud-slider-success .mud-slider-input:focus-visible::-webkit-slider-thumb,.mud-slider.mud-slider-success .mud-slider-input:active::-webkit-slider-thumb{box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-success-rgb), 0.3),0 0 0 2px rgba(var(--mud-palette-success-rgb), 0.24)}.mud-slider.mud-slider-success .mud-slider-input:focus-visible::-moz-range-thumb,.mud-slider.mud-slider-success .mud-slider-input:active::-moz-range-thumb{box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-success-rgb), 0.3),0 0 0 2px rgba(var(--mud-palette-success-rgb), 0.24)}.mud-slider.mud-slider-warning .mud-slider-filled{background-color:var(--mud-palette-warning)}.mud-slider.mud-slider-warning .mud-slider-track-tick{background-color:var(--mud-palette-warning)}.mud-slider.mud-slider-warning .mud-slider-value-label{color:var(--mud-palette-warning-text);background-color:var(--mud-palette-warning)}.mud-slider.mud-slider-warning .mud-slider-input::-webkit-slider-runnable-track{background-color:rgba(var(--mud-palette-warning-rgb), 0.3)}.mud-slider.mud-slider-warning .mud-slider-input::-moz-range-track{background-color:rgba(var(--mud-palette-warning-rgb), 0.3)}.mud-slider.mud-slider-warning .mud-slider-input::-webkit-slider-thumb{background-color:var(--mud-palette-warning);box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-warning-rgb), 0.3)}.mud-slider.mud-slider-warning .mud-slider-input::-moz-range-thumb{background-color:var(--mud-palette-warning);box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-warning-rgb), 0.3)}@media(hover: hover)and (pointer: fine){.mud-slider.mud-slider-warning .mud-slider-input::-webkit-slider-thumb:hover{box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-warning-rgb), 0.3),0 0 0 1px rgba(var(--mud-palette-warning-rgb), 0.24)}}@media(hover: hover)and (pointer: fine){.mud-slider.mud-slider-warning .mud-slider-input::-moz-range-thumb:hover{box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-warning-rgb), 0.3),0 0 0 1px rgba(var(--mud-palette-warning-rgb), 0.24)}}.mud-slider.mud-slider-warning .mud-slider-input:focus-visible::-webkit-slider-thumb,.mud-slider.mud-slider-warning .mud-slider-input:active::-webkit-slider-thumb{box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-warning-rgb), 0.3),0 0 0 2px rgba(var(--mud-palette-warning-rgb), 0.24)}.mud-slider.mud-slider-warning .mud-slider-input:focus-visible::-moz-range-thumb,.mud-slider.mud-slider-warning .mud-slider-input:active::-moz-range-thumb{box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-warning-rgb), 0.3),0 0 0 2px rgba(var(--mud-palette-warning-rgb), 0.24)}.mud-slider.mud-slider-error .mud-slider-filled{background-color:var(--mud-palette-error)}.mud-slider.mud-slider-error .mud-slider-track-tick{background-color:var(--mud-palette-error)}.mud-slider.mud-slider-error .mud-slider-value-label{color:var(--mud-palette-error-text);background-color:var(--mud-palette-error)}.mud-slider.mud-slider-error .mud-slider-input::-webkit-slider-runnable-track{background-color:rgba(var(--mud-palette-error-rgb), 0.3)}.mud-slider.mud-slider-error .mud-slider-input::-moz-range-track{background-color:rgba(var(--mud-palette-error-rgb), 0.3)}.mud-slider.mud-slider-error .mud-slider-input::-webkit-slider-thumb{background-color:var(--mud-palette-error);box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-error-rgb), 0.3)}.mud-slider.mud-slider-error .mud-slider-input::-moz-range-thumb{background-color:var(--mud-palette-error);box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-error-rgb), 0.3)}@media(hover: hover)and (pointer: fine){.mud-slider.mud-slider-error .mud-slider-input::-webkit-slider-thumb:hover{box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-error-rgb), 0.3),0 0 0 1px rgba(var(--mud-palette-error-rgb), 0.24)}}@media(hover: hover)and (pointer: fine){.mud-slider.mud-slider-error .mud-slider-input::-moz-range-thumb:hover{box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-error-rgb), 0.3),0 0 0 1px rgba(var(--mud-palette-error-rgb), 0.24)}}.mud-slider.mud-slider-error .mud-slider-input:focus-visible::-webkit-slider-thumb,.mud-slider.mud-slider-error .mud-slider-input:active::-webkit-slider-thumb{box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-error-rgb), 0.3),0 0 0 2px rgba(var(--mud-palette-error-rgb), 0.24)}.mud-slider.mud-slider-error .mud-slider-input:focus-visible::-moz-range-thumb,.mud-slider.mud-slider-error .mud-slider-input:active::-moz-range-thumb{box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-error-rgb), 0.3),0 0 0 2px rgba(var(--mud-palette-error-rgb), 0.24)}.mud-slider.mud-slider-dark .mud-slider-filled{background-color:var(--mud-palette-dark)}.mud-slider.mud-slider-dark .mud-slider-track-tick{background-color:var(--mud-palette-dark)}.mud-slider.mud-slider-dark .mud-slider-value-label{color:var(--mud-palette-dark-text);background-color:var(--mud-palette-dark)}.mud-slider.mud-slider-dark .mud-slider-input::-webkit-slider-runnable-track{background-color:rgba(var(--mud-palette-dark-rgb), 0.3)}.mud-slider.mud-slider-dark .mud-slider-input::-moz-range-track{background-color:rgba(var(--mud-palette-dark-rgb), 0.3)}.mud-slider.mud-slider-dark .mud-slider-input::-webkit-slider-thumb{background-color:var(--mud-palette-dark);box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-dark-rgb), 0.3)}.mud-slider.mud-slider-dark .mud-slider-input::-moz-range-thumb{background-color:var(--mud-palette-dark);box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-dark-rgb), 0.3)}@media(hover: hover)and (pointer: fine){.mud-slider.mud-slider-dark .mud-slider-input::-webkit-slider-thumb:hover{box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-dark-rgb), 0.3),0 0 0 1px rgba(var(--mud-palette-dark-rgb), 0.24)}}@media(hover: hover)and (pointer: fine){.mud-slider.mud-slider-dark .mud-slider-input::-moz-range-thumb:hover{box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-dark-rgb), 0.3),0 0 0 1px rgba(var(--mud-palette-dark-rgb), 0.24)}}.mud-slider.mud-slider-dark .mud-slider-input:focus-visible::-webkit-slider-thumb,.mud-slider.mud-slider-dark .mud-slider-input:active::-webkit-slider-thumb{box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-dark-rgb), 0.3),0 0 0 2px rgba(var(--mud-palette-dark-rgb), 0.24)}.mud-slider.mud-slider-dark .mud-slider-input:focus-visible::-moz-range-thumb,.mud-slider.mud-slider-dark .mud-slider-input:active::-moz-range-thumb{box-shadow:0px 1px 2px -1px rgba(var(--mud-palette-dark-rgb), 0.3),0 0 0 2px rgba(var(--mud-palette-dark-rgb), 0.24)}.mud-slider.mud-slider-small .mud-slider-filled{height:2px}.mud-slider.mud-slider-small .mud-slider-track-tick{width:2px;height:2px}.mud-slider.mud-slider-small .mud-slider-track-tick-label{transform:translateX(-50%) translateY(50%)}.mud-slider.mud-slider-small .mud-slider-input::-webkit-slider-runnable-track{height:2px;margin:10px 0}.mud-slider.mud-slider-small .mud-slider-input::-moz-range-track{height:2px;margin:10px 0}.mud-slider.mud-slider-small .mud-slider-input::-webkit-slider-thumb{height:2px;width:2px;transform:scale(6, 6)}.mud-slider.mud-slider-small .mud-slider-input::-moz-range-thumb{height:2px;width:2px;transform:scale(6, 6)}.mud-slider.mud-slider-medium .mud-slider-filled{height:4px}.mud-slider.mud-slider-medium .mud-slider-track-tick{width:4px;height:4px}.mud-slider.mud-slider-medium .mud-slider-track-tick-label{transform:translateX(-50%) translateY(80%)}.mud-slider.mud-slider-medium .mud-slider-input::-webkit-slider-runnable-track{height:4px;margin:12px 0}.mud-slider.mud-slider-medium .mud-slider-input::-moz-range-track{height:4px;margin:12px 0}.mud-slider.mud-slider-medium .mud-slider-input::-webkit-slider-thumb{height:4px;width:4px;transform:scale(5, 5)}.mud-slider.mud-slider-medium .mud-slider-input::-moz-range-thumb{height:4px;width:4px;transform:scale(5, 5)}.mud-slider.mud-slider-large .mud-slider-filled{height:6px}.mud-slider.mud-slider-large .mud-slider-track-tick{width:6px;height:6px}.mud-slider.mud-slider-large .mud-slider-track-tick-label{transform:translateX(-50%) translateY(110%)}.mud-slider.mud-slider-large .mud-slider-input::-webkit-slider-runnable-track{height:6px;margin:14px 0}.mud-slider.mud-slider-large .mud-slider-input::-moz-range-track{height:6px;margin:14px 0}.mud-slider.mud-slider-large .mud-slider-input::-webkit-slider-thumb{height:6px;width:6px;transform:scale(4, 4)}.mud-slider.mud-slider-large .mud-slider-input::-moz-range-thumb{height:6px;width:6px;transform:scale(4, 4)}.mud-slider .mud-slider-container{position:relative;width:100%;display:flex;align-content:center}.mud-slider .mud-slider-filled{border-radius:var(--mud-default-borderradius)}.mud-slider .mud-slider-inner-container{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;align-items:center}.mud-slider .mud-slider-value-label{position:absolute;top:0;transform:translateX(-50%) translateY(-125%);padding:4px 8px;text-align:center;align-items:center;justify-content:center;font-size:12px;border-radius:2px;line-height:normal;opacity:0;transition:opacity .2s ease-in-out;pointer-events:none;user-select:none}.mud-slider .mud-slider-tickmarks{display:flex;justify-content:space-between;flex-grow:1}.mud-slider .mud-slider-track-tick{border-radius:9999%;background-color:var(--mud-palette-primary)}.mud-slider .mud-slider-track-tick-label{position:absolute;top:0;left:50%}.mud-progress-circular{display:inline-block;position:relative;color:var(--mud-palette-text-secondary)}.mud-progress-circular.mud-progress-indeterminate{animation:mud-progress-circular-keyframes-circular-rotate 1.4s linear infinite}.mud-progress-circular.mud-progress-static{transition:transform 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}.mud-progress-circular.mud-progress-small{height:24px;width:24px}.mud-progress-circular.mud-progress-medium{height:40px;width:40px}.mud-progress-circular.mud-progress-large{height:56px;width:56px}.mud-progress-circular-svg{display:block;transform:rotate(-90deg)}.mud-progress-circular-indeterminate-child{animation:mud-progress-circular-keyframes-circular-rotate 1.4s linear reverse infinite}.mud-progress-circular-percentage{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center}.mud-progress-circular-circle{stroke:currentColor}.mud-progress-circular-circle.mud-progress-indeterminate{animation:mud-progress-circular-keyframes-circular-dash 1.4s ease-in-out infinite;stroke-dasharray:80px,200px;stroke-dashoffset:0px}.mud-progress-circular-circle.mud-progress-static{transition:stroke-dashoffset 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}.mud-progress-circular-circle.mud-progress-circular-circle-rounded{stroke-linecap:round}.mud-progress-circular-disable-shrink{animation:none}.mud-progress-linear{position:relative}.mud-progress-linear::before{content:"";position:absolute;top:0;left:0;height:100%;width:100%;display:block;opacity:.2}.mud-progress-linear.horizontal{width:100%}.mud-progress-linear.horizontal.mud-progress-linear-small{height:4px}.mud-progress-linear.horizontal.mud-progress-linear-medium{height:8px}.mud-progress-linear.horizontal.mud-progress-linear-large{height:12px}.mud-progress-linear.horizontal .mud-progress-linear-dashed{animation:mud-progress-linear-horizontal-keyframes-buffer 3s infinite linear}.mud-progress-linear.vertical{height:100%}.mud-progress-linear.vertical.mud-progress-linear-small{width:4px}.mud-progress-linear.vertical.mud-progress-linear-medium{width:8px}.mud-progress-linear.vertical.mud-progress-linear-large{width:12px}.mud-progress-linear .mud-progress-linear-content{position:absolute;height:100%;width:100%;display:flex;justify-content:center;align-items:center}.mud-progress-linear .mud-progress-linear-bars{position:absolute;height:100%;width:100%;overflow:hidden}.mud-progress-linear .mud-progress-linear-bar{top:0;left:0;width:100%;bottom:0;position:absolute;transition:transform .2s linear;transform-origin:left}.mud-progress-linear .mud-progress-linear-bar.mud-progress-linear-1-indeterminate.horizontal{width:auto;animation:mud-progress-linear-horizontal-keyframes-indeterminate1 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite}.mud-progress-linear .mud-progress-linear-bar.mud-progress-linear-1-indeterminate.vertical{height:auto;animation:mud-progress-linear-vertical-keyframes-indeterminate1 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite}.mud-progress-linear .mud-progress-linear-bar.mud-progress-linear-2-indeterminate.horizontal{width:auto;animation:mud-progress-linear-horizontal-keyframes-indeterminate2 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) 1.15s infinite}.mud-progress-linear .mud-progress-linear-bar.mud-progress-linear-2-indeterminate.vertical{height:auto;animation:mud-progress-linear-vertical-keyframes-indeterminate2 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) 1.15s infinite}.mud-progress-linear.mud-progress-linear-color-default:not(.mud-progress-linear-buffer)::before{background-color:var(--mud-palette-action-disabled)}.mud-progress-linear.mud-progress-linear-color-default:not(.mud-progress-linear-buffer) .mud-progress-linear-bar{background-color:var(--mud-palette-action-default)}.mud-progress-linear.mud-progress-linear-color-default.mud-progress-linear-buffer .mud-progress-linear-bar:first-child{background-size:10px 10px;background-image:radial-gradient(var(--mud-palette-action-disabled) 0%, var(--mud-palette-action-disabled) 16%, transparent 42%);background-position:0 50%}.mud-progress-linear.mud-progress-linear-color-default.mud-progress-linear-buffer .mud-progress-linear-bar:nth-child(2){background-color:var(--mud-palette-action-default)}.mud-progress-linear.mud-progress-linear-color-default.mud-progress-linear-buffer .mud-progress-linear-bar:last-child{transition:transform .4s linear}.mud-progress-linear.mud-progress-linear-color-default.mud-progress-linear-buffer .mud-progress-linear-bar:last-child::before{content:"";position:absolute;top:0;left:0;height:100%;width:100%;display:block;opacity:.4;background-color:var(--mud-palette-action-disabled)}.mud-progress-linear.mud-progress-linear-color-primary:not(.mud-progress-linear-buffer)::before{background-color:var(--mud-palette-primary)}.mud-progress-linear.mud-progress-linear-color-primary:not(.mud-progress-linear-buffer) .mud-progress-linear-bar{background-color:var(--mud-palette-primary)}.mud-progress-linear.mud-progress-linear-color-primary.mud-progress-linear-buffer .mud-progress-linear-bar:first-child{background-size:10px 10px;background-image:radial-gradient(var(--mud-palette-primary) 0%, var(--mud-palette-primary) 16%, transparent 42%);background-position:0 50%}.mud-progress-linear.mud-progress-linear-color-primary.mud-progress-linear-buffer .mud-progress-linear-bar:nth-child(2){background-color:var(--mud-palette-primary)}.mud-progress-linear.mud-progress-linear-color-primary.mud-progress-linear-buffer .mud-progress-linear-bar:last-child{transition:transform .4s linear}.mud-progress-linear.mud-progress-linear-color-primary.mud-progress-linear-buffer .mud-progress-linear-bar:last-child::before{content:"";position:absolute;top:0;left:0;height:100%;width:100%;display:block;opacity:.4;background-color:var(--mud-palette-primary)}.mud-progress-linear.mud-progress-linear-color-secondary:not(.mud-progress-linear-buffer)::before{background-color:var(--mud-palette-secondary)}.mud-progress-linear.mud-progress-linear-color-secondary:not(.mud-progress-linear-buffer) .mud-progress-linear-bar{background-color:var(--mud-palette-secondary)}.mud-progress-linear.mud-progress-linear-color-secondary.mud-progress-linear-buffer .mud-progress-linear-bar:first-child{background-size:10px 10px;background-image:radial-gradient(var(--mud-palette-secondary) 0%, var(--mud-palette-secondary) 16%, transparent 42%);background-position:0 50%}.mud-progress-linear.mud-progress-linear-color-secondary.mud-progress-linear-buffer .mud-progress-linear-bar:nth-child(2){background-color:var(--mud-palette-secondary)}.mud-progress-linear.mud-progress-linear-color-secondary.mud-progress-linear-buffer .mud-progress-linear-bar:last-child{transition:transform .4s linear}.mud-progress-linear.mud-progress-linear-color-secondary.mud-progress-linear-buffer .mud-progress-linear-bar:last-child::before{content:"";position:absolute;top:0;left:0;height:100%;width:100%;display:block;opacity:.4;background-color:var(--mud-palette-secondary)}.mud-progress-linear.mud-progress-linear-color-tertiary:not(.mud-progress-linear-buffer)::before{background-color:var(--mud-palette-tertiary)}.mud-progress-linear.mud-progress-linear-color-tertiary:not(.mud-progress-linear-buffer) .mud-progress-linear-bar{background-color:var(--mud-palette-tertiary)}.mud-progress-linear.mud-progress-linear-color-tertiary.mud-progress-linear-buffer .mud-progress-linear-bar:first-child{background-size:10px 10px;background-image:radial-gradient(var(--mud-palette-tertiary) 0%, var(--mud-palette-tertiary) 16%, transparent 42%);background-position:0 50%}.mud-progress-linear.mud-progress-linear-color-tertiary.mud-progress-linear-buffer .mud-progress-linear-bar:nth-child(2){background-color:var(--mud-palette-tertiary)}.mud-progress-linear.mud-progress-linear-color-tertiary.mud-progress-linear-buffer .mud-progress-linear-bar:last-child{transition:transform .4s linear}.mud-progress-linear.mud-progress-linear-color-tertiary.mud-progress-linear-buffer .mud-progress-linear-bar:last-child::before{content:"";position:absolute;top:0;left:0;height:100%;width:100%;display:block;opacity:.4;background-color:var(--mud-palette-tertiary)}.mud-progress-linear.mud-progress-linear-color-info:not(.mud-progress-linear-buffer)::before{background-color:var(--mud-palette-info)}.mud-progress-linear.mud-progress-linear-color-info:not(.mud-progress-linear-buffer) .mud-progress-linear-bar{background-color:var(--mud-palette-info)}.mud-progress-linear.mud-progress-linear-color-info.mud-progress-linear-buffer .mud-progress-linear-bar:first-child{background-size:10px 10px;background-image:radial-gradient(var(--mud-palette-info) 0%, var(--mud-palette-info) 16%, transparent 42%);background-position:0 50%}.mud-progress-linear.mud-progress-linear-color-info.mud-progress-linear-buffer .mud-progress-linear-bar:nth-child(2){background-color:var(--mud-palette-info)}.mud-progress-linear.mud-progress-linear-color-info.mud-progress-linear-buffer .mud-progress-linear-bar:last-child{transition:transform .4s linear}.mud-progress-linear.mud-progress-linear-color-info.mud-progress-linear-buffer .mud-progress-linear-bar:last-child::before{content:"";position:absolute;top:0;left:0;height:100%;width:100%;display:block;opacity:.4;background-color:var(--mud-palette-info)}.mud-progress-linear.mud-progress-linear-color-success:not(.mud-progress-linear-buffer)::before{background-color:var(--mud-palette-success)}.mud-progress-linear.mud-progress-linear-color-success:not(.mud-progress-linear-buffer) .mud-progress-linear-bar{background-color:var(--mud-palette-success)}.mud-progress-linear.mud-progress-linear-color-success.mud-progress-linear-buffer .mud-progress-linear-bar:first-child{background-size:10px 10px;background-image:radial-gradient(var(--mud-palette-success) 0%, var(--mud-palette-success) 16%, transparent 42%);background-position:0 50%}.mud-progress-linear.mud-progress-linear-color-success.mud-progress-linear-buffer .mud-progress-linear-bar:nth-child(2){background-color:var(--mud-palette-success)}.mud-progress-linear.mud-progress-linear-color-success.mud-progress-linear-buffer .mud-progress-linear-bar:last-child{transition:transform .4s linear}.mud-progress-linear.mud-progress-linear-color-success.mud-progress-linear-buffer .mud-progress-linear-bar:last-child::before{content:"";position:absolute;top:0;left:0;height:100%;width:100%;display:block;opacity:.4;background-color:var(--mud-palette-success)}.mud-progress-linear.mud-progress-linear-color-warning:not(.mud-progress-linear-buffer)::before{background-color:var(--mud-palette-warning)}.mud-progress-linear.mud-progress-linear-color-warning:not(.mud-progress-linear-buffer) .mud-progress-linear-bar{background-color:var(--mud-palette-warning)}.mud-progress-linear.mud-progress-linear-color-warning.mud-progress-linear-buffer .mud-progress-linear-bar:first-child{background-size:10px 10px;background-image:radial-gradient(var(--mud-palette-warning) 0%, var(--mud-palette-warning) 16%, transparent 42%);background-position:0 50%}.mud-progress-linear.mud-progress-linear-color-warning.mud-progress-linear-buffer .mud-progress-linear-bar:nth-child(2){background-color:var(--mud-palette-warning)}.mud-progress-linear.mud-progress-linear-color-warning.mud-progress-linear-buffer .mud-progress-linear-bar:last-child{transition:transform .4s linear}.mud-progress-linear.mud-progress-linear-color-warning.mud-progress-linear-buffer .mud-progress-linear-bar:last-child::before{content:"";position:absolute;top:0;left:0;height:100%;width:100%;display:block;opacity:.4;background-color:var(--mud-palette-warning)}.mud-progress-linear.mud-progress-linear-color-error:not(.mud-progress-linear-buffer)::before{background-color:var(--mud-palette-error)}.mud-progress-linear.mud-progress-linear-color-error:not(.mud-progress-linear-buffer) .mud-progress-linear-bar{background-color:var(--mud-palette-error)}.mud-progress-linear.mud-progress-linear-color-error.mud-progress-linear-buffer .mud-progress-linear-bar:first-child{background-size:10px 10px;background-image:radial-gradient(var(--mud-palette-error) 0%, var(--mud-palette-error) 16%, transparent 42%);background-position:0 50%}.mud-progress-linear.mud-progress-linear-color-error.mud-progress-linear-buffer .mud-progress-linear-bar:nth-child(2){background-color:var(--mud-palette-error)}.mud-progress-linear.mud-progress-linear-color-error.mud-progress-linear-buffer .mud-progress-linear-bar:last-child{transition:transform .4s linear}.mud-progress-linear.mud-progress-linear-color-error.mud-progress-linear-buffer .mud-progress-linear-bar:last-child::before{content:"";position:absolute;top:0;left:0;height:100%;width:100%;display:block;opacity:.4;background-color:var(--mud-palette-error)}.mud-progress-linear.mud-progress-linear-color-dark:not(.mud-progress-linear-buffer)::before{background-color:var(--mud-palette-dark)}.mud-progress-linear.mud-progress-linear-color-dark:not(.mud-progress-linear-buffer) .mud-progress-linear-bar{background-color:var(--mud-palette-dark)}.mud-progress-linear.mud-progress-linear-color-dark.mud-progress-linear-buffer .mud-progress-linear-bar:first-child{background-size:10px 10px;background-image:radial-gradient(var(--mud-palette-dark) 0%, var(--mud-palette-dark) 16%, transparent 42%);background-position:0 50%}.mud-progress-linear.mud-progress-linear-color-dark.mud-progress-linear-buffer .mud-progress-linear-bar:nth-child(2){background-color:var(--mud-palette-dark)}.mud-progress-linear.mud-progress-linear-color-dark.mud-progress-linear-buffer .mud-progress-linear-bar:last-child{transition:transform .4s linear}.mud-progress-linear.mud-progress-linear-color-dark.mud-progress-linear-buffer .mud-progress-linear-bar:last-child::before{content:"";position:absolute;top:0;left:0;height:100%;width:100%;display:block;opacity:.4;background-color:var(--mud-palette-dark)}.mud-progress-linear.mud-progress-indeterminate.horizontal .mud-progress-linear-bar:first-child{width:auto;animation:mud-progress-linear-horizontal-keyframes-indeterminate1 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite}.mud-progress-linear.mud-progress-indeterminate.horizontal .mud-progress-linear-bar:last-child{width:auto;animation:mud-progress-linear-horizontal-keyframes-indeterminate2 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) 1.15s infinite}.mud-progress-linear.mud-progress-indeterminate.vertical .mud-progress-linear-bar:first-child{height:auto;animation:mud-progress-linear-vertical-keyframes-indeterminate1 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite}.mud-progress-linear.mud-progress-indeterminate.vertical .mud-progress-linear-bar:last-child{height:auto;animation:mud-progress-linear-vertical-keyframes-indeterminate2 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) 1.15s infinite}.mud-progress-linear.mud-progress-linear-buffer .mud-progress-linear-bar:first-child{width:100%;height:100%;position:absolute;margin-top:0}.mud-progress-linear.mud-progress-linear-buffer .mud-progress-linear-bar:nth-child(2){z-index:1;transition:transform .4s linear}.mud-progress-linear.mud-progress-linear-buffer.horizontal .mud-progress-linear-bar:first-child{animation:mud-progress-linear-horizontal-keyframes-buffer 3s infinite linear}.mud-progress-linear.mud-progress-linear-buffer.vertical .mud-progress-linear-bar:first-child{animation:mud-progress-linear-vertical-keyframes-buffer 3s infinite linear}.mud-progress-linear.mud-progress-linear-striped .mud-progress-linear-bar{background-image:linear-gradient(135deg, hsla(0, 0%, 100%, 0.25) 25%, transparent 0, transparent 50%, hsla(0, 0%, 100%, 0.25) 0, hsla(0, 0%, 100%, 0.25) 75%, transparent 0, transparent);background-size:40px 40px;background-repeat:repeat;animation:mud-progress-linear-striped-loading 10s linear infinite}.mud-progress-linear.mud-progress-linear-rounded{border-radius:var(--mud-default-borderradius)}.mud-progress-linear.mud-progress-linear-rounded .mud-progress-linear-bars{border-radius:var(--mud-default-borderradius)}.mud-progress-linear.mud-progress-linear-rounded .mud-progress-linear-bar{border-radius:var(--mud-default-borderradius)}.mud-progress-linear.mud-progress-linear-rounded::before{border-radius:var(--mud-default-borderradius)}.mud-radio{cursor:pointer;display:inline-flex;align-items:center;vertical-align:middle;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mud-radio>.mud-radio-content{color:var(--mud-palette-text-primary)}@media(hover: hover)and (pointer: fine){.mud-radio .mud-disabled:hover{cursor:default;background-color:rgba(0,0,0,0) !important}.mud-radio .mud-disabled:hover>.mud-radio-content{color:var(--mud-palette-text-disabled)}.mud-radio .mud-disabled:hover *{cursor:default;color:var(--mud-palette-text-disabled)}}.mud-radio.mud-disabled,.mud-radio .mud-disabled:focus-visible,.mud-radio .mud-disabled:active{cursor:default;background-color:rgba(0,0,0,0) !important}.mud-radio.mud-disabled>.mud-radio-content,.mud-radio .mud-disabled:focus-visible>.mud-radio-content,.mud-radio .mud-disabled:active>.mud-radio-content{color:var(--mud-palette-text-disabled)}.mud-radio.mud-disabled *,.mud-radio .mud-disabled:focus-visible *,.mud-radio .mud-disabled:active *{cursor:default;color:var(--mud-palette-text-disabled)}.mud-radio.mud-readonly,.mud-radio .mud-readonly:hover{cursor:default;background-color:rgba(0,0,0,0) !important}.mud-radio .mud-radio-dense{padding:4px}.mud-radio.mud-checked{color:var(--mud-palette-action-default)}@media(hover: hover)and (pointer: fine){.mud-radio.mud-checked:hover{background-color:var(--mud-palette-action-default-hover)}}.mud-radio-input{top:0;left:0;width:100%;cursor:inherit;height:100%;margin:0;opacity:0;padding:0;z-index:1;position:absolute}.mud-radio-icons{display:flex;position:relative}.mud-radio-icons.mud-checked .mud-radio-icon-checked{transform:scale(1);transition:transform 150ms cubic-bezier(0, 0, 0.2, 1) 0ms}.mud-radio-icon-checked{left:0;position:absolute;transform:scale(0);transition:transform 150ms cubic-bezier(0.4, 0, 1, 1) 0ms}.mud-rating-root{display:inline-flex;color:#ffb400}.mud-rating-root:focus-visible,.mud-rating-root:active{outline:none}.mud-rating-root:focus-visible:not(.mud-disabled),.mud-rating-root:active:not(.mud-disabled){background-color:var(--mud-palette-action-default-hover)}.mud-rating-item{cursor:pointer;transition:transform 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}.mud-rating-item.mud-rating-item-active{transform:scale(1.2)}.mud-rating-item.mud-disabled{cursor:default;pointer-events:none}.mud-rating-item.mud-disabled *{cursor:default;color:var(--mud-palette-text-disabled)}@media(hover: hover)and (pointer: fine){.mud-rating-item .mud-disabled:hover{cursor:default;pointer-events:none}.mud-rating-item .mud-disabled:hover *{cursor:default;color:var(--mud-palette-text-disabled)}}.mud-rating-item.mud-readonly{cursor:default}.mud-rating-item .mud-rating-input{clip:rect(0, 0, 0, 0);margin:0;opacity:0;padding:0;z-index:1;position:absolute;cursor:inherit;overflow:hidden}.mud-rating-item svg{pointer-events:none}.mud-rating-item svg path{pointer-events:none}.mud-snackbar{display:flex;flex-grow:initial;padding:6px 16px;align-items:center;position:relative;pointer-events:auto;font-weight:400;line-height:1.43;overflow:hidden;margin-top:16px;min-width:288px;max-width:500px;border-radius:var(--mud-default-borderradius);box-shadow:0px 3px 5px -1px rgba(0,0,0,.2),0px 6px 10px 0px rgba(0,0,0,.14),0px 1px 18px 0px rgba(0,0,0,.12);touch-action:pinch-zoom}.mud-snackbar.force-cursor{cursor:pointer}.mud-snackbar.mud-snackbar-blurred{backdrop-filter:blur(18px)}.mud-snackbar.mud-snackbar-surface{background:var(--mud-palette-surface)}.mud-snackbar .mud-snackbar-content-message{padding:8px 0;overflow-wrap:anywhere}.mud-snackbar .mud-snackbar-content-action{display:flex;align-items:center;margin-left:auto;margin-right:-8px;padding-left:16px;margin-inline-start:auto;margin-inline-end:-8px;padding-inline-start:16px;padding-inline-end:unset}.mud-snackbar .mud-snackbar-content-action>button{color:inherit}.mud-snackbar-location-top-left{top:24px;left:24px}.mud-snackbar-location-top-center{top:24px;left:50%;transform:translateX(-50%)}.mud-snackbar-location-top-right{top:24px;right:24px}.mud-snackbar-location-bottom-right{right:24px;bottom:24px}.mud-snackbar-location-bottom-center{bottom:24px;left:50%;transform:translateX(-50%)}.mud-snackbar-location-bottom-left{bottom:24px;left:24px}#mud-snackbar-container{position:fixed;z-index:var(--mud-zindex-snackbar);pointer-events:none}.mud-snackbar-icon{display:flex;opacity:.9;padding:7px 0;font-size:22px;margin-right:12px;margin-inline-end:12px;margin-inline-start:unset}.mud-switch{cursor:pointer;display:inline-flex;align-items:center;vertical-align:middle;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mud-switch.mud-disabled{color:var(--mud-palette-text-disabled) !important;cursor:default}.mud-switch.mud-readonly{cursor:default;background-color:rgba(0,0,0,0) !important}@media(hover: hover)and (pointer: fine){.mud-switch .mud-readonly:hover{cursor:default;background-color:rgba(0,0,0,0) !important}}.mud-switch-span{width:58px;height:38px;display:inline-flex;padding:12px;z-index:0;overflow:hidden;position:relative;box-sizing:border-box;flex-shrink:0;vertical-align:middle}.mud-switch-span .mud-switch-track{width:100%;height:100%;opacity:.48;z-index:-1;transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;border-radius:9px;background-color:var(--mud-palette-action-default)}.mud-switch-base{padding:9px;top:0;left:0;color:#fafafa;z-index:1;position:absolute;transition:left 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,transform 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}.mud-switch-base.mud-checked{transform:translateX(20px)}.mud-switch-base.mud-checked+.mud-switch-track{opacity:.5}@media(hover: hover)and (pointer: fine){.mud-switch-base:hover{background-color:var(--mud-palette-action-default-hover)}}.mud-switch-base.mud-switch-disabled{color:var(--mud-palette-gray-default) !important}.mud-switch-base.mud-switch-disabled+.mud-switch-track{opacity:.12 !important}@media(hover: hover)and (pointer: fine){.mud-switch-base.mud-switch-disabled:hover{cursor:default;background-color:rgba(0,0,0,0) !important}}.mud-switch-base.mud-switch-disabled:focus-visible,.mud-switch-base.mud-switch-disabled:active{cursor:default;background-color:rgba(0,0,0,0) !important}.mud-switch-button{display:flex;align-items:inherit;justify-content:inherit}.mud-switch-button .mud-switch-input{top:0;left:0;width:100%;cursor:inherit;height:100%;margin:0;opacity:0;padding:0;z-index:1;position:absolute}.mud-switch-button .mud-switch-thumb-small{width:14px;height:14px;box-shadow:0px 2px 1px -1px rgba(0,0,0,.2),0px 1px 1px 0px rgba(0,0,0,.14),0px 1px 3px 0px rgba(0,0,0,.12);border-radius:50%;background-color:currentColor}.mud-switch-button .mud-switch-thumb-medium{width:20px;height:20px;box-shadow:0px 2px 1px -1px rgba(0,0,0,.2),0px 1px 1px 0px rgba(0,0,0,.14),0px 1px 3px 0px rgba(0,0,0,.12);border-radius:50%;background-color:currentColor}.mud-switch-button .mud-switch-thumb-large{width:26px;height:26px;box-shadow:0px 2px 1px -1px rgba(0,0,0,.2),0px 1px 1px 0px rgba(0,0,0,.14),0px 1px 3px 0px rgba(0,0,0,.12);border-radius:50%;background-color:currentColor}.mud-switch-base-small.mud-switch-base{padding:5px}.mud-switch-base-medium.mud-switch-base{padding:9px}.mud-switch-base-large.mud-switch-base{padding:13px}.mud-switch-span-small.mud-switch-span{padding:7px;width:44px;height:24px}.mud-switch-span-medium.mud-switch-span{padding:12px;width:58px;height:38px}.mud-switch-span-large.mud-switch-span{padding:17px;width:72px;height:52px}.mud-switch-label-small{font-size:.8125rem !important}.mud-switch-label-medium{font-size:1rem !important}.mud-switch-label-large{font-size:1.1875rem !important}.mud-timeline{position:relative;display:flex}.mud-timeline-item{display:flex}.mud-timeline-item .mud-timeline-item-content{position:relative;height:100%;flex:1 1 auto}.mud-timeline-item .mud-timeline-item-divider{position:relative;display:flex;align-items:center;justify-content:center}.mud-timeline-item .mud-timeline-item-opposite{align-self:center}.mud-timeline-vertical{padding-top:24px;flex-direction:column}.mud-timeline-vertical .mud-timeline-item{padding-bottom:24px}.mud-timeline-vertical .mud-timeline-item .mud-timeline-item-content{max-width:calc(50% - 48px)}.mud-timeline-vertical .mud-timeline-item .mud-timeline-item-divider{min-width:96px}.mud-timeline-vertical .mud-timeline-item .mud-timeline-item-opposite{flex:1 1 auto;max-width:calc(50% - 48px)}.mud-timeline-vertical::before{top:0;bottom:0;content:"";height:100%;position:absolute;width:2px;background:var(--mud-palette-divider)}.mud-timeline-vertical.mud-timeline-align-start .mud-timeline-item-divider{align-items:flex-start}.mud-timeline-vertical.mud-timeline-align-start .mud-timeline-item-opposite{align-self:flex-start}.mud-timeline-vertical.mud-timeline-align-end .mud-timeline-item-divider{align-items:flex-end}.mud-timeline-vertical.mud-timeline-align-end .mud-timeline-item-opposite{align-self:flex-end}.mud-timeline-vertical.mud-timeline-position-alternate::before{left:auto;right:calc(50% - 1px)}.mud-timeline-vertical.mud-timeline-position-alternate .mud-timeline-item:nth-child(odd):not(.mud-timeline-item-start),.mud-timeline-vertical.mud-timeline-position-alternate .mud-timeline-item.mud-timeline-item-end{flex-direction:row-reverse}.mud-timeline-vertical.mud-timeline-position-alternate .mud-timeline-item:nth-child(odd):not(.mud-timeline-item-start) .mud-timeline-item-opposite,.mud-timeline-vertical.mud-timeline-position-alternate .mud-timeline-item.mud-timeline-item-end .mud-timeline-item-opposite{text-align:end}.mud-timeline-vertical.mud-timeline-position-alternate .mud-timeline-item:nth-child(2n):not(.mud-timeline-item-end){flex-direction:row}.mud-timeline-vertical.mud-timeline-position-alternate .mud-timeline-item:nth-child(2n):not(.mud-timeline-item-end) .mud-timeline-item-opposite{text-align:start}.mud-timeline-vertical.mud-timeline-position-alternate.mud-timeline-reverse .mud-timeline-item:nth-child(odd):not(.mud-timeline-item-end),.mud-timeline-vertical.mud-timeline-position-alternate.mud-timeline-reverse .mud-timeline-item.mud-timeline-item-start{flex-direction:row}.mud-timeline-vertical.mud-timeline-position-alternate.mud-timeline-reverse .mud-timeline-item:nth-child(odd):not(.mud-timeline-item-end) .mud-timeline-item-opposite,.mud-timeline-vertical.mud-timeline-position-alternate.mud-timeline-reverse .mud-timeline-item.mud-timeline-item-start .mud-timeline-item-opposite{text-align:start}.mud-timeline-vertical.mud-timeline-position-alternate.mud-timeline-reverse .mud-timeline-item:nth-child(2n):not(.mud-timeline-item-start){flex-direction:row-reverse}.mud-timeline-vertical.mud-timeline-position-alternate.mud-timeline-reverse .mud-timeline-item:nth-child(2n):not(.mud-timeline-item-start) .mud-timeline-item-opposite{text-align:end}.mud-timeline-vertical.mud-timeline-position-start::before{right:auto;left:47px}.mud-timeline-vertical.mud-timeline-position-start.mud-timeline-rtl::before{right:47px;left:auto}.mud-timeline-vertical.mud-timeline-position-start .mud-timeline-item{flex-direction:row-reverse}.mud-timeline-vertical.mud-timeline-position-end::before{right:47px;left:auto}.mud-timeline-vertical.mud-timeline-position-end.mud-timeline-rtl::before{left:47px;right:auto}.mud-timeline-vertical.mud-timeline-position-end .mud-timeline-item{flex-direction:row}.mud-timeline-vertical.mud-timeline-position-start .mud-timeline-item-content,.mud-timeline-vertical.mud-timeline-position-end .mud-timeline-item-content{max-width:calc(100% - 96px)}.mud-timeline-vertical.mud-timeline-position-start .mud-timeline-item-opposite,.mud-timeline-vertical.mud-timeline-position-end .mud-timeline-item-opposite{display:none}.mud-timeline-horizontal{flex-direction:row}.mud-timeline-horizontal .mud-timeline-item{padding:0 24px;width:100%;min-width:0}.mud-timeline-horizontal .mud-timeline-item .mud-timeline-item-content{max-height:calc(50% - 48px)}.mud-timeline-horizontal .mud-timeline-item .mud-timeline-item-divider{min-height:96px}.mud-timeline-horizontal::before{top:0;bottom:0;content:"";height:2px;position:absolute;width:100%;background:var(--mud-palette-divider)}.mud-timeline-horizontal.mud-timeline-align-start .mud-timeline-item-divider{justify-content:flex-start}.mud-timeline-horizontal.mud-timeline-align-start .mud-timeline-item-opposite{align-self:flex-start}.mud-timeline-horizontal.mud-timeline-align-end .mud-timeline-item-divider{justify-content:flex-end}.mud-timeline-horizontal.mud-timeline-align-end .mud-timeline-item-opposite{align-self:flex-end}.mud-timeline-horizontal.mud-timeline-position-alternate::before{top:auto;bottom:calc(50% - 1px)}.mud-timeline-horizontal.mud-timeline-position-alternate .mud-timeline-item:nth-child(odd),.mud-timeline-horizontal.mud-timeline-position-alternate .mud-timeline-item.mud-timeline-item-end{flex-direction:column-reverse}.mud-timeline-horizontal.mud-timeline-position-alternate .mud-timeline-item:nth-child(2n),.mud-timeline-horizontal.mud-timeline-position-alternate .mud-timeline-item.mud-timeline-item-start{flex-direction:column}.mud-timeline-horizontal.mud-timeline-position-alternate.mud-timeline-reverse .mud-timeline-item:nth-child(odd),.mud-timeline-horizontal.mud-timeline-position-alternate.mud-timeline-reverse .mud-timeline-item.mud-timeline-item-end{flex-direction:column}.mud-timeline-horizontal.mud-timeline-position-alternate.mud-timeline-reverse .mud-timeline-item:nth-child(2n),.mud-timeline-horizontal.mud-timeline-position-alternate.mud-timeline-reverse .mud-timeline-item.mud-timeline-item-start{flex-direction:column-reverse}.mud-timeline-horizontal.mud-timeline-position-top::before{top:47px;bottom:auto}.mud-timeline-horizontal.mud-timeline-position-top .mud-timeline-item{flex-direction:column-reverse}.mud-timeline-horizontal.mud-timeline-position-bottom::before{top:auto;bottom:47px}.mud-timeline-horizontal.mud-timeline-position-bottom .mud-timeline-item{flex-direction:column}.mud-timeline-horizontal.mud-timeline-position-top .mud-timeline-item-content,.mud-timeline-horizontal.mud-timeline-position-bottom .mud-timeline-item-content{max-height:calc(100% - 96px)}.mud-timeline-horizontal.mud-timeline-position-top .mud-timeline-item-opposite,.mud-timeline-horizontal.mud-timeline-position-bottom .mud-timeline-item-opposite{display:none}.mud-timeline-item-dot{display:flex;justify-content:center;align-items:center;background:var(--mud-palette-surface);border-radius:50%;left:calc(50% - 19px)}.mud-timeline-item-dot.mud-timeline-dot-size-small{width:24px;height:24px}.mud-timeline-item-dot.mud-timeline-dot-size-small .mud-timeline-item-dot-inner{height:18px;width:18px}.mud-timeline-item-dot.mud-timeline-dot-size-medium{width:38px;height:38px}.mud-timeline-item-dot.mud-timeline-dot-size-medium .mud-timeline-item-dot-inner{height:30px;width:30px}.mud-timeline-item-dot.mud-timeline-dot-size-large{width:52px;height:52px}.mud-timeline-item-dot.mud-timeline-dot-size-large .mud-timeline-item-dot-inner{height:42px;width:42px}.mud-timeline-item-dot .mud-timeline-item-dot-inner{border-radius:50%;display:flex;justify-content:center;align-items:center}.mud-timeline-item-dot .mud-timeline-item-dot-inner.mud-timeline-dot-fill{height:inherit;width:inherit}.mud-timeline-item-dot .mud-timeline-item-dot-inner.mud-timeline-dot-default{background-color:var(--mud-palette-gray-light)}.mud-timeline-item-dot .mud-timeline-item-dot-inner.mud-timeline-dot-primary{color:var(--mud-palette-primary-text);background-color:var(--mud-palette-primary)}.mud-timeline-item-dot .mud-timeline-item-dot-inner.mud-timeline-dot-secondary{color:var(--mud-palette-secondary-text);background-color:var(--mud-palette-secondary)}.mud-timeline-item-dot .mud-timeline-item-dot-inner.mud-timeline-dot-tertiary{color:var(--mud-palette-tertiary-text);background-color:var(--mud-palette-tertiary)}.mud-timeline-item-dot .mud-timeline-item-dot-inner.mud-timeline-dot-info{color:var(--mud-palette-info-text);background-color:var(--mud-palette-info)}.mud-timeline-item-dot .mud-timeline-item-dot-inner.mud-timeline-dot-success{color:var(--mud-palette-success-text);background-color:var(--mud-palette-success)}.mud-timeline-item-dot .mud-timeline-item-dot-inner.mud-timeline-dot-warning{color:var(--mud-palette-warning-text);background-color:var(--mud-palette-warning)}.mud-timeline-item-dot .mud-timeline-item-dot-inner.mud-timeline-dot-error{color:var(--mud-palette-error-text);background-color:var(--mud-palette-error)}.mud-timeline-item-dot .mud-timeline-item-dot-inner.mud-timeline-dot-dark{color:var(--mud-palette-dark-text);background-color:var(--mud-palette-dark)}.mud-timeline-modifiers .mud-timeline-item-content .mud-card::before{content:"";position:absolute;border-top:16px solid rgba(0,0,0,0);border-bottom:16px solid rgba(0,0,0,0);border-right:16px solid rgba(0,0,0,.1);top:calc(50% - 14px)}.mud-timeline-modifiers .mud-timeline-item-content .mud-card::after{content:"";position:absolute;border-top:16px solid rgba(0,0,0,0);border-bottom:16px solid rgba(0,0,0,0);border-right:16px solid var(--mud-palette-surface);top:calc(50% - 16px)}.mud-timeline-modifiers .mud-timeline-item-content .mud-card.mud-paper-outlined::before{top:calc(50% - 16px);border-right-color:var(--mud-palette-lines-default)}.mud-timeline-modifiers.mud-timeline-vertical.mud-timeline-position-start:not(.mud-timeline-rtl) .mud-timeline-item-content .mud-card::before,.mud-timeline-modifiers.mud-timeline-vertical.mud-timeline-position-start:not(.mud-timeline-rtl) .mud-timeline-item-content .mud-card::after,.mud-timeline-modifiers.mud-timeline-vertical.mud-timeline-position-end.mud-timeline-rtl .mud-timeline-item-content .mud-card::before,.mud-timeline-modifiers.mud-timeline-vertical.mud-timeline-position-end.mud-timeline-rtl .mud-timeline-item-content .mud-card::after{transform:rotate(0);left:-16px;right:auto}.mud-timeline-modifiers.mud-timeline-vertical.mud-timeline-position-start:not(.mud-timeline-rtl) .mud-timeline-item-content .mud-card.mud-paper-outlined::after,.mud-timeline-modifiers.mud-timeline-vertical.mud-timeline-position-end.mud-timeline-rtl .mud-timeline-item-content .mud-card.mud-paper-outlined::after{left:-15px}.mud-timeline-modifiers.mud-timeline-vertical.mud-timeline-position-end:not(.mud-timeline-rtl) .mud-timeline-item-content .mud-card::before,.mud-timeline-modifiers.mud-timeline-vertical.mud-timeline-position-end:not(.mud-timeline-rtl) .mud-timeline-item-content .mud-card::after,.mud-timeline-modifiers.mud-timeline-vertical.mud-timeline-position-start.mud-timeline-rtl .mud-timeline-item-content .mud-card::before,.mud-timeline-modifiers.mud-timeline-vertical.mud-timeline-position-start.mud-timeline-rtl .mud-timeline-item-content .mud-card::after{transform:rotate(180deg);right:-16px;left:auto}.mud-timeline-modifiers.mud-timeline-vertical.mud-timeline-position-end:not(.mud-timeline-rtl) .mud-timeline-item-content .mud-card.mud-paper-outlined::after,.mud-timeline-modifiers.mud-timeline-vertical.mud-timeline-position-start.mud-timeline-rtl .mud-timeline-item-content .mud-card.mud-paper-outlined::after{right:-15px}.mud-timeline-modifiers.mud-timeline-vertical.mud-timeline-position-alternate .mud-timeline-item:nth-child(odd):not(.mud-timeline-item-start) .mud-timeline-item-content .mud-card::before,.mud-timeline-modifiers.mud-timeline-vertical.mud-timeline-position-alternate .mud-timeline-item:nth-child(odd):not(.mud-timeline-item-start) .mud-timeline-item-content .mud-card::after,.mud-timeline-modifiers.mud-timeline-vertical.mud-timeline-position-alternate .mud-timeline-item.mud-timeline-item-end .mud-timeline-item-content .mud-card::before,.mud-timeline-modifiers.mud-timeline-vertical.mud-timeline-position-alternate .mud-timeline-item.mud-timeline-item-end .mud-timeline-item-content .mud-card::after{transform:rotate(0);left:-16px;right:auto}.mud-timeline-modifiers.mud-timeline-vertical.mud-timeline-position-alternate .mud-timeline-item:nth-child(odd):not(.mud-timeline-item-start) .mud-timeline-item-content .mud-card.mud-paper-outlined::after,.mud-timeline-modifiers.mud-timeline-vertical.mud-timeline-position-alternate .mud-timeline-item.mud-timeline-item-end .mud-timeline-item-content .mud-card.mud-paper-outlined::after{left:-15px}.mud-timeline-modifiers.mud-timeline-vertical.mud-timeline-position-alternate .mud-timeline-item:nth-child(2n):not(.mud-timeline-item-end) .mud-timeline-item-content .mud-card::before,.mud-timeline-modifiers.mud-timeline-vertical.mud-timeline-position-alternate .mud-timeline-item:nth-child(2n):not(.mud-timeline-item-end) .mud-timeline-item-content .mud-card::after{transform:rotate(180deg);right:-16px;left:auto}.mud-timeline-modifiers.mud-timeline-vertical.mud-timeline-position-alternate .mud-timeline-item:nth-child(2n):not(.mud-timeline-item-end) .mud-timeline-item-content .mud-card.mud-paper-outlined::after{right:-15px}.mud-timeline-modifiers.mud-timeline-vertical.mud-timeline-reverse:not(.mud-timeline-rtl) .mud-timeline-item:nth-child(odd):not(.mud-timeline-item-end) .mud-timeline-item-content .mud-card::before,.mud-timeline-modifiers.mud-timeline-vertical.mud-timeline-reverse:not(.mud-timeline-rtl) .mud-timeline-item:nth-child(odd):not(.mud-timeline-item-end) .mud-timeline-item-content .mud-card::after,.mud-timeline-modifiers.mud-timeline-vertical.mud-timeline-reverse:not(.mud-timeline-rtl) .mud-timeline-item.mud-timeline-item-start .mud-timeline-item-content .mud-card::before,.mud-timeline-modifiers.mud-timeline-vertical.mud-timeline-reverse:not(.mud-timeline-rtl) .mud-timeline-item.mud-timeline-item-start .mud-timeline-item-content .mud-card::after,.mud-timeline-modifiers.mud-timeline-vertical.mud-timeline-position-alternate.mud-timeline-rtl:not(.mud-timeline-reverse) .mud-timeline-item:nth-child(odd):not(.mud-timeline-item-end) .mud-timeline-item-content .mud-card::before,.mud-timeline-modifiers.mud-timeline-vertical.mud-timeline-position-alternate.mud-timeline-rtl:not(.mud-timeline-reverse) .mud-timeline-item:nth-child(odd):not(.mud-timeline-item-end) .mud-timeline-item-content .mud-card::after,.mud-timeline-modifiers.mud-timeline-vertical.mud-timeline-position-alternate.mud-timeline-rtl:not(.mud-timeline-reverse) .mud-timeline-item.mud-timeline-item-start .mud-timeline-item-content .mud-card::before,.mud-timeline-modifiers.mud-timeline-vertical.mud-timeline-position-alternate.mud-timeline-rtl:not(.mud-timeline-reverse) .mud-timeline-item.mud-timeline-item-start .mud-timeline-item-content .mud-card::after{transform:rotate(180deg);right:-16px;left:auto}.mud-timeline-modifiers.mud-timeline-vertical.mud-timeline-reverse:not(.mud-timeline-rtl) .mud-timeline-item:nth-child(odd):not(.mud-timeline-item-end) .mud-timeline-item-content .mud-card.mud-paper-outlined::after,.mud-timeline-modifiers.mud-timeline-vertical.mud-timeline-reverse:not(.mud-timeline-rtl) .mud-timeline-item.mud-timeline-item-start .mud-timeline-item-content .mud-card.mud-paper-outlined::after,.mud-timeline-modifiers.mud-timeline-vertical.mud-timeline-position-alternate.mud-timeline-rtl:not(.mud-timeline-reverse) .mud-timeline-item:nth-child(odd):not(.mud-timeline-item-end) .mud-timeline-item-content .mud-card.mud-paper-outlined::after,.mud-timeline-modifiers.mud-timeline-vertical.mud-timeline-position-alternate.mud-timeline-rtl:not(.mud-timeline-reverse) .mud-timeline-item.mud-timeline-item-start .mud-timeline-item-content .mud-card.mud-paper-outlined::after{right:-15px}.mud-timeline-modifiers.mud-timeline-vertical.mud-timeline-reverse:not(.mud-timeline-rtl) .mud-timeline-item:nth-child(2n):not(.mud-timeline-item-start) .mud-timeline-item-content .mud-card::before,.mud-timeline-modifiers.mud-timeline-vertical.mud-timeline-reverse:not(.mud-timeline-rtl) .mud-timeline-item:nth-child(2n):not(.mud-timeline-item-start) .mud-timeline-item-content .mud-card::after,.mud-timeline-modifiers.mud-timeline-vertical.mud-timeline-position-alternate.mud-timeline-rtl:not(.mud-timeline-reverse) .mud-timeline-item:nth-child(2n):not(.mud-timeline-item-start) .mud-timeline-item-content .mud-card::before,.mud-timeline-modifiers.mud-timeline-vertical.mud-timeline-position-alternate.mud-timeline-rtl:not(.mud-timeline-reverse) .mud-timeline-item:nth-child(2n):not(.mud-timeline-item-start) .mud-timeline-item-content .mud-card::after{transform:rotate(0);left:-16px;right:auto}.mud-timeline-modifiers.mud-timeline-vertical.mud-timeline-reverse:not(.mud-timeline-rtl) .mud-timeline-item:nth-child(2n):not(.mud-timeline-item-start) .mud-timeline-item-content .mud-card.mud-paper-outlined::after,.mud-timeline-modifiers.mud-timeline-vertical.mud-timeline-position-alternate.mud-timeline-rtl:not(.mud-timeline-reverse) .mud-timeline-item:nth-child(2n):not(.mud-timeline-item-start) .mud-timeline-item-content .mud-card.mud-paper-outlined::after{left:-15px}.mud-timeline-modifiers.mud-timeline-horizontal.mud-timeline-position-top .mud-timeline-item-content .mud-card::before,.mud-timeline-modifiers.mud-timeline-horizontal.mud-timeline-position-top .mud-timeline-item-content .mud-card::after{transform:rotate(90deg);top:-24px;bottom:auto;left:calc(50% - 8px)}.mud-timeline-modifiers.mud-timeline-horizontal.mud-timeline-position-top .mud-timeline-item-content .mud-card.mud-paper-outlined::after{top:-23px}.mud-timeline-modifiers.mud-timeline-horizontal.mud-timeline-position-bottom .mud-timeline-item-content .mud-card::before,.mud-timeline-modifiers.mud-timeline-horizontal.mud-timeline-position-bottom .mud-timeline-item-content .mud-card::after{transform:rotate(270deg);bottom:-24px;top:auto;left:calc(50% - 8px)}.mud-timeline-modifiers.mud-timeline-horizontal.mud-timeline-position-bottom .mud-timeline-item-content .mud-card.mud-paper-outlined::after{bottom:-23px}.mud-timeline-modifiers.mud-timeline-horizontal.mud-timeline-position-alternate .mud-timeline-item:nth-child(odd):not(.mud-timeline-item-start) .mud-timeline-item-content .mud-card::before,.mud-timeline-modifiers.mud-timeline-horizontal.mud-timeline-position-alternate .mud-timeline-item:nth-child(odd):not(.mud-timeline-item-start) .mud-timeline-item-content .mud-card::after,.mud-timeline-modifiers.mud-timeline-horizontal.mud-timeline-position-alternate .mud-timeline-item.mud-timeline-item-end .mud-timeline-item-content .mud-card::before,.mud-timeline-modifiers.mud-timeline-horizontal.mud-timeline-position-alternate .mud-timeline-item.mud-timeline-item-end .mud-timeline-item-content .mud-card::after{transform:rotate(90deg);top:-24px;bottom:auto;left:calc(50% - 8px)}.mud-timeline-modifiers.mud-timeline-horizontal.mud-timeline-position-alternate .mud-timeline-item:nth-child(odd):not(.mud-timeline-item-start) .mud-timeline-item-content .mud-card.mud-paper-outlined::after,.mud-timeline-modifiers.mud-timeline-horizontal.mud-timeline-position-alternate .mud-timeline-item.mud-timeline-item-end .mud-timeline-item-content .mud-card.mud-paper-outlined::after{top:-23px}.mud-timeline-modifiers.mud-timeline-horizontal.mud-timeline-position-alternate .mud-timeline-item:nth-child(2n):not(.mud-timeline-item-end) .mud-timeline-item-content .mud-card::before,.mud-timeline-modifiers.mud-timeline-horizontal.mud-timeline-position-alternate .mud-timeline-item:nth-child(2n):not(.mud-timeline-item-end) .mud-timeline-item-content .mud-card::after{transform:rotate(270deg);bottom:-24px;top:auto;left:calc(50% - 8px)}.mud-timeline-modifiers.mud-timeline-horizontal.mud-timeline-position-alternate .mud-timeline-item:nth-child(2n):not(.mud-timeline-item-end) .mud-timeline-item-content .mud-card.mud-paper-outlined::after{bottom:-23px}.mud-timeline-modifiers.mud-timeline-horizontal.mud-timeline-position-alternate.mud-timeline-reverse .mud-timeline-item:nth-child(odd):not(.mud-timeline-item-start) .mud-timeline-item-content .mud-card::before,.mud-timeline-modifiers.mud-timeline-horizontal.mud-timeline-position-alternate.mud-timeline-reverse .mud-timeline-item:nth-child(odd):not(.mud-timeline-item-start) .mud-timeline-item-content .mud-card::after,.mud-timeline-modifiers.mud-timeline-horizontal.mud-timeline-position-alternate.mud-timeline-reverse .mud-timeline-item.mud-timeline-item-end .mud-timeline-item-content .mud-card::before,.mud-timeline-modifiers.mud-timeline-horizontal.mud-timeline-position-alternate.mud-timeline-reverse .mud-timeline-item.mud-timeline-item-end .mud-timeline-item-content .mud-card::after{transform:rotate(270deg);bottom:-24px;top:auto;left:calc(50% - 8px)}.mud-timeline-modifiers.mud-timeline-horizontal.mud-timeline-position-alternate.mud-timeline-reverse .mud-timeline-item:nth-child(odd):not(.mud-timeline-item-start) .mud-timeline-item-content .mud-card.mud-paper-outlined::after,.mud-timeline-modifiers.mud-timeline-horizontal.mud-timeline-position-alternate.mud-timeline-reverse .mud-timeline-item.mud-timeline-item-end .mud-timeline-item-content .mud-card.mud-paper-outlined::after{bottom:-23px}.mud-timeline-modifiers.mud-timeline-horizontal.mud-timeline-position-alternate.mud-timeline-reverse .mud-timeline-item:nth-child(2n):not(.mud-timeline-item-end) .mud-timeline-item-content .mud-card::before,.mud-timeline-modifiers.mud-timeline-horizontal.mud-timeline-position-alternate.mud-timeline-reverse .mud-timeline-item:nth-child(2n):not(.mud-timeline-item-end) .mud-timeline-item-content .mud-card::after{transform:rotate(90deg);top:-24px;bottom:auto;left:calc(50% - 8px)}.mud-timeline-modifiers.mud-timeline-horizontal.mud-timeline-position-alternate.mud-timeline-reverse .mud-timeline-item:nth-child(2n):not(.mud-timeline-item-end) .mud-timeline-item-content .mud-card.mud-paper-outlined::after{top:-23px}.mud-typography{margin:0}.mud-typography-h1{font-size:var(--mud-typography-h1-size);font-family:var(--mud-typography-h1-family);font-weight:var(--mud-typography-h1-weight);line-height:var(--mud-typography-h1-lineheight);letter-spacing:var(--mud-typography-h1-letterspacing);text-transform:var(--mud-typography-h1-text-transform)}.mud-typography-h2{font-size:var(--mud-typography-h2-size);font-family:var(--mud-typography-h2-family);font-weight:var(--mud-typography-h2-weight);line-height:var(--mud-typography-h2-lineheight);letter-spacing:var(--mud-typography-h2-letterspacing);text-transform:var(--mud-typography-h2-text-transform)}.mud-typography-h3{font-size:var(--mud-typography-h3-size);font-family:var(--mud-typography-h3-family);font-weight:var(--mud-typography-h3-weight);line-height:var(--mud-typography-h3-lineheight);letter-spacing:var(--mud-typography-h3-letterspacing);text-transform:var(--mud-typography-h3-text-transform)}.mud-typography-h4{font-size:var(--mud-typography-h4-size);font-family:var(--mud-typography-h4-family);font-weight:var(--mud-typography-h4-weight);line-height:var(--mud-typography-h4-lineheight);letter-spacing:var(--mud-typography-h4-letterspacing);text-transform:var(--mud-typography-h4-text-transform)}.mud-typography-h5{font-size:var(--mud-typography-h5-size);font-family:var(--mud-typography-h5-family);font-weight:var(--mud-typography-h5-weight);line-height:var(--mud-typography-h5-lineheight);letter-spacing:var(--mud-typography-h5-letterspacing);text-transform:var(--mud-typography-h5-text-transform)}.mud-typography-h6{font-size:var(--mud-typography-h6-size);font-family:var(--mud-typography-h6-family);font-weight:var(--mud-typography-h6-weight);line-height:var(--mud-typography-h6-lineheight);letter-spacing:var(--mud-typography-h6-letterspacing);text-transform:var(--mud-typography-h6-text-transform)}.mud-typography-subtitle1{font-size:var(--mud-typography-subtitle1-size);font-family:var(--mud-typography-subtitle1-family);font-weight:var(--mud-typography-subtitle1-weight);line-height:var(--mud-typography-subtitle1-lineheight);letter-spacing:var(--mud-typography-subtitle1-letterspacing);text-transform:var(--mud-typography-subtitle1-text-transform)}.mud-typography-subtitle2{font-size:var(--mud-typography-subtitle2-size);font-family:var(--mud-typography-subtitle2-family);font-weight:var(--mud-typography-subtitle2-weight);line-height:var(--mud-typography-subtitle2-lineheight);letter-spacing:var(--mud-typography-subtitle2-letterspacing);text-transform:var(--mud-typography-subtitle2-text-transform)}.mud-typography-body1{font-size:var(--mud-typography-body1-size);font-family:var(--mud-typography-body1-family);font-weight:var(--mud-typography-body1-weight);line-height:var(--mud-typography-body1-lineheight);letter-spacing:var(--mud-typography-body1-letterspacing);text-transform:var(--mud-typography-body1-text-transform)}.mud-typography-body2{font-size:var(--mud-typography-body2-size);font-family:var(--mud-typography-body2-family);font-weight:var(--mud-typography-body2-weight);line-height:var(--mud-typography-body2-lineheight);letter-spacing:var(--mud-typography-body2-letterspacing);text-transform:var(--mud-typography-body2-text-transform)}.mud-typography-button{font-size:var(--mud-typography-button-size);font-family:var(--mud-typography-button-family);font-weight:var(--mud-typography-button-weight);line-height:var(--mud-typography-button-lineheight);letter-spacing:var(--mud-typography-button-letterspacing);text-transform:var(--mud-typography-button-text-transform)}.mud-typography-caption{font-size:var(--mud-typography-caption-size);font-family:var(--mud-typography-caption-family);font-weight:var(--mud-typography-caption-weight);line-height:var(--mud-typography-caption-lineheight);letter-spacing:var(--mud-typography-caption-letterspacing);text-transform:var(--mud-typography-caption-text-transform)}.mud-typography-overline{font-size:var(--mud-typography-overline-size);font-family:var(--mud-typography-overline-family);font-weight:var(--mud-typography-overline-weight);line-height:var(--mud-typography-overline-lineheight);letter-spacing:var(--mud-typography-overline-letterspacing);text-transform:var(--mud-typography-overline-text-transform)}.mud-typography-srOnly{width:1px;height:1px;overflow:hidden;position:absolute}.mud-typography-align-left{text-align:left}.mud-typography-align-center{text-align:center}.mud-typography-align-right{text-align:right}.mud-typography-align-justify{text-align:justify}.mud-typography-nowrap{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.mud-typography-gutterbottom{margin-bottom:.35em}.mud-typography-paragraph{margin-bottom:16px}.mud-table{color:var(--mud-palette-text-primary);background-color:var(--mud-palette-surface);border-radius:var(--mud-default-borderradius);transition:box-shadow 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}.mud-table.mud-table-square{border-radius:0px}.mud-table.mud-table-outlined{border:1px solid var(--mud-palette-lines-default)}.mud-table-container{width:100%;overflow-y:auto}.mud-table-root{width:100%;border-spacing:0}.mud-table-root .mud-table-head{display:table-header-group}.mud-table-root .mud-table-head .mud-table-cell{color:var(--mud-palette-text-primary);font-weight:500;line-height:1.5rem}.mud-table-root .mud-table-body{display:table-row-group}.mud-table-root .mud-table-body .mud-table-cell{color:var(--mud-palette-text-primary)}.mud-table-root>.mud-table-body:last-child>.mud-table-row:last-child>.mud-table-cell,.mud-table-root>.mud-table-foot:last-child>.mud-table-row:last-child>.mud-table-cell{border-bottom:none}.mud-table-sort-label{display:inline-flex;align-items:center;flex-direction:inherit;justify-content:flex-start}.mud-table-sort-label.mud-clickable{cursor:pointer;user-select:none;transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}@media(hover: hover)and (pointer: fine){.mud-table-sort-label.mud-clickable:hover{opacity:.64}.mud-table-sort-label.mud-clickable:hover .mud-table-sort-label-icon{opacity:1}}.mud-table-sort-label .mud-table-sort-label-icon{font-size:18px;transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,transform 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;margin-left:4px;user-select:none;margin-right:4px;opacity:0}.mud-table-sort-label .mud-table-sort-label-icon.mud-direction-desc{opacity:1;transform:rotate(180deg)}.mud-table-sort-label .mud-table-sort-label-icon.mud-direction-asc{opacity:1;transform:rotate(0deg)}.mud-table-toolbar{left:0;position:sticky;padding-left:16px;padding-right:8px;padding-inline-start:16px;padding-inline-end:8px}.mud-table-cell{display:table-cell;padding:16px;font-size:.875rem;text-align:start;font-weight:400;line-height:1.43;border-bottom:1px solid var(--mud-palette-table-lines);letter-spacing:.01071em;vertical-align:inherit}.mud-table-cell .mud-checkbox{margin:-4px}.mud-table-cell .mud-checkbox>.mud-icon-button{padding:4px}.mud-table-cell>.mud-input-control>div.mud-input.mud-input-text{color:var(--mud-theme-on-surface);font-size:.875rem;margin-top:-14px;margin-bottom:-8px}.mud-table-cell>.mud-select>.mud-input-control>div.mud-input.mud-input-text{color:var(--mud-theme-on-surface);font-size:.875rem;margin-top:-14px;margin-bottom:-8px}.mud-table-cell-footer{color:var(--mud-palette-text-secondary);font-size:.75rem;line-height:1.3125rem}.mud-table-dense * .mud-table-row .mud-table-cell{padding:6px 24px 6px 16px;padding-inline-start:16px;padding-inline-end:24px}.mud-table-dense * .mud-table-row .mud-table-cell .mud-table-cell-checkbox .mud-button-root{padding:4px}.mud-table-dense * .mud-table-row .mud-table-cell .mud-table-row-expander{padding:4px}.mud-table-dense * .mud-table-row .mud-table-cell:last-child{padding-right:16px;padding-inline-end:16px}.mud-table-bordered .mud-table-container .mud-table-root .mud-table-body .mud-table-row .mud-table-cell:not(:last-child){border-right:1px solid var(--mud-palette-table-lines)}.mud-table-bordered .mud-table-container .mud-table-root .mud-table-head.table-head-bordered .mud-table-row .mud-table-cell:not(:last-child){border-right:1px solid var(--mud-palette-table-lines)}.mud-table-bordered .mud-table-container .mud-table-root .mud-table-foot.table-foot-bordered .mud-table-row .mud-table-cell:not(:last-child){border-right:1px solid var(--mud-palette-table-lines)}.mud-application-layout-rtl .mud-table-bordered .mud-table-container .mud-table-root .mud-table-body .mud-table-row .mud-table-cell:first-child{border-right:none;border-top-right-radius:0px}.mud-application-layout-rtl .mud-table-bordered .mud-table-container .mud-table-root .mud-table-body .mud-table-row .mud-table-cell:last-child{border-right:1px solid var(--mud-palette-table-lines);border-top-right-radius:0px}.mud-application-layout-rtl .mud-table-bordered .mud-table-container .mud-table-root .mud-table-head.table-head-bordered .mud-table-row .mud-table-cell:last-child{border-right:1px solid var(--mud-palette-table-lines);border-top-right-radius:0px}.mud-application-layout-rtl .mud-table-bordered .mud-table-container .mud-table-root .mud-table-head.table-head-bordered .mud-table-row .mud-table-cell:only-child{border-right:none;border-top-right-radius:var(--mud-default-borderradius)}.mud-application-layout-rtl .mud-table-bordered .mud-table-container .mud-table-root .mud-table-head .mud-table-row th.mud-table-cell:first-child{border-right:none;border-top-right-radius:var(--mud-default-borderradius)}.mud-application-layout-rtl .mud-table-bordered .mud-table-container .mud-table-root .mud-table-foot.table-foot-bordered .mud-table-row .mud-table-cell:last-child{border-right:1px solid var(--mud-palette-table-lines);border-top-right-radius:0px}.mud-application-layout-rtl .mud-table-bordered .mud-table-container .mud-table-root .mud-table-foot .mud-table-row .mud-table-cell:first-child{border-right:none}.mud-table-sticky-header .mud-table-container{overflow-x:auto}.mud-table-sticky-header * .mud-table-root .mud-table-head * .mud-table-cell:first-child{border-radius:var(--mud-default-borderradius) 0px 0px 0px}.mud-table-sticky-header * .mud-table-root .mud-table-head * .mud-table-cell:last-child{border-radius:0px var(--mud-default-borderradius) 0px 0px}.mud-table-sticky-header * .mud-table-root .mud-table-head .mud-table-cell,.mud-table-sticky-header * .mud-table-root .mud-table-head .mud-table-loading{background-color:var(--mud-palette-surface);position:sticky;z-index:2}.mud-table-sticky-header * .mud-table-root .mud-table-head .mud-table-cell{top:0}.mud-table-sticky-header * .mud-table-root .mud-table-head .filter-header-cell{top:59px}.mud-table-sticky-header * .mud-table-root .mud-table-head.mud-table-dense .filter-header-cell{top:39px}.mud-table-sticky-header * .mud-table-root .mud-table-head .mud-table-loading{top:59px}.mud-table-sticky-header * .mud-table-root .mud-table-head.mud-table-dense .mud-table-loading{top:39px}.mud-table-sticky-header * .mud-table-root .mud-table-head:has(.filter-header-cell) .mud-table-loading{top:109px}.mud-table-sticky-header * .mud-table-root .mud-table-head.mud-table-dense:has(.filter-header-cell) .mud-table-loading{top:89px}.mud-table-sticky-header * .mud-table-root .mud-table-head * .mud-table-cell.sticky-left,.mud-table-sticky-header * .mud-table-root .mud-table-head * .mud-table-cell.sticky-right{z-index:3;background-color:var(--mud-palette-background-gray)}.mud-table-sticky-footer .mud-table-container{overflow-x:auto}.mud-table-sticky-footer * .mud-table-root .mud-table-foot{position:sticky;z-index:2;bottom:0}.mud-table-sticky-footer * .mud-table-root .mud-table-foot * .mud-table-cell{background-color:var(--mud-palette-surface)}.mud-table-row{color:inherit;display:table-row;outline:0;vertical-align:middle}@media(hover: hover)and (pointer: fine){.mud-table-hover .mud-table-container .mud-table-root .mud-table-body .mud-table-row:hover{background-color:var(--mud-palette-table-hover)}}.mud-table-striped .mud-table-container .mud-table-root .mud-table-body .mud-table-row:nth-of-type(odd){background-color:var(--mud-palette-table-striped)}@media(hover: hover)and (pointer: fine){.mud-table-hover.mud-table-striped .mud-table-container .mud-table-root .mud-table-body .mud-table-row:nth-of-type(odd):hover{background-color:var(--mud-palette-table-hover)}}.mud-table-cell-align-left{text-align:left}.mud-table-cell-align-center{text-align:center}.mud-table-cell-align-right{text-align:right;flex-direction:row-reverse}.mud-table-cell-align-justify{text-align:justify}.mud-table-pagination-display{display:flex;flex-shrink:0}.mud-table-pagination-display .mud-tablepager-left{flex-direction:row !important}.mud-table-pagination-display .mud-tablepager-right{flex-direction:row-reverse !important}.mud-table-pagination-information{white-space:nowrap;direction:initial}.mud-table-page-number-information{white-space:nowrap;direction:initial}.mud-table-pagination{color:var(--mud-theme-on-surface);overflow:auto;font-size:.875rem;display:initial;position:sticky;left:0}.mud-table-pagination:last-child{padding:0}.mud-table-pagination-toolbar{border-top:1px solid var(--mud-palette-table-lines);height:52px;padding-right:2px;padding-inline-end:2px;padding-inline-start:unset;flex-wrap:nowrap}.mud-table-pagination-toolbar .mud-tablepager-left{flex-direction:row !important}.mud-table-pagination-toolbar .mud-tablepager-right{flex-direction:row-reverse !important}.mud-table-pagination-spacer{flex:1 1 100%}.mud-table-pagination-caption{display:flex;flex-shrink:0;align-items:center;padding-left:10px;padding-right:10px}.mud-table-pagination-select{cursor:pointer;margin-left:10px !important;margin-right:10px !important;margin-top:0px !important;min-width:52px}.mud-table-pagination-select .mud-select-input{margin-top:0px !important;padding:0 7px !important}.mud-table-pagination-select .mud-input .mud-input-root{max-width:80px;cursor:pointer;margin-top:2px;border:none;font-size:.875rem;font-weight:400;line-height:1.43;letter-spacing:.01071em;color:var(--mud-theme-on-surface)}.mud-table-pagination-actions{flex-shrink:0;align-items:center;margin-left:10px;margin-inline-start:10px;margin-inline-end:unset}.mud-table-smalldevices-sortselect{display:none}.mud-table-loading{position:relative}.mud-table-loading .mud-table-loading-progress{width:100%}.mud-table-empty-row{background-color:var(--mud-palette-surface);vertical-align:middle;text-align:center}tr.mud-table-row-group-indented-1 td:first-child{padding-left:48px !important}tr.mud-table-row-group-indented-2 td:first-child{padding-left:96px !important}tr.mud-table-row-group-indented-3 td:first-child{padding-left:144px !important}tr.mud-table-row-group-indented-4 td:first-child{padding-left:192px !important}tr.mud-table-row-group-indented-5 td:first-child{padding-left:240px !important}.mud-header-togglehierarchy .mud-table-row-expander{padding:6px}.mud-table-row-expander{margin-top:-12px;margin-bottom:-12px;margin-inline-start:-12px;margin-inline-end:-2px}@media(max-width: 360px){.mud-table .mud-table-pagination .mud-select{margin-left:auto;margin-right:-14px;margin-inline-start:auto;margin-inline-end:-14px}.mud-table .mud-table-pagination .mud-select~.mud-table-pagination-caption{margin-left:unset !important;margin-inline-start:unset !important}}@media(max-width: 416px){.mud-table .mud-table-pagination .mud-table-pagination-toolbar{flex-wrap:wrap;padding-top:16px;padding-right:16px;padding-inline-end:16px;padding-inline-start:unset;min-height:100px}.mud-table .mud-table-pagination .mud-table-pagination-toolbar .mud-table-pagination-actions{margin-left:auto;margin-right:-14px;margin-inline-start:auto;margin-inline-end:-14px}}@media(max-width: 600px){.mud-xs-table .mud-table-root .mud-table-head,.mud-xs-table .mud-table-root .mud-table-foot{display:none}.mud-xs-table .mud-table-smalldevices-sortselect{display:block;padding:4px 16px 8px}.mud-xs-table .mud-table-body{border-top:1px solid var(--mud-palette-table-lines)}.mud-xs-table .mud-table-row{display:revert}.mud-xs-table .mud-table-row .mud-table-cell:last-child{border-bottom:1px solid var(--mud-palette-table-lines)}.mud-xs-table .mud-table-cell{display:flex;justify-content:space-between;align-items:center;border:none;padding:14px 16px;text-align:start !important}.mud-xs-table.mud-table-dense .mud-table-cell{padding:6px 16px}.mud-xs-table .mud-table-cell:before{content:attr(data-label);font-weight:500;padding-right:16px;padding-inline-end:16px;padding-inline-start:unset}.mud-xs-table.mud-table-small-alignright .mud-table-cell:before{margin-right:auto}.mud-xs-table .mud-table-cell-hide{visibility:collapse;height:0;padding:0;margin:0}.mud-xs-table .mud-table-pagination .mud-table-pagination-spacer{flex:none}.mud-xs-table .mud-table-pagination .mud-table-pagination-actions .mud-button-root:first-child{display:none}.mud-xs-table .mud-table-pagination .mud-table-pagination-actions .mud-button-root:last-child{display:none}.mud-xs-table .mud-table-pagination .mud-select~.mud-table-pagination-caption{margin-left:auto;margin-inline-start:auto}.mud-xs-table.mud-table-bordered .mud-table-container .mud-table-root colgroup~.mud-table-body .mud-table-row .mud-table-cell{border-right:1px solid var(--mud-palette-table-lines) !important}.mud-xs-table.mud-table-bordered .mud-table-container .mud-table-root .mud-table-body .mud-table-row .mud-table-cell{border-right:none !important}}@media(max-width: 960px){.mud-sm-table .mud-table-root .mud-table-head,.mud-sm-table .mud-table-root .mud-table-foot{display:none}.mud-sm-table .mud-table-smalldevices-sortselect{display:block;padding:4px 16px 8px}.mud-sm-table .mud-table-body{border-top:1px solid var(--mud-palette-table-lines)}.mud-sm-table .mud-table-row{display:revert}.mud-sm-table .mud-table-row .mud-table-cell:last-child{border-bottom:1px solid var(--mud-palette-table-lines)}.mud-sm-table .mud-table-cell{display:flex;justify-content:space-between;align-items:center;border:none;padding:14px 16px;text-align:start !important}.mud-sm-table.mud-table-dense .mud-table-cell{padding:6px 16px}.mud-sm-table .mud-table-cell:before{content:attr(data-label);font-weight:500;padding-right:16px;padding-inline-end:16px;padding-inline-start:unset}.mud-sm-table.mud-table-small-alignright .mud-table-cell:before{margin-right:auto}.mud-sm-table .mud-table-cell-hide{visibility:collapse;height:0;padding:0;margin:0}.mud-sm-table .mud-table-pagination .mud-table-pagination-spacer{flex:none}.mud-sm-table .mud-table-pagination .mud-table-pagination-actions .mud-button-root:first-child{display:none}.mud-sm-table .mud-table-pagination .mud-table-pagination-actions .mud-button-root:last-child{display:none}.mud-sm-table .mud-table-pagination .mud-select~.mud-table-pagination-caption{margin-left:auto;margin-inline-start:auto}.mud-sm-table.mud-table-bordered .mud-table-container .mud-table-root colgroup~.mud-table-body .mud-table-row .mud-table-cell{border-right:1px solid var(--mud-palette-table-lines) !important}.mud-sm-table.mud-table-bordered .mud-table-container .mud-table-root .mud-table-body .mud-table-row .mud-table-cell{border-right:none !important}}@media(max-width: 1280px){.mud-md-table .mud-table-root .mud-table-head,.mud-md-table .mud-table-root .mud-table-foot{display:none}.mud-md-table .mud-table-smalldevices-sortselect{display:block;padding:4px 16px 8px}.mud-md-table .mud-table-body{border-top:1px solid var(--mud-palette-table-lines)}.mud-md-table .mud-table-row{display:revert}.mud-md-table .mud-table-row .mud-table-cell:last-child{border-bottom:1px solid var(--mud-palette-table-lines)}.mud-md-table .mud-table-cell{display:flex;justify-content:space-between;align-items:center;border:none;padding:14px 16px;text-align:start !important}.mud-md-table.mud-table-dense .mud-table-cell{padding:6px 16px}.mud-md-table .mud-table-cell:before{content:attr(data-label);font-weight:500;padding-right:16px;padding-inline-end:16px;padding-inline-start:unset}.mud-md-table.mud-table-small-alignright .mud-table-cell:before{margin-right:auto}.mud-md-table .mud-table-cell-hide{visibility:collapse;height:0;padding:0;margin:0}.mud-md-table .mud-table-pagination .mud-table-pagination-spacer{flex:none}.mud-md-table .mud-table-pagination .mud-table-pagination-actions .mud-button-root:first-child{display:none}.mud-md-table .mud-table-pagination .mud-table-pagination-actions .mud-button-root:last-child{display:none}.mud-md-table .mud-table-pagination .mud-select~.mud-table-pagination-caption{margin-left:auto;margin-inline-start:auto}.mud-md-table.mud-table-bordered .mud-table-container .mud-table-root colgroup~.mud-table-body .mud-table-row .mud-table-cell{border-right:1px solid var(--mud-palette-table-lines) !important}.mud-md-table.mud-table-bordered .mud-table-container .mud-table-root .mud-table-body .mud-table-row .mud-table-cell{border-right:none !important}}@media(max-width: 1920px){.mud-lg-table .mud-table-root .mud-table-head,.mud-lg-table .mud-table-root .mud-table-foot{display:none}.mud-lg-table .mud-table-smalldevices-sortselect{display:block;padding:4px 16px 8px}.mud-lg-table .mud-table-body{border-top:1px solid var(--mud-palette-table-lines)}.mud-lg-table .mud-table-row{display:revert}.mud-lg-table .mud-table-row .mud-table-cell:last-child{border-bottom:1px solid var(--mud-palette-table-lines)}.mud-lg-table .mud-table-cell{display:flex;justify-content:space-between;align-items:center;border:none;padding:14px 16px;text-align:start !important}.mud-lg-table.mud-table-dense .mud-table-cell{padding:6px 16px}.mud-lg-table .mud-table-cell:before{content:attr(data-label);font-weight:500;padding-right:16px;padding-inline-end:16px;padding-inline-start:unset}.mud-lg-table.mud-table-small-alignright .mud-table-cell:before{margin-right:auto}.mud-lg-table .mud-table-cell-hide{visibility:collapse;height:0;padding:0;margin:0}.mud-lg-table .mud-table-pagination .mud-table-pagination-spacer{flex:none}.mud-lg-table .mud-table-pagination .mud-table-pagination-actions .mud-button-root:first-child{display:none}.mud-lg-table .mud-table-pagination .mud-table-pagination-actions .mud-button-root:last-child{display:none}.mud-lg-table .mud-table-pagination .mud-select~.mud-table-pagination-caption{margin-left:auto;margin-inline-start:auto}.mud-lg-table.mud-table-bordered .mud-table-container .mud-table-root colgroup~.mud-table-body .mud-table-row .mud-table-cell{border-right:1px solid var(--mud-palette-table-lines) !important}.mud-lg-table.mud-table-bordered .mud-table-container .mud-table-root .mud-table-body .mud-table-row .mud-table-cell{border-right:none !important}}@media(max-width: 2560px){.mud-xl-table .mud-table-root .mud-table-head,.mud-xl-table .mud-table-root .mud-table-foot{display:none}.mud-xl-table .mud-table-smalldevices-sortselect{display:block;padding:4px 16px 8px}.mud-xl-table .mud-table-body{border-top:1px solid var(--mud-palette-table-lines)}.mud-xl-table .mud-table-row{display:revert}.mud-xl-table .mud-table-row .mud-table-cell:last-child{border-bottom:1px solid var(--mud-palette-table-lines)}.mud-xl-table .mud-table-cell{display:flex;justify-content:space-between;align-items:center;border:none;padding:14px 16px;text-align:start !important}.mud-xl-table.mud-table-dense .mud-table-cell{padding:6px 16px}.mud-xl-table .mud-table-cell:before{content:attr(data-label);font-weight:500;padding-right:16px;padding-inline-end:16px;padding-inline-start:unset}.mud-xl-table.mud-table-small-alignright .mud-table-cell:before{margin-right:auto}.mud-xl-table .mud-table-cell-hide{visibility:collapse;height:0;padding:0;margin:0}.mud-xl-table .mud-table-pagination .mud-table-pagination-spacer{flex:none}.mud-xl-table .mud-table-pagination .mud-table-pagination-actions .mud-button-root:first-child{display:none}.mud-xl-table .mud-table-pagination .mud-table-pagination-actions .mud-button-root:last-child{display:none}.mud-xl-table .mud-table-pagination .mud-select~.mud-table-pagination-caption{margin-left:auto;margin-inline-start:auto}.mud-xl-table.mud-table-bordered .mud-table-container .mud-table-root colgroup~.mud-table-body .mud-table-row .mud-table-cell{border-right:1px solid var(--mud-palette-table-lines) !important}.mud-xl-table.mud-table-bordered .mud-table-container .mud-table-root .mud-table-body .mud-table-row .mud-table-cell{border-right:none !important}}@media(min-width: 2560px){.mud-xxl-table .mud-table-root .mud-table-head,.mud-xxl-table .mud-table-root .mud-table-foot{display:none}.mud-xxl-table .mud-table-smalldevices-sortselect{display:block;padding:4px 16px 8px}.mud-xxl-table .mud-table-body{border-top:1px solid var(--mud-palette-table-lines)}.mud-xxl-table .mud-table-row{display:revert}.mud-xxl-table .mud-table-row .mud-table-cell:last-child{border-bottom:1px solid var(--mud-palette-table-lines)}.mud-xxl-table .mud-table-cell{display:flex;justify-content:space-between;align-items:center;border:none;padding:14px 16px;text-align:start !important}.mud-xxl-table.mud-table-dense .mud-table-cell{padding:6px 16px}.mud-xxl-table .mud-table-cell:before{content:attr(data-label);font-weight:500;padding-right:16px;padding-inline-end:16px;padding-inline-start:unset}.mud-xxl-table.mud-table-small-alignright .mud-table-cell:before{margin-right:auto}.mud-xxl-table .mud-table-cell-hide{visibility:collapse;height:0;padding:0;margin:0}.mud-xxl-table .mud-table-pagination .mud-table-pagination-spacer{flex:none}.mud-xxl-table .mud-table-pagination .mud-table-pagination-actions .mud-button-root:first-child{display:none}.mud-xxl-table .mud-table-pagination .mud-table-pagination-actions .mud-button-root:last-child{display:none}.mud-xxl-table .mud-table-pagination .mud-select~.mud-table-pagination-caption{margin-left:auto;margin-inline-start:auto}.mud-xxl-table.mud-table-bordered .mud-table-container .mud-table-root colgroup~.mud-table-body .mud-table-row .mud-table-cell{border-right:1px solid var(--mud-palette-table-lines) !important}.mud-xxl-table.mud-table-bordered .mud-table-container .mud-table-root .mud-table-body .mud-table-row .mud-table-cell{border-right:none !important}}.mud-tabs{display:flex;flex-direction:column}.mud-tabs.mud-tabs-reverse{flex-direction:column-reverse}.mud-tabs.mud-tabs-vertical{flex-direction:row}.mud-tabs.mud-tabs-vertical .mud-tooltip-root{width:auto}.mud-tabs.mud-tabs-vertical-reverse{flex-direction:row-reverse}.mud-tabs.mud-tabs-rounded{border-radius:var(--mud-default-borderradius);overflow:hidden}.mud-tabs.mud-tabs-rounded .mud-tabs-tabbar{border-radius:var(--mud-default-borderradius)}.mud-tabs.mud-tabs-rounded .mud-tabs-panels{border-radius:var(--mud-default-borderradius);flex-grow:1}.mud-tabs-tabbar{position:relative;background-color:var(--mud-palette-surface)}.mud-tabs-tabbar.mud-tabs-border-left{border-top-right-radius:0 !important;border-bottom-right-radius:0 !important;border-right:1px solid var(--mud-palette-lines-default)}.mud-tabs-tabbar.mud-tabs-border-right{border-top-left-radius:0 !important;border-bottom-left-radius:0 !important;border-left:1px solid var(--mud-palette-lines-default)}.mud-tabs-tabbar.mud-tabs-border-top{border-bottom-left-radius:0 !important;border-bottom-right-radius:0 !important;border-bottom:1px solid var(--mud-palette-lines-default)}.mud-tabs-tabbar.mud-tabs-border-bottom{border-top-left-radius:0 !important;border-top-right-radius:0 !important;border-top:1px solid var(--mud-palette-lines-default)}.mud-tabs-tabbar.mud-tabs-rounded{border-radius:var(--mud-default-borderradius)}.mud-tabs-tabbar.mud-tabs-vertical .mud-tabs-tabbar-inner{flex-direction:column}.mud-tabs-tabbar.mud-tabs-vertical .mud-tabs-tabbar-inner .mud-tabs-scroll-button .mud-button-root{width:100%;border-radius:0px;height:32px}.mud-tabs-tabbar.mud-tabs-vertical .mud-tabs-tabbar-inner .mud-tabs-scroll-button .mud-button-root .mud-icon-button-label .mud-icon-root{transform:rotate(90deg)}.mud-tabs-tabbar .mud-tabs-tabbar-inner{display:flex;min-height:48px}.mud-tabs-tabbar-content{width:100%;flex:1 1 auto;display:inline-block;position:relative;white-space:nowrap;overflow:hidden}.mud-tabs-tabbar-content .mud-tabs-tabbar-wrapper{width:max-content;position:inherit;display:flex;transition:.3s cubic-bezier(0.25, 0.8, 0.5, 1)}.mud-tabs-tabbar-content .mud-tabs-tabbar-wrapper.mud-tabs-centered{margin:auto}.mud-tabs-tabbar-content .mud-tabs-tabbar-wrapper.mud-tabs-vertical{flex-direction:column}.mud-tabs-panels{position:relative;transition:.3s cubic-bezier(0.25, 0.8, 0.5, 1)}.mud-tabs-panels.mud-tabs-vertical{display:flex;flex-grow:1}.mud-tab{width:100%;display:inline-flex;padding:6px 12px;min-height:48px;flex-shrink:0;font-weight:500;line-height:1.75;user-select:none;white-space:normal;letter-spacing:.02857em;text-transform:uppercase;text-align:center;align-items:center;justify-content:center;transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}@media(hover: hover)and (pointer: fine){.mud-tab:hover{cursor:pointer;background-color:var(--mud-palette-action-default-hover)}}.mud-tab.mud-tab-active{color:var(--mud-palette-primary)}@media(hover: hover)and (pointer: fine){.mud-tab.mud-tab-active:hover{background-color:var(--mud-palette-primary-hover)}}.mud-tab.mud-disabled{cursor:default;pointer-events:none;color:var(--mud-palette-text-disabled)}.mud-tab .mud-tab-icon-text{margin-right:8px;margin-inline-end:8px;margin-inline-start:unset}.mud-tab.mud-tab-panel-hidden{display:none}.mud-tab-slider{position:absolute;background:var(--mud-palette-primary)}.mud-tab-slider.mud-tab-slider-horizontal{height:2px;bottom:0;transition:left .3s cubic-bezier(0.64, 0.09, 0.08, 1);will-change:left}.mud-tab-slider.mud-tab-slider-horizontal.mud-tab-slider-horizontal-reverse{top:0;bottom:unset}.mud-tab-slider.mud-tab-slider-vertical{width:2px;right:0;transition:top .3s cubic-bezier(0.64, 0.09, 0.08, 1);will-change:top}.mud-tab-slider.mud-tab-slider-vertical.mud-tab-slider-vertical-reverse{left:0;right:unset}.mud-tab-badge{margin-left:8px;margin-inline-start:8px;margin-inline-end:unset}.mud-tabs-tabbar-primary{background-color:var(--mud-palette-primary);color:var(--mud-palette-primary-text)}.mud-tabs-tabbar-primary .mud-tab-slider{background:var(--mud-palette-primary-text)}.mud-tabs-tabbar-primary .mud-tab.mud-tab-active{color:var(--mud-palette-primary-text)}@media(hover: hover)and (pointer: fine){.mud-tabs-tabbar-primary .mud-tab.mud-tab-active:hover{background-color:var(--mud-palette-primary-lighten)}}.mud-tabs-tabbar-secondary{background-color:var(--mud-palette-secondary);color:var(--mud-palette-secondary-text)}.mud-tabs-tabbar-secondary .mud-tab-slider{background:var(--mud-palette-secondary-text)}.mud-tabs-tabbar-secondary .mud-tab.mud-tab-active{color:var(--mud-palette-secondary-text)}@media(hover: hover)and (pointer: fine){.mud-tabs-tabbar-secondary .mud-tab.mud-tab-active:hover{background-color:var(--mud-palette-secondary-lighten)}}.mud-tabs-tabbar-tertiary{background-color:var(--mud-palette-tertiary);color:var(--mud-palette-tertiary-text)}.mud-tabs-tabbar-tertiary .mud-tab-slider{background:var(--mud-palette-tertiary-text)}.mud-tabs-tabbar-tertiary .mud-tab.mud-tab-active{color:var(--mud-palette-tertiary-text)}@media(hover: hover)and (pointer: fine){.mud-tabs-tabbar-tertiary .mud-tab.mud-tab-active:hover{background-color:var(--mud-palette-tertiary-lighten)}}.mud-tabs-tabbar-info{background-color:var(--mud-palette-info);color:var(--mud-palette-info-text)}.mud-tabs-tabbar-info .mud-tab-slider{background:var(--mud-palette-info-text)}.mud-tabs-tabbar-info .mud-tab.mud-tab-active{color:var(--mud-palette-info-text)}@media(hover: hover)and (pointer: fine){.mud-tabs-tabbar-info .mud-tab.mud-tab-active:hover{background-color:var(--mud-palette-info-lighten)}}.mud-tabs-tabbar-success{background-color:var(--mud-palette-success);color:var(--mud-palette-success-text)}.mud-tabs-tabbar-success .mud-tab-slider{background:var(--mud-palette-success-text)}.mud-tabs-tabbar-success .mud-tab.mud-tab-active{color:var(--mud-palette-success-text)}@media(hover: hover)and (pointer: fine){.mud-tabs-tabbar-success .mud-tab.mud-tab-active:hover{background-color:var(--mud-palette-success-lighten)}}.mud-tabs-tabbar-warning{background-color:var(--mud-palette-warning);color:var(--mud-palette-warning-text)}.mud-tabs-tabbar-warning .mud-tab-slider{background:var(--mud-palette-warning-text)}.mud-tabs-tabbar-warning .mud-tab.mud-tab-active{color:var(--mud-palette-warning-text)}@media(hover: hover)and (pointer: fine){.mud-tabs-tabbar-warning .mud-tab.mud-tab-active:hover{background-color:var(--mud-palette-warning-lighten)}}.mud-tabs-tabbar-error{background-color:var(--mud-palette-error);color:var(--mud-palette-error-text)}.mud-tabs-tabbar-error .mud-tab-slider{background:var(--mud-palette-error-text)}.mud-tabs-tabbar-error .mud-tab.mud-tab-active{color:var(--mud-palette-error-text)}@media(hover: hover)and (pointer: fine){.mud-tabs-tabbar-error .mud-tab.mud-tab-active:hover{background-color:var(--mud-palette-error-lighten)}}.mud-tabs-tabbar-dark{background-color:var(--mud-palette-dark);color:var(--mud-palette-dark-text)}.mud-tabs-tabbar-dark .mud-tab-slider{background:var(--mud-palette-dark-text)}.mud-tabs-tabbar-dark .mud-tab.mud-tab-active{color:var(--mud-palette-dark-text)}@media(hover: hover)and (pointer: fine){.mud-tabs-tabbar-dark .mud-tab.mud-tab-active:hover{background-color:var(--mud-palette-dark-lighten)}}.tab-transition-enter{transform:translate(100%, 0)}.tab-transition-leave,.tab-transition-leave-active{position:absolute;top:0}.tab-transition-leave-to{position:absolute;transform:translate(-100%, 0)}.tab-reverse-transition-enter{transform:translate(-100%, 0)}.tab-reverse-transition-leave,.tab-reverse-transition-leave-to{top:0;position:absolute;transform:translate(100%, 0)}.mud-dynamic-tabs .mud-tabs-tabbar .mud-tab{padding:6px 14px}.mud-dynamic-tabs .mud-tabs-tabbar .mud-tab .mud-icon-button{padding:4px;margin-right:-4px;margin-inline-end:-4px;margin-inline-start:unset}.mud-dynamic-tabs .mud-tabs-tabbar .mud-tab .mud-tabs-panel-header-before{padding-right:8px;padding-inline-end:8px;padding-inline-start:unset}.mud-dynamic-tabs .mud-tabs-tabbar .mud-tab .mud-tabs-panel-header-after{padding-left:8px;padding-inline-start:8px;padding-inline-end:unset}.mud-tabs-header.mud-tabs-header-before{display:inherit}.mud-tabs-header.mud-tabs-header-after{display:inherit}.mud-tabs-panel-header{display:flex;flex:1 1 auto}.mud-tabs-panel-header.mud-tabs-panel-header-before{justify-content:flex-start}.mud-tabs-panel-header.mud-tabs-panel-header-after{justify-content:flex-end}.mud-select{display:flex;flex-grow:1;position:relative}.mud-select.mud-autocomplete{display:block}.mud-select.mud-autocomplete .mud-select-input{cursor:text}.mud-select.mud-autocomplete .mud-input-adornment{cursor:pointer}.mud-select.mud-autocomplete--with-progress .mud-select-input input{padding-right:3.5rem !important}.mud-select.mud-autocomplete--with-progress .mud-input-adorned-end input{padding-right:4.5rem !important}.mud-select.mud-autocomplete--with-progress .mud-select-input .mud-icon-button{display:none !important}.mud-select.mud-autocomplete--with-progress .progress-indicator-circular{position:absolute;width:100%;top:0;bottom:0;display:flex;align-items:center;justify-content:flex-end;padding-top:.25rem;padding-bottom:.25rem;padding-right:1rem}.mud-select.mud-autocomplete--with-progress .mud-progress-linear{position:absolute;bottom:-1px;height:2px}.mud-select .mud-select-input{cursor:pointer}.mud-select .mud-select-input .mud-input-slot{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.mud-select .mud-select-input .mud-input-adornment-end{margin-left:0}.mud-select .mud-select-input:disabled{cursor:default}.mud-select .mud-disabled .mud-select-input{cursor:default}.mud-rtl-provider .mud-select .progress-indicator-circular--with-adornment{padding-right:1rem}.mud-rtl-provider.mud-application-layout-rtl .mud-select .progress-indicator-circular--with-adornment{padding-right:0rem !important;padding-left:1rem !important}.mud-select>.mud-form-helpertext{margin-top:-21px}.mud-select-all{margin-top:10px;border-bottom:1px solid #d3d3d3;padding-bottom:18px}.mud-select-filler{white-space:nowrap;height:0px}.mud-width-content{max-width:min-content}.mud-input{position:relative;color:var(--mud-palette-text-primary);cursor:text;display:inline-flex;box-sizing:border-box;align-items:center;color-scheme:var(--mud-native-html-color-scheme);line-height:1.1876em}.mud-input.mud-input-full-width{width:100%}.mud-input.mud-disabled{color:var(--mud-palette-text-disabled);cursor:default}.mud-input.mud-disabled>.mud-input-adornment{color:var(--mud-palette-text-disabled);pointer-events:none}.mud-input.mud-input-underline:before{left:0;right:0;bottom:0;content:" ";position:absolute;transition:border-bottom .2s,background-color .2s;border-bottom:1px solid var(--mud-palette-lines-inputs);pointer-events:none}@media(hover: hover)and (pointer: fine){.mud-input.mud-input-underline:hover:not(.mud-disabled):before{border-bottom:1px solid var(--mud-palette-action-default)}}.mud-input.mud-input-underline:after{left:0;right:0;bottom:0;content:"";position:absolute;transform:scaleX(0);transition:transform 200ms cubic-bezier(0, 0, 0.2, 1) 0ms;border-bottom:2px solid var(--mud-palette-primary);pointer-events:none}.mud-input.mud-input-underline.mud-disabled:before{border-bottom-style:dotted}.mud-input.mud-input-underline.mud-input-error:after{transform:scaleX(1);border-bottom-color:var(--mud-palette-error)}.mud-input.mud-input-filled{position:relative;transition:background-color 200ms cubic-bezier(0, 0, 0.2, 1) 0ms;background-color:rgba(0,0,0,.09);border-top-left-radius:4px;border-top-right-radius:4px}@media(hover: hover)and (pointer: fine){.mud-input.mud-input-filled:hover{background-color:rgba(0,0,0,.13)}}.mud-input.mud-input-filled.mud-focused{background-color:rgba(0,0,0,.09)}.mud-input.mud-input-filled.mud-disabled{background-color:rgba(0,0,0,.12)}.mud-input.mud-input-filled.mud-input-adorned-start{padding-left:12px;padding-inline-start:12px;padding-inline-end:unset}.mud-input.mud-input-filled.mud-input-adorned-end{padding-right:12px;padding-inline-end:12px;padding-inline-start:unset}.mud-input.mud-input-filled.mud-input-underline:before{left:0;right:0;bottom:0;content:" ";position:absolute;transition:border-bottom-color 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;border-bottom:1px solid var(--mud-palette-lines-inputs);pointer-events:none}.mud-input.mud-input-filled.mud-input-underline:after{left:0;right:0;bottom:0;content:"";position:absolute;transform:scaleX(0);transition:transform 200ms cubic-bezier(0, 0, 0.2, 1) 0ms;border-bottom:2px solid var(--mud-palette-primary);pointer-events:none}@media(hover: hover)and (pointer: fine){.mud-input.mud-input-filled.mud-input-underline:hover:before{border-bottom:1px solid var(--mud-palette-action-default)}}.mud-input.mud-input-filled.mud-input-underline.mud-disabled:before{border-bottom-style:dotted}.mud-input.mud-input-filled.mud-input-underline.mud-input-error:after{transform:scaleX(1);border-bottom-color:var(--mud-palette-error)}.mud-input.mud-input-outlined{position:relative;border-width:0px}.mud-input.mud-input-outlined .mud-input-outlined-border{display:flex;position:absolute;top:0;right:0;left:0;box-sizing:border-box;width:100%;max-width:100%;min-width:0%;height:100%;text-align:start;pointer-events:none;border-radius:var(--mud-default-borderradius);border-color:var(--mud-palette-lines-inputs);border-width:1px;border-style:solid;transition:border-width,border-color 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}.mud-input.mud-input-outlined>.mud-input-outlined-border legend{float:none;visibility:hidden;font-size:.75rem;font-weight:inherit;width:0;height:0;margin:0 11px 0 11px;padding:0;position:relative}@media(hover: hover)and (pointer: fine){.mud-input.mud-input-outlined:not(.mud-disabled):not(:focus-within):hover .mud-input-outlined-border{border-color:var(--mud-palette-action-default)}}.mud-input.mud-input-outlined.mud-shrink>.mud-input-outlined-border legend{width:auto;padding:0 5px}.mud-input.mud-input-outlined:focus-within>.mud-input-outlined-border,.mud-input.mud-input-outlined:focus-within .mud-shrink>.mud-input-outlined-border{border-width:2px;border-color:var(--mud-palette-primary)}.mud-input.mud-input-outlined:focus-within>.mud-input-outlined-border legend,.mud-input.mud-input-outlined:focus-within .mud-shrink>.mud-input-outlined-border legend{width:auto;padding:0 5px}.mud-input.mud-input-outlined.mud-disabled .mud-input-outlined-border{border-color:var(--mud-palette-action-disabled)}.mud-input.mud-input-outlined.mud-input-adorned-start{padding-left:14px;padding-inline-start:14px;padding-inline-end:unset}.mud-input.mud-input-outlined.mud-input-adorned-end{padding-right:14px;padding-inline-end:14px;padding-inline-start:unset}.mud-input-error .mud-input-outlined-border{border-color:var(--mud-palette-error) !important}.mud-input:focus-within.mud-input-underline:after{transform:scaleX(1)}.mud-input>input.mud-input-root,div.mud-input-slot.mud-input-root{font:inherit;color:currentColor;width:100%;border:0;height:1lh;margin:0;display:block;padding:6px 0 7px;min-width:0;background:none;position:relative;box-sizing:content-box;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mud-input>input.mud-input-root::placeholder,div.mud-input-slot.mud-input-root::placeholder{color:currentColor;opacity:.42;transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}.mud-input>input.mud-input-root::-webkit-input-placeholder,div.mud-input-slot.mud-input-root::-webkit-input-placeholder{color:currentColor;opacity:.42;transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}.mud-input>input.mud-input-root:-moz-placeholder,div.mud-input-slot.mud-input-root:-moz-placeholder{color:currentColor;opacity:.42;transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}.mud-input>input.mud-input-root::-moz-placeholder,div.mud-input-slot.mud-input-root::-moz-placeholder{color:currentColor;opacity:.42;transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}.mud-input>input.mud-input-root:-ms-input-placeholder,div.mud-input-slot.mud-input-root:-ms-input-placeholder{color:currentColor;opacity:.42;transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}.mud-input>input.mud-input-root::-ms-input-placeholder,div.mud-input-slot.mud-input-root::-ms-input-placeholder{color:currentColor;opacity:.42;transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}.mud-input>input.mud-input-root.mud-input-root-margin-dense,div.mud-input-slot.mud-input-root.mud-input-root-margin-dense{padding-top:3px}.mud-input>input.mud-input-root.mud-input-root-multiline,div.mud-input-slot.mud-input-root.mud-input-root-multiline{height:auto;resize:none;padding:0}.mud-input>input.mud-input-root.mud-input-root-type-search,div.mud-input-slot.mud-input-root.mud-input-root-type-search{-moz-appearance:textfield;-webkit-appearance:textfield}.mud-input>input.mud-input-root:focus,.mud-input>input.mud-input-root:active,div.mud-input-slot.mud-input-root:focus,div.mud-input-slot.mud-input-root:active{outline:0}.mud-input>input.mud-input-root:invalid,div.mud-input-slot.mud-input-root:invalid{box-shadow:none}.mud-input>input.mud-input-root:disabled,div.mud-input-slot.mud-input-root:disabled{opacity:1}.mud-input>input.mud-input-root.mud-input-root-filled,div.mud-input-slot.mud-input-root.mud-input-root-filled{padding:27px 12px 10px}.mud-input>input.mud-input-root.mud-input-root-filled.mud-input-root-margin-dense,div.mud-input-slot.mud-input-root.mud-input-root-filled.mud-input-root-margin-dense{padding-top:23px;padding-bottom:6px}.mud-input>input.mud-input-root.mud-input-root-filled:-webkit-autofill,div.mud-input-slot.mud-input-root.mud-input-root-filled:-webkit-autofill{border-top-left-radius:inherit;border-top-right-radius:inherit}.mud-input>input.mud-input-root.mud-input-root-filled.mud-input-root-hidden-label,div.mud-input-slot.mud-input-root.mud-input-root-filled.mud-input-root-hidden-label{padding-top:18px;padding-bottom:19px}.mud-input>input.mud-input-root.mud-input-root-filled.mud-input-root-hidden-label.mud-input-root-margin-dense,div.mud-input-slot.mud-input-root.mud-input-root-filled.mud-input-root-hidden-label.mud-input-root-margin-dense{padding-top:10px;padding-bottom:11px}.mud-input>input.mud-input-root.mud-input-root-filled.mud-input-root-multiline,div.mud-input-slot.mud-input-root.mud-input-root-filled.mud-input-root-multiline{padding:0}.mud-input>input.mud-input-root.mud-input-root-filled.mud-input-root-adorned-start,div.mud-input-slot.mud-input-root.mud-input-root-filled.mud-input-root-adorned-start{padding-left:0;padding-inline-start:0;padding-inline-end:12px}.mud-input>input.mud-input-root.mud-input-root-filled.mud-input-root-adorned-end,div.mud-input-slot.mud-input-root.mud-input-root-filled.mud-input-root-adorned-end{padding-right:0;padding-inline-end:0;padding-inline-start:12px}.mud-input>input.mud-input-root-outlined,div.mud-input-slot.mud-input-root-outlined{padding:18.5px 14px}.mud-input>input.mud-input-root-outlined.mud-input-root:-webkit-autofill,div.mud-input-slot.mud-input-root-outlined.mud-input-root:-webkit-autofill{border-radius:inherit}.mud-input>input.mud-input-root-outlined.mud-input-root-margin-dense,div.mud-input-slot.mud-input-root-outlined.mud-input-root-margin-dense{padding-top:10.5px;padding-bottom:10.5px}.mud-input>input.mud-input-root-outlined.mud-input-root-adorned-start,div.mud-input-slot.mud-input-root-outlined.mud-input-root-adorned-start{padding-left:0;padding-inline-start:0;padding-inline-end:14px}.mud-input>input.mud-input-root-outlined.mud-input-root-adorned-end,div.mud-input-slot.mud-input-root-outlined.mud-input-root-adorned-end{padding-right:0;padding-inline-end:0;padding-inline-start:14px}.mud-input>input::-ms-reveal,.mud-input>input::-ms-clear,div.mud-input-slot::-ms-reveal,div.mud-input-slot::-ms-clear{display:none !important}.mud-input>textarea.mud-input-root{font:inherit;color:currentColor;width:100%;border:0;height:auto;margin:6px 0 7px;padding:0;display:block;min-width:0;background:none;position:relative;box-sizing:content-box;letter-spacing:inherit;-webkit-tap-highlight-color:rgba(0,0,0,0);resize:none;cursor:auto}.mud-input>textarea.mud-input-root::placeholder{color:currentColor;opacity:.42;transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}.mud-input>textarea.mud-input-root::-webkit-input-placeholder{color:currentColor;opacity:.42;transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}.mud-input>textarea.mud-input-root:-moz-placeholder{color:currentColor;opacity:.42;transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}.mud-input>textarea.mud-input-root::-moz-placeholder{color:currentColor;opacity:.42;transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}.mud-input>textarea.mud-input-root:-ms-input-placeholder{color:currentColor;opacity:.42;transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}.mud-input>textarea.mud-input-root::-ms-input-placeholder{color:currentColor;opacity:.42;transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}.mud-input>textarea.mud-input-root.mud-input-root-margin-dense{padding-top:3px}.mud-input>textarea.mud-input-root.mud-input-root-type-search{-moz-appearance:textfield;-webkit-appearance:textfield}.mud-input>textarea.mud-input-root:focus,.mud-input>textarea.mud-input-root:active{outline:0}.mud-input>textarea.mud-input-root:invalid{box-shadow:none}.mud-input>textarea.mud-input-root:disabled{opacity:1}.mud-input>textarea.mud-input-root.mud-input-root-filled{box-sizing:border-box;margin-top:27px;margin-bottom:0;padding:0px 12px 10px}.mud-input>textarea.mud-input-root.mud-input-root-filled.mud-input-root-margin-dense{padding-top:23px;padding-bottom:6px;mask-image:linear-gradient(to bottom, transparent 23px, black 23px)}.mud-input>textarea.mud-input-root.mud-input-root-filled:-webkit-autofill{border-top-left-radius:inherit;border-top-right-radius:inherit}.mud-input>textarea.mud-input-root.mud-input-root-filled.mud-input-root-hidden-label{padding-top:18px;padding-bottom:19px;mask-image:linear-gradient(to bottom, transparent 18px, black 18px)}.mud-input>textarea.mud-input-root.mud-input-root-filled.mud-input-root-hidden-label.mud-input-root-margin-dense{padding-top:10px;padding-bottom:11px;mask-image:linear-gradient(to bottom, transparent 10px, black 10px)}.mud-input>textarea.mud-input-root.mud-input-root-filled.mud-input-root-adorned-start{padding-left:0;padding-inline-start:0;padding-inline-end:12px}.mud-input>textarea.mud-input-root.mud-input-root-filled.mud-input-root-adorned-end{padding-right:0;padding-inline-end:unset;padding-inline-start:12px}.mud-input>textarea.mud-input-root::-webkit-scrollbar{width:8px;height:8px;z-index:1;cursor:crosshair}.mud-input>textarea.mud-input-root::-webkit-scrollbar-thumb{background:var(--mud-palette-lines-inputs);border-radius:1px}.mud-input>textarea.mud-input-root::-webkit-scrollbar-track{background:rgba(0,0,0,0)}.mud-input>textarea.mud-input-root-outlined{box-sizing:border-box;margin-top:18.5px;margin-bottom:0;padding:0px 14px 18.5px}.mud-input>textarea.mud-input-root-outlined.mud-input-root:-webkit-autofill{border-radius:inherit}.mud-input>textarea.mud-input-root-outlined.mud-input-root-margin-dense{margin-top:0px;padding-top:10.5px;padding-bottom:10.5px;mask-image:linear-gradient(to bottom, transparent 10.5px, black 10.5px)}.mud-input>textarea.mud-input-root-outlined.mud-input-root-adorned-start{padding-left:0;padding-inline-start:0;padding-inline-end:14px}.mud-input>textarea.mud-input-root-outlined.mud-input-root-adorned-end{padding-right:0;padding-inline-end:0;padding-inline-start:14px}.mud-input-adornment{height:.01em;display:flex;max-height:2em;align-items:center;white-space:nowrap}.mud-input-adornment-start{margin-right:8px;margin-inline-end:8px;margin-inline-start:unset}.mud-input-adornment-start.mud-input-root-filled-shrink{margin-top:16px}.mud-input-adornment-end{margin-left:8px;margin-inline-start:8px;margin-inline-end:unset}.mud-input-number-control.mud-input-showspin .mud-input-adornment-end{margin-right:12px;margin-inline-end:12px;margin-inline-start:unset}.mud-input-number-control.mud-input-showspin .mud-input-underline:not(.mud-input-filled) .mud-input-adornment-end{margin-right:24px;margin-inline-end:24px;margin-inline-start:unset}.mud-input-adornment-disable-pointerevents{pointer-events:none}.mud-range-input-separator{visibility:hidden;margin:0 4px}.mud-input:focus-within .mud-range-input-separator{visibility:visible}.mud-picker .mud-shrink .mud-range-input-separator{visibility:visible}.mud-input-input-control{user-select:none}.mud-input-control{border:0;margin:0;padding:0;display:flex;flex:1 1 auto;max-width:100%;position:relative;flex-direction:column;vertical-align:top}.mud-input-control.mud-input-control-full-width{width:100%}.mud-input-control.mud-input-control-boolean-input{flex:none;margin:0}.mud-input-control.mud-input-control-boolean-input .mud-radio-group{display:inherit;flex-direction:row;align-items:center;flex-wrap:wrap}.mud-input-control.mud-input-outlined-with-label{margin-top:8px;margin-bottom:4px}.mud-input-control.mud-input-control-margin-dense{margin:4px 0px}.mud-input-control.mud-input-control-margin-dense.mud-input-outlined-with-label{margin-top:8px;margin-bottom:4px}.mud-input-control.mud-input-control-margin-normal{margin:8px 0px}.mud-input-control.mud-input-control-margin-normal.mud-input-outlined-with-label{margin-top:16px;margin-bottom:8px}.mud-input-control>.mud-input-control-input-container{position:relative;display:flex;flex-direction:column}.mud-input-control>.mud-input-control-input-container>div.mud-input.mud-input-text.mud-input-text-with-label{margin-top:16px}.mud-input-control>.mud-input-control-input-container>.mud-input-label-outlined.mud-input-label-inputcontrol{line-height:1.15rem}.mud-input-control>.mud-input-control-input-container>.mud-input-label-inputcontrol{color:var(--mud-palette-text-secondary);padding:0;font-size:1rem;font-weight:400;line-height:1.15rem;letter-spacing:.00938em;z-index:0;pointer-events:none}.mud-input-control>.mud-input-control-input-container>.mud-input-label-inputcontrol.mud-disabled{color:var(--mud-palette-text-disabled)}.mud-input-control>.mud-input-control-input-container>.mud-input-label-inputcontrol.mud-input-error{color:var(--mud-palette-error) !important}.mud-input-control.mud-input-required>.mud-input-control-input-container>.mud-input-label::after{content:"*"}.mud-input-control.mud-input-number-control input::-webkit-outer-spin-button,.mud-input-control.mud-input-number-control input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.mud-input-control.mud-input-number-control input[type=number]{-moz-appearance:textfield}.mud-input-control.mud-input-number-control.mud-input-showspin .mud-input:not(.mud-input-adorned-end) input{padding-right:24px;padding-inline-end:24px}.mud-input-control.mud-input-number-control.mud-input-showspin .mud-input:not(.mud-input-adorned-end) input.mud-input-root-margin-dense{padding-right:20px;padding-inline-end:20px}.mud-input-control.mud-input-number-control.mud-input-showspin .mud-input:not(.mud-input-adorned-end).mud-input-text input{padding-inline-start:0}.mud-input-control.mud-input-number-control.mud-input-showspin .mud-input:not(.mud-input-adorned-end).mud-input-text input.mud-input-root-margin-dense{padding-inline-start:0}.mud-input-control.mud-input-number-control.mud-input-showspin .mud-input:not(.mud-input-adorned-end).mud-input-filled input{padding-inline-start:12px}.mud-input-control.mud-input-number-control.mud-input-showspin .mud-input:not(.mud-input-adorned-end).mud-input-filled input.mud-input-root-margin-dense{padding-inline-start:12px}.mud-input-control.mud-input-number-control.mud-input-showspin .mud-input:not(.mud-input-adorned-end).mud-input-outlined input{padding-inline-start:14px}.mud-input-control.mud-input-number-control.mud-input-showspin .mud-input:not(.mud-input-adorned-end).mud-input-outlined input.mud-input-root-margin-dense{padding-inline-start:14px}.mud-input-control.mud-input-number-control .mud-input-numeric-spin{display:inline-flex;flex-direction:column;justify-content:space-between;position:absolute;right:0;top:0;bottom:0}.mud-input-control.mud-input-number-control .mud-input-numeric-spin button{padding:2px 0;min-width:unset;min-height:unset}.mud-input-control:focus-within .mud-input-helper-text.mud-input-helper-onfocus,.mud-input-control.mud-input-error .mud-input-helper-text.mud-input-helper-onfocus{transform:translateY(0)}.mud-input-control-helper-container{overflow:hidden;margin-top:3px}.mud-input-helper-text{color:var(--mud-palette-text-secondary);margin:0;font-size:.75rem;text-align:start;font-weight:400;line-height:1.66;letter-spacing:.03333em}.mud-input-helper-text.mud-input-helper-onfocus{transform:translateY(-100%);transition:color 200ms cubic-bezier(0, 0, 0.2, 1) 0ms,transform 200ms cubic-bezier(0, 0, 0.2, 1) 0ms}.mud-input-helper-text.mud-disabled{color:var(--mud-palette-text-disabled)}.mud-input-helper-text.mud-input-error{color:var(--mud-palette-error) !important}.mud-input-helper-text-margin-dense{margin-top:4px}.mud-input-helper-text-contained{margin-left:14px;margin-right:14px}.mud-application-layout-rtl .mud-input-control.mud-input-number-control .mud-input-numeric-spin{left:0;right:unset}.mud-input-label{display:block;transform-origin:top left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.mud-input-label-inputcontrol{top:0;left:0;position:absolute;transform:translate(0, 24px) scale(1)}.mud-input-label-margindense{transform:translate(0, 21px) scale(1)}.mud-input-label-shrink{transform:translate(0, 1.5px) scale(0.75);transform-origin:top left}.mud-input-label-animated{transition:color 200ms cubic-bezier(0, 0, 0.2, 1) 0ms,transform 200ms cubic-bezier(0, 0, 0.2, 1) 0ms,max-width 200ms cubic-bezier(0, 0, 0.2, 1) 0ms}.mud-input-label-filled{z-index:1;transform:translate(12px, 20px) scale(1);max-width:calc(100% - 12px);pointer-events:none}.mud-input-label-filled.mud-input-label-margin-dense{transform:translate(12px, 17px) scale(1)}.mud-input-label-outlined{transform:translate(14px, 20px) scale(1);max-width:calc(100% - 14px);pointer-events:none;background-color:rgba(0,0,0,0);padding:0px 5px !important}.mud-input-label-outlined.mud-input-label-margin-dense{transform:translate(14px, 12px) scale(1)}.mud-shrink~label.mud-input-label.mud-input-label-inputcontrol{color:var(--mud-palette-text-primary)}.mud-input:focus-within~label.mud-input-label.mud-input-label-inputcontrol{color:var(--mud-palette-primary)}.mud-shrink~label.mud-input-label.mud-input-label-inputcontrol,.mud-input:focus-within~label.mud-input-label.mud-input-label-inputcontrol{transform:translate(0, 1.5px) scale(0.75);transform-origin:top left}.mud-shrink~label.mud-input-label.mud-input-label-inputcontrol.mud-input-label-filled,.mud-input:focus-within~label.mud-input-label.mud-input-label-inputcontrol.mud-input-label-filled{transform:translate(12px, 10px) scale(0.75);max-width:calc((100% - 12px)/.75)}.mud-shrink~label.mud-input-label.mud-input-label-inputcontrol.mud-input-label-filled.mud-input-label-margin-dense,.mud-input:focus-within~label.mud-input-label.mud-input-label-inputcontrol.mud-input-label-filled.mud-input-label-margin-dense{transform:translate(12px, 7px) scale(0.75)}.mud-shrink~label.mud-input-label.mud-input-label-inputcontrol.mud-input-label-outlined,.mud-input:focus-within~label.mud-input-label.mud-input-label-inputcontrol.mud-input-label-outlined{transform:translate(14px, -6px) scale(0.75);max-width:calc((100% - 14px)/.75)}.mud-input:focus-within~label.mud-input-label.mud-input-label-inputcontrol.mud-input-error{color:var(--mud-palette-error)}.mud-application-layout-rtl .mud-input-label{transform-origin:top right}.mud-application-layout-rtl .mud-input-label-inputcontrol{left:unset;right:0}.mud-application-layout-rtl .mud-input-label-shrink{transform-origin:top right}.mud-application-layout-rtl .mud-input-label-filled{transform:translate(-12px, 20px) scale(1)}.mud-application-layout-rtl .mud-input-label-filled.mud-input-label-margin-dense{transform:translate(-12px, 17px) scale(1)}.mud-application-layout-rtl .mud-input-label-outlined{transform:translate(-14px, 20px) scale(1)}.mud-application-layout-rtl .mud-input-label-outlined.mud-input-label-margin-dense{transform:translate(-14px, 12px) scale(1)}.mud-application-layout-rtl .mud-shrink~label.mud-input-label.mud-input-label-inputcontrol,.mud-application-layout-rtl .mud-input:focus-within~label.mud-input-label.mud-input-label-inputcontrol{transform-origin:top right}.mud-application-layout-rtl .mud-shrink~label.mud-input-label.mud-input-label-inputcontrol.mud-input-label-filled,.mud-application-layout-rtl .mud-input:focus-within~label.mud-input-label.mud-input-label-inputcontrol.mud-input-label-filled{transform:translate(-12px, 10px) scale(0.75)}.mud-application-layout-rtl .mud-shrink~label.mud-input-label.mud-input-label-inputcontrol.mud-input-label-filled.mud-input-label-margin-dense,.mud-application-layout-rtl .mud-input:focus-within~label.mud-input-label.mud-input-label-inputcontrol.mud-input-label-filled.mud-input-label-margin-dense{transform:translate(-12px, 7px) scale(0.75)}.mud-application-layout-rtl .mud-shrink~label.mud-input-label.mud-input-label-inputcontrol.mud-input-label-outlined,.mud-application-layout-rtl .mud-input:focus-within~label.mud-input-label.mud-input-label-inputcontrol.mud-input-label-outlined{transform:translate(-14px, -6px) scale(0.75)}.mud-input-content-placement-start{flex-direction:row-reverse}.mud-input-content-placement-start.mud-input-with-content{margin-left:16px;margin-inline-start:16px}.mud-input-content-placement-end{flex-direction:row}.mud-input-content-placement-end.mud-input-with-content{margin-right:16px;margin-inline-end:16px}.mud-input-content-placement-top{margin-inline-end:unset;flex-direction:column-reverse}.mud-input-content-placement-top.mud-input-with-content{margin-left:16px;margin-inline-start:16px}.mud-input-content-placement-bottom{margin-inline-end:unset;flex-direction:column}.mud-input-content-placement-bottom.mud-input-with-content{margin-left:16px;margin-inline-start:16px}.mud-file-upload{flex-grow:0}.mud-file-upload>.mud-input-control-input-container{display:initial !important}.mud-file-upload.mud-input-control{margin-top:0}.mud-image.fluid{max-width:100%;height:auto}.mud-overlay{top:0;left:0;right:0;bottom:0;margin:0 !important;align-items:center;justify-content:center;border-radius:inherit;display:flex;position:fixed;transition:.3s cubic-bezier(0.25, 0.8, 0.5, 1),z-index 1ms;z-index:5}.mud-overlay.mud-overlay-absolute{position:absolute}.mud-overlay .mud-overlay-scrim{top:0;left:0;right:0;bottom:0;border-radius:inherit;position:absolute;height:100%;width:100%;border-color:rgba(0,0,0,0);background-color:rgba(0,0,0,0);animation:mud-animation-fadein ease .15s;-webkit-animation:mud-animation-fadein ease .15s;-moz-animation:mud-animation-fadein ease .15s;-o-animation:mud-animation-fadein ease .15s}.mud-overlay .mud-overlay-scrim.mud-overlay-dark{border-color:var(--mud-palette-overlay-dark);background-color:var(--mud-palette-overlay-dark)}.mud-overlay .mud-overlay-scrim.mud-overlay-light{border-color:var(--mud-palette-overlay-light);background-color:var(--mud-palette-overlay-light)}.mud-overlay .mud-overlay-scrim:hover{cursor:default}.mud-overlay .mud-overlay-content{position:relative}.mud-overlay.mud-overlay-popover{z-index:var(--mud-zindex-popover)}.mud-overlay.mud-overlay-dialog{z-index:calc(var(--mud-zindex-dialog) + 1)}.mud-overlay.mud-overlay-drawer{z-index:calc(var(--mud-zindex-appbar) + 1)}.mud-treeview{margin:0px;padding:0px;list-style:none;overflow:auto}.mud-treeview.mud-treeview-selected-primary .mud-treeview-item-content.mud-treeview-item-selected{color:var(--mud-palette-primary);--mud-ripple-color: var(--mud-palette-primary);background-color:var(--mud-palette-primary-hover)}.mud-treeview.mud-treeview-selected-secondary .mud-treeview-item-content.mud-treeview-item-selected{color:var(--mud-palette-secondary);--mud-ripple-color: var(--mud-palette-secondary);background-color:var(--mud-palette-secondary-hover)}.mud-treeview.mud-treeview-selected-tertiary .mud-treeview-item-content.mud-treeview-item-selected{color:var(--mud-palette-tertiary);--mud-ripple-color: var(--mud-palette-tertiary);background-color:var(--mud-palette-tertiary-hover)}.mud-treeview.mud-treeview-selected-info .mud-treeview-item-content.mud-treeview-item-selected{color:var(--mud-palette-info);--mud-ripple-color: var(--mud-palette-info);background-color:var(--mud-palette-info-hover)}.mud-treeview.mud-treeview-selected-success .mud-treeview-item-content.mud-treeview-item-selected{color:var(--mud-palette-success);--mud-ripple-color: var(--mud-palette-success);background-color:var(--mud-palette-success-hover)}.mud-treeview.mud-treeview-selected-warning .mud-treeview-item-content.mud-treeview-item-selected{color:var(--mud-palette-warning);--mud-ripple-color: var(--mud-palette-warning);background-color:var(--mud-palette-warning-hover)}.mud-treeview.mud-treeview-selected-error .mud-treeview-item-content.mud-treeview-item-selected{color:var(--mud-palette-error);--mud-ripple-color: var(--mud-palette-error);background-color:var(--mud-palette-error-hover)}.mud-treeview.mud-treeview-selected-dark .mud-treeview-item-content.mud-treeview-item-selected{color:var(--mud-palette-dark);--mud-ripple-color: var(--mud-palette-dark);background-color:var(--mud-palette-dark-hover)}.mud-treeview.mud-treeview-checked-primary .mud-treeview-item-checkbox .mud-button-root.mud-icon-button{color:var(--mud-palette-primary)}.mud-treeview.mud-treeview-checked-secondary .mud-treeview-item-checkbox .mud-button-root.mud-icon-button{color:var(--mud-palette-secondary)}.mud-treeview.mud-treeview-checked-tertiary .mud-treeview-item-checkbox .mud-button-root.mud-icon-button{color:var(--mud-palette-tertiary)}.mud-treeview.mud-treeview-checked-info .mud-treeview-item-checkbox .mud-button-root.mud-icon-button{color:var(--mud-palette-info)}.mud-treeview.mud-treeview-checked-success .mud-treeview-item-checkbox .mud-button-root.mud-icon-button{color:var(--mud-palette-success)}.mud-treeview.mud-treeview-checked-warning .mud-treeview-item-checkbox .mud-button-root.mud-icon-button{color:var(--mud-palette-warning)}.mud-treeview.mud-treeview-checked-error .mud-treeview-item-checkbox .mud-button-root.mud-icon-button{color:var(--mud-palette-error)}.mud-treeview.mud-treeview-checked-dark .mud-treeview-item-checkbox .mud-button-root.mud-icon-button{color:var(--mud-palette-dark)}.mud-treeview-group{margin:0px;padding:0px;margin-left:17px;margin-inline-start:17px;margin-inline-end:unset;list-style:none}.mud-treeview-item{margin:0;outline:0;padding:0;cursor:default;list-style:none;min-height:2rem;align-items:center;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mud-treeview-item .mud-treeview-item-arrow .mud-icon-button,.mud-treeview-item .mud-treeview-item-checkbox .mud-icon-button{padding:4px}.mud-treeview-item.mud-treeview-item-disabled{color:var(--mud-palette-action-disabled) !important;cursor:default !important;pointer-events:none !important}.mud-treeview-item-content{width:100%;display:flex;padding:4px 8px;align-items:center;transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}@media(hover: hover)and (pointer: fine){.mud-treeview-hover .mud-treeview-item-content:hover{background-color:var(--mud-palette-action-default-hover)}}.mud-treeview-item-arrow{width:2rem;display:flex;flex-shrink:0;margin:0 4px;min-height:32px;justify-content:center}.mud-treeview-item-arrow .mud-treeview-item-arrow-expand{transition:.3s cubic-bezier(0.25, 0.8, 0.5, 1),visibility 0s}.mud-treeview-item-arrow .mud-treeview-item-arrow-expand.mud-transform{transform:rotate(90deg)}.mud-treeview-item-arrow .mud-treeview-item-arrow-load{animation:rotation 1s infinite linear}.mud-treeview-item-icon{width:32px;display:flex;flex-shrink:0;margin-right:4px;margin-inline-end:4px;margin-inline-start:unset;justify-content:center}.mud-treeview-item-label{flex-grow:1;padding-left:4px;padding-right:4px}.mud-treeview-dense .mud-treeview-item{min-height:unset}.mud-treeview-dense .mud-treeview-item-content{padding:1px 4px}.mud-treeview-dense .mud-treeview-item-arrow{min-height:unset}.mud-treeview-dense .mud-icon-button{padding:0}.mud-treeview-select-none{user-select:none}@keyframes rotation{from{transform:rotate(0deg)}to{transform:rotate(359deg)}}.mud-application-layout-rtl .mud-treeview-item-arrow{transform:scaleX(-1)}.mud-data-grid th{position:relative}.mud-data-grid .drop-allowed{color:var(--mud-palette-success)}.mud-data-grid .drop-not-allowed{color:var(--mud-palette-error)}.mud-data-grid .drag-icon-options{transition:opacity 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,transform 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;opacity:0;cursor:grab}.mud-data-grid .mud-table-cell.edit-mode-cell .mud-input-control{margin:0 !important}.mud-data-grid .mud-table-cell.edit-mode-cell .mud-input{font-size:inherit}.mud-data-grid .mud-table-cell.edit-mode-cell .mud-input:before{content:none}.mud-data-grid .mud-table-cell.edit-mode-cell .mud-inputafter{content:none}.mud-data-grid .mud-table-cell.edit-mode-cell .mud-input .mud-input-outlined-border{border:none}.mud-data-grid .mud-table-cell.filter-header-cell{padding:6px 24px 6px 16px;padding-inline-start:16px;padding-inline-end:24px}.mud-data-grid .mud-table-cell.sticky-left,.mud-data-grid .mud-table-cell.sticky-right{position:sticky;background-color:var(--mud-palette-background-gray);z-index:1}.mud-data-grid .mud-table-cell.sticky-left{left:0px}.mud-data-grid .mud-table-cell.sticky-right{right:0px}.mud-data-grid .mud-table-cell:not(.mud-table-child-content) .mud-input-text{margin-top:0 !important}.mud-data-grid .mud-table-cell .column-header{display:flex;align-items:center;justify-content:space-between}.mud-data-grid .mud-table-cell .column-header .sortable-column-header{width:100%}@media(hover: hover)and (pointer: fine){.mud-data-grid .mud-table-cell .column-header:hover .column-options .sort-direction-icon,.mud-data-grid .mud-table-cell .column-header:hover .column-options .column-options-icon,.mud-data-grid .mud-table-cell .column-header:hover .column-options .drag-icon-options{opacity:.8;color:var(--mud-palette-action-default)}.mud-data-grid .mud-table-cell .column-header:hover .column-options .mud-menu .mud-icon-button-label{opacity:1;color:var(--mud-palette-action-default)}}.mud-data-grid .mud-table-cell .column-header .column-options{display:inline-flex;align-items:center;flex-direction:inherit;justify-content:flex-start}.mud-data-grid .mud-table-cell .column-header .sort-direction-icon{font-size:18px;margin-left:4px;margin-inline-start:4px;margin-inline-end:unset;user-select:none;transition:opacity 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,transform 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;opacity:0}.mud-data-grid .mud-table-cell .column-header .sort-direction-icon.mud-direction-desc{opacity:1;transform:rotate(180deg)}.mud-data-grid .mud-table-cell .column-header .sort-direction-icon.mud-direction-asc{opacity:1;transform:rotate(0deg)}.mud-data-grid .mud-table-cell .column-header .mud-sort-index{transform:scale(0.9) translate(-2px, -2px)}.mud-data-grid .mud-table-cell .column-header .column-options .mud-menu .mud-icon-button-label{user-select:none;transition:opacity 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,transform 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;opacity:0}.mud-data-grid .mud-table-cell .mud-resizer{position:absolute;top:0;right:0;width:8px;cursor:col-resize;user-select:none}.mud-application-layout-rtl .mud-data-grid .mud-table-cell .mud-resizer{right:auto;left:0}@media(hover: hover)and (pointer: fine){.mud-data-grid .mud-table-cell .mud-resizer:hover{border-right:2px solid var(--mud-palette-primary)}}.mud-data-grid .mud-table-cell .mud-resizing{border-right:2px solid var(--mud-palette-primary)}.mud-data-grid .mud-table-cell.mud-datagrid-group{background-color:var(--mud-palette-background-gray)}.mud-data-grid .mud-table-cell.mud-row-group-indented-2{padding-left:48px !important}.mud-data-grid .mud-table-cell.mud-row-group-indented-3{padding-left:96px !important}.mud-data-grid .mud-table-cell.mud-row-group-indented-4{padding-left:144px !important}.mud-data-grid .mud-table-cell.mud-row-group-indented-5{padding-left:192px !important}@media(hover: hover)and (pointer: fine){.mud-data-grid-columns-panel:hover .column-options .sort-direction-icon,.mud-data-grid-columns-panel:hover .column-options .column-options-icon,.mud-data-grid-columns-panel:hover .column-options .drag-icon-options{opacity:.8;color:var(--mud-palette-action-default)}.mud-data-grid-columns-panel:hover .column-options .mud-menu .mud-icon-button-label{opacity:1;color:var(--mud-palette-action-default)}}.mud-data-grid-columns-panel .sort-direction-icon{font-size:18px;margin-left:4px;margin-inline-start:4px;margin-inline-end:unset;user-select:none;transition:opacity 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,transform 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}.mud-data-grid-columns-panel .sort-direction-icon.mud-direction-desc{opacity:1;transform:rotate(180deg)}.mud-data-grid-columns-panel .sort-direction-icon.mud-direction-asc{opacity:1;transform:rotate(0deg)}.mud-data-grid-columns-panel .mud-sort-index{transform:scale(0.9) translate(-2px, -2px)}.mud-data-grid-columns-panel .drag-icon-options{transition:opacity 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,transform 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;opacity:1;cursor:grab}.mud-data-grid-columns-panel .mud-drop-item-preview-start{z-index:0}.mud-toggle-group{display:grid;overflow:hidden;box-sizing:border-box;border-radius:var(--mud-default-borderradius)}.mud-toggle-group>.mud-toggle-item{box-shadow:none;border-width:inherit;border-color:inherit;border-radius:0}.mud-toggle-group-outlined{border-width:1px;border-color:rgb(from var(--mud-palette-text-primary) r g b/var(--mud-palette-border-opacity))}.mud-toggle-group-outlined.mud-toggle-group-primary{border-color:rgb(from var(--mud-palette-primary) r g b/var(--mud-palette-border-opacity))}.mud-toggle-group-outlined.mud-toggle-group-secondary{border-color:rgb(from var(--mud-palette-secondary) r g b/var(--mud-palette-border-opacity))}.mud-toggle-group-outlined.mud-toggle-group-tertiary{border-color:rgb(from var(--mud-palette-tertiary) r g b/var(--mud-palette-border-opacity))}.mud-toggle-group-outlined.mud-toggle-group-info{border-color:rgb(from var(--mud-palette-info) r g b/var(--mud-palette-border-opacity))}.mud-toggle-group-outlined.mud-toggle-group-success{border-color:rgb(from var(--mud-palette-success) r g b/var(--mud-palette-border-opacity))}.mud-toggle-group-outlined.mud-toggle-group-warning{border-color:rgb(from var(--mud-palette-warning) r g b/var(--mud-palette-border-opacity))}.mud-toggle-group-outlined.mud-toggle-group-error{border-color:rgb(from var(--mud-palette-error) r g b/var(--mud-palette-border-opacity))}.mud-toggle-group-outlined.mud-toggle-group-dark{border-color:rgb(from var(--mud-palette-dark) r g b/var(--mud-palette-border-opacity))}.mud-toggle-group-outlined.mud-toggle-group-horizontal:not(.mud-toggle-group-rtl)>.mud-toggle-item:not(:first-child),.mud-toggle-group-outlined.mud-toggle-group-horizontal:not(.mud-toggle-group-rtl)>:not(:first-child) .mud-toggle-item{margin-left:-1px}.mud-toggle-group-outlined.mud-toggle-group-horizontal:not(.mud-toggle-group-rtl)>.mud-toggle-item:not(:first-child).mud-toggle-item-delimiter,.mud-toggle-group-outlined.mud-toggle-group-horizontal:not(.mud-toggle-group-rtl)>:not(:first-child) .mud-toggle-item.mud-toggle-item-delimiter{border-left-style:solid !important}.mud-toggle-group-outlined.mud-toggle-group-horizontal.mud-toggle-group-rtl>.mud-toggle-item:not(:last-child),.mud-toggle-group-outlined.mud-toggle-group-horizontal.mud-toggle-group-rtl>:not(:last-child) .mud-toggle-item{margin-left:-1px}.mud-toggle-group-outlined.mud-toggle-group-horizontal.mud-toggle-group-rtl>.mud-toggle-item:not(:last-child).mud-toggle-item-delimiter,.mud-toggle-group-outlined.mud-toggle-group-horizontal.mud-toggle-group-rtl>:not(:last-child) .mud-toggle-item.mud-toggle-item-delimiter{border-left-style:solid !important}.mud-toggle-group-outlined.mud-toggle-group-vertical>.mud-toggle-item:not(:first-child),.mud-toggle-group-outlined.mud-toggle-group-vertical>:not(:first-child) .mud-toggle-item{margin-top:-1px}.mud-toggle-group-outlined.mud-toggle-group-vertical>.mud-toggle-item:not(:first-child).mud-toggle-item-delimiter,.mud-toggle-group-outlined.mud-toggle-group-vertical>:not(:first-child) .mud-toggle-item.mud-toggle-item-delimiter{border-top-style:solid !important}.mud-toggle-item{padding:6px;min-width:auto;border-style:none !important;display:flex;justify-content:center}.mud-toggle-item>.mud-button-label{min-height:20px}.mud-toggle-item .mud-toggle-item-check-icon{margin:0 6px;font-size:20px}.mud-toggle-item-size-small{padding:4px}.mud-toggle-item-size-small .mud-toggle-item-check-icon{margin:0 4px;font-size:18px}.mud-toggle-item-size-large{padding:8px}.mud-toggle-item-size-large .mud-toggle-item-check-icon{margin:0 8px;font-size:22px}.mud-toggle-item-fixed>.mud-button-label:has(>.mud-toggle-item-check-icon){display:grid;grid-template-columns:1fr repeat(3, auto) 1fr}.mud-toggle-item-check-icon{justify-self:start}.mud-toggle-item-content{display:contents}.mud-stepper .mud-stepper-nav .mud-step{padding:24px;position:relative;cursor:default;pointer-events:none;user-select:text}.mud-stepper .mud-stepper-nav .mud-step.mud-clickable{cursor:pointer;pointer-events:auto;user-select:none;transition:background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}@media(hover: hover)and (pointer: fine){.mud-stepper .mud-stepper-nav .mud-step.mud-clickable:hover{background-color:var(--mud-palette-action-default-hover)}}.mud-stepper .mud-stepper-nav .mud-step.mud-clickable:focus-visible,.mud-stepper .mud-stepper-nav .mud-step.mud-clickable:active{background-color:var(--mud-palette-action-default-hover)}.mud-stepper .mud-stepper-nav .mud-step:disabled .mud-step-label-icon{background-color:var(--mud-palette-lines-default) !important;color:var(--mud-palette-text-disabled) !important}.mud-stepper .mud-stepper-nav .mud-step:disabled .mud-step-label-content{color:var(--mud-palette-text-disabled) !important}.mud-stepper .mud-stepper-nav .mud-step .mud-step-label{display:flex;align-items:center;flex-direction:row;height:100%;gap:8px}.mud-stepper .mud-stepper-nav .mud-step .mud-step-label .mud-step-label-icon{display:flex;flex-shrink:0;color:var(--mud-palette-white);border-radius:50%;background-color:var(--mud-palette-text-disabled);height:24px;width:24px;align-items:center;justify-content:center;font-size:12px;letter-spacing:0;text-indent:0;white-space:nowrap}.mud-stepper .mud-stepper-nav .mud-step .mud-step-label .mud-step-label-icon .mud-typography{line-height:1}.mud-stepper .mud-stepper-nav .mud-step .mud-step-label .mud-step-label-content{width:100%;color:var(--mud-palette-text-secondary);--mud-ripple-color: var(--mud-palette-text-secondary);text-align:start}.mud-stepper .mud-stepper-nav .mud-step .mud-step-label .mud-step-label-content-title{line-height:var(--mud-typography-body2-lineheight)}.mud-stepper .mud-stepper-nav .mud-step.active .mud-step-label-content{color:var(--mud-palette-text-primary);--mud-ripple-color: var(--mud-palette-text-primary)}.mud-stepper .mud-stepper-nav.mud-stepper-nav-scrollable{overflow:auto}.mud-stepper .mud-stepper-nav.mud-stepper-nav-scrollable .mud-step{min-width:fit-content}.mud-stepper .mud-stepper-nav.mud-stepper-nav-scrollable .mud-stepper-nav-connector{min-width:32px}.mud-stepper .mud-stepper-content{padding:0 24px}.mud-stepper .mud-stepper-nav-connector{flex:1 1 auto}.mud-stepper .mud-stepper-nav-connector .mud-stepper-nav-connector-line{display:block;border-color:var(--mud-palette-lines-inputs)}.mud-stepper.mud-stepper__horizontal .mud-stepper-nav{display:flex}.mud-stepper.mud-stepper__horizontal.mud-stepper__center-labels .mud-step{flex-basis:175px}.mud-stepper.mud-stepper__horizontal.mud-stepper__center-labels .mud-step-label{flex-direction:column;justify-content:flex-start;align-items:center}.mud-stepper.mud-stepper__horizontal.mud-stepper__center-labels .mud-step-label .mud-step-label-icon{margin-inline-end:0px !important}.mud-stepper.mud-stepper__horizontal.mud-stepper__center-labels .mud-step-label .mud-step-label-content{margin-top:12px;text-align:center}.mud-stepper.mud-stepper__horizontal.mud-stepper__center-labels .mud-stepper-nav-connector{margin:35px -67px 0;align-self:flex-start}.mud-stepper.mud-stepper__horizontal .mud-stepper-nav-connector{align-self:center;margin:0 -16px}.mud-stepper.mud-stepper__horizontal .mud-stepper-nav-connector .mud-stepper-nav-connector-line{border-top-style:solid;border-top-width:1px}.mud-stepper.mud-stepper__vertical .mud-stepper-nav{padding:8px 0px}.mud-stepper.mud-stepper__vertical .mud-step{padding:0 16px}.mud-stepper.mud-stepper__vertical .mud-step .mud-step-label{padding:8px 0px}.mud-stepper.mud-stepper__vertical .mud-stepper-nav-connector{margin-inline-start:28px;margin-inline-end:0}.mud-stepper.mud-stepper__vertical .mud-stepper-nav-connector .mud-stepper-nav-connector-line{border-inline-start:1px solid #bdbdbd;min-height:24px}.mud-stepper.mud-stepper__vertical .mud-stepper-content{margin-inline-start:28px;margin-inline-end:0;padding-inline-start:20px;padding-inline-end:0;border-inline-start:1px solid var(--mud-palette-lines-inputs)}.mud-stepper-step-button{display:inline-flex;-moz-box-align:center;align-items:center;-moz-box-pack:center;justify-content:center;position:relative;background-color:rgba(0,0,0,0);outline:0px;border:0px;border-radius:0px;cursor:pointer;user-select:none;vertical-align:middle;appearance:none;text-decoration:none;color:inherit;width:100%;padding:24px 16px;margin:-24px -16px;box-sizing:content-box}.mud-swipearea{touch-action:none}.rounded-0{border-radius:0 !important}.rounded-t-0{border-top-left-radius:0 !important;border-top-right-radius:0 !important}.rounded-r-0,.rounded-e-0{border-top-right-radius:0 !important;border-bottom-right-radius:0 !important}.rounded-b-0{border-bottom-right-radius:0 !important;border-bottom-left-radius:0 !important}.rounded-l-0,.rounded-s-0{border-top-left-radius:0 !important;border-bottom-left-radius:0 !important}.rounded-tl-0,.rounded-ts-0{border-top-left-radius:0 !important}.rounded-tr-0,.rounded-te-0{border-top-right-radius:0 !important}.rounded-br-0,.rounded-be-0{border-bottom-right-radius:0 !important}.rounded-bl-0,.rounded-bs-0{border-bottom-left-radius:0 !important}.mud-application-layout-rtl .rounded-s-0{border-top-right-radius:0 !important;border-bottom-right-radius:0 !important;border-top-left-radius:0 !important;border-bottom-left-radius:0 !important}.mud-application-layout-rtl .rounded-e-0{border-top-left-radius:0 !important;border-bottom-left-radius:0 !important;border-top-right-radius:0 !important;border-bottom-right-radius:0 !important}.mud-application-layout-rtl .rounded-ts-0{border-top-right-radius:0 !important;border-top-left-radius:0 !important}.mud-application-layout-rtl .rounded-te-0{border-top-left-radius:0 !important;border-top-right-radius:0 !important}.mud-application-layout-rtl .rounded-bs-0{border-bottom-right-radius:0 !important;border-bottom-left-radius:0 !important}.mud-application-layout-rtl .rounded-be-0{border-bottom-left-radius:0 !important;border-bottom-right-radius:0 !important}.rounded-sm{border-radius:2px !important}.rounded-t-sm{border-top-left-radius:2px !important;border-top-right-radius:2px !important}.rounded-r-sm,.rounded-e-sm{border-top-right-radius:2px !important;border-bottom-right-radius:2px !important}.rounded-b-sm{border-bottom-right-radius:2px !important;border-bottom-left-radius:2px !important}.rounded-l-sm,.rounded-s-sm{border-top-left-radius:2px !important;border-bottom-left-radius:2px !important}.rounded-tl-sm,.rounded-ts-sm{border-top-left-radius:2px !important}.rounded-tr-sm,.rounded-te-sm{border-top-right-radius:2px !important}.rounded-br-sm,.rounded-be-sm{border-bottom-right-radius:2px !important}.rounded-bl-sm,.rounded-bs-sm{border-bottom-left-radius:2px !important}.mud-application-layout-rtl .rounded-s-sm{border-top-right-radius:2px !important;border-bottom-right-radius:2px !important;border-top-left-radius:0 !important;border-bottom-left-radius:0 !important}.mud-application-layout-rtl .rounded-e-sm{border-top-left-radius:2px !important;border-bottom-left-radius:2px !important;border-top-right-radius:0 !important;border-bottom-right-radius:0 !important}.mud-application-layout-rtl .rounded-ts-sm{border-top-right-radius:2px !important;border-top-left-radius:0 !important}.mud-application-layout-rtl .rounded-te-sm{border-top-left-radius:2px !important;border-top-right-radius:0 !important}.mud-application-layout-rtl .rounded-bs-sm{border-bottom-right-radius:2px !important;border-bottom-left-radius:0 !important}.mud-application-layout-rtl .rounded-be-sm{border-bottom-left-radius:2px !important;border-bottom-right-radius:0 !important}.rounded-lg{border-radius:8px !important}.rounded-t-lg{border-top-left-radius:8px !important;border-top-right-radius:8px !important}.rounded-r-lg,.rounded-e-lg{border-top-right-radius:8px !important;border-bottom-right-radius:8px !important}.rounded-b-lg{border-bottom-right-radius:8px !important;border-bottom-left-radius:8px !important}.rounded-l-lg,.rounded-s-lg{border-top-left-radius:8px !important;border-bottom-left-radius:8px !important}.rounded-tl-lg,.rounded-ts-lg{border-top-left-radius:8px !important}.rounded-tr-lg,.rounded-te-lg{border-top-right-radius:8px !important}.rounded-br-lg,.rounded-be-lg{border-bottom-right-radius:8px !important}.rounded-bl-lg,.rounded-bs-lg{border-bottom-left-radius:8px !important}.mud-application-layout-rtl .rounded-s-lg{border-top-right-radius:8px !important;border-bottom-right-radius:8px !important;border-top-left-radius:0 !important;border-bottom-left-radius:0 !important}.mud-application-layout-rtl .rounded-e-lg{border-top-left-radius:8px !important;border-bottom-left-radius:8px !important;border-top-right-radius:0 !important;border-bottom-right-radius:0 !important}.mud-application-layout-rtl .rounded-ts-lg{border-top-right-radius:8px !important;border-top-left-radius:0 !important}.mud-application-layout-rtl .rounded-te-lg{border-top-left-radius:8px !important;border-top-right-radius:0 !important}.mud-application-layout-rtl .rounded-bs-lg{border-bottom-right-radius:8px !important;border-bottom-left-radius:0 !important}.mud-application-layout-rtl .rounded-be-lg{border-bottom-left-radius:8px !important;border-bottom-right-radius:0 !important}.rounded-xl{border-radius:24px !important}.rounded-t-xl{border-top-left-radius:24px !important;border-top-right-radius:24px !important}.rounded-r-xl,.rounded-e-xl{border-top-right-radius:24px !important;border-bottom-right-radius:24px !important}.rounded-b-xl{border-bottom-right-radius:24px !important;border-bottom-left-radius:24px !important}.rounded-l-xl,.rounded-s-xl{border-top-left-radius:24px !important;border-bottom-left-radius:24px !important}.rounded-tl-xl,.rounded-ts-xl{border-top-left-radius:24px !important}.rounded-tr-xl,.rounded-te-xl{border-top-right-radius:24px !important}.rounded-br-xl,.rounded-be-xl{border-bottom-right-radius:24px !important}.rounded-bl-xl,.rounded-bs-xl{border-bottom-left-radius:24px !important}.mud-application-layout-rtl .rounded-s-xl{border-top-right-radius:24px !important;border-bottom-right-radius:24px !important;border-top-left-radius:0 !important;border-bottom-left-radius:0 !important}.mud-application-layout-rtl .rounded-e-xl{border-top-left-radius:24px !important;border-bottom-left-radius:24px !important;border-top-right-radius:0 !important;border-bottom-right-radius:0 !important}.mud-application-layout-rtl .rounded-ts-xl{border-top-right-radius:24px !important;border-top-left-radius:0 !important}.mud-application-layout-rtl .rounded-te-xl{border-top-left-radius:24px !important;border-top-right-radius:0 !important}.mud-application-layout-rtl .rounded-bs-xl{border-bottom-right-radius:24px !important;border-bottom-left-radius:0 !important}.mud-application-layout-rtl .rounded-be-xl{border-bottom-left-radius:24px !important;border-bottom-right-radius:0 !important}.rounded{border-radius:var(--mud-default-borderradius) !important}.rounded-t{border-top-left-radius:var(--mud-default-borderradius) !important;border-top-right-radius:var(--mud-default-borderradius) !important}.rounded-r,.rounded-e{border-top-right-radius:var(--mud-default-borderradius) !important;border-bottom-right-radius:var(--mud-default-borderradius) !important}.rounded-b{border-bottom-right-radius:var(--mud-default-borderradius) !important;border-bottom-left-radius:var(--mud-default-borderradius) !important}.rounded-l,.rounded-s{border-top-left-radius:var(--mud-default-borderradius) !important;border-bottom-left-radius:var(--mud-default-borderradius) !important}.rounded-tl,.rounded-ts{border-top-left-radius:var(--mud-default-borderradius) !important}.rounded-tr,.rounded-te{border-top-right-radius:var(--mud-default-borderradius) !important}.rounded-br,.rounded-be{border-bottom-right-radius:var(--mud-default-borderradius) !important}.rounded-bl,.rounded-bs{border-bottom-left-radius:var(--mud-default-borderradius) !important}.mud-application-layout-rtl .rounded-s{border-top-right-radius:var(--mud-default-borderradius) !important;border-bottom-right-radius:var(--mud-default-borderradius) !important;border-top-left-radius:0 !important;border-bottom-left-radius:0 !important}.mud-application-layout-rtl .rounded-e{border-top-left-radius:var(--mud-default-borderradius) !important;border-bottom-left-radius:var(--mud-default-borderradius) !important;border-top-right-radius:0 !important;border-bottom-right-radius:0 !important}.mud-application-layout-rtl .rounded-ts{border-top-right-radius:var(--mud-default-borderradius) !important;border-top-left-radius:0 !important}.mud-application-layout-rtl .rounded-te{border-top-left-radius:var(--mud-default-borderradius) !important;border-top-right-radius:0 !important}.mud-application-layout-rtl .rounded-bs{border-bottom-right-radius:var(--mud-default-borderradius) !important;border-bottom-left-radius:0 !important}.mud-application-layout-rtl .rounded-be{border-bottom-left-radius:var(--mud-default-borderradius) !important;border-bottom-right-radius:0 !important}.rounded-circle{border-radius:50% !important}.rounded-pill{border-radius:9999px !important}.border-solid{border-style:solid !important}.border-dashed{border-style:dashed !important}.border-dotted{border-style:dotted !important}.border-double{border-style:double !important}.border-hidden{border-style:hidden !important}.border-none{border-style:none !important}.border-0{border-width:0px !important}.border-t-0{border-top-width:0px !important}.border-r-0{border-right-width:0px !important}.border-b-0{border-bottom-width:0px !important}.border-l-0{border-left-width:0px !important}.border-x-0{border-left-width:0px !important;border-right-width:0px !important}.border-y-0{border-top-width:0px !important;border-bottom-width:0px !important}.border{border-width:1px !important}.border-t{border-top-width:1px !important}.border-r{border-right-width:1px !important}.border-b{border-bottom-width:1px !important}.border-l{border-left-width:1px !important}.border-x{border-left-width:1px !important;border-right-width:1px !important}.border-y{border-top-width:1px !important;border-bottom-width:1px !important}.border-2{border-width:2px !important}.border-t-2{border-top-width:2px !important}.border-r-2{border-right-width:2px !important}.border-b-2{border-bottom-width:2px !important}.border-l-2{border-left-width:2px !important}.border-x-2{border-left-width:2px !important;border-right-width:2px !important}.border-y-2{border-top-width:2px !important;border-bottom-width:2px !important}.border-4{border-width:4px !important}.border-t-4{border-top-width:4px !important}.border-r-4{border-right-width:4px !important}.border-b-4{border-bottom-width:4px !important}.border-l-4{border-left-width:4px !important}.border-x-4{border-left-width:4px !important;border-right-width:4px !important}.border-y-4{border-top-width:4px !important;border-bottom-width:4px !important}.border-8{border-width:8px !important}.border-t-8{border-top-width:8px !important}.border-r-8{border-right-width:8px !important}.border-b-8{border-bottom-width:8px !important}.border-l-8{border-left-width:8px !important}.border-x-8{border-left-width:8px !important;border-right-width:8px !important}.border-y-8{border-top-width:8px !important;border-bottom-width:8px !important}.outline-none{outline-style:none}.outline-solid{outline-style:solid}.outline-dashed{outline-style:dashed}.outline-dotted{outline-style:dotted}.outline-double{outline-style:double}.outline-hidden{outline-style:hidden}.flex-1{flex:1 1 0% !important}.flex-auto{flex:1 1 auto !important}.flex-initial{flex:0 1 auto !important}.flex-none{flex:none !important}.flex-row{flex-direction:row !important}.flex-row-reverse{flex-direction:row-reverse !important}.flex-column{flex-direction:column !important}.flex-column-reverse{flex-direction:column-reverse !important}.flex-grow-0{flex-grow:0 !important}.flex-grow-1{flex-grow:1 !important}.flex-grow-start>*:first-child{flex-grow:1 !important}.flex-grow-end>*:last-child{flex-grow:1 !important}.flex-grow-start-and-end>:first-child,.flex-grow-start-and-end>:last-child{flex-grow:1 !important}.flex-grow-middle>*:not(:first-child):not(:last-child){flex-grow:1 !important}.flex-grow-all>*{flex-grow:1 !important}.flex-shrink-0{flex-shrink:0 !important}.flex-shrink-1{flex-shrink:1 !important}.flex-wrap{flex-wrap:wrap !important}.flex-nowrap{flex-wrap:nowrap !important}.flex-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-start{justify-content:flex-start !important}.justify-end{justify-content:flex-end !important}.justify-center{justify-content:center !important}.justify-space-between{justify-content:space-between !important}.justify-space-around{justify-content:space-around !important}.justify-space-evenly{justify-content:space-evenly !important}.order-first{order:-9999 !important}.order-last{order:9999 !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-6{order:6 !important}.order-7{order:7 !important}.order-8{order:8 !important}.order-9{order:9 !important}.order-10{order:10 !important}.order-11{order:11 !important}.order-12{order:12 !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-space-between{align-content:space-between !important}.align-content-space-around{align-content:space-around !important}.align-content-stretch{align-content:stretch !important}.align-start{align-items:flex-start !important}.align-end{align-items:flex-end !important}.align-center{align-items:center !important}.align-baseline{align-items:baseline !important}.align-stretch{align-items: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-stretch{align-self:stretch !important}.gap-0{gap:0px}.gap-x-0{column-gap:0px}.gap-y-0{row-gap:0px}.gap-1{gap:4px}.gap-x-1{column-gap:4px}.gap-y-1{row-gap:4px}.gap-2{gap:8px}.gap-x-2{column-gap:8px}.gap-y-2{row-gap:8px}.gap-3{gap:12px}.gap-x-3{column-gap:12px}.gap-y-3{row-gap:12px}.gap-4{gap:16px}.gap-x-4{column-gap:16px}.gap-y-4{row-gap:16px}.gap-5{gap:20px}.gap-x-5{column-gap:20px}.gap-y-5{row-gap:20px}.gap-6{gap:24px}.gap-x-6{column-gap:24px}.gap-y-6{row-gap:24px}.gap-7{gap:28px}.gap-x-7{column-gap:28px}.gap-y-7{row-gap:28px}.gap-8{gap:32px}.gap-x-8{column-gap:32px}.gap-y-8{row-gap:32px}.gap-9{gap:36px}.gap-x-9{column-gap:36px}.gap-y-9{row-gap:36px}.gap-10{gap:40px}.gap-x-10{column-gap:40px}.gap-y-10{row-gap:40px}.gap-11{gap:44px}.gap-x-11{column-gap:44px}.gap-y-11{row-gap:44px}.gap-12{gap:48px}.gap-x-12{column-gap:48px}.gap-y-12{row-gap:48px}.gap-13{gap:52px}.gap-x-13{column-gap:52px}.gap-y-13{row-gap:52px}.gap-14{gap:56px}.gap-x-14{column-gap:56px}.gap-y-14{row-gap:56px}.gap-15{gap:60px}.gap-x-15{column-gap:60px}.gap-y-15{row-gap:60px}.gap-16{gap:64px}.gap-x-16{column-gap:64px}.gap-y-16{row-gap:64px}.gap-17{gap:68px}.gap-x-17{column-gap:68px}.gap-y-17{row-gap:68px}.gap-18{gap:72px}.gap-x-18{column-gap:72px}.gap-y-18{row-gap:72px}.gap-19{gap:76px}.gap-x-19{column-gap:76px}.gap-y-19{row-gap:76px}.gap-20{gap:80px}.gap-x-20{column-gap:80px}.gap-y-20{row-gap:80px}@media(min-width: 600px){.flex-sm-1{flex:1 1 0% !important}.flex-sm-auto{flex:1 1 auto !important}.flex-sm-initial{flex:0 1 auto !important}.flex-sm-none{flex:none !important}.flex-sm-row{flex-direction:row !important}.flex-sm-row-reverse{flex-direction:row-reverse !important}.flex-sm-column{flex-direction:column !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-grow-start>*:first-child{flex-grow:1 !important}.flex-sm-grow-end>*:last-child{flex-grow:1 !important}.flex-sm-grow-start-and-end>:first-child,.flex-sm-grow-start-and-end>:last-child{flex-grow:1 !important}.flex-sm-grow-middle>*:not(:first-child):not(:last-child){flex-grow:1 !important}.flex-sm-grow-all>*{flex-grow:1 !important}.flex-sm-shrink-0{flex-shrink:0 !important}.flex-sm-shrink-1{flex-shrink:1 !important}.flex-sm-wrap{flex-wrap:wrap !important}.flex-sm-nowrap{flex-wrap:nowrap !important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-sm-start{justify-content:flex-start !important}.justify-sm-end{justify-content:flex-end !important}.justify-sm-center{justify-content:center !important}.justify-sm-space-between{justify-content:space-between !important}.justify-sm-space-around{justify-content:space-around !important}.justify-sm-space-evenly{justify-content:space-evenly !important}.order-sm-first{order:-9999 !important}.order-sm-last{order:9999 !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-6{order:6 !important}.order-sm-7{order:7 !important}.order-sm-8{order:8 !important}.order-sm-9{order:9 !important}.order-sm-10{order:10 !important}.order-sm-11{order:11 !important}.order-sm-12{order:12 !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-space-between{align-content:space-between !important}.align-content-sm-space-around{align-content:space-around !important}.align-content-sm-stretch{align-content:stretch !important}.align-sm-start{align-items:flex-start !important}.align-sm-end{align-items:flex-end !important}.align-sm-center{align-items:center !important}.align-sm-baseline{align-items:baseline !important}.align-sm-stretch{align-items: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-stretch{align-self:stretch !important}.gap-sm-0{gap:0px}.gap-x-sm-0{column-gap:0px}.gap-y-sm-0{row-gap:0px}.gap-sm-1{gap:4px}.gap-x-sm-1{column-gap:4px}.gap-y-sm-1{row-gap:4px}.gap-sm-2{gap:8px}.gap-x-sm-2{column-gap:8px}.gap-y-sm-2{row-gap:8px}.gap-sm-3{gap:12px}.gap-x-sm-3{column-gap:12px}.gap-y-sm-3{row-gap:12px}.gap-sm-4{gap:16px}.gap-x-sm-4{column-gap:16px}.gap-y-sm-4{row-gap:16px}.gap-sm-5{gap:20px}.gap-x-sm-5{column-gap:20px}.gap-y-sm-5{row-gap:20px}.gap-sm-6{gap:24px}.gap-x-sm-6{column-gap:24px}.gap-y-sm-6{row-gap:24px}.gap-sm-7{gap:28px}.gap-x-sm-7{column-gap:28px}.gap-y-sm-7{row-gap:28px}.gap-sm-8{gap:32px}.gap-x-sm-8{column-gap:32px}.gap-y-sm-8{row-gap:32px}.gap-sm-9{gap:36px}.gap-x-sm-9{column-gap:36px}.gap-y-sm-9{row-gap:36px}.gap-sm-10{gap:40px}.gap-x-sm-10{column-gap:40px}.gap-y-sm-10{row-gap:40px}.gap-sm-11{gap:44px}.gap-x-sm-11{column-gap:44px}.gap-y-sm-11{row-gap:44px}.gap-sm-12{gap:48px}.gap-x-sm-12{column-gap:48px}.gap-y-sm-12{row-gap:48px}.gap-sm-13{gap:52px}.gap-x-sm-13{column-gap:52px}.gap-y-sm-13{row-gap:52px}.gap-sm-14{gap:56px}.gap-x-sm-14{column-gap:56px}.gap-y-sm-14{row-gap:56px}.gap-sm-15{gap:60px}.gap-x-sm-15{column-gap:60px}.gap-y-sm-15{row-gap:60px}.gap-sm-16{gap:64px}.gap-x-sm-16{column-gap:64px}.gap-y-sm-16{row-gap:64px}.gap-sm-17{gap:68px}.gap-x-sm-17{column-gap:68px}.gap-y-sm-17{row-gap:68px}.gap-sm-18{gap:72px}.gap-x-sm-18{column-gap:72px}.gap-y-sm-18{row-gap:72px}.gap-sm-19{gap:76px}.gap-x-sm-19{column-gap:76px}.gap-y-sm-19{row-gap:76px}.gap-sm-20{gap:80px}.gap-x-sm-20{column-gap:80px}.gap-y-sm-20{row-gap:80px}}@media(min-width: 960px){.flex-md-1{flex:1 1 0% !important}.flex-md-auto{flex:1 1 auto !important}.flex-md-initial{flex:0 1 auto !important}.flex-md-none{flex:none !important}.flex-md-row{flex-direction:row !important}.flex-md-row-reverse{flex-direction:row-reverse !important}.flex-md-column{flex-direction:column !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-grow-start>*:first-child{flex-grow:1 !important}.flex-md-grow-end>*:last-child{flex-grow:1 !important}.flex-md-grow-start-and-end>:first-child,.flex-md-grow-start-and-end>:last-child{flex-grow:1 !important}.flex-md-grow-middle>*:not(:first-child):not(:last-child){flex-grow:1 !important}.flex-md-grow-all>*{flex-grow:1 !important}.flex-md-shrink-0{flex-shrink:0 !important}.flex-md-shrink-1{flex-shrink:1 !important}.flex-md-wrap{flex-wrap:wrap !important}.flex-md-nowrap{flex-wrap:nowrap !important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-md-start{justify-content:flex-start !important}.justify-md-end{justify-content:flex-end !important}.justify-md-center{justify-content:center !important}.justify-md-space-between{justify-content:space-between !important}.justify-md-space-around{justify-content:space-around !important}.justify-md-space-evenly{justify-content:space-evenly !important}.order-md-first{order:-9999 !important}.order-md-last{order:9999 !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-6{order:6 !important}.order-md-7{order:7 !important}.order-md-8{order:8 !important}.order-md-9{order:9 !important}.order-md-10{order:10 !important}.order-md-11{order:11 !important}.order-md-12{order:12 !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-space-between{align-content:space-between !important}.align-content-md-space-around{align-content:space-around !important}.align-content-md-stretch{align-content:stretch !important}.align-md-start{align-items:flex-start !important}.align-md-end{align-items:flex-end !important}.align-md-center{align-items:center !important}.align-md-baseline{align-items:baseline !important}.align-md-stretch{align-items: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-stretch{align-self:stretch !important}.gap-md-0{gap:0px}.gap-x-md-0{column-gap:0px}.gap-y-md-0{row-gap:0px}.gap-md-1{gap:4px}.gap-x-md-1{column-gap:4px}.gap-y-md-1{row-gap:4px}.gap-md-2{gap:8px}.gap-x-md-2{column-gap:8px}.gap-y-md-2{row-gap:8px}.gap-md-3{gap:12px}.gap-x-md-3{column-gap:12px}.gap-y-md-3{row-gap:12px}.gap-md-4{gap:16px}.gap-x-md-4{column-gap:16px}.gap-y-md-4{row-gap:16px}.gap-md-5{gap:20px}.gap-x-md-5{column-gap:20px}.gap-y-md-5{row-gap:20px}.gap-md-6{gap:24px}.gap-x-md-6{column-gap:24px}.gap-y-md-6{row-gap:24px}.gap-md-7{gap:28px}.gap-x-md-7{column-gap:28px}.gap-y-md-7{row-gap:28px}.gap-md-8{gap:32px}.gap-x-md-8{column-gap:32px}.gap-y-md-8{row-gap:32px}.gap-md-9{gap:36px}.gap-x-md-9{column-gap:36px}.gap-y-md-9{row-gap:36px}.gap-md-10{gap:40px}.gap-x-md-10{column-gap:40px}.gap-y-md-10{row-gap:40px}.gap-md-11{gap:44px}.gap-x-md-11{column-gap:44px}.gap-y-md-11{row-gap:44px}.gap-md-12{gap:48px}.gap-x-md-12{column-gap:48px}.gap-y-md-12{row-gap:48px}.gap-md-13{gap:52px}.gap-x-md-13{column-gap:52px}.gap-y-md-13{row-gap:52px}.gap-md-14{gap:56px}.gap-x-md-14{column-gap:56px}.gap-y-md-14{row-gap:56px}.gap-md-15{gap:60px}.gap-x-md-15{column-gap:60px}.gap-y-md-15{row-gap:60px}.gap-md-16{gap:64px}.gap-x-md-16{column-gap:64px}.gap-y-md-16{row-gap:64px}.gap-md-17{gap:68px}.gap-x-md-17{column-gap:68px}.gap-y-md-17{row-gap:68px}.gap-md-18{gap:72px}.gap-x-md-18{column-gap:72px}.gap-y-md-18{row-gap:72px}.gap-md-19{gap:76px}.gap-x-md-19{column-gap:76px}.gap-y-md-19{row-gap:76px}.gap-md-20{gap:80px}.gap-x-md-20{column-gap:80px}.gap-y-md-20{row-gap:80px}}@media(min-width: 1280px){.flex-lg-1{flex:1 1 0% !important}.flex-lg-auto{flex:1 1 auto !important}.flex-lg-initial{flex:0 1 auto !important}.flex-lg-none{flex:none !important}.flex-lg-row{flex-direction:row !important}.flex-lg-row-reverse{flex-direction:row-reverse !important}.flex-lg-column{flex-direction:column !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-grow-start>*:first-child{flex-grow:1 !important}.flex-lg-grow-end>*:last-child{flex-grow:1 !important}.flex-lg-grow-start-and-end>:first-child,.flex-lg-grow-start-and-end>:last-child{flex-grow:1 !important}.flex-lg-grow-middle>*:not(:first-child):not(:last-child){flex-grow:1 !important}.flex-lg-grow-all>*{flex-grow:1 !important}.flex-lg-shrink-0{flex-shrink:0 !important}.flex-lg-shrink-1{flex-shrink:1 !important}.flex-lg-wrap{flex-wrap:wrap !important}.flex-lg-nowrap{flex-wrap:nowrap !important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-lg-start{justify-content:flex-start !important}.justify-lg-end{justify-content:flex-end !important}.justify-lg-center{justify-content:center !important}.justify-lg-space-between{justify-content:space-between !important}.justify-lg-space-around{justify-content:space-around !important}.justify-lg-space-evenly{justify-content:space-evenly !important}.order-lg-first{order:-9999 !important}.order-lg-last{order:9999 !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-6{order:6 !important}.order-lg-7{order:7 !important}.order-lg-8{order:8 !important}.order-lg-9{order:9 !important}.order-lg-10{order:10 !important}.order-lg-11{order:11 !important}.order-lg-12{order:12 !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-space-between{align-content:space-between !important}.align-content-lg-space-around{align-content:space-around !important}.align-content-lg-stretch{align-content:stretch !important}.align-lg-start{align-items:flex-start !important}.align-lg-end{align-items:flex-end !important}.align-lg-center{align-items:center !important}.align-lg-baseline{align-items:baseline !important}.align-lg-stretch{align-items: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-stretch{align-self:stretch !important}.gap-lg-0{gap:0px}.gap-x-lg-0{column-gap:0px}.gap-y-lg-0{row-gap:0px}.gap-lg-1{gap:4px}.gap-x-lg-1{column-gap:4px}.gap-y-lg-1{row-gap:4px}.gap-lg-2{gap:8px}.gap-x-lg-2{column-gap:8px}.gap-y-lg-2{row-gap:8px}.gap-lg-3{gap:12px}.gap-x-lg-3{column-gap:12px}.gap-y-lg-3{row-gap:12px}.gap-lg-4{gap:16px}.gap-x-lg-4{column-gap:16px}.gap-y-lg-4{row-gap:16px}.gap-lg-5{gap:20px}.gap-x-lg-5{column-gap:20px}.gap-y-lg-5{row-gap:20px}.gap-lg-6{gap:24px}.gap-x-lg-6{column-gap:24px}.gap-y-lg-6{row-gap:24px}.gap-lg-7{gap:28px}.gap-x-lg-7{column-gap:28px}.gap-y-lg-7{row-gap:28px}.gap-lg-8{gap:32px}.gap-x-lg-8{column-gap:32px}.gap-y-lg-8{row-gap:32px}.gap-lg-9{gap:36px}.gap-x-lg-9{column-gap:36px}.gap-y-lg-9{row-gap:36px}.gap-lg-10{gap:40px}.gap-x-lg-10{column-gap:40px}.gap-y-lg-10{row-gap:40px}.gap-lg-11{gap:44px}.gap-x-lg-11{column-gap:44px}.gap-y-lg-11{row-gap:44px}.gap-lg-12{gap:48px}.gap-x-lg-12{column-gap:48px}.gap-y-lg-12{row-gap:48px}.gap-lg-13{gap:52px}.gap-x-lg-13{column-gap:52px}.gap-y-lg-13{row-gap:52px}.gap-lg-14{gap:56px}.gap-x-lg-14{column-gap:56px}.gap-y-lg-14{row-gap:56px}.gap-lg-15{gap:60px}.gap-x-lg-15{column-gap:60px}.gap-y-lg-15{row-gap:60px}.gap-lg-16{gap:64px}.gap-x-lg-16{column-gap:64px}.gap-y-lg-16{row-gap:64px}.gap-lg-17{gap:68px}.gap-x-lg-17{column-gap:68px}.gap-y-lg-17{row-gap:68px}.gap-lg-18{gap:72px}.gap-x-lg-18{column-gap:72px}.gap-y-lg-18{row-gap:72px}.gap-lg-19{gap:76px}.gap-x-lg-19{column-gap:76px}.gap-y-lg-19{row-gap:76px}.gap-lg-20{gap:80px}.gap-x-lg-20{column-gap:80px}.gap-y-lg-20{row-gap:80px}}@media(min-width: 1920px){.flex-xl-1{flex:1 1 0% !important}.flex-xl-auto{flex:1 1 auto !important}.flex-xl-initial{flex:0 1 auto !important}.flex-xl-none{flex:none !important}.flex-xl-row{flex-direction:row !important}.flex-xl-row-reverse{flex-direction:row-reverse !important}.flex-xl-column{flex-direction:column !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-grow-start>*:first-child{flex-grow:1 !important}.flex-xl-grow-end>*:last-child{flex-grow:1 !important}.flex-xl-grow-start-and-end>:first-child,.flex-xl-grow-start-and-end>:last-child{flex-grow:1 !important}.flex-xl-grow-middle>*:not(:first-child):not(:last-child){flex-grow:1 !important}.flex-xl-grow-all>*{flex-grow:1 !important}.flex-xl-shrink-0{flex-shrink:0 !important}.flex-xl-shrink-1{flex-shrink:1 !important}.flex-xl-wrap{flex-wrap:wrap !important}.flex-xl-nowrap{flex-wrap:nowrap !important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-xl-start{justify-content:flex-start !important}.justify-xl-end{justify-content:flex-end !important}.justify-xl-center{justify-content:center !important}.justify-xl-space-between{justify-content:space-between !important}.justify-xl-space-around{justify-content:space-around !important}.justify-xl-space-evenly{justify-content:space-evenly !important}.order-xl-first{order:-9999 !important}.order-xl-last{order:9999 !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-6{order:6 !important}.order-xl-7{order:7 !important}.order-xl-8{order:8 !important}.order-xl-9{order:9 !important}.order-xl-10{order:10 !important}.order-xl-11{order:11 !important}.order-xl-12{order:12 !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-space-between{align-content:space-between !important}.align-content-xl-space-around{align-content:space-around !important}.align-content-xl-stretch{align-content:stretch !important}.align-xl-start{align-items:flex-start !important}.align-xl-end{align-items:flex-end !important}.align-xl-center{align-items:center !important}.align-xl-baseline{align-items:baseline !important}.align-xl-stretch{align-items: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-stretch{align-self:stretch !important}.gap-xl-0{gap:0px}.gap-x-xl-0{column-gap:0px}.gap-y-xl-0{row-gap:0px}.gap-xl-1{gap:4px}.gap-x-xl-1{column-gap:4px}.gap-y-xl-1{row-gap:4px}.gap-xl-2{gap:8px}.gap-x-xl-2{column-gap:8px}.gap-y-xl-2{row-gap:8px}.gap-xl-3{gap:12px}.gap-x-xl-3{column-gap:12px}.gap-y-xl-3{row-gap:12px}.gap-xl-4{gap:16px}.gap-x-xl-4{column-gap:16px}.gap-y-xl-4{row-gap:16px}.gap-xl-5{gap:20px}.gap-x-xl-5{column-gap:20px}.gap-y-xl-5{row-gap:20px}.gap-xl-6{gap:24px}.gap-x-xl-6{column-gap:24px}.gap-y-xl-6{row-gap:24px}.gap-xl-7{gap:28px}.gap-x-xl-7{column-gap:28px}.gap-y-xl-7{row-gap:28px}.gap-xl-8{gap:32px}.gap-x-xl-8{column-gap:32px}.gap-y-xl-8{row-gap:32px}.gap-xl-9{gap:36px}.gap-x-xl-9{column-gap:36px}.gap-y-xl-9{row-gap:36px}.gap-xl-10{gap:40px}.gap-x-xl-10{column-gap:40px}.gap-y-xl-10{row-gap:40px}.gap-xl-11{gap:44px}.gap-x-xl-11{column-gap:44px}.gap-y-xl-11{row-gap:44px}.gap-xl-12{gap:48px}.gap-x-xl-12{column-gap:48px}.gap-y-xl-12{row-gap:48px}.gap-xl-13{gap:52px}.gap-x-xl-13{column-gap:52px}.gap-y-xl-13{row-gap:52px}.gap-xl-14{gap:56px}.gap-x-xl-14{column-gap:56px}.gap-y-xl-14{row-gap:56px}.gap-xl-15{gap:60px}.gap-x-xl-15{column-gap:60px}.gap-y-xl-15{row-gap:60px}.gap-xl-16{gap:64px}.gap-x-xl-16{column-gap:64px}.gap-y-xl-16{row-gap:64px}.gap-xl-17{gap:68px}.gap-x-xl-17{column-gap:68px}.gap-y-xl-17{row-gap:68px}.gap-xl-18{gap:72px}.gap-x-xl-18{column-gap:72px}.gap-y-xl-18{row-gap:72px}.gap-xl-19{gap:76px}.gap-x-xl-19{column-gap:76px}.gap-y-xl-19{row-gap:76px}.gap-xl-20{gap:80px}.gap-x-xl-20{column-gap:80px}.gap-y-xl-20{row-gap:80px}}@media(min-width: 2560px){.flex-xxl-1{flex:1 1 0% !important}.flex-xxl-auto{flex:1 1 auto !important}.flex-xxl-initial{flex:0 1 auto !important}.flex-xxl-none{flex:none !important}.flex-xxl-row{flex-direction:row !important}.flex-xxl-row-reverse{flex-direction:row-reverse !important}.flex-xxl-column{flex-direction:column !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-grow-start>*:first-child{flex-grow:1 !important}.flex-xxl-grow-end>*:last-child{flex-grow:1 !important}.flex-xxl-grow-start-and-end>:first-child,.flex-xxl-grow-start-and-end>:last-child{flex-grow:1 !important}.flex-xxl-grow-middle>*:not(:first-child):not(:last-child){flex-grow:1 !important}.flex-xxl-grow-all>*{flex-grow:1 !important}.flex-xxl-shrink-0{flex-shrink:0 !important}.flex-xxl-shrink-1{flex-shrink:1 !important}.flex-xxl-wrap{flex-wrap:wrap !important}.flex-xxl-nowrap{flex-wrap:nowrap !important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-xxl-start{justify-content:flex-start !important}.justify-xxl-end{justify-content:flex-end !important}.justify-xxl-center{justify-content:center !important}.justify-xxl-space-between{justify-content:space-between !important}.justify-xxl-space-around{justify-content:space-around !important}.justify-xxl-space-evenly{justify-content:space-evenly !important}.order-xxl-first{order:-9999 !important}.order-xxl-last{order:9999 !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-6{order:6 !important}.order-xxl-7{order:7 !important}.order-xxl-8{order:8 !important}.order-xxl-9{order:9 !important}.order-xxl-10{order:10 !important}.order-xxl-11{order:11 !important}.order-xxl-12{order:12 !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-space-between{align-content:space-between !important}.align-content-xxl-space-around{align-content:space-around !important}.align-content-xxl-stretch{align-content:stretch !important}.align-xxl-start{align-items:flex-start !important}.align-xxl-end{align-items:flex-end !important}.align-xxl-center{align-items:center !important}.align-xxl-baseline{align-items:baseline !important}.align-xxl-stretch{align-items: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-stretch{align-self:stretch !important}.gap-xxl-0{gap:0px}.gap-x-xxl-0{column-gap:0px}.gap-y-xxl-0{row-gap:0px}.gap-xxl-1{gap:4px}.gap-x-xxl-1{column-gap:4px}.gap-y-xxl-1{row-gap:4px}.gap-xxl-2{gap:8px}.gap-x-xxl-2{column-gap:8px}.gap-y-xxl-2{row-gap:8px}.gap-xxl-3{gap:12px}.gap-x-xxl-3{column-gap:12px}.gap-y-xxl-3{row-gap:12px}.gap-xxl-4{gap:16px}.gap-x-xxl-4{column-gap:16px}.gap-y-xxl-4{row-gap:16px}.gap-xxl-5{gap:20px}.gap-x-xxl-5{column-gap:20px}.gap-y-xxl-5{row-gap:20px}.gap-xxl-6{gap:24px}.gap-x-xxl-6{column-gap:24px}.gap-y-xxl-6{row-gap:24px}.gap-xxl-7{gap:28px}.gap-x-xxl-7{column-gap:28px}.gap-y-xxl-7{row-gap:28px}.gap-xxl-8{gap:32px}.gap-x-xxl-8{column-gap:32px}.gap-y-xxl-8{row-gap:32px}.gap-xxl-9{gap:36px}.gap-x-xxl-9{column-gap:36px}.gap-y-xxl-9{row-gap:36px}.gap-xxl-10{gap:40px}.gap-x-xxl-10{column-gap:40px}.gap-y-xxl-10{row-gap:40px}.gap-xxl-11{gap:44px}.gap-x-xxl-11{column-gap:44px}.gap-y-xxl-11{row-gap:44px}.gap-xxl-12{gap:48px}.gap-x-xxl-12{column-gap:48px}.gap-y-xxl-12{row-gap:48px}.gap-xxl-13{gap:52px}.gap-x-xxl-13{column-gap:52px}.gap-y-xxl-13{row-gap:52px}.gap-xxl-14{gap:56px}.gap-x-xxl-14{column-gap:56px}.gap-y-xxl-14{row-gap:56px}.gap-xxl-15{gap:60px}.gap-x-xxl-15{column-gap:60px}.gap-y-xxl-15{row-gap:60px}.gap-xxl-16{gap:64px}.gap-x-xxl-16{column-gap:64px}.gap-y-xxl-16{row-gap:64px}.gap-xxl-17{gap:68px}.gap-x-xxl-17{column-gap:68px}.gap-y-xxl-17{row-gap:68px}.gap-xxl-18{gap:72px}.gap-x-xxl-18{column-gap:72px}.gap-y-xxl-18{row-gap:72px}.gap-xxl-19{gap:76px}.gap-x-xxl-19{column-gap:76px}.gap-y-xxl-19{row-gap:76px}.gap-xxl-20{gap:80px}.gap-x-xxl-20{column-gap:80px}.gap-y-xxl-20{row-gap:80px}}.cursor-auto{cursor:auto !important}.cursor-default{cursor:default !important}.cursor-pointer{cursor:pointer !important}.cursor-wait{cursor:wait !important}.cursor-text{cursor:text !important}.cursor-move{cursor:move !important}.cursor-help{cursor:help !important}.cursor-not-allowed{cursor:not-allowed !important}.cursor-none{cursor:none !important}.cursor-progress{cursor:progress !important}.cursor-cell{cursor:cell !important}.cursor-crosshair{cursor:crosshair !important}.cursor-vertical-text{cursor:vertical-text !important}.cursor-alias{cursor:alias !important}.cursor-copy{cursor:copy !important}.cursor-no-drop{cursor:no-drop !important}.cursor-grab{cursor:grab !important}.cursor-grabbing{cursor:grabbing !important}.cursor-all-scroll{cursor:all-scroll !important}.cursor-col-resize{cursor:col-resize !important}.cursor-row-resize{cursor:row-resize !important}.cursor-n-resize{cursor:n-resize !important}.cursor-w-resize{cursor:w-resize !important}.cursor-zoom-in{cursor:zoom-in !important}.cursor-zoom-out{cursor:zoom-out !important}.cursor-url{cursor:url !important}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.d-none{display:none !important}.d-inline{display:inline !important}.d-inline-block{display:inline-block !important}.d-block{display:block !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-contents{display:contents !important}@media(min-width: 600px){.d-sm-none{display:none !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-block{display:block !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-contents{display:contents !important}}@media(min-width: 960px){.d-md-none{display:none !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-block{display:block !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-contents{display:contents !important}}@media(min-width: 1280px){.d-lg-none{display:none !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-block{display:block !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-contents{display:contents !important}}@media(min-width: 1920px){.d-xl-none{display:none !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-block{display:block !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-contents{display:contents !important}}@media(min-width: 2560px){.d-xxl-none{display:none !important}.d-xxl-inline{display:inline !important}.d-xxl-inline-block{display:inline-block !important}.d-xxl-block{display:block !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-contents{display:contents !important}}.object-none{object-fit:none !important}.object-cover{object-fit:cover !important}.object-contain{object-fit:contain !important}.object-fill{object-fit:fill !important}.object-scale-down{object-fit:scale-down !important}.object-center{object-position:center !important}.object-top{object-position:top !important}.object-bottom{object-position:bottom !important}.object-left{object-position:left !important}.object-left-top{object-position:left top !important}.object-left-bottom{object-position:left bottom !important}.object-right{object-position:right !important}.object-right-top{object-position:right top !important}.object-right-bottom{object-position:right bottom !important}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-scroll{overflow:scroll}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-hidden{overflow-y:hidden}.overflow-x-visible{overflow-x:visible}.overflow-y-visible{overflow-y:visible}.overflow-x-scroll{overflow-x:scroll}.overflow-y-scroll{overflow-y:scroll}.absolute{position:absolute !important}.fixed{position:fixed !important}.relative{position:relative !important}.static{position:static !important}.sticky{position:sticky !important}.visible{visibility:visible}.invisible{visibility:hidden}[hidden]{display:none !important}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-60{z-index:60}.z-70{z-index:70}.z-80{z-index:80}.z-90{z-index:90}.z-100{z-index:100}.z-auto{z-index:auto}.mt-0,.my-0{margin-top:0 !important}.mr-0,.mx-0{margin-right:0 !important}.ml-0,.mx-0{margin-left:0 !important}.mb-0,.my-0{margin-bottom:0 !important}.ms-0{margin-inline-start:0 !important}.me-0{margin-inline-end:0 !important}.ma-0{margin:0 !important}.mt-1,.my-1{margin-top:4px !important}.mr-1,.mx-1{margin-right:4px !important}.ml-1,.mx-1{margin-left:4px !important}.mb-1,.my-1{margin-bottom:4px !important}.ms-1{margin-inline-start:4px !important}.me-1{margin-inline-end:4px !important}.ma-1{margin:4px !important}.mt-2,.my-2{margin-top:8px !important}.mr-2,.mx-2{margin-right:8px !important}.ml-2,.mx-2{margin-left:8px !important}.mb-2,.my-2{margin-bottom:8px !important}.ms-2{margin-inline-start:8px !important}.me-2{margin-inline-end:8px !important}.ma-2{margin:8px !important}.mt-3,.my-3{margin-top:12px !important}.mr-3,.mx-3{margin-right:12px !important}.ml-3,.mx-3{margin-left:12px !important}.mb-3,.my-3{margin-bottom:12px !important}.ms-3{margin-inline-start:12px !important}.me-3{margin-inline-end:12px !important}.ma-3{margin:12px !important}.mt-4,.my-4{margin-top:16px !important}.mr-4,.mx-4{margin-right:16px !important}.ml-4,.mx-4{margin-left:16px !important}.mb-4,.my-4{margin-bottom:16px !important}.ms-4{margin-inline-start:16px !important}.me-4{margin-inline-end:16px !important}.ma-4{margin:16px !important}.mt-5,.my-5{margin-top:20px !important}.mr-5,.mx-5{margin-right:20px !important}.ml-5,.mx-5{margin-left:20px !important}.mb-5,.my-5{margin-bottom:20px !important}.ms-5{margin-inline-start:20px !important}.me-5{margin-inline-end:20px !important}.ma-5{margin:20px !important}.mt-6,.my-6{margin-top:24px !important}.mr-6,.mx-6{margin-right:24px !important}.ml-6,.mx-6{margin-left:24px !important}.mb-6,.my-6{margin-bottom:24px !important}.ms-6{margin-inline-start:24px !important}.me-6{margin-inline-end:24px !important}.ma-6{margin:24px !important}.mt-7,.my-7{margin-top:28px !important}.mr-7,.mx-7{margin-right:28px !important}.ml-7,.mx-7{margin-left:28px !important}.mb-7,.my-7{margin-bottom:28px !important}.ms-7{margin-inline-start:28px !important}.me-7{margin-inline-end:28px !important}.ma-7{margin:28px !important}.mt-8,.my-8{margin-top:32px !important}.mr-8,.mx-8{margin-right:32px !important}.ml-8,.mx-8{margin-left:32px !important}.mb-8,.my-8{margin-bottom:32px !important}.ms-8{margin-inline-start:32px !important}.me-8{margin-inline-end:32px !important}.ma-8{margin:32px !important}.mt-9,.my-9{margin-top:36px !important}.mr-9,.mx-9{margin-right:36px !important}.ml-9,.mx-9{margin-left:36px !important}.mb-9,.my-9{margin-bottom:36px !important}.ms-9{margin-inline-start:36px !important}.me-9{margin-inline-end:36px !important}.ma-9{margin:36px !important}.mt-10,.my-10{margin-top:40px !important}.mr-10,.mx-10{margin-right:40px !important}.ml-10,.mx-10{margin-left:40px !important}.mb-10,.my-10{margin-bottom:40px !important}.ms-10{margin-inline-start:40px !important}.me-10{margin-inline-end:40px !important}.ma-10{margin:40px !important}.mt-11,.my-11{margin-top:44px !important}.mr-11,.mx-11{margin-right:44px !important}.ml-11,.mx-11{margin-left:44px !important}.mb-11,.my-11{margin-bottom:44px !important}.ms-11{margin-inline-start:44px !important}.me-11{margin-inline-end:44px !important}.ma-11{margin:44px !important}.mt-12,.my-12{margin-top:48px !important}.mr-12,.mx-12{margin-right:48px !important}.ml-12,.mx-12{margin-left:48px !important}.mb-12,.my-12{margin-bottom:48px !important}.ms-12{margin-inline-start:48px !important}.me-12{margin-inline-end:48px !important}.ma-12{margin:48px !important}.mt-13,.my-13{margin-top:52px !important}.mr-13,.mx-13{margin-right:52px !important}.ml-13,.mx-13{margin-left:52px !important}.mb-13,.my-13{margin-bottom:52px !important}.ms-13{margin-inline-start:52px !important}.me-13{margin-inline-end:52px !important}.ma-13{margin:52px !important}.mt-14,.my-14{margin-top:56px !important}.mr-14,.mx-14{margin-right:56px !important}.ml-14,.mx-14{margin-left:56px !important}.mb-14,.my-14{margin-bottom:56px !important}.ms-14{margin-inline-start:56px !important}.me-14{margin-inline-end:56px !important}.ma-14{margin:56px !important}.mt-15,.my-15{margin-top:60px !important}.mr-15,.mx-15{margin-right:60px !important}.ml-15,.mx-15{margin-left:60px !important}.mb-15,.my-15{margin-bottom:60px !important}.ms-15{margin-inline-start:60px !important}.me-15{margin-inline-end:60px !important}.ma-15{margin:60px !important}.mt-16,.my-16{margin-top:64px !important}.mr-16,.mx-16{margin-right:64px !important}.ml-16,.mx-16{margin-left:64px !important}.mb-16,.my-16{margin-bottom:64px !important}.ms-16{margin-inline-start:64px !important}.me-16{margin-inline-end:64px !important}.ma-16{margin:64px !important}.mt-17,.my-17{margin-top:68px !important}.mr-17,.mx-17{margin-right:68px !important}.ml-17,.mx-17{margin-left:68px !important}.mb-17,.my-17{margin-bottom:68px !important}.ms-17{margin-inline-start:68px !important}.me-17{margin-inline-end:68px !important}.ma-17{margin:68px !important}.mt-18,.my-18{margin-top:72px !important}.mr-18,.mx-18{margin-right:72px !important}.ml-18,.mx-18{margin-left:72px !important}.mb-18,.my-18{margin-bottom:72px !important}.ms-18{margin-inline-start:72px !important}.me-18{margin-inline-end:72px !important}.ma-18{margin:72px !important}.mt-19,.my-19{margin-top:76px !important}.mr-19,.mx-19{margin-right:76px !important}.ml-19,.mx-19{margin-left:76px !important}.mb-19,.my-19{margin-bottom:76px !important}.ms-19{margin-inline-start:76px !important}.me-19{margin-inline-end:76px !important}.ma-19{margin:76px !important}.mt-20,.my-20{margin-top:80px !important}.mr-20,.mx-20{margin-right:80px !important}.ml-20,.mx-20{margin-left:80px !important}.mb-20,.my-20{margin-bottom:80px !important}.ms-20{margin-inline-start:80px !important}.me-20{margin-inline-end:80px !important}.ma-20{margin:80px !important}.mt-auto,.my-auto{margin-top:auto !important}.mr-auto,.mx-auto{margin-right:auto !important}.ml-auto,.mx-auto{margin-left:auto !important}.mb-auto,.my-auto{margin-bottom:auto !important}.ms-auto{margin-inline-start:auto !important}.me-auto{margin-inline-end:auto !important}.ma-auto{margin:auto !important}.pt-0,.py-0{padding-top:0 !important}.pr-0,.px-0{padding-right:0 !important}.pl-0,.px-0{padding-left:0 !important}.pb-0,.py-0{padding-bottom:0 !important}.ps-0{padding-inline-start:0 !important}.pe-0{padding-inline-end:0 !important}.pa-0{padding:0 !important}.pt-1,.py-1{padding-top:4px !important}.pr-1,.px-1{padding-right:4px !important}.pl-1,.px-1{padding-left:4px !important}.pb-1,.py-1{padding-bottom:4px !important}.ps-1{padding-inline-start:4px !important}.pe-1{padding-inline-end:4px !important}.pa-1{padding:4px !important}.pt-2,.py-2{padding-top:8px !important}.pr-2,.px-2{padding-right:8px !important}.pl-2,.px-2{padding-left:8px !important}.pb-2,.py-2{padding-bottom:8px !important}.ps-2{padding-inline-start:8px !important}.pe-2{padding-inline-end:8px !important}.pa-2{padding:8px !important}.pt-3,.py-3{padding-top:12px !important}.pr-3,.px-3{padding-right:12px !important}.pl-3,.px-3{padding-left:12px !important}.pb-3,.py-3{padding-bottom:12px !important}.ps-3{padding-inline-start:12px !important}.pe-3{padding-inline-end:12px !important}.pa-3{padding:12px !important}.pt-4,.py-4{padding-top:16px !important}.pr-4,.px-4{padding-right:16px !important}.pl-4,.px-4{padding-left:16px !important}.pb-4,.py-4{padding-bottom:16px !important}.ps-4{padding-inline-start:16px !important}.pe-4{padding-inline-end:16px !important}.pa-4{padding:16px !important}.pt-5,.py-5{padding-top:20px !important}.pr-5,.px-5{padding-right:20px !important}.pl-5,.px-5{padding-left:20px !important}.pb-5,.py-5{padding-bottom:20px !important}.ps-5{padding-inline-start:20px !important}.pe-5{padding-inline-end:20px !important}.pa-5{padding:20px !important}.pt-6,.py-6{padding-top:24px !important}.pr-6,.px-6{padding-right:24px !important}.pl-6,.px-6{padding-left:24px !important}.pb-6,.py-6{padding-bottom:24px !important}.ps-6{padding-inline-start:24px !important}.pe-6{padding-inline-end:24px !important}.pa-6{padding:24px !important}.pt-7,.py-7{padding-top:28px !important}.pr-7,.px-7{padding-right:28px !important}.pl-7,.px-7{padding-left:28px !important}.pb-7,.py-7{padding-bottom:28px !important}.ps-7{padding-inline-start:28px !important}.pe-7{padding-inline-end:28px !important}.pa-7{padding:28px !important}.pt-8,.py-8{padding-top:32px !important}.pr-8,.px-8{padding-right:32px !important}.pl-8,.px-8{padding-left:32px !important}.pb-8,.py-8{padding-bottom:32px !important}.ps-8{padding-inline-start:32px !important}.pe-8{padding-inline-end:32px !important}.pa-8{padding:32px !important}.pt-9,.py-9{padding-top:36px !important}.pr-9,.px-9{padding-right:36px !important}.pl-9,.px-9{padding-left:36px !important}.pb-9,.py-9{padding-bottom:36px !important}.ps-9{padding-inline-start:36px !important}.pe-9{padding-inline-end:36px !important}.pa-9{padding:36px !important}.pt-10,.py-10{padding-top:40px !important}.pr-10,.px-10{padding-right:40px !important}.pl-10,.px-10{padding-left:40px !important}.pb-10,.py-10{padding-bottom:40px !important}.ps-10{padding-inline-start:40px !important}.pe-10{padding-inline-end:40px !important}.pa-10{padding:40px !important}.pt-11,.py-11{padding-top:44px !important}.pr-11,.px-11{padding-right:44px !important}.pl-11,.px-11{padding-left:44px !important}.pb-11,.py-11{padding-bottom:44px !important}.ps-11{padding-inline-start:44px !important}.pe-11{padding-inline-end:44px !important}.pa-11{padding:44px !important}.pt-12,.py-12{padding-top:48px !important}.pr-12,.px-12{padding-right:48px !important}.pl-12,.px-12{padding-left:48px !important}.pb-12,.py-12{padding-bottom:48px !important}.ps-12{padding-inline-start:48px !important}.pe-12{padding-inline-end:48px !important}.pa-12{padding:48px !important}.pt-13,.py-13{padding-top:52px !important}.pr-13,.px-13{padding-right:52px !important}.pl-13,.px-13{padding-left:52px !important}.pb-13,.py-13{padding-bottom:52px !important}.ps-13{padding-inline-start:52px !important}.pe-13{padding-inline-end:52px !important}.pa-13{padding:52px !important}.pt-14,.py-14{padding-top:56px !important}.pr-14,.px-14{padding-right:56px !important}.pl-14,.px-14{padding-left:56px !important}.pb-14,.py-14{padding-bottom:56px !important}.ps-14{padding-inline-start:56px !important}.pe-14{padding-inline-end:56px !important}.pa-14{padding:56px !important}.pt-15,.py-15{padding-top:60px !important}.pr-15,.px-15{padding-right:60px !important}.pl-15,.px-15{padding-left:60px !important}.pb-15,.py-15{padding-bottom:60px !important}.ps-15{padding-inline-start:60px !important}.pe-15{padding-inline-end:60px !important}.pa-15{padding:60px !important}.pt-16,.py-16{padding-top:64px !important}.pr-16,.px-16{padding-right:64px !important}.pl-16,.px-16{padding-left:64px !important}.pb-16,.py-16{padding-bottom:64px !important}.ps-16{padding-inline-start:64px !important}.pe-16{padding-inline-end:64px !important}.pa-16{padding:64px !important}.pt-17,.py-17{padding-top:68px !important}.pr-17,.px-17{padding-right:68px !important}.pl-17,.px-17{padding-left:68px !important}.pb-17,.py-17{padding-bottom:68px !important}.ps-17{padding-inline-start:68px !important}.pe-17{padding-inline-end:68px !important}.pa-17{padding:68px !important}.pt-18,.py-18{padding-top:72px !important}.pr-18,.px-18{padding-right:72px !important}.pl-18,.px-18{padding-left:72px !important}.pb-18,.py-18{padding-bottom:72px !important}.ps-18{padding-inline-start:72px !important}.pe-18{padding-inline-end:72px !important}.pa-18{padding:72px !important}.pt-19,.py-19{padding-top:76px !important}.pr-19,.px-19{padding-right:76px !important}.pl-19,.px-19{padding-left:76px !important}.pb-19,.py-19{padding-bottom:76px !important}.ps-19{padding-inline-start:76px !important}.pe-19{padding-inline-end:76px !important}.pa-19{padding:76px !important}.pt-20,.py-20{padding-top:80px !important}.pr-20,.px-20{padding-right:80px !important}.pl-20,.px-20{padding-left:80px !important}.pb-20,.py-20{padding-bottom:80px !important}.ps-20{padding-inline-start:80px !important}.pe-20{padding-inline-end:80px !important}.pa-20{padding:80px !important}.pt-auto,.py-auto{padding-top:auto !important}.pr-auto,.px-auto{padding-right:auto !important}.pl-auto,.px-auto{padding-left:auto !important}.pb-auto,.py-auto{padding-bottom:auto !important}.ps-auto{padding-inline-start:auto !important}.pe-auto{padding-inline-end:auto !important}.pa-auto{padding:auto !important}.mt-n1,.my-n1{margin-top:-4px !important}.mr-n1,.mx-n1{margin-right:-4px !important}.ml-n1,.mx-n1{margin-left:-4px !important}.mb-n1,.my-n1{margin-bottom:-4px !important}.ms-n1{margin-inline-start:-4px !important}.me-n1{margin-inline-end:-4px !important}.ma-n1{margin:-4px !important}.mt-n2,.my-n2{margin-top:-8px !important}.mr-n2,.mx-n2{margin-right:-8px !important}.ml-n2,.mx-n2{margin-left:-8px !important}.mb-n2,.my-n2{margin-bottom:-8px !important}.ms-n2{margin-inline-start:-8px !important}.me-n2{margin-inline-end:-8px !important}.ma-n2{margin:-8px !important}.mt-n3,.my-n3{margin-top:-12px !important}.mr-n3,.mx-n3{margin-right:-12px !important}.ml-n3,.mx-n3{margin-left:-12px !important}.mb-n3,.my-n3{margin-bottom:-12px !important}.ms-n3{margin-inline-start:-12px !important}.me-n3{margin-inline-end:-12px !important}.ma-n3{margin:-12px !important}.mt-n4,.my-n4{margin-top:-16px !important}.mr-n4,.mx-n4{margin-right:-16px !important}.ml-n4,.mx-n4{margin-left:-16px !important}.mb-n4,.my-n4{margin-bottom:-16px !important}.ms-n4{margin-inline-start:-16px !important}.me-n4{margin-inline-end:-16px !important}.ma-n4{margin:-16px !important}.mt-n5,.my-n5{margin-top:-20px !important}.mr-n5,.mx-n5{margin-right:-20px !important}.ml-n5,.mx-n5{margin-left:-20px !important}.mb-n5,.my-n5{margin-bottom:-20px !important}.ms-n5{margin-inline-start:-20px !important}.me-n5{margin-inline-end:-20px !important}.ma-n5{margin:-20px !important}.mt-n6,.my-n6{margin-top:-24px !important}.mr-n6,.mx-n6{margin-right:-24px !important}.ml-n6,.mx-n6{margin-left:-24px !important}.mb-n6,.my-n6{margin-bottom:-24px !important}.ms-n6{margin-inline-start:-24px !important}.me-n6{margin-inline-end:-24px !important}.ma-n6{margin:-24px !important}.mt-n7,.my-n7{margin-top:-28px !important}.mr-n7,.mx-n7{margin-right:-28px !important}.ml-n7,.mx-n7{margin-left:-28px !important}.mb-n7,.my-n7{margin-bottom:-28px !important}.ms-n7{margin-inline-start:-28px !important}.me-n7{margin-inline-end:-28px !important}.ma-n7{margin:-28px !important}.mt-n8,.my-n8{margin-top:-32px !important}.mr-n8,.mx-n8{margin-right:-32px !important}.ml-n8,.mx-n8{margin-left:-32px !important}.mb-n8,.my-n8{margin-bottom:-32px !important}.ms-n8{margin-inline-start:-32px !important}.me-n8{margin-inline-end:-32px !important}.ma-n8{margin:-32px !important}.mt-n9,.my-n9{margin-top:-36px !important}.mr-n9,.mx-n9{margin-right:-36px !important}.ml-n9,.mx-n9{margin-left:-36px !important}.mb-n9,.my-n9{margin-bottom:-36px !important}.ms-n9{margin-inline-start:-36px !important}.me-n9{margin-inline-end:-36px !important}.ma-n9{margin:-36px !important}.mt-n10,.my-n10{margin-top:-40px !important}.mr-n10,.mx-n10{margin-right:-40px !important}.ml-n10,.mx-n10{margin-left:-40px !important}.mb-n10,.my-n10{margin-bottom:-40px !important}.ms-n10{margin-inline-start:-40px !important}.me-n10{margin-inline-end:-40px !important}.ma-n10{margin:-40px !important}.mt-n11,.my-n11{margin-top:-44px !important}.mr-n11,.mx-n11{margin-right:-44px !important}.ml-n11,.mx-n11{margin-left:-44px !important}.mb-n11,.my-n11{margin-bottom:-44px !important}.ms-n11{margin-inline-start:-44px !important}.me-n11{margin-inline-end:-44px !important}.ma-n11{margin:-44px !important}.mt-n12,.my-n12{margin-top:-48px !important}.mr-n12,.mx-n12{margin-right:-48px !important}.ml-n12,.mx-n12{margin-left:-48px !important}.mb-n12,.my-n12{margin-bottom:-48px !important}.ms-n12{margin-inline-start:-48px !important}.me-n12{margin-inline-end:-48px !important}.ma-n12{margin:-48px !important}.mt-n13,.my-n13{margin-top:-52px !important}.mr-n13,.mx-n13{margin-right:-52px !important}.ml-n13,.mx-n13{margin-left:-52px !important}.mb-n13,.my-n13{margin-bottom:-52px !important}.ms-n13{margin-inline-start:-52px !important}.me-n13{margin-inline-end:-52px !important}.ma-n13{margin:-52px !important}.mt-n14,.my-n14{margin-top:-56px !important}.mr-n14,.mx-n14{margin-right:-56px !important}.ml-n14,.mx-n14{margin-left:-56px !important}.mb-n14,.my-n14{margin-bottom:-56px !important}.ms-n14{margin-inline-start:-56px !important}.me-n14{margin-inline-end:-56px !important}.ma-n14{margin:-56px !important}.mt-n15,.my-n15{margin-top:-60px !important}.mr-n15,.mx-n15{margin-right:-60px !important}.ml-n15,.mx-n15{margin-left:-60px !important}.mb-n15,.my-n15{margin-bottom:-60px !important}.ms-n15{margin-inline-start:-60px !important}.me-n15{margin-inline-end:-60px !important}.ma-n15{margin:-60px !important}.mt-n16,.my-n16{margin-top:-64px !important}.mr-n16,.mx-n16{margin-right:-64px !important}.ml-n16,.mx-n16{margin-left:-64px !important}.mb-n16,.my-n16{margin-bottom:-64px !important}.ms-n16{margin-inline-start:-64px !important}.me-n16{margin-inline-end:-64px !important}.ma-n16{margin:-64px !important}.mt-n17,.my-n17{margin-top:-68px !important}.mr-n17,.mx-n17{margin-right:-68px !important}.ml-n17,.mx-n17{margin-left:-68px !important}.mb-n17,.my-n17{margin-bottom:-68px !important}.ms-n17{margin-inline-start:-68px !important}.me-n17{margin-inline-end:-68px !important}.ma-n17{margin:-68px !important}.mt-n18,.my-n18{margin-top:-72px !important}.mr-n18,.mx-n18{margin-right:-72px !important}.ml-n18,.mx-n18{margin-left:-72px !important}.mb-n18,.my-n18{margin-bottom:-72px !important}.ms-n18{margin-inline-start:-72px !important}.me-n18{margin-inline-end:-72px !important}.ma-n18{margin:-72px !important}.mt-n19,.my-n19{margin-top:-76px !important}.mr-n19,.mx-n19{margin-right:-76px !important}.ml-n19,.mx-n19{margin-left:-76px !important}.mb-n19,.my-n19{margin-bottom:-76px !important}.ms-n19{margin-inline-start:-76px !important}.me-n19{margin-inline-end:-76px !important}.ma-n19{margin:-76px !important}.mt-n20,.my-n20{margin-top:-80px !important}.mr-n20,.mx-n20{margin-right:-80px !important}.ml-n20,.mx-n20{margin-left:-80px !important}.mb-n20,.my-n20{margin-bottom:-80px !important}.ms-n20{margin-inline-start:-80px !important}.me-n20{margin-inline-end:-80px !important}.ma-n20{margin:-80px !important}@media screen and (min-width: 600px){.mt-sm-0,.my-sm-0{margin-top:0 !important}.mr-sm-0,.mx-sm-0{margin-right:0 !important}.ml-sm-0,.mx-sm-0{margin-left:0 !important}.mb-sm-0,.my-sm-0{margin-bottom:0 !important}.ms-sm-0{margin-inline-start:0 !important}.me-sm-0{margin-inline-end:0 !important}.ma-sm-0{margin:0 !important}.mt-sm-1,.my-sm-1{margin-top:4px !important}.mr-sm-1,.mx-sm-1{margin-right:4px !important}.ml-sm-1,.mx-sm-1{margin-left:4px !important}.mb-sm-1,.my-sm-1{margin-bottom:4px !important}.ms-sm-1{margin-inline-start:4px !important}.me-sm-1{margin-inline-end:4px !important}.ma-sm-1{margin:4px !important}.mt-sm-2,.my-sm-2{margin-top:8px !important}.mr-sm-2,.mx-sm-2{margin-right:8px !important}.ml-sm-2,.mx-sm-2{margin-left:8px !important}.mb-sm-2,.my-sm-2{margin-bottom:8px !important}.ms-sm-2{margin-inline-start:8px !important}.me-sm-2{margin-inline-end:8px !important}.ma-sm-2{margin:8px !important}.mt-sm-3,.my-sm-3{margin-top:12px !important}.mr-sm-3,.mx-sm-3{margin-right:12px !important}.ml-sm-3,.mx-sm-3{margin-left:12px !important}.mb-sm-3,.my-sm-3{margin-bottom:12px !important}.ms-sm-3{margin-inline-start:12px !important}.me-sm-3{margin-inline-end:12px !important}.ma-sm-3{margin:12px !important}.mt-sm-4,.my-sm-4{margin-top:16px !important}.mr-sm-4,.mx-sm-4{margin-right:16px !important}.ml-sm-4,.mx-sm-4{margin-left:16px !important}.mb-sm-4,.my-sm-4{margin-bottom:16px !important}.ms-sm-4{margin-inline-start:16px !important}.me-sm-4{margin-inline-end:16px !important}.ma-sm-4{margin:16px !important}.mt-sm-5,.my-sm-5{margin-top:20px !important}.mr-sm-5,.mx-sm-5{margin-right:20px !important}.ml-sm-5,.mx-sm-5{margin-left:20px !important}.mb-sm-5,.my-sm-5{margin-bottom:20px !important}.ms-sm-5{margin-inline-start:20px !important}.me-sm-5{margin-inline-end:20px !important}.ma-sm-5{margin:20px !important}.mt-sm-6,.my-sm-6{margin-top:24px !important}.mr-sm-6,.mx-sm-6{margin-right:24px !important}.ml-sm-6,.mx-sm-6{margin-left:24px !important}.mb-sm-6,.my-sm-6{margin-bottom:24px !important}.ms-sm-6{margin-inline-start:24px !important}.me-sm-6{margin-inline-end:24px !important}.ma-sm-6{margin:24px !important}.mt-sm-7,.my-sm-7{margin-top:28px !important}.mr-sm-7,.mx-sm-7{margin-right:28px !important}.ml-sm-7,.mx-sm-7{margin-left:28px !important}.mb-sm-7,.my-sm-7{margin-bottom:28px !important}.ms-sm-7{margin-inline-start:28px !important}.me-sm-7{margin-inline-end:28px !important}.ma-sm-7{margin:28px !important}.mt-sm-8,.my-sm-8{margin-top:32px !important}.mr-sm-8,.mx-sm-8{margin-right:32px !important}.ml-sm-8,.mx-sm-8{margin-left:32px !important}.mb-sm-8,.my-sm-8{margin-bottom:32px !important}.ms-sm-8{margin-inline-start:32px !important}.me-sm-8{margin-inline-end:32px !important}.ma-sm-8{margin:32px !important}.mt-sm-9,.my-sm-9{margin-top:36px !important}.mr-sm-9,.mx-sm-9{margin-right:36px !important}.ml-sm-9,.mx-sm-9{margin-left:36px !important}.mb-sm-9,.my-sm-9{margin-bottom:36px !important}.ms-sm-9{margin-inline-start:36px !important}.me-sm-9{margin-inline-end:36px !important}.ma-sm-9{margin:36px !important}.mt-sm-10,.my-sm-10{margin-top:40px !important}.mr-sm-10,.mx-sm-10{margin-right:40px !important}.ml-sm-10,.mx-sm-10{margin-left:40px !important}.mb-sm-10,.my-sm-10{margin-bottom:40px !important}.ms-sm-10{margin-inline-start:40px !important}.me-sm-10{margin-inline-end:40px !important}.ma-sm-10{margin:40px !important}.mt-sm-11,.my-sm-11{margin-top:44px !important}.mr-sm-11,.mx-sm-11{margin-right:44px !important}.ml-sm-11,.mx-sm-11{margin-left:44px !important}.mb-sm-11,.my-sm-11{margin-bottom:44px !important}.ms-sm-11{margin-inline-start:44px !important}.me-sm-11{margin-inline-end:44px !important}.ma-sm-11{margin:44px !important}.mt-sm-12,.my-sm-12{margin-top:48px !important}.mr-sm-12,.mx-sm-12{margin-right:48px !important}.ml-sm-12,.mx-sm-12{margin-left:48px !important}.mb-sm-12,.my-sm-12{margin-bottom:48px !important}.ms-sm-12{margin-inline-start:48px !important}.me-sm-12{margin-inline-end:48px !important}.ma-sm-12{margin:48px !important}.mt-sm-13,.my-sm-13{margin-top:52px !important}.mr-sm-13,.mx-sm-13{margin-right:52px !important}.ml-sm-13,.mx-sm-13{margin-left:52px !important}.mb-sm-13,.my-sm-13{margin-bottom:52px !important}.ms-sm-13{margin-inline-start:52px !important}.me-sm-13{margin-inline-end:52px !important}.ma-sm-13{margin:52px !important}.mt-sm-14,.my-sm-14{margin-top:56px !important}.mr-sm-14,.mx-sm-14{margin-right:56px !important}.ml-sm-14,.mx-sm-14{margin-left:56px !important}.mb-sm-14,.my-sm-14{margin-bottom:56px !important}.ms-sm-14{margin-inline-start:56px !important}.me-sm-14{margin-inline-end:56px !important}.ma-sm-14{margin:56px !important}.mt-sm-15,.my-sm-15{margin-top:60px !important}.mr-sm-15,.mx-sm-15{margin-right:60px !important}.ml-sm-15,.mx-sm-15{margin-left:60px !important}.mb-sm-15,.my-sm-15{margin-bottom:60px !important}.ms-sm-15{margin-inline-start:60px !important}.me-sm-15{margin-inline-end:60px !important}.ma-sm-15{margin:60px !important}.mt-sm-16,.my-sm-16{margin-top:64px !important}.mr-sm-16,.mx-sm-16{margin-right:64px !important}.ml-sm-16,.mx-sm-16{margin-left:64px !important}.mb-sm-16,.my-sm-16{margin-bottom:64px !important}.ms-sm-16{margin-inline-start:64px !important}.me-sm-16{margin-inline-end:64px !important}.ma-sm-16{margin:64px !important}.mt-sm-17,.my-sm-17{margin-top:68px !important}.mr-sm-17,.mx-sm-17{margin-right:68px !important}.ml-sm-17,.mx-sm-17{margin-left:68px !important}.mb-sm-17,.my-sm-17{margin-bottom:68px !important}.ms-sm-17{margin-inline-start:68px !important}.me-sm-17{margin-inline-end:68px !important}.ma-sm-17{margin:68px !important}.mt-sm-18,.my-sm-18{margin-top:72px !important}.mr-sm-18,.mx-sm-18{margin-right:72px !important}.ml-sm-18,.mx-sm-18{margin-left:72px !important}.mb-sm-18,.my-sm-18{margin-bottom:72px !important}.ms-sm-18{margin-inline-start:72px !important}.me-sm-18{margin-inline-end:72px !important}.ma-sm-18{margin:72px !important}.mt-sm-19,.my-sm-19{margin-top:76px !important}.mr-sm-19,.mx-sm-19{margin-right:76px !important}.ml-sm-19,.mx-sm-19{margin-left:76px !important}.mb-sm-19,.my-sm-19{margin-bottom:76px !important}.ms-sm-19{margin-inline-start:76px !important}.me-sm-19{margin-inline-end:76px !important}.ma-sm-19{margin:76px !important}.mt-sm-20,.my-sm-20{margin-top:80px !important}.mr-sm-20,.mx-sm-20{margin-right:80px !important}.ml-sm-20,.mx-sm-20{margin-left:80px !important}.mb-sm-20,.my-sm-20{margin-bottom:80px !important}.ms-sm-20{margin-inline-start:80px !important}.me-sm-20{margin-inline-end:80px !important}.ma-sm-20{margin:80px !important}.mt-sm-auto,.my-sm-auto{margin-top:auto !important}.mr-sm-auto,.mx-sm-auto{margin-right:auto !important}.ml-sm-auto,.mx-sm-auto{margin-left:auto !important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto !important}.ms-sm-auto{margin-inline-start:auto !important}.me-sm-auto{margin-inline-end:auto !important}.ma-sm-auto{margin:auto !important}.pt-sm-0,.py-sm-0{padding-top:0 !important}.pr-sm-0,.px-sm-0{padding-right:0 !important}.pl-sm-0,.px-sm-0{padding-left:0 !important}.pb-sm-0,.py-sm-0{padding-bottom:0 !important}.ps-sm-0{padding-inline-start:0 !important}.pe-sm-0{padding-inline-end:0 !important}.pa-sm-0{padding:0 !important}.pt-sm-1,.py-sm-1{padding-top:4px !important}.pr-sm-1,.px-sm-1{padding-right:4px !important}.pl-sm-1,.px-sm-1{padding-left:4px !important}.pb-sm-1,.py-sm-1{padding-bottom:4px !important}.ps-sm-1{padding-inline-start:4px !important}.pe-sm-1{padding-inline-end:4px !important}.pa-sm-1{padding:4px !important}.pt-sm-2,.py-sm-2{padding-top:8px !important}.pr-sm-2,.px-sm-2{padding-right:8px !important}.pl-sm-2,.px-sm-2{padding-left:8px !important}.pb-sm-2,.py-sm-2{padding-bottom:8px !important}.ps-sm-2{padding-inline-start:8px !important}.pe-sm-2{padding-inline-end:8px !important}.pa-sm-2{padding:8px !important}.pt-sm-3,.py-sm-3{padding-top:12px !important}.pr-sm-3,.px-sm-3{padding-right:12px !important}.pl-sm-3,.px-sm-3{padding-left:12px !important}.pb-sm-3,.py-sm-3{padding-bottom:12px !important}.ps-sm-3{padding-inline-start:12px !important}.pe-sm-3{padding-inline-end:12px !important}.pa-sm-3{padding:12px !important}.pt-sm-4,.py-sm-4{padding-top:16px !important}.pr-sm-4,.px-sm-4{padding-right:16px !important}.pl-sm-4,.px-sm-4{padding-left:16px !important}.pb-sm-4,.py-sm-4{padding-bottom:16px !important}.ps-sm-4{padding-inline-start:16px !important}.pe-sm-4{padding-inline-end:16px !important}.pa-sm-4{padding:16px !important}.pt-sm-5,.py-sm-5{padding-top:20px !important}.pr-sm-5,.px-sm-5{padding-right:20px !important}.pl-sm-5,.px-sm-5{padding-left:20px !important}.pb-sm-5,.py-sm-5{padding-bottom:20px !important}.ps-sm-5{padding-inline-start:20px !important}.pe-sm-5{padding-inline-end:20px !important}.pa-sm-5{padding:20px !important}.pt-sm-6,.py-sm-6{padding-top:24px !important}.pr-sm-6,.px-sm-6{padding-right:24px !important}.pl-sm-6,.px-sm-6{padding-left:24px !important}.pb-sm-6,.py-sm-6{padding-bottom:24px !important}.ps-sm-6{padding-inline-start:24px !important}.pe-sm-6{padding-inline-end:24px !important}.pa-sm-6{padding:24px !important}.pt-sm-7,.py-sm-7{padding-top:28px !important}.pr-sm-7,.px-sm-7{padding-right:28px !important}.pl-sm-7,.px-sm-7{padding-left:28px !important}.pb-sm-7,.py-sm-7{padding-bottom:28px !important}.ps-sm-7{padding-inline-start:28px !important}.pe-sm-7{padding-inline-end:28px !important}.pa-sm-7{padding:28px !important}.pt-sm-8,.py-sm-8{padding-top:32px !important}.pr-sm-8,.px-sm-8{padding-right:32px !important}.pl-sm-8,.px-sm-8{padding-left:32px !important}.pb-sm-8,.py-sm-8{padding-bottom:32px !important}.ps-sm-8{padding-inline-start:32px !important}.pe-sm-8{padding-inline-end:32px !important}.pa-sm-8{padding:32px !important}.pt-sm-9,.py-sm-9{padding-top:36px !important}.pr-sm-9,.px-sm-9{padding-right:36px !important}.pl-sm-9,.px-sm-9{padding-left:36px !important}.pb-sm-9,.py-sm-9{padding-bottom:36px !important}.ps-sm-9{padding-inline-start:36px !important}.pe-sm-9{padding-inline-end:36px !important}.pa-sm-9{padding:36px !important}.pt-sm-10,.py-sm-10{padding-top:40px !important}.pr-sm-10,.px-sm-10{padding-right:40px !important}.pl-sm-10,.px-sm-10{padding-left:40px !important}.pb-sm-10,.py-sm-10{padding-bottom:40px !important}.ps-sm-10{padding-inline-start:40px !important}.pe-sm-10{padding-inline-end:40px !important}.pa-sm-10{padding:40px !important}.pt-sm-11,.py-sm-11{padding-top:44px !important}.pr-sm-11,.px-sm-11{padding-right:44px !important}.pl-sm-11,.px-sm-11{padding-left:44px !important}.pb-sm-11,.py-sm-11{padding-bottom:44px !important}.ps-sm-11{padding-inline-start:44px !important}.pe-sm-11{padding-inline-end:44px !important}.pa-sm-11{padding:44px !important}.pt-sm-12,.py-sm-12{padding-top:48px !important}.pr-sm-12,.px-sm-12{padding-right:48px !important}.pl-sm-12,.px-sm-12{padding-left:48px !important}.pb-sm-12,.py-sm-12{padding-bottom:48px !important}.ps-sm-12{padding-inline-start:48px !important}.pe-sm-12{padding-inline-end:48px !important}.pa-sm-12{padding:48px !important}.pt-sm-13,.py-sm-13{padding-top:52px !important}.pr-sm-13,.px-sm-13{padding-right:52px !important}.pl-sm-13,.px-sm-13{padding-left:52px !important}.pb-sm-13,.py-sm-13{padding-bottom:52px !important}.ps-sm-13{padding-inline-start:52px !important}.pe-sm-13{padding-inline-end:52px !important}.pa-sm-13{padding:52px !important}.pt-sm-14,.py-sm-14{padding-top:56px !important}.pr-sm-14,.px-sm-14{padding-right:56px !important}.pl-sm-14,.px-sm-14{padding-left:56px !important}.pb-sm-14,.py-sm-14{padding-bottom:56px !important}.ps-sm-14{padding-inline-start:56px !important}.pe-sm-14{padding-inline-end:56px !important}.pa-sm-14{padding:56px !important}.pt-sm-15,.py-sm-15{padding-top:60px !important}.pr-sm-15,.px-sm-15{padding-right:60px !important}.pl-sm-15,.px-sm-15{padding-left:60px !important}.pb-sm-15,.py-sm-15{padding-bottom:60px !important}.ps-sm-15{padding-inline-start:60px !important}.pe-sm-15{padding-inline-end:60px !important}.pa-sm-15{padding:60px !important}.pt-sm-16,.py-sm-16{padding-top:64px !important}.pr-sm-16,.px-sm-16{padding-right:64px !important}.pl-sm-16,.px-sm-16{padding-left:64px !important}.pb-sm-16,.py-sm-16{padding-bottom:64px !important}.ps-sm-16{padding-inline-start:64px !important}.pe-sm-16{padding-inline-end:64px !important}.pa-sm-16{padding:64px !important}.pt-sm-17,.py-sm-17{padding-top:68px !important}.pr-sm-17,.px-sm-17{padding-right:68px !important}.pl-sm-17,.px-sm-17{padding-left:68px !important}.pb-sm-17,.py-sm-17{padding-bottom:68px !important}.ps-sm-17{padding-inline-start:68px !important}.pe-sm-17{padding-inline-end:68px !important}.pa-sm-17{padding:68px !important}.pt-sm-18,.py-sm-18{padding-top:72px !important}.pr-sm-18,.px-sm-18{padding-right:72px !important}.pl-sm-18,.px-sm-18{padding-left:72px !important}.pb-sm-18,.py-sm-18{padding-bottom:72px !important}.ps-sm-18{padding-inline-start:72px !important}.pe-sm-18{padding-inline-end:72px !important}.pa-sm-18{padding:72px !important}.pt-sm-19,.py-sm-19{padding-top:76px !important}.pr-sm-19,.px-sm-19{padding-right:76px !important}.pl-sm-19,.px-sm-19{padding-left:76px !important}.pb-sm-19,.py-sm-19{padding-bottom:76px !important}.ps-sm-19{padding-inline-start:76px !important}.pe-sm-19{padding-inline-end:76px !important}.pa-sm-19{padding:76px !important}.pt-sm-20,.py-sm-20{padding-top:80px !important}.pr-sm-20,.px-sm-20{padding-right:80px !important}.pl-sm-20,.px-sm-20{padding-left:80px !important}.pb-sm-20,.py-sm-20{padding-bottom:80px !important}.ps-sm-20{padding-inline-start:80px !important}.pe-sm-20{padding-inline-end:80px !important}.pa-sm-20{padding:80px !important}.pt-sm-auto,.py-sm-auto{padding-top:auto !important}.pr-sm-auto,.px-sm-auto{padding-right:auto !important}.pl-sm-auto,.px-sm-auto{padding-left:auto !important}.pb-sm-auto,.py-sm-auto{padding-bottom:auto !important}.ps-sm-auto{padding-inline-start:auto !important}.pe-sm-auto{padding-inline-end:auto !important}.pa-sm-auto{padding:auto !important}.mt-sm-n1,.my-sm-n1{margin-top:-4px !important}.mr-sm-n1,.mx-sm-n1{margin-right:-4px !important}.ml-sm-n1,.mx-sm-n1{margin-left:-4px !important}.mb-sm-n1,.my-sm-n1{margin-bottom:-4px !important}.ms-sm-n1{margin-inline-start:-4px !important}.me-sm-n1{margin-inline-end:-4px !important}.ma-sm-n1{margin:-4px !important}.mt-sm-n2,.my-sm-n2{margin-top:-8px !important}.mr-sm-n2,.mx-sm-n2{margin-right:-8px !important}.ml-sm-n2,.mx-sm-n2{margin-left:-8px !important}.mb-sm-n2,.my-sm-n2{margin-bottom:-8px !important}.ms-sm-n2{margin-inline-start:-8px !important}.me-sm-n2{margin-inline-end:-8px !important}.ma-sm-n2{margin:-8px !important}.mt-sm-n3,.my-sm-n3{margin-top:-12px !important}.mr-sm-n3,.mx-sm-n3{margin-right:-12px !important}.ml-sm-n3,.mx-sm-n3{margin-left:-12px !important}.mb-sm-n3,.my-sm-n3{margin-bottom:-12px !important}.ms-sm-n3{margin-inline-start:-12px !important}.me-sm-n3{margin-inline-end:-12px !important}.ma-sm-n3{margin:-12px !important}.mt-sm-n4,.my-sm-n4{margin-top:-16px !important}.mr-sm-n4,.mx-sm-n4{margin-right:-16px !important}.ml-sm-n4,.mx-sm-n4{margin-left:-16px !important}.mb-sm-n4,.my-sm-n4{margin-bottom:-16px !important}.ms-sm-n4{margin-inline-start:-16px !important}.me-sm-n4{margin-inline-end:-16px !important}.ma-sm-n4{margin:-16px !important}.mt-sm-n5,.my-sm-n5{margin-top:-20px !important}.mr-sm-n5,.mx-sm-n5{margin-right:-20px !important}.ml-sm-n5,.mx-sm-n5{margin-left:-20px !important}.mb-sm-n5,.my-sm-n5{margin-bottom:-20px !important}.ms-sm-n5{margin-inline-start:-20px !important}.me-sm-n5{margin-inline-end:-20px !important}.ma-sm-n5{margin:-20px !important}.mt-sm-n6,.my-sm-n6{margin-top:-24px !important}.mr-sm-n6,.mx-sm-n6{margin-right:-24px !important}.ml-sm-n6,.mx-sm-n6{margin-left:-24px !important}.mb-sm-n6,.my-sm-n6{margin-bottom:-24px !important}.ms-sm-n6{margin-inline-start:-24px !important}.me-sm-n6{margin-inline-end:-24px !important}.ma-sm-n6{margin:-24px !important}.mt-sm-n7,.my-sm-n7{margin-top:-28px !important}.mr-sm-n7,.mx-sm-n7{margin-right:-28px !important}.ml-sm-n7,.mx-sm-n7{margin-left:-28px !important}.mb-sm-n7,.my-sm-n7{margin-bottom:-28px !important}.ms-sm-n7{margin-inline-start:-28px !important}.me-sm-n7{margin-inline-end:-28px !important}.ma-sm-n7{margin:-28px !important}.mt-sm-n8,.my-sm-n8{margin-top:-32px !important}.mr-sm-n8,.mx-sm-n8{margin-right:-32px !important}.ml-sm-n8,.mx-sm-n8{margin-left:-32px !important}.mb-sm-n8,.my-sm-n8{margin-bottom:-32px !important}.ms-sm-n8{margin-inline-start:-32px !important}.me-sm-n8{margin-inline-end:-32px !important}.ma-sm-n8{margin:-32px !important}.mt-sm-n9,.my-sm-n9{margin-top:-36px !important}.mr-sm-n9,.mx-sm-n9{margin-right:-36px !important}.ml-sm-n9,.mx-sm-n9{margin-left:-36px !important}.mb-sm-n9,.my-sm-n9{margin-bottom:-36px !important}.ms-sm-n9{margin-inline-start:-36px !important}.me-sm-n9{margin-inline-end:-36px !important}.ma-sm-n9{margin:-36px !important}.mt-sm-n10,.my-sm-n10{margin-top:-40px !important}.mr-sm-n10,.mx-sm-n10{margin-right:-40px !important}.ml-sm-n10,.mx-sm-n10{margin-left:-40px !important}.mb-sm-n10,.my-sm-n10{margin-bottom:-40px !important}.ms-sm-n10{margin-inline-start:-40px !important}.me-sm-n10{margin-inline-end:-40px !important}.ma-sm-n10{margin:-40px !important}.mt-sm-n11,.my-sm-n11{margin-top:-44px !important}.mr-sm-n11,.mx-sm-n11{margin-right:-44px !important}.ml-sm-n11,.mx-sm-n11{margin-left:-44px !important}.mb-sm-n11,.my-sm-n11{margin-bottom:-44px !important}.ms-sm-n11{margin-inline-start:-44px !important}.me-sm-n11{margin-inline-end:-44px !important}.ma-sm-n11{margin:-44px !important}.mt-sm-n12,.my-sm-n12{margin-top:-48px !important}.mr-sm-n12,.mx-sm-n12{margin-right:-48px !important}.ml-sm-n12,.mx-sm-n12{margin-left:-48px !important}.mb-sm-n12,.my-sm-n12{margin-bottom:-48px !important}.ms-sm-n12{margin-inline-start:-48px !important}.me-sm-n12{margin-inline-end:-48px !important}.ma-sm-n12{margin:-48px !important}.mt-sm-n13,.my-sm-n13{margin-top:-52px !important}.mr-sm-n13,.mx-sm-n13{margin-right:-52px !important}.ml-sm-n13,.mx-sm-n13{margin-left:-52px !important}.mb-sm-n13,.my-sm-n13{margin-bottom:-52px !important}.ms-sm-n13{margin-inline-start:-52px !important}.me-sm-n13{margin-inline-end:-52px !important}.ma-sm-n13{margin:-52px !important}.mt-sm-n14,.my-sm-n14{margin-top:-56px !important}.mr-sm-n14,.mx-sm-n14{margin-right:-56px !important}.ml-sm-n14,.mx-sm-n14{margin-left:-56px !important}.mb-sm-n14,.my-sm-n14{margin-bottom:-56px !important}.ms-sm-n14{margin-inline-start:-56px !important}.me-sm-n14{margin-inline-end:-56px !important}.ma-sm-n14{margin:-56px !important}.mt-sm-n15,.my-sm-n15{margin-top:-60px !important}.mr-sm-n15,.mx-sm-n15{margin-right:-60px !important}.ml-sm-n15,.mx-sm-n15{margin-left:-60px !important}.mb-sm-n15,.my-sm-n15{margin-bottom:-60px !important}.ms-sm-n15{margin-inline-start:-60px !important}.me-sm-n15{margin-inline-end:-60px !important}.ma-sm-n15{margin:-60px !important}.mt-sm-n16,.my-sm-n16{margin-top:-64px !important}.mr-sm-n16,.mx-sm-n16{margin-right:-64px !important}.ml-sm-n16,.mx-sm-n16{margin-left:-64px !important}.mb-sm-n16,.my-sm-n16{margin-bottom:-64px !important}.ms-sm-n16{margin-inline-start:-64px !important}.me-sm-n16{margin-inline-end:-64px !important}.ma-sm-n16{margin:-64px !important}.mt-sm-n17,.my-sm-n17{margin-top:-68px !important}.mr-sm-n17,.mx-sm-n17{margin-right:-68px !important}.ml-sm-n17,.mx-sm-n17{margin-left:-68px !important}.mb-sm-n17,.my-sm-n17{margin-bottom:-68px !important}.ms-sm-n17{margin-inline-start:-68px !important}.me-sm-n17{margin-inline-end:-68px !important}.ma-sm-n17{margin:-68px !important}.mt-sm-n18,.my-sm-n18{margin-top:-72px !important}.mr-sm-n18,.mx-sm-n18{margin-right:-72px !important}.ml-sm-n18,.mx-sm-n18{margin-left:-72px !important}.mb-sm-n18,.my-sm-n18{margin-bottom:-72px !important}.ms-sm-n18{margin-inline-start:-72px !important}.me-sm-n18{margin-inline-end:-72px !important}.ma-sm-n18{margin:-72px !important}.mt-sm-n19,.my-sm-n19{margin-top:-76px !important}.mr-sm-n19,.mx-sm-n19{margin-right:-76px !important}.ml-sm-n19,.mx-sm-n19{margin-left:-76px !important}.mb-sm-n19,.my-sm-n19{margin-bottom:-76px !important}.ms-sm-n19{margin-inline-start:-76px !important}.me-sm-n19{margin-inline-end:-76px !important}.ma-sm-n19{margin:-76px !important}.mt-sm-n20,.my-sm-n20{margin-top:-80px !important}.mr-sm-n20,.mx-sm-n20{margin-right:-80px !important}.ml-sm-n20,.mx-sm-n20{margin-left:-80px !important}.mb-sm-n20,.my-sm-n20{margin-bottom:-80px !important}.ms-sm-n20{margin-inline-start:-80px !important}.me-sm-n20{margin-inline-end:-80px !important}.ma-sm-n20{margin:-80px !important}}@media screen and (min-width: 960px){.mt-md-0,.my-md-0{margin-top:0 !important}.mr-md-0,.mx-md-0{margin-right:0 !important}.ml-md-0,.mx-md-0{margin-left:0 !important}.mb-md-0,.my-md-0{margin-bottom:0 !important}.ms-md-0{margin-inline-start:0 !important}.me-md-0{margin-inline-end:0 !important}.ma-md-0{margin:0 !important}.mt-md-1,.my-md-1{margin-top:4px !important}.mr-md-1,.mx-md-1{margin-right:4px !important}.ml-md-1,.mx-md-1{margin-left:4px !important}.mb-md-1,.my-md-1{margin-bottom:4px !important}.ms-md-1{margin-inline-start:4px !important}.me-md-1{margin-inline-end:4px !important}.ma-md-1{margin:4px !important}.mt-md-2,.my-md-2{margin-top:8px !important}.mr-md-2,.mx-md-2{margin-right:8px !important}.ml-md-2,.mx-md-2{margin-left:8px !important}.mb-md-2,.my-md-2{margin-bottom:8px !important}.ms-md-2{margin-inline-start:8px !important}.me-md-2{margin-inline-end:8px !important}.ma-md-2{margin:8px !important}.mt-md-3,.my-md-3{margin-top:12px !important}.mr-md-3,.mx-md-3{margin-right:12px !important}.ml-md-3,.mx-md-3{margin-left:12px !important}.mb-md-3,.my-md-3{margin-bottom:12px !important}.ms-md-3{margin-inline-start:12px !important}.me-md-3{margin-inline-end:12px !important}.ma-md-3{margin:12px !important}.mt-md-4,.my-md-4{margin-top:16px !important}.mr-md-4,.mx-md-4{margin-right:16px !important}.ml-md-4,.mx-md-4{margin-left:16px !important}.mb-md-4,.my-md-4{margin-bottom:16px !important}.ms-md-4{margin-inline-start:16px !important}.me-md-4{margin-inline-end:16px !important}.ma-md-4{margin:16px !important}.mt-md-5,.my-md-5{margin-top:20px !important}.mr-md-5,.mx-md-5{margin-right:20px !important}.ml-md-5,.mx-md-5{margin-left:20px !important}.mb-md-5,.my-md-5{margin-bottom:20px !important}.ms-md-5{margin-inline-start:20px !important}.me-md-5{margin-inline-end:20px !important}.ma-md-5{margin:20px !important}.mt-md-6,.my-md-6{margin-top:24px !important}.mr-md-6,.mx-md-6{margin-right:24px !important}.ml-md-6,.mx-md-6{margin-left:24px !important}.mb-md-6,.my-md-6{margin-bottom:24px !important}.ms-md-6{margin-inline-start:24px !important}.me-md-6{margin-inline-end:24px !important}.ma-md-6{margin:24px !important}.mt-md-7,.my-md-7{margin-top:28px !important}.mr-md-7,.mx-md-7{margin-right:28px !important}.ml-md-7,.mx-md-7{margin-left:28px !important}.mb-md-7,.my-md-7{margin-bottom:28px !important}.ms-md-7{margin-inline-start:28px !important}.me-md-7{margin-inline-end:28px !important}.ma-md-7{margin:28px !important}.mt-md-8,.my-md-8{margin-top:32px !important}.mr-md-8,.mx-md-8{margin-right:32px !important}.ml-md-8,.mx-md-8{margin-left:32px !important}.mb-md-8,.my-md-8{margin-bottom:32px !important}.ms-md-8{margin-inline-start:32px !important}.me-md-8{margin-inline-end:32px !important}.ma-md-8{margin:32px !important}.mt-md-9,.my-md-9{margin-top:36px !important}.mr-md-9,.mx-md-9{margin-right:36px !important}.ml-md-9,.mx-md-9{margin-left:36px !important}.mb-md-9,.my-md-9{margin-bottom:36px !important}.ms-md-9{margin-inline-start:36px !important}.me-md-9{margin-inline-end:36px !important}.ma-md-9{margin:36px !important}.mt-md-10,.my-md-10{margin-top:40px !important}.mr-md-10,.mx-md-10{margin-right:40px !important}.ml-md-10,.mx-md-10{margin-left:40px !important}.mb-md-10,.my-md-10{margin-bottom:40px !important}.ms-md-10{margin-inline-start:40px !important}.me-md-10{margin-inline-end:40px !important}.ma-md-10{margin:40px !important}.mt-md-11,.my-md-11{margin-top:44px !important}.mr-md-11,.mx-md-11{margin-right:44px !important}.ml-md-11,.mx-md-11{margin-left:44px !important}.mb-md-11,.my-md-11{margin-bottom:44px !important}.ms-md-11{margin-inline-start:44px !important}.me-md-11{margin-inline-end:44px !important}.ma-md-11{margin:44px !important}.mt-md-12,.my-md-12{margin-top:48px !important}.mr-md-12,.mx-md-12{margin-right:48px !important}.ml-md-12,.mx-md-12{margin-left:48px !important}.mb-md-12,.my-md-12{margin-bottom:48px !important}.ms-md-12{margin-inline-start:48px !important}.me-md-12{margin-inline-end:48px !important}.ma-md-12{margin:48px !important}.mt-md-13,.my-md-13{margin-top:52px !important}.mr-md-13,.mx-md-13{margin-right:52px !important}.ml-md-13,.mx-md-13{margin-left:52px !important}.mb-md-13,.my-md-13{margin-bottom:52px !important}.ms-md-13{margin-inline-start:52px !important}.me-md-13{margin-inline-end:52px !important}.ma-md-13{margin:52px !important}.mt-md-14,.my-md-14{margin-top:56px !important}.mr-md-14,.mx-md-14{margin-right:56px !important}.ml-md-14,.mx-md-14{margin-left:56px !important}.mb-md-14,.my-md-14{margin-bottom:56px !important}.ms-md-14{margin-inline-start:56px !important}.me-md-14{margin-inline-end:56px !important}.ma-md-14{margin:56px !important}.mt-md-15,.my-md-15{margin-top:60px !important}.mr-md-15,.mx-md-15{margin-right:60px !important}.ml-md-15,.mx-md-15{margin-left:60px !important}.mb-md-15,.my-md-15{margin-bottom:60px !important}.ms-md-15{margin-inline-start:60px !important}.me-md-15{margin-inline-end:60px !important}.ma-md-15{margin:60px !important}.mt-md-16,.my-md-16{margin-top:64px !important}.mr-md-16,.mx-md-16{margin-right:64px !important}.ml-md-16,.mx-md-16{margin-left:64px !important}.mb-md-16,.my-md-16{margin-bottom:64px !important}.ms-md-16{margin-inline-start:64px !important}.me-md-16{margin-inline-end:64px !important}.ma-md-16{margin:64px !important}.mt-md-17,.my-md-17{margin-top:68px !important}.mr-md-17,.mx-md-17{margin-right:68px !important}.ml-md-17,.mx-md-17{margin-left:68px !important}.mb-md-17,.my-md-17{margin-bottom:68px !important}.ms-md-17{margin-inline-start:68px !important}.me-md-17{margin-inline-end:68px !important}.ma-md-17{margin:68px !important}.mt-md-18,.my-md-18{margin-top:72px !important}.mr-md-18,.mx-md-18{margin-right:72px !important}.ml-md-18,.mx-md-18{margin-left:72px !important}.mb-md-18,.my-md-18{margin-bottom:72px !important}.ms-md-18{margin-inline-start:72px !important}.me-md-18{margin-inline-end:72px !important}.ma-md-18{margin:72px !important}.mt-md-19,.my-md-19{margin-top:76px !important}.mr-md-19,.mx-md-19{margin-right:76px !important}.ml-md-19,.mx-md-19{margin-left:76px !important}.mb-md-19,.my-md-19{margin-bottom:76px !important}.ms-md-19{margin-inline-start:76px !important}.me-md-19{margin-inline-end:76px !important}.ma-md-19{margin:76px !important}.mt-md-20,.my-md-20{margin-top:80px !important}.mr-md-20,.mx-md-20{margin-right:80px !important}.ml-md-20,.mx-md-20{margin-left:80px !important}.mb-md-20,.my-md-20{margin-bottom:80px !important}.ms-md-20{margin-inline-start:80px !important}.me-md-20{margin-inline-end:80px !important}.ma-md-20{margin:80px !important}.mt-md-auto,.my-md-auto{margin-top:auto !important}.mr-md-auto,.mx-md-auto{margin-right:auto !important}.ml-md-auto,.mx-md-auto{margin-left:auto !important}.mb-md-auto,.my-md-auto{margin-bottom:auto !important}.ms-md-auto{margin-inline-start:auto !important}.me-md-auto{margin-inline-end:auto !important}.ma-md-auto{margin:auto !important}.pt-md-0,.py-md-0{padding-top:0 !important}.pr-md-0,.px-md-0{padding-right:0 !important}.pl-md-0,.px-md-0{padding-left:0 !important}.pb-md-0,.py-md-0{padding-bottom:0 !important}.ps-md-0{padding-inline-start:0 !important}.pe-md-0{padding-inline-end:0 !important}.pa-md-0{padding:0 !important}.pt-md-1,.py-md-1{padding-top:4px !important}.pr-md-1,.px-md-1{padding-right:4px !important}.pl-md-1,.px-md-1{padding-left:4px !important}.pb-md-1,.py-md-1{padding-bottom:4px !important}.ps-md-1{padding-inline-start:4px !important}.pe-md-1{padding-inline-end:4px !important}.pa-md-1{padding:4px !important}.pt-md-2,.py-md-2{padding-top:8px !important}.pr-md-2,.px-md-2{padding-right:8px !important}.pl-md-2,.px-md-2{padding-left:8px !important}.pb-md-2,.py-md-2{padding-bottom:8px !important}.ps-md-2{padding-inline-start:8px !important}.pe-md-2{padding-inline-end:8px !important}.pa-md-2{padding:8px !important}.pt-md-3,.py-md-3{padding-top:12px !important}.pr-md-3,.px-md-3{padding-right:12px !important}.pl-md-3,.px-md-3{padding-left:12px !important}.pb-md-3,.py-md-3{padding-bottom:12px !important}.ps-md-3{padding-inline-start:12px !important}.pe-md-3{padding-inline-end:12px !important}.pa-md-3{padding:12px !important}.pt-md-4,.py-md-4{padding-top:16px !important}.pr-md-4,.px-md-4{padding-right:16px !important}.pl-md-4,.px-md-4{padding-left:16px !important}.pb-md-4,.py-md-4{padding-bottom:16px !important}.ps-md-4{padding-inline-start:16px !important}.pe-md-4{padding-inline-end:16px !important}.pa-md-4{padding:16px !important}.pt-md-5,.py-md-5{padding-top:20px !important}.pr-md-5,.px-md-5{padding-right:20px !important}.pl-md-5,.px-md-5{padding-left:20px !important}.pb-md-5,.py-md-5{padding-bottom:20px !important}.ps-md-5{padding-inline-start:20px !important}.pe-md-5{padding-inline-end:20px !important}.pa-md-5{padding:20px !important}.pt-md-6,.py-md-6{padding-top:24px !important}.pr-md-6,.px-md-6{padding-right:24px !important}.pl-md-6,.px-md-6{padding-left:24px !important}.pb-md-6,.py-md-6{padding-bottom:24px !important}.ps-md-6{padding-inline-start:24px !important}.pe-md-6{padding-inline-end:24px !important}.pa-md-6{padding:24px !important}.pt-md-7,.py-md-7{padding-top:28px !important}.pr-md-7,.px-md-7{padding-right:28px !important}.pl-md-7,.px-md-7{padding-left:28px !important}.pb-md-7,.py-md-7{padding-bottom:28px !important}.ps-md-7{padding-inline-start:28px !important}.pe-md-7{padding-inline-end:28px !important}.pa-md-7{padding:28px !important}.pt-md-8,.py-md-8{padding-top:32px !important}.pr-md-8,.px-md-8{padding-right:32px !important}.pl-md-8,.px-md-8{padding-left:32px !important}.pb-md-8,.py-md-8{padding-bottom:32px !important}.ps-md-8{padding-inline-start:32px !important}.pe-md-8{padding-inline-end:32px !important}.pa-md-8{padding:32px !important}.pt-md-9,.py-md-9{padding-top:36px !important}.pr-md-9,.px-md-9{padding-right:36px !important}.pl-md-9,.px-md-9{padding-left:36px !important}.pb-md-9,.py-md-9{padding-bottom:36px !important}.ps-md-9{padding-inline-start:36px !important}.pe-md-9{padding-inline-end:36px !important}.pa-md-9{padding:36px !important}.pt-md-10,.py-md-10{padding-top:40px !important}.pr-md-10,.px-md-10{padding-right:40px !important}.pl-md-10,.px-md-10{padding-left:40px !important}.pb-md-10,.py-md-10{padding-bottom:40px !important}.ps-md-10{padding-inline-start:40px !important}.pe-md-10{padding-inline-end:40px !important}.pa-md-10{padding:40px !important}.pt-md-11,.py-md-11{padding-top:44px !important}.pr-md-11,.px-md-11{padding-right:44px !important}.pl-md-11,.px-md-11{padding-left:44px !important}.pb-md-11,.py-md-11{padding-bottom:44px !important}.ps-md-11{padding-inline-start:44px !important}.pe-md-11{padding-inline-end:44px !important}.pa-md-11{padding:44px !important}.pt-md-12,.py-md-12{padding-top:48px !important}.pr-md-12,.px-md-12{padding-right:48px !important}.pl-md-12,.px-md-12{padding-left:48px !important}.pb-md-12,.py-md-12{padding-bottom:48px !important}.ps-md-12{padding-inline-start:48px !important}.pe-md-12{padding-inline-end:48px !important}.pa-md-12{padding:48px !important}.pt-md-13,.py-md-13{padding-top:52px !important}.pr-md-13,.px-md-13{padding-right:52px !important}.pl-md-13,.px-md-13{padding-left:52px !important}.pb-md-13,.py-md-13{padding-bottom:52px !important}.ps-md-13{padding-inline-start:52px !important}.pe-md-13{padding-inline-end:52px !important}.pa-md-13{padding:52px !important}.pt-md-14,.py-md-14{padding-top:56px !important}.pr-md-14,.px-md-14{padding-right:56px !important}.pl-md-14,.px-md-14{padding-left:56px !important}.pb-md-14,.py-md-14{padding-bottom:56px !important}.ps-md-14{padding-inline-start:56px !important}.pe-md-14{padding-inline-end:56px !important}.pa-md-14{padding:56px !important}.pt-md-15,.py-md-15{padding-top:60px !important}.pr-md-15,.px-md-15{padding-right:60px !important}.pl-md-15,.px-md-15{padding-left:60px !important}.pb-md-15,.py-md-15{padding-bottom:60px !important}.ps-md-15{padding-inline-start:60px !important}.pe-md-15{padding-inline-end:60px !important}.pa-md-15{padding:60px !important}.pt-md-16,.py-md-16{padding-top:64px !important}.pr-md-16,.px-md-16{padding-right:64px !important}.pl-md-16,.px-md-16{padding-left:64px !important}.pb-md-16,.py-md-16{padding-bottom:64px !important}.ps-md-16{padding-inline-start:64px !important}.pe-md-16{padding-inline-end:64px !important}.pa-md-16{padding:64px !important}.pt-md-17,.py-md-17{padding-top:68px !important}.pr-md-17,.px-md-17{padding-right:68px !important}.pl-md-17,.px-md-17{padding-left:68px !important}.pb-md-17,.py-md-17{padding-bottom:68px !important}.ps-md-17{padding-inline-start:68px !important}.pe-md-17{padding-inline-end:68px !important}.pa-md-17{padding:68px !important}.pt-md-18,.py-md-18{padding-top:72px !important}.pr-md-18,.px-md-18{padding-right:72px !important}.pl-md-18,.px-md-18{padding-left:72px !important}.pb-md-18,.py-md-18{padding-bottom:72px !important}.ps-md-18{padding-inline-start:72px !important}.pe-md-18{padding-inline-end:72px !important}.pa-md-18{padding:72px !important}.pt-md-19,.py-md-19{padding-top:76px !important}.pr-md-19,.px-md-19{padding-right:76px !important}.pl-md-19,.px-md-19{padding-left:76px !important}.pb-md-19,.py-md-19{padding-bottom:76px !important}.ps-md-19{padding-inline-start:76px !important}.pe-md-19{padding-inline-end:76px !important}.pa-md-19{padding:76px !important}.pt-md-20,.py-md-20{padding-top:80px !important}.pr-md-20,.px-md-20{padding-right:80px !important}.pl-md-20,.px-md-20{padding-left:80px !important}.pb-md-20,.py-md-20{padding-bottom:80px !important}.ps-md-20{padding-inline-start:80px !important}.pe-md-20{padding-inline-end:80px !important}.pa-md-20{padding:80px !important}.pt-md-auto,.py-md-auto{padding-top:auto !important}.pr-md-auto,.px-md-auto{padding-right:auto !important}.pl-md-auto,.px-md-auto{padding-left:auto !important}.pb-md-auto,.py-md-auto{padding-bottom:auto !important}.ps-md-auto{padding-inline-start:auto !important}.pe-md-auto{padding-inline-end:auto !important}.pa-md-auto{padding:auto !important}.mt-md-n1,.my-md-n1{margin-top:-4px !important}.mr-md-n1,.mx-md-n1{margin-right:-4px !important}.ml-md-n1,.mx-md-n1{margin-left:-4px !important}.mb-md-n1,.my-md-n1{margin-bottom:-4px !important}.ms-md-n1{margin-inline-start:-4px !important}.me-md-n1{margin-inline-end:-4px !important}.ma-md-n1{margin:-4px !important}.mt-md-n2,.my-md-n2{margin-top:-8px !important}.mr-md-n2,.mx-md-n2{margin-right:-8px !important}.ml-md-n2,.mx-md-n2{margin-left:-8px !important}.mb-md-n2,.my-md-n2{margin-bottom:-8px !important}.ms-md-n2{margin-inline-start:-8px !important}.me-md-n2{margin-inline-end:-8px !important}.ma-md-n2{margin:-8px !important}.mt-md-n3,.my-md-n3{margin-top:-12px !important}.mr-md-n3,.mx-md-n3{margin-right:-12px !important}.ml-md-n3,.mx-md-n3{margin-left:-12px !important}.mb-md-n3,.my-md-n3{margin-bottom:-12px !important}.ms-md-n3{margin-inline-start:-12px !important}.me-md-n3{margin-inline-end:-12px !important}.ma-md-n3{margin:-12px !important}.mt-md-n4,.my-md-n4{margin-top:-16px !important}.mr-md-n4,.mx-md-n4{margin-right:-16px !important}.ml-md-n4,.mx-md-n4{margin-left:-16px !important}.mb-md-n4,.my-md-n4{margin-bottom:-16px !important}.ms-md-n4{margin-inline-start:-16px !important}.me-md-n4{margin-inline-end:-16px !important}.ma-md-n4{margin:-16px !important}.mt-md-n5,.my-md-n5{margin-top:-20px !important}.mr-md-n5,.mx-md-n5{margin-right:-20px !important}.ml-md-n5,.mx-md-n5{margin-left:-20px !important}.mb-md-n5,.my-md-n5{margin-bottom:-20px !important}.ms-md-n5{margin-inline-start:-20px !important}.me-md-n5{margin-inline-end:-20px !important}.ma-md-n5{margin:-20px !important}.mt-md-n6,.my-md-n6{margin-top:-24px !important}.mr-md-n6,.mx-md-n6{margin-right:-24px !important}.ml-md-n6,.mx-md-n6{margin-left:-24px !important}.mb-md-n6,.my-md-n6{margin-bottom:-24px !important}.ms-md-n6{margin-inline-start:-24px !important}.me-md-n6{margin-inline-end:-24px !important}.ma-md-n6{margin:-24px !important}.mt-md-n7,.my-md-n7{margin-top:-28px !important}.mr-md-n7,.mx-md-n7{margin-right:-28px !important}.ml-md-n7,.mx-md-n7{margin-left:-28px !important}.mb-md-n7,.my-md-n7{margin-bottom:-28px !important}.ms-md-n7{margin-inline-start:-28px !important}.me-md-n7{margin-inline-end:-28px !important}.ma-md-n7{margin:-28px !important}.mt-md-n8,.my-md-n8{margin-top:-32px !important}.mr-md-n8,.mx-md-n8{margin-right:-32px !important}.ml-md-n8,.mx-md-n8{margin-left:-32px !important}.mb-md-n8,.my-md-n8{margin-bottom:-32px !important}.ms-md-n8{margin-inline-start:-32px !important}.me-md-n8{margin-inline-end:-32px !important}.ma-md-n8{margin:-32px !important}.mt-md-n9,.my-md-n9{margin-top:-36px !important}.mr-md-n9,.mx-md-n9{margin-right:-36px !important}.ml-md-n9,.mx-md-n9{margin-left:-36px !important}.mb-md-n9,.my-md-n9{margin-bottom:-36px !important}.ms-md-n9{margin-inline-start:-36px !important}.me-md-n9{margin-inline-end:-36px !important}.ma-md-n9{margin:-36px !important}.mt-md-n10,.my-md-n10{margin-top:-40px !important}.mr-md-n10,.mx-md-n10{margin-right:-40px !important}.ml-md-n10,.mx-md-n10{margin-left:-40px !important}.mb-md-n10,.my-md-n10{margin-bottom:-40px !important}.ms-md-n10{margin-inline-start:-40px !important}.me-md-n10{margin-inline-end:-40px !important}.ma-md-n10{margin:-40px !important}.mt-md-n11,.my-md-n11{margin-top:-44px !important}.mr-md-n11,.mx-md-n11{margin-right:-44px !important}.ml-md-n11,.mx-md-n11{margin-left:-44px !important}.mb-md-n11,.my-md-n11{margin-bottom:-44px !important}.ms-md-n11{margin-inline-start:-44px !important}.me-md-n11{margin-inline-end:-44px !important}.ma-md-n11{margin:-44px !important}.mt-md-n12,.my-md-n12{margin-top:-48px !important}.mr-md-n12,.mx-md-n12{margin-right:-48px !important}.ml-md-n12,.mx-md-n12{margin-left:-48px !important}.mb-md-n12,.my-md-n12{margin-bottom:-48px !important}.ms-md-n12{margin-inline-start:-48px !important}.me-md-n12{margin-inline-end:-48px !important}.ma-md-n12{margin:-48px !important}.mt-md-n13,.my-md-n13{margin-top:-52px !important}.mr-md-n13,.mx-md-n13{margin-right:-52px !important}.ml-md-n13,.mx-md-n13{margin-left:-52px !important}.mb-md-n13,.my-md-n13{margin-bottom:-52px !important}.ms-md-n13{margin-inline-start:-52px !important}.me-md-n13{margin-inline-end:-52px !important}.ma-md-n13{margin:-52px !important}.mt-md-n14,.my-md-n14{margin-top:-56px !important}.mr-md-n14,.mx-md-n14{margin-right:-56px !important}.ml-md-n14,.mx-md-n14{margin-left:-56px !important}.mb-md-n14,.my-md-n14{margin-bottom:-56px !important}.ms-md-n14{margin-inline-start:-56px !important}.me-md-n14{margin-inline-end:-56px !important}.ma-md-n14{margin:-56px !important}.mt-md-n15,.my-md-n15{margin-top:-60px !important}.mr-md-n15,.mx-md-n15{margin-right:-60px !important}.ml-md-n15,.mx-md-n15{margin-left:-60px !important}.mb-md-n15,.my-md-n15{margin-bottom:-60px !important}.ms-md-n15{margin-inline-start:-60px !important}.me-md-n15{margin-inline-end:-60px !important}.ma-md-n15{margin:-60px !important}.mt-md-n16,.my-md-n16{margin-top:-64px !important}.mr-md-n16,.mx-md-n16{margin-right:-64px !important}.ml-md-n16,.mx-md-n16{margin-left:-64px !important}.mb-md-n16,.my-md-n16{margin-bottom:-64px !important}.ms-md-n16{margin-inline-start:-64px !important}.me-md-n16{margin-inline-end:-64px !important}.ma-md-n16{margin:-64px !important}.mt-md-n17,.my-md-n17{margin-top:-68px !important}.mr-md-n17,.mx-md-n17{margin-right:-68px !important}.ml-md-n17,.mx-md-n17{margin-left:-68px !important}.mb-md-n17,.my-md-n17{margin-bottom:-68px !important}.ms-md-n17{margin-inline-start:-68px !important}.me-md-n17{margin-inline-end:-68px !important}.ma-md-n17{margin:-68px !important}.mt-md-n18,.my-md-n18{margin-top:-72px !important}.mr-md-n18,.mx-md-n18{margin-right:-72px !important}.ml-md-n18,.mx-md-n18{margin-left:-72px !important}.mb-md-n18,.my-md-n18{margin-bottom:-72px !important}.ms-md-n18{margin-inline-start:-72px !important}.me-md-n18{margin-inline-end:-72px !important}.ma-md-n18{margin:-72px !important}.mt-md-n19,.my-md-n19{margin-top:-76px !important}.mr-md-n19,.mx-md-n19{margin-right:-76px !important}.ml-md-n19,.mx-md-n19{margin-left:-76px !important}.mb-md-n19,.my-md-n19{margin-bottom:-76px !important}.ms-md-n19{margin-inline-start:-76px !important}.me-md-n19{margin-inline-end:-76px !important}.ma-md-n19{margin:-76px !important}.mt-md-n20,.my-md-n20{margin-top:-80px !important}.mr-md-n20,.mx-md-n20{margin-right:-80px !important}.ml-md-n20,.mx-md-n20{margin-left:-80px !important}.mb-md-n20,.my-md-n20{margin-bottom:-80px !important}.ms-md-n20{margin-inline-start:-80px !important}.me-md-n20{margin-inline-end:-80px !important}.ma-md-n20{margin:-80px !important}}@media screen and (min-width: 1280px){.mt-lg-0,.my-lg-0{margin-top:0 !important}.mr-lg-0,.mx-lg-0{margin-right:0 !important}.ml-lg-0,.mx-lg-0{margin-left:0 !important}.mb-lg-0,.my-lg-0{margin-bottom:0 !important}.ms-lg-0{margin-inline-start:0 !important}.me-lg-0{margin-inline-end:0 !important}.ma-lg-0{margin:0 !important}.mt-lg-1,.my-lg-1{margin-top:4px !important}.mr-lg-1,.mx-lg-1{margin-right:4px !important}.ml-lg-1,.mx-lg-1{margin-left:4px !important}.mb-lg-1,.my-lg-1{margin-bottom:4px !important}.ms-lg-1{margin-inline-start:4px !important}.me-lg-1{margin-inline-end:4px !important}.ma-lg-1{margin:4px !important}.mt-lg-2,.my-lg-2{margin-top:8px !important}.mr-lg-2,.mx-lg-2{margin-right:8px !important}.ml-lg-2,.mx-lg-2{margin-left:8px !important}.mb-lg-2,.my-lg-2{margin-bottom:8px !important}.ms-lg-2{margin-inline-start:8px !important}.me-lg-2{margin-inline-end:8px !important}.ma-lg-2{margin:8px !important}.mt-lg-3,.my-lg-3{margin-top:12px !important}.mr-lg-3,.mx-lg-3{margin-right:12px !important}.ml-lg-3,.mx-lg-3{margin-left:12px !important}.mb-lg-3,.my-lg-3{margin-bottom:12px !important}.ms-lg-3{margin-inline-start:12px !important}.me-lg-3{margin-inline-end:12px !important}.ma-lg-3{margin:12px !important}.mt-lg-4,.my-lg-4{margin-top:16px !important}.mr-lg-4,.mx-lg-4{margin-right:16px !important}.ml-lg-4,.mx-lg-4{margin-left:16px !important}.mb-lg-4,.my-lg-4{margin-bottom:16px !important}.ms-lg-4{margin-inline-start:16px !important}.me-lg-4{margin-inline-end:16px !important}.ma-lg-4{margin:16px !important}.mt-lg-5,.my-lg-5{margin-top:20px !important}.mr-lg-5,.mx-lg-5{margin-right:20px !important}.ml-lg-5,.mx-lg-5{margin-left:20px !important}.mb-lg-5,.my-lg-5{margin-bottom:20px !important}.ms-lg-5{margin-inline-start:20px !important}.me-lg-5{margin-inline-end:20px !important}.ma-lg-5{margin:20px !important}.mt-lg-6,.my-lg-6{margin-top:24px !important}.mr-lg-6,.mx-lg-6{margin-right:24px !important}.ml-lg-6,.mx-lg-6{margin-left:24px !important}.mb-lg-6,.my-lg-6{margin-bottom:24px !important}.ms-lg-6{margin-inline-start:24px !important}.me-lg-6{margin-inline-end:24px !important}.ma-lg-6{margin:24px !important}.mt-lg-7,.my-lg-7{margin-top:28px !important}.mr-lg-7,.mx-lg-7{margin-right:28px !important}.ml-lg-7,.mx-lg-7{margin-left:28px !important}.mb-lg-7,.my-lg-7{margin-bottom:28px !important}.ms-lg-7{margin-inline-start:28px !important}.me-lg-7{margin-inline-end:28px !important}.ma-lg-7{margin:28px !important}.mt-lg-8,.my-lg-8{margin-top:32px !important}.mr-lg-8,.mx-lg-8{margin-right:32px !important}.ml-lg-8,.mx-lg-8{margin-left:32px !important}.mb-lg-8,.my-lg-8{margin-bottom:32px !important}.ms-lg-8{margin-inline-start:32px !important}.me-lg-8{margin-inline-end:32px !important}.ma-lg-8{margin:32px !important}.mt-lg-9,.my-lg-9{margin-top:36px !important}.mr-lg-9,.mx-lg-9{margin-right:36px !important}.ml-lg-9,.mx-lg-9{margin-left:36px !important}.mb-lg-9,.my-lg-9{margin-bottom:36px !important}.ms-lg-9{margin-inline-start:36px !important}.me-lg-9{margin-inline-end:36px !important}.ma-lg-9{margin:36px !important}.mt-lg-10,.my-lg-10{margin-top:40px !important}.mr-lg-10,.mx-lg-10{margin-right:40px !important}.ml-lg-10,.mx-lg-10{margin-left:40px !important}.mb-lg-10,.my-lg-10{margin-bottom:40px !important}.ms-lg-10{margin-inline-start:40px !important}.me-lg-10{margin-inline-end:40px !important}.ma-lg-10{margin:40px !important}.mt-lg-11,.my-lg-11{margin-top:44px !important}.mr-lg-11,.mx-lg-11{margin-right:44px !important}.ml-lg-11,.mx-lg-11{margin-left:44px !important}.mb-lg-11,.my-lg-11{margin-bottom:44px !important}.ms-lg-11{margin-inline-start:44px !important}.me-lg-11{margin-inline-end:44px !important}.ma-lg-11{margin:44px !important}.mt-lg-12,.my-lg-12{margin-top:48px !important}.mr-lg-12,.mx-lg-12{margin-right:48px !important}.ml-lg-12,.mx-lg-12{margin-left:48px !important}.mb-lg-12,.my-lg-12{margin-bottom:48px !important}.ms-lg-12{margin-inline-start:48px !important}.me-lg-12{margin-inline-end:48px !important}.ma-lg-12{margin:48px !important}.mt-lg-13,.my-lg-13{margin-top:52px !important}.mr-lg-13,.mx-lg-13{margin-right:52px !important}.ml-lg-13,.mx-lg-13{margin-left:52px !important}.mb-lg-13,.my-lg-13{margin-bottom:52px !important}.ms-lg-13{margin-inline-start:52px !important}.me-lg-13{margin-inline-end:52px !important}.ma-lg-13{margin:52px !important}.mt-lg-14,.my-lg-14{margin-top:56px !important}.mr-lg-14,.mx-lg-14{margin-right:56px !important}.ml-lg-14,.mx-lg-14{margin-left:56px !important}.mb-lg-14,.my-lg-14{margin-bottom:56px !important}.ms-lg-14{margin-inline-start:56px !important}.me-lg-14{margin-inline-end:56px !important}.ma-lg-14{margin:56px !important}.mt-lg-15,.my-lg-15{margin-top:60px !important}.mr-lg-15,.mx-lg-15{margin-right:60px !important}.ml-lg-15,.mx-lg-15{margin-left:60px !important}.mb-lg-15,.my-lg-15{margin-bottom:60px !important}.ms-lg-15{margin-inline-start:60px !important}.me-lg-15{margin-inline-end:60px !important}.ma-lg-15{margin:60px !important}.mt-lg-16,.my-lg-16{margin-top:64px !important}.mr-lg-16,.mx-lg-16{margin-right:64px !important}.ml-lg-16,.mx-lg-16{margin-left:64px !important}.mb-lg-16,.my-lg-16{margin-bottom:64px !important}.ms-lg-16{margin-inline-start:64px !important}.me-lg-16{margin-inline-end:64px !important}.ma-lg-16{margin:64px !important}.mt-lg-17,.my-lg-17{margin-top:68px !important}.mr-lg-17,.mx-lg-17{margin-right:68px !important}.ml-lg-17,.mx-lg-17{margin-left:68px !important}.mb-lg-17,.my-lg-17{margin-bottom:68px !important}.ms-lg-17{margin-inline-start:68px !important}.me-lg-17{margin-inline-end:68px !important}.ma-lg-17{margin:68px !important}.mt-lg-18,.my-lg-18{margin-top:72px !important}.mr-lg-18,.mx-lg-18{margin-right:72px !important}.ml-lg-18,.mx-lg-18{margin-left:72px !important}.mb-lg-18,.my-lg-18{margin-bottom:72px !important}.ms-lg-18{margin-inline-start:72px !important}.me-lg-18{margin-inline-end:72px !important}.ma-lg-18{margin:72px !important}.mt-lg-19,.my-lg-19{margin-top:76px !important}.mr-lg-19,.mx-lg-19{margin-right:76px !important}.ml-lg-19,.mx-lg-19{margin-left:76px !important}.mb-lg-19,.my-lg-19{margin-bottom:76px !important}.ms-lg-19{margin-inline-start:76px !important}.me-lg-19{margin-inline-end:76px !important}.ma-lg-19{margin:76px !important}.mt-lg-20,.my-lg-20{margin-top:80px !important}.mr-lg-20,.mx-lg-20{margin-right:80px !important}.ml-lg-20,.mx-lg-20{margin-left:80px !important}.mb-lg-20,.my-lg-20{margin-bottom:80px !important}.ms-lg-20{margin-inline-start:80px !important}.me-lg-20{margin-inline-end:80px !important}.ma-lg-20{margin:80px !important}.mt-lg-auto,.my-lg-auto{margin-top:auto !important}.mr-lg-auto,.mx-lg-auto{margin-right:auto !important}.ml-lg-auto,.mx-lg-auto{margin-left:auto !important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto !important}.ms-lg-auto{margin-inline-start:auto !important}.me-lg-auto{margin-inline-end:auto !important}.ma-lg-auto{margin:auto !important}.pt-lg-0,.py-lg-0{padding-top:0 !important}.pr-lg-0,.px-lg-0{padding-right:0 !important}.pl-lg-0,.px-lg-0{padding-left:0 !important}.pb-lg-0,.py-lg-0{padding-bottom:0 !important}.ps-lg-0{padding-inline-start:0 !important}.pe-lg-0{padding-inline-end:0 !important}.pa-lg-0{padding:0 !important}.pt-lg-1,.py-lg-1{padding-top:4px !important}.pr-lg-1,.px-lg-1{padding-right:4px !important}.pl-lg-1,.px-lg-1{padding-left:4px !important}.pb-lg-1,.py-lg-1{padding-bottom:4px !important}.ps-lg-1{padding-inline-start:4px !important}.pe-lg-1{padding-inline-end:4px !important}.pa-lg-1{padding:4px !important}.pt-lg-2,.py-lg-2{padding-top:8px !important}.pr-lg-2,.px-lg-2{padding-right:8px !important}.pl-lg-2,.px-lg-2{padding-left:8px !important}.pb-lg-2,.py-lg-2{padding-bottom:8px !important}.ps-lg-2{padding-inline-start:8px !important}.pe-lg-2{padding-inline-end:8px !important}.pa-lg-2{padding:8px !important}.pt-lg-3,.py-lg-3{padding-top:12px !important}.pr-lg-3,.px-lg-3{padding-right:12px !important}.pl-lg-3,.px-lg-3{padding-left:12px !important}.pb-lg-3,.py-lg-3{padding-bottom:12px !important}.ps-lg-3{padding-inline-start:12px !important}.pe-lg-3{padding-inline-end:12px !important}.pa-lg-3{padding:12px !important}.pt-lg-4,.py-lg-4{padding-top:16px !important}.pr-lg-4,.px-lg-4{padding-right:16px !important}.pl-lg-4,.px-lg-4{padding-left:16px !important}.pb-lg-4,.py-lg-4{padding-bottom:16px !important}.ps-lg-4{padding-inline-start:16px !important}.pe-lg-4{padding-inline-end:16px !important}.pa-lg-4{padding:16px !important}.pt-lg-5,.py-lg-5{padding-top:20px !important}.pr-lg-5,.px-lg-5{padding-right:20px !important}.pl-lg-5,.px-lg-5{padding-left:20px !important}.pb-lg-5,.py-lg-5{padding-bottom:20px !important}.ps-lg-5{padding-inline-start:20px !important}.pe-lg-5{padding-inline-end:20px !important}.pa-lg-5{padding:20px !important}.pt-lg-6,.py-lg-6{padding-top:24px !important}.pr-lg-6,.px-lg-6{padding-right:24px !important}.pl-lg-6,.px-lg-6{padding-left:24px !important}.pb-lg-6,.py-lg-6{padding-bottom:24px !important}.ps-lg-6{padding-inline-start:24px !important}.pe-lg-6{padding-inline-end:24px !important}.pa-lg-6{padding:24px !important}.pt-lg-7,.py-lg-7{padding-top:28px !important}.pr-lg-7,.px-lg-7{padding-right:28px !important}.pl-lg-7,.px-lg-7{padding-left:28px !important}.pb-lg-7,.py-lg-7{padding-bottom:28px !important}.ps-lg-7{padding-inline-start:28px !important}.pe-lg-7{padding-inline-end:28px !important}.pa-lg-7{padding:28px !important}.pt-lg-8,.py-lg-8{padding-top:32px !important}.pr-lg-8,.px-lg-8{padding-right:32px !important}.pl-lg-8,.px-lg-8{padding-left:32px !important}.pb-lg-8,.py-lg-8{padding-bottom:32px !important}.ps-lg-8{padding-inline-start:32px !important}.pe-lg-8{padding-inline-end:32px !important}.pa-lg-8{padding:32px !important}.pt-lg-9,.py-lg-9{padding-top:36px !important}.pr-lg-9,.px-lg-9{padding-right:36px !important}.pl-lg-9,.px-lg-9{padding-left:36px !important}.pb-lg-9,.py-lg-9{padding-bottom:36px !important}.ps-lg-9{padding-inline-start:36px !important}.pe-lg-9{padding-inline-end:36px !important}.pa-lg-9{padding:36px !important}.pt-lg-10,.py-lg-10{padding-top:40px !important}.pr-lg-10,.px-lg-10{padding-right:40px !important}.pl-lg-10,.px-lg-10{padding-left:40px !important}.pb-lg-10,.py-lg-10{padding-bottom:40px !important}.ps-lg-10{padding-inline-start:40px !important}.pe-lg-10{padding-inline-end:40px !important}.pa-lg-10{padding:40px !important}.pt-lg-11,.py-lg-11{padding-top:44px !important}.pr-lg-11,.px-lg-11{padding-right:44px !important}.pl-lg-11,.px-lg-11{padding-left:44px !important}.pb-lg-11,.py-lg-11{padding-bottom:44px !important}.ps-lg-11{padding-inline-start:44px !important}.pe-lg-11{padding-inline-end:44px !important}.pa-lg-11{padding:44px !important}.pt-lg-12,.py-lg-12{padding-top:48px !important}.pr-lg-12,.px-lg-12{padding-right:48px !important}.pl-lg-12,.px-lg-12{padding-left:48px !important}.pb-lg-12,.py-lg-12{padding-bottom:48px !important}.ps-lg-12{padding-inline-start:48px !important}.pe-lg-12{padding-inline-end:48px !important}.pa-lg-12{padding:48px !important}.pt-lg-13,.py-lg-13{padding-top:52px !important}.pr-lg-13,.px-lg-13{padding-right:52px !important}.pl-lg-13,.px-lg-13{padding-left:52px !important}.pb-lg-13,.py-lg-13{padding-bottom:52px !important}.ps-lg-13{padding-inline-start:52px !important}.pe-lg-13{padding-inline-end:52px !important}.pa-lg-13{padding:52px !important}.pt-lg-14,.py-lg-14{padding-top:56px !important}.pr-lg-14,.px-lg-14{padding-right:56px !important}.pl-lg-14,.px-lg-14{padding-left:56px !important}.pb-lg-14,.py-lg-14{padding-bottom:56px !important}.ps-lg-14{padding-inline-start:56px !important}.pe-lg-14{padding-inline-end:56px !important}.pa-lg-14{padding:56px !important}.pt-lg-15,.py-lg-15{padding-top:60px !important}.pr-lg-15,.px-lg-15{padding-right:60px !important}.pl-lg-15,.px-lg-15{padding-left:60px !important}.pb-lg-15,.py-lg-15{padding-bottom:60px !important}.ps-lg-15{padding-inline-start:60px !important}.pe-lg-15{padding-inline-end:60px !important}.pa-lg-15{padding:60px !important}.pt-lg-16,.py-lg-16{padding-top:64px !important}.pr-lg-16,.px-lg-16{padding-right:64px !important}.pl-lg-16,.px-lg-16{padding-left:64px !important}.pb-lg-16,.py-lg-16{padding-bottom:64px !important}.ps-lg-16{padding-inline-start:64px !important}.pe-lg-16{padding-inline-end:64px !important}.pa-lg-16{padding:64px !important}.pt-lg-17,.py-lg-17{padding-top:68px !important}.pr-lg-17,.px-lg-17{padding-right:68px !important}.pl-lg-17,.px-lg-17{padding-left:68px !important}.pb-lg-17,.py-lg-17{padding-bottom:68px !important}.ps-lg-17{padding-inline-start:68px !important}.pe-lg-17{padding-inline-end:68px !important}.pa-lg-17{padding:68px !important}.pt-lg-18,.py-lg-18{padding-top:72px !important}.pr-lg-18,.px-lg-18{padding-right:72px !important}.pl-lg-18,.px-lg-18{padding-left:72px !important}.pb-lg-18,.py-lg-18{padding-bottom:72px !important}.ps-lg-18{padding-inline-start:72px !important}.pe-lg-18{padding-inline-end:72px !important}.pa-lg-18{padding:72px !important}.pt-lg-19,.py-lg-19{padding-top:76px !important}.pr-lg-19,.px-lg-19{padding-right:76px !important}.pl-lg-19,.px-lg-19{padding-left:76px !important}.pb-lg-19,.py-lg-19{padding-bottom:76px !important}.ps-lg-19{padding-inline-start:76px !important}.pe-lg-19{padding-inline-end:76px !important}.pa-lg-19{padding:76px !important}.pt-lg-20,.py-lg-20{padding-top:80px !important}.pr-lg-20,.px-lg-20{padding-right:80px !important}.pl-lg-20,.px-lg-20{padding-left:80px !important}.pb-lg-20,.py-lg-20{padding-bottom:80px !important}.ps-lg-20{padding-inline-start:80px !important}.pe-lg-20{padding-inline-end:80px !important}.pa-lg-20{padding:80px !important}.pt-lg-auto,.py-lg-auto{padding-top:auto !important}.pr-lg-auto,.px-lg-auto{padding-right:auto !important}.pl-lg-auto,.px-lg-auto{padding-left:auto !important}.pb-lg-auto,.py-lg-auto{padding-bottom:auto !important}.ps-lg-auto{padding-inline-start:auto !important}.pe-lg-auto{padding-inline-end:auto !important}.pa-lg-auto{padding:auto !important}.mt-lg-n1,.my-lg-n1{margin-top:-4px !important}.mr-lg-n1,.mx-lg-n1{margin-right:-4px !important}.ml-lg-n1,.mx-lg-n1{margin-left:-4px !important}.mb-lg-n1,.my-lg-n1{margin-bottom:-4px !important}.ms-lg-n1{margin-inline-start:-4px !important}.me-lg-n1{margin-inline-end:-4px !important}.ma-lg-n1{margin:-4px !important}.mt-lg-n2,.my-lg-n2{margin-top:-8px !important}.mr-lg-n2,.mx-lg-n2{margin-right:-8px !important}.ml-lg-n2,.mx-lg-n2{margin-left:-8px !important}.mb-lg-n2,.my-lg-n2{margin-bottom:-8px !important}.ms-lg-n2{margin-inline-start:-8px !important}.me-lg-n2{margin-inline-end:-8px !important}.ma-lg-n2{margin:-8px !important}.mt-lg-n3,.my-lg-n3{margin-top:-12px !important}.mr-lg-n3,.mx-lg-n3{margin-right:-12px !important}.ml-lg-n3,.mx-lg-n3{margin-left:-12px !important}.mb-lg-n3,.my-lg-n3{margin-bottom:-12px !important}.ms-lg-n3{margin-inline-start:-12px !important}.me-lg-n3{margin-inline-end:-12px !important}.ma-lg-n3{margin:-12px !important}.mt-lg-n4,.my-lg-n4{margin-top:-16px !important}.mr-lg-n4,.mx-lg-n4{margin-right:-16px !important}.ml-lg-n4,.mx-lg-n4{margin-left:-16px !important}.mb-lg-n4,.my-lg-n4{margin-bottom:-16px !important}.ms-lg-n4{margin-inline-start:-16px !important}.me-lg-n4{margin-inline-end:-16px !important}.ma-lg-n4{margin:-16px !important}.mt-lg-n5,.my-lg-n5{margin-top:-20px !important}.mr-lg-n5,.mx-lg-n5{margin-right:-20px !important}.ml-lg-n5,.mx-lg-n5{margin-left:-20px !important}.mb-lg-n5,.my-lg-n5{margin-bottom:-20px !important}.ms-lg-n5{margin-inline-start:-20px !important}.me-lg-n5{margin-inline-end:-20px !important}.ma-lg-n5{margin:-20px !important}.mt-lg-n6,.my-lg-n6{margin-top:-24px !important}.mr-lg-n6,.mx-lg-n6{margin-right:-24px !important}.ml-lg-n6,.mx-lg-n6{margin-left:-24px !important}.mb-lg-n6,.my-lg-n6{margin-bottom:-24px !important}.ms-lg-n6{margin-inline-start:-24px !important}.me-lg-n6{margin-inline-end:-24px !important}.ma-lg-n6{margin:-24px !important}.mt-lg-n7,.my-lg-n7{margin-top:-28px !important}.mr-lg-n7,.mx-lg-n7{margin-right:-28px !important}.ml-lg-n7,.mx-lg-n7{margin-left:-28px !important}.mb-lg-n7,.my-lg-n7{margin-bottom:-28px !important}.ms-lg-n7{margin-inline-start:-28px !important}.me-lg-n7{margin-inline-end:-28px !important}.ma-lg-n7{margin:-28px !important}.mt-lg-n8,.my-lg-n8{margin-top:-32px !important}.mr-lg-n8,.mx-lg-n8{margin-right:-32px !important}.ml-lg-n8,.mx-lg-n8{margin-left:-32px !important}.mb-lg-n8,.my-lg-n8{margin-bottom:-32px !important}.ms-lg-n8{margin-inline-start:-32px !important}.me-lg-n8{margin-inline-end:-32px !important}.ma-lg-n8{margin:-32px !important}.mt-lg-n9,.my-lg-n9{margin-top:-36px !important}.mr-lg-n9,.mx-lg-n9{margin-right:-36px !important}.ml-lg-n9,.mx-lg-n9{margin-left:-36px !important}.mb-lg-n9,.my-lg-n9{margin-bottom:-36px !important}.ms-lg-n9{margin-inline-start:-36px !important}.me-lg-n9{margin-inline-end:-36px !important}.ma-lg-n9{margin:-36px !important}.mt-lg-n10,.my-lg-n10{margin-top:-40px !important}.mr-lg-n10,.mx-lg-n10{margin-right:-40px !important}.ml-lg-n10,.mx-lg-n10{margin-left:-40px !important}.mb-lg-n10,.my-lg-n10{margin-bottom:-40px !important}.ms-lg-n10{margin-inline-start:-40px !important}.me-lg-n10{margin-inline-end:-40px !important}.ma-lg-n10{margin:-40px !important}.mt-lg-n11,.my-lg-n11{margin-top:-44px !important}.mr-lg-n11,.mx-lg-n11{margin-right:-44px !important}.ml-lg-n11,.mx-lg-n11{margin-left:-44px !important}.mb-lg-n11,.my-lg-n11{margin-bottom:-44px !important}.ms-lg-n11{margin-inline-start:-44px !important}.me-lg-n11{margin-inline-end:-44px !important}.ma-lg-n11{margin:-44px !important}.mt-lg-n12,.my-lg-n12{margin-top:-48px !important}.mr-lg-n12,.mx-lg-n12{margin-right:-48px !important}.ml-lg-n12,.mx-lg-n12{margin-left:-48px !important}.mb-lg-n12,.my-lg-n12{margin-bottom:-48px !important}.ms-lg-n12{margin-inline-start:-48px !important}.me-lg-n12{margin-inline-end:-48px !important}.ma-lg-n12{margin:-48px !important}.mt-lg-n13,.my-lg-n13{margin-top:-52px !important}.mr-lg-n13,.mx-lg-n13{margin-right:-52px !important}.ml-lg-n13,.mx-lg-n13{margin-left:-52px !important}.mb-lg-n13,.my-lg-n13{margin-bottom:-52px !important}.ms-lg-n13{margin-inline-start:-52px !important}.me-lg-n13{margin-inline-end:-52px !important}.ma-lg-n13{margin:-52px !important}.mt-lg-n14,.my-lg-n14{margin-top:-56px !important}.mr-lg-n14,.mx-lg-n14{margin-right:-56px !important}.ml-lg-n14,.mx-lg-n14{margin-left:-56px !important}.mb-lg-n14,.my-lg-n14{margin-bottom:-56px !important}.ms-lg-n14{margin-inline-start:-56px !important}.me-lg-n14{margin-inline-end:-56px !important}.ma-lg-n14{margin:-56px !important}.mt-lg-n15,.my-lg-n15{margin-top:-60px !important}.mr-lg-n15,.mx-lg-n15{margin-right:-60px !important}.ml-lg-n15,.mx-lg-n15{margin-left:-60px !important}.mb-lg-n15,.my-lg-n15{margin-bottom:-60px !important}.ms-lg-n15{margin-inline-start:-60px !important}.me-lg-n15{margin-inline-end:-60px !important}.ma-lg-n15{margin:-60px !important}.mt-lg-n16,.my-lg-n16{margin-top:-64px !important}.mr-lg-n16,.mx-lg-n16{margin-right:-64px !important}.ml-lg-n16,.mx-lg-n16{margin-left:-64px !important}.mb-lg-n16,.my-lg-n16{margin-bottom:-64px !important}.ms-lg-n16{margin-inline-start:-64px !important}.me-lg-n16{margin-inline-end:-64px !important}.ma-lg-n16{margin:-64px !important}.mt-lg-n17,.my-lg-n17{margin-top:-68px !important}.mr-lg-n17,.mx-lg-n17{margin-right:-68px !important}.ml-lg-n17,.mx-lg-n17{margin-left:-68px !important}.mb-lg-n17,.my-lg-n17{margin-bottom:-68px !important}.ms-lg-n17{margin-inline-start:-68px !important}.me-lg-n17{margin-inline-end:-68px !important}.ma-lg-n17{margin:-68px !important}.mt-lg-n18,.my-lg-n18{margin-top:-72px !important}.mr-lg-n18,.mx-lg-n18{margin-right:-72px !important}.ml-lg-n18,.mx-lg-n18{margin-left:-72px !important}.mb-lg-n18,.my-lg-n18{margin-bottom:-72px !important}.ms-lg-n18{margin-inline-start:-72px !important}.me-lg-n18{margin-inline-end:-72px !important}.ma-lg-n18{margin:-72px !important}.mt-lg-n19,.my-lg-n19{margin-top:-76px !important}.mr-lg-n19,.mx-lg-n19{margin-right:-76px !important}.ml-lg-n19,.mx-lg-n19{margin-left:-76px !important}.mb-lg-n19,.my-lg-n19{margin-bottom:-76px !important}.ms-lg-n19{margin-inline-start:-76px !important}.me-lg-n19{margin-inline-end:-76px !important}.ma-lg-n19{margin:-76px !important}.mt-lg-n20,.my-lg-n20{margin-top:-80px !important}.mr-lg-n20,.mx-lg-n20{margin-right:-80px !important}.ml-lg-n20,.mx-lg-n20{margin-left:-80px !important}.mb-lg-n20,.my-lg-n20{margin-bottom:-80px !important}.ms-lg-n20{margin-inline-start:-80px !important}.me-lg-n20{margin-inline-end:-80px !important}.ma-lg-n20{margin:-80px !important}}@media screen and (min-width: 1920px){.mt-xl-0,.my-xl-0{margin-top:0 !important}.mr-xl-0,.mx-xl-0{margin-right:0 !important}.ml-xl-0,.mx-xl-0{margin-left:0 !important}.mb-xl-0,.my-xl-0{margin-bottom:0 !important}.ms-xl-0{margin-inline-start:0 !important}.me-xl-0{margin-inline-end:0 !important}.ma-xl-0{margin:0 !important}.mt-xl-1,.my-xl-1{margin-top:4px !important}.mr-xl-1,.mx-xl-1{margin-right:4px !important}.ml-xl-1,.mx-xl-1{margin-left:4px !important}.mb-xl-1,.my-xl-1{margin-bottom:4px !important}.ms-xl-1{margin-inline-start:4px !important}.me-xl-1{margin-inline-end:4px !important}.ma-xl-1{margin:4px !important}.mt-xl-2,.my-xl-2{margin-top:8px !important}.mr-xl-2,.mx-xl-2{margin-right:8px !important}.ml-xl-2,.mx-xl-2{margin-left:8px !important}.mb-xl-2,.my-xl-2{margin-bottom:8px !important}.ms-xl-2{margin-inline-start:8px !important}.me-xl-2{margin-inline-end:8px !important}.ma-xl-2{margin:8px !important}.mt-xl-3,.my-xl-3{margin-top:12px !important}.mr-xl-3,.mx-xl-3{margin-right:12px !important}.ml-xl-3,.mx-xl-3{margin-left:12px !important}.mb-xl-3,.my-xl-3{margin-bottom:12px !important}.ms-xl-3{margin-inline-start:12px !important}.me-xl-3{margin-inline-end:12px !important}.ma-xl-3{margin:12px !important}.mt-xl-4,.my-xl-4{margin-top:16px !important}.mr-xl-4,.mx-xl-4{margin-right:16px !important}.ml-xl-4,.mx-xl-4{margin-left:16px !important}.mb-xl-4,.my-xl-4{margin-bottom:16px !important}.ms-xl-4{margin-inline-start:16px !important}.me-xl-4{margin-inline-end:16px !important}.ma-xl-4{margin:16px !important}.mt-xl-5,.my-xl-5{margin-top:20px !important}.mr-xl-5,.mx-xl-5{margin-right:20px !important}.ml-xl-5,.mx-xl-5{margin-left:20px !important}.mb-xl-5,.my-xl-5{margin-bottom:20px !important}.ms-xl-5{margin-inline-start:20px !important}.me-xl-5{margin-inline-end:20px !important}.ma-xl-5{margin:20px !important}.mt-xl-6,.my-xl-6{margin-top:24px !important}.mr-xl-6,.mx-xl-6{margin-right:24px !important}.ml-xl-6,.mx-xl-6{margin-left:24px !important}.mb-xl-6,.my-xl-6{margin-bottom:24px !important}.ms-xl-6{margin-inline-start:24px !important}.me-xl-6{margin-inline-end:24px !important}.ma-xl-6{margin:24px !important}.mt-xl-7,.my-xl-7{margin-top:28px !important}.mr-xl-7,.mx-xl-7{margin-right:28px !important}.ml-xl-7,.mx-xl-7{margin-left:28px !important}.mb-xl-7,.my-xl-7{margin-bottom:28px !important}.ms-xl-7{margin-inline-start:28px !important}.me-xl-7{margin-inline-end:28px !important}.ma-xl-7{margin:28px !important}.mt-xl-8,.my-xl-8{margin-top:32px !important}.mr-xl-8,.mx-xl-8{margin-right:32px !important}.ml-xl-8,.mx-xl-8{margin-left:32px !important}.mb-xl-8,.my-xl-8{margin-bottom:32px !important}.ms-xl-8{margin-inline-start:32px !important}.me-xl-8{margin-inline-end:32px !important}.ma-xl-8{margin:32px !important}.mt-xl-9,.my-xl-9{margin-top:36px !important}.mr-xl-9,.mx-xl-9{margin-right:36px !important}.ml-xl-9,.mx-xl-9{margin-left:36px !important}.mb-xl-9,.my-xl-9{margin-bottom:36px !important}.ms-xl-9{margin-inline-start:36px !important}.me-xl-9{margin-inline-end:36px !important}.ma-xl-9{margin:36px !important}.mt-xl-10,.my-xl-10{margin-top:40px !important}.mr-xl-10,.mx-xl-10{margin-right:40px !important}.ml-xl-10,.mx-xl-10{margin-left:40px !important}.mb-xl-10,.my-xl-10{margin-bottom:40px !important}.ms-xl-10{margin-inline-start:40px !important}.me-xl-10{margin-inline-end:40px !important}.ma-xl-10{margin:40px !important}.mt-xl-11,.my-xl-11{margin-top:44px !important}.mr-xl-11,.mx-xl-11{margin-right:44px !important}.ml-xl-11,.mx-xl-11{margin-left:44px !important}.mb-xl-11,.my-xl-11{margin-bottom:44px !important}.ms-xl-11{margin-inline-start:44px !important}.me-xl-11{margin-inline-end:44px !important}.ma-xl-11{margin:44px !important}.mt-xl-12,.my-xl-12{margin-top:48px !important}.mr-xl-12,.mx-xl-12{margin-right:48px !important}.ml-xl-12,.mx-xl-12{margin-left:48px !important}.mb-xl-12,.my-xl-12{margin-bottom:48px !important}.ms-xl-12{margin-inline-start:48px !important}.me-xl-12{margin-inline-end:48px !important}.ma-xl-12{margin:48px !important}.mt-xl-13,.my-xl-13{margin-top:52px !important}.mr-xl-13,.mx-xl-13{margin-right:52px !important}.ml-xl-13,.mx-xl-13{margin-left:52px !important}.mb-xl-13,.my-xl-13{margin-bottom:52px !important}.ms-xl-13{margin-inline-start:52px !important}.me-xl-13{margin-inline-end:52px !important}.ma-xl-13{margin:52px !important}.mt-xl-14,.my-xl-14{margin-top:56px !important}.mr-xl-14,.mx-xl-14{margin-right:56px !important}.ml-xl-14,.mx-xl-14{margin-left:56px !important}.mb-xl-14,.my-xl-14{margin-bottom:56px !important}.ms-xl-14{margin-inline-start:56px !important}.me-xl-14{margin-inline-end:56px !important}.ma-xl-14{margin:56px !important}.mt-xl-15,.my-xl-15{margin-top:60px !important}.mr-xl-15,.mx-xl-15{margin-right:60px !important}.ml-xl-15,.mx-xl-15{margin-left:60px !important}.mb-xl-15,.my-xl-15{margin-bottom:60px !important}.ms-xl-15{margin-inline-start:60px !important}.me-xl-15{margin-inline-end:60px !important}.ma-xl-15{margin:60px !important}.mt-xl-16,.my-xl-16{margin-top:64px !important}.mr-xl-16,.mx-xl-16{margin-right:64px !important}.ml-xl-16,.mx-xl-16{margin-left:64px !important}.mb-xl-16,.my-xl-16{margin-bottom:64px !important}.ms-xl-16{margin-inline-start:64px !important}.me-xl-16{margin-inline-end:64px !important}.ma-xl-16{margin:64px !important}.mt-xl-17,.my-xl-17{margin-top:68px !important}.mr-xl-17,.mx-xl-17{margin-right:68px !important}.ml-xl-17,.mx-xl-17{margin-left:68px !important}.mb-xl-17,.my-xl-17{margin-bottom:68px !important}.ms-xl-17{margin-inline-start:68px !important}.me-xl-17{margin-inline-end:68px !important}.ma-xl-17{margin:68px !important}.mt-xl-18,.my-xl-18{margin-top:72px !important}.mr-xl-18,.mx-xl-18{margin-right:72px !important}.ml-xl-18,.mx-xl-18{margin-left:72px !important}.mb-xl-18,.my-xl-18{margin-bottom:72px !important}.ms-xl-18{margin-inline-start:72px !important}.me-xl-18{margin-inline-end:72px !important}.ma-xl-18{margin:72px !important}.mt-xl-19,.my-xl-19{margin-top:76px !important}.mr-xl-19,.mx-xl-19{margin-right:76px !important}.ml-xl-19,.mx-xl-19{margin-left:76px !important}.mb-xl-19,.my-xl-19{margin-bottom:76px !important}.ms-xl-19{margin-inline-start:76px !important}.me-xl-19{margin-inline-end:76px !important}.ma-xl-19{margin:76px !important}.mt-xl-20,.my-xl-20{margin-top:80px !important}.mr-xl-20,.mx-xl-20{margin-right:80px !important}.ml-xl-20,.mx-xl-20{margin-left:80px !important}.mb-xl-20,.my-xl-20{margin-bottom:80px !important}.ms-xl-20{margin-inline-start:80px !important}.me-xl-20{margin-inline-end:80px !important}.ma-xl-20{margin:80px !important}.mt-xl-auto,.my-xl-auto{margin-top:auto !important}.mr-xl-auto,.mx-xl-auto{margin-right:auto !important}.ml-xl-auto,.mx-xl-auto{margin-left:auto !important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto !important}.ms-xl-auto{margin-inline-start:auto !important}.me-xl-auto{margin-inline-end:auto !important}.ma-xl-auto{margin:auto !important}.pt-xl-0,.py-xl-0{padding-top:0 !important}.pr-xl-0,.px-xl-0{padding-right:0 !important}.pl-xl-0,.px-xl-0{padding-left:0 !important}.pb-xl-0,.py-xl-0{padding-bottom:0 !important}.ps-xl-0{padding-inline-start:0 !important}.pe-xl-0{padding-inline-end:0 !important}.pa-xl-0{padding:0 !important}.pt-xl-1,.py-xl-1{padding-top:4px !important}.pr-xl-1,.px-xl-1{padding-right:4px !important}.pl-xl-1,.px-xl-1{padding-left:4px !important}.pb-xl-1,.py-xl-1{padding-bottom:4px !important}.ps-xl-1{padding-inline-start:4px !important}.pe-xl-1{padding-inline-end:4px !important}.pa-xl-1{padding:4px !important}.pt-xl-2,.py-xl-2{padding-top:8px !important}.pr-xl-2,.px-xl-2{padding-right:8px !important}.pl-xl-2,.px-xl-2{padding-left:8px !important}.pb-xl-2,.py-xl-2{padding-bottom:8px !important}.ps-xl-2{padding-inline-start:8px !important}.pe-xl-2{padding-inline-end:8px !important}.pa-xl-2{padding:8px !important}.pt-xl-3,.py-xl-3{padding-top:12px !important}.pr-xl-3,.px-xl-3{padding-right:12px !important}.pl-xl-3,.px-xl-3{padding-left:12px !important}.pb-xl-3,.py-xl-3{padding-bottom:12px !important}.ps-xl-3{padding-inline-start:12px !important}.pe-xl-3{padding-inline-end:12px !important}.pa-xl-3{padding:12px !important}.pt-xl-4,.py-xl-4{padding-top:16px !important}.pr-xl-4,.px-xl-4{padding-right:16px !important}.pl-xl-4,.px-xl-4{padding-left:16px !important}.pb-xl-4,.py-xl-4{padding-bottom:16px !important}.ps-xl-4{padding-inline-start:16px !important}.pe-xl-4{padding-inline-end:16px !important}.pa-xl-4{padding:16px !important}.pt-xl-5,.py-xl-5{padding-top:20px !important}.pr-xl-5,.px-xl-5{padding-right:20px !important}.pl-xl-5,.px-xl-5{padding-left:20px !important}.pb-xl-5,.py-xl-5{padding-bottom:20px !important}.ps-xl-5{padding-inline-start:20px !important}.pe-xl-5{padding-inline-end:20px !important}.pa-xl-5{padding:20px !important}.pt-xl-6,.py-xl-6{padding-top:24px !important}.pr-xl-6,.px-xl-6{padding-right:24px !important}.pl-xl-6,.px-xl-6{padding-left:24px !important}.pb-xl-6,.py-xl-6{padding-bottom:24px !important}.ps-xl-6{padding-inline-start:24px !important}.pe-xl-6{padding-inline-end:24px !important}.pa-xl-6{padding:24px !important}.pt-xl-7,.py-xl-7{padding-top:28px !important}.pr-xl-7,.px-xl-7{padding-right:28px !important}.pl-xl-7,.px-xl-7{padding-left:28px !important}.pb-xl-7,.py-xl-7{padding-bottom:28px !important}.ps-xl-7{padding-inline-start:28px !important}.pe-xl-7{padding-inline-end:28px !important}.pa-xl-7{padding:28px !important}.pt-xl-8,.py-xl-8{padding-top:32px !important}.pr-xl-8,.px-xl-8{padding-right:32px !important}.pl-xl-8,.px-xl-8{padding-left:32px !important}.pb-xl-8,.py-xl-8{padding-bottom:32px !important}.ps-xl-8{padding-inline-start:32px !important}.pe-xl-8{padding-inline-end:32px !important}.pa-xl-8{padding:32px !important}.pt-xl-9,.py-xl-9{padding-top:36px !important}.pr-xl-9,.px-xl-9{padding-right:36px !important}.pl-xl-9,.px-xl-9{padding-left:36px !important}.pb-xl-9,.py-xl-9{padding-bottom:36px !important}.ps-xl-9{padding-inline-start:36px !important}.pe-xl-9{padding-inline-end:36px !important}.pa-xl-9{padding:36px !important}.pt-xl-10,.py-xl-10{padding-top:40px !important}.pr-xl-10,.px-xl-10{padding-right:40px !important}.pl-xl-10,.px-xl-10{padding-left:40px !important}.pb-xl-10,.py-xl-10{padding-bottom:40px !important}.ps-xl-10{padding-inline-start:40px !important}.pe-xl-10{padding-inline-end:40px !important}.pa-xl-10{padding:40px !important}.pt-xl-11,.py-xl-11{padding-top:44px !important}.pr-xl-11,.px-xl-11{padding-right:44px !important}.pl-xl-11,.px-xl-11{padding-left:44px !important}.pb-xl-11,.py-xl-11{padding-bottom:44px !important}.ps-xl-11{padding-inline-start:44px !important}.pe-xl-11{padding-inline-end:44px !important}.pa-xl-11{padding:44px !important}.pt-xl-12,.py-xl-12{padding-top:48px !important}.pr-xl-12,.px-xl-12{padding-right:48px !important}.pl-xl-12,.px-xl-12{padding-left:48px !important}.pb-xl-12,.py-xl-12{padding-bottom:48px !important}.ps-xl-12{padding-inline-start:48px !important}.pe-xl-12{padding-inline-end:48px !important}.pa-xl-12{padding:48px !important}.pt-xl-13,.py-xl-13{padding-top:52px !important}.pr-xl-13,.px-xl-13{padding-right:52px !important}.pl-xl-13,.px-xl-13{padding-left:52px !important}.pb-xl-13,.py-xl-13{padding-bottom:52px !important}.ps-xl-13{padding-inline-start:52px !important}.pe-xl-13{padding-inline-end:52px !important}.pa-xl-13{padding:52px !important}.pt-xl-14,.py-xl-14{padding-top:56px !important}.pr-xl-14,.px-xl-14{padding-right:56px !important}.pl-xl-14,.px-xl-14{padding-left:56px !important}.pb-xl-14,.py-xl-14{padding-bottom:56px !important}.ps-xl-14{padding-inline-start:56px !important}.pe-xl-14{padding-inline-end:56px !important}.pa-xl-14{padding:56px !important}.pt-xl-15,.py-xl-15{padding-top:60px !important}.pr-xl-15,.px-xl-15{padding-right:60px !important}.pl-xl-15,.px-xl-15{padding-left:60px !important}.pb-xl-15,.py-xl-15{padding-bottom:60px !important}.ps-xl-15{padding-inline-start:60px !important}.pe-xl-15{padding-inline-end:60px !important}.pa-xl-15{padding:60px !important}.pt-xl-16,.py-xl-16{padding-top:64px !important}.pr-xl-16,.px-xl-16{padding-right:64px !important}.pl-xl-16,.px-xl-16{padding-left:64px !important}.pb-xl-16,.py-xl-16{padding-bottom:64px !important}.ps-xl-16{padding-inline-start:64px !important}.pe-xl-16{padding-inline-end:64px !important}.pa-xl-16{padding:64px !important}.pt-xl-17,.py-xl-17{padding-top:68px !important}.pr-xl-17,.px-xl-17{padding-right:68px !important}.pl-xl-17,.px-xl-17{padding-left:68px !important}.pb-xl-17,.py-xl-17{padding-bottom:68px !important}.ps-xl-17{padding-inline-start:68px !important}.pe-xl-17{padding-inline-end:68px !important}.pa-xl-17{padding:68px !important}.pt-xl-18,.py-xl-18{padding-top:72px !important}.pr-xl-18,.px-xl-18{padding-right:72px !important}.pl-xl-18,.px-xl-18{padding-left:72px !important}.pb-xl-18,.py-xl-18{padding-bottom:72px !important}.ps-xl-18{padding-inline-start:72px !important}.pe-xl-18{padding-inline-end:72px !important}.pa-xl-18{padding:72px !important}.pt-xl-19,.py-xl-19{padding-top:76px !important}.pr-xl-19,.px-xl-19{padding-right:76px !important}.pl-xl-19,.px-xl-19{padding-left:76px !important}.pb-xl-19,.py-xl-19{padding-bottom:76px !important}.ps-xl-19{padding-inline-start:76px !important}.pe-xl-19{padding-inline-end:76px !important}.pa-xl-19{padding:76px !important}.pt-xl-20,.py-xl-20{padding-top:80px !important}.pr-xl-20,.px-xl-20{padding-right:80px !important}.pl-xl-20,.px-xl-20{padding-left:80px !important}.pb-xl-20,.py-xl-20{padding-bottom:80px !important}.ps-xl-20{padding-inline-start:80px !important}.pe-xl-20{padding-inline-end:80px !important}.pa-xl-20{padding:80px !important}.pt-xl-auto,.py-xl-auto{padding-top:auto !important}.pr-xl-auto,.px-xl-auto{padding-right:auto !important}.pl-xl-auto,.px-xl-auto{padding-left:auto !important}.pb-xl-auto,.py-xl-auto{padding-bottom:auto !important}.ps-xl-auto{padding-inline-start:auto !important}.pe-xl-auto{padding-inline-end:auto !important}.pa-xl-auto{padding:auto !important}.mt-xl-n1,.my-xl-n1{margin-top:-4px !important}.mr-xl-n1,.mx-xl-n1{margin-right:-4px !important}.ml-xl-n1,.mx-xl-n1{margin-left:-4px !important}.mb-xl-n1,.my-xl-n1{margin-bottom:-4px !important}.ms-xl-n1{margin-inline-start:-4px !important}.me-xl-n1{margin-inline-end:-4px !important}.ma-xl-n1{margin:-4px !important}.mt-xl-n2,.my-xl-n2{margin-top:-8px !important}.mr-xl-n2,.mx-xl-n2{margin-right:-8px !important}.ml-xl-n2,.mx-xl-n2{margin-left:-8px !important}.mb-xl-n2,.my-xl-n2{margin-bottom:-8px !important}.ms-xl-n2{margin-inline-start:-8px !important}.me-xl-n2{margin-inline-end:-8px !important}.ma-xl-n2{margin:-8px !important}.mt-xl-n3,.my-xl-n3{margin-top:-12px !important}.mr-xl-n3,.mx-xl-n3{margin-right:-12px !important}.ml-xl-n3,.mx-xl-n3{margin-left:-12px !important}.mb-xl-n3,.my-xl-n3{margin-bottom:-12px !important}.ms-xl-n3{margin-inline-start:-12px !important}.me-xl-n3{margin-inline-end:-12px !important}.ma-xl-n3{margin:-12px !important}.mt-xl-n4,.my-xl-n4{margin-top:-16px !important}.mr-xl-n4,.mx-xl-n4{margin-right:-16px !important}.ml-xl-n4,.mx-xl-n4{margin-left:-16px !important}.mb-xl-n4,.my-xl-n4{margin-bottom:-16px !important}.ms-xl-n4{margin-inline-start:-16px !important}.me-xl-n4{margin-inline-end:-16px !important}.ma-xl-n4{margin:-16px !important}.mt-xl-n5,.my-xl-n5{margin-top:-20px !important}.mr-xl-n5,.mx-xl-n5{margin-right:-20px !important}.ml-xl-n5,.mx-xl-n5{margin-left:-20px !important}.mb-xl-n5,.my-xl-n5{margin-bottom:-20px !important}.ms-xl-n5{margin-inline-start:-20px !important}.me-xl-n5{margin-inline-end:-20px !important}.ma-xl-n5{margin:-20px !important}.mt-xl-n6,.my-xl-n6{margin-top:-24px !important}.mr-xl-n6,.mx-xl-n6{margin-right:-24px !important}.ml-xl-n6,.mx-xl-n6{margin-left:-24px !important}.mb-xl-n6,.my-xl-n6{margin-bottom:-24px !important}.ms-xl-n6{margin-inline-start:-24px !important}.me-xl-n6{margin-inline-end:-24px !important}.ma-xl-n6{margin:-24px !important}.mt-xl-n7,.my-xl-n7{margin-top:-28px !important}.mr-xl-n7,.mx-xl-n7{margin-right:-28px !important}.ml-xl-n7,.mx-xl-n7{margin-left:-28px !important}.mb-xl-n7,.my-xl-n7{margin-bottom:-28px !important}.ms-xl-n7{margin-inline-start:-28px !important}.me-xl-n7{margin-inline-end:-28px !important}.ma-xl-n7{margin:-28px !important}.mt-xl-n8,.my-xl-n8{margin-top:-32px !important}.mr-xl-n8,.mx-xl-n8{margin-right:-32px !important}.ml-xl-n8,.mx-xl-n8{margin-left:-32px !important}.mb-xl-n8,.my-xl-n8{margin-bottom:-32px !important}.ms-xl-n8{margin-inline-start:-32px !important}.me-xl-n8{margin-inline-end:-32px !important}.ma-xl-n8{margin:-32px !important}.mt-xl-n9,.my-xl-n9{margin-top:-36px !important}.mr-xl-n9,.mx-xl-n9{margin-right:-36px !important}.ml-xl-n9,.mx-xl-n9{margin-left:-36px !important}.mb-xl-n9,.my-xl-n9{margin-bottom:-36px !important}.ms-xl-n9{margin-inline-start:-36px !important}.me-xl-n9{margin-inline-end:-36px !important}.ma-xl-n9{margin:-36px !important}.mt-xl-n10,.my-xl-n10{margin-top:-40px !important}.mr-xl-n10,.mx-xl-n10{margin-right:-40px !important}.ml-xl-n10,.mx-xl-n10{margin-left:-40px !important}.mb-xl-n10,.my-xl-n10{margin-bottom:-40px !important}.ms-xl-n10{margin-inline-start:-40px !important}.me-xl-n10{margin-inline-end:-40px !important}.ma-xl-n10{margin:-40px !important}.mt-xl-n11,.my-xl-n11{margin-top:-44px !important}.mr-xl-n11,.mx-xl-n11{margin-right:-44px !important}.ml-xl-n11,.mx-xl-n11{margin-left:-44px !important}.mb-xl-n11,.my-xl-n11{margin-bottom:-44px !important}.ms-xl-n11{margin-inline-start:-44px !important}.me-xl-n11{margin-inline-end:-44px !important}.ma-xl-n11{margin:-44px !important}.mt-xl-n12,.my-xl-n12{margin-top:-48px !important}.mr-xl-n12,.mx-xl-n12{margin-right:-48px !important}.ml-xl-n12,.mx-xl-n12{margin-left:-48px !important}.mb-xl-n12,.my-xl-n12{margin-bottom:-48px !important}.ms-xl-n12{margin-inline-start:-48px !important}.me-xl-n12{margin-inline-end:-48px !important}.ma-xl-n12{margin:-48px !important}.mt-xl-n13,.my-xl-n13{margin-top:-52px !important}.mr-xl-n13,.mx-xl-n13{margin-right:-52px !important}.ml-xl-n13,.mx-xl-n13{margin-left:-52px !important}.mb-xl-n13,.my-xl-n13{margin-bottom:-52px !important}.ms-xl-n13{margin-inline-start:-52px !important}.me-xl-n13{margin-inline-end:-52px !important}.ma-xl-n13{margin:-52px !important}.mt-xl-n14,.my-xl-n14{margin-top:-56px !important}.mr-xl-n14,.mx-xl-n14{margin-right:-56px !important}.ml-xl-n14,.mx-xl-n14{margin-left:-56px !important}.mb-xl-n14,.my-xl-n14{margin-bottom:-56px !important}.ms-xl-n14{margin-inline-start:-56px !important}.me-xl-n14{margin-inline-end:-56px !important}.ma-xl-n14{margin:-56px !important}.mt-xl-n15,.my-xl-n15{margin-top:-60px !important}.mr-xl-n15,.mx-xl-n15{margin-right:-60px !important}.ml-xl-n15,.mx-xl-n15{margin-left:-60px !important}.mb-xl-n15,.my-xl-n15{margin-bottom:-60px !important}.ms-xl-n15{margin-inline-start:-60px !important}.me-xl-n15{margin-inline-end:-60px !important}.ma-xl-n15{margin:-60px !important}.mt-xl-n16,.my-xl-n16{margin-top:-64px !important}.mr-xl-n16,.mx-xl-n16{margin-right:-64px !important}.ml-xl-n16,.mx-xl-n16{margin-left:-64px !important}.mb-xl-n16,.my-xl-n16{margin-bottom:-64px !important}.ms-xl-n16{margin-inline-start:-64px !important}.me-xl-n16{margin-inline-end:-64px !important}.ma-xl-n16{margin:-64px !important}.mt-xl-n17,.my-xl-n17{margin-top:-68px !important}.mr-xl-n17,.mx-xl-n17{margin-right:-68px !important}.ml-xl-n17,.mx-xl-n17{margin-left:-68px !important}.mb-xl-n17,.my-xl-n17{margin-bottom:-68px !important}.ms-xl-n17{margin-inline-start:-68px !important}.me-xl-n17{margin-inline-end:-68px !important}.ma-xl-n17{margin:-68px !important}.mt-xl-n18,.my-xl-n18{margin-top:-72px !important}.mr-xl-n18,.mx-xl-n18{margin-right:-72px !important}.ml-xl-n18,.mx-xl-n18{margin-left:-72px !important}.mb-xl-n18,.my-xl-n18{margin-bottom:-72px !important}.ms-xl-n18{margin-inline-start:-72px !important}.me-xl-n18{margin-inline-end:-72px !important}.ma-xl-n18{margin:-72px !important}.mt-xl-n19,.my-xl-n19{margin-top:-76px !important}.mr-xl-n19,.mx-xl-n19{margin-right:-76px !important}.ml-xl-n19,.mx-xl-n19{margin-left:-76px !important}.mb-xl-n19,.my-xl-n19{margin-bottom:-76px !important}.ms-xl-n19{margin-inline-start:-76px !important}.me-xl-n19{margin-inline-end:-76px !important}.ma-xl-n19{margin:-76px !important}.mt-xl-n20,.my-xl-n20{margin-top:-80px !important}.mr-xl-n20,.mx-xl-n20{margin-right:-80px !important}.ml-xl-n20,.mx-xl-n20{margin-left:-80px !important}.mb-xl-n20,.my-xl-n20{margin-bottom:-80px !important}.ms-xl-n20{margin-inline-start:-80px !important}.me-xl-n20{margin-inline-end:-80px !important}.ma-xl-n20{margin:-80px !important}}@media screen and (min-width: 2560px){.mt-xxl-0,.my-xxl-0{margin-top:0 !important}.mr-xxl-0,.mx-xxl-0{margin-right:0 !important}.ml-xxl-0,.mx-xxl-0{margin-left:0 !important}.mb-xxl-0,.my-xxl-0{margin-bottom:0 !important}.ms-xxl-0{margin-inline-start:0 !important}.me-xxl-0{margin-inline-end:0 !important}.ma-xxl-0{margin:0 !important}.mt-xxl-1,.my-xxl-1{margin-top:4px !important}.mr-xxl-1,.mx-xxl-1{margin-right:4px !important}.ml-xxl-1,.mx-xxl-1{margin-left:4px !important}.mb-xxl-1,.my-xxl-1{margin-bottom:4px !important}.ms-xxl-1{margin-inline-start:4px !important}.me-xxl-1{margin-inline-end:4px !important}.ma-xxl-1{margin:4px !important}.mt-xxl-2,.my-xxl-2{margin-top:8px !important}.mr-xxl-2,.mx-xxl-2{margin-right:8px !important}.ml-xxl-2,.mx-xxl-2{margin-left:8px !important}.mb-xxl-2,.my-xxl-2{margin-bottom:8px !important}.ms-xxl-2{margin-inline-start:8px !important}.me-xxl-2{margin-inline-end:8px !important}.ma-xxl-2{margin:8px !important}.mt-xxl-3,.my-xxl-3{margin-top:12px !important}.mr-xxl-3,.mx-xxl-3{margin-right:12px !important}.ml-xxl-3,.mx-xxl-3{margin-left:12px !important}.mb-xxl-3,.my-xxl-3{margin-bottom:12px !important}.ms-xxl-3{margin-inline-start:12px !important}.me-xxl-3{margin-inline-end:12px !important}.ma-xxl-3{margin:12px !important}.mt-xxl-4,.my-xxl-4{margin-top:16px !important}.mr-xxl-4,.mx-xxl-4{margin-right:16px !important}.ml-xxl-4,.mx-xxl-4{margin-left:16px !important}.mb-xxl-4,.my-xxl-4{margin-bottom:16px !important}.ms-xxl-4{margin-inline-start:16px !important}.me-xxl-4{margin-inline-end:16px !important}.ma-xxl-4{margin:16px !important}.mt-xxl-5,.my-xxl-5{margin-top:20px !important}.mr-xxl-5,.mx-xxl-5{margin-right:20px !important}.ml-xxl-5,.mx-xxl-5{margin-left:20px !important}.mb-xxl-5,.my-xxl-5{margin-bottom:20px !important}.ms-xxl-5{margin-inline-start:20px !important}.me-xxl-5{margin-inline-end:20px !important}.ma-xxl-5{margin:20px !important}.mt-xxl-6,.my-xxl-6{margin-top:24px !important}.mr-xxl-6,.mx-xxl-6{margin-right:24px !important}.ml-xxl-6,.mx-xxl-6{margin-left:24px !important}.mb-xxl-6,.my-xxl-6{margin-bottom:24px !important}.ms-xxl-6{margin-inline-start:24px !important}.me-xxl-6{margin-inline-end:24px !important}.ma-xxl-6{margin:24px !important}.mt-xxl-7,.my-xxl-7{margin-top:28px !important}.mr-xxl-7,.mx-xxl-7{margin-right:28px !important}.ml-xxl-7,.mx-xxl-7{margin-left:28px !important}.mb-xxl-7,.my-xxl-7{margin-bottom:28px !important}.ms-xxl-7{margin-inline-start:28px !important}.me-xxl-7{margin-inline-end:28px !important}.ma-xxl-7{margin:28px !important}.mt-xxl-8,.my-xxl-8{margin-top:32px !important}.mr-xxl-8,.mx-xxl-8{margin-right:32px !important}.ml-xxl-8,.mx-xxl-8{margin-left:32px !important}.mb-xxl-8,.my-xxl-8{margin-bottom:32px !important}.ms-xxl-8{margin-inline-start:32px !important}.me-xxl-8{margin-inline-end:32px !important}.ma-xxl-8{margin:32px !important}.mt-xxl-9,.my-xxl-9{margin-top:36px !important}.mr-xxl-9,.mx-xxl-9{margin-right:36px !important}.ml-xxl-9,.mx-xxl-9{margin-left:36px !important}.mb-xxl-9,.my-xxl-9{margin-bottom:36px !important}.ms-xxl-9{margin-inline-start:36px !important}.me-xxl-9{margin-inline-end:36px !important}.ma-xxl-9{margin:36px !important}.mt-xxl-10,.my-xxl-10{margin-top:40px !important}.mr-xxl-10,.mx-xxl-10{margin-right:40px !important}.ml-xxl-10,.mx-xxl-10{margin-left:40px !important}.mb-xxl-10,.my-xxl-10{margin-bottom:40px !important}.ms-xxl-10{margin-inline-start:40px !important}.me-xxl-10{margin-inline-end:40px !important}.ma-xxl-10{margin:40px !important}.mt-xxl-11,.my-xxl-11{margin-top:44px !important}.mr-xxl-11,.mx-xxl-11{margin-right:44px !important}.ml-xxl-11,.mx-xxl-11{margin-left:44px !important}.mb-xxl-11,.my-xxl-11{margin-bottom:44px !important}.ms-xxl-11{margin-inline-start:44px !important}.me-xxl-11{margin-inline-end:44px !important}.ma-xxl-11{margin:44px !important}.mt-xxl-12,.my-xxl-12{margin-top:48px !important}.mr-xxl-12,.mx-xxl-12{margin-right:48px !important}.ml-xxl-12,.mx-xxl-12{margin-left:48px !important}.mb-xxl-12,.my-xxl-12{margin-bottom:48px !important}.ms-xxl-12{margin-inline-start:48px !important}.me-xxl-12{margin-inline-end:48px !important}.ma-xxl-12{margin:48px !important}.mt-xxl-13,.my-xxl-13{margin-top:52px !important}.mr-xxl-13,.mx-xxl-13{margin-right:52px !important}.ml-xxl-13,.mx-xxl-13{margin-left:52px !important}.mb-xxl-13,.my-xxl-13{margin-bottom:52px !important}.ms-xxl-13{margin-inline-start:52px !important}.me-xxl-13{margin-inline-end:52px !important}.ma-xxl-13{margin:52px !important}.mt-xxl-14,.my-xxl-14{margin-top:56px !important}.mr-xxl-14,.mx-xxl-14{margin-right:56px !important}.ml-xxl-14,.mx-xxl-14{margin-left:56px !important}.mb-xxl-14,.my-xxl-14{margin-bottom:56px !important}.ms-xxl-14{margin-inline-start:56px !important}.me-xxl-14{margin-inline-end:56px !important}.ma-xxl-14{margin:56px !important}.mt-xxl-15,.my-xxl-15{margin-top:60px !important}.mr-xxl-15,.mx-xxl-15{margin-right:60px !important}.ml-xxl-15,.mx-xxl-15{margin-left:60px !important}.mb-xxl-15,.my-xxl-15{margin-bottom:60px !important}.ms-xxl-15{margin-inline-start:60px !important}.me-xxl-15{margin-inline-end:60px !important}.ma-xxl-15{margin:60px !important}.mt-xxl-16,.my-xxl-16{margin-top:64px !important}.mr-xxl-16,.mx-xxl-16{margin-right:64px !important}.ml-xxl-16,.mx-xxl-16{margin-left:64px !important}.mb-xxl-16,.my-xxl-16{margin-bottom:64px !important}.ms-xxl-16{margin-inline-start:64px !important}.me-xxl-16{margin-inline-end:64px !important}.ma-xxl-16{margin:64px !important}.mt-xxl-17,.my-xxl-17{margin-top:68px !important}.mr-xxl-17,.mx-xxl-17{margin-right:68px !important}.ml-xxl-17,.mx-xxl-17{margin-left:68px !important}.mb-xxl-17,.my-xxl-17{margin-bottom:68px !important}.ms-xxl-17{margin-inline-start:68px !important}.me-xxl-17{margin-inline-end:68px !important}.ma-xxl-17{margin:68px !important}.mt-xxl-18,.my-xxl-18{margin-top:72px !important}.mr-xxl-18,.mx-xxl-18{margin-right:72px !important}.ml-xxl-18,.mx-xxl-18{margin-left:72px !important}.mb-xxl-18,.my-xxl-18{margin-bottom:72px !important}.ms-xxl-18{margin-inline-start:72px !important}.me-xxl-18{margin-inline-end:72px !important}.ma-xxl-18{margin:72px !important}.mt-xxl-19,.my-xxl-19{margin-top:76px !important}.mr-xxl-19,.mx-xxl-19{margin-right:76px !important}.ml-xxl-19,.mx-xxl-19{margin-left:76px !important}.mb-xxl-19,.my-xxl-19{margin-bottom:76px !important}.ms-xxl-19{margin-inline-start:76px !important}.me-xxl-19{margin-inline-end:76px !important}.ma-xxl-19{margin:76px !important}.mt-xxl-20,.my-xxl-20{margin-top:80px !important}.mr-xxl-20,.mx-xxl-20{margin-right:80px !important}.ml-xxl-20,.mx-xxl-20{margin-left:80px !important}.mb-xxl-20,.my-xxl-20{margin-bottom:80px !important}.ms-xxl-20{margin-inline-start:80px !important}.me-xxl-20{margin-inline-end:80px !important}.ma-xxl-20{margin:80px !important}.mt-xxl-auto,.my-xxl-auto{margin-top:auto !important}.mr-xxl-auto,.mx-xxl-auto{margin-right:auto !important}.ml-xxl-auto,.mx-xxl-auto{margin-left:auto !important}.mb-xxl-auto,.my-xxl-auto{margin-bottom:auto !important}.ms-xxl-auto{margin-inline-start:auto !important}.me-xxl-auto{margin-inline-end:auto !important}.ma-xxl-auto{margin:auto !important}.pt-xxl-0,.py-xxl-0{padding-top:0 !important}.pr-xxl-0,.px-xxl-0{padding-right:0 !important}.pl-xxl-0,.px-xxl-0{padding-left:0 !important}.pb-xxl-0,.py-xxl-0{padding-bottom:0 !important}.ps-xxl-0{padding-inline-start:0 !important}.pe-xxl-0{padding-inline-end:0 !important}.pa-xxl-0{padding:0 !important}.pt-xxl-1,.py-xxl-1{padding-top:4px !important}.pr-xxl-1,.px-xxl-1{padding-right:4px !important}.pl-xxl-1,.px-xxl-1{padding-left:4px !important}.pb-xxl-1,.py-xxl-1{padding-bottom:4px !important}.ps-xxl-1{padding-inline-start:4px !important}.pe-xxl-1{padding-inline-end:4px !important}.pa-xxl-1{padding:4px !important}.pt-xxl-2,.py-xxl-2{padding-top:8px !important}.pr-xxl-2,.px-xxl-2{padding-right:8px !important}.pl-xxl-2,.px-xxl-2{padding-left:8px !important}.pb-xxl-2,.py-xxl-2{padding-bottom:8px !important}.ps-xxl-2{padding-inline-start:8px !important}.pe-xxl-2{padding-inline-end:8px !important}.pa-xxl-2{padding:8px !important}.pt-xxl-3,.py-xxl-3{padding-top:12px !important}.pr-xxl-3,.px-xxl-3{padding-right:12px !important}.pl-xxl-3,.px-xxl-3{padding-left:12px !important}.pb-xxl-3,.py-xxl-3{padding-bottom:12px !important}.ps-xxl-3{padding-inline-start:12px !important}.pe-xxl-3{padding-inline-end:12px !important}.pa-xxl-3{padding:12px !important}.pt-xxl-4,.py-xxl-4{padding-top:16px !important}.pr-xxl-4,.px-xxl-4{padding-right:16px !important}.pl-xxl-4,.px-xxl-4{padding-left:16px !important}.pb-xxl-4,.py-xxl-4{padding-bottom:16px !important}.ps-xxl-4{padding-inline-start:16px !important}.pe-xxl-4{padding-inline-end:16px !important}.pa-xxl-4{padding:16px !important}.pt-xxl-5,.py-xxl-5{padding-top:20px !important}.pr-xxl-5,.px-xxl-5{padding-right:20px !important}.pl-xxl-5,.px-xxl-5{padding-left:20px !important}.pb-xxl-5,.py-xxl-5{padding-bottom:20px !important}.ps-xxl-5{padding-inline-start:20px !important}.pe-xxl-5{padding-inline-end:20px !important}.pa-xxl-5{padding:20px !important}.pt-xxl-6,.py-xxl-6{padding-top:24px !important}.pr-xxl-6,.px-xxl-6{padding-right:24px !important}.pl-xxl-6,.px-xxl-6{padding-left:24px !important}.pb-xxl-6,.py-xxl-6{padding-bottom:24px !important}.ps-xxl-6{padding-inline-start:24px !important}.pe-xxl-6{padding-inline-end:24px !important}.pa-xxl-6{padding:24px !important}.pt-xxl-7,.py-xxl-7{padding-top:28px !important}.pr-xxl-7,.px-xxl-7{padding-right:28px !important}.pl-xxl-7,.px-xxl-7{padding-left:28px !important}.pb-xxl-7,.py-xxl-7{padding-bottom:28px !important}.ps-xxl-7{padding-inline-start:28px !important}.pe-xxl-7{padding-inline-end:28px !important}.pa-xxl-7{padding:28px !important}.pt-xxl-8,.py-xxl-8{padding-top:32px !important}.pr-xxl-8,.px-xxl-8{padding-right:32px !important}.pl-xxl-8,.px-xxl-8{padding-left:32px !important}.pb-xxl-8,.py-xxl-8{padding-bottom:32px !important}.ps-xxl-8{padding-inline-start:32px !important}.pe-xxl-8{padding-inline-end:32px !important}.pa-xxl-8{padding:32px !important}.pt-xxl-9,.py-xxl-9{padding-top:36px !important}.pr-xxl-9,.px-xxl-9{padding-right:36px !important}.pl-xxl-9,.px-xxl-9{padding-left:36px !important}.pb-xxl-9,.py-xxl-9{padding-bottom:36px !important}.ps-xxl-9{padding-inline-start:36px !important}.pe-xxl-9{padding-inline-end:36px !important}.pa-xxl-9{padding:36px !important}.pt-xxl-10,.py-xxl-10{padding-top:40px !important}.pr-xxl-10,.px-xxl-10{padding-right:40px !important}.pl-xxl-10,.px-xxl-10{padding-left:40px !important}.pb-xxl-10,.py-xxl-10{padding-bottom:40px !important}.ps-xxl-10{padding-inline-start:40px !important}.pe-xxl-10{padding-inline-end:40px !important}.pa-xxl-10{padding:40px !important}.pt-xxl-11,.py-xxl-11{padding-top:44px !important}.pr-xxl-11,.px-xxl-11{padding-right:44px !important}.pl-xxl-11,.px-xxl-11{padding-left:44px !important}.pb-xxl-11,.py-xxl-11{padding-bottom:44px !important}.ps-xxl-11{padding-inline-start:44px !important}.pe-xxl-11{padding-inline-end:44px !important}.pa-xxl-11{padding:44px !important}.pt-xxl-12,.py-xxl-12{padding-top:48px !important}.pr-xxl-12,.px-xxl-12{padding-right:48px !important}.pl-xxl-12,.px-xxl-12{padding-left:48px !important}.pb-xxl-12,.py-xxl-12{padding-bottom:48px !important}.ps-xxl-12{padding-inline-start:48px !important}.pe-xxl-12{padding-inline-end:48px !important}.pa-xxl-12{padding:48px !important}.pt-xxl-13,.py-xxl-13{padding-top:52px !important}.pr-xxl-13,.px-xxl-13{padding-right:52px !important}.pl-xxl-13,.px-xxl-13{padding-left:52px !important}.pb-xxl-13,.py-xxl-13{padding-bottom:52px !important}.ps-xxl-13{padding-inline-start:52px !important}.pe-xxl-13{padding-inline-end:52px !important}.pa-xxl-13{padding:52px !important}.pt-xxl-14,.py-xxl-14{padding-top:56px !important}.pr-xxl-14,.px-xxl-14{padding-right:56px !important}.pl-xxl-14,.px-xxl-14{padding-left:56px !important}.pb-xxl-14,.py-xxl-14{padding-bottom:56px !important}.ps-xxl-14{padding-inline-start:56px !important}.pe-xxl-14{padding-inline-end:56px !important}.pa-xxl-14{padding:56px !important}.pt-xxl-15,.py-xxl-15{padding-top:60px !important}.pr-xxl-15,.px-xxl-15{padding-right:60px !important}.pl-xxl-15,.px-xxl-15{padding-left:60px !important}.pb-xxl-15,.py-xxl-15{padding-bottom:60px !important}.ps-xxl-15{padding-inline-start:60px !important}.pe-xxl-15{padding-inline-end:60px !important}.pa-xxl-15{padding:60px !important}.pt-xxl-16,.py-xxl-16{padding-top:64px !important}.pr-xxl-16,.px-xxl-16{padding-right:64px !important}.pl-xxl-16,.px-xxl-16{padding-left:64px !important}.pb-xxl-16,.py-xxl-16{padding-bottom:64px !important}.ps-xxl-16{padding-inline-start:64px !important}.pe-xxl-16{padding-inline-end:64px !important}.pa-xxl-16{padding:64px !important}.pt-xxl-17,.py-xxl-17{padding-top:68px !important}.pr-xxl-17,.px-xxl-17{padding-right:68px !important}.pl-xxl-17,.px-xxl-17{padding-left:68px !important}.pb-xxl-17,.py-xxl-17{padding-bottom:68px !important}.ps-xxl-17{padding-inline-start:68px !important}.pe-xxl-17{padding-inline-end:68px !important}.pa-xxl-17{padding:68px !important}.pt-xxl-18,.py-xxl-18{padding-top:72px !important}.pr-xxl-18,.px-xxl-18{padding-right:72px !important}.pl-xxl-18,.px-xxl-18{padding-left:72px !important}.pb-xxl-18,.py-xxl-18{padding-bottom:72px !important}.ps-xxl-18{padding-inline-start:72px !important}.pe-xxl-18{padding-inline-end:72px !important}.pa-xxl-18{padding:72px !important}.pt-xxl-19,.py-xxl-19{padding-top:76px !important}.pr-xxl-19,.px-xxl-19{padding-right:76px !important}.pl-xxl-19,.px-xxl-19{padding-left:76px !important}.pb-xxl-19,.py-xxl-19{padding-bottom:76px !important}.ps-xxl-19{padding-inline-start:76px !important}.pe-xxl-19{padding-inline-end:76px !important}.pa-xxl-19{padding:76px !important}.pt-xxl-20,.py-xxl-20{padding-top:80px !important}.pr-xxl-20,.px-xxl-20{padding-right:80px !important}.pl-xxl-20,.px-xxl-20{padding-left:80px !important}.pb-xxl-20,.py-xxl-20{padding-bottom:80px !important}.ps-xxl-20{padding-inline-start:80px !important}.pe-xxl-20{padding-inline-end:80px !important}.pa-xxl-20{padding:80px !important}.pt-xxl-auto,.py-xxl-auto{padding-top:auto !important}.pr-xxl-auto,.px-xxl-auto{padding-right:auto !important}.pl-xxl-auto,.px-xxl-auto{padding-left:auto !important}.pb-xxl-auto,.py-xxl-auto{padding-bottom:auto !important}.ps-xxl-auto{padding-inline-start:auto !important}.pe-xxl-auto{padding-inline-end:auto !important}.pa-xxl-auto{padding:auto !important}.mt-xxl-n1,.my-xxl-n1{margin-top:-4px !important}.mr-xxl-n1,.mx-xxl-n1{margin-right:-4px !important}.ml-xxl-n1,.mx-xxl-n1{margin-left:-4px !important}.mb-xxl-n1,.my-xxl-n1{margin-bottom:-4px !important}.ms-xxl-n1{margin-inline-start:-4px !important}.me-xxl-n1{margin-inline-end:-4px !important}.ma-xxl-n1{margin:-4px !important}.mt-xxl-n2,.my-xxl-n2{margin-top:-8px !important}.mr-xxl-n2,.mx-xxl-n2{margin-right:-8px !important}.ml-xxl-n2,.mx-xxl-n2{margin-left:-8px !important}.mb-xxl-n2,.my-xxl-n2{margin-bottom:-8px !important}.ms-xxl-n2{margin-inline-start:-8px !important}.me-xxl-n2{margin-inline-end:-8px !important}.ma-xxl-n2{margin:-8px !important}.mt-xxl-n3,.my-xxl-n3{margin-top:-12px !important}.mr-xxl-n3,.mx-xxl-n3{margin-right:-12px !important}.ml-xxl-n3,.mx-xxl-n3{margin-left:-12px !important}.mb-xxl-n3,.my-xxl-n3{margin-bottom:-12px !important}.ms-xxl-n3{margin-inline-start:-12px !important}.me-xxl-n3{margin-inline-end:-12px !important}.ma-xxl-n3{margin:-12px !important}.mt-xxl-n4,.my-xxl-n4{margin-top:-16px !important}.mr-xxl-n4,.mx-xxl-n4{margin-right:-16px !important}.ml-xxl-n4,.mx-xxl-n4{margin-left:-16px !important}.mb-xxl-n4,.my-xxl-n4{margin-bottom:-16px !important}.ms-xxl-n4{margin-inline-start:-16px !important}.me-xxl-n4{margin-inline-end:-16px !important}.ma-xxl-n4{margin:-16px !important}.mt-xxl-n5,.my-xxl-n5{margin-top:-20px !important}.mr-xxl-n5,.mx-xxl-n5{margin-right:-20px !important}.ml-xxl-n5,.mx-xxl-n5{margin-left:-20px !important}.mb-xxl-n5,.my-xxl-n5{margin-bottom:-20px !important}.ms-xxl-n5{margin-inline-start:-20px !important}.me-xxl-n5{margin-inline-end:-20px !important}.ma-xxl-n5{margin:-20px !important}.mt-xxl-n6,.my-xxl-n6{margin-top:-24px !important}.mr-xxl-n6,.mx-xxl-n6{margin-right:-24px !important}.ml-xxl-n6,.mx-xxl-n6{margin-left:-24px !important}.mb-xxl-n6,.my-xxl-n6{margin-bottom:-24px !important}.ms-xxl-n6{margin-inline-start:-24px !important}.me-xxl-n6{margin-inline-end:-24px !important}.ma-xxl-n6{margin:-24px !important}.mt-xxl-n7,.my-xxl-n7{margin-top:-28px !important}.mr-xxl-n7,.mx-xxl-n7{margin-right:-28px !important}.ml-xxl-n7,.mx-xxl-n7{margin-left:-28px !important}.mb-xxl-n7,.my-xxl-n7{margin-bottom:-28px !important}.ms-xxl-n7{margin-inline-start:-28px !important}.me-xxl-n7{margin-inline-end:-28px !important}.ma-xxl-n7{margin:-28px !important}.mt-xxl-n8,.my-xxl-n8{margin-top:-32px !important}.mr-xxl-n8,.mx-xxl-n8{margin-right:-32px !important}.ml-xxl-n8,.mx-xxl-n8{margin-left:-32px !important}.mb-xxl-n8,.my-xxl-n8{margin-bottom:-32px !important}.ms-xxl-n8{margin-inline-start:-32px !important}.me-xxl-n8{margin-inline-end:-32px !important}.ma-xxl-n8{margin:-32px !important}.mt-xxl-n9,.my-xxl-n9{margin-top:-36px !important}.mr-xxl-n9,.mx-xxl-n9{margin-right:-36px !important}.ml-xxl-n9,.mx-xxl-n9{margin-left:-36px !important}.mb-xxl-n9,.my-xxl-n9{margin-bottom:-36px !important}.ms-xxl-n9{margin-inline-start:-36px !important}.me-xxl-n9{margin-inline-end:-36px !important}.ma-xxl-n9{margin:-36px !important}.mt-xxl-n10,.my-xxl-n10{margin-top:-40px !important}.mr-xxl-n10,.mx-xxl-n10{margin-right:-40px !important}.ml-xxl-n10,.mx-xxl-n10{margin-left:-40px !important}.mb-xxl-n10,.my-xxl-n10{margin-bottom:-40px !important}.ms-xxl-n10{margin-inline-start:-40px !important}.me-xxl-n10{margin-inline-end:-40px !important}.ma-xxl-n10{margin:-40px !important}.mt-xxl-n11,.my-xxl-n11{margin-top:-44px !important}.mr-xxl-n11,.mx-xxl-n11{margin-right:-44px !important}.ml-xxl-n11,.mx-xxl-n11{margin-left:-44px !important}.mb-xxl-n11,.my-xxl-n11{margin-bottom:-44px !important}.ms-xxl-n11{margin-inline-start:-44px !important}.me-xxl-n11{margin-inline-end:-44px !important}.ma-xxl-n11{margin:-44px !important}.mt-xxl-n12,.my-xxl-n12{margin-top:-48px !important}.mr-xxl-n12,.mx-xxl-n12{margin-right:-48px !important}.ml-xxl-n12,.mx-xxl-n12{margin-left:-48px !important}.mb-xxl-n12,.my-xxl-n12{margin-bottom:-48px !important}.ms-xxl-n12{margin-inline-start:-48px !important}.me-xxl-n12{margin-inline-end:-48px !important}.ma-xxl-n12{margin:-48px !important}.mt-xxl-n13,.my-xxl-n13{margin-top:-52px !important}.mr-xxl-n13,.mx-xxl-n13{margin-right:-52px !important}.ml-xxl-n13,.mx-xxl-n13{margin-left:-52px !important}.mb-xxl-n13,.my-xxl-n13{margin-bottom:-52px !important}.ms-xxl-n13{margin-inline-start:-52px !important}.me-xxl-n13{margin-inline-end:-52px !important}.ma-xxl-n13{margin:-52px !important}.mt-xxl-n14,.my-xxl-n14{margin-top:-56px !important}.mr-xxl-n14,.mx-xxl-n14{margin-right:-56px !important}.ml-xxl-n14,.mx-xxl-n14{margin-left:-56px !important}.mb-xxl-n14,.my-xxl-n14{margin-bottom:-56px !important}.ms-xxl-n14{margin-inline-start:-56px !important}.me-xxl-n14{margin-inline-end:-56px !important}.ma-xxl-n14{margin:-56px !important}.mt-xxl-n15,.my-xxl-n15{margin-top:-60px !important}.mr-xxl-n15,.mx-xxl-n15{margin-right:-60px !important}.ml-xxl-n15,.mx-xxl-n15{margin-left:-60px !important}.mb-xxl-n15,.my-xxl-n15{margin-bottom:-60px !important}.ms-xxl-n15{margin-inline-start:-60px !important}.me-xxl-n15{margin-inline-end:-60px !important}.ma-xxl-n15{margin:-60px !important}.mt-xxl-n16,.my-xxl-n16{margin-top:-64px !important}.mr-xxl-n16,.mx-xxl-n16{margin-right:-64px !important}.ml-xxl-n16,.mx-xxl-n16{margin-left:-64px !important}.mb-xxl-n16,.my-xxl-n16{margin-bottom:-64px !important}.ms-xxl-n16{margin-inline-start:-64px !important}.me-xxl-n16{margin-inline-end:-64px !important}.ma-xxl-n16{margin:-64px !important}.mt-xxl-n17,.my-xxl-n17{margin-top:-68px !important}.mr-xxl-n17,.mx-xxl-n17{margin-right:-68px !important}.ml-xxl-n17,.mx-xxl-n17{margin-left:-68px !important}.mb-xxl-n17,.my-xxl-n17{margin-bottom:-68px !important}.ms-xxl-n17{margin-inline-start:-68px !important}.me-xxl-n17{margin-inline-end:-68px !important}.ma-xxl-n17{margin:-68px !important}.mt-xxl-n18,.my-xxl-n18{margin-top:-72px !important}.mr-xxl-n18,.mx-xxl-n18{margin-right:-72px !important}.ml-xxl-n18,.mx-xxl-n18{margin-left:-72px !important}.mb-xxl-n18,.my-xxl-n18{margin-bottom:-72px !important}.ms-xxl-n18{margin-inline-start:-72px !important}.me-xxl-n18{margin-inline-end:-72px !important}.ma-xxl-n18{margin:-72px !important}.mt-xxl-n19,.my-xxl-n19{margin-top:-76px !important}.mr-xxl-n19,.mx-xxl-n19{margin-right:-76px !important}.ml-xxl-n19,.mx-xxl-n19{margin-left:-76px !important}.mb-xxl-n19,.my-xxl-n19{margin-bottom:-76px !important}.ms-xxl-n19{margin-inline-start:-76px !important}.me-xxl-n19{margin-inline-end:-76px !important}.ma-xxl-n19{margin:-76px !important}.mt-xxl-n20,.my-xxl-n20{margin-top:-80px !important}.mr-xxl-n20,.mx-xxl-n20{margin-right:-80px !important}.ml-xxl-n20,.mx-xxl-n20{margin-left:-80px !important}.mb-xxl-n20,.my-xxl-n20{margin-bottom:-80px !important}.ms-xxl-n20{margin-inline-start:-80px !important}.me-xxl-n20{margin-inline-end:-80px !important}.ma-xxl-n20{margin:-80px !important}}.mud-width-full{width:100%}.mud-height-full{height:100%}.w-max{width:max-content}.mud-appbar{width:100%;display:flex;z-index:var(--mud-zindex-appbar);position:relative;box-sizing:border-box;flex-shrink:0;flex-direction:column;color:var(--mud-palette-appbar-text);background-color:var(--mud-palette-appbar-background);transition:margin 225ms cubic-bezier(0, 0, 0.2, 1) 0ms,width 225ms cubic-bezier(0, 0, 0.2, 1) 0ms}.mud-appbar.mud-appbar-fixed-top{position:fixed;top:0;right:0;left:0}.mud-appbar.mud-appbar-fixed-top .mud-popover-cascading-value{position:fixed}.mud-appbar.mud-appbar-fixed-bottom{position:fixed;bottom:0;right:0;left:0}.mud-appbar.mud-appbar-fixed-bottom .mud-popover-cascading-value{position:fixed}.mud-appbar .mud-toolbar-appbar{height:calc(var(--mud-appbar-height) - var(--mud-appbar-height)/8)}@media(min-width: 0px)and (orientation: landscape){.mud-appbar .mud-toolbar-appbar{height:calc(var(--mud-appbar-height) - var(--mud-appbar-height)/4)}}@media(min-width: 600px){.mud-appbar .mud-toolbar-appbar{height:var(--mud-appbar-height)}}.mud-appbar.mud-appbar-dense .mud-toolbar-appbar{height:calc(var(--mud-appbar-height) - var(--mud-appbar-height)/4)}@media(min-width: 0px){.mud-drawer-open-responsive-xs-left.mud-drawer-left-clipped-never .mud-appbar{margin-left:var(--mud-drawer-width-left);width:calc(100% - var(--mud-drawer-width-left))}.mud-drawer-open-responsive-xs-right.mud-drawer-right-clipped-never .mud-appbar{margin-right:var(--mud-drawer-width-right);width:calc(100% - var(--mud-drawer-width-right))}.mud-drawer-open-responsive-xs-left.mud-drawer-left-clipped-never.mud-drawer-open-responsive-xs-right.mud-drawer-right-clipped-never .mud-appbar{margin-left:var(--mud-drawer-width-left);margin-right:var(--mud-drawer-width-right);width:calc(100% - var(--mud-drawer-width-left) - var(--mud-drawer-width-right))}}@media(min-width: 600px){.mud-drawer-open-responsive-sm-left.mud-drawer-left-clipped-never .mud-appbar{margin-left:var(--mud-drawer-width-left);width:calc(100% - var(--mud-drawer-width-left))}.mud-drawer-open-responsive-sm-right.mud-drawer-right-clipped-never .mud-appbar{margin-right:var(--mud-drawer-width-right);width:calc(100% - var(--mud-drawer-width-right))}.mud-drawer-open-responsive-sm-left.mud-drawer-left-clipped-never.mud-drawer-open-responsive-sm-right.mud-drawer-right-clipped-never .mud-appbar{margin-left:var(--mud-drawer-width-left);margin-right:var(--mud-drawer-width-right);width:calc(100% - var(--mud-drawer-width-left) - var(--mud-drawer-width-right))}}@media(min-width: 960px){.mud-drawer-open-responsive-md-left.mud-drawer-left-clipped-never .mud-appbar{margin-left:var(--mud-drawer-width-left);width:calc(100% - var(--mud-drawer-width-left))}.mud-drawer-open-responsive-md-right.mud-drawer-right-clipped-never .mud-appbar{margin-right:var(--mud-drawer-width-right);width:calc(100% - var(--mud-drawer-width-right))}.mud-drawer-open-responsive-md-left.mud-drawer-left-clipped-never.mud-drawer-open-responsive-md-right.mud-drawer-right-clipped-never .mud-appbar{margin-left:var(--mud-drawer-width-left);margin-right:var(--mud-drawer-width-right);width:calc(100% - var(--mud-drawer-width-left) - var(--mud-drawer-width-right))}}@media(min-width: 1280px){.mud-drawer-open-responsive-lg-left.mud-drawer-left-clipped-never .mud-appbar{margin-left:var(--mud-drawer-width-left);width:calc(100% - var(--mud-drawer-width-left))}.mud-drawer-open-responsive-lg-right.mud-drawer-right-clipped-never .mud-appbar{margin-right:var(--mud-drawer-width-right);width:calc(100% - var(--mud-drawer-width-right))}.mud-drawer-open-responsive-lg-left.mud-drawer-left-clipped-never.mud-drawer-open-responsive-lg-right.mud-drawer-right-clipped-never .mud-appbar{margin-left:var(--mud-drawer-width-left);margin-right:var(--mud-drawer-width-right);width:calc(100% - var(--mud-drawer-width-left) - var(--mud-drawer-width-right))}}@media(min-width: 1920px){.mud-drawer-open-responsive-xl-left.mud-drawer-left-clipped-never .mud-appbar{margin-left:var(--mud-drawer-width-left);width:calc(100% - var(--mud-drawer-width-left))}.mud-drawer-open-responsive-xl-right.mud-drawer-right-clipped-never .mud-appbar{margin-right:var(--mud-drawer-width-right);width:calc(100% - var(--mud-drawer-width-right))}.mud-drawer-open-responsive-xl-left.mud-drawer-left-clipped-never.mud-drawer-open-responsive-xl-right.mud-drawer-right-clipped-never .mud-appbar{margin-left:var(--mud-drawer-width-left);margin-right:var(--mud-drawer-width-right);width:calc(100% - var(--mud-drawer-width-left) - var(--mud-drawer-width-right))}}@media(min-width: 2560px){.mud-drawer-open-responsive-xxl-left.mud-drawer-left-clipped-never .mud-appbar{margin-left:var(--mud-drawer-width-left);width:calc(100% - var(--mud-drawer-width-left))}.mud-drawer-open-responsive-xxl-right.mud-drawer-right-clipped-never .mud-appbar{margin-right:var(--mud-drawer-width-right);width:calc(100% - var(--mud-drawer-width-right))}.mud-drawer-open-responsive-xxl-left.mud-drawer-left-clipped-never.mud-drawer-open-responsive-xxl-right.mud-drawer-right-clipped-never .mud-appbar{margin-left:var(--mud-drawer-width-left);margin-right:var(--mud-drawer-width-right);width:calc(100% - var(--mud-drawer-width-left) - var(--mud-drawer-width-right))}}.mud-drawer-open-persistent-left.mud-drawer-left-clipped-never .mud-appbar{margin-left:var(--mud-drawer-width-left);width:calc(100% - var(--mud-drawer-width-left))}.mud-drawer-open-persistent-right.mud-drawer-right-clipped-never .mud-appbar{margin-right:var(--mud-drawer-width-right);width:calc(100% - var(--mud-drawer-width-right))}.mud-drawer-open-persistent-left.mud-drawer-left-clipped-never.mud-drawer-open-persistent-right.mud-drawer-right-clipped-never .mud-appbar{margin-left:var(--mud-drawer-width-left);margin-right:var(--mud-drawer-width-right);width:calc(100% - var(--mud-drawer-width-left) - var(--mud-drawer-width-right))}@media(min-width: 0px){.mud-drawer-open-mini-xs-left.mud-drawer-left-clipped-never .mud-appbar{margin-left:var(--mud-drawer-width-left);width:calc(100% - var(--mud-drawer-width-left))}.mud-drawer-open-mini-xs-right.mud-drawer-right-clipped-never .mud-appbar{margin-right:var(--mud-drawer-width-right);width:calc(100% - var(--mud-drawer-width-right))}.mud-drawer-open-mini-xs-left.mud-drawer-left-clipped-never.mud-drawer-open-mini-xs-right.mud-drawer-right-clipped-never .mud-appbar{margin-left:var(--mud-drawer-width-left);margin-right:var(--mud-drawer-width-right);width:calc(100% - var(--mud-drawer-width-left) - var(--mud-drawer-width-right))}}@media(min-width: 600px){.mud-drawer-open-mini-sm-left.mud-drawer-left-clipped-never .mud-appbar{margin-left:var(--mud-drawer-width-left);width:calc(100% - var(--mud-drawer-width-left))}.mud-drawer-open-mini-sm-right.mud-drawer-right-clipped-never .mud-appbar{margin-right:var(--mud-drawer-width-right);width:calc(100% - var(--mud-drawer-width-right))}.mud-drawer-open-mini-sm-left.mud-drawer-left-clipped-never.mud-drawer-open-mini-sm-right.mud-drawer-right-clipped-never .mud-appbar{margin-left:var(--mud-drawer-width-left);margin-right:var(--mud-drawer-width-right);width:calc(100% - var(--mud-drawer-width-left) - var(--mud-drawer-width-right))}}@media(min-width: 960px){.mud-drawer-open-mini-md-left.mud-drawer-left-clipped-never .mud-appbar{margin-left:var(--mud-drawer-width-left);width:calc(100% - var(--mud-drawer-width-left))}.mud-drawer-open-mini-md-right.mud-drawer-right-clipped-never .mud-appbar{margin-right:var(--mud-drawer-width-right);width:calc(100% - var(--mud-drawer-width-right))}.mud-drawer-open-mini-md-left.mud-drawer-left-clipped-never.mud-drawer-open-mini-md-right.mud-drawer-right-clipped-never .mud-appbar{margin-left:var(--mud-drawer-width-left);margin-right:var(--mud-drawer-width-right);width:calc(100% - var(--mud-drawer-width-left) - var(--mud-drawer-width-right))}}@media(min-width: 1280px){.mud-drawer-open-mini-lg-left.mud-drawer-left-clipped-never .mud-appbar{margin-left:var(--mud-drawer-width-left);width:calc(100% - var(--mud-drawer-width-left))}.mud-drawer-open-mini-lg-right.mud-drawer-right-clipped-never .mud-appbar{margin-right:var(--mud-drawer-width-right);width:calc(100% - var(--mud-drawer-width-right))}.mud-drawer-open-mini-lg-left.mud-drawer-left-clipped-never.mud-drawer-open-mini-lg-right.mud-drawer-right-clipped-never .mud-appbar{margin-left:var(--mud-drawer-width-left);margin-right:var(--mud-drawer-width-right);width:calc(100% - var(--mud-drawer-width-left) - var(--mud-drawer-width-right))}}@media(min-width: 1920px){.mud-drawer-open-mini-xl-left.mud-drawer-left-clipped-never .mud-appbar{margin-left:var(--mud-drawer-width-left);width:calc(100% - var(--mud-drawer-width-left))}.mud-drawer-open-mini-xl-right.mud-drawer-right-clipped-never .mud-appbar{margin-right:var(--mud-drawer-width-right);width:calc(100% - var(--mud-drawer-width-right))}.mud-drawer-open-mini-xl-left.mud-drawer-left-clipped-never.mud-drawer-open-mini-xl-right.mud-drawer-right-clipped-never .mud-appbar{margin-left:var(--mud-drawer-width-left);margin-right:var(--mud-drawer-width-right);width:calc(100% - var(--mud-drawer-width-left) - var(--mud-drawer-width-right))}}@media(min-width: 2560px){.mud-drawer-open-mini-xxl-left.mud-drawer-left-clipped-never .mud-appbar{margin-left:var(--mud-drawer-width-left);width:calc(100% - var(--mud-drawer-width-left))}.mud-drawer-open-mini-xxl-right.mud-drawer-right-clipped-never .mud-appbar{margin-right:var(--mud-drawer-width-right);width:calc(100% - var(--mud-drawer-width-right))}.mud-drawer-open-mini-xxl-left.mud-drawer-left-clipped-never.mud-drawer-open-mini-xxl-right.mud-drawer-right-clipped-never .mud-appbar{margin-left:var(--mud-drawer-width-left);margin-right:var(--mud-drawer-width-right);width:calc(100% - var(--mud-drawer-width-left) - var(--mud-drawer-width-right))}}.mud-drawer-close-mini-xs-left.mud-drawer-left-clipped-never .mud-appbar{margin-left:var(--mud-drawer-width-mini-left);width:calc(100% - var(--mud-drawer-width-mini-left))}.mud-drawer-close-mini-xs-right.mud-drawer-right-clipped-never .mud-appbar{margin-right:var(--mud-drawer-width-mini-right);width:calc(100% - var(--mud-drawer-width-mini-right))}.mud-drawer-close-mini-xs-left.mud-drawer-left-clipped-never.mud-drawer-close-mini-xs-right.mud-drawer-right-clipped-never .mud-appbar{margin-left:var(--mud-drawer-width-mini-left);margin-right:var(--mud-drawer-width-mini-right);width:calc(100% - var(--mud-drawer-width-mini-left) - var(--mud-drawer-width-mini-right))}@media(max-width: 0px){.mud-drawer-close-mini-xs-left.mud-drawer-left-clipped-docked .mud-appbar{margin-left:var(--mud-drawer-width-mini-left);width:calc(100% - var(--mud-drawer-width-mini-left))}.mud-drawer-close-mini-xs-right.mud-drawer-right-clipped-docked .mud-appbar{margin-right:var(--mud-drawer-width-mini-right);width:calc(100% - var(--mud-drawer-width-mini-right))}.mud-drawer-close-mini-xs-left.mud-drawer-left-clipped-docked.mud-drawer-close-mini-xs-right.mud-drawer-right-clipped-docked .mud-appbar{margin-left:var(--mud-drawer-width-mini-left);margin-right:var(--mud-drawer-width-mini-right);width:calc(100% - var(--mud-drawer-width-mini-left) - var(--mud-drawer-width-mini-right))}}.mud-drawer-close-mini-sm-left.mud-drawer-left-clipped-never .mud-appbar{margin-left:var(--mud-drawer-width-mini-left);width:calc(100% - var(--mud-drawer-width-mini-left))}.mud-drawer-close-mini-sm-right.mud-drawer-right-clipped-never .mud-appbar{margin-right:var(--mud-drawer-width-mini-right);width:calc(100% - var(--mud-drawer-width-mini-right))}.mud-drawer-close-mini-sm-left.mud-drawer-left-clipped-never.mud-drawer-close-mini-sm-right.mud-drawer-right-clipped-never .mud-appbar{margin-left:var(--mud-drawer-width-mini-left);margin-right:var(--mud-drawer-width-mini-right);width:calc(100% - var(--mud-drawer-width-mini-left) - var(--mud-drawer-width-mini-right))}@media(max-width: 600px){.mud-drawer-close-mini-sm-left.mud-drawer-left-clipped-docked .mud-appbar{margin-left:var(--mud-drawer-width-mini-left);width:calc(100% - var(--mud-drawer-width-mini-left))}.mud-drawer-close-mini-sm-right.mud-drawer-right-clipped-docked .mud-appbar{margin-right:var(--mud-drawer-width-mini-right);width:calc(100% - var(--mud-drawer-width-mini-right))}.mud-drawer-close-mini-sm-left.mud-drawer-left-clipped-docked.mud-drawer-close-mini-sm-right.mud-drawer-right-clipped-docked .mud-appbar{margin-left:var(--mud-drawer-width-mini-left);margin-right:var(--mud-drawer-width-mini-right);width:calc(100% - var(--mud-drawer-width-mini-left) - var(--mud-drawer-width-mini-right))}}.mud-drawer-close-mini-md-left.mud-drawer-left-clipped-never .mud-appbar{margin-left:var(--mud-drawer-width-mini-left);width:calc(100% - var(--mud-drawer-width-mini-left))}.mud-drawer-close-mini-md-right.mud-drawer-right-clipped-never .mud-appbar{margin-right:var(--mud-drawer-width-mini-right);width:calc(100% - var(--mud-drawer-width-mini-right))}.mud-drawer-close-mini-md-left.mud-drawer-left-clipped-never.mud-drawer-close-mini-md-right.mud-drawer-right-clipped-never .mud-appbar{margin-left:var(--mud-drawer-width-mini-left);margin-right:var(--mud-drawer-width-mini-right);width:calc(100% - var(--mud-drawer-width-mini-left) - var(--mud-drawer-width-mini-right))}@media(max-width: 960px){.mud-drawer-close-mini-md-left.mud-drawer-left-clipped-docked .mud-appbar{margin-left:var(--mud-drawer-width-mini-left);width:calc(100% - var(--mud-drawer-width-mini-left))}.mud-drawer-close-mini-md-right.mud-drawer-right-clipped-docked .mud-appbar{margin-right:var(--mud-drawer-width-mini-right);width:calc(100% - var(--mud-drawer-width-mini-right))}.mud-drawer-close-mini-md-left.mud-drawer-left-clipped-docked.mud-drawer-close-mini-md-right.mud-drawer-right-clipped-docked .mud-appbar{margin-left:var(--mud-drawer-width-mini-left);margin-right:var(--mud-drawer-width-mini-right);width:calc(100% - var(--mud-drawer-width-mini-left) - var(--mud-drawer-width-mini-right))}}.mud-drawer-close-mini-lg-left.mud-drawer-left-clipped-never .mud-appbar{margin-left:var(--mud-drawer-width-mini-left);width:calc(100% - var(--mud-drawer-width-mini-left))}.mud-drawer-close-mini-lg-right.mud-drawer-right-clipped-never .mud-appbar{margin-right:var(--mud-drawer-width-mini-right);width:calc(100% - var(--mud-drawer-width-mini-right))}.mud-drawer-close-mini-lg-left.mud-drawer-left-clipped-never.mud-drawer-close-mini-lg-right.mud-drawer-right-clipped-never .mud-appbar{margin-left:var(--mud-drawer-width-mini-left);margin-right:var(--mud-drawer-width-mini-right);width:calc(100% - var(--mud-drawer-width-mini-left) - var(--mud-drawer-width-mini-right))}@media(max-width: 1280px){.mud-drawer-close-mini-lg-left.mud-drawer-left-clipped-docked .mud-appbar{margin-left:var(--mud-drawer-width-mini-left);width:calc(100% - var(--mud-drawer-width-mini-left))}.mud-drawer-close-mini-lg-right.mud-drawer-right-clipped-docked .mud-appbar{margin-right:var(--mud-drawer-width-mini-right);width:calc(100% - var(--mud-drawer-width-mini-right))}.mud-drawer-close-mini-lg-left.mud-drawer-left-clipped-docked.mud-drawer-close-mini-lg-right.mud-drawer-right-clipped-docked .mud-appbar{margin-left:var(--mud-drawer-width-mini-left);margin-right:var(--mud-drawer-width-mini-right);width:calc(100% - var(--mud-drawer-width-mini-left) - var(--mud-drawer-width-mini-right))}}.mud-drawer-close-mini-xl-left.mud-drawer-left-clipped-never .mud-appbar{margin-left:var(--mud-drawer-width-mini-left);width:calc(100% - var(--mud-drawer-width-mini-left))}.mud-drawer-close-mini-xl-right.mud-drawer-right-clipped-never .mud-appbar{margin-right:var(--mud-drawer-width-mini-right);width:calc(100% - var(--mud-drawer-width-mini-right))}.mud-drawer-close-mini-xl-left.mud-drawer-left-clipped-never.mud-drawer-close-mini-xl-right.mud-drawer-right-clipped-never .mud-appbar{margin-left:var(--mud-drawer-width-mini-left);margin-right:var(--mud-drawer-width-mini-right);width:calc(100% - var(--mud-drawer-width-mini-left) - var(--mud-drawer-width-mini-right))}@media(max-width: 1920px){.mud-drawer-close-mini-xl-left.mud-drawer-left-clipped-docked .mud-appbar{margin-left:var(--mud-drawer-width-mini-left);width:calc(100% - var(--mud-drawer-width-mini-left))}.mud-drawer-close-mini-xl-right.mud-drawer-right-clipped-docked .mud-appbar{margin-right:var(--mud-drawer-width-mini-right);width:calc(100% - var(--mud-drawer-width-mini-right))}.mud-drawer-close-mini-xl-left.mud-drawer-left-clipped-docked.mud-drawer-close-mini-xl-right.mud-drawer-right-clipped-docked .mud-appbar{margin-left:var(--mud-drawer-width-mini-left);margin-right:var(--mud-drawer-width-mini-right);width:calc(100% - var(--mud-drawer-width-mini-left) - var(--mud-drawer-width-mini-right))}}.mud-drawer-close-mini-xxl-left.mud-drawer-left-clipped-never .mud-appbar{margin-left:var(--mud-drawer-width-mini-left);width:calc(100% - var(--mud-drawer-width-mini-left))}.mud-drawer-close-mini-xxl-right.mud-drawer-right-clipped-never .mud-appbar{margin-right:var(--mud-drawer-width-mini-right);width:calc(100% - var(--mud-drawer-width-mini-right))}.mud-drawer-close-mini-xxl-left.mud-drawer-left-clipped-never.mud-drawer-close-mini-xxl-right.mud-drawer-right-clipped-never .mud-appbar{margin-left:var(--mud-drawer-width-mini-left);margin-right:var(--mud-drawer-width-mini-right);width:calc(100% - var(--mud-drawer-width-mini-left) - var(--mud-drawer-width-mini-right))}@media(max-width: 2560px){.mud-drawer-close-mini-xxl-left.mud-drawer-left-clipped-docked .mud-appbar{margin-left:var(--mud-drawer-width-mini-left);width:calc(100% - var(--mud-drawer-width-mini-left))}.mud-drawer-close-mini-xxl-right.mud-drawer-right-clipped-docked .mud-appbar{margin-right:var(--mud-drawer-width-mini-right);width:calc(100% - var(--mud-drawer-width-mini-right))}.mud-drawer-close-mini-xxl-left.mud-drawer-left-clipped-docked.mud-drawer-close-mini-xxl-right.mud-drawer-right-clipped-docked .mud-appbar{margin-left:var(--mud-drawer-width-mini-left);margin-right:var(--mud-drawer-width-mini-right);width:calc(100% - var(--mud-drawer-width-mini-left) - var(--mud-drawer-width-mini-right))}}.mud-drawer{display:flex;flex:0 0 auto;outline:0;position:fixed;z-index:var(--mud-zindex-drawer);overflow-y:auto;flex-direction:column;color:var(--mud-palette-drawer-text);background-color:var(--mud-palette-drawer-background);--mud-drawer-content-height: 0}.mud-drawer .mud-drawer-content{height:100%;max-height:100%;display:flex;flex:0 0 auto;flex-direction:column}.mud-drawer:not(.mud-drawer-fixed){position:absolute}@media(max-width: -1px){.mud-drawer.mud-drawer-mini.mud-drawer-xs:not(.mud-drawer--closed),.mud-drawer.mud-drawer-responsive.mud-drawer-xs{z-index:calc(var(--mud-zindex-appbar) + 2)}.mud-drawer.mud-drawer-mini.mud-drawer-xs:not(.mud-drawer--closed).mud-drawer--initial:not(.mud-drawer-mini),.mud-drawer.mud-drawer-responsive.mud-drawer-xs.mud-drawer--initial:not(.mud-drawer-mini){display:none !important}}@media(max-width: 599px){.mud-drawer.mud-drawer-mini.mud-drawer-sm:not(.mud-drawer--closed),.mud-drawer.mud-drawer-responsive.mud-drawer-sm{z-index:calc(var(--mud-zindex-appbar) + 2)}.mud-drawer.mud-drawer-mini.mud-drawer-sm:not(.mud-drawer--closed).mud-drawer--initial:not(.mud-drawer-mini),.mud-drawer.mud-drawer-responsive.mud-drawer-sm.mud-drawer--initial:not(.mud-drawer-mini){display:none !important}}@media(max-width: 959px){.mud-drawer.mud-drawer-mini.mud-drawer-md:not(.mud-drawer--closed),.mud-drawer.mud-drawer-responsive.mud-drawer-md{z-index:calc(var(--mud-zindex-appbar) + 2)}.mud-drawer.mud-drawer-mini.mud-drawer-md:not(.mud-drawer--closed).mud-drawer--initial:not(.mud-drawer-mini),.mud-drawer.mud-drawer-responsive.mud-drawer-md.mud-drawer--initial:not(.mud-drawer-mini){display:none !important}}@media(max-width: 1279px){.mud-drawer.mud-drawer-mini.mud-drawer-lg:not(.mud-drawer--closed),.mud-drawer.mud-drawer-responsive.mud-drawer-lg{z-index:calc(var(--mud-zindex-appbar) + 2)}.mud-drawer.mud-drawer-mini.mud-drawer-lg:not(.mud-drawer--closed).mud-drawer--initial:not(.mud-drawer-mini),.mud-drawer.mud-drawer-responsive.mud-drawer-lg.mud-drawer--initial:not(.mud-drawer-mini){display:none !important}}@media(max-width: 1919px){.mud-drawer.mud-drawer-mini.mud-drawer-xl:not(.mud-drawer--closed),.mud-drawer.mud-drawer-responsive.mud-drawer-xl{z-index:calc(var(--mud-zindex-appbar) + 2)}.mud-drawer.mud-drawer-mini.mud-drawer-xl:not(.mud-drawer--closed).mud-drawer--initial:not(.mud-drawer-mini),.mud-drawer.mud-drawer-responsive.mud-drawer-xl.mud-drawer--initial:not(.mud-drawer-mini){display:none !important}}@media(max-width: 2559px){.mud-drawer.mud-drawer-mini.mud-drawer-xxl:not(.mud-drawer--closed),.mud-drawer.mud-drawer-responsive.mud-drawer-xxl{z-index:calc(var(--mud-zindex-appbar) + 2)}.mud-drawer.mud-drawer-mini.mud-drawer-xxl:not(.mud-drawer--closed).mud-drawer--initial:not(.mud-drawer-mini),.mud-drawer.mud-drawer-responsive.mud-drawer-xxl.mud-drawer--initial:not(.mud-drawer-mini){display:none !important}}.mud-drawer.mud-drawer-responsive,.mud-drawer.mud-drawer-persistent{height:100%}.mud-drawer.mud-drawer-responsive.mud-drawer-pos-left,.mud-drawer.mud-drawer-persistent.mud-drawer-pos-left{right:auto;width:var(--mud-drawer-width, var(--mud-drawer-width-left))}.mud-drawer.mud-drawer-responsive.mud-drawer-pos-left.mud-drawer--open,.mud-drawer.mud-drawer-persistent.mud-drawer-pos-left.mud-drawer--open{left:0}.mud-drawer.mud-drawer-responsive.mud-drawer-pos-left.mud-drawer--open:not(.mud-drawer--initial),.mud-drawer.mud-drawer-persistent.mud-drawer-pos-left.mud-drawer--open:not(.mud-drawer--initial){animation:mud-drawer-slide-in-left 225ms cubic-bezier(0, 0, 0.2, 1)}.mud-drawer.mud-drawer-responsive.mud-drawer-pos-left.mud-drawer--closed,.mud-drawer.mud-drawer-persistent.mud-drawer-pos-left.mud-drawer--closed{box-shadow:none;left:calc(-1*var(--mud-drawer-width, var(--mud-drawer-width-left)))}.mud-drawer.mud-drawer-responsive.mud-drawer-pos-left.mud-drawer--closed:not(.mud-drawer--initial),.mud-drawer.mud-drawer-persistent.mud-drawer-pos-left.mud-drawer--closed:not(.mud-drawer--initial){animation:mud-drawer-slide-out-left 225ms cubic-bezier(0, 0, 0.2, 1)}.mud-drawer.mud-drawer-responsive.mud-drawer-pos-right,.mud-drawer.mud-drawer-persistent.mud-drawer-pos-right{left:auto;width:var(--mud-drawer-width, var(--mud-drawer-width-right))}.mud-drawer.mud-drawer-responsive.mud-drawer-pos-right.mud-drawer--open,.mud-drawer.mud-drawer-persistent.mud-drawer-pos-right.mud-drawer--open{right:0}.mud-drawer.mud-drawer-responsive.mud-drawer-pos-right.mud-drawer--open:not(.mud-drawer--initial),.mud-drawer.mud-drawer-persistent.mud-drawer-pos-right.mud-drawer--open:not(.mud-drawer--initial){animation:mud-drawer-slide-in-right 225ms cubic-bezier(0, 0, 0.2, 1)}.mud-drawer.mud-drawer-responsive.mud-drawer-pos-right.mud-drawer--closed,.mud-drawer.mud-drawer-persistent.mud-drawer-pos-right.mud-drawer--closed{box-shadow:none;right:calc(-1*var(--mud-drawer-width, var(--mud-drawer-width-right)))}.mud-drawer.mud-drawer-responsive.mud-drawer-pos-right.mud-drawer--closed:not(.mud-drawer--initial),.mud-drawer.mud-drawer-persistent.mud-drawer-pos-right.mud-drawer--closed:not(.mud-drawer--initial){animation:mud-drawer-slide-out-right 225ms cubic-bezier(0, 0, 0.2, 1)}.mud-drawer.mud-drawer-mini{height:100%;transition:width 225ms cubic-bezier(0, 0, 0.2, 1)}.mud-drawer.mud-drawer-mini.mud-drawer-pos-left{left:0;right:auto}.mud-drawer.mud-drawer-mini.mud-drawer-pos-left.mud-drawer--closed{width:var(--mud-drawer-width-mini-left)}.mud-drawer.mud-drawer-mini.mud-drawer-pos-left.mud-drawer--open{width:var(--mud-drawer-width-left)}.mud-drawer.mud-drawer-mini.mud-drawer-pos-right{left:auto;right:0}.mud-drawer.mud-drawer-mini.mud-drawer-pos-right.mud-drawer--closed{width:var(--mud-drawer-width-mini-right)}.mud-drawer.mud-drawer-mini.mud-drawer-pos-right.mud-drawer--open{width:var(--mud-drawer-width-right)}.mud-drawer.mud-drawer-temporary{margin:0 !important;z-index:calc(var(--mud-zindex-appbar) + 2);transition:transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms}.mud-drawer.mud-drawer-temporary.mud-drawer-pos-left{right:auto;top:0;height:100%;width:var(--mud-drawer-width, var(--mud-drawer-width-left))}.mud-drawer.mud-drawer-temporary.mud-drawer-pos-left.mud-drawer--open{left:0}.mud-drawer.mud-drawer-temporary.mud-drawer-pos-left.mud-drawer--open:not(.mud-drawer--initial){animation:mud-drawer-slide-in-left 225ms cubic-bezier(0, 0, 0.2, 1) forwards}.mud-drawer.mud-drawer-temporary.mud-drawer-pos-left.mud-drawer--closed{left:calc(-1*var(--mud-drawer-width, var(--mud-drawer-width-left)))}.mud-drawer.mud-drawer-temporary.mud-drawer-pos-left.mud-drawer--closed:not(.mud-drawer--initial){animation:mud-drawer-slide-out-left 225ms cubic-bezier(0, 0, 0.2, 1) forwards}.mud-drawer.mud-drawer-temporary.mud-drawer-pos-right{left:auto;top:0;height:100%;width:var(--mud-drawer-width, var(--mud-drawer-width-right))}.mud-drawer.mud-drawer-temporary.mud-drawer-pos-right.mud-drawer--open{right:0}.mud-drawer.mud-drawer-temporary.mud-drawer-pos-right.mud-drawer--open:not(.mud-drawer--initial){animation:mud-drawer-slide-in-right 225ms cubic-bezier(0, 0, 0.2, 1) forwards}.mud-drawer.mud-drawer-temporary.mud-drawer-pos-right.mud-drawer--closed{right:calc(-1*var(--mud-drawer-width, var(--mud-drawer-width-right)))}.mud-drawer.mud-drawer-temporary.mud-drawer-pos-right.mud-drawer--closed:not(.mud-drawer--initial){animation:mud-drawer-slide-out-right 225ms cubic-bezier(0, 0, 0.2, 1) forwards}.mud-drawer.mud-drawer-temporary.mud-drawer-pos-bottom{left:0;top:auto;width:100%}.mud-drawer.mud-drawer-temporary.mud-drawer-pos-bottom.mud-drawer--open{bottom:0}.mud-drawer.mud-drawer-temporary.mud-drawer-pos-bottom.mud-drawer--open:not(.mud-drawer--initial){animation:mud-drawer-slide-in-bottom 225ms cubic-bezier(0, 0, 0.2, 1) 0ms 1}.mud-drawer.mud-drawer-temporary.mud-drawer-pos-bottom.mud-drawer--closed{bottom:calc(-1*var(--mud-drawer-content-height))}.mud-drawer.mud-drawer-temporary.mud-drawer-pos-bottom.mud-drawer--closed:not(.mud-drawer--initial){animation:mud-drawer-slide-out-bottom 225ms cubic-bezier(0, 0, 0.2, 1) 0ms 1}.mud-drawer.mud-drawer-temporary.mud-drawer-pos-top{left:0;bottom:auto;width:100%}.mud-drawer.mud-drawer-temporary.mud-drawer-pos-top.mud-drawer--open{top:0}.mud-drawer.mud-drawer-temporary.mud-drawer-pos-top.mud-drawer--open:not(.mud-drawer--initial){animation:mud-drawer-slide-in-top 225ms cubic-bezier(0, 0, 0.2, 1) 0ms 1}.mud-drawer.mud-drawer-temporary.mud-drawer-pos-top.mud-drawer--closed{top:calc(-1*var(--mud-drawer-content-height))}.mud-drawer.mud-drawer-temporary.mud-drawer-pos-top.mud-drawer--closed:not(.mud-drawer--initial){animation:mud-drawer-slide-out-top 225ms cubic-bezier(0, 0, 0.2, 1) 0ms 1}.mud-drawer.mud-drawer-mini.mud-drawer-pos-left~div:not(.mud-main-content),.mud-drawer.mud-drawer-mini.mud-drawer-pos-right~div:not(.mud-main-content),.mud-drawer.mud-drawer-persistent.mud-drawer-pos-left~div:not(.mud-main-content),.mud-drawer.mud-drawer-persistent.mud-drawer-pos-right~div:not(.mud-main-content){transition:margin 225ms cubic-bezier(0, 0, 0.2, 1) 0ms}.mud-drawer.mud-drawer-mini.mud-drawer-pos-left.mud-drawer--open~div:not(.mud-main-content),.mud-drawer.mud-drawer-persistent.mud-drawer-pos-left.mud-drawer--open~div:not(.mud-main-content){margin-left:var(--mud-drawer-width, var(--mud-drawer-width-left))}.mud-drawer.mud-drawer-mini.mud-drawer-pos-right.mud-drawer--open~div:not(.mud-main-content),.mud-drawer.mud-drawer-persistent.mud-drawer-pos-right.mud-drawer--open~div:not(.mud-main-content){margin-right:var(--mud-drawer-width, var(--mud-drawer-width-right))}.mud-drawer.mud-drawer-mini.mud-drawer-pos-left.mud-drawer--closed~div:not(.mud-main-content){margin-left:var(--mud-drawer-width, var(--mud-drawer-width-mini-left))}.mud-drawer.mud-drawer-mini.mud-drawer-pos-right.mud-drawer--closed~div:not(.mud-main-content){margin-right:var(--mud-drawer-width, var(--mud-drawer-width-mini-right))}.mud-drawer-header{display:flex;min-height:var(--mud-appbar-height);padding:12px 24px 12px 24px}.mud-drawer-header.mud-drawer-header-dense{min-height:calc(var(--mud-appbar-height) - var(--mud-appbar-height)/4);padding:8px 24px 8px 24px}.mud-drawer-fixed.mud-drawer-mini.mud-drawer-clipped-always,.mud-drawer-fixed.mud-drawer-persistent:not(.mud-drawer-clipped-never),.mud-drawer-fixed.mud-drawer-responsive.mud-drawer-clipped-always,.mud-drawer-fixed.mud-drawer-temporary.mud-drawer-clipped-always{top:var(--mud-appbar-height);height:calc(100% - var(--mud-appbar-height))}@media(max-width: 599px)and (orientation: landscape){.mud-drawer-fixed.mud-drawer-mini.mud-drawer-clipped-always,.mud-drawer-fixed.mud-drawer-persistent:not(.mud-drawer-clipped-never),.mud-drawer-fixed.mud-drawer-responsive.mud-drawer-clipped-always,.mud-drawer-fixed.mud-drawer-temporary.mud-drawer-clipped-always{top:calc(var(--mud-appbar-height) - var(--mud-appbar-height)/4);height:calc(100% - (var(--mud-appbar-height) - var(--mud-appbar-height)/4))}}@media(max-width: 599px)and (orientation: portrait){.mud-drawer-fixed.mud-drawer-mini.mud-drawer-clipped-always,.mud-drawer-fixed.mud-drawer-persistent:not(.mud-drawer-clipped-never),.mud-drawer-fixed.mud-drawer-responsive.mud-drawer-clipped-always,.mud-drawer-fixed.mud-drawer-temporary.mud-drawer-clipped-always{top:calc(var(--mud-appbar-height) - var(--mud-appbar-height)/8);height:calc(100% - (var(--mud-appbar-height) - var(--mud-appbar-height)/8))}}@media(min-width: 0px){.mud-drawer-fixed.mud-drawer-mini.mud-drawer-clipped-docked.mud-drawer-xs,.mud-drawer-fixed.mud-drawer-responsive.mud-drawer-clipped-docked.mud-drawer-xs{top:var(--mud-appbar-height);height:calc(100% - var(--mud-appbar-height))}}@media(min-width: 0px)and (max-width: 599px)and (orientation: landscape){.mud-drawer-fixed.mud-drawer-mini.mud-drawer-clipped-docked.mud-drawer-xs,.mud-drawer-fixed.mud-drawer-responsive.mud-drawer-clipped-docked.mud-drawer-xs{top:calc(var(--mud-appbar-height) - var(--mud-appbar-height) - var(--mud-appbar-height)/4);height:calc(100% - var(--mud-appbar-height) + var(--mud-appbar-height) - var(--mud-appbar-height)/4)}}@media(min-width: 0px)and (max-width: 599px)and (orientation: portrait){.mud-drawer-fixed.mud-drawer-mini.mud-drawer-clipped-docked.mud-drawer-xs,.mud-drawer-fixed.mud-drawer-responsive.mud-drawer-clipped-docked.mud-drawer-xs{top:calc(var(--mud-appbar-height) - var(--mud-appbar-height)/8);height:calc(100% - var(--mud-appbar-height)/8)}}@media(min-width: 600px){.mud-drawer-fixed.mud-drawer-mini.mud-drawer-clipped-docked.mud-drawer-sm,.mud-drawer-fixed.mud-drawer-responsive.mud-drawer-clipped-docked.mud-drawer-sm{top:var(--mud-appbar-height);height:calc(100% - var(--mud-appbar-height))}}@media(min-width: 600px)and (max-width: 599px)and (orientation: landscape){.mud-drawer-fixed.mud-drawer-mini.mud-drawer-clipped-docked.mud-drawer-sm,.mud-drawer-fixed.mud-drawer-responsive.mud-drawer-clipped-docked.mud-drawer-sm{top:calc(var(--mud-appbar-height) - var(--mud-appbar-height) - var(--mud-appbar-height)/4);height:calc(100% - var(--mud-appbar-height) + var(--mud-appbar-height) - var(--mud-appbar-height)/4)}}@media(min-width: 600px)and (max-width: 599px)and (orientation: portrait){.mud-drawer-fixed.mud-drawer-mini.mud-drawer-clipped-docked.mud-drawer-sm,.mud-drawer-fixed.mud-drawer-responsive.mud-drawer-clipped-docked.mud-drawer-sm{top:calc(var(--mud-appbar-height) - var(--mud-appbar-height)/8);height:calc(100% - var(--mud-appbar-height)/8)}}@media(min-width: 960px){.mud-drawer-fixed.mud-drawer-mini.mud-drawer-clipped-docked.mud-drawer-md,.mud-drawer-fixed.mud-drawer-responsive.mud-drawer-clipped-docked.mud-drawer-md{top:var(--mud-appbar-height);height:calc(100% - var(--mud-appbar-height))}}@media(min-width: 960px)and (max-width: 599px)and (orientation: landscape){.mud-drawer-fixed.mud-drawer-mini.mud-drawer-clipped-docked.mud-drawer-md,.mud-drawer-fixed.mud-drawer-responsive.mud-drawer-clipped-docked.mud-drawer-md{top:calc(var(--mud-appbar-height) - var(--mud-appbar-height) - var(--mud-appbar-height)/4);height:calc(100% - var(--mud-appbar-height) + var(--mud-appbar-height) - var(--mud-appbar-height)/4)}}@media(min-width: 960px)and (max-width: 599px)and (orientation: portrait){.mud-drawer-fixed.mud-drawer-mini.mud-drawer-clipped-docked.mud-drawer-md,.mud-drawer-fixed.mud-drawer-responsive.mud-drawer-clipped-docked.mud-drawer-md{top:calc(var(--mud-appbar-height) - var(--mud-appbar-height)/8);height:calc(100% - var(--mud-appbar-height)/8)}}@media(min-width: 1280px){.mud-drawer-fixed.mud-drawer-mini.mud-drawer-clipped-docked.mud-drawer-lg,.mud-drawer-fixed.mud-drawer-responsive.mud-drawer-clipped-docked.mud-drawer-lg{top:var(--mud-appbar-height);height:calc(100% - var(--mud-appbar-height))}}@media(min-width: 1280px)and (max-width: 599px)and (orientation: landscape){.mud-drawer-fixed.mud-drawer-mini.mud-drawer-clipped-docked.mud-drawer-lg,.mud-drawer-fixed.mud-drawer-responsive.mud-drawer-clipped-docked.mud-drawer-lg{top:calc(var(--mud-appbar-height) - var(--mud-appbar-height) - var(--mud-appbar-height)/4);height:calc(100% - var(--mud-appbar-height) + var(--mud-appbar-height) - var(--mud-appbar-height)/4)}}@media(min-width: 1280px)and (max-width: 599px)and (orientation: portrait){.mud-drawer-fixed.mud-drawer-mini.mud-drawer-clipped-docked.mud-drawer-lg,.mud-drawer-fixed.mud-drawer-responsive.mud-drawer-clipped-docked.mud-drawer-lg{top:calc(var(--mud-appbar-height) - var(--mud-appbar-height)/8);height:calc(100% - var(--mud-appbar-height)/8)}}@media(min-width: 1920px){.mud-drawer-fixed.mud-drawer-mini.mud-drawer-clipped-docked.mud-drawer-xl,.mud-drawer-fixed.mud-drawer-responsive.mud-drawer-clipped-docked.mud-drawer-xl{top:var(--mud-appbar-height);height:calc(100% - var(--mud-appbar-height))}}@media(min-width: 1920px)and (max-width: 599px)and (orientation: landscape){.mud-drawer-fixed.mud-drawer-mini.mud-drawer-clipped-docked.mud-drawer-xl,.mud-drawer-fixed.mud-drawer-responsive.mud-drawer-clipped-docked.mud-drawer-xl{top:calc(var(--mud-appbar-height) - var(--mud-appbar-height) - var(--mud-appbar-height)/4);height:calc(100% - var(--mud-appbar-height) + var(--mud-appbar-height) - var(--mud-appbar-height)/4)}}@media(min-width: 1920px)and (max-width: 599px)and (orientation: portrait){.mud-drawer-fixed.mud-drawer-mini.mud-drawer-clipped-docked.mud-drawer-xl,.mud-drawer-fixed.mud-drawer-responsive.mud-drawer-clipped-docked.mud-drawer-xl{top:calc(var(--mud-appbar-height) - var(--mud-appbar-height)/8);height:calc(100% - var(--mud-appbar-height)/8)}}@media(min-width: 2560px){.mud-drawer-fixed.mud-drawer-mini.mud-drawer-clipped-docked.mud-drawer-xxl,.mud-drawer-fixed.mud-drawer-responsive.mud-drawer-clipped-docked.mud-drawer-xxl{top:var(--mud-appbar-height);height:calc(100% - var(--mud-appbar-height))}}@media(min-width: 2560px)and (max-width: 599px)and (orientation: landscape){.mud-drawer-fixed.mud-drawer-mini.mud-drawer-clipped-docked.mud-drawer-xxl,.mud-drawer-fixed.mud-drawer-responsive.mud-drawer-clipped-docked.mud-drawer-xxl{top:calc(var(--mud-appbar-height) - var(--mud-appbar-height) - var(--mud-appbar-height)/4);height:calc(100% - var(--mud-appbar-height) + var(--mud-appbar-height) - var(--mud-appbar-height)/4)}}@media(min-width: 2560px)and (max-width: 599px)and (orientation: portrait){.mud-drawer-fixed.mud-drawer-mini.mud-drawer-clipped-docked.mud-drawer-xxl,.mud-drawer-fixed.mud-drawer-responsive.mud-drawer-clipped-docked.mud-drawer-xxl{top:calc(var(--mud-appbar-height) - var(--mud-appbar-height)/8);height:calc(100% - var(--mud-appbar-height)/8)}}.mud-appbar-dense~.mud-drawer-fixed.mud-drawer-mini:not(.mud-drawer-clipped-never),.mud-appbar-dense~.mud-drawer-fixed.mud-drawer-persistent:not(.mud-drawer-clipped-never),.mud-appbar-dense~.mud-drawer-fixed.mud-drawer-responsive.mud-drawer-clipped-always,.mud-appbar-dense~.mud-drawer-fixed.mud-drawer-temporary.mud-drawer-clipped-always{top:calc(var(--mud-appbar-height) - var(--mud-appbar-height)/4);height:calc(100% - var(--mud-appbar-height) + var(--mud-appbar-height)/4)}@media(min-width: 0px){.mud-appbar-dense~.mud-drawer-fixed.mud-drawer-responsive.mud-drawer-clipped-docked.mud-drawer-xs{top:calc(var(--mud-appbar-height) - var(--mud-appbar-height)/4);height:calc(100% - var(--mud-appbar-height) + var(--mud-appbar-height)/4)}}@media(min-width: 600px){.mud-appbar-dense~.mud-drawer-fixed.mud-drawer-responsive.mud-drawer-clipped-docked.mud-drawer-sm{top:calc(var(--mud-appbar-height) - var(--mud-appbar-height)/4);height:calc(100% - var(--mud-appbar-height) + var(--mud-appbar-height)/4)}}@media(min-width: 960px){.mud-appbar-dense~.mud-drawer-fixed.mud-drawer-responsive.mud-drawer-clipped-docked.mud-drawer-md{top:calc(var(--mud-appbar-height) - var(--mud-appbar-height)/4);height:calc(100% - var(--mud-appbar-height) + var(--mud-appbar-height)/4)}}@media(min-width: 1280px){.mud-appbar-dense~.mud-drawer-fixed.mud-drawer-responsive.mud-drawer-clipped-docked.mud-drawer-lg{top:calc(var(--mud-appbar-height) - var(--mud-appbar-height)/4);height:calc(100% - var(--mud-appbar-height) + var(--mud-appbar-height)/4)}}@media(min-width: 1920px){.mud-appbar-dense~.mud-drawer-fixed.mud-drawer-responsive.mud-drawer-clipped-docked.mud-drawer-xl{top:calc(var(--mud-appbar-height) - var(--mud-appbar-height)/4);height:calc(100% - var(--mud-appbar-height) + var(--mud-appbar-height)/4)}}@media(min-width: 2560px){.mud-appbar-dense~.mud-drawer-fixed.mud-drawer-responsive.mud-drawer-clipped-docked.mud-drawer-xxl{top:calc(var(--mud-appbar-height) - var(--mud-appbar-height)/4);height:calc(100% - var(--mud-appbar-height) + var(--mud-appbar-height)/4)}}.mud-drawer-overlay{display:none}@media(max-width: -1px){.mud-drawer-overlay.mud-drawer-overlay--open.mud-drawer-overlay-responsive.mud-drawer-overlay-xs{display:block}.mud-drawer-overlay.mud-drawer-overlay--open.mud-drawer-overlay-responsive.mud-drawer-overlay-xs.mud-drawer--initial{display:none}}@media(max-width: -1px){.mud-drawer-overlay.mud-drawer-overlay--open.mud-drawer-overlay-mini.mud-drawer-overlay-xs{display:block}}@media(max-width: 599px){.mud-drawer-overlay.mud-drawer-overlay--open.mud-drawer-overlay-responsive.mud-drawer-overlay-sm{display:block}.mud-drawer-overlay.mud-drawer-overlay--open.mud-drawer-overlay-responsive.mud-drawer-overlay-sm.mud-drawer--initial{display:none}}@media(max-width: 599px){.mud-drawer-overlay.mud-drawer-overlay--open.mud-drawer-overlay-mini.mud-drawer-overlay-sm{display:block}}@media(max-width: 959px){.mud-drawer-overlay.mud-drawer-overlay--open.mud-drawer-overlay-responsive.mud-drawer-overlay-md{display:block}.mud-drawer-overlay.mud-drawer-overlay--open.mud-drawer-overlay-responsive.mud-drawer-overlay-md.mud-drawer--initial{display:none}}@media(max-width: 959px){.mud-drawer-overlay.mud-drawer-overlay--open.mud-drawer-overlay-mini.mud-drawer-overlay-md{display:block}}@media(max-width: 1279px){.mud-drawer-overlay.mud-drawer-overlay--open.mud-drawer-overlay-responsive.mud-drawer-overlay-lg{display:block}.mud-drawer-overlay.mud-drawer-overlay--open.mud-drawer-overlay-responsive.mud-drawer-overlay-lg.mud-drawer--initial{display:none}}@media(max-width: 1279px){.mud-drawer-overlay.mud-drawer-overlay--open.mud-drawer-overlay-mini.mud-drawer-overlay-lg{display:block}}@media(max-width: 1919px){.mud-drawer-overlay.mud-drawer-overlay--open.mud-drawer-overlay-responsive.mud-drawer-overlay-xl{display:block}.mud-drawer-overlay.mud-drawer-overlay--open.mud-drawer-overlay-responsive.mud-drawer-overlay-xl.mud-drawer--initial{display:none}}@media(max-width: 1919px){.mud-drawer-overlay.mud-drawer-overlay--open.mud-drawer-overlay-mini.mud-drawer-overlay-xl{display:block}}@media(max-width: 2559px){.mud-drawer-overlay.mud-drawer-overlay--open.mud-drawer-overlay-responsive.mud-drawer-overlay-xxl{display:block}.mud-drawer-overlay.mud-drawer-overlay--open.mud-drawer-overlay-responsive.mud-drawer-overlay-xxl.mud-drawer--initial{display:none}}@media(max-width: 2559px){.mud-drawer-overlay.mud-drawer-overlay--open.mud-drawer-overlay-mini.mud-drawer-overlay-xxl{display:block}}.mud-drawer-overlay.mud-drawer-overlay--open.mud-drawer-overlay-temporary{display:block}@keyframes mud-drawer-slide-in-left{from{left:calc(-1*var(--mud-drawer-width, var(--mud-drawer-width-left)))}}@keyframes mud-drawer-slide-out-left{from{left:0}}@keyframes mud-drawer-slide-in-right{from{right:calc(-1*var(--mud-drawer-width, var(--mud-drawer-width-right)))}}@keyframes mud-drawer-slide-out-right{from{right:0}}@keyframes mud-drawer-slide-in-bottom{from{bottom:calc(-1*var(--mud-drawer-content-height))}}@keyframes mud-drawer-slide-out-bottom{from{bottom:0}}@keyframes mud-drawer-slide-in-top{from{top:calc(-1*var(--mud-drawer-content-height))}}@keyframes mud-drawer-slide-out-top{from{top:0}}.mud-main-content{margin:0;flex:1 1 auto;padding-top:calc(var(--mud-appbar-height) - var(--mud-appbar-height)/8);transition:margin 225ms cubic-bezier(0, 0, 0.2, 1) 0ms}@media(min-width: 0px)and (orientation: landscape){.mud-main-content{padding-top:calc(var(--mud-appbar-height) - var(--mud-appbar-height)/4)}}@media(min-width: 600px){.mud-main-content{padding-top:var(--mud-appbar-height)}}.mud-appbar-dense~.mud-main-content{padding-top:calc(var(--mud-appbar-height) - var(--mud-appbar-height)/4)}@media(min-width: 0px){.mud-drawer-open-responsive-xs-left .mud-main-content{margin-left:var(--mud-drawer-width-left)}.mud-drawer-open-responsive-xs-right .mud-main-content{margin-right:var(--mud-drawer-width-right)}.mud-drawer-open-responsive-xs-left.mud-drawer-open-responsive-xs-right .mud-main-content{margin-right:var(--mud-drawer-width-right);margin-left:var(--mud-drawer-width-left)}}@media(min-width: 600px){.mud-drawer-open-responsive-sm-left .mud-main-content{margin-left:var(--mud-drawer-width-left)}.mud-drawer-open-responsive-sm-right .mud-main-content{margin-right:var(--mud-drawer-width-right)}.mud-drawer-open-responsive-sm-left.mud-drawer-open-responsive-sm-right .mud-main-content{margin-right:var(--mud-drawer-width-right);margin-left:var(--mud-drawer-width-left)}}@media(min-width: 960px){.mud-drawer-open-responsive-md-left .mud-main-content{margin-left:var(--mud-drawer-width-left)}.mud-drawer-open-responsive-md-right .mud-main-content{margin-right:var(--mud-drawer-width-right)}.mud-drawer-open-responsive-md-left.mud-drawer-open-responsive-md-right .mud-main-content{margin-right:var(--mud-drawer-width-right);margin-left:var(--mud-drawer-width-left)}}@media(min-width: 1280px){.mud-drawer-open-responsive-lg-left .mud-main-content{margin-left:var(--mud-drawer-width-left)}.mud-drawer-open-responsive-lg-right .mud-main-content{margin-right:var(--mud-drawer-width-right)}.mud-drawer-open-responsive-lg-left.mud-drawer-open-responsive-lg-right .mud-main-content{margin-right:var(--mud-drawer-width-right);margin-left:var(--mud-drawer-width-left)}}@media(min-width: 1920px){.mud-drawer-open-responsive-xl-left .mud-main-content{margin-left:var(--mud-drawer-width-left)}.mud-drawer-open-responsive-xl-right .mud-main-content{margin-right:var(--mud-drawer-width-right)}.mud-drawer-open-responsive-xl-left.mud-drawer-open-responsive-xl-right .mud-main-content{margin-right:var(--mud-drawer-width-right);margin-left:var(--mud-drawer-width-left)}}@media(min-width: 2560px){.mud-drawer-open-responsive-xxl-left .mud-main-content{margin-left:var(--mud-drawer-width-left)}.mud-drawer-open-responsive-xxl-right .mud-main-content{margin-right:var(--mud-drawer-width-right)}.mud-drawer-open-responsive-xxl-left.mud-drawer-open-responsive-xxl-right .mud-main-content{margin-right:var(--mud-drawer-width-right);margin-left:var(--mud-drawer-width-left)}}.mud-drawer-open-persistent-left:not(.mud-drawer-open-persistent-right) .mud-main-content{margin-left:var(--mud-drawer-width-left)}.mud-drawer-open-persistent-right:not(.mud-drawer-open-persistent-left) .mud-main-content{margin-right:var(--mud-drawer-width-right)}.mud-drawer-open-persistent-left.mud-drawer-open-persistent-right .mud-main-content{margin-right:var(--mud-drawer-width-right);margin-left:var(--mud-drawer-width-left)}.mud-drawer-open-mini-xs-left .mud-main-content{margin-left:var(--mud-drawer-width-left)}.mud-drawer-open-mini-xs-right .mud-main-content{margin-right:var(--mud-drawer-width-right)}.mud-drawer-open-mini-xs-left.mud-drawer-open-mini-xs-right .mud-main-content{margin-right:var(--mud-drawer-width-right);margin-left:var(--mud-drawer-width-left)}.mud-drawer-open-mini-sm-left .mud-main-content{margin-left:var(--mud-drawer-width-left)}.mud-drawer-open-mini-sm-right .mud-main-content{margin-right:var(--mud-drawer-width-right)}.mud-drawer-open-mini-sm-left.mud-drawer-open-mini-sm-right .mud-main-content{margin-right:var(--mud-drawer-width-right);margin-left:var(--mud-drawer-width-left)}.mud-drawer-open-mini-md-left .mud-main-content{margin-left:var(--mud-drawer-width-left)}.mud-drawer-open-mini-md-right .mud-main-content{margin-right:var(--mud-drawer-width-right)}.mud-drawer-open-mini-md-left.mud-drawer-open-mini-md-right .mud-main-content{margin-right:var(--mud-drawer-width-right);margin-left:var(--mud-drawer-width-left)}.mud-drawer-open-mini-lg-left .mud-main-content{margin-left:var(--mud-drawer-width-left)}.mud-drawer-open-mini-lg-right .mud-main-content{margin-right:var(--mud-drawer-width-right)}.mud-drawer-open-mini-lg-left.mud-drawer-open-mini-lg-right .mud-main-content{margin-right:var(--mud-drawer-width-right);margin-left:var(--mud-drawer-width-left)}.mud-drawer-open-mini-xl-left .mud-main-content{margin-left:var(--mud-drawer-width-left)}.mud-drawer-open-mini-xl-right .mud-main-content{margin-right:var(--mud-drawer-width-right)}.mud-drawer-open-mini-xl-left.mud-drawer-open-mini-xl-right .mud-main-content{margin-right:var(--mud-drawer-width-right);margin-left:var(--mud-drawer-width-left)}.mud-drawer-open-mini-xxl-left .mud-main-content{margin-left:var(--mud-drawer-width-left)}.mud-drawer-open-mini-xxl-right .mud-main-content{margin-right:var(--mud-drawer-width-right)}.mud-drawer-open-mini-xxl-left.mud-drawer-open-mini-xxl-right .mud-main-content{margin-right:var(--mud-drawer-width-right);margin-left:var(--mud-drawer-width-left)}.mud-drawer-open-mini-none-left .mud-main-content,.mud-drawer-open-mini-always-left .mud-main-content{margin-left:var(--mud-drawer-width-left)}.mud-drawer-open-mini-none-right .mud-main-content,.mud-drawer-open-mini-always-right .mud-main-content{margin-right:var(--mud-drawer-width-right)}.mud-drawer-open-mini-none-left.mud-drawer-open-mini-none,.mud-drawer-open-mini-none .mud-drawer-open-mini-always-right .mud-main-content,.mud-drawer-open-mini-always-left.mud-drawer-open-mini-none,.mud-drawer-open-mini-always .mud-drawer-open-mini-always-right .mud-main-content{margin-right:var(--mud-drawer-width-right);margin-left:var(--mud-drawer-width-left)}.mud-drawer-close-mini-xs-left .mud-main-content{margin-left:var(--mud-drawer-width-mini-left)}.mud-drawer-close-mini-xs-right .mud-main-content{margin-right:var(--mud-drawer-width-mini-right)}.mud-drawer-close-mini-xs-left.mud-drawer-close-mini-xs-right .mud-main-content{margin-right:var(--mud-drawer-width-mini-right);margin-left:var(--mud-drawer-width-mini-left)}.mud-drawer-close-mini-sm-left .mud-main-content{margin-left:var(--mud-drawer-width-mini-left)}.mud-drawer-close-mini-sm-right .mud-main-content{margin-right:var(--mud-drawer-width-mini-right)}.mud-drawer-close-mini-sm-left.mud-drawer-close-mini-sm-right .mud-main-content{margin-right:var(--mud-drawer-width-mini-right);margin-left:var(--mud-drawer-width-mini-left)}.mud-drawer-close-mini-md-left .mud-main-content{margin-left:var(--mud-drawer-width-mini-left)}.mud-drawer-close-mini-md-right .mud-main-content{margin-right:var(--mud-drawer-width-mini-right)}.mud-drawer-close-mini-md-left.mud-drawer-close-mini-md-right .mud-main-content{margin-right:var(--mud-drawer-width-mini-right);margin-left:var(--mud-drawer-width-mini-left)}.mud-drawer-close-mini-lg-left .mud-main-content{margin-left:var(--mud-drawer-width-mini-left)}.mud-drawer-close-mini-lg-right .mud-main-content{margin-right:var(--mud-drawer-width-mini-right)}.mud-drawer-close-mini-lg-left.mud-drawer-close-mini-lg-right .mud-main-content{margin-right:var(--mud-drawer-width-mini-right);margin-left:var(--mud-drawer-width-mini-left)}.mud-drawer-close-mini-xl-left .mud-main-content{margin-left:var(--mud-drawer-width-mini-left)}.mud-drawer-close-mini-xl-right .mud-main-content{margin-right:var(--mud-drawer-width-mini-right)}.mud-drawer-close-mini-xl-left.mud-drawer-close-mini-xl-right .mud-main-content{margin-right:var(--mud-drawer-width-mini-right);margin-left:var(--mud-drawer-width-mini-left)}.mud-drawer-close-mini-xxl-left .mud-main-content{margin-left:var(--mud-drawer-width-mini-left)}.mud-drawer-close-mini-xxl-right .mud-main-content{margin-right:var(--mud-drawer-width-mini-right)}.mud-drawer-close-mini-xxl-left.mud-drawer-close-mini-xxl-right .mud-main-content{margin-right:var(--mud-drawer-width-mini-right);margin-left:var(--mud-drawer-width-mini-left)}.mud-drawer-close-mini-none-left .mud-main-content,.mud-drawer-close-mini-always-left .mud-main-content{margin-left:var(--mud-drawer-width-mini-left)}.mud-drawer-close-mini-none-right .mud-main-content,.mud-drawer-close-mini-always-right .mud-main-content{margin-right:var(--mud-drawer-width-mini-right)}.mud-drawer-close-mini-none-left.mud-drawer-close-mini-none,.mud-drawer-close-mini-none .mud-drawer-close-mini-always-right .mud-main-content,.mud-drawer-close-mini-always-left.mud-drawer-close-mini-none,.mud-drawer-close-mini-always .mud-drawer-close-mini-always-right .mud-main-content{margin-right:var(--mud-drawer-width-mini-right);margin-left:var(--mud-drawer-width-mini-left)}.mud-container{width:100%;display:block;box-sizing:border-box;margin-left:auto;margin-right:auto}.mud-container--gutters{padding-left:16px;padding-right:16px}@media(min-width: 600px){.mud-container--gutters{padding-left:24px;padding-right:24px}}@media(min-width: 600px){.mud-container-fixed{max-width:600px}}@media(min-width: 960px){.mud-container-fixed{max-width:960px}}@media(min-width: 1280px){.mud-container-fixed{max-width:1280px}}@media(min-width: 1920px){.mud-container-fixed{max-width:1920px}}@media(min-width: 2560px){.mud-container-fixed{max-width:2560px}}@media(min-width: 0px){.mud-container-maxwidth-xs{max-width:444px}}@media(min-width: 600px){.mud-container-maxwidth-sm{max-width:600px}}@media(min-width: 960px){.mud-container-maxwidth-md{max-width:960px}}@media(min-width: 1280px){.mud-container-maxwidth-lg{max-width:1280px}}@media(min-width: 1920px){.mud-container-maxwidth-xl{max-width:1920px}}@media(min-width: 2560px){.mud-container-maxwidth-xxl{max-width:2560px}}.scroll-locked{padding-right:8px;overflow:hidden}.scroll-locked .mud-layout .mud-appbar{padding-right:8px}.scroll-locked .mud-layout .mud-main-content .mud-scroll-to-top{padding-right:8px}.scroll-locked-no-padding{overflow:hidden}@-moz-document url-prefix(){.scroll-locked{padding-right:17px}.scroll-locked .mud-layout .mud-appbar{padding-right:17px}.scroll-locked .mud-layout .mud-main-content .mud-scroll-to-top{padding-right:17px}}.mud-scroll-to-top{position:fixed;cursor:pointer;z-index:100}.mud-scroll-to-top.visible{bottom:16px;right:16px;opacity:1;transition:transform .5s;flex:1}.mud-scroll-to-top.hidden{bottom:16px;right:16px;opacity:0;transition:all .5s;visibility:hidden;transform:scale(0) rotate(180deg);flex:0}.mud-scroll-to-top:after{content:"";background:rgba(0,0,0,0);top:0;bottom:0;left:0;right:0;position:absolute;z-index:var(--mud-zindex-tooltip)}.red{background-color:#f44336}.red-text{color:#f44336}.red.lighten-5{background-color:#ffebee}.red-text.text-lighten-5{color:#ffebee}.red.lighten-4{background-color:#ffcdd2}.red-text.text-lighten-4{color:#ffcdd2}.red.lighten-3{background-color:#ef9a9a}.red-text.text-lighten-3{color:#ef9a9a}.red.lighten-2{background-color:#e57373}.red-text.text-lighten-2{color:#e57373}.red.lighten-1{background-color:#ef5350}.red-text.text-lighten-1{color:#ef5350}.red.darken-1{background-color:#e53935}.red-text.text-darken-1{color:#e53935}.red.darken-2{background-color:#d32f2f}.red-text.text-darken-2{color:#d32f2f}.red.darken-3{background-color:#c62828}.red-text.text-darken-3{color:#c62828}.red.darken-4{background-color:#b71c1c}.red-text.text-darken-4{color:#b71c1c}.red.accent-1{background-color:#ff8a80}.red-text.text-accent-1{color:#ff8a80}.red.accent-2{background-color:#ff5252}.red-text.text-accent-2{color:#ff5252}.red.accent-3{background-color:#ff1744}.red-text.text-accent-3{color:#ff1744}.red.accent-4{background-color:#d50000}.red-text.text-accent-4{color:#d50000}.pink{background-color:#e91e63}.pink-text{color:#e91e63}.pink.lighten-5{background-color:#fce4ec}.pink-text.text-lighten-5{color:#fce4ec}.pink.lighten-4{background-color:#f8bbd0}.pink-text.text-lighten-4{color:#f8bbd0}.pink.lighten-3{background-color:#f48fb1}.pink-text.text-lighten-3{color:#f48fb1}.pink.lighten-2{background-color:#f06292}.pink-text.text-lighten-2{color:#f06292}.pink.lighten-1{background-color:#ec407a}.pink-text.text-lighten-1{color:#ec407a}.pink.darken-1{background-color:#d81b60}.pink-text.text-darken-1{color:#d81b60}.pink.darken-2{background-color:#c2185b}.pink-text.text-darken-2{color:#c2185b}.pink.darken-3{background-color:#ad1457}.pink-text.text-darken-3{color:#ad1457}.pink.darken-4{background-color:#880e4f}.pink-text.text-darken-4{color:#880e4f}.pink.accent-1{background-color:#ff80ab}.pink-text.text-accent-1{color:#ff80ab}.pink.accent-2{background-color:#ff4081}.pink-text.text-accent-2{color:#ff4081}.pink.accent-3{background-color:#f50057}.pink-text.text-accent-3{color:#f50057}.pink.accent-4{background-color:#c51162}.pink-text.text-accent-4{color:#c51162}.purple{background-color:#9c27b0}.purple-text{color:#9c27b0}.purple.lighten-5{background-color:#f3e5f5}.purple-text.text-lighten-5{color:#f3e5f5}.purple.lighten-4{background-color:#e1bee7}.purple-text.text-lighten-4{color:#e1bee7}.purple.lighten-3{background-color:#ce93d8}.purple-text.text-lighten-3{color:#ce93d8}.purple.lighten-2{background-color:#ba68c8}.purple-text.text-lighten-2{color:#ba68c8}.purple.lighten-1{background-color:#ab47bc}.purple-text.text-lighten-1{color:#ab47bc}.purple.darken-1{background-color:#8e24aa}.purple-text.text-darken-1{color:#8e24aa}.purple.darken-2{background-color:#7b1fa2}.purple-text.text-darken-2{color:#7b1fa2}.purple.darken-3{background-color:#6a1b9a}.purple-text.text-darken-3{color:#6a1b9a}.purple.darken-4{background-color:#4a148c}.purple-text.text-darken-4{color:#4a148c}.purple.accent-1{background-color:#ea80fc}.purple-text.text-accent-1{color:#ea80fc}.purple.accent-2{background-color:#e040fb}.purple-text.text-accent-2{color:#e040fb}.purple.accent-3{background-color:#d500f9}.purple-text.text-accent-3{color:#d500f9}.purple.accent-4{background-color:#a0f}.purple-text.text-accent-4{color:#a0f}.deep-purple{background-color:#673ab7}.deep-purple-text{color:#673ab7}.deep-purple.lighten-5{background-color:#ede7f6}.deep-purple-text.text-lighten-5{color:#ede7f6}.deep-purple.lighten-4{background-color:#d1c4e9}.deep-purple-text.text-lighten-4{color:#d1c4e9}.deep-purple.lighten-3{background-color:#b39ddb}.deep-purple-text.text-lighten-3{color:#b39ddb}.deep-purple.lighten-2{background-color:#9575cd}.deep-purple-text.text-lighten-2{color:#9575cd}.deep-purple.lighten-1{background-color:#7e57c2}.deep-purple-text.text-lighten-1{color:#7e57c2}.deep-purple.darken-1{background-color:#5e35b1}.deep-purple-text.text-darken-1{color:#5e35b1}.deep-purple.darken-2{background-color:#512da8}.deep-purple-text.text-darken-2{color:#512da8}.deep-purple.darken-3{background-color:#4527a0}.deep-purple-text.text-darken-3{color:#4527a0}.deep-purple.darken-4{background-color:#311b92}.deep-purple-text.text-darken-4{color:#311b92}.deep-purple.accent-1{background-color:#b388ff}.deep-purple-text.text-accent-1{color:#b388ff}.deep-purple.accent-2{background-color:#7c4dff}.deep-purple-text.text-accent-2{color:#7c4dff}.deep-purple.accent-3{background-color:#651fff}.deep-purple-text.text-accent-3{color:#651fff}.deep-purple.accent-4{background-color:#6200ea}.deep-purple-text.text-accent-4{color:#6200ea}.indigo{background-color:#3f51b5}.indigo-text{color:#3f51b5}.indigo.lighten-5{background-color:#e8eaf6}.indigo-text.text-lighten-5{color:#e8eaf6}.indigo.lighten-4{background-color:#c5cae9}.indigo-text.text-lighten-4{color:#c5cae9}.indigo.lighten-3{background-color:#9fa8da}.indigo-text.text-lighten-3{color:#9fa8da}.indigo.lighten-2{background-color:#7986cb}.indigo-text.text-lighten-2{color:#7986cb}.indigo.lighten-1{background-color:#5c6bc0}.indigo-text.text-lighten-1{color:#5c6bc0}.indigo.darken-1{background-color:#3949ab}.indigo-text.text-darken-1{color:#3949ab}.indigo.darken-2{background-color:#303f9f}.indigo-text.text-darken-2{color:#303f9f}.indigo.darken-3{background-color:#283593}.indigo-text.text-darken-3{color:#283593}.indigo.darken-4{background-color:#1a237e}.indigo-text.text-darken-4{color:#1a237e}.indigo.accent-1{background-color:#8c9eff}.indigo-text.text-accent-1{color:#8c9eff}.indigo.accent-2{background-color:#536dfe}.indigo-text.text-accent-2{color:#536dfe}.indigo.accent-3{background-color:#3d5afe}.indigo-text.text-accent-3{color:#3d5afe}.indigo.accent-4{background-color:#304ffe}.indigo-text.text-accent-4{color:#304ffe}.blue{background-color:#2196f3}.blue-text{color:#2196f3}.blue.lighten-5{background-color:#e3f2fd}.blue-text.text-lighten-5{color:#e3f2fd}.blue.lighten-4{background-color:#bbdefb}.blue-text.text-lighten-4{color:#bbdefb}.blue.lighten-3{background-color:#90caf9}.blue-text.text-lighten-3{color:#90caf9}.blue.lighten-2{background-color:#64b5f6}.blue-text.text-lighten-2{color:#64b5f6}.blue.lighten-1{background-color:#42a5f5}.blue-text.text-lighten-1{color:#42a5f5}.blue.darken-1{background-color:#1e88e5}.blue-text.text-darken-1{color:#1e88e5}.blue.darken-2{background-color:#1976d2}.blue-text.text-darken-2{color:#1976d2}.blue.darken-3{background-color:#1565c0}.blue-text.text-darken-3{color:#1565c0}.blue.darken-4{background-color:#0d47a1}.blue-text.text-darken-4{color:#0d47a1}.blue.accent-1{background-color:#82b1ff}.blue-text.text-accent-1{color:#82b1ff}.blue.accent-2{background-color:#448aff}.blue-text.text-accent-2{color:#448aff}.blue.accent-3{background-color:#2979ff}.blue-text.text-accent-3{color:#2979ff}.blue.accent-4{background-color:#2962ff}.blue-text.text-accent-4{color:#2962ff}.light-blue{background-color:#03a9f4}.light-blue-text{color:#03a9f4}.light-blue.lighten-5{background-color:#e1f5fe}.light-blue-text.text-lighten-5{color:#e1f5fe}.light-blue.lighten-4{background-color:#b3e5fc}.light-blue-text.text-lighten-4{color:#b3e5fc}.light-blue.lighten-3{background-color:#81d4fa}.light-blue-text.text-lighten-3{color:#81d4fa}.light-blue.lighten-2{background-color:#4fc3f7}.light-blue-text.text-lighten-2{color:#4fc3f7}.light-blue.lighten-1{background-color:#29b6f6}.light-blue-text.text-lighten-1{color:#29b6f6}.light-blue.darken-1{background-color:#039be5}.light-blue-text.text-darken-1{color:#039be5}.light-blue.darken-2{background-color:#0288d1}.light-blue-text.text-darken-2{color:#0288d1}.light-blue.darken-3{background-color:#0277bd}.light-blue-text.text-darken-3{color:#0277bd}.light-blue.darken-4{background-color:#01579b}.light-blue-text.text-darken-4{color:#01579b}.light-blue.accent-1{background-color:#80d8ff}.light-blue-text.text-accent-1{color:#80d8ff}.light-blue.accent-2{background-color:#40c4ff}.light-blue-text.text-accent-2{color:#40c4ff}.light-blue.accent-3{background-color:#00b0ff}.light-blue-text.text-accent-3{color:#00b0ff}.light-blue.accent-4{background-color:#0091ea}.light-blue-text.text-accent-4{color:#0091ea}.cyan{background-color:#00bcd4}.cyan-text{color:#00bcd4}.cyan.lighten-5{background-color:#e0f7fa}.cyan-text.text-lighten-5{color:#e0f7fa}.cyan.lighten-4{background-color:#b2ebf2}.cyan-text.text-lighten-4{color:#b2ebf2}.cyan.lighten-3{background-color:#80deea}.cyan-text.text-lighten-3{color:#80deea}.cyan.lighten-2{background-color:#4dd0e1}.cyan-text.text-lighten-2{color:#4dd0e1}.cyan.lighten-1{background-color:#26c6da}.cyan-text.text-lighten-1{color:#26c6da}.cyan.darken-1{background-color:#00acc1}.cyan-text.text-darken-1{color:#00acc1}.cyan.darken-2{background-color:#0097a7}.cyan-text.text-darken-2{color:#0097a7}.cyan.darken-3{background-color:#00838f}.cyan-text.text-darken-3{color:#00838f}.cyan.darken-4{background-color:#006064}.cyan-text.text-darken-4{color:#006064}.cyan.accent-1{background-color:#84ffff}.cyan-text.text-accent-1{color:#84ffff}.cyan.accent-2{background-color:#18ffff}.cyan-text.text-accent-2{color:#18ffff}.cyan.accent-3{background-color:#00e5ff}.cyan-text.text-accent-3{color:#00e5ff}.cyan.accent-4{background-color:#00b8d4}.cyan-text.text-accent-4{color:#00b8d4}.teal{background-color:#009688}.teal-text{color:#009688}.teal.lighten-5{background-color:#e0f2f1}.teal-text.text-lighten-5{color:#e0f2f1}.teal.lighten-4{background-color:#b2dfdb}.teal-text.text-lighten-4{color:#b2dfdb}.teal.lighten-3{background-color:#80cbc4}.teal-text.text-lighten-3{color:#80cbc4}.teal.lighten-2{background-color:#4db6ac}.teal-text.text-lighten-2{color:#4db6ac}.teal.lighten-1{background-color:#26a69a}.teal-text.text-lighten-1{color:#26a69a}.teal.darken-1{background-color:#00897b}.teal-text.text-darken-1{color:#00897b}.teal.darken-2{background-color:#00796b}.teal-text.text-darken-2{color:#00796b}.teal.darken-3{background-color:#00695c}.teal-text.text-darken-3{color:#00695c}.teal.darken-4{background-color:#004d40}.teal-text.text-darken-4{color:#004d40}.teal.accent-1{background-color:#a7ffeb}.teal-text.text-accent-1{color:#a7ffeb}.teal.accent-2{background-color:#64ffda}.teal-text.text-accent-2{color:#64ffda}.teal.accent-3{background-color:#1de9b6}.teal-text.text-accent-3{color:#1de9b6}.teal.accent-4{background-color:#00bfa5}.teal-text.text-accent-4{color:#00bfa5}.green{background-color:#4caf50}.green-text{color:#4caf50}.green.lighten-5{background-color:#e8f5e9}.green-text.text-lighten-5{color:#e8f5e9}.green.lighten-4{background-color:#c8e6c9}.green-text.text-lighten-4{color:#c8e6c9}.green.lighten-3{background-color:#a5d6a7}.green-text.text-lighten-3{color:#a5d6a7}.green.lighten-2{background-color:#81c784}.green-text.text-lighten-2{color:#81c784}.green.lighten-1{background-color:#66bb6a}.green-text.text-lighten-1{color:#66bb6a}.green.darken-1{background-color:#43a047}.green-text.text-darken-1{color:#43a047}.green.darken-2{background-color:#388e3c}.green-text.text-darken-2{color:#388e3c}.green.darken-3{background-color:#2e7d32}.green-text.text-darken-3{color:#2e7d32}.green.darken-4{background-color:#1b5e20}.green-text.text-darken-4{color:#1b5e20}.green.accent-1{background-color:#b9f6ca}.green-text.text-accent-1{color:#b9f6ca}.green.accent-2{background-color:#69f0ae}.green-text.text-accent-2{color:#69f0ae}.green.accent-3{background-color:#00e676}.green-text.text-accent-3{color:#00e676}.green.accent-4{background-color:#00c853}.green-text.text-accent-4{color:#00c853}.light-green{background-color:#8bc34a}.light-green-text{color:#8bc34a}.light-green.lighten-5{background-color:#f1f8e9}.light-green-text.text-lighten-5{color:#f1f8e9}.light-green.lighten-4{background-color:#dcedc8}.light-green-text.text-lighten-4{color:#dcedc8}.light-green.lighten-3{background-color:#c5e1a5}.light-green-text.text-lighten-3{color:#c5e1a5}.light-green.lighten-2{background-color:#aed581}.light-green-text.text-lighten-2{color:#aed581}.light-green.lighten-1{background-color:#9ccc65}.light-green-text.text-lighten-1{color:#9ccc65}.light-green.darken-1{background-color:#7cb342}.light-green-text.text-darken-1{color:#7cb342}.light-green.darken-2{background-color:#689f38}.light-green-text.text-darken-2{color:#689f38}.light-green.darken-3{background-color:#558b2f}.light-green-text.text-darken-3{color:#558b2f}.light-green.darken-4{background-color:#33691e}.light-green-text.text-darken-4{color:#33691e}.light-green.accent-1{background-color:#ccff90}.light-green-text.text-accent-1{color:#ccff90}.light-green.accent-2{background-color:#b2ff59}.light-green-text.text-accent-2{color:#b2ff59}.light-green.accent-3{background-color:#76ff03}.light-green-text.text-accent-3{color:#76ff03}.light-green.accent-4{background-color:#64dd17}.light-green-text.text-accent-4{color:#64dd17}.lime{background-color:#cddc39}.lime-text{color:#cddc39}.lime.lighten-5{background-color:#f9fbe7}.lime-text.text-lighten-5{color:#f9fbe7}.lime.lighten-4{background-color:#f0f4c3}.lime-text.text-lighten-4{color:#f0f4c3}.lime.lighten-3{background-color:#e6ee9c}.lime-text.text-lighten-3{color:#e6ee9c}.lime.lighten-2{background-color:#dce775}.lime-text.text-lighten-2{color:#dce775}.lime.lighten-1{background-color:#d4e157}.lime-text.text-lighten-1{color:#d4e157}.lime.darken-1{background-color:#c0ca33}.lime-text.text-darken-1{color:#c0ca33}.lime.darken-2{background-color:#afb42b}.lime-text.text-darken-2{color:#afb42b}.lime.darken-3{background-color:#9e9d24}.lime-text.text-darken-3{color:#9e9d24}.lime.darken-4{background-color:#827717}.lime-text.text-darken-4{color:#827717}.lime.accent-1{background-color:#f4ff81}.lime-text.text-accent-1{color:#f4ff81}.lime.accent-2{background-color:#eeff41}.lime-text.text-accent-2{color:#eeff41}.lime.accent-3{background-color:#c6ff00}.lime-text.text-accent-3{color:#c6ff00}.lime.accent-4{background-color:#aeea00}.lime-text.text-accent-4{color:#aeea00}.yellow{background-color:#ffeb3b}.yellow-text{color:#ffeb3b}.yellow.lighten-5{background-color:#fffde7}.yellow-text.text-lighten-5{color:#fffde7}.yellow.lighten-4{background-color:#fff9c4}.yellow-text.text-lighten-4{color:#fff9c4}.yellow.lighten-3{background-color:#fff59d}.yellow-text.text-lighten-3{color:#fff59d}.yellow.lighten-2{background-color:#fff176}.yellow-text.text-lighten-2{color:#fff176}.yellow.lighten-1{background-color:#ffee58}.yellow-text.text-lighten-1{color:#ffee58}.yellow.darken-1{background-color:#fdd835}.yellow-text.text-darken-1{color:#fdd835}.yellow.darken-2{background-color:#fbc02d}.yellow-text.text-darken-2{color:#fbc02d}.yellow.darken-3{background-color:#f9a825}.yellow-text.text-darken-3{color:#f9a825}.yellow.darken-4{background-color:#f57f17}.yellow-text.text-darken-4{color:#f57f17}.yellow.accent-1{background-color:#ffff8d}.yellow-text.text-accent-1{color:#ffff8d}.yellow.accent-2{background-color:#ff0}.yellow-text.text-accent-2{color:#ff0}.yellow.accent-3{background-color:#ffea00}.yellow-text.text-accent-3{color:#ffea00}.yellow.accent-4{background-color:#ffd600}.yellow-text.text-accent-4{color:#ffd600}.amber{background-color:#ffc107}.amber-text{color:#ffc107}.amber.lighten-5{background-color:#fff8e1}.amber-text.text-lighten-5{color:#fff8e1}.amber.lighten-4{background-color:#ffecb3}.amber-text.text-lighten-4{color:#ffecb3}.amber.lighten-3{background-color:#ffe082}.amber-text.text-lighten-3{color:#ffe082}.amber.lighten-2{background-color:#ffd54f}.amber-text.text-lighten-2{color:#ffd54f}.amber.lighten-1{background-color:#ffca28}.amber-text.text-lighten-1{color:#ffca28}.amber.darken-1{background-color:#ffb300}.amber-text.text-darken-1{color:#ffb300}.amber.darken-2{background-color:#ffa000}.amber-text.text-darken-2{color:#ffa000}.amber.darken-3{background-color:#ff8f00}.amber-text.text-darken-3{color:#ff8f00}.amber.darken-4{background-color:#ff6f00}.amber-text.text-darken-4{color:#ff6f00}.amber.accent-1{background-color:#ffe57f}.amber-text.text-accent-1{color:#ffe57f}.amber.accent-2{background-color:#ffd740}.amber-text.text-accent-2{color:#ffd740}.amber.accent-3{background-color:#ffc400}.amber-text.text-accent-3{color:#ffc400}.amber.accent-4{background-color:#ffab00}.amber-text.text-accent-4{color:#ffab00}.orange{background-color:#ff9800}.orange-text{color:#ff9800}.orange.lighten-5{background-color:#fff3e0}.orange-text.text-lighten-5{color:#fff3e0}.orange.lighten-4{background-color:#ffe0b2}.orange-text.text-lighten-4{color:#ffe0b2}.orange.lighten-3{background-color:#ffcc80}.orange-text.text-lighten-3{color:#ffcc80}.orange.lighten-2{background-color:#ffb74d}.orange-text.text-lighten-2{color:#ffb74d}.orange.lighten-1{background-color:#ffa726}.orange-text.text-lighten-1{color:#ffa726}.orange.darken-1{background-color:#fb8c00}.orange-text.text-darken-1{color:#fb8c00}.orange.darken-2{background-color:#f57c00}.orange-text.text-darken-2{color:#f57c00}.orange.darken-3{background-color:#ef6c00}.orange-text.text-darken-3{color:#ef6c00}.orange.darken-4{background-color:#e65100}.orange-text.text-darken-4{color:#e65100}.orange.accent-1{background-color:#ffd180}.orange-text.text-accent-1{color:#ffd180}.orange.accent-2{background-color:#ffab40}.orange-text.text-accent-2{color:#ffab40}.orange.accent-3{background-color:#ff9100}.orange-text.text-accent-3{color:#ff9100}.orange.accent-4{background-color:#ff6d00}.orange-text.text-accent-4{color:#ff6d00}.deep-orange{background-color:#ff5722}.deep-orange-text{color:#ff5722}.deep-orange.lighten-5{background-color:#fbe9e7}.deep-orange-text.text-lighten-5{color:#fbe9e7}.deep-orange.lighten-4{background-color:#ffccbc}.deep-orange-text.text-lighten-4{color:#ffccbc}.deep-orange.lighten-3{background-color:#ffab91}.deep-orange-text.text-lighten-3{color:#ffab91}.deep-orange.lighten-2{background-color:#ff8a65}.deep-orange-text.text-lighten-2{color:#ff8a65}.deep-orange.lighten-1{background-color:#ff7043}.deep-orange-text.text-lighten-1{color:#ff7043}.deep-orange.darken-1{background-color:#f4511e}.deep-orange-text.text-darken-1{color:#f4511e}.deep-orange.darken-2{background-color:#e64a19}.deep-orange-text.text-darken-2{color:#e64a19}.deep-orange.darken-3{background-color:#d84315}.deep-orange-text.text-darken-3{color:#d84315}.deep-orange.darken-4{background-color:#bf360c}.deep-orange-text.text-darken-4{color:#bf360c}.deep-orange.accent-1{background-color:#ff9e80}.deep-orange-text.text-accent-1{color:#ff9e80}.deep-orange.accent-2{background-color:#ff6e40}.deep-orange-text.text-accent-2{color:#ff6e40}.deep-orange.accent-3{background-color:#ff3d00}.deep-orange-text.text-accent-3{color:#ff3d00}.deep-orange.accent-4{background-color:#dd2c00}.deep-orange-text.text-accent-4{color:#dd2c00}.brown{background-color:#795548}.brown-text{color:#795548}.brown.lighten-5{background-color:#efebe9}.brown-text.text-lighten-5{color:#efebe9}.brown.lighten-4{background-color:#d7ccc8}.brown-text.text-lighten-4{color:#d7ccc8}.brown.lighten-3{background-color:#bcaaa4}.brown-text.text-lighten-3{color:#bcaaa4}.brown.lighten-2{background-color:#a1887f}.brown-text.text-lighten-2{color:#a1887f}.brown.lighten-1{background-color:#8d6e63}.brown-text.text-lighten-1{color:#8d6e63}.brown.darken-1{background-color:#6d4c41}.brown-text.text-darken-1{color:#6d4c41}.brown.darken-2{background-color:#5d4037}.brown-text.text-darken-2{color:#5d4037}.brown.darken-3{background-color:#4e342e}.brown-text.text-darken-3{color:#4e342e}.brown.darken-4{background-color:#3e2723}.brown-text.text-darken-4{color:#3e2723}.blue-gray{background-color:#607d8b}.blue-gray-text{color:#607d8b}.blue-gray.lighten-5{background-color:#eceff1}.blue-gray-text.text-lighten-5{color:#eceff1}.blue-gray.lighten-4{background-color:#cfd8dc}.blue-gray-text.text-lighten-4{color:#cfd8dc}.blue-gray.lighten-3{background-color:#b0bec5}.blue-gray-text.text-lighten-3{color:#b0bec5}.blue-gray.lighten-2{background-color:#90a4ae}.blue-gray-text.text-lighten-2{color:#90a4ae}.blue-gray.lighten-1{background-color:#78909c}.blue-gray-text.text-lighten-1{color:#78909c}.blue-gray.darken-1{background-color:#546e7a}.blue-gray-text.text-darken-1{color:#546e7a}.blue-gray.darken-2{background-color:#455a64}.blue-gray-text.text-darken-2{color:#455a64}.blue-gray.darken-3{background-color:#37474f}.blue-gray-text.text-darken-3{color:#37474f}.blue-gray.darken-4{background-color:#263238}.blue-gray-text.text-darken-4{color:#263238}.gray{background-color:#9e9e9e}.gray-text{color:#9e9e9e}.gray.lighten-5{background-color:#fafafa}.gray-text.text-lighten-5{color:#fafafa}.gray.lighten-4{background-color:#f5f5f5}.gray-text.text-lighten-4{color:#f5f5f5}.gray.lighten-3{background-color:#eee}.gray-text.text-lighten-3{color:#eee}.gray.lighten-2{background-color:#e0e0e0}.gray-text.text-lighten-2{color:#e0e0e0}.gray.lighten-1{background-color:#bdbdbd}.gray-text.text-lighten-1{color:#bdbdbd}.gray.darken-1{background-color:#757575}.gray-text.text-darken-1{color:#757575}.gray.darken-2{background-color:#616161}.gray-text.text-darken-2{color:#616161}.gray.darken-3{background-color:#424242}.gray-text.text-darken-3{color:#424242}.gray.darken-4{background-color:#212121}.gray-text.text-darken-4{color:#212121}.shades.black{background-color:#000}.shades-text.text-black{color:#000}.shades.white{background-color:#fff}.shades-text.text-white{color:#fff}.shades.transparent{background-color:rgba(0,0,0,0)}.shades-text.text-transparent{color:rgba(0,0,0,0)}.mud-ripple{--mud-ripple-offset-x: 0;--mud-ripple-offset-y: 0;position:relative;overflow:hidden}.mud-ripple:after{content:"";display:block;position:absolute;width:100%;height:100%;top:var(--mud-ripple-offset-y);left:var(--mud-ripple-offset-x);pointer-events:none;background-image:radial-gradient(circle, var(--mud-ripple-color) 10%, transparent 10.01%);background-repeat:no-repeat;background-position:50%;transform:scale(20, 20);opacity:0;transition:transform .6s,opacity 1s}.mud-ripple:active:after{transform:scale(0, 0);opacity:var(--mud-ripple-opacity);transition:0s}.mud-ripple:has(.mud-ripple:active):after{opacity:0}.mud-ripple-icon:after,.mud-ripple-checkbox:after,.mud-ripple-switch:after,.mud-ripple-radio:after{transform:scale(14, 14)}.mud-ripple-switch{position:absolute}.mud-rtl{direction:rtl !important}.mud-ltr{direction:ltr !important}.mud-application-layout-rtl .mud-flip-x-rtl{transform:scaleX(-1)} diff --git a/app/MindWork AI Studio/wwwroot/system/MudBlazor/MudBlazor.min.css.br b/app/MindWork AI Studio/wwwroot/system/MudBlazor/MudBlazor.min.css.br index e9a373e1..36054074 100644 Binary files a/app/MindWork AI Studio/wwwroot/system/MudBlazor/MudBlazor.min.css.br and b/app/MindWork AI Studio/wwwroot/system/MudBlazor/MudBlazor.min.css.br differ diff --git a/app/MindWork AI Studio/wwwroot/system/MudBlazor/MudBlazor.min.css.gz b/app/MindWork AI Studio/wwwroot/system/MudBlazor/MudBlazor.min.css.gz index 55082afa..f7d20a4d 100644 Binary files a/app/MindWork AI Studio/wwwroot/system/MudBlazor/MudBlazor.min.css.gz and b/app/MindWork AI Studio/wwwroot/system/MudBlazor/MudBlazor.min.css.gz differ diff --git a/app/MindWork AI Studio/wwwroot/system/MudBlazor/MudBlazor.min.js b/app/MindWork AI Studio/wwwroot/system/MudBlazor/MudBlazor.min.js index 965dedba..375c7481 100755 --- a/app/MindWork AI Studio/wwwroot/system/MudBlazor/MudBlazor.min.js +++ b/app/MindWork AI Studio/wwwroot/system/MudBlazor/MudBlazor.min.js @@ -1,27 +1,9 @@ -class MudInput{resetValue(id){const input=document.getElementById(id);if(input){input.value='';}} -focusInput(elementId){const input=document.getElementById(elementId);if(input&&document.activeElement!==input){input.focus();input.click();}}} -window.mudInput=new MudInput();class MudScrollSpy{constructor(){this.lastKnowElement=null;this.handlerRef=null;} -spying(dotnetReference,containerSelector,sectionClassSelector){this.lastKnowElement=null;this.handlerRef=this.handleScroll.bind(this,dotnetReference,containerSelector,sectionClassSelector);document.addEventListener('scroll',this.handlerRef,true);window.addEventListener('resize',this.handlerRef,true);} -handleScroll(dotnetReference,containerSelector,sectionClassSelector,event){const container=document.querySelector(containerSelector);if(container===null){return;} -const elements=document.getElementsByClassName(sectionClassSelector);if(elements.length===0){return;} -const containerTop=container.tagName==='HTML'?0:container.getBoundingClientRect().top;const containerHeight=container.clientHeight;const center=containerTop+containerHeight/2.0;let minDifference=Number.MAX_SAFE_INTEGER;let foundAbove=false;let elementId='';for(let i=0;i=center){continue;} -if(diffdocument.body.clientWidth;const classToAdd=hasScrollBar?lockclass:lockclass+"-no-padding";element.classList.add(classToAdd);} -this._lockCount++;} -unlockScroll(selector,lockclass){this._lockCount=Math.max(0,this._lockCount-1);if(this._lockCount===0){const element=document.querySelector(selector)||document.body;element.classList.remove(lockclass);element.classList.remove(lockclass+"-no-padding");}}};window.mudScrollManager=new MudScrollManager();class MudThrottledEventManager{constructor(){this.mapper={};} +class MudInput{resetValue(id){const input=document.getElementById(id);if(input){input.value='';}}} +window.mudInput=new MudInput();const darkThemeMediaQuery=window.matchMedia("(prefers-color-scheme: dark)");window.darkModeChange=()=>{return darkThemeMediaQuery.matches;};function darkModeChangeListener(e){dotNetHelperTheme.invokeMethodAsync('SystemDarkModeChangedAsync',e.matches);} +function watchDarkThemeMedia(dotNetHelper){dotNetHelperTheme=dotNetHelper;darkThemeMediaQuery.addEventListener('change',darkModeChangeListener);} +function stopWatchingDarkThemeMedia(){darkThemeMediaQuery.removeEventListener('change',darkModeChangeListener);} +class MudThrottledEventManager{constructor(){this.mapper={};} subscribe(eventName,elementId,projection,throotleInterval,key,properties,dotnetReference){const handlerRef=this.throttleEventHandler.bind(this,key);let elem=document.getElementById(elementId);if(elem){elem.addEventListener(eventName,handlerRef,false);let projector=null;if(projection){const parts=projection.split('.');let functionPointer=window;let functionReferenceFound=true;if(parts.length==0||parts.length==1){functionPointer=functionPointer[projection];} else{for(let i=0;i{};this.pointerDownHandlerRef=null;this.pointerUpHandlerRef=null;this.pointerDownMap=new Map();this.pointerUpMap=new Map();} -listenForPointerEvents(dotNetReference,elementId,options){if(!options){this.logger("options object is required but was not provided");return;} -if(options.enableLogging){this.logger=(msg,...args)=>console.log("[MudBlazor | PointerEventsNone]",msg,...args);}else{this.logger=(msg,...args)=>{};} -this.logger("Called listenForPointerEvents",{dotNetReference,elementId,options});if(!dotNetReference){this.logger("dotNetReference is required but was not provided");return;} -if(!elementId){this.logger("elementId is required but was not provided");return;} -if(!options.subscribeDown&&!options.subscribeUp){this.logger("No subscriptions added: both subscribeDown and subscribeUp are false");return;} -if(!this.dotnet){this.dotnet=dotNetReference;} -if(options.subscribeDown){this.logger("Subscribing to 'pointerdown' for element:",elementId);this.pointerDownMap.set(elementId,options);if(!this.pointerDownHandlerRef){this.logger("Registering global 'pointerdown' event listener");this.pointerDownHandlerRef=this.pointerDownHandler.bind(this);document.addEventListener("pointerdown",this.pointerDownHandlerRef,false);}} -if(options.subscribeUp){this.logger("Subscribing to 'pointerup' events for element:",elementId);this.pointerUpMap.set(elementId,options);if(!this.pointerUpHandlerRef){this.logger("Registering global 'pointerup' event listener");this.pointerUpHandlerRef=this.pointerUpHandler.bind(this);document.addEventListener("pointerup",this.pointerUpHandlerRef,false);}}} -pointerDownHandler(event){this._handlePointerEvent(event,this.pointerDownMap,"RaiseOnPointerDown");} -pointerUpHandler(event){this._handlePointerEvent(event,this.pointerUpMap,"RaiseOnPointerUp");} -_handlePointerEvent(event,map,raiseMethod){if(map.size===0){this.logger("No elements registered for",raiseMethod);return;} -const elements=[];for(const id of map.keys()){const element=document.getElementById(id);if(element){elements.push(element);}else{this.logger("Element",id,"not found in DOM");}} -if(elements.length===0){this.logger("None of the registered elements were found in the DOM for",raiseMethod);return;} -elements.forEach(x=>x.style.pointerEvents="auto");const elementsFromPoint=document.elementsFromPoint(event.clientX,event.clientY);elements.forEach(x=>x.style.pointerEvents="none");const matchingIds=[];for(const element of elementsFromPoint){if(!element.id||!map.has(element.id)){break;} -matchingIds.push(element.id);} -if(matchingIds.length===0){this.logger("No matching registered elements found under pointer for",raiseMethod);return;} -this.logger("Raising",raiseMethod,"for matching element(s):",matchingIds);this.dotnet.invokeMethodAsync(raiseMethod,matchingIds);} -cancelListener(elementId){if(!elementId){this.logger("cancelListener called with invalid elementId");return;} -const hadDown=this.pointerDownMap.delete(elementId);const hadUp=this.pointerUpMap.delete(elementId);if(hadDown||hadUp){this.logger("Cancelled listener for element",elementId);}else{this.logger("No active listener found for element",elementId);} -if(this.pointerDownMap.size===0&&this.pointerDownHandlerRef){this.logger("No more elements listening for 'pointerdown' — removing global event listener");document.removeEventListener("pointerdown",this.pointerDownHandlerRef);this.pointerDownHandlerRef=null;} -if(this.pointerUpMap.size===0&&this.pointerUpHandlerRef){this.logger("No more elements listening for 'pointerup' — removing global event listener");document.removeEventListener("pointerup",this.pointerUpHandlerRef);this.pointerUpHandlerRef=null;}} -dispose(){if(!this.dotnet&&!this.pointerDownHandlerRef&&!this.pointerUpHandlerRef){this.logger("dispose() called but instance was already cleaned up");return;} -this.logger("Disposing");if(this.pointerDownHandlerRef){this.logger("Removing global 'pointerdown' event listener");document.removeEventListener("pointerdown",this.pointerDownHandlerRef);this.pointerDownHandlerRef=null;} -if(this.pointerUpHandlerRef){this.logger("Removing global 'pointerup' event listener");document.removeEventListener("pointerup",this.pointerUpHandlerRef);this.pointerUpHandlerRef=null;} -const downCount=this.pointerDownMap.size;const upCount=this.pointerUpMap.size;if(downCount>0){this.logger("Clearing",downCount,"element(s) from pointerDownMap");} -if(upCount>0){this.logger("Clearing",upCount,"element(s) from pointerUpMap");} -this.pointerDownMap.clear();this.pointerUpMap.clear();this.dotnet=null;}} -window.mudPointerEventsNone=new MudPointerEventsNone();window.mudDragAndDrop={initDropZone:(id)=>{const elem=document.getElementById(id);elem.addEventListener('dragover',()=>event.preventDefault());elem.addEventListener('dragstart',()=>event.dataTransfer.setData('',event.target.id));},makeDropZonesNotRelative:()=>{var firstDropItems=Array.from(document.getElementsByClassName('mud-drop-item')).filter(x=>x.getAttribute('index')=="-1");for(let dropItem of firstDropItems){dropItem.style.position='static';} -const dropZones=document.getElementsByClassName('mud-drop-zone');for(let dropZone of dropZones){dropZone.style.position='unset';}},getDropZoneIdentifierOnPosition:(x,y)=>{const elems=document.elementsFromPoint(x,y);const dropZones=elems.filter(e=>e.classList.contains('mud-drop-zone')) -const dropZone=dropZones[0];if(dropZone){return dropZone.getAttribute('identifier')||"";} -return"";},getDropIndexOnPosition:(x,y,id)=>{const elems=document.elementsFromPoint(x,y);const dropItems=elems.filter(e=>e.classList.contains('mud-drop-item')&&e.id!=id) -const dropItem=dropItems[0];if(dropItem){return dropItem.getAttribute('index')||"";} -return"";},makeDropZonesRelative:()=>{const dropZones=document.getElementsByClassName('mud-drop-zone');for(let dropZone of dropZones){dropZone.style.position='relative';} -var firstDropItems=Array.from(document.getElementsByClassName('mud-drop-item')).filter(x=>x.getAttribute('index')=="-1");for(let dropItem of firstDropItems){dropItem.style.position='relative';}},moveItemByDifference:(id,dx,dy)=>{const elem=document.getElementById(id);var tx=(parseFloat(elem.getAttribute('data-x'))||0)+dx;var ty=(parseFloat(elem.getAttribute('data-y'))||0)+dy;elem.style.webkitTransform=elem.style.transform='translate3d('+tx+'px, '+ty+'px, 10px)';elem.setAttribute('data-x',tx);elem.setAttribute('data-y',ty);},resetItem:(id)=>{const elem=document.getElementById(id);if(elem){elem.style.webkitTransform=elem.style.transform='';elem.setAttribute('data-x',0);elem.setAttribute('data-y',0);}}};class MudFileUpload{openFilePicker(id){const element=document.getElementById(id);if(!element){return;} -try{element.showPicker();}catch(error){element.click();}}} -window.mudFileUpload=new MudFileUpload();class MudResizeListener{constructor(id){this.logger=function(message){};this.options={};this.throttleResizeHandlerId=-1;this.dotnet=undefined;this.breakpoint=-1;this.id=id;this.handleResize=this.throttleResizeHandler.bind(this);} -listenForResize(dotnetRef,options){if(this.dotnet){this.options=options;return;} -this.options=options;this.dotnet=dotnetRef;this.logger=options.enableLogging?console.log:(message)=>{};this.logger(`[MudBlazor]Reporting resize events at rate of:${this.options.reportRate}ms`);window.addEventListener("resize",this.handleResize,false);if(!this.options.suppressInitEvent){this.resizeHandler();} -this.breakpoint=this.getBreakpoint(window.innerWidth);} -throttleResizeHandler(){clearTimeout(this.throttleResizeHandlerId);this.throttleResizeHandlerId=window.setTimeout(this.resizeHandler.bind(this),this.options.reportRate);} -resizeHandler(){if(this.options.notifyOnBreakpointOnly){let bp=this.getBreakpoint(window.innerWidth);if(bp==this.breakpoint){return;} -this.breakpoint=bp;} -try{if(this.id){this.dotnet.invokeMethodAsync('RaiseOnResized',{height:window.innerHeight,width:window.innerWidth},this.getBreakpoint(window.innerWidth),this.id);} -else{this.dotnet.invokeMethodAsync('RaiseOnResized',{height:window.innerHeight,width:window.innerWidth},this.getBreakpoint(window.innerWidth));}}catch(error){this.logger("[MudBlazor] Error in resizeHandler:",{error});}} -cancelListener(){this.dotnet=undefined;window.removeEventListener("resize",this.handleResize);} -matchMedia(query){let m=window.matchMedia(query).matches;return m;} -getBrowserWindowSize(){return{height:window.innerHeight,width:window.innerWidth};} -getBreakpoint(width){if(width>=this.options.breakpointDefinitions["Xxl"]) -return 5;else if(width>=this.options.breakpointDefinitions["Xl"]) -return 4;else if(width>=this.options.breakpointDefinitions["Lg"]) -return 3;else if(width>=this.options.breakpointDefinitions["Md"]) -return 2;else if(width>=this.options.breakpointDefinitions["Sm"]) -return 1;else -return 0;}};window.mudResizeListener=new MudResizeListener();window.mudResizeListenerFactory={mapping:{},listenForResize:(dotnetRef,options,id)=>{var map=window.mudResizeListenerFactory.mapping;if(map[id]){return;} -var listener=new MudResizeListener(id);listener.listenForResize(dotnetRef,options);map[id]=listener;},cancelListener:(id)=>{var map=window.mudResizeListenerFactory.mapping;if(!map[id]){return;} -var listener=map[id];listener.cancelListener();delete map[id];},cancelListeners:(ids)=>{for(let i=0;i{console.warn("Error invoking CallOnBlurredAsync, possibly disposed:",err);window.mudElementRef.removeOnBlurEvent(element);});}else{console.error("No dotNetReference found for iosKeyboardFocus");}};element.addEventListener('blur',element._mudBlurHandler);} -removeOnBlurEvent(element){if(!element)return;if(element._mudBlurHandler){element.removeEventListener('blur',element._mudBlurHandler);delete element._mudBlurHandler;}}};window.mudElementRef=new MudElementReference();function setRippleOffset(event,target){const rect=target.getBoundingClientRect();const x=event.clientX-rect.left-rect.width/2;const y=event.clientY-rect.top-rect.height/2;target.style.setProperty("--mud-ripple-offset-x",`${x}px`);target.style.setProperty("--mud-ripple-offset-y",`${y}px`);} -document.addEventListener("click",function(event){const target=event.target.closest(".mud-ripple");if(target){setRippleOffset(event,target);}});window.mudTimePicker={initPointerEvents:(clock,dotNetHelper)=>{let isPointerDown=false;const startHandler=(event)=>{if(event.button!==0){return;} -isPointerDown=true;event.target.releasePointerCapture(event.pointerId);if(event.target.classList.contains('mud-hour')||event.target.classList.contains('mud-minute')){let attributeValue=event.target.getAttribute('data-stick-value');let stickValue=attributeValue?parseInt(attributeValue):-1;dotNetHelper.invokeMethodAsync('SelectTimeFromStick',stickValue,false);} -event.preventDefault();};const endHandler=(event)=>{if(event.button!==0){return;} -isPointerDown=false;if(event.target.classList.contains('mud-hour')||event.target.classList.contains('mud-minute')){let attributeValue=event.target.getAttribute('data-stick-value');let stickValue=attributeValue?parseInt(attributeValue):-1;dotNetHelper.invokeMethodAsync('OnStickClick',stickValue);} -event.preventDefault();};const moveHandler=(event)=>{if(!isPointerDown||(!event.target.classList.contains('mud-hour')&&!event.target.classList.contains('mud-minute'))){return;} -let attributeValue=event.target.getAttribute('data-stick-value');let stickValue=attributeValue?parseInt(attributeValue):-1;dotNetHelper.invokeMethodAsync('SelectTimeFromStick',stickValue,true);event.preventDefault();};clock.addEventListener('pointerdown',startHandler);clock.addEventListener('pointerup',endHandler);clock.addEventListener('pointercancel',endHandler);clock.addEventListener('pointerover',moveHandler);clock.destroy=()=>{clock.removeEventListener('pointerdown',startHandler);clock.removeEventListener('pointerup',endHandler);clock.removeEventListener('pointercancel',endHandler);clock.removeEventListener('pointerover',moveHandler);};},destroyPointerEvents:(container)=>{if(container==null){return;} -if(typeof container.destroy==='function'){container.destroy();}}};class MudWindow{copyToClipboard(text){navigator.clipboard.writeText(text);} -changeCssById(id,css){var element=document.getElementById(id);if(element){element.className=css;}} -updateStyleProperty(elementId,propertyName,value){const element=document.getElementById(elementId);if(element){element.style.setProperty(propertyName,value);}} -changeGlobalCssVariable(name,newValue){document.documentElement.style.setProperty(name,newValue);} -open(args){window.open(args);}} -window.mudWindow=new MudWindow();window.mudpopoverHelper={mainContainerClass:null,overflowPadding:24,flipMargin:0,debounce:function(func,wait){let timeout;return function executedFunction(...args){const later=()=>{clearTimeout(timeout);func(...args);};clearTimeout(timeout);timeout=setTimeout(later,wait);};},basePopoverZIndex:parseInt(getComputedStyle(document.documentElement).getPropertyValue('--mud-zindex-popover'))||1200,baseTooltipZIndex:parseInt(getComputedStyle(document.documentElement).getPropertyValue('--mud-zindex-tooltip'))||1600,flipClassReplacements:{'top':{'mud-popover-top-left':'mud-popover-bottom-left','mud-popover-top-center':'mud-popover-bottom-center','mud-popover-top-right':'mud-popover-bottom-right','mud-popover-anchor-bottom-center':'mud-popover-anchor-top-center','mud-popover-anchor-bottom-left':'mud-popover-anchor-top-left','mud-popover-anchor-bottom-right':'mud-popover-anchor-top-right',},'left':{'mud-popover-top-left':'mud-popover-top-right','mud-popover-center-left':'mud-popover-center-right','mud-popover-bottom-left':'mud-popover-bottom-right','mud-popover-anchor-center-right':'mud-popover-anchor-center-left','mud-popover-anchor-bottom-right':'mud-popover-anchor-bottom-left','mud-popover-anchor-top-right':'mud-popover-anchor-top-left',},'right':{'mud-popover-top-right':'mud-popover-top-left','mud-popover-center-right':'mud-popover-center-left','mud-popover-bottom-right':'mud-popover-bottom-left','mud-popover-anchor-center-left':'mud-popover-anchor-center-right','mud-popover-anchor-bottom-left':'mud-popover-anchor-bottom-right','mud-popover-anchor-top-left':'mud-popover-anchor-top-right',},'bottom':{'mud-popover-bottom-left':'mud-popover-top-left','mud-popover-bottom-center':'mud-popover-top-center','mud-popover-bottom-right':'mud-popover-top-right','mud-popover-anchor-top-center':'mud-popover-anchor-bottom-center','mud-popover-anchor-top-left':'mud-popover-anchor-bottom-left','mud-popover-anchor-top-right':'mud-popover-anchor-bottom-right',},'top-and-left':{'mud-popover-top-left':'mud-popover-bottom-right','mud-popover-anchor-bottom-right':'mud-popover-anchor-top-left','mud-popover-anchor-bottom-center':'mud-popover-anchor-top-center','mud-popover-anchor-bottom-left':'mud-popover-anchor-top-right','mud-popover-anchor-top-right':'mud-popover-anchor-bottom-left','mud-popover-anchor-top-center':'mud-popover-anchor-bottom-center','mud-popover-anchor-top-left':'mud-popover-anchor-bottom-right',},'top-and-right':{'mud-popover-top-right':'mud-popover-bottom-left','mud-popover-anchor-bottom-left':'mud-popover-anchor-top-right','mud-popover-anchor-bottom-center':'mud-popover-anchor-top-center','mud-popover-anchor-bottom-right':'mud-popover-anchor-top-left','mud-popover-anchor-top-left':'mud-popover-anchor-bottom-right','mud-popover-anchor-top-center':'mud-popover-anchor-bottom-center','mud-popover-anchor-top-right':'mud-popover-anchor-bottom-left',},'bottom-and-left':{'mud-popover-bottom-left':'mud-popover-top-right','mud-popover-anchor-top-right':'mud-popover-anchor-bottom-left','mud-popover-anchor-top-center':'mud-popover-anchor-bottom-center','mud-popover-anchor-top-left':'mud-popover-anchor-bottom-right','mud-popover-anchor-bottom-right':'mud-popover-anchor-top-left','mud-popover-anchor-bottom-center':'mud-popover-anchor-top-center','mud-popover-anchor-bottom-left':'mud-popover-anchor-top-right',},'bottom-and-right':{'mud-popover-bottom-right':'mud-popover-top-left','mud-popover-anchor-top-left':'mud-popover-anchor-bottom-right','mud-popover-anchor-top-center':'mud-popover-anchor-bottom-center','mud-popover-anchor-top-right':'mud-popover-anchor-bottom-left','mud-popover-anchor-bottom-left':'mud-popover-anchor-top-right','mud-popover-anchor-bottom-center':'mud-popover-anchor-top-center','mud-popover-anchor-bottom-right':'mud-popover-anchor-top-left',},},calculatePopoverPosition:function(list,boundingRect,selfRect){let top=boundingRect.top;let left=boundingRect.left;const isPositionOverride=list.indexOf('mud-popover-position-override')>=0;let offsetX=0;let offsetY=0;if(list.indexOf('mud-popover-top-left')>=0){offsetX=0;offsetY=0;}else if(list.indexOf('mud-popover-top-center')>=0){offsetX=-selfRect.width/2;offsetY=0;}else if(list.indexOf('mud-popover-top-right')>=0){offsetX=-selfRect.width;offsetY=0;} +delete this.mapper[key];}};window.mudThrottledEventManager=new MudThrottledEventManager();window.mudEventProjections={correctOffset:function(eventEntry,event){var target=event.target.getBoundingClientRect();eventEntry.offsetX=event.clientX-target.x;eventEntry.offsetY=event.clientY-target.y;}};window.getTabbableElements=(element)=>{return element.querySelectorAll("a[href]:not([tabindex='-1']),"+"area[href]:not([tabindex='-1']),"+"button:not([disabled]):not([tabindex='-1']),"+"input:not([disabled]):not([tabindex='-1']):not([type='hidden']),"+"select:not([disabled]):not([tabindex='-1']),"+"textarea:not([disabled]):not([tabindex='-1']),"+"iframe:not([tabindex='-1']),"+"details:not([tabindex='-1']),"+"[tabindex]:not([tabindex='-1']),"+"[contentEditable=true]:not([tabindex='-1'])");};window.serializeParameter=(data,spec)=>{if(typeof data=="undefined"||data===null){return null;} +if(typeof data==="number"||typeof data==="string"||typeof data=="boolean"){return data;} +let res=(Array.isArray(data))?[]:{};if(!spec){spec="*";} +for(let i in data){let currentMember=data[i];if(typeof currentMember==='function'||currentMember===null){continue;} +let currentMemberSpec;if(spec!="*"){currentMemberSpec=Array.isArray(data)?spec:spec[i];if(!currentMemberSpec){continue;}}else{currentMemberSpec="*"} +if(typeof currentMember==='object'){if(Array.isArray(currentMember)||currentMember.length){res[i]=[];for(let j=0;j{if(svgElement==null)return null;const bbox=svgElement.getBBox();return{x:bbox.x,y:bbox.y,width:bbox.width,height:bbox.height};};window.mudObserveElementSize=(dotNetReference,element,functionName='OnElementSizeChanged',debounceMillis=200)=>{if(!element)return;let lastNotifiedTime=0;let scheduledCall=null;const throttledNotify=(width,height)=>{const timestamp=Date.now();const timeSinceLast=timestamp-lastNotifiedTime;if(timeSinceLast>=debounceMillis){lastNotifiedTime=timestamp;try{dotNetReference.invokeMethodAsync(functionName,{width,height,timestamp});} +catch(error){this.logger("[MudBlazor] Error in mudObserveElementSize:",{error});}}else{if(scheduledCall!==null){clearTimeout(scheduledCall);} +scheduledCall=setTimeout(()=>{lastNotifiedTime=Date.now();scheduledCall=null;try{dotNetReference.invokeMethodAsync(functionName,{width,height,timestamp});} +catch(error){this.logger("[MudBlazor] Error in mudObserveElementSize:",{error});}},debounceMillis-timeSinceLast);}};const resizeObserver=new ResizeObserver(entries=>{if(element.isConnected===false){return;} +let width=element.clientWidth;let height=element.clientHeight;for(const entry of entries){width=entry.contentRect.width;height=entry.contentRect.height;} +width=Math.floor(width);height=Math.floor(height);throttledNotify(width,height);});resizeObserver.observe(element);let mutationObserver=null;const parent=element.parentNode;if(parent){mutationObserver=new MutationObserver(mutations=>{for(const mutation of mutations){for(const removedNode of mutation.removedNodes){if(removedNode===element){cleanup();}}}});mutationObserver.observe(parent,{childList:true});} +function cleanup(){resizeObserver.disconnect();if(mutationObserver){mutationObserver.disconnect();} +if(scheduledCall!==null){clearTimeout(scheduledCall);}} +return{width:element.clientWidth,height:element.clientHeight};};function setRippleOffset(event,target){const rect=target.getBoundingClientRect();const x=event.clientX-rect.left-rect.width/2;const y=event.clientY-rect.top-rect.height/2;target.style.setProperty("--mud-ripple-offset-x",`${x}px`);target.style.setProperty("--mud-ripple-offset-y",`${y}px`);} +document.addEventListener("click",function(event){const target=event.target.closest(".mud-ripple");if(target){setRippleOffset(event,target);}});class MudJsEventFactory{connect(dotNetRef,elementId,options){if(!elementId) +throw"[MudBlazor | JsEvent] elementId: expected element id!";var element=document.getElementById(elementId);if(!element) +throw"[MudBlazor | JsEvent] no element found for id: "+elementId;if(!element.mudJsEvent) +element.mudJsEvent=new MudJsEvent(dotNetRef,options);element.mudJsEvent.connect(element);} +disconnect(elementId){var element=document.getElementById(elementId);if(!element||!element.mudJsEvent) +return;element.mudJsEvent.disconnect();} +subscribe(elementId,eventName){if(!elementId) +throw"[MudBlazor | JsEvent] elementId: expected element id!";var element=document.getElementById(elementId);if(!element) +throw"[MudBlazor | JsEvent] no element found for id: "+elementId;if(!element.mudJsEvent) +throw"[MudBlazor | JsEvent] please connect before subscribing" +element.mudJsEvent.subscribe(eventName);} +unsubscribe(elementId,eventName){var element=document.getElementById(elementId);if(!element||!element.mudJsEvent) +return;element.mudJsEvent.unsubscribe(element,eventName);}} +window.mudJsEvent=new MudJsEventFactory();class MudJsEvent{constructor(dotNetRef,options){this._dotNetRef=dotNetRef;this._options=options||{};this.logger=options.enableLogging?console.log:(message)=>{};this.logger('[MudBlazor | JsEvent] Initialized',{options});this._subscribedEvents={};} +connect(element){if(!this._options) +return;if(!this._options.targetClass) +throw"_options.targetClass: css class name expected";if(this._observer){return;} +var targetClass=this._options.targetClass;this.logger('[MudBlazor | JsEvent] Start observing DOM of element for changes to child with class ',{element,targetClass});this._element=element;this._observer=new MutationObserver(this.onDomChanged);this._observer.mudJsEvent=this;this._observer.observe(this._element,{attributes:false,childList:true,subtree:true});this._observedChildren=[];} +disconnect(){if(!this._observer) +return;this.logger('[MudBlazor | JsEvent] disconnect mutation observer and event handler ');this._observer.disconnect();this._observer=null;for(const child of this._observedChildren) +this.detachHandlers(child);} +subscribe(eventName){if(this._subscribedEvents[eventName]){return;} +var element=this._element;var targetClass=this._options.targetClass;this._subscribedEvents[eventName]=true;for(const child of element.getElementsByClassName(targetClass)){this.attachHandlers(child);}} +unsubscribe(eventName){if(!this._observer) +return;this.logger('[MudBlazor | JsEvent] unsubscribe event handler '+eventName);this._observer.disconnect();this._observer=null;this._subscribedEvents[eventName]=false;for(const child of this._observedChildren){this.detachHandler(child,eventName);}} +attachHandlers(child){child.mudJsEvent=this;for(var eventName of Object.getOwnPropertyNames(this._subscribedEvents)){if(!this._subscribedEvents[eventName]) +continue;this.logger('[MudBlazor | JsEvent] attaching event '+eventName,child);child.addEventListener(eventName,this.eventHandler);} +if(this._observedChildren.indexOf(child)<0) +this._observedChildren.push(child);} +detachHandler(child,eventName){this.logger('[MudBlazor | JsEvent] detaching handler '+eventName,child);child.removeEventListener(eventName,this.eventHandler);} +detachHandlers(child){this.logger('[MudBlazor | JsEvent] detaching handlers ',child);for(var eventName of Object.getOwnPropertyNames(this._subscribedEvents)){if(!this._subscribedEvents[eventName]) +continue;child.removeEventListener(eventName,this.eventHandler);} +this._observedChildren=this._observedChildren.filter(x=>x!==child);} +onDomChanged(mutationsList,observer){var self=this.mudJsEvent;var targetClass=self._options.targetClass;for(const mutation of mutationsList){for(const element of mutation.addedNodes){if(element.classList&&element.classList.contains(targetClass)){if(!self._options.TagName||element.tagName==self._options.TagName) +self.attachHandlers(element);}} +for(const element of mutation.removedNodes){if(element.classList&&element.classList.contains(targetClass)){if(!self._options.tagName||element.tagName==self._options.tagName) +self.detachHandlers(element);}}}} +eventHandler(e){var self=this.mudJsEvent;var eventName=e.type;self.logger('[MudBlazor | JsEvent] "'+eventName+'"',e);self["on"+eventName](self,e);} +onkeyup(self,e){const caretPosition=e.target.selectionStart;const invoke=self._subscribedEvents["keyup"];if(invoke){self._dotNetRef.invokeMethodAsync('OnCaretPositionChanged',caretPosition);}} +onclick(self,e){const caretPosition=e.target.selectionStart;const invoke=self._subscribedEvents["click"];if(invoke){self._dotNetRef.invokeMethodAsync('OnCaretPositionChanged',caretPosition);}} +onpaste(self,e){const invoke=self._subscribedEvents["paste"];if(invoke){e.preventDefault();e.stopPropagation();const clipboardData=((e.originalEvent||e).clipboardData||window.clipboardData);if(!clipboardData){self.logger('[MudBlazor | JsEvent] clipboardData is null',e);return;} +const text=clipboardData.getData('text/plain');self._dotNetRef.invokeMethodAsync('OnPaste',text);}} +onselect(self,e){const invoke=self._subscribedEvents["select"];if(invoke){const start=e.target.selectionStart;const end=e.target.selectionEnd;if(start===end) +return;self._dotNetRef.invokeMethodAsync('OnSelect',start,end);}}} +window.mudpopoverHelper={mainContainerClass:null,overflowPadding:24,flipMargin:0,debounce:function(func,wait){let timeout;return function executedFunction(...args){const later=()=>{clearTimeout(timeout);func(...args);};clearTimeout(timeout);timeout=setTimeout(later,wait);};},basePopoverZIndex:parseInt(getComputedStyle(document.documentElement).getPropertyValue('--mud-zindex-popover'))||1200,baseTooltipZIndex:parseInt(getComputedStyle(document.documentElement).getPropertyValue('--mud-zindex-tooltip'))||1600,flipClassReplacements:{'top':{'mud-popover-top-left':'mud-popover-bottom-left','mud-popover-top-center':'mud-popover-bottom-center','mud-popover-top-right':'mud-popover-bottom-right','mud-popover-anchor-bottom-center':'mud-popover-anchor-top-center','mud-popover-anchor-bottom-left':'mud-popover-anchor-top-left','mud-popover-anchor-bottom-right':'mud-popover-anchor-top-right',},'left':{'mud-popover-top-left':'mud-popover-top-right','mud-popover-center-left':'mud-popover-center-right','mud-popover-bottom-left':'mud-popover-bottom-right','mud-popover-anchor-center-right':'mud-popover-anchor-center-left','mud-popover-anchor-bottom-right':'mud-popover-anchor-bottom-left','mud-popover-anchor-top-right':'mud-popover-anchor-top-left',},'right':{'mud-popover-top-right':'mud-popover-top-left','mud-popover-center-right':'mud-popover-center-left','mud-popover-bottom-right':'mud-popover-bottom-left','mud-popover-anchor-center-left':'mud-popover-anchor-center-right','mud-popover-anchor-bottom-left':'mud-popover-anchor-bottom-right','mud-popover-anchor-top-left':'mud-popover-anchor-top-right',},'bottom':{'mud-popover-bottom-left':'mud-popover-top-left','mud-popover-bottom-center':'mud-popover-top-center','mud-popover-bottom-right':'mud-popover-top-right','mud-popover-anchor-top-center':'mud-popover-anchor-bottom-center','mud-popover-anchor-top-left':'mud-popover-anchor-bottom-left','mud-popover-anchor-top-right':'mud-popover-anchor-bottom-right',},'top-and-left':{'mud-popover-top-left':'mud-popover-bottom-right','mud-popover-anchor-bottom-right':'mud-popover-anchor-top-left','mud-popover-anchor-bottom-center':'mud-popover-anchor-top-center','mud-popover-anchor-bottom-left':'mud-popover-anchor-top-right','mud-popover-anchor-top-right':'mud-popover-anchor-bottom-left','mud-popover-anchor-top-center':'mud-popover-anchor-bottom-center','mud-popover-anchor-top-left':'mud-popover-anchor-bottom-right',},'top-and-right':{'mud-popover-top-right':'mud-popover-bottom-left','mud-popover-anchor-bottom-left':'mud-popover-anchor-top-right','mud-popover-anchor-bottom-center':'mud-popover-anchor-top-center','mud-popover-anchor-bottom-right':'mud-popover-anchor-top-left','mud-popover-anchor-top-left':'mud-popover-anchor-bottom-right','mud-popover-anchor-top-center':'mud-popover-anchor-bottom-center','mud-popover-anchor-top-right':'mud-popover-anchor-bottom-left',},'bottom-and-left':{'mud-popover-bottom-left':'mud-popover-top-right','mud-popover-anchor-top-right':'mud-popover-anchor-bottom-left','mud-popover-anchor-top-center':'mud-popover-anchor-bottom-center','mud-popover-anchor-top-left':'mud-popover-anchor-bottom-right','mud-popover-anchor-bottom-right':'mud-popover-anchor-top-left','mud-popover-anchor-bottom-center':'mud-popover-anchor-top-center','mud-popover-anchor-bottom-left':'mud-popover-anchor-top-right',},'bottom-and-right':{'mud-popover-bottom-right':'mud-popover-top-left','mud-popover-anchor-top-left':'mud-popover-anchor-bottom-right','mud-popover-anchor-top-center':'mud-popover-anchor-bottom-center','mud-popover-anchor-top-right':'mud-popover-anchor-bottom-left','mud-popover-anchor-bottom-left':'mud-popover-anchor-top-right','mud-popover-anchor-bottom-center':'mud-popover-anchor-top-center','mud-popover-anchor-bottom-right':'mud-popover-anchor-top-left',},},calculatePopoverPosition:function(list,boundingRect,selfRect){let top=boundingRect.top;let left=boundingRect.left;const isPositionOverride=list.indexOf('mud-popover-position-override')>=0;let offsetX=0;let offsetY=0;if(list.indexOf('mud-popover-top-left')>=0){offsetX=0;offsetY=0;}else if(list.indexOf('mud-popover-top-center')>=0){offsetX=-selfRect.width/2;offsetY=0;}else if(list.indexOf('mud-popover-top-right')>=0){offsetX=-selfRect.width;offsetY=0;} else if(list.indexOf('mud-popover-center-left')>=0){offsetX=0;offsetY=-selfRect.height/2;}else if(list.indexOf('mud-popover-center-center')>=0){offsetX=-selfRect.width/2;offsetY=-selfRect.height/2;}else if(list.indexOf('mud-popover-center-right')>=0){offsetX=-selfRect.width;offsetY=-selfRect.height/2;} else if(list.indexOf('mud-popover-bottom-left')>=0){offsetX=0;offsetY=-selfRect.height;}else if(list.indexOf('mud-popover-bottom-center')>=0){offsetX=-selfRect.width/2;offsetY=-selfRect.height;}else if(list.indexOf('mud-popover-bottom-right')>=0){offsetX=-selfRect.width;offsetY=-selfRect.height;} if(!isPositionOverride){if(list.indexOf('mud-popover-anchor-top-left')>=0){left=boundingRect.left;top=boundingRect.top;}else if(list.indexOf('mud-popover-anchor-top-center')>=0){left=boundingRect.left+boundingRect.width/2;top=boundingRect.top;}else if(list.indexOf('mud-popover-anchor-top-right')>=0){left=boundingRect.left+boundingRect.width;top=boundingRect.top;}else if(list.indexOf('mud-popover-anchor-center-left')>=0){left=boundingRect.left;top=boundingRect.top+boundingRect.height/2;}else if(list.indexOf('mud-popover-anchor-center-center')>=0){left=boundingRect.left+boundingRect.width/2;top=boundingRect.top+boundingRect.height/2;}else if(list.indexOf('mud-popover-anchor-center-right')>=0){left=boundingRect.left+boundingRect.width;top=boundingRect.top+boundingRect.height/2;}else if(list.indexOf('mud-popover-anchor-bottom-left')>=0){left=boundingRect.left;top=boundingRect.top+boundingRect.height;}else if(list.indexOf('mud-popover-anchor-bottom-center')>=0){left=boundingRect.left+boundingRect.width/2;top=boundingRect.top+boundingRect.height;}else if(list.indexOf('mud-popover-anchor-bottom-right')>=0){left=boundingRect.left+boundingRect.width;top=boundingRect.top+boundingRect.height;}} @@ -154,8 +93,9 @@ return true;},placePopover:function(popoverNode,classSelector){if(popoverNode&&p const selfRect=popoverContentNode.getBoundingClientRect();const popoverNodeStyle=window.getComputedStyle(popoverNode);const isPositionFixed=popoverNodeStyle.position==='fixed';const isPositionOverride=classList.contains('mud-popover-position-override');const isRelativeWidth=classList.contains('mud-popover-relative-width');const isAdaptiveWidth=classList.contains('mud-popover-adaptive-width');const isFlipOnOpen=classList.contains('mud-popover-overflow-flip-onopen');const isFlipAlways=classList.contains('mud-popover-overflow-flip-always');const zIndexAuto=popoverNodeStyle.getPropertyValue('z-index')==='auto';const classListArray=Array.from(classList);if(isPositionOverride){const positiontop=parseInt(popoverContentNode.getAttribute('data-pc-y'))||boundingRect.top;const positionleft=parseInt(popoverContentNode.getAttribute('data-pc-x'))||boundingRect.left;const scrollLeft=window.scrollX;const scrollTop=window.scrollY;boundingRect={left:positionleft-scrollLeft,top:positiontop-scrollTop,right:positionleft+1,bottom:positiontop+1,width:1,height:1};} const position=window.mudpopoverHelper.calculatePopoverPosition(classListArray,boundingRect,selfRect);let left=position.left;let top=position.top;let offsetX=position.offsetX;let offsetY=position.offsetY;let anchorY=position.anchorY;let anchorX=position.anchorX;popoverContentNode.style['max-width']='none';popoverContentNode.style['min-width']='none';if(isRelativeWidth){popoverContentNode.style['max-width']=(boundingRect.width)+'px';} else if(isAdaptiveWidth){popoverContentNode.style['min-width']=(boundingRect.width)+'px';} -if(popoverContentNode.mudHeight&&anchorY>0&&anchorY0){appBarOffset=appBarElements[0].getBoundingClientRect().height;} +if(isFlipOnOpen||isFlipAlways){const firstChild=popoverContentNode.firstElementChild;const isList=firstChild&&firstChild.classList&&firstChild.classList.contains("mud-list");if(popoverContentNode.mudHeight&&anchorY>0&&anchorY0){appBarOffset=appBarElements[0].getBoundingClientRect().height;} let selector=popoverContentNode.mudPopoverFliped;if(!selector){const popoverHeight=popoverContentNode.offsetHeight;const popoverWidth=popoverContentNode.offsetWidth;if(classList.contains('mud-popover-top-left')){const spaceBelow=window.innerHeight-anchorY-window.mudpopoverHelper.flipMargin;const spaceRight=window.innerWidth-anchorX-window.mudpopoverHelper.flipMargin;const spaceAbove=anchorY-window.mudpopoverHelper.flipMargin;const spaceLeft=anchorX-window.mudpopoverHelper.flipMargin;const shouldFlipVertical=popoverHeight>spaceBelow&&spaceAbove>spaceBelow;const shouldFlipHorizontal=popoverWidth>spaceRight&&spaceLeft>spaceRight;if(shouldFlipVertical&&shouldFlipHorizontal){selector='top-and-left';} else if(shouldFlipVertical){selector='top';} else if(shouldFlipHorizontal){selector='left';}} @@ -178,10 +118,8 @@ if(isFlipOnOpen){if(!popoverContentNode.mudPopoverFliped){popoverContentNode.mud if(left+offsetX=0&&Math.abs(top+offsetY)0){this.updatePopoverZIndex(popoverContentNode,appBarElements[0]);} -const firstChild=popoverContentNode.firstElementChild;const hasMaxHeight=popoverContentNode.style.maxHeight!=''||(firstChild&&firstChild.style.maxHeight!='');if(!hasMaxHeight){let shouldShowFromTop=false;let newMaxHeight=window.innerHeight-top-offsetY-window.mudpopoverHelper.overflowPadding;const isCentered=Array.from(classList).some(className=>className.includes('mud-popover-anchor-center'));const isFlippedUpward=!isCentered&&(popoverContentNode.getAttribute('data-mudpopover-flip')==='top'||popoverContentNode.getAttribute('data-mudpopover-flip')==='top-and-left'||popoverContentNode.getAttribute('data-mudpopover-flip')==='top-and-right');if(top+offsetYnewMaxHeight){if(shouldShowFromTop){top=window.mudpopoverHelper.overflowPadding;offsetY=0;} -popoverContentNode.style.maxHeight=(newMaxHeight)+'px';popoverContentNode.mudHeight="setmaxheight";}}} +if(isList){const popoverStyle=popoverContentNode.style;const listStyle=firstChild.style;const isUnset=(val)=>val==null||val===''||val==='none';const checkHeight=isUnset(popoverStyle.maxHeight)&&isUnset(listStyle.maxHeight);if(checkHeight){const overflowPadding=window.mudpopoverHelper.overflowPadding;const isCentered=Array.from(classList).some(cls=>cls.includes('mud-popover-anchor-center'));const flipAttr=popoverContentNode.getAttribute('data-mudpopover-flip');const isFlippedUpward=!isCentered&&(flipAttr==='top'||flipAttr==='top-and-left'||flipAttr==='top-and-right');let availableHeight;let shouldClamp=false;if(isFlippedUpward){availableHeight=anchorY-overflowPadding-popoverNode.offsetHeight;shouldClamp=availableHeightavailableHeight;} +if(shouldClamp){const minVisibleHeight=overflowPadding*3;const newMaxHeight=Math.max(availableHeight,minVisibleHeight);popoverContentNode.style.maxHeight=`${newMaxHeight}px`;firstChild.style.maxHeight=`${newMaxHeight}px`;popoverContentNode.mudHeight="setmaxheight";if(popoverContentNode.mudScrollTop){firstChild.scrollTop=popoverContentNode.mudScrollTop;popoverContentNode.mudScrollTop=null;}}}}} if(isPositionFixed){popoverContentNode.style['position']='fixed';} else if(!classList.contains('mud-popover-fixed')){offsetX+=window.scrollX;offsetY+=window.scrollY} popoverContentNode.style['left']=(left+offsetX)+'px';popoverContentNode.style['top']=(top+offsetY)+'px';this.updatePopoverZIndex(popoverContentNode,popoverNode.parentNode);if(!zIndexAuto){popoverContentNode.style['z-index']=Math.max(popoverNodeStyle.getPropertyValue('z-index'),popoverContentNode.style['z-index']);popoverContentNode.skipZIndex=true;} @@ -243,73 +181,7 @@ window.removeEventListener('resize',this.onResize);window.removeEventListener('s getAllObservedContainers(){return Object.keys(this.map);}} window.mudpopoverHelper.debouncedResize=window.mudpopoverHelper.debounce(()=>{window.mudpopoverHelper.placePopoverByClassSelector();},25);window.mudpopoverHelper.handleScroll=function(node=null){if(node){window.mudpopoverHelper.placePopover(node);} else{window.mudpopoverHelper.placePopoverByClassSelector('mud-popover-fixed');window.mudpopoverHelper.placePopoverByClassSelector('mud-popover-overflow-flip-always');} -window.mudpopoverHelper.debouncedResize();};window.mudPopover=new MudPopover();const darkThemeMediaQuery=window.matchMedia("(prefers-color-scheme: dark)");window.darkModeChange=()=>{return darkThemeMediaQuery.matches;};function darkModeChangeListener(e){dotNetHelperTheme.invokeMethodAsync('SystemDarkModeChangedAsync',e.matches);} -function watchDarkThemeMedia(dotNetHelper){dotNetHelperTheme=dotNetHelper;darkThemeMediaQuery.addEventListener('change',darkModeChangeListener);} -function stopWatchingDarkThemeMedia(){darkThemeMediaQuery.removeEventListener('change',darkModeChangeListener);} -class MudScrollListener{constructor(){this.throttleScrollHandlerId=-1;this.handlerRef=null;} -listenForScroll(dotnetReference,selector){let element=selector?document.querySelector(selector):document;this.handlerRef=this.throttleScrollHandler.bind(this,dotnetReference);element.addEventListener('scroll',this.handlerRef,false);} -throttleScrollHandler(dotnetReference,event){clearTimeout(this.throttleScrollHandlerId);this.throttleScrollHandlerId=window.setTimeout(this.scrollHandler.bind(this,dotnetReference,event),100);} -scrollHandler(dotnetReference,event){try{let element=event.target;let scrollTop=element.scrollTop;let scrollHeight=element.scrollHeight;let scrollWidth=element.scrollWidth;let scrollLeft=element.scrollLeft;let nodeName=element.nodeName;let firstChild=element.firstElementChild;let firstChildBoundingClientRect=firstChild.getBoundingClientRect();dotnetReference.invokeMethodAsync('RaiseOnScroll',{firstChildBoundingClientRect,scrollLeft,scrollTop,scrollHeight,scrollWidth,nodeName,});}catch(error){console.log('[MudBlazor] Error in scrollHandler:',{error});}} -cancelListener(selector){let element=selector?document.querySelector(selector):document;element.removeEventListener('scroll',this.handlerRef);}};window.mudScrollListener=new MudScrollListener();class MudResizeObserverFactory{constructor(){this._maps={};} -connect(id,dotNetRef,elements,elementIds,options){var existingEntry=this._maps[id];if(!existingEntry){var observer=new MudResizeObserver(dotNetRef,options);this._maps[id]=observer;} -var result=this._maps[id].connect(elements,elementIds);return result;} -disconnect(id,element){var existingEntry=this._maps[id];if(existingEntry){existingEntry.disconnect(element);}} -cancelListener(id){var existingEntry=this._maps[id];if(existingEntry){existingEntry.cancelListener();delete this._maps[id];}}} -class MudResizeObserver{constructor(dotNetRef,options){this.logger=options.enableLogging?console.log:(message)=>{};this.options=options;this._dotNetRef=dotNetRef -var delay=(this.options||{}).reportRate||200;this.throttleResizeHandlerId=-1;var observervedElements=[];this._observervedElements=observervedElements;this.logger('[MudBlazor | ResizeObserver] Observer initialized');this._resizeObserver=new ResizeObserver(entries=>{var changes=[];this.logger('[MudBlazor | ResizeObserver] changes detected');for(let entry of entries){var target=entry.target;var affectedObservedElement=observervedElements.find((x)=>x.element==target);if(affectedObservedElement){var size=entry.target.getBoundingClientRect();if(affectedObservedElement.isInitialized==true){changes.push({id:affectedObservedElement.id,size:size});} -else{affectedObservedElement.isInitialized=true;}}} -if(changes.length>0){if(this.throttleResizeHandlerId>=0){clearTimeout(this.throttleResizeHandlerId);} -this.throttleResizeHandlerId=window.setTimeout(this.resizeHandler.bind(this,changes),delay);}});} -resizeHandler(changes){try{this.logger("[MudBlazor | ResizeObserver] OnSizeChanged handler invoked");this._dotNetRef.invokeMethodAsync("OnSizeChanged",changes);}catch(error){this.logger("[MudBlazor | ResizeObserver] Error in OnSizeChanged handler:",{error});}} -connect(elements,ids){var result=[];this.logger('[MudBlazor | ResizeObserver] Start observing elements...');for(var i=0;ix.id==elementId);if(affectedObservedElement){var element=affectedObservedElement.element;this._resizeObserver.unobserve(element);this.logger('[MudBlazor | ResizeObserver] Element found. Ubobserving size changes of element',{element});var index=this._observervedElements.indexOf(affectedObservedElement);this._observervedElements.splice(index,1);}} -cancelListener(){this.logger('[MudBlazor | ResizeObserver] Closing ResizeObserver. Detaching all observed elements');this._resizeObserver.disconnect();this._dotNetRef=undefined;}} -window.mudResizeObserver=new MudResizeObserverFactory();class MudJsEventFactory{connect(dotNetRef,elementId,options){if(!elementId) -throw"[MudBlazor | JsEvent] elementId: expected element id!";var element=document.getElementById(elementId);if(!element) -throw"[MudBlazor | JsEvent] no element found for id: "+elementId;if(!element.mudJsEvent) -element.mudJsEvent=new MudJsEvent(dotNetRef,options);element.mudJsEvent.connect(element);} -disconnect(elementId){var element=document.getElementById(elementId);if(!element||!element.mudJsEvent) -return;element.mudJsEvent.disconnect();} -subscribe(elementId,eventName){if(!elementId) -throw"[MudBlazor | JsEvent] elementId: expected element id!";var element=document.getElementById(elementId);if(!element) -throw"[MudBlazor | JsEvent] no element found for id: "+elementId;if(!element.mudJsEvent) -throw"[MudBlazor | JsEvent] please connect before subscribing" -element.mudJsEvent.subscribe(eventName);} -unsubscribe(elementId,eventName){var element=document.getElementById(elementId);if(!element||!element.mudJsEvent) -return;element.mudJsEvent.unsubscribe(element,eventName);}} -window.mudJsEvent=new MudJsEventFactory();class MudJsEvent{constructor(dotNetRef,options){this._dotNetRef=dotNetRef;this._options=options||{};this.logger=options.enableLogging?console.log:(message)=>{};this.logger('[MudBlazor | JsEvent] Initialized',{options});this._subscribedEvents={};} -connect(element){if(!this._options) -return;if(!this._options.targetClass) -throw"_options.targetClass: css class name expected";if(this._observer){return;} -var targetClass=this._options.targetClass;this.logger('[MudBlazor | JsEvent] Start observing DOM of element for changes to child with class ',{element,targetClass});this._element=element;this._observer=new MutationObserver(this.onDomChanged);this._observer.mudJsEvent=this;this._observer.observe(this._element,{attributes:false,childList:true,subtree:true});this._observedChildren=[];} -disconnect(){if(!this._observer) -return;this.logger('[MudBlazor | JsEvent] disconnect mutation observer and event handler ');this._observer.disconnect();this._observer=null;for(const child of this._observedChildren) -this.detachHandlers(child);} -subscribe(eventName){if(this._subscribedEvents[eventName]){return;} -var element=this._element;var targetClass=this._options.targetClass;this._subscribedEvents[eventName]=true;for(const child of element.getElementsByClassName(targetClass)){this.attachHandlers(child);}} -unsubscribe(eventName){if(!this._observer) -return;this.logger('[MudBlazor | JsEvent] unsubscribe event handler '+eventName);this._observer.disconnect();this._observer=null;this._subscribedEvents[eventName]=false;for(const child of this._observedChildren){this.detachHandler(child,eventName);}} -attachHandlers(child){child.mudJsEvent=this;for(var eventName of Object.getOwnPropertyNames(this._subscribedEvents)){if(!this._subscribedEvents[eventName]) -continue;this.logger('[MudBlazor | JsEvent] attaching event '+eventName,child);child.addEventListener(eventName,this.eventHandler);} -if(this._observedChildren.indexOf(child)<0) -this._observedChildren.push(child);} -detachHandler(child,eventName){this.logger('[MudBlazor | JsEvent] detaching handler '+eventName,child);child.removeEventListener(eventName,this.eventHandler);} -detachHandlers(child){this.logger('[MudBlazor | JsEvent] detaching handlers ',child);for(var eventName of Object.getOwnPropertyNames(this._subscribedEvents)){if(!this._subscribedEvents[eventName]) -continue;child.removeEventListener(eventName,this.eventHandler);} -this._observedChildren=this._observedChildren.filter(x=>x!==child);} -onDomChanged(mutationsList,observer){var self=this.mudJsEvent;var targetClass=self._options.targetClass;for(const mutation of mutationsList){for(const element of mutation.addedNodes){if(element.classList&&element.classList.contains(targetClass)){if(!self._options.TagName||element.tagName==self._options.TagName) -self.attachHandlers(element);}} -for(const element of mutation.removedNodes){if(element.classList&&element.classList.contains(targetClass)){if(!self._options.tagName||element.tagName==self._options.tagName) -self.detachHandlers(element);}}}} -eventHandler(e){var self=this.mudJsEvent;var eventName=e.type;self.logger('[MudBlazor | JsEvent] "'+eventName+'"',e);self["on"+eventName](self,e);} -onkeyup(self,e){const caretPosition=e.target.selectionStart;const invoke=self._subscribedEvents["keyup"];if(invoke){self._dotNetRef.invokeMethodAsync('OnCaretPositionChanged',caretPosition);}} -onclick(self,e){const caretPosition=e.target.selectionStart;const invoke=self._subscribedEvents["click"];if(invoke){self._dotNetRef.invokeMethodAsync('OnCaretPositionChanged',caretPosition);}} -onpaste(self,e){const invoke=self._subscribedEvents["paste"];if(invoke){e.preventDefault();e.stopPropagation();const clipboardData=((e.originalEvent||e).clipboardData||window.clipboardData);if(!clipboardData){self.logger('[MudBlazor | JsEvent] clipboardData is null',e);return;} -const text=clipboardData.getData('text/plain');self._dotNetRef.invokeMethodAsync('OnPaste',text);}} -onselect(self,e){const invoke=self._subscribedEvents["select"];if(invoke){const start=e.target.selectionStart;const end=e.target.selectionEnd;if(start===end) -return;self._dotNetRef.invokeMethodAsync('OnSelect',start,end);}}} -window.mudInputAutoGrow={initAutoGrow:(elem,maxLines)=>{const compStyle=getComputedStyle(elem);const lineHeight=parseFloat(compStyle.getPropertyValue('line-height'));const paddingTop=parseFloat(compStyle.getPropertyValue('padding-top'));let maxHeight=0;elem.updateParameters=function(newMaxLines){if(newMaxLines>0){maxHeight=lineHeight*newMaxLines+paddingTop;}else{maxHeight=0;}} +window.mudpopoverHelper.debouncedResize();};window.mudPopover=new MudPopover();window.mudInputAutoGrow={initAutoGrow:(elem,maxLines)=>{const compStyle=getComputedStyle(elem);const lineHeight=parseFloat(compStyle.getPropertyValue('line-height'));const paddingTop=parseFloat(compStyle.getPropertyValue('padding-top'));let maxHeight=0;elem.updateParameters=function(newMaxLines){if(newMaxLines>0){maxHeight=lineHeight*newMaxLines+paddingTop;}else{maxHeight=0;}} elem.adjustAutoGrowHeight=function(didReflow=false){const scrollTops=[];let curElem=elem;while(curElem&&curElem.parentNode&&curElem.parentNode instanceof Element){if(curElem.parentNode.scrollTop){scrollTops.push([curElem.parentNode,curElem.parentNode.scrollTop]);} curElem=curElem.parentNode;} elem.style.height=0;if(didReflow){elem.style.textAlign=null;} @@ -318,7 +190,54 @@ elem.style.height=newHeight+"px";scrollTops.forEach(([node,scrollTop])=>{node.st elem.restoreToInitialState=function(){elem.removeEventListener('input',elem.adjustAutoGrowHeight);elem.style.overflowY=null;elem.style.height=null;} elem.addEventListener('input',elem.adjustAutoGrowHeight);window.addEventListener('resize',elem.adjustAutoGrowHeight);elem.updateParameters(maxLines);elem.adjustAutoGrowHeight();},adjustHeight:(elem)=>{if(typeof elem.adjustAutoGrowHeight==='function'){elem.adjustAutoGrowHeight();}},updateParams:(elem,maxLines)=>{if(typeof elem.updateParameters==='function'){elem.updateParameters(maxLines);} if(typeof elem.adjustAutoGrowHeight==='function'){elem.adjustAutoGrowHeight();}},destroy:(elem)=>{if(elem==null){return;} -window.removeEventListener('resize',elem.adjustAutoGrowHeight);if(typeof elem.restoreToInitialState==='function'){elem.restoreToInitialState();}}};class MudKeyInterceptorFactory{connect(dotNetRef,elementId,options){if(!elementId) +window.removeEventListener('resize',elem.adjustAutoGrowHeight);if(typeof elem.restoreToInitialState==='function'){elem.restoreToInitialState();}}};class MudResizeListener{constructor(id){this.logger=function(message){};this.options={};this.throttleResizeHandlerId=-1;this.dotnet=undefined;this.breakpoint=-1;this.id=id;this.handleResize=this.throttleResizeHandler.bind(this);} +listenForResize(dotnetRef,options){if(this.dotnet){this.options=options;return;} +this.options=options;this.dotnet=dotnetRef;this.logger=options.enableLogging?console.log:(message)=>{};this.logger(`[MudBlazor]Reporting resize events at rate of:${this.options.reportRate}ms`);window.addEventListener("resize",this.handleResize,false);if(!this.options.suppressInitEvent){this.resizeHandler();} +this.breakpoint=this.getBreakpoint(window.innerWidth);} +throttleResizeHandler(){clearTimeout(this.throttleResizeHandlerId);this.throttleResizeHandlerId=window.setTimeout(this.resizeHandler.bind(this),this.options.reportRate);} +resizeHandler(){if(this.options.notifyOnBreakpointOnly){let bp=this.getBreakpoint(window.innerWidth);if(bp==this.breakpoint){return;} +this.breakpoint=bp;} +try{if(this.id){this.dotnet.invokeMethodAsync('RaiseOnResized',{height:window.innerHeight,width:window.innerWidth},this.getBreakpoint(window.innerWidth),this.id);} +else{this.dotnet.invokeMethodAsync('RaiseOnResized',{height:window.innerHeight,width:window.innerWidth},this.getBreakpoint(window.innerWidth));}}catch(error){this.logger("[MudBlazor] Error in resizeHandler:",{error});}} +cancelListener(){this.dotnet=undefined;window.removeEventListener("resize",this.handleResize);} +matchMedia(query){let m=window.matchMedia(query).matches;return m;} +getBrowserWindowSize(){return{height:window.innerHeight,width:window.innerWidth};} +getBreakpoint(width){if(width>=this.options.breakpointDefinitions["Xxl"]) +return 5;else if(width>=this.options.breakpointDefinitions["Xl"]) +return 4;else if(width>=this.options.breakpointDefinitions["Lg"]) +return 3;else if(width>=this.options.breakpointDefinitions["Md"]) +return 2;else if(width>=this.options.breakpointDefinitions["Sm"]) +return 1;else +return 0;}};window.mudResizeListener=new MudResizeListener();window.mudResizeListenerFactory={mapping:{},listenForResize:(dotnetRef,options,id)=>{var map=window.mudResizeListenerFactory.mapping;if(map[id]){return;} +var listener=new MudResizeListener(id);listener.listenForResize(dotnetRef,options);map[id]=listener;},cancelListener:(id)=>{var map=window.mudResizeListenerFactory.mapping;if(!map[id]){return;} +var listener=map[id];listener.cancelListener();delete map[id];},cancelListeners:(ids)=>{for(let i=0;i{let isPointerDown=false;const startHandler=(event)=>{if(event.button!==0){return;} +isPointerDown=true;event.target.releasePointerCapture(event.pointerId);if(event.target.classList.contains('mud-hour')||event.target.classList.contains('mud-minute')){let attributeValue=event.target.getAttribute('data-stick-value');let stickValue=attributeValue?parseInt(attributeValue):-1;dotNetHelper.invokeMethodAsync('SelectTimeFromStick',stickValue,false);} +event.preventDefault();};const endHandler=(event)=>{if(event.button!==0){return;} +isPointerDown=false;if(event.target.classList.contains('mud-hour')||event.target.classList.contains('mud-minute')){let attributeValue=event.target.getAttribute('data-stick-value');let stickValue=attributeValue?parseInt(attributeValue):-1;dotNetHelper.invokeMethodAsync('OnStickClick',stickValue);} +event.preventDefault();};const moveHandler=(event)=>{if(!isPointerDown||(!event.target.classList.contains('mud-hour')&&!event.target.classList.contains('mud-minute'))){return;} +let attributeValue=event.target.getAttribute('data-stick-value');let stickValue=attributeValue?parseInt(attributeValue):-1;dotNetHelper.invokeMethodAsync('SelectTimeFromStick',stickValue,true);event.preventDefault();};clock.addEventListener('pointerdown',startHandler);clock.addEventListener('pointerup',endHandler);clock.addEventListener('pointercancel',endHandler);clock.addEventListener('pointerover',moveHandler);clock.destroy=()=>{clock.removeEventListener('pointerdown',startHandler);clock.removeEventListener('pointerup',endHandler);clock.removeEventListener('pointercancel',endHandler);clock.removeEventListener('pointerover',moveHandler);};},destroyPointerEvents:(container)=>{if(container==null){return;} +if(typeof container.destroy==='function'){container.destroy();}}};class MudScrollSpy{constructor(){this.lastKnowElement=null;this.handlerRef=null;} +spying(dotnetReference,containerSelector,sectionClassSelector){this.lastKnowElement=null;this.handlerRef=this.handleScroll.bind(this,dotnetReference,containerSelector,sectionClassSelector);document.addEventListener('scroll',this.handlerRef,true);window.addEventListener('resize',this.handlerRef,true);} +handleScroll(dotnetReference,containerSelector,sectionClassSelector,event){const container=document.querySelector(containerSelector);if(container===null){return;} +const elements=document.getElementsByClassName(sectionClassSelector);if(elements.length===0){return;} +const containerTop=container.tagName==='HTML'?0:container.getBoundingClientRect().top;const containerHeight=container.clientHeight;const center=containerTop+containerHeight/2.0;let minDifference=Number.MAX_SAFE_INTEGER;let foundAbove=false;let elementId='';for(let i=0;i=center){continue;} +if(diff{return element.querySelectorAll("a[href]:not([tabindex='-1']),"+"area[href]:not([tabindex='-1']),"+"button:not([disabled]):not([tabindex='-1']),"+"input:not([disabled]):not([tabindex='-1']):not([type='hidden']),"+"select:not([disabled]):not([tabindex='-1']),"+"textarea:not([disabled]):not([tabindex='-1']),"+"iframe:not([tabindex='-1']),"+"details:not([tabindex='-1']),"+"[tabindex]:not([tabindex='-1']),"+"[contentEditable=true]:not([tabindex='-1'])");};window.serializeParameter=(data,spec)=>{if(typeof data=="undefined"||data===null){return null;} -if(typeof data==="number"||typeof data==="string"||typeof data=="boolean"){return data;} -let res=(Array.isArray(data))?[]:{};if(!spec){spec="*";} -for(let i in data){let currentMember=data[i];if(typeof currentMember==='function'||currentMember===null){continue;} -let currentMemberSpec;if(spec!="*"){currentMemberSpec=Array.isArray(data)?spec:spec[i];if(!currentMemberSpec){continue;}}else{currentMemberSpec="*"} -if(typeof currentMember==='object'){if(Array.isArray(currentMember)||currentMember.length){res[i]=[];for(let j=0;j{if(svgElement==null)return null;const bbox=svgElement.getBBox();return{x:bbox.x,y:bbox.y,width:bbox.width,height:bbox.height};};window.mudObserveElementSize=(dotNetReference,element,functionName='OnElementSizeChanged',debounceMillis=200)=>{if(!element)return;let lastNotifiedTime=0;let scheduledCall=null;const throttledNotify=(width,height)=>{const timestamp=Date.now();const timeSinceLast=timestamp-lastNotifiedTime;if(timeSinceLast>=debounceMillis){lastNotifiedTime=timestamp;try{dotNetReference.invokeMethodAsync(functionName,{width,height,timestamp});} -catch(error){this.logger("[MudBlazor] Error in mudObserveElementSize:",{error});}}else{if(scheduledCall!==null){clearTimeout(scheduledCall);} -scheduledCall=setTimeout(()=>{lastNotifiedTime=Date.now();scheduledCall=null;try{dotNetReference.invokeMethodAsync(functionName,{width,height,timestamp});} -catch(error){this.logger("[MudBlazor] Error in mudObserveElementSize:",{error});}},debounceMillis-timeSinceLast);}};const resizeObserver=new ResizeObserver(entries=>{if(element.isConnected===false){return;} -let width=element.clientWidth;let height=element.clientHeight;for(const entry of entries){width=entry.contentRect.width;height=entry.contentRect.height;} -width=Math.floor(width);height=Math.floor(height);throttledNotify(width,height);});resizeObserver.observe(element);let mutationObserver=null;const parent=element.parentNode;if(parent){mutationObserver=new MutationObserver(mutations=>{for(const mutation of mutations){for(const removedNode of mutation.removedNodes){if(removedNode===element){cleanup();}}}});mutationObserver.observe(parent,{childList:true});} -function cleanup(){resizeObserver.disconnect();if(mutationObserver){mutationObserver.disconnect();} -if(scheduledCall!==null){clearTimeout(scheduledCall);}} -return{width:element.clientWidth,height:element.clientHeight};}; \ No newline at end of file +class MudFileUpload{openFilePicker(id){const element=document.getElementById(id);if(!element){return;} +try{element.showPicker();}catch(error){element.click();}}} +window.mudFileUpload=new MudFileUpload();class MudScrollManager{constructor(){this._lockCount=0;} +scrollToYear(elementId,offset){let element=document.getElementById(elementId);if(element){element.parentNode.scrollTop=element.offsetTop-element.parentNode.offsetTop-element.scrollHeight*3;}} +scrollToListItem(elementId){let element=document.getElementById(elementId);if(element){let parent=element.parentElement;if(parent){parent.scrollTop=element.offsetTop;}}} +scrollTo(selector,left,top,behavior){let element=document.querySelector(selector)||document.documentElement;element.scrollTo({left,top,behavior});} +scrollIntoView(selector,behavior){let element=document.querySelector(selector)||document.documentElement;if(element) +element.scrollIntoView({behavior,block:'center',inline:'start'});} +scrollToBottom(selector,behavior){let element=document.querySelector(selector);if(element){element.scrollTo({top:element.scrollHeight,behavior:behavior});}else{window.scrollTo({top:document.body.scrollHeight,behavior:behavior});}} +lockScroll(selector,lockclass){if(this._lockCount===0){const element=document.querySelector(selector)||document.body;const hasScrollBar=window.innerWidth>document.body.clientWidth;const classToAdd=hasScrollBar?lockclass:lockclass+"-no-padding";element.classList.add(classToAdd);} +this._lockCount++;} +unlockScroll(selector,lockclass){this._lockCount=Math.max(0,this._lockCount-1);if(this._lockCount===0){const element=document.querySelector(selector)||document.body;element.classList.remove(lockclass);element.classList.remove(lockclass+"-no-padding");}}};window.mudScrollManager=new MudScrollManager();class MudElementReference{constructor(){this.listenerId=0;this.eventListeners={};} +focus(element){if(element) +{element.focus();}} +blur(element){if(element){element.blur();}} +focusFirst(element,skip=0,min=0){if(element) +{let tabbables=getTabbableElements(element);if(tabbables.length<=min) +element.focus();else +tabbables[skip].focus();}} +focusLast(element,skip=0,min=0){if(element) +{let tabbables=getTabbableElements(element);if(tabbables.length<=min) +element.focus();else +tabbables[tabbables.length-skip-1].focus();}} +saveFocus(element){if(element) +{element['mudblazor_savedFocus']=document.activeElement;}} +restoreFocus(element){if(element) +{let previous=element['mudblazor_savedFocus'];delete element['mudblazor_savedFocus'] +if(previous) +previous.focus();}} +selectRange(element,pos1,pos2){if(element) +{if(element.createTextRange){let selRange=element.createTextRange();selRange.collapse(true);selRange.moveStart('character',pos1);selRange.moveEnd('character',pos2);selRange.select();}else if(element.setSelectionRange){element.setSelectionRange(pos1,pos2);}else if(element.selectionStart){element.selectionStart=pos1;element.selectionEnd=pos2;} +element.focus();}} +select(element){if(element) +{element.select();}} +getBoundingClientRect(element){if(!element)return;var rect=JSON.parse(JSON.stringify(element.getBoundingClientRect()));rect.scrollY=window.scrollY||document.documentElement.scrollTop;rect.scrollX=window.scrollX||document.documentElement.scrollLeft;rect.windowHeight=window.innerHeight;rect.windowWidth=window.innerWidth;return rect;} +changeCss(element,css){if(element) +{element.className=css;}} +removeEventListener(element,event,eventId){element.removeEventListener(event,this.eventListeners[eventId]);delete this.eventListeners[eventId];} +addDefaultPreventingHandler(element,eventName){let listener=function(e){if(!e.defaultPrevented){e.preventDefault();}};element.addEventListener(eventName,listener,{passive:false});this.eventListeners[++this.listenerId]=listener;return this.listenerId;} +removeDefaultPreventingHandler(element,eventName,listenerId){this.removeEventListener(element,eventName,listenerId);} +addDefaultPreventingHandlers(element,eventNames){let listeners=[];for(const eventName of eventNames){let listenerId=this.addDefaultPreventingHandler(element,eventName);listeners.push(listenerId);} +return listeners;} +removeDefaultPreventingHandlers(element,eventNames,listenerIds){for(let index=0;index{console.warn("Error invoking CallOnBlurredAsync, possibly disposed:",err);window.mudElementRef.removeOnBlurEvent(element);});}else{console.error("No dotNetReference found for iosKeyboardFocus");}};element.addEventListener('blur',element._mudBlurHandler);} +removeOnBlurEvent(element){if(!element)return;if(element._mudBlurHandler){element.removeEventListener('blur',element._mudBlurHandler);delete element._mudBlurHandler;}}};window.mudElementRef=new MudElementReference();class MudPointerEventsNone{constructor(){this.dotnet=null;this.logger=(msg,...args)=>{};this.pointerDownHandlerRef=null;this.pointerUpHandlerRef=null;this.pointerDownMap=new Map();this.pointerUpMap=new Map();} +listenForPointerEvents(dotNetReference,elementId,options){if(!options){this.logger("options object is required but was not provided");return;} +if(options.enableLogging){this.logger=(msg,...args)=>console.log("[MudBlazor | PointerEventsNone]",msg,...args);}else{this.logger=(msg,...args)=>{};} +this.logger("Called listenForPointerEvents",{dotNetReference,elementId,options});if(!dotNetReference){this.logger("dotNetReference is required but was not provided");return;} +if(!elementId){this.logger("elementId is required but was not provided");return;} +if(!options.subscribeDown&&!options.subscribeUp){this.logger("No subscriptions added: both subscribeDown and subscribeUp are false");return;} +if(!this.dotnet){this.dotnet=dotNetReference;} +if(options.subscribeDown){this.logger("Subscribing to 'pointerdown' for element:",elementId);this.pointerDownMap.set(elementId,options);if(!this.pointerDownHandlerRef){this.logger("Registering global 'pointerdown' event listener");this.pointerDownHandlerRef=this.pointerDownHandler.bind(this);document.addEventListener("pointerdown",this.pointerDownHandlerRef,false);}} +if(options.subscribeUp){this.logger("Subscribing to 'pointerup' events for element:",elementId);this.pointerUpMap.set(elementId,options);if(!this.pointerUpHandlerRef){this.logger("Registering global 'pointerup' event listener");this.pointerUpHandlerRef=this.pointerUpHandler.bind(this);document.addEventListener("pointerup",this.pointerUpHandlerRef,false);}}} +pointerDownHandler(event){this._handlePointerEvent(event,this.pointerDownMap,"RaiseOnPointerDown");} +pointerUpHandler(event){this._handlePointerEvent(event,this.pointerUpMap,"RaiseOnPointerUp");} +_handlePointerEvent(event,map,raiseMethod){if(map.size===0){this.logger("No elements registered for",raiseMethod);return;} +const elements=[];for(const id of map.keys()){const element=document.getElementById(id);if(element){elements.push(element);}else{this.logger("Element",id,"not found in DOM");}} +if(elements.length===0){this.logger("None of the registered elements were found in the DOM for",raiseMethod);return;} +elements.forEach(x=>x.style.pointerEvents="auto");const elementsFromPoint=document.elementsFromPoint(event.clientX,event.clientY);elements.forEach(x=>x.style.pointerEvents="none");const matchingIds=[];for(const element of elementsFromPoint){if(!element.id||!map.has(element.id)){break;} +matchingIds.push(element.id);} +if(matchingIds.length===0){this.logger("No matching registered elements found under pointer for",raiseMethod);return;} +this.logger("Raising",raiseMethod,"for matching element(s):",matchingIds);this.dotnet.invokeMethodAsync(raiseMethod,matchingIds);} +cancelListener(elementId){if(!elementId){this.logger("cancelListener called with invalid elementId");return;} +const hadDown=this.pointerDownMap.delete(elementId);const hadUp=this.pointerUpMap.delete(elementId);if(hadDown||hadUp){this.logger("Cancelled listener for element",elementId);}else{this.logger("No active listener found for element",elementId);} +if(this.pointerDownMap.size===0&&this.pointerDownHandlerRef){this.logger("No more elements listening for 'pointerdown' — removing global event listener");document.removeEventListener("pointerdown",this.pointerDownHandlerRef);this.pointerDownHandlerRef=null;} +if(this.pointerUpMap.size===0&&this.pointerUpHandlerRef){this.logger("No more elements listening for 'pointerup' — removing global event listener");document.removeEventListener("pointerup",this.pointerUpHandlerRef);this.pointerUpHandlerRef=null;}} +dispose(){if(!this.dotnet&&!this.pointerDownHandlerRef&&!this.pointerUpHandlerRef){this.logger("dispose() called but instance was already cleaned up");return;} +this.logger("Disposing");if(this.pointerDownHandlerRef){this.logger("Removing global 'pointerdown' event listener");document.removeEventListener("pointerdown",this.pointerDownHandlerRef);this.pointerDownHandlerRef=null;} +if(this.pointerUpHandlerRef){this.logger("Removing global 'pointerup' event listener");document.removeEventListener("pointerup",this.pointerUpHandlerRef);this.pointerUpHandlerRef=null;} +const downCount=this.pointerDownMap.size;const upCount=this.pointerUpMap.size;if(downCount>0){this.logger("Clearing",downCount,"element(s) from pointerDownMap");} +if(upCount>0){this.logger("Clearing",upCount,"element(s) from pointerUpMap");} +this.pointerDownMap.clear();this.pointerUpMap.clear();this.dotnet=null;}} +window.mudPointerEventsNone=new MudPointerEventsNone();class MudResizeObserverFactory{constructor(){this._maps={};} +connect(id,dotNetRef,elements,elementIds,options){var existingEntry=this._maps[id];if(!existingEntry){var observer=new MudResizeObserver(dotNetRef,options);this._maps[id]=observer;} +var result=this._maps[id].connect(elements,elementIds);return result;} +disconnect(id,element){var existingEntry=this._maps[id];if(existingEntry){existingEntry.disconnect(element);}} +cancelListener(id){var existingEntry=this._maps[id];if(existingEntry){existingEntry.cancelListener();delete this._maps[id];}}} +class MudResizeObserver{constructor(dotNetRef,options){this.logger=options.enableLogging?console.log:(message)=>{};this.options=options;this._dotNetRef=dotNetRef +var delay=(this.options||{}).reportRate||200;this.throttleResizeHandlerId=-1;var observervedElements=[];this._observervedElements=observervedElements;this.logger('[MudBlazor | ResizeObserver] Observer initialized');this._resizeObserver=new ResizeObserver(entries=>{var changes=[];this.logger('[MudBlazor | ResizeObserver] changes detected');for(let entry of entries){var target=entry.target;var affectedObservedElement=observervedElements.find((x)=>x.element==target);if(affectedObservedElement){var size=entry.target.getBoundingClientRect();if(affectedObservedElement.isInitialized==true){changes.push({id:affectedObservedElement.id,size:size});} +else{affectedObservedElement.isInitialized=true;}}} +if(changes.length>0){if(this.throttleResizeHandlerId>=0){clearTimeout(this.throttleResizeHandlerId);} +this.throttleResizeHandlerId=window.setTimeout(this.resizeHandler.bind(this,changes),delay);}});} +resizeHandler(changes){try{this.logger("[MudBlazor | ResizeObserver] OnSizeChanged handler invoked");this._dotNetRef.invokeMethodAsync("OnSizeChanged",changes);}catch(error){this.logger("[MudBlazor | ResizeObserver] Error in OnSizeChanged handler:",{error});}} +connect(elements,ids){var result=[];this.logger('[MudBlazor | ResizeObserver] Start observing elements...');for(var i=0;ix.id==elementId);if(affectedObservedElement){var element=affectedObservedElement.element;this._resizeObserver.unobserve(element);this.logger('[MudBlazor | ResizeObserver] Element found. Ubobserving size changes of element',{element});var index=this._observervedElements.indexOf(affectedObservedElement);this._observervedElements.splice(index,1);}} +cancelListener(){this.logger('[MudBlazor | ResizeObserver] Closing ResizeObserver. Detaching all observed elements');this._resizeObserver.disconnect();this._dotNetRef=undefined;}} +window.mudResizeObserver=new MudResizeObserverFactory();window.mudDragAndDrop={initDropZone:(id)=>{const elem=document.getElementById(id);elem.addEventListener('dragover',()=>event.preventDefault());elem.addEventListener('dragstart',()=>event.dataTransfer.setData('',event.target.id));},makeDropZonesNotRelative:()=>{var firstDropItems=Array.from(document.getElementsByClassName('mud-drop-item')).filter(x=>x.getAttribute('index')=="-1");for(let dropItem of firstDropItems){dropItem.style.position='static';} +const dropZones=document.getElementsByClassName('mud-drop-zone');for(let dropZone of dropZones){dropZone.style.position='unset';}},getDropZoneIdentifierOnPosition:(x,y)=>{const elems=document.elementsFromPoint(x,y);const dropZones=elems.filter(e=>e.classList.contains('mud-drop-zone')) +const dropZone=dropZones[0];if(dropZone){return dropZone.getAttribute('identifier')||"";} +return"";},getDropIndexOnPosition:(x,y,id)=>{const elems=document.elementsFromPoint(x,y);const dropItems=elems.filter(e=>e.classList.contains('mud-drop-item')&&e.id!=id) +const dropItem=dropItems[0];if(dropItem){return dropItem.getAttribute('index')||"";} +return"";},makeDropZonesRelative:()=>{const dropZones=document.getElementsByClassName('mud-drop-zone');for(let dropZone of dropZones){dropZone.style.position='relative';} +var firstDropItems=Array.from(document.getElementsByClassName('mud-drop-item')).filter(x=>x.getAttribute('index')=="-1");for(let dropItem of firstDropItems){dropItem.style.position='relative';}},moveItemByDifference:(id,dx,dy)=>{const elem=document.getElementById(id);var tx=(parseFloat(elem.getAttribute('data-x'))||0)+dx;var ty=(parseFloat(elem.getAttribute('data-y'))||0)+dy;elem.style.webkitTransform=elem.style.transform='translate3d('+tx+'px, '+ty+'px, 10px)';elem.setAttribute('data-x',tx);elem.setAttribute('data-y',ty);},resetItem:(id)=>{const elem=document.getElementById(id);if(elem){elem.style.webkitTransform=elem.style.transform='';elem.setAttribute('data-x',0);elem.setAttribute('data-y',0);}}}; \ No newline at end of file diff --git a/app/MindWork AI Studio/wwwroot/system/MudBlazor/MudBlazor.min.js.br b/app/MindWork AI Studio/wwwroot/system/MudBlazor/MudBlazor.min.js.br index 9062daaf..ca9a55d5 100644 Binary files a/app/MindWork AI Studio/wwwroot/system/MudBlazor/MudBlazor.min.js.br and b/app/MindWork AI Studio/wwwroot/system/MudBlazor/MudBlazor.min.js.br differ diff --git a/app/MindWork AI Studio/wwwroot/system/MudBlazor/MudBlazor.min.js.gz b/app/MindWork AI Studio/wwwroot/system/MudBlazor/MudBlazor.min.js.gz index 9521d8a3..cc3ba086 100644 Binary files a/app/MindWork AI Studio/wwwroot/system/MudBlazor/MudBlazor.min.js.gz and b/app/MindWork AI Studio/wwwroot/system/MudBlazor/MudBlazor.min.js.gz differ diff --git a/metadata.txt b/metadata.txt index 691deb96..4867b501 100644 --- a/metadata.txt +++ b/metadata.txt @@ -1,11 +1,11 @@ -0.9.49 -2025-07-02 12:12:12 UTC -224 -9.0.107 (commit ef50dc9d27) -9.0.6 (commit 3875b54e7b) -1.88.0 (commit 6b00bc388) -8.9.0 +0.9.51 +2025-09-04 18:02:17 UTC +226 +9.0.109 (commit 08d4728191) +9.0.8 (commit aae90fa090) +1.89.0 (commit 29483883e) +8.12.0 1.8.1 -be27fd84b82, release +ce243913ed4, release osx-arm64 137.0.7215.0 \ No newline at end of file diff --git a/runtime/Cargo.lock b/runtime/Cargo.lock index 951af5b9..f1cd1651 100644 --- a/runtime/Cargo.lock +++ b/runtime/Cargo.lock @@ -397,9 +397,9 @@ dependencies = [ [[package]] name = "calamine" -version = "0.28.0" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15e02a18e79de779a78b0a6ec84a3deed1ff0607dd970a11369f993263f99f1a" +checksum = "a9aeb09f84576a634da713630e11e431a744b91f1f8114c2ff0760189783a8a1" dependencies = [ "atoi_simd", "byteorder", @@ -1107,9 +1107,9 @@ dependencies = [ [[package]] name = "file-format" -version = "0.27.0" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ff8badf6e72ff15e42c9ade15d01375837173b17d10c228ab41d821082619db" +checksum = "0eab8aa2fba5f39f494000a22f44bf3c755b7d7f8ffad3f36c6d507893074159" [[package]] name = "filetime" @@ -1142,7 +1142,7 @@ checksum = "d7fb191130eb5944c592e5ad893a1306740d3a5b73c3522898ce7b9574f6aa75" dependencies = [ "chrono", "log", - "nu-ansi-term 0.50.1", + "nu-ansi-term", "regex", "thiserror 2.0.12", ] @@ -1555,8 +1555,8 @@ dependencies = [ "aho-corasick", "bstr", "log", - "regex-automata 0.4.7", - "regex-syntax 0.8.4", + "regex-automata", + "regex-syntax", ] [[package]] @@ -2125,7 +2125,7 @@ dependencies = [ "globset", "log", "memchr", - "regex-automata 0.4.7", + "regex-automata", "same-file", "walkdir", "winapi-util", @@ -2557,11 +2557,11 @@ dependencies = [ [[package]] name = "matchers" -version = "0.1.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +checksum = "d1525a2a28c7f4fa0fc98bb91ae755d1e2d1505079e05539e35bc876b5d65ae9" dependencies = [ - "regex-automata 0.1.10", + "regex-automata", ] [[package]] @@ -2599,7 +2599,7 @@ checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" [[package]] name = "mindwork-ai-studio" -version = "0.9.49" +version = "0.9.51" dependencies = [ "aes", "arboard", @@ -2624,7 +2624,7 @@ dependencies = [ "rand 0.9.1", "rand_chacha 0.9.0", "rcgen", - "reqwest 0.12.20", + "reqwest 0.12.22", "ring", "rocket", "serde", @@ -2636,6 +2636,7 @@ dependencies = [ "tauri-plugin-window-state", "tokio", "tokio-stream", + "tracing-subscriber", "url", "windows-registry", ] @@ -2753,16 +2754,6 @@ version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" -[[package]] -name = "nu-ansi-term" -version = "0.46.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" -dependencies = [ - "overload", - "winapi", -] - [[package]] name = "nu-ansi-term" version = "0.50.1" @@ -3019,9 +3010,9 @@ dependencies = [ [[package]] name = "openssl" -version = "0.10.72" +version = "0.10.73" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fedfea7d58a1f73118430a55da6a286e7b044961736ce96a16a17068ea25e5da" +checksum = "8505734d46c8ab1e19a1dce3aef597ad87dcb4c37e7188231769bd6bd51cebf8" dependencies = [ "bitflags 2.6.0", "cfg-if", @@ -3060,9 +3051,9 @@ dependencies = [ [[package]] name = "openssl-sys" -version = "0.9.107" +version = "0.9.109" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8288979acd84749c744a9014b4382d42b8f7b2592847b5afb2ed29e5d16ede07" +checksum = "90096e2e47630d78b7d1c20952dc621f957103f8bc2c8359ec81290d75238571" dependencies = [ "cc", "libc", @@ -3081,12 +3072,6 @@ dependencies = [ "windows-sys 0.52.0", ] -[[package]] -name = "overload" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" - [[package]] name = "pango" version = "0.15.10" @@ -3153,9 +3138,9 @@ dependencies = [ [[package]] name = "pdfium-render" -version = "0.8.33" +version = "0.8.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dca4101838fe3cb35e5f9dd8b55569ea483e7a342a6853878a5e56fcfdb04cc5" +checksum = "7085314448f8bb3877f89c696908830bb79e14b876b747cb09af26e55323c6a9" dependencies = [ "bitflags 2.6.0", "bytemuck", @@ -3670,9 +3655,9 @@ dependencies = [ [[package]] name = "rcgen" -version = "0.13.2" +version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75e669e5202259b5314d1ea5397316ad400819437857b90861765f24c4cf80a2" +checksum = "0068c5b3cab1d4e271e0bb6539c87563c43411cad90b057b15c79958fbeb41f7" dependencies = [ "pem", "ring", @@ -3738,17 +3723,8 @@ checksum = "b91213439dad192326a0d7c6ee3955910425f441d7038e0d6933b0aec5c4517f" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.4.7", - "regex-syntax 0.8.4", -] - -[[package]] -name = "regex-automata" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" -dependencies = [ - "regex-syntax 0.6.29", + "regex-automata", + "regex-syntax", ] [[package]] @@ -3759,15 +3735,9 @@ checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df" dependencies = [ "aho-corasick", "memchr", - "regex-syntax 0.8.4", + "regex-syntax", ] -[[package]] -name = "regex-syntax" -version = "0.6.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" - [[package]] name = "regex-syntax" version = "0.8.4" @@ -3818,9 +3788,9 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.12.20" +version = "0.12.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eabf4c97d9130e2bf606614eb937e86edac8292eaa6f422f995d7e8de1eb1813" +checksum = "cbc931937e6ca3a06e3b6c0aa7841849b160a90351d6ab467a8b9b9959767531" dependencies = [ "base64 0.22.1", "bytes", @@ -5260,9 +5230,9 @@ checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" [[package]] name = "tracing" -version = "0.1.40" +version = "0.1.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" dependencies = [ "pin-project-lite", "tracing-attributes", @@ -5271,9 +5241,9 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.27" +version = "0.1.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903" dependencies = [ "proc-macro2", "quote", @@ -5282,9 +5252,9 @@ dependencies = [ [[package]] name = "tracing-core" -version = "0.1.32" +version = "0.1.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678" dependencies = [ "once_cell", "valuable", @@ -5303,14 +5273,14 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.3.18" +version = "0.3.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" +checksum = "2054a14f5307d601f88daf0553e1cbf472acc4f2c51afab632431cdcd72124d5" dependencies = [ "matchers", - "nu-ansi-term 0.46.0", + "nu-ansi-term", "once_cell", - "regex", + "regex-automata", "sharded-slab", "smallvec", "thread_local", diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index 0ca3c99b..d789e210 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "mindwork-ai-studio" -version = "0.9.49" +version = "0.9.51" edition = "2021" description = "MindWork AI Studio" authors = ["Thorsten Sommer"] @@ -32,10 +32,10 @@ cbc = "0.1.2" pbkdf2 = "0.12.2" hmac = "0.12.1" sha2 = "0.10.8" -rcgen = { version = "0.13.2", features = ["pem"] } -file-format = "0.27.0" -calamine = "0.28.0" -pdfium-render = "0.8.33" +rcgen = { version = "0.14.3", features = ["pem"] } +file-format = "0.28.0" +calamine = "0.30.0" +pdfium-render = "0.8.34" sys-locale = "0.3.2" cfg-if = "1.0.1" pptx-to-md = "0.4.0" @@ -44,13 +44,14 @@ pptx-to-md = "0.4.0" url = "2.5" ring = "0.17.14" crossbeam-channel = "0.5.15" +tracing-subscriber = "0.3.20" [target.'cfg(target_os = "linux")'.dependencies] # See issue https://github.com/tauri-apps/tauri/issues/4470 -reqwest = { version = "0.12.20", features = ["native-tls-vendored"] } +reqwest = { version = "0.12.22", features = ["native-tls-vendored"] } # Fixes security vulnerability downstream, where the upstream is not fixed yet: -openssl = "0.10.72" +openssl = "0.10.73" [target.'cfg(target_os = "windows")'.dependencies] windows-registry = "0.5.3" diff --git a/runtime/src/certificate.rs b/runtime/src/certificate.rs index 2f6bc715..8cf7fb38 100644 --- a/runtime/src/certificate.rs +++ b/runtime/src/certificate.rs @@ -31,7 +31,7 @@ pub fn generate_certificate() { CERTIFICATE_FINGERPRINT.set(certificate_fingerprint.clone()).expect("Could not set the certificate fingerprint."); CERTIFICATE.set(certificate_data.cert.pem().as_bytes().to_vec()).expect("Could not set the certificate."); - CERTIFICATE_PRIVATE_KEY.set(certificate_data.key_pair.serialize_pem().as_bytes().to_vec()).expect("Could not set the private key."); + CERTIFICATE_PRIVATE_KEY.set(certificate_data.signing_key.serialize_pem().as_bytes().to_vec()).expect("Could not set the private key."); info!("Certificate fingerprint: '{certificate_fingerprint}'."); info!("Done generating certificate for the runtime API server."); diff --git a/runtime/tauri.conf.json b/runtime/tauri.conf.json index 6f4edaea..ed4161f5 100644 --- a/runtime/tauri.conf.json +++ b/runtime/tauri.conf.json @@ -6,7 +6,7 @@ }, "package": { "productName": "MindWork AI Studio", - "version": "0.9.49" + "version": "0.9.51" }, "tauri": { "allowlist": {