diff --git a/README.md b/README.md new file mode 100644 index 0000000..0721537 --- /dev/null +++ b/README.md @@ -0,0 +1,4 @@ +# CSGO2 Server Preview Paint Demo Plugins + +this demo plugin,Please use with caution +No support provided for this plugin diff --git a/Skin.cpp b/Skin.cpp index f6a5562..b8c47d7 100644 --- a/Skin.cpp +++ b/Skin.cpp @@ -39,26 +39,31 @@ typedef struct SkinParm int m_nFallbackPaintKit; int m_nFallbackSeed; float m_flFallbackWear; -}SkinParm;; +}SkinParm; #ifdef _WIN32 +typedef void*(FASTCALL* SubClassChange_t)(const CCommandContext &context, const CCommand &args); typedef void*(FASTCALL* EntityRemove_t)(CGameEntitySystem*, void*, void*,uint64_t); typedef void(FASTCALL* GiveNamedItem_t)(void* itemService,const char* pchName, void* iSubType,void* pScriptItem, void* a5,void* a6); typedef void(FASTCALL* UTIL_ClientPrintAll_t)(int msg_dest, const char* msg_name, const char* param1, const char* param2, const char* param3, const char* param4); +extern SubClassChange_t FnSubClassChange; extern EntityRemove_t FnEntityRemove; extern GiveNamedItem_t FnGiveNamedItem; extern UTIL_ClientPrintAll_t FnUTIL_ClientPrintAll; EntityRemove_t FnEntityRemove; GiveNamedItem_t FnGiveNamedItem; UTIL_ClientPrintAll_t FnUTIL_ClientPrintAll; +SubClassChange_t FnSubClassChange; #else +void (*FnSubClassChange)(const CCommandContext &context, const CCommand &args) = nullptr; void (*FnEntityRemove)(CGameEntitySystem*, void*, void*,uint64_t) = nullptr; void (*FnGiveNamedItem)(void* itemService,const char* pchName, void* iSubType,void* pScriptItem, void* a5,void* a6) = nullptr; void (*FnUTIL_ClientPrintAll)(int msg_dest, const char* msg_name, const char* param1, const char* param2, const char* param3, const char* param4) = nullptr; #endif std::map g_WeaponsMap; +std::map g_PlayerKnifes; std::map> g_PlayerSkins; class GameSessionConfiguration_t { }; @@ -133,7 +138,8 @@ bool Skin::Load(PluginId id, ISmmAPI* ismm, char* error, size_t maxlen, bool lat ConVar_Register(FCVAR_GAMEDLL); - g_WeaponsMap = { {26,"weapon_bizon"},{27,"weapon_mac10"},{34,"weapon_mp9"},{19,"weapon_p90"},{24,"weapon_ump45"},{7,"weapon_ak47"},{8,"weapon_aug"},{10,"weapon_famas"},{13,"weapon_galilar"},{16,"weapon_m4a1"},{60,"weapon_m4a1_silencer"},{39,"weapon_sg556"},{9,"weapon_awp"},{11,"weapon_g3sg1"},{38,"weapon_scar20"},{40,"weapon_ssg08"},{29,"weapon_mag7"},{35,"weapon_nova"},{29,"weapon_sawedoff"},{25,"weapon_xm1014"},{14,"weapon_m249"},{9,"weapon_awp"},{28,"weapon_negev"},{1,"weapon_deagle"},{2,"weapon_elite"},{3,"weapon_fiveseven"},{4,"weapon_glock"},{32,"weapon_hkp2000"},{36,"weapon_p250"},{30,"weapon_tec9"},{61,"weapon_usp_silencer"},{63,"weapon_cz75a"},{64,"weapon_revolver"}}; + g_WeaponsMap = {{59,"weapon_knife"},{42,"weapon_knife"},{26,"weapon_bizon"},{27,"weapon_mac10"},{34,"weapon_mp9"},{19,"weapon_p90"},{24,"weapon_ump45"},{7,"weapon_ak47"},{8,"weapon_aug"},{10,"weapon_famas"},{13,"weapon_galilar"},{16,"weapon_m4a1"},{60,"weapon_m4a1_silencer"},{39,"weapon_sg556"},{9,"weapon_awp"},{11,"weapon_g3sg1"},{38,"weapon_scar20"},{40,"weapon_ssg08"},{29,"weapon_mag7"},{35,"weapon_nova"},{29,"weapon_sawedoff"},{25,"weapon_xm1014"},{14,"weapon_m249"},{9,"weapon_awp"},{28,"weapon_negev"},{1,"weapon_deagle"},{2,"weapon_elite"},{3,"weapon_fiveseven"},{4,"weapon_glock"},{32,"weapon_hkp2000"},{36,"weapon_p250"},{30,"weapon_tec9"},{61,"weapon_usp_silencer"},{63,"weapon_cz75a"},{64,"weapon_revolver"}}; + #ifdef _WIN32 byte* vscript = (byte*)FindSignature("vscript.dll", "\xBE\x01\x3F\x3F\x3F\x2B\xD6\x74\x61\x3B\xD6"); if(vscript) @@ -173,11 +179,13 @@ void Skin::StartupServer(const GameSessionConfiguration_t& config, ISource2World FnUTIL_ClientPrintAll = (UTIL_ClientPrintAll_t)FindSignature("server.dll", "\x48\x89\x5C\x24\x08\x48\x89\x6C\x24\x10\x48\x89\x74\x24\x18\x57\x48\x81\xEC\x70\x01\x3F\x3F\x8B\xE9"); FnGiveNamedItem = (GiveNamedItem_t)FindSignature("server.dll", "\x48\x89\x5C\x24\x18\x48\x89\x74\x24\x20\x55\x57\x41\x54\x41\x56\x41\x57\x48\x8D\x6C\x24\xD9"); FnEntityRemove = (EntityRemove_t)FindSignature("server.dll", "\x48\x85\xD2\x0F\x3F\x3F\x3F\x3F\x3F\x57\x48\x3F\x3F\x3F\x48\x89\x3F\x3F\x3F\x48\x8B\xF9\x48\x8B"); + FnSubClassChange = (SubClassChange_t)FindSignature("server.dll", "\x40\x55\x41\x57\x48\x83\xEC\x78\x83\xBA\x38\x04"); #else CModule libserver(g_pSource2Server); FnUTIL_ClientPrintAll = libserver.FindPatternSIMD("55 48 89 E5 41 57 49 89 D7 41 56 49 89 F6 41 55 41 89 FD").RCast< decltype(FnUTIL_ClientPrintAll) >(); FnGiveNamedItem = libserver.FindPatternSIMD("55 48 89 E5 41 57 41 56 49 89 CE 41 55 49 89 F5 41 54 49 89 D4 53 48 89").RCast(); FnEntityRemove = libserver.FindPatternSIMD("48 85 F6 74 0B 48 8B 76 10 E9 B2 FE FF FF").RCast(); + FnSubClassChange = libserver.FindPatternSIMD("55 48 89 E5 41 57 41 56 41 55 41 54 53 48 81 EC C8").RCast(); #endif g_pGameRules = nullptr; @@ -234,7 +242,8 @@ void CRoundPreStartEvent::FireGameEvent(IGameEvent* event) void CEntityListener::OnEntitySpawned(CEntityInstance* pEntity) { CBasePlayerWeapon* pBasePlayerWeapon = dynamic_cast(pEntity); - if(!pBasePlayerWeapon)return; + if(!pBasePlayerWeapon)return; + g_Skin.NextFrame([pBasePlayerWeapon = pBasePlayerWeapon]() { int64_t steamid = pBasePlayerWeapon->m_OriginalOwnerXuidLow(); @@ -245,16 +254,29 @@ void CEntityListener::OnEntitySpawned(CEntityInstance* pEntity) if(weapon == g_PlayerSkins.end())return; auto skin_parm = weapon->second.find(weaponId); if(skin_parm == weapon->second.end())return; - + pBasePlayerWeapon->m_nFallbackPaintKit() = skin_parm->second.m_nFallbackPaintKit; pBasePlayerWeapon->m_nFallbackSeed() = skin_parm->second.m_nFallbackSeed; pBasePlayerWeapon->m_flFallbackWear() = skin_parm->second.m_flFallbackWear; - pBasePlayerWeapon->m_AttributeManager().m_Item().m_iItemIDHigh() = -1; + pBasePlayerWeapon->m_CBodyComponent()->m_pSceneNode()->GetSkeletonInstance()->m_modelState().m_MeshGroupMask() = 2; + + if(weaponId == 59 || weaponId == 42) + { + auto knife_idx = g_PlayerKnifes.find(steamid); + if(knife_idx == g_PlayerKnifes.end())return; + + char buf[64] = {0}; + int index = static_cast(pBasePlayerWeapon)->m_pEntity->m_EHandle.GetEntryIndex(); + sprintf(buf,"i_subclass_change %d %d",knife_idx->second,index); + engine->ServerCommand(buf); + } + META_CONPRINTF( "class: %s\n", static_cast(pBasePlayerWeapon)->m_pEntity->m_designerName.String()); META_CONPRINTF( "steamId: %lld itemId: %d\n", steamid, weaponId); }); } +// weapon: skin 38 0 0 knife: skin 38 0 0 515 CON_COMMAND_F(skin, "修改皮肤", FCVAR_CLIENT_CAN_EXECUTE) { if(context.GetPlayerSlot() == -1)return; @@ -262,14 +284,7 @@ CON_COMMAND_F(skin, "修改皮肤", FCVAR_CLIENT_CAN_EXECUTE) CCSPlayerPawnBase* pPlayerPawn = pPlayerController->m_hPlayerPawn(); if (!pPlayerPawn || pPlayerPawn->m_lifeState() != LIFE_ALIVE) return; - char buf[255] = {0}; - if(args.ArgC() != 4) - { - sprintf(buf, " \x04 %s 你使用skin命令修改皮肤需要三个参数!",pPlayerController->m_iszPlayerName()); - FnUTIL_ClientPrintAll(3, buf,nullptr, nullptr, nullptr, nullptr); - return; - } - + CPlayer_WeaponServices* pWeaponServices = pPlayerPawn->m_pWeaponServices(); int64_t steamid = pPlayerController->m_steamID(); @@ -277,6 +292,27 @@ CON_COMMAND_F(skin, "修改皮肤", FCVAR_CLIENT_CAN_EXECUTE) auto weapon_name = g_WeaponsMap.find(weaponId); if(weapon_name == g_WeaponsMap.end())return; + + char buf[255] = {0}; + if(weaponId == 59 || weaponId == 42) + { + if(args.ArgC() != 5) + { + sprintf(buf, " \x04 %s 你使用skin命令修改刀皮肤需要四个参数!",pPlayerController->m_iszPlayerName()); + FnUTIL_ClientPrintAll(3, buf,nullptr, nullptr, nullptr, nullptr); + return; + } + g_PlayerKnifes[steamid] = atoi(args.Arg(4)); + } + else + { + if(args.ArgC() != 4) + { + sprintf(buf, " \x04 %s 你使用skin命令修改武器皮肤需要三个参数!",pPlayerController->m_iszPlayerName()); + FnUTIL_ClientPrintAll(3, buf,nullptr, nullptr, nullptr, nullptr); + return; + } + } g_PlayerSkins[steamid][weaponId].m_nFallbackPaintKit = atoi(args.Arg(1)); g_PlayerSkins[steamid][weaponId].m_nFallbackSeed = atoi(args.Arg(2)); @@ -286,7 +322,7 @@ CON_COMMAND_F(skin, "修改皮肤", FCVAR_CLIENT_CAN_EXECUTE) pWeaponServices->RemoveWeapon(pPlayerWeapon); FnEntityRemove(g_pGameEntitySystem,pPlayerWeapon,nullptr,-1); FnGiveNamedItem(pPlayerPawn->m_pItemServices(),weapon_name->second.c_str(),nullptr,nullptr,nullptr,nullptr); - pPlayerWeapon->m_AttributeManager().m_Item().m_iAccountID() = 271098320; + // pPlayerWeapon->m_AttributeManager().m_Item().m_iAccountID() = 271098320; //CCSPlayer_ItemServices* pItemServices = static_cast(pPlayerPawn->m_pItemServices()); //pItemServices->GiveNamedItem(weapon_name->second.c_str()); // g_pGameRules->PlayerRespawn(static_cast(pPlayerPawn)); @@ -295,6 +331,11 @@ CON_COMMAND_F(skin, "修改皮肤", FCVAR_CLIENT_CAN_EXECUTE) FnUTIL_ClientPrintAll(3, buf,nullptr, nullptr, nullptr, nullptr); } +CON_COMMAND_F(i_subclass_change, "subclass change", FCVAR_NONE) +{ + FnSubClassChange(context,args); +} + const char* Skin::GetLicense() { return "GPL"; diff --git a/fonts/roboto/LICENSE.txt b/fonts/roboto/LICENSE.txt new file mode 100644 index 0000000..261eeb9 --- /dev/null +++ b/fonts/roboto/LICENSE.txt @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/fonts/roboto/Roboto-Black.woff b/fonts/roboto/Roboto-Black.woff new file mode 100644 index 0000000..9b72779 Binary files /dev/null and b/fonts/roboto/Roboto-Black.woff differ diff --git a/fonts/roboto/Roboto-Black.woff2 b/fonts/roboto/Roboto-Black.woff2 new file mode 100644 index 0000000..9559f02 Binary files /dev/null and b/fonts/roboto/Roboto-Black.woff2 differ diff --git a/fonts/roboto/Roboto-BlackItalic.woff b/fonts/roboto/Roboto-BlackItalic.woff new file mode 100644 index 0000000..609bdf4 Binary files /dev/null and b/fonts/roboto/Roboto-BlackItalic.woff differ diff --git a/fonts/roboto/Roboto-BlackItalic.woff2 b/fonts/roboto/Roboto-BlackItalic.woff2 new file mode 100644 index 0000000..5cb417b Binary files /dev/null and b/fonts/roboto/Roboto-BlackItalic.woff2 differ diff --git a/fonts/roboto/Roboto-Bold.woff b/fonts/roboto/Roboto-Bold.woff new file mode 100644 index 0000000..93a1d5a Binary files /dev/null and b/fonts/roboto/Roboto-Bold.woff differ diff --git a/fonts/roboto/Roboto-Bold.woff2 b/fonts/roboto/Roboto-Bold.woff2 new file mode 100644 index 0000000..715ac19 Binary files /dev/null and b/fonts/roboto/Roboto-Bold.woff2 differ diff --git a/fonts/roboto/Roboto-BoldItalic.woff b/fonts/roboto/Roboto-BoldItalic.woff new file mode 100644 index 0000000..f1d7598 Binary files /dev/null and b/fonts/roboto/Roboto-BoldItalic.woff differ diff --git a/fonts/roboto/Roboto-BoldItalic.woff2 b/fonts/roboto/Roboto-BoldItalic.woff2 new file mode 100644 index 0000000..c91e0f8 Binary files /dev/null and b/fonts/roboto/Roboto-BoldItalic.woff2 differ diff --git a/fonts/roboto/Roboto-Light.woff b/fonts/roboto/Roboto-Light.woff new file mode 100644 index 0000000..404afba Binary files /dev/null and b/fonts/roboto/Roboto-Light.woff differ diff --git a/fonts/roboto/Roboto-Light.woff2 b/fonts/roboto/Roboto-Light.woff2 new file mode 100644 index 0000000..5f26201 Binary files /dev/null and b/fonts/roboto/Roboto-Light.woff2 differ diff --git a/fonts/roboto/Roboto-LightItalic.woff b/fonts/roboto/Roboto-LightItalic.woff new file mode 100644 index 0000000..07117c5 Binary files /dev/null and b/fonts/roboto/Roboto-LightItalic.woff differ diff --git a/fonts/roboto/Roboto-LightItalic.woff2 b/fonts/roboto/Roboto-LightItalic.woff2 new file mode 100644 index 0000000..5fa7eed Binary files /dev/null and b/fonts/roboto/Roboto-LightItalic.woff2 differ diff --git a/fonts/roboto/Roboto-Medium.woff b/fonts/roboto/Roboto-Medium.woff new file mode 100644 index 0000000..b18e6b8 Binary files /dev/null and b/fonts/roboto/Roboto-Medium.woff differ diff --git a/fonts/roboto/Roboto-Medium.woff2 b/fonts/roboto/Roboto-Medium.woff2 new file mode 100644 index 0000000..f9f6913 Binary files /dev/null and b/fonts/roboto/Roboto-Medium.woff2 differ diff --git a/fonts/roboto/Roboto-MediumItalic.woff b/fonts/roboto/Roboto-MediumItalic.woff new file mode 100644 index 0000000..2be7d89 Binary files /dev/null and b/fonts/roboto/Roboto-MediumItalic.woff differ diff --git a/fonts/roboto/Roboto-MediumItalic.woff2 b/fonts/roboto/Roboto-MediumItalic.woff2 new file mode 100644 index 0000000..9b7b828 Binary files /dev/null and b/fonts/roboto/Roboto-MediumItalic.woff2 differ diff --git a/fonts/roboto/Roboto-Regular.woff b/fonts/roboto/Roboto-Regular.woff new file mode 100644 index 0000000..2f53e7c Binary files /dev/null and b/fonts/roboto/Roboto-Regular.woff differ diff --git a/fonts/roboto/Roboto-Regular.woff2 b/fonts/roboto/Roboto-Regular.woff2 new file mode 100644 index 0000000..1d1539e Binary files /dev/null and b/fonts/roboto/Roboto-Regular.woff2 differ diff --git a/fonts/roboto/Roboto-RegularItalic.woff b/fonts/roboto/Roboto-RegularItalic.woff new file mode 100644 index 0000000..60f95dd Binary files /dev/null and b/fonts/roboto/Roboto-RegularItalic.woff differ diff --git a/fonts/roboto/Roboto-RegularItalic.woff2 b/fonts/roboto/Roboto-RegularItalic.woff2 new file mode 100644 index 0000000..75495c3 Binary files /dev/null and b/fonts/roboto/Roboto-RegularItalic.woff2 differ diff --git a/fonts/roboto/Roboto-Thin.woff b/fonts/roboto/Roboto-Thin.woff new file mode 100644 index 0000000..e115692 Binary files /dev/null and b/fonts/roboto/Roboto-Thin.woff differ diff --git a/fonts/roboto/Roboto-Thin.woff2 b/fonts/roboto/Roboto-Thin.woff2 new file mode 100644 index 0000000..a26400d Binary files /dev/null and b/fonts/roboto/Roboto-Thin.woff2 differ diff --git a/fonts/roboto/Roboto-ThinItalic.woff b/fonts/roboto/Roboto-ThinItalic.woff new file mode 100644 index 0000000..eab0271 Binary files /dev/null and b/fonts/roboto/Roboto-ThinItalic.woff differ diff --git a/fonts/roboto/Roboto-ThinItalic.woff2 b/fonts/roboto/Roboto-ThinItalic.woff2 new file mode 100644 index 0000000..f00aafc Binary files /dev/null and b/fonts/roboto/Roboto-ThinItalic.woff2 differ diff --git a/index.html b/index.html new file mode 100644 index 0000000..1420fad --- /dev/null +++ b/index.html @@ -0,0 +1,58 @@ + + + + + + + 皮肤修改 + + +
+
+
+ 皮肤修改 +
+
+ +
+

皮肤修改

+ + + + + + + + +
+
+ + + + + + \ No newline at end of file diff --git a/mdui.css b/mdui.css new file mode 100644 index 0000000..d36dd8a --- /dev/null +++ b/mdui.css @@ -0,0 +1,13559 @@ +/*! + * mdui 1.0.2 (https://mdui.org) + * Copyright 2016-2021 zdhxiong + * Licensed under MIT + *//*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ + +/* Document + ========================================================================== */ + +/** + * 1. Correct the line height in all browsers. + * 2. Prevent adjustments of font size after orientation changes in iOS. + */ + +html { + line-height: 1.15; /* 1 */ + -webkit-text-size-adjust: 100%; /* 2 */ +} + +/* Sections + ========================================================================== */ + +/** + * Remove the margin in all browsers. + */ + +body { + margin: 0; +} + +/** + * Render the `main` element consistently in IE. + */ + +main { + display: block; +} + +/** + * Correct the font size and margin on `h1` elements within `section` and + * `article` contexts in Chrome, Firefox, and Safari. + */ + +h1 { + font-size: 2em; + margin: 0.67em 0; +} + +/* Grouping content + ========================================================================== */ + +/** + * 1. Add the correct box sizing in Firefox. + * 2. Show the overflow in Edge and IE. + */ + +hr { + -webkit-box-sizing: content-box; + box-sizing: content-box; /* 1 */ + height: 0; /* 1 */ + overflow: visible; /* 2 */ +} + +/** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ + +pre { + font-family: monospace, monospace; /* 1 */ + font-size: 1em; /* 2 */ +} + +/* Text-level semantics + ========================================================================== */ + +/** + * Remove the gray background on active links in IE 10. + */ + +a { + background-color: transparent; +} + +/** + * 1. Remove the bottom border in Chrome 57- + * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. + */ + +abbr[title] { + border-bottom: none; /* 1 */ + text-decoration: underline; /* 2 */ + -webkit-text-decoration: underline dotted; + text-decoration: underline dotted; /* 2 */ +} + +/** + * Add the correct font weight in Chrome, Edge, and Safari. + */ + +b, +strong { + font-weight: bolder; +} + +/** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ + +code, +kbd, +samp { + font-family: monospace, monospace; /* 1 */ + font-size: 1em; /* 2 */ +} + +/** + * Add the correct font size in all browsers. + */ + +small { + font-size: 80%; +} + +/** + * Prevent `sub` and `sup` elements from affecting the line height in + * all browsers. + */ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sub { + bottom: -0.25em; +} + +sup { + top: -0.5em; +} + +/* Embedded content + ========================================================================== */ + +/** + * Remove the border on images inside links in IE 10. + */ + +img { + border-style: none; +} + +/* Forms + ========================================================================== */ + +/** + * 1. Change the font styles in all browsers. + * 2. Remove the margin in Firefox and Safari. + */ + +button, +input, +optgroup, +select, +textarea { + font-family: inherit; /* 1 */ + font-size: 100%; /* 1 */ + line-height: 1.15; /* 1 */ + margin: 0; /* 2 */ +} + +/** + * Show the overflow in IE. + * 1. Show the overflow in Edge. + */ + +button, +input { /* 1 */ + overflow: visible; +} + +/** + * Remove the inheritance of text transform in Edge, Firefox, and IE. + * 1. Remove the inheritance of text transform in Firefox. + */ + +button, +select { /* 1 */ + text-transform: none; +} + +/** + * Correct the inability to style clickable types in iOS and Safari. + */ + +button, +[type="button"], +[type="reset"], +[type="submit"] { + -webkit-appearance: button; +} + +/** + * Remove the inner border and padding in Firefox. + */ + +button::-moz-focus-inner, +[type="button"]::-moz-focus-inner, +[type="reset"]::-moz-focus-inner, +[type="submit"]::-moz-focus-inner { + border-style: none; + padding: 0; +} + +/** + * Restore the focus styles unset by the previous rule. + */ + +button:-moz-focusring, +[type="button"]:-moz-focusring, +[type="reset"]:-moz-focusring, +[type="submit"]:-moz-focusring { + outline: 1px dotted ButtonText; +} + +/** + * Correct the padding in Firefox. + */ + +fieldset { + padding: 0.35em 0.75em 0.625em; +} + +/** + * 1. Correct the text wrapping in Edge and IE. + * 2. Correct the color inheritance from `fieldset` elements in IE. + * 3. Remove the padding so developers are not caught out when they zero out + * `fieldset` elements in all browsers. + */ + +legend { + -webkit-box-sizing: border-box; + box-sizing: border-box; /* 1 */ + color: inherit; /* 2 */ + display: table; /* 1 */ + max-width: 100%; /* 1 */ + padding: 0; /* 3 */ + white-space: normal; /* 1 */ +} + +/** + * Add the correct vertical alignment in Chrome, Firefox, and Opera. + */ + +progress { + vertical-align: baseline; +} + +/** + * Remove the default vertical scrollbar in IE 10+. + */ + +textarea { + overflow: auto; +} + +/** + * 1. Add the correct box sizing in IE 10. + * 2. Remove the padding in IE 10. + */ + +[type="checkbox"], +[type="radio"] { + -webkit-box-sizing: border-box; + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * Correct the cursor style of increment and decrement buttons in Chrome. + */ + +[type="number"]::-webkit-inner-spin-button, +[type="number"]::-webkit-outer-spin-button { + height: auto; +} + +/** + * 1. Correct the odd appearance in Chrome and Safari. + * 2. Correct the outline style in Safari. + */ + +[type="search"] { + -webkit-appearance: textfield; /* 1 */ + outline-offset: -2px; /* 2 */ +} + +/** + * Remove the inner padding in Chrome and Safari on macOS. + */ + +[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +/** + * 1. Correct the inability to style clickable types in iOS and Safari. + * 2. Change font properties to `inherit` in Safari. + */ + +::-webkit-file-upload-button { + -webkit-appearance: button; /* 1 */ + font: inherit; /* 2 */ +} + +/* Interactive + ========================================================================== */ + +/* + * Add the correct display in Edge, IE 10+, and Firefox. + */ + +details { + display: block; +} + +/* + * Add the correct display in all browsers. + */ + +summary { + display: list-item; +} + +/* Misc + ========================================================================== */ + +/** + * Add the correct display in IE 10+. + */ + +template { + display: none; +} + +/** + * Add the correct display in IE 10. + */ + +[hidden] { + display: none; +} + +/** + * ============================================================================= + * ************ 公共样式 ************ + * ============================================================================= + */ +* { + -webkit-tap-highlight-color: transparent; +} +body { + color: rgba(0, 0, 0, 0.87); + font-size: 14px; + font-family: Roboto, Noto, Helvetica, Arial, sans-serif; + background-color: #fff; +} +@media (min-width: 600px) { + body { + font-size: 14.5px; + } +} +@media (min-width: 1024px) { + body { + font-size: 15px; + } +} +body *::-webkit-scrollbar { + width: 5px; + height: 5px; + background: transparent; +} +@media (min-width: 1024px) { + body *::-webkit-scrollbar { + width: 8px; + height: 8px; + } +} +body *::-webkit-scrollbar-thumb { + background: rgba(0, 0, 0, 0.2); +} +/* 锁定屏幕 */ +body.mdui-locked { + overflow: hidden; +} +/* 遮罩层 */ +.mdui-overlay { + position: fixed; + top: -5000px; + right: -5000px; + bottom: -5000px; + left: -5000px; + z-index: 2000; + background: rgba(0, 0, 0, 0.4); + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + visibility: hidden; + opacity: 0; + -webkit-transition-duration: 0.3s; + transition-duration: 0.3s; + -webkit-transition-property: opacity, visibility; + transition-property: opacity, visibility; + will-change: opacity; +} +/* 显示遮罩层 */ +.mdui-overlay-show { + visibility: visible; + opacity: 1; +} +/* 取消 transition 过渡效果 */ +.mdui-no-transition { + -webkit-transition-property: none !important; + transition-property: none !important; +} +/** + * ============================================================================= + * ************ Global dark ************ + * ============================================================================= + */ +.mdui-theme-layout-dark { + color: #fff; + background-color: #303030; +} +.mdui-theme-layout-dark *::-webkit-scrollbar { + width: 5px; + height: 5px; + background: transparent; +} +@media (min-width: 1024px) { + .mdui-theme-layout-dark *::-webkit-scrollbar { + width: 8px; + height: 8px; + } +} +.mdui-theme-layout-dark *::-webkit-scrollbar-thumb { + background: rgba(255, 255, 255, 0.3); +} +@media (prefers-color-scheme: dark) { + .mdui-theme-layout-auto { + color: #fff; + background-color: #303030; + } + .mdui-theme-layout-auto *::-webkit-scrollbar { + width: 5px; + height: 5px; + background: transparent; + } + .mdui-theme-layout-auto *::-webkit-scrollbar-thumb { + background: rgba(255, 255, 255, 0.3); + } +} +@media (prefers-color-scheme: dark) and (min-width: 1024px) { + .mdui-theme-layout-auto *::-webkit-scrollbar { + width: 8px; + height: 8px; + } +} +/** + * ============================================================================= + * ************ Color 颜色 ************ + * ============================================================================= + */ +/** + * .mdui-theme-primary-[color] .mdui-color-theme + * .mdui-theme-primary-[color] .mdui-color-theme-[degree] + */ +.mdui-theme-primary-amber .mdui-color-theme { + background-color: #FFC107 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-amber .mdui-color-theme-50 { + background-color: #FFF8E1 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-amber .mdui-color-theme-100 { + background-color: #FFECB3 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-amber .mdui-color-theme-200 { + background-color: #FFE082 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-amber .mdui-color-theme-300 { + background-color: #FFD54F !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-amber .mdui-color-theme-400 { + background-color: #FFCA28 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-amber .mdui-color-theme-500 { + background-color: #FFC107 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-amber .mdui-color-theme-600 { + background-color: #FFB300 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-amber .mdui-color-theme-700 { + background-color: #FFA000 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-amber .mdui-color-theme-800 { + background-color: #FF8F00 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-amber .mdui-color-theme-900 { + background-color: #FF6F00 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-blue .mdui-color-theme { + background-color: #2196F3 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-blue .mdui-color-theme-50 { + background-color: #E3F2FD !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-blue .mdui-color-theme-100 { + background-color: #BBDEFB !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-blue .mdui-color-theme-200 { + background-color: #90CAF9 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-blue .mdui-color-theme-300 { + background-color: #64B5F6 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-blue .mdui-color-theme-400 { + background-color: #42A5F5 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-blue .mdui-color-theme-500 { + background-color: #2196F3 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-blue .mdui-color-theme-600 { + background-color: #1E88E5 !important; + color: #ffffff !important; +} +.mdui-theme-primary-blue .mdui-color-theme-700 { + background-color: #1976D2 !important; + color: #ffffff !important; +} +.mdui-theme-primary-blue .mdui-color-theme-800 { + background-color: #1565C0 !important; + color: #ffffff !important; +} +.mdui-theme-primary-blue .mdui-color-theme-900 { + background-color: #0D47A1 !important; + color: #ffffff !important; +} +.mdui-theme-primary-blue-grey .mdui-color-theme { + background-color: #607D8B !important; + color: #ffffff !important; +} +.mdui-theme-primary-blue-grey .mdui-color-theme-50 { + background-color: #ECEFF1 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-blue-grey .mdui-color-theme-100 { + background-color: #CFD8DC !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-blue-grey .mdui-color-theme-200 { + background-color: #B0BEC5 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-blue-grey .mdui-color-theme-300 { + background-color: #90A4AE !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-blue-grey .mdui-color-theme-400 { + background-color: #78909C !important; + color: #ffffff !important; +} +.mdui-theme-primary-blue-grey .mdui-color-theme-500 { + background-color: #607D8B !important; + color: #ffffff !important; +} +.mdui-theme-primary-blue-grey .mdui-color-theme-600 { + background-color: #546E7A !important; + color: #ffffff !important; +} +.mdui-theme-primary-blue-grey .mdui-color-theme-700 { + background-color: #455A64 !important; + color: #ffffff !important; +} +.mdui-theme-primary-blue-grey .mdui-color-theme-800 { + background-color: #37474F !important; + color: #ffffff !important; +} +.mdui-theme-primary-blue-grey .mdui-color-theme-900 { + background-color: #263238 !important; + color: #ffffff !important; +} +.mdui-theme-primary-brown .mdui-color-theme { + background-color: #795548 !important; + color: #ffffff !important; +} +.mdui-theme-primary-brown .mdui-color-theme-50 { + background-color: #EFEBE9 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-brown .mdui-color-theme-100 { + background-color: #D7CCC8 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-brown .mdui-color-theme-200 { + background-color: #BCAAA4 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-brown .mdui-color-theme-300 { + background-color: #A1887F !important; + color: #ffffff !important; +} +.mdui-theme-primary-brown .mdui-color-theme-400 { + background-color: #8D6E63 !important; + color: #ffffff !important; +} +.mdui-theme-primary-brown .mdui-color-theme-500 { + background-color: #795548 !important; + color: #ffffff !important; +} +.mdui-theme-primary-brown .mdui-color-theme-600 { + background-color: #6D4C41 !important; + color: #ffffff !important; +} +.mdui-theme-primary-brown .mdui-color-theme-700 { + background-color: #5D4037 !important; + color: #ffffff !important; +} +.mdui-theme-primary-brown .mdui-color-theme-800 { + background-color: #4E342E !important; + color: #ffffff !important; +} +.mdui-theme-primary-brown .mdui-color-theme-900 { + background-color: #3E2723 !important; + color: #ffffff !important; +} +.mdui-theme-primary-cyan .mdui-color-theme { + background-color: #00BCD4 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-cyan .mdui-color-theme-50 { + background-color: #E0F7FA !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-cyan .mdui-color-theme-100 { + background-color: #B2EBF2 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-cyan .mdui-color-theme-200 { + background-color: #80DEEA !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-cyan .mdui-color-theme-300 { + background-color: #4DD0E1 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-cyan .mdui-color-theme-400 { + background-color: #26C6DA !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-cyan .mdui-color-theme-500 { + background-color: #00BCD4 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-cyan .mdui-color-theme-600 { + background-color: #00ACC1 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-cyan .mdui-color-theme-700 { + background-color: #0097A7 !important; + color: #ffffff !important; +} +.mdui-theme-primary-cyan .mdui-color-theme-800 { + background-color: #00838F !important; + color: #ffffff !important; +} +.mdui-theme-primary-cyan .mdui-color-theme-900 { + background-color: #006064 !important; + color: #ffffff !important; +} +.mdui-theme-primary-deep-orange .mdui-color-theme { + background-color: #FF5722 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-deep-orange .mdui-color-theme-50 { + background-color: #FBE9E7 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-deep-orange .mdui-color-theme-100 { + background-color: #FFCCBC !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-deep-orange .mdui-color-theme-200 { + background-color: #FFAB91 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-deep-orange .mdui-color-theme-300 { + background-color: #FF8A65 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-deep-orange .mdui-color-theme-400 { + background-color: #FF7043 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-deep-orange .mdui-color-theme-500 { + background-color: #FF5722 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-deep-orange .mdui-color-theme-600 { + background-color: #F4511E !important; + color: #ffffff !important; +} +.mdui-theme-primary-deep-orange .mdui-color-theme-700 { + background-color: #E64A19 !important; + color: #ffffff !important; +} +.mdui-theme-primary-deep-orange .mdui-color-theme-800 { + background-color: #D84315 !important; + color: #ffffff !important; +} +.mdui-theme-primary-deep-orange .mdui-color-theme-900 { + background-color: #BF360C !important; + color: #ffffff !important; +} +.mdui-theme-primary-deep-purple .mdui-color-theme { + background-color: #673AB7 !important; + color: #ffffff !important; +} +.mdui-theme-primary-deep-purple .mdui-color-theme-50 { + background-color: #EDE7F6 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-deep-purple .mdui-color-theme-100 { + background-color: #D1C4E9 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-deep-purple .mdui-color-theme-200 { + background-color: #B39DDB !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-deep-purple .mdui-color-theme-300 { + background-color: #9575CD !important; + color: #ffffff !important; +} +.mdui-theme-primary-deep-purple .mdui-color-theme-400 { + background-color: #7E57C2 !important; + color: #ffffff !important; +} +.mdui-theme-primary-deep-purple .mdui-color-theme-500 { + background-color: #673AB7 !important; + color: #ffffff !important; +} +.mdui-theme-primary-deep-purple .mdui-color-theme-600 { + background-color: #5E35B1 !important; + color: #ffffff !important; +} +.mdui-theme-primary-deep-purple .mdui-color-theme-700 { + background-color: #512DA8 !important; + color: #ffffff !important; +} +.mdui-theme-primary-deep-purple .mdui-color-theme-800 { + background-color: #4527A0 !important; + color: #ffffff !important; +} +.mdui-theme-primary-deep-purple .mdui-color-theme-900 { + background-color: #311B92 !important; + color: #ffffff !important; +} +.mdui-theme-primary-green .mdui-color-theme { + background-color: #4CAF50 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-green .mdui-color-theme-50 { + background-color: #E8F5E9 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-green .mdui-color-theme-100 { + background-color: #C8E6C9 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-green .mdui-color-theme-200 { + background-color: #A5D6A7 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-green .mdui-color-theme-300 { + background-color: #81C784 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-green .mdui-color-theme-400 { + background-color: #66BB6A !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-green .mdui-color-theme-500 { + background-color: #4CAF50 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-green .mdui-color-theme-600 { + background-color: #43A047 !important; + color: #ffffff !important; +} +.mdui-theme-primary-green .mdui-color-theme-700 { + background-color: #388E3C !important; + color: #ffffff !important; +} +.mdui-theme-primary-green .mdui-color-theme-800 { + background-color: #2E7D32 !important; + color: #ffffff !important; +} +.mdui-theme-primary-green .mdui-color-theme-900 { + background-color: #1B5E20 !important; + color: #ffffff !important; +} +.mdui-theme-primary-grey .mdui-color-theme { + background-color: #9E9E9E !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-grey .mdui-color-theme-50 { + background-color: #FAFAFA !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-grey .mdui-color-theme-100 { + background-color: #F5F5F5 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-grey .mdui-color-theme-200 { + background-color: #EEEEEE !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-grey .mdui-color-theme-300 { + background-color: #E0E0E0 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-grey .mdui-color-theme-400 { + background-color: #BDBDBD !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-grey .mdui-color-theme-500 { + background-color: #9E9E9E !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-grey .mdui-color-theme-600 { + background-color: #757575 !important; + color: #ffffff !important; +} +.mdui-theme-primary-grey .mdui-color-theme-700 { + background-color: #616161 !important; + color: #ffffff !important; +} +.mdui-theme-primary-grey .mdui-color-theme-800 { + background-color: #424242 !important; + color: #ffffff !important; +} +.mdui-theme-primary-grey .mdui-color-theme-900 { + background-color: #212121 !important; + color: #ffffff !important; +} +.mdui-theme-primary-indigo .mdui-color-theme { + background-color: #3F51B5 !important; + color: #ffffff !important; +} +.mdui-theme-primary-indigo .mdui-color-theme-50 { + background-color: #E8EAF6 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-indigo .mdui-color-theme-100 { + background-color: #C5CAE9 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-indigo .mdui-color-theme-200 { + background-color: #9FA8DA !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-indigo .mdui-color-theme-300 { + background-color: #7986CB !important; + color: #ffffff !important; +} +.mdui-theme-primary-indigo .mdui-color-theme-400 { + background-color: #5C6BC0 !important; + color: #ffffff !important; +} +.mdui-theme-primary-indigo .mdui-color-theme-500 { + background-color: #3F51B5 !important; + color: #ffffff !important; +} +.mdui-theme-primary-indigo .mdui-color-theme-600 { + background-color: #3949AB !important; + color: #ffffff !important; +} +.mdui-theme-primary-indigo .mdui-color-theme-700 { + background-color: #303F9F !important; + color: #ffffff !important; +} +.mdui-theme-primary-indigo .mdui-color-theme-800 { + background-color: #283593 !important; + color: #ffffff !important; +} +.mdui-theme-primary-indigo .mdui-color-theme-900 { + background-color: #1A237E !important; + color: #ffffff !important; +} +.mdui-theme-primary-light-blue .mdui-color-theme { + background-color: #03A9F4 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-light-blue .mdui-color-theme-50 { + background-color: #E1F5FE !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-light-blue .mdui-color-theme-100 { + background-color: #B3E5FC !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-light-blue .mdui-color-theme-200 { + background-color: #81D4FA !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-light-blue .mdui-color-theme-300 { + background-color: #4FC3F7 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-light-blue .mdui-color-theme-400 { + background-color: #29B6F6 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-light-blue .mdui-color-theme-500 { + background-color: #03A9F4 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-light-blue .mdui-color-theme-600 { + background-color: #039BE5 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-light-blue .mdui-color-theme-700 { + background-color: #0288D1 !important; + color: #ffffff !important; +} +.mdui-theme-primary-light-blue .mdui-color-theme-800 { + background-color: #0277BD !important; + color: #ffffff !important; +} +.mdui-theme-primary-light-blue .mdui-color-theme-900 { + background-color: #01579B !important; + color: #ffffff !important; +} +.mdui-theme-primary-light-green .mdui-color-theme { + background-color: #8BC34A !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-light-green .mdui-color-theme-50 { + background-color: #F1F8E9 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-light-green .mdui-color-theme-100 { + background-color: #DCEDC8 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-light-green .mdui-color-theme-200 { + background-color: #C5E1A5 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-light-green .mdui-color-theme-300 { + background-color: #AED581 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-light-green .mdui-color-theme-400 { + background-color: #9CCC65 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-light-green .mdui-color-theme-500 { + background-color: #8BC34A !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-light-green .mdui-color-theme-600 { + background-color: #7CB342 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-light-green .mdui-color-theme-700 { + background-color: #689F38 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-light-green .mdui-color-theme-800 { + background-color: #558B2F !important; + color: #ffffff !important; +} +.mdui-theme-primary-light-green .mdui-color-theme-900 { + background-color: #33691E !important; + color: #ffffff !important; +} +.mdui-theme-primary-lime .mdui-color-theme { + background-color: #CDDC39 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-lime .mdui-color-theme-50 { + background-color: #F9FBE7 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-lime .mdui-color-theme-100 { + background-color: #F0F4C3 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-lime .mdui-color-theme-200 { + background-color: #E6EE9C !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-lime .mdui-color-theme-300 { + background-color: #DCE775 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-lime .mdui-color-theme-400 { + background-color: #D4E157 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-lime .mdui-color-theme-500 { + background-color: #CDDC39 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-lime .mdui-color-theme-600 { + background-color: #C0CA33 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-lime .mdui-color-theme-700 { + background-color: #AFB42B !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-lime .mdui-color-theme-800 { + background-color: #9E9D24 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-lime .mdui-color-theme-900 { + background-color: #827717 !important; + color: #ffffff !important; +} +.mdui-theme-primary-orange .mdui-color-theme { + background-color: #FF9800 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-orange .mdui-color-theme-50 { + background-color: #FFF3E0 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-orange .mdui-color-theme-100 { + background-color: #FFE0B2 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-orange .mdui-color-theme-200 { + background-color: #FFCC80 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-orange .mdui-color-theme-300 { + background-color: #FFB74D !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-orange .mdui-color-theme-400 { + background-color: #FFA726 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-orange .mdui-color-theme-500 { + background-color: #FF9800 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-orange .mdui-color-theme-600 { + background-color: #FB8C00 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-orange .mdui-color-theme-700 { + background-color: #F57C00 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-orange .mdui-color-theme-800 { + background-color: #EF6C00 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-orange .mdui-color-theme-900 { + background-color: #E65100 !important; + color: #ffffff !important; +} +.mdui-theme-primary-pink .mdui-color-theme { + background-color: #E91E63 !important; + color: #ffffff !important; +} +.mdui-theme-primary-pink .mdui-color-theme-50 { + background-color: #FCE4EC !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-pink .mdui-color-theme-100 { + background-color: #F8BBD0 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-pink .mdui-color-theme-200 { + background-color: #F48FB1 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-pink .mdui-color-theme-300 { + background-color: #F06292 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-pink .mdui-color-theme-400 { + background-color: #EC407A !important; + color: #ffffff !important; +} +.mdui-theme-primary-pink .mdui-color-theme-500 { + background-color: #E91E63 !important; + color: #ffffff !important; +} +.mdui-theme-primary-pink .mdui-color-theme-600 { + background-color: #D81B60 !important; + color: #ffffff !important; +} +.mdui-theme-primary-pink .mdui-color-theme-700 { + background-color: #C2185B !important; + color: #ffffff !important; +} +.mdui-theme-primary-pink .mdui-color-theme-800 { + background-color: #AD1457 !important; + color: #ffffff !important; +} +.mdui-theme-primary-pink .mdui-color-theme-900 { + background-color: #880E4F !important; + color: #ffffff !important; +} +.mdui-theme-primary-purple .mdui-color-theme { + background-color: #9C27B0 !important; + color: #ffffff !important; +} +.mdui-theme-primary-purple .mdui-color-theme-50 { + background-color: #F3E5F5 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-purple .mdui-color-theme-100 { + background-color: #E1BEE7 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-purple .mdui-color-theme-200 { + background-color: #CE93D8 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-purple .mdui-color-theme-300 { + background-color: #BA68C8 !important; + color: #ffffff !important; +} +.mdui-theme-primary-purple .mdui-color-theme-400 { + background-color: #AB47BC !important; + color: #ffffff !important; +} +.mdui-theme-primary-purple .mdui-color-theme-500 { + background-color: #9C27B0 !important; + color: #ffffff !important; +} +.mdui-theme-primary-purple .mdui-color-theme-600 { + background-color: #8E24AA !important; + color: #ffffff !important; +} +.mdui-theme-primary-purple .mdui-color-theme-700 { + background-color: #7B1FA2 !important; + color: #ffffff !important; +} +.mdui-theme-primary-purple .mdui-color-theme-800 { + background-color: #6A1B9A !important; + color: #ffffff !important; +} +.mdui-theme-primary-purple .mdui-color-theme-900 { + background-color: #4A148C !important; + color: #ffffff !important; +} +.mdui-theme-primary-red .mdui-color-theme { + background-color: #F44336 !important; + color: #ffffff !important; +} +.mdui-theme-primary-red .mdui-color-theme-50 { + background-color: #FFEBEE !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-red .mdui-color-theme-100 { + background-color: #FFCDD2 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-red .mdui-color-theme-200 { + background-color: #EF9A9A !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-red .mdui-color-theme-300 { + background-color: #E57373 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-red .mdui-color-theme-400 { + background-color: #EF5350 !important; + color: #ffffff !important; +} +.mdui-theme-primary-red .mdui-color-theme-500 { + background-color: #F44336 !important; + color: #ffffff !important; +} +.mdui-theme-primary-red .mdui-color-theme-600 { + background-color: #E53935 !important; + color: #ffffff !important; +} +.mdui-theme-primary-red .mdui-color-theme-700 { + background-color: #D32F2F !important; + color: #ffffff !important; +} +.mdui-theme-primary-red .mdui-color-theme-800 { + background-color: #C62828 !important; + color: #ffffff !important; +} +.mdui-theme-primary-red .mdui-color-theme-900 { + background-color: #B71C1C !important; + color: #ffffff !important; +} +.mdui-theme-primary-teal .mdui-color-theme { + background-color: #009688 !important; + color: #ffffff !important; +} +.mdui-theme-primary-teal .mdui-color-theme-50 { + background-color: #E0F2F1 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-teal .mdui-color-theme-100 { + background-color: #B2DFDB !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-teal .mdui-color-theme-200 { + background-color: #80CBC4 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-teal .mdui-color-theme-300 { + background-color: #4DB6AC !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-teal .mdui-color-theme-400 { + background-color: #26A69A !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-teal .mdui-color-theme-500 { + background-color: #009688 !important; + color: #ffffff !important; +} +.mdui-theme-primary-teal .mdui-color-theme-600 { + background-color: #00897B !important; + color: #ffffff !important; +} +.mdui-theme-primary-teal .mdui-color-theme-700 { + background-color: #00796B !important; + color: #ffffff !important; +} +.mdui-theme-primary-teal .mdui-color-theme-800 { + background-color: #00695C !important; + color: #ffffff !important; +} +.mdui-theme-primary-teal .mdui-color-theme-900 { + background-color: #004D40 !important; + color: #ffffff !important; +} +.mdui-theme-primary-yellow .mdui-color-theme { + background-color: #FFEB3B !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-yellow .mdui-color-theme-50 { + background-color: #FFFDE7 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-yellow .mdui-color-theme-100 { + background-color: #FFF9C4 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-yellow .mdui-color-theme-200 { + background-color: #FFF59D !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-yellow .mdui-color-theme-300 { + background-color: #FFF176 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-yellow .mdui-color-theme-400 { + background-color: #FFEE58 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-yellow .mdui-color-theme-500 { + background-color: #FFEB3B !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-yellow .mdui-color-theme-600 { + background-color: #FDD835 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-yellow .mdui-color-theme-700 { + background-color: #FBC02D !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-yellow .mdui-color-theme-800 { + background-color: #F9A825 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-yellow .mdui-color-theme-900 { + background-color: #F57F17 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +/** + * .mdui-theme-accent-[color] .mdui-color-theme-accent + * .mdui-theme-accent-[color] .mdui-color-theme-[degree] + */ +.mdui-theme-accent-amber .mdui-color-theme-accent { + background-color: #FFD740 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-amber .mdui-color-theme-a100 { + background-color: #FFE57F !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-amber .mdui-color-theme-a200 { + background-color: #FFD740 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-amber .mdui-color-theme-a400 { + background-color: #FFC400 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-amber .mdui-color-theme-a700 { + background-color: #FFAB00 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-blue .mdui-color-theme-accent { + background-color: #448AFF !important; + color: #ffffff !important; +} +.mdui-theme-accent-blue .mdui-color-theme-a100 { + background-color: #82B1FF !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-blue .mdui-color-theme-a200 { + background-color: #448AFF !important; + color: #ffffff !important; +} +.mdui-theme-accent-blue .mdui-color-theme-a400 { + background-color: #2979FF !important; + color: #ffffff !important; +} +.mdui-theme-accent-blue .mdui-color-theme-a700 { + background-color: #2962FF !important; + color: #ffffff !important; +} +.mdui-theme-accent-cyan .mdui-color-theme-accent { + background-color: #18FFFF !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-cyan .mdui-color-theme-a100 { + background-color: #84FFFF !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-cyan .mdui-color-theme-a200 { + background-color: #18FFFF !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-cyan .mdui-color-theme-a400 { + background-color: #00E5FF !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-cyan .mdui-color-theme-a700 { + background-color: #00B8D4 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-deep-orange .mdui-color-theme-accent { + background-color: #FF6E40 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-deep-orange .mdui-color-theme-a100 { + background-color: #FF9E80 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-deep-orange .mdui-color-theme-a200 { + background-color: #FF6E40 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-deep-orange .mdui-color-theme-a400 { + background-color: #FF3D00 !important; + color: #ffffff !important; +} +.mdui-theme-accent-deep-orange .mdui-color-theme-a700 { + background-color: #DD2C00 !important; + color: #ffffff !important; +} +.mdui-theme-accent-deep-purple .mdui-color-theme-accent { + background-color: #7C4DFF !important; + color: #ffffff !important; +} +.mdui-theme-accent-deep-purple .mdui-color-theme-a100 { + background-color: #B388FF !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-deep-purple .mdui-color-theme-a200 { + background-color: #7C4DFF !important; + color: #ffffff !important; +} +.mdui-theme-accent-deep-purple .mdui-color-theme-a400 { + background-color: #651FFF !important; + color: #ffffff !important; +} +.mdui-theme-accent-deep-purple .mdui-color-theme-a700 { + background-color: #6200EA !important; + color: #ffffff !important; +} +.mdui-theme-accent-green .mdui-color-theme-accent { + background-color: #69F0AE !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-green .mdui-color-theme-a100 { + background-color: #B9F6CA !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-green .mdui-color-theme-a200 { + background-color: #69F0AE !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-green .mdui-color-theme-a400 { + background-color: #00E676 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-green .mdui-color-theme-a700 { + background-color: #00C853 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-indigo .mdui-color-theme-accent { + background-color: #536DFE !important; + color: #ffffff !important; +} +.mdui-theme-accent-indigo .mdui-color-theme-a100 { + background-color: #8C9EFF !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-indigo .mdui-color-theme-a200 { + background-color: #536DFE !important; + color: #ffffff !important; +} +.mdui-theme-accent-indigo .mdui-color-theme-a400 { + background-color: #3D5AFE !important; + color: #ffffff !important; +} +.mdui-theme-accent-indigo .mdui-color-theme-a700 { + background-color: #304FFE !important; + color: #ffffff !important; +} +.mdui-theme-accent-light-blue .mdui-color-theme-accent { + background-color: #40C4FF !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-light-blue .mdui-color-theme-a100 { + background-color: #80D8FF !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-light-blue .mdui-color-theme-a200 { + background-color: #40C4FF !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-light-blue .mdui-color-theme-a400 { + background-color: #00B0FF !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-light-blue .mdui-color-theme-a700 { + background-color: #0091EA !important; + color: #ffffff !important; +} +.mdui-theme-accent-light-green .mdui-color-theme-accent { + background-color: #B2FF59 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-light-green .mdui-color-theme-a100 { + background-color: #CCFF90 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-light-green .mdui-color-theme-a200 { + background-color: #B2FF59 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-light-green .mdui-color-theme-a400 { + background-color: #76FF03 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-light-green .mdui-color-theme-a700 { + background-color: #64DD17 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-lime .mdui-color-theme-accent { + background-color: #EEFF41 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-lime .mdui-color-theme-a100 { + background-color: #F4FF81 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-lime .mdui-color-theme-a200 { + background-color: #EEFF41 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-lime .mdui-color-theme-a400 { + background-color: #C6FF00 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-lime .mdui-color-theme-a700 { + background-color: #AEEA00 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-orange .mdui-color-theme-accent { + background-color: #FFAB40 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-orange .mdui-color-theme-a100 { + background-color: #FFD180 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-orange .mdui-color-theme-a200 { + background-color: #FFAB40 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-orange .mdui-color-theme-a400 { + background-color: #FF9100 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-orange .mdui-color-theme-a700 { + background-color: #FF6D00 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-pink .mdui-color-theme-accent { + background-color: #FF4081 !important; + color: #ffffff !important; +} +.mdui-theme-accent-pink .mdui-color-theme-a100 { + background-color: #FF80AB !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-pink .mdui-color-theme-a200 { + background-color: #FF4081 !important; + color: #ffffff !important; +} +.mdui-theme-accent-pink .mdui-color-theme-a400 { + background-color: #F50057 !important; + color: #ffffff !important; +} +.mdui-theme-accent-pink .mdui-color-theme-a700 { + background-color: #C51162 !important; + color: #ffffff !important; +} +.mdui-theme-accent-purple .mdui-color-theme-accent { + background-color: #E040FB !important; + color: #ffffff !important; +} +.mdui-theme-accent-purple .mdui-color-theme-a100 { + background-color: #EA80FC !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-purple .mdui-color-theme-a200 { + background-color: #E040FB !important; + color: #ffffff !important; +} +.mdui-theme-accent-purple .mdui-color-theme-a400 { + background-color: #D500F9 !important; + color: #ffffff !important; +} +.mdui-theme-accent-purple .mdui-color-theme-a700 { + background-color: #AA00FF !important; + color: #ffffff !important; +} +.mdui-theme-accent-red .mdui-color-theme-accent { + background-color: #FF5252 !important; + color: #ffffff !important; +} +.mdui-theme-accent-red .mdui-color-theme-a100 { + background-color: #FF8A80 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-red .mdui-color-theme-a200 { + background-color: #FF5252 !important; + color: #ffffff !important; +} +.mdui-theme-accent-red .mdui-color-theme-a400 { + background-color: #FF1744 !important; + color: #ffffff !important; +} +.mdui-theme-accent-red .mdui-color-theme-a700 { + background-color: #D50000 !important; + color: #ffffff !important; +} +.mdui-theme-accent-teal .mdui-color-theme-accent { + background-color: #64FFDA !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-teal .mdui-color-theme-a100 { + background-color: #A7FFEB !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-teal .mdui-color-theme-a200 { + background-color: #64FFDA !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-teal .mdui-color-theme-a400 { + background-color: #1DE9B6 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-teal .mdui-color-theme-a700 { + background-color: #00BFA5 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-yellow .mdui-color-theme-accent { + background-color: #FFFF00 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-yellow .mdui-color-theme-a100 { + background-color: #FFFF8D !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-yellow .mdui-color-theme-a200 { + background-color: #FFFF00 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-yellow .mdui-color-theme-a400 { + background-color: #FFEA00 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-yellow .mdui-color-theme-a700 { + background-color: #FFD600 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +/** + * .mdui-color-[color] + * .mdui-color-[color]-[degree] + */ +.mdui-color-amber { + background-color: #FFC107 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-amber-50 { + background-color: #FFF8E1 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-amber-100 { + background-color: #FFECB3 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-amber-200 { + background-color: #FFE082 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-amber-300 { + background-color: #FFD54F !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-amber-400 { + background-color: #FFCA28 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-amber-500 { + background-color: #FFC107 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-amber-600 { + background-color: #FFB300 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-amber-700 { + background-color: #FFA000 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-amber-800 { + background-color: #FF8F00 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-amber-900 { + background-color: #FF6F00 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-blue { + background-color: #2196F3 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-blue-50 { + background-color: #E3F2FD !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-blue-100 { + background-color: #BBDEFB !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-blue-200 { + background-color: #90CAF9 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-blue-300 { + background-color: #64B5F6 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-blue-400 { + background-color: #42A5F5 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-blue-500 { + background-color: #2196F3 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-blue-600 { + background-color: #1E88E5 !important; + color: #ffffff !important; +} +.mdui-color-blue-700 { + background-color: #1976D2 !important; + color: #ffffff !important; +} +.mdui-color-blue-800 { + background-color: #1565C0 !important; + color: #ffffff !important; +} +.mdui-color-blue-900 { + background-color: #0D47A1 !important; + color: #ffffff !important; +} +.mdui-color-blue-grey { + background-color: #607D8B !important; + color: #ffffff !important; +} +.mdui-color-blue-grey-50 { + background-color: #ECEFF1 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-blue-grey-100 { + background-color: #CFD8DC !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-blue-grey-200 { + background-color: #B0BEC5 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-blue-grey-300 { + background-color: #90A4AE !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-blue-grey-400 { + background-color: #78909C !important; + color: #ffffff !important; +} +.mdui-color-blue-grey-500 { + background-color: #607D8B !important; + color: #ffffff !important; +} +.mdui-color-blue-grey-600 { + background-color: #546E7A !important; + color: #ffffff !important; +} +.mdui-color-blue-grey-700 { + background-color: #455A64 !important; + color: #ffffff !important; +} +.mdui-color-blue-grey-800 { + background-color: #37474F !important; + color: #ffffff !important; +} +.mdui-color-blue-grey-900 { + background-color: #263238 !important; + color: #ffffff !important; +} +.mdui-color-brown { + background-color: #795548 !important; + color: #ffffff !important; +} +.mdui-color-brown-50 { + background-color: #EFEBE9 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-brown-100 { + background-color: #D7CCC8 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-brown-200 { + background-color: #BCAAA4 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-brown-300 { + background-color: #A1887F !important; + color: #ffffff !important; +} +.mdui-color-brown-400 { + background-color: #8D6E63 !important; + color: #ffffff !important; +} +.mdui-color-brown-500 { + background-color: #795548 !important; + color: #ffffff !important; +} +.mdui-color-brown-600 { + background-color: #6D4C41 !important; + color: #ffffff !important; +} +.mdui-color-brown-700 { + background-color: #5D4037 !important; + color: #ffffff !important; +} +.mdui-color-brown-800 { + background-color: #4E342E !important; + color: #ffffff !important; +} +.mdui-color-brown-900 { + background-color: #3E2723 !important; + color: #ffffff !important; +} +.mdui-color-cyan { + background-color: #00BCD4 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-cyan-50 { + background-color: #E0F7FA !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-cyan-100 { + background-color: #B2EBF2 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-cyan-200 { + background-color: #80DEEA !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-cyan-300 { + background-color: #4DD0E1 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-cyan-400 { + background-color: #26C6DA !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-cyan-500 { + background-color: #00BCD4 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-cyan-600 { + background-color: #00ACC1 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-cyan-700 { + background-color: #0097A7 !important; + color: #ffffff !important; +} +.mdui-color-cyan-800 { + background-color: #00838F !important; + color: #ffffff !important; +} +.mdui-color-cyan-900 { + background-color: #006064 !important; + color: #ffffff !important; +} +.mdui-color-deep-orange { + background-color: #FF5722 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-deep-orange-50 { + background-color: #FBE9E7 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-deep-orange-100 { + background-color: #FFCCBC !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-deep-orange-200 { + background-color: #FFAB91 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-deep-orange-300 { + background-color: #FF8A65 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-deep-orange-400 { + background-color: #FF7043 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-deep-orange-500 { + background-color: #FF5722 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-deep-orange-600 { + background-color: #F4511E !important; + color: #ffffff !important; +} +.mdui-color-deep-orange-700 { + background-color: #E64A19 !important; + color: #ffffff !important; +} +.mdui-color-deep-orange-800 { + background-color: #D84315 !important; + color: #ffffff !important; +} +.mdui-color-deep-orange-900 { + background-color: #BF360C !important; + color: #ffffff !important; +} +.mdui-color-deep-purple { + background-color: #673AB7 !important; + color: #ffffff !important; +} +.mdui-color-deep-purple-50 { + background-color: #EDE7F6 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-deep-purple-100 { + background-color: #D1C4E9 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-deep-purple-200 { + background-color: #B39DDB !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-deep-purple-300 { + background-color: #9575CD !important; + color: #ffffff !important; +} +.mdui-color-deep-purple-400 { + background-color: #7E57C2 !important; + color: #ffffff !important; +} +.mdui-color-deep-purple-500 { + background-color: #673AB7 !important; + color: #ffffff !important; +} +.mdui-color-deep-purple-600 { + background-color: #5E35B1 !important; + color: #ffffff !important; +} +.mdui-color-deep-purple-700 { + background-color: #512DA8 !important; + color: #ffffff !important; +} +.mdui-color-deep-purple-800 { + background-color: #4527A0 !important; + color: #ffffff !important; +} +.mdui-color-deep-purple-900 { + background-color: #311B92 !important; + color: #ffffff !important; +} +.mdui-color-green { + background-color: #4CAF50 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-green-50 { + background-color: #E8F5E9 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-green-100 { + background-color: #C8E6C9 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-green-200 { + background-color: #A5D6A7 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-green-300 { + background-color: #81C784 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-green-400 { + background-color: #66BB6A !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-green-500 { + background-color: #4CAF50 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-green-600 { + background-color: #43A047 !important; + color: #ffffff !important; +} +.mdui-color-green-700 { + background-color: #388E3C !important; + color: #ffffff !important; +} +.mdui-color-green-800 { + background-color: #2E7D32 !important; + color: #ffffff !important; +} +.mdui-color-green-900 { + background-color: #1B5E20 !important; + color: #ffffff !important; +} +.mdui-color-grey { + background-color: #9E9E9E !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-grey-50 { + background-color: #FAFAFA !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-grey-100 { + background-color: #F5F5F5 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-grey-200 { + background-color: #EEEEEE !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-grey-300 { + background-color: #E0E0E0 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-grey-400 { + background-color: #BDBDBD !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-grey-500 { + background-color: #9E9E9E !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-grey-600 { + background-color: #757575 !important; + color: #ffffff !important; +} +.mdui-color-grey-700 { + background-color: #616161 !important; + color: #ffffff !important; +} +.mdui-color-grey-800 { + background-color: #424242 !important; + color: #ffffff !important; +} +.mdui-color-grey-900 { + background-color: #212121 !important; + color: #ffffff !important; +} +.mdui-color-indigo { + background-color: #3F51B5 !important; + color: #ffffff !important; +} +.mdui-color-indigo-50 { + background-color: #E8EAF6 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-indigo-100 { + background-color: #C5CAE9 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-indigo-200 { + background-color: #9FA8DA !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-indigo-300 { + background-color: #7986CB !important; + color: #ffffff !important; +} +.mdui-color-indigo-400 { + background-color: #5C6BC0 !important; + color: #ffffff !important; +} +.mdui-color-indigo-500 { + background-color: #3F51B5 !important; + color: #ffffff !important; +} +.mdui-color-indigo-600 { + background-color: #3949AB !important; + color: #ffffff !important; +} +.mdui-color-indigo-700 { + background-color: #303F9F !important; + color: #ffffff !important; +} +.mdui-color-indigo-800 { + background-color: #283593 !important; + color: #ffffff !important; +} +.mdui-color-indigo-900 { + background-color: #1A237E !important; + color: #ffffff !important; +} +.mdui-color-light-blue { + background-color: #03A9F4 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-light-blue-50 { + background-color: #E1F5FE !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-light-blue-100 { + background-color: #B3E5FC !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-light-blue-200 { + background-color: #81D4FA !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-light-blue-300 { + background-color: #4FC3F7 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-light-blue-400 { + background-color: #29B6F6 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-light-blue-500 { + background-color: #03A9F4 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-light-blue-600 { + background-color: #039BE5 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-light-blue-700 { + background-color: #0288D1 !important; + color: #ffffff !important; +} +.mdui-color-light-blue-800 { + background-color: #0277BD !important; + color: #ffffff !important; +} +.mdui-color-light-blue-900 { + background-color: #01579B !important; + color: #ffffff !important; +} +.mdui-color-light-green { + background-color: #8BC34A !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-light-green-50 { + background-color: #F1F8E9 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-light-green-100 { + background-color: #DCEDC8 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-light-green-200 { + background-color: #C5E1A5 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-light-green-300 { + background-color: #AED581 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-light-green-400 { + background-color: #9CCC65 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-light-green-500 { + background-color: #8BC34A !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-light-green-600 { + background-color: #7CB342 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-light-green-700 { + background-color: #689F38 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-light-green-800 { + background-color: #558B2F !important; + color: #ffffff !important; +} +.mdui-color-light-green-900 { + background-color: #33691E !important; + color: #ffffff !important; +} +.mdui-color-lime { + background-color: #CDDC39 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-lime-50 { + background-color: #F9FBE7 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-lime-100 { + background-color: #F0F4C3 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-lime-200 { + background-color: #E6EE9C !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-lime-300 { + background-color: #DCE775 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-lime-400 { + background-color: #D4E157 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-lime-500 { + background-color: #CDDC39 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-lime-600 { + background-color: #C0CA33 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-lime-700 { + background-color: #AFB42B !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-lime-800 { + background-color: #9E9D24 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-lime-900 { + background-color: #827717 !important; + color: #ffffff !important; +} +.mdui-color-orange { + background-color: #FF9800 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-orange-50 { + background-color: #FFF3E0 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-orange-100 { + background-color: #FFE0B2 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-orange-200 { + background-color: #FFCC80 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-orange-300 { + background-color: #FFB74D !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-orange-400 { + background-color: #FFA726 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-orange-500 { + background-color: #FF9800 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-orange-600 { + background-color: #FB8C00 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-orange-700 { + background-color: #F57C00 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-orange-800 { + background-color: #EF6C00 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-orange-900 { + background-color: #E65100 !important; + color: #ffffff !important; +} +.mdui-color-pink { + background-color: #E91E63 !important; + color: #ffffff !important; +} +.mdui-color-pink-50 { + background-color: #FCE4EC !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-pink-100 { + background-color: #F8BBD0 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-pink-200 { + background-color: #F48FB1 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-pink-300 { + background-color: #F06292 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-pink-400 { + background-color: #EC407A !important; + color: #ffffff !important; +} +.mdui-color-pink-500 { + background-color: #E91E63 !important; + color: #ffffff !important; +} +.mdui-color-pink-600 { + background-color: #D81B60 !important; + color: #ffffff !important; +} +.mdui-color-pink-700 { + background-color: #C2185B !important; + color: #ffffff !important; +} +.mdui-color-pink-800 { + background-color: #AD1457 !important; + color: #ffffff !important; +} +.mdui-color-pink-900 { + background-color: #880E4F !important; + color: #ffffff !important; +} +.mdui-color-purple { + background-color: #9C27B0 !important; + color: #ffffff !important; +} +.mdui-color-purple-50 { + background-color: #F3E5F5 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-purple-100 { + background-color: #E1BEE7 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-purple-200 { + background-color: #CE93D8 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-purple-300 { + background-color: #BA68C8 !important; + color: #ffffff !important; +} +.mdui-color-purple-400 { + background-color: #AB47BC !important; + color: #ffffff !important; +} +.mdui-color-purple-500 { + background-color: #9C27B0 !important; + color: #ffffff !important; +} +.mdui-color-purple-600 { + background-color: #8E24AA !important; + color: #ffffff !important; +} +.mdui-color-purple-700 { + background-color: #7B1FA2 !important; + color: #ffffff !important; +} +.mdui-color-purple-800 { + background-color: #6A1B9A !important; + color: #ffffff !important; +} +.mdui-color-purple-900 { + background-color: #4A148C !important; + color: #ffffff !important; +} +.mdui-color-red { + background-color: #F44336 !important; + color: #ffffff !important; +} +.mdui-color-red-50 { + background-color: #FFEBEE !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-red-100 { + background-color: #FFCDD2 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-red-200 { + background-color: #EF9A9A !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-red-300 { + background-color: #E57373 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-red-400 { + background-color: #EF5350 !important; + color: #ffffff !important; +} +.mdui-color-red-500 { + background-color: #F44336 !important; + color: #ffffff !important; +} +.mdui-color-red-600 { + background-color: #E53935 !important; + color: #ffffff !important; +} +.mdui-color-red-700 { + background-color: #D32F2F !important; + color: #ffffff !important; +} +.mdui-color-red-800 { + background-color: #C62828 !important; + color: #ffffff !important; +} +.mdui-color-red-900 { + background-color: #B71C1C !important; + color: #ffffff !important; +} +.mdui-color-teal { + background-color: #009688 !important; + color: #ffffff !important; +} +.mdui-color-teal-50 { + background-color: #E0F2F1 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-teal-100 { + background-color: #B2DFDB !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-teal-200 { + background-color: #80CBC4 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-teal-300 { + background-color: #4DB6AC !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-teal-400 { + background-color: #26A69A !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-teal-500 { + background-color: #009688 !important; + color: #ffffff !important; +} +.mdui-color-teal-600 { + background-color: #00897B !important; + color: #ffffff !important; +} +.mdui-color-teal-700 { + background-color: #00796B !important; + color: #ffffff !important; +} +.mdui-color-teal-800 { + background-color: #00695C !important; + color: #ffffff !important; +} +.mdui-color-teal-900 { + background-color: #004D40 !important; + color: #ffffff !important; +} +.mdui-color-yellow { + background-color: #FFEB3B !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-yellow-50 { + background-color: #FFFDE7 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-yellow-100 { + background-color: #FFF9C4 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-yellow-200 { + background-color: #FFF59D !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-yellow-300 { + background-color: #FFF176 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-yellow-400 { + background-color: #FFEE58 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-yellow-500 { + background-color: #FFEB3B !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-yellow-600 { + background-color: #FDD835 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-yellow-700 { + background-color: #FBC02D !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-yellow-800 { + background-color: #F9A825 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-yellow-900 { + background-color: #F57F17 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +/** + * .mdui-color-[color]-accent + * .mdui-color-[color]-[degree] + */ +.mdui-color-amber-accent { + background-color: #FFD740 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-amber-a100 { + background-color: #FFE57F !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-amber-a200 { + background-color: #FFD740 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-amber-a400 { + background-color: #FFC400 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-amber-a700 { + background-color: #FFAB00 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-blue-accent { + background-color: #448AFF !important; + color: #ffffff !important; +} +.mdui-color-blue-a100 { + background-color: #82B1FF !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-blue-a200 { + background-color: #448AFF !important; + color: #ffffff !important; +} +.mdui-color-blue-a400 { + background-color: #2979FF !important; + color: #ffffff !important; +} +.mdui-color-blue-a700 { + background-color: #2962FF !important; + color: #ffffff !important; +} +.mdui-color-cyan-accent { + background-color: #18FFFF !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-cyan-a100 { + background-color: #84FFFF !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-cyan-a200 { + background-color: #18FFFF !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-cyan-a400 { + background-color: #00E5FF !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-cyan-a700 { + background-color: #00B8D4 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-deep-orange-accent { + background-color: #FF6E40 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-deep-orange-a100 { + background-color: #FF9E80 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-deep-orange-a200 { + background-color: #FF6E40 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-deep-orange-a400 { + background-color: #FF3D00 !important; + color: #ffffff !important; +} +.mdui-color-deep-orange-a700 { + background-color: #DD2C00 !important; + color: #ffffff !important; +} +.mdui-color-deep-purple-accent { + background-color: #7C4DFF !important; + color: #ffffff !important; +} +.mdui-color-deep-purple-a100 { + background-color: #B388FF !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-deep-purple-a200 { + background-color: #7C4DFF !important; + color: #ffffff !important; +} +.mdui-color-deep-purple-a400 { + background-color: #651FFF !important; + color: #ffffff !important; +} +.mdui-color-deep-purple-a700 { + background-color: #6200EA !important; + color: #ffffff !important; +} +.mdui-color-green-accent { + background-color: #69F0AE !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-green-a100 { + background-color: #B9F6CA !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-green-a200 { + background-color: #69F0AE !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-green-a400 { + background-color: #00E676 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-green-a700 { + background-color: #00C853 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-indigo-accent { + background-color: #536DFE !important; + color: #ffffff !important; +} +.mdui-color-indigo-a100 { + background-color: #8C9EFF !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-indigo-a200 { + background-color: #536DFE !important; + color: #ffffff !important; +} +.mdui-color-indigo-a400 { + background-color: #3D5AFE !important; + color: #ffffff !important; +} +.mdui-color-indigo-a700 { + background-color: #304FFE !important; + color: #ffffff !important; +} +.mdui-color-light-blue-accent { + background-color: #40C4FF !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-light-blue-a100 { + background-color: #80D8FF !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-light-blue-a200 { + background-color: #40C4FF !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-light-blue-a400 { + background-color: #00B0FF !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-light-blue-a700 { + background-color: #0091EA !important; + color: #ffffff !important; +} +.mdui-color-light-green-accent { + background-color: #B2FF59 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-light-green-a100 { + background-color: #CCFF90 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-light-green-a200 { + background-color: #B2FF59 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-light-green-a400 { + background-color: #76FF03 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-light-green-a700 { + background-color: #64DD17 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-lime-accent { + background-color: #EEFF41 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-lime-a100 { + background-color: #F4FF81 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-lime-a200 { + background-color: #EEFF41 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-lime-a400 { + background-color: #C6FF00 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-lime-a700 { + background-color: #AEEA00 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-orange-accent { + background-color: #FFAB40 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-orange-a100 { + background-color: #FFD180 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-orange-a200 { + background-color: #FFAB40 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-orange-a400 { + background-color: #FF9100 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-orange-a700 { + background-color: #FF6D00 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-pink-accent { + background-color: #FF4081 !important; + color: #ffffff !important; +} +.mdui-color-pink-a100 { + background-color: #FF80AB !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-pink-a200 { + background-color: #FF4081 !important; + color: #ffffff !important; +} +.mdui-color-pink-a400 { + background-color: #F50057 !important; + color: #ffffff !important; +} +.mdui-color-pink-a700 { + background-color: #C51162 !important; + color: #ffffff !important; +} +.mdui-color-purple-accent { + background-color: #E040FB !important; + color: #ffffff !important; +} +.mdui-color-purple-a100 { + background-color: #EA80FC !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-purple-a200 { + background-color: #E040FB !important; + color: #ffffff !important; +} +.mdui-color-purple-a400 { + background-color: #D500F9 !important; + color: #ffffff !important; +} +.mdui-color-purple-a700 { + background-color: #AA00FF !important; + color: #ffffff !important; +} +.mdui-color-red-accent { + background-color: #FF5252 !important; + color: #ffffff !important; +} +.mdui-color-red-a100 { + background-color: #FF8A80 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-red-a200 { + background-color: #FF5252 !important; + color: #ffffff !important; +} +.mdui-color-red-a400 { + background-color: #FF1744 !important; + color: #ffffff !important; +} +.mdui-color-red-a700 { + background-color: #D50000 !important; + color: #ffffff !important; +} +.mdui-color-teal-accent { + background-color: #64FFDA !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-teal-a100 { + background-color: #A7FFEB !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-teal-a200 { + background-color: #64FFDA !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-teal-a400 { + background-color: #1DE9B6 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-teal-a700 { + background-color: #00BFA5 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-yellow-accent { + background-color: #FFFF00 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-yellow-a100 { + background-color: #FFFF8D !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-yellow-a200 { + background-color: #FFFF00 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-yellow-a400 { + background-color: #FFEA00 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-yellow-a700 { + background-color: #FFD600 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +/** + * .mdui-color-black + * .mdui-color-white + * .mdui-color-transparent + */ +.mdui-color-black { + color: #ffffff !important; + background-color: #000000 !important; +} +.mdui-color-white { + color: rgba(0, 0, 0, 0.87) !important; + background-color: #FFFFFF !important; +} +.mdui-color-transparent { + background-color: transparent !important; +} +/** + * .mdui-theme-primary-[color] .mdui-text-color-theme + * .mdui-theme-primary-[color] .mdui-text-color-theme-[degree] + */ +.mdui-theme-primary-amber .mdui-text-color-theme { + color: #FFC107 !important; +} +.mdui-theme-primary-amber .mdui-text-color-theme-50 { + color: #FFF8E1 !important; +} +.mdui-theme-primary-amber .mdui-text-color-theme-100 { + color: #FFECB3 !important; +} +.mdui-theme-primary-amber .mdui-text-color-theme-200 { + color: #FFE082 !important; +} +.mdui-theme-primary-amber .mdui-text-color-theme-300 { + color: #FFD54F !important; +} +.mdui-theme-primary-amber .mdui-text-color-theme-400 { + color: #FFCA28 !important; +} +.mdui-theme-primary-amber .mdui-text-color-theme-500 { + color: #FFC107 !important; +} +.mdui-theme-primary-amber .mdui-text-color-theme-600 { + color: #FFB300 !important; +} +.mdui-theme-primary-amber .mdui-text-color-theme-700 { + color: #FFA000 !important; +} +.mdui-theme-primary-amber .mdui-text-color-theme-800 { + color: #FF8F00 !important; +} +.mdui-theme-primary-amber .mdui-text-color-theme-900 { + color: #FF6F00 !important; +} +.mdui-theme-primary-blue .mdui-text-color-theme { + color: #2196F3 !important; +} +.mdui-theme-primary-blue .mdui-text-color-theme-50 { + color: #E3F2FD !important; +} +.mdui-theme-primary-blue .mdui-text-color-theme-100 { + color: #BBDEFB !important; +} +.mdui-theme-primary-blue .mdui-text-color-theme-200 { + color: #90CAF9 !important; +} +.mdui-theme-primary-blue .mdui-text-color-theme-300 { + color: #64B5F6 !important; +} +.mdui-theme-primary-blue .mdui-text-color-theme-400 { + color: #42A5F5 !important; +} +.mdui-theme-primary-blue .mdui-text-color-theme-500 { + color: #2196F3 !important; +} +.mdui-theme-primary-blue .mdui-text-color-theme-600 { + color: #1E88E5 !important; +} +.mdui-theme-primary-blue .mdui-text-color-theme-700 { + color: #1976D2 !important; +} +.mdui-theme-primary-blue .mdui-text-color-theme-800 { + color: #1565C0 !important; +} +.mdui-theme-primary-blue .mdui-text-color-theme-900 { + color: #0D47A1 !important; +} +.mdui-theme-primary-blue-grey .mdui-text-color-theme { + color: #607D8B !important; +} +.mdui-theme-primary-blue-grey .mdui-text-color-theme-50 { + color: #ECEFF1 !important; +} +.mdui-theme-primary-blue-grey .mdui-text-color-theme-100 { + color: #CFD8DC !important; +} +.mdui-theme-primary-blue-grey .mdui-text-color-theme-200 { + color: #B0BEC5 !important; +} +.mdui-theme-primary-blue-grey .mdui-text-color-theme-300 { + color: #90A4AE !important; +} +.mdui-theme-primary-blue-grey .mdui-text-color-theme-400 { + color: #78909C !important; +} +.mdui-theme-primary-blue-grey .mdui-text-color-theme-500 { + color: #607D8B !important; +} +.mdui-theme-primary-blue-grey .mdui-text-color-theme-600 { + color: #546E7A !important; +} +.mdui-theme-primary-blue-grey .mdui-text-color-theme-700 { + color: #455A64 !important; +} +.mdui-theme-primary-blue-grey .mdui-text-color-theme-800 { + color: #37474F !important; +} +.mdui-theme-primary-blue-grey .mdui-text-color-theme-900 { + color: #263238 !important; +} +.mdui-theme-primary-brown .mdui-text-color-theme { + color: #795548 !important; +} +.mdui-theme-primary-brown .mdui-text-color-theme-50 { + color: #EFEBE9 !important; +} +.mdui-theme-primary-brown .mdui-text-color-theme-100 { + color: #D7CCC8 !important; +} +.mdui-theme-primary-brown .mdui-text-color-theme-200 { + color: #BCAAA4 !important; +} +.mdui-theme-primary-brown .mdui-text-color-theme-300 { + color: #A1887F !important; +} +.mdui-theme-primary-brown .mdui-text-color-theme-400 { + color: #8D6E63 !important; +} +.mdui-theme-primary-brown .mdui-text-color-theme-500 { + color: #795548 !important; +} +.mdui-theme-primary-brown .mdui-text-color-theme-600 { + color: #6D4C41 !important; +} +.mdui-theme-primary-brown .mdui-text-color-theme-700 { + color: #5D4037 !important; +} +.mdui-theme-primary-brown .mdui-text-color-theme-800 { + color: #4E342E !important; +} +.mdui-theme-primary-brown .mdui-text-color-theme-900 { + color: #3E2723 !important; +} +.mdui-theme-primary-cyan .mdui-text-color-theme { + color: #00BCD4 !important; +} +.mdui-theme-primary-cyan .mdui-text-color-theme-50 { + color: #E0F7FA !important; +} +.mdui-theme-primary-cyan .mdui-text-color-theme-100 { + color: #B2EBF2 !important; +} +.mdui-theme-primary-cyan .mdui-text-color-theme-200 { + color: #80DEEA !important; +} +.mdui-theme-primary-cyan .mdui-text-color-theme-300 { + color: #4DD0E1 !important; +} +.mdui-theme-primary-cyan .mdui-text-color-theme-400 { + color: #26C6DA !important; +} +.mdui-theme-primary-cyan .mdui-text-color-theme-500 { + color: #00BCD4 !important; +} +.mdui-theme-primary-cyan .mdui-text-color-theme-600 { + color: #00ACC1 !important; +} +.mdui-theme-primary-cyan .mdui-text-color-theme-700 { + color: #0097A7 !important; +} +.mdui-theme-primary-cyan .mdui-text-color-theme-800 { + color: #00838F !important; +} +.mdui-theme-primary-cyan .mdui-text-color-theme-900 { + color: #006064 !important; +} +.mdui-theme-primary-deep-orange .mdui-text-color-theme { + color: #FF5722 !important; +} +.mdui-theme-primary-deep-orange .mdui-text-color-theme-50 { + color: #FBE9E7 !important; +} +.mdui-theme-primary-deep-orange .mdui-text-color-theme-100 { + color: #FFCCBC !important; +} +.mdui-theme-primary-deep-orange .mdui-text-color-theme-200 { + color: #FFAB91 !important; +} +.mdui-theme-primary-deep-orange .mdui-text-color-theme-300 { + color: #FF8A65 !important; +} +.mdui-theme-primary-deep-orange .mdui-text-color-theme-400 { + color: #FF7043 !important; +} +.mdui-theme-primary-deep-orange .mdui-text-color-theme-500 { + color: #FF5722 !important; +} +.mdui-theme-primary-deep-orange .mdui-text-color-theme-600 { + color: #F4511E !important; +} +.mdui-theme-primary-deep-orange .mdui-text-color-theme-700 { + color: #E64A19 !important; +} +.mdui-theme-primary-deep-orange .mdui-text-color-theme-800 { + color: #D84315 !important; +} +.mdui-theme-primary-deep-orange .mdui-text-color-theme-900 { + color: #BF360C !important; +} +.mdui-theme-primary-deep-purple .mdui-text-color-theme { + color: #673AB7 !important; +} +.mdui-theme-primary-deep-purple .mdui-text-color-theme-50 { + color: #EDE7F6 !important; +} +.mdui-theme-primary-deep-purple .mdui-text-color-theme-100 { + color: #D1C4E9 !important; +} +.mdui-theme-primary-deep-purple .mdui-text-color-theme-200 { + color: #B39DDB !important; +} +.mdui-theme-primary-deep-purple .mdui-text-color-theme-300 { + color: #9575CD !important; +} +.mdui-theme-primary-deep-purple .mdui-text-color-theme-400 { + color: #7E57C2 !important; +} +.mdui-theme-primary-deep-purple .mdui-text-color-theme-500 { + color: #673AB7 !important; +} +.mdui-theme-primary-deep-purple .mdui-text-color-theme-600 { + color: #5E35B1 !important; +} +.mdui-theme-primary-deep-purple .mdui-text-color-theme-700 { + color: #512DA8 !important; +} +.mdui-theme-primary-deep-purple .mdui-text-color-theme-800 { + color: #4527A0 !important; +} +.mdui-theme-primary-deep-purple .mdui-text-color-theme-900 { + color: #311B92 !important; +} +.mdui-theme-primary-green .mdui-text-color-theme { + color: #4CAF50 !important; +} +.mdui-theme-primary-green .mdui-text-color-theme-50 { + color: #E8F5E9 !important; +} +.mdui-theme-primary-green .mdui-text-color-theme-100 { + color: #C8E6C9 !important; +} +.mdui-theme-primary-green .mdui-text-color-theme-200 { + color: #A5D6A7 !important; +} +.mdui-theme-primary-green .mdui-text-color-theme-300 { + color: #81C784 !important; +} +.mdui-theme-primary-green .mdui-text-color-theme-400 { + color: #66BB6A !important; +} +.mdui-theme-primary-green .mdui-text-color-theme-500 { + color: #4CAF50 !important; +} +.mdui-theme-primary-green .mdui-text-color-theme-600 { + color: #43A047 !important; +} +.mdui-theme-primary-green .mdui-text-color-theme-700 { + color: #388E3C !important; +} +.mdui-theme-primary-green .mdui-text-color-theme-800 { + color: #2E7D32 !important; +} +.mdui-theme-primary-green .mdui-text-color-theme-900 { + color: #1B5E20 !important; +} +.mdui-theme-primary-grey .mdui-text-color-theme { + color: #9E9E9E !important; +} +.mdui-theme-primary-grey .mdui-text-color-theme-50 { + color: #FAFAFA !important; +} +.mdui-theme-primary-grey .mdui-text-color-theme-100 { + color: #F5F5F5 !important; +} +.mdui-theme-primary-grey .mdui-text-color-theme-200 { + color: #EEEEEE !important; +} +.mdui-theme-primary-grey .mdui-text-color-theme-300 { + color: #E0E0E0 !important; +} +.mdui-theme-primary-grey .mdui-text-color-theme-400 { + color: #BDBDBD !important; +} +.mdui-theme-primary-grey .mdui-text-color-theme-500 { + color: #9E9E9E !important; +} +.mdui-theme-primary-grey .mdui-text-color-theme-600 { + color: #757575 !important; +} +.mdui-theme-primary-grey .mdui-text-color-theme-700 { + color: #616161 !important; +} +.mdui-theme-primary-grey .mdui-text-color-theme-800 { + color: #424242 !important; +} +.mdui-theme-primary-grey .mdui-text-color-theme-900 { + color: #212121 !important; +} +.mdui-theme-primary-indigo .mdui-text-color-theme { + color: #3F51B5 !important; +} +.mdui-theme-primary-indigo .mdui-text-color-theme-50 { + color: #E8EAF6 !important; +} +.mdui-theme-primary-indigo .mdui-text-color-theme-100 { + color: #C5CAE9 !important; +} +.mdui-theme-primary-indigo .mdui-text-color-theme-200 { + color: #9FA8DA !important; +} +.mdui-theme-primary-indigo .mdui-text-color-theme-300 { + color: #7986CB !important; +} +.mdui-theme-primary-indigo .mdui-text-color-theme-400 { + color: #5C6BC0 !important; +} +.mdui-theme-primary-indigo .mdui-text-color-theme-500 { + color: #3F51B5 !important; +} +.mdui-theme-primary-indigo .mdui-text-color-theme-600 { + color: #3949AB !important; +} +.mdui-theme-primary-indigo .mdui-text-color-theme-700 { + color: #303F9F !important; +} +.mdui-theme-primary-indigo .mdui-text-color-theme-800 { + color: #283593 !important; +} +.mdui-theme-primary-indigo .mdui-text-color-theme-900 { + color: #1A237E !important; +} +.mdui-theme-primary-light-blue .mdui-text-color-theme { + color: #03A9F4 !important; +} +.mdui-theme-primary-light-blue .mdui-text-color-theme-50 { + color: #E1F5FE !important; +} +.mdui-theme-primary-light-blue .mdui-text-color-theme-100 { + color: #B3E5FC !important; +} +.mdui-theme-primary-light-blue .mdui-text-color-theme-200 { + color: #81D4FA !important; +} +.mdui-theme-primary-light-blue .mdui-text-color-theme-300 { + color: #4FC3F7 !important; +} +.mdui-theme-primary-light-blue .mdui-text-color-theme-400 { + color: #29B6F6 !important; +} +.mdui-theme-primary-light-blue .mdui-text-color-theme-500 { + color: #03A9F4 !important; +} +.mdui-theme-primary-light-blue .mdui-text-color-theme-600 { + color: #039BE5 !important; +} +.mdui-theme-primary-light-blue .mdui-text-color-theme-700 { + color: #0288D1 !important; +} +.mdui-theme-primary-light-blue .mdui-text-color-theme-800 { + color: #0277BD !important; +} +.mdui-theme-primary-light-blue .mdui-text-color-theme-900 { + color: #01579B !important; +} +.mdui-theme-primary-light-green .mdui-text-color-theme { + color: #8BC34A !important; +} +.mdui-theme-primary-light-green .mdui-text-color-theme-50 { + color: #F1F8E9 !important; +} +.mdui-theme-primary-light-green .mdui-text-color-theme-100 { + color: #DCEDC8 !important; +} +.mdui-theme-primary-light-green .mdui-text-color-theme-200 { + color: #C5E1A5 !important; +} +.mdui-theme-primary-light-green .mdui-text-color-theme-300 { + color: #AED581 !important; +} +.mdui-theme-primary-light-green .mdui-text-color-theme-400 { + color: #9CCC65 !important; +} +.mdui-theme-primary-light-green .mdui-text-color-theme-500 { + color: #8BC34A !important; +} +.mdui-theme-primary-light-green .mdui-text-color-theme-600 { + color: #7CB342 !important; +} +.mdui-theme-primary-light-green .mdui-text-color-theme-700 { + color: #689F38 !important; +} +.mdui-theme-primary-light-green .mdui-text-color-theme-800 { + color: #558B2F !important; +} +.mdui-theme-primary-light-green .mdui-text-color-theme-900 { + color: #33691E !important; +} +.mdui-theme-primary-lime .mdui-text-color-theme { + color: #CDDC39 !important; +} +.mdui-theme-primary-lime .mdui-text-color-theme-50 { + color: #F9FBE7 !important; +} +.mdui-theme-primary-lime .mdui-text-color-theme-100 { + color: #F0F4C3 !important; +} +.mdui-theme-primary-lime .mdui-text-color-theme-200 { + color: #E6EE9C !important; +} +.mdui-theme-primary-lime .mdui-text-color-theme-300 { + color: #DCE775 !important; +} +.mdui-theme-primary-lime .mdui-text-color-theme-400 { + color: #D4E157 !important; +} +.mdui-theme-primary-lime .mdui-text-color-theme-500 { + color: #CDDC39 !important; +} +.mdui-theme-primary-lime .mdui-text-color-theme-600 { + color: #C0CA33 !important; +} +.mdui-theme-primary-lime .mdui-text-color-theme-700 { + color: #AFB42B !important; +} +.mdui-theme-primary-lime .mdui-text-color-theme-800 { + color: #9E9D24 !important; +} +.mdui-theme-primary-lime .mdui-text-color-theme-900 { + color: #827717 !important; +} +.mdui-theme-primary-orange .mdui-text-color-theme { + color: #FF9800 !important; +} +.mdui-theme-primary-orange .mdui-text-color-theme-50 { + color: #FFF3E0 !important; +} +.mdui-theme-primary-orange .mdui-text-color-theme-100 { + color: #FFE0B2 !important; +} +.mdui-theme-primary-orange .mdui-text-color-theme-200 { + color: #FFCC80 !important; +} +.mdui-theme-primary-orange .mdui-text-color-theme-300 { + color: #FFB74D !important; +} +.mdui-theme-primary-orange .mdui-text-color-theme-400 { + color: #FFA726 !important; +} +.mdui-theme-primary-orange .mdui-text-color-theme-500 { + color: #FF9800 !important; +} +.mdui-theme-primary-orange .mdui-text-color-theme-600 { + color: #FB8C00 !important; +} +.mdui-theme-primary-orange .mdui-text-color-theme-700 { + color: #F57C00 !important; +} +.mdui-theme-primary-orange .mdui-text-color-theme-800 { + color: #EF6C00 !important; +} +.mdui-theme-primary-orange .mdui-text-color-theme-900 { + color: #E65100 !important; +} +.mdui-theme-primary-pink .mdui-text-color-theme { + color: #E91E63 !important; +} +.mdui-theme-primary-pink .mdui-text-color-theme-50 { + color: #FCE4EC !important; +} +.mdui-theme-primary-pink .mdui-text-color-theme-100 { + color: #F8BBD0 !important; +} +.mdui-theme-primary-pink .mdui-text-color-theme-200 { + color: #F48FB1 !important; +} +.mdui-theme-primary-pink .mdui-text-color-theme-300 { + color: #F06292 !important; +} +.mdui-theme-primary-pink .mdui-text-color-theme-400 { + color: #EC407A !important; +} +.mdui-theme-primary-pink .mdui-text-color-theme-500 { + color: #E91E63 !important; +} +.mdui-theme-primary-pink .mdui-text-color-theme-600 { + color: #D81B60 !important; +} +.mdui-theme-primary-pink .mdui-text-color-theme-700 { + color: #C2185B !important; +} +.mdui-theme-primary-pink .mdui-text-color-theme-800 { + color: #AD1457 !important; +} +.mdui-theme-primary-pink .mdui-text-color-theme-900 { + color: #880E4F !important; +} +.mdui-theme-primary-purple .mdui-text-color-theme { + color: #9C27B0 !important; +} +.mdui-theme-primary-purple .mdui-text-color-theme-50 { + color: #F3E5F5 !important; +} +.mdui-theme-primary-purple .mdui-text-color-theme-100 { + color: #E1BEE7 !important; +} +.mdui-theme-primary-purple .mdui-text-color-theme-200 { + color: #CE93D8 !important; +} +.mdui-theme-primary-purple .mdui-text-color-theme-300 { + color: #BA68C8 !important; +} +.mdui-theme-primary-purple .mdui-text-color-theme-400 { + color: #AB47BC !important; +} +.mdui-theme-primary-purple .mdui-text-color-theme-500 { + color: #9C27B0 !important; +} +.mdui-theme-primary-purple .mdui-text-color-theme-600 { + color: #8E24AA !important; +} +.mdui-theme-primary-purple .mdui-text-color-theme-700 { + color: #7B1FA2 !important; +} +.mdui-theme-primary-purple .mdui-text-color-theme-800 { + color: #6A1B9A !important; +} +.mdui-theme-primary-purple .mdui-text-color-theme-900 { + color: #4A148C !important; +} +.mdui-theme-primary-red .mdui-text-color-theme { + color: #F44336 !important; +} +.mdui-theme-primary-red .mdui-text-color-theme-50 { + color: #FFEBEE !important; +} +.mdui-theme-primary-red .mdui-text-color-theme-100 { + color: #FFCDD2 !important; +} +.mdui-theme-primary-red .mdui-text-color-theme-200 { + color: #EF9A9A !important; +} +.mdui-theme-primary-red .mdui-text-color-theme-300 { + color: #E57373 !important; +} +.mdui-theme-primary-red .mdui-text-color-theme-400 { + color: #EF5350 !important; +} +.mdui-theme-primary-red .mdui-text-color-theme-500 { + color: #F44336 !important; +} +.mdui-theme-primary-red .mdui-text-color-theme-600 { + color: #E53935 !important; +} +.mdui-theme-primary-red .mdui-text-color-theme-700 { + color: #D32F2F !important; +} +.mdui-theme-primary-red .mdui-text-color-theme-800 { + color: #C62828 !important; +} +.mdui-theme-primary-red .mdui-text-color-theme-900 { + color: #B71C1C !important; +} +.mdui-theme-primary-teal .mdui-text-color-theme { + color: #009688 !important; +} +.mdui-theme-primary-teal .mdui-text-color-theme-50 { + color: #E0F2F1 !important; +} +.mdui-theme-primary-teal .mdui-text-color-theme-100 { + color: #B2DFDB !important; +} +.mdui-theme-primary-teal .mdui-text-color-theme-200 { + color: #80CBC4 !important; +} +.mdui-theme-primary-teal .mdui-text-color-theme-300 { + color: #4DB6AC !important; +} +.mdui-theme-primary-teal .mdui-text-color-theme-400 { + color: #26A69A !important; +} +.mdui-theme-primary-teal .mdui-text-color-theme-500 { + color: #009688 !important; +} +.mdui-theme-primary-teal .mdui-text-color-theme-600 { + color: #00897B !important; +} +.mdui-theme-primary-teal .mdui-text-color-theme-700 { + color: #00796B !important; +} +.mdui-theme-primary-teal .mdui-text-color-theme-800 { + color: #00695C !important; +} +.mdui-theme-primary-teal .mdui-text-color-theme-900 { + color: #004D40 !important; +} +.mdui-theme-primary-yellow .mdui-text-color-theme { + color: #FFEB3B !important; +} +.mdui-theme-primary-yellow .mdui-text-color-theme-50 { + color: #FFFDE7 !important; +} +.mdui-theme-primary-yellow .mdui-text-color-theme-100 { + color: #FFF9C4 !important; +} +.mdui-theme-primary-yellow .mdui-text-color-theme-200 { + color: #FFF59D !important; +} +.mdui-theme-primary-yellow .mdui-text-color-theme-300 { + color: #FFF176 !important; +} +.mdui-theme-primary-yellow .mdui-text-color-theme-400 { + color: #FFEE58 !important; +} +.mdui-theme-primary-yellow .mdui-text-color-theme-500 { + color: #FFEB3B !important; +} +.mdui-theme-primary-yellow .mdui-text-color-theme-600 { + color: #FDD835 !important; +} +.mdui-theme-primary-yellow .mdui-text-color-theme-700 { + color: #FBC02D !important; +} +.mdui-theme-primary-yellow .mdui-text-color-theme-800 { + color: #F9A825 !important; +} +.mdui-theme-primary-yellow .mdui-text-color-theme-900 { + color: #F57F17 !important; +} +/** + * .mdui-theme-accent-[color] .mdui-text-color-theme-accent + * .mdui-theme-accent-[color] .mdui-text-color-theme-[degree] + */ +.mdui-theme-accent-amber .mdui-text-color-theme-accent { + color: #FFD740 !important; +} +.mdui-theme-accent-amber .mdui-text-color-theme-a100 { + color: #FFE57F !important; +} +.mdui-theme-accent-amber .mdui-text-color-theme-a200 { + color: #FFD740 !important; +} +.mdui-theme-accent-amber .mdui-text-color-theme-a400 { + color: #FFC400 !important; +} +.mdui-theme-accent-amber .mdui-text-color-theme-a700 { + color: #FFAB00 !important; +} +.mdui-theme-accent-blue .mdui-text-color-theme-accent { + color: #448AFF !important; +} +.mdui-theme-accent-blue .mdui-text-color-theme-a100 { + color: #82B1FF !important; +} +.mdui-theme-accent-blue .mdui-text-color-theme-a200 { + color: #448AFF !important; +} +.mdui-theme-accent-blue .mdui-text-color-theme-a400 { + color: #2979FF !important; +} +.mdui-theme-accent-blue .mdui-text-color-theme-a700 { + color: #2962FF !important; +} +.mdui-theme-accent-cyan .mdui-text-color-theme-accent { + color: #18FFFF !important; +} +.mdui-theme-accent-cyan .mdui-text-color-theme-a100 { + color: #84FFFF !important; +} +.mdui-theme-accent-cyan .mdui-text-color-theme-a200 { + color: #18FFFF !important; +} +.mdui-theme-accent-cyan .mdui-text-color-theme-a400 { + color: #00E5FF !important; +} +.mdui-theme-accent-cyan .mdui-text-color-theme-a700 { + color: #00B8D4 !important; +} +.mdui-theme-accent-deep-orange .mdui-text-color-theme-accent { + color: #FF6E40 !important; +} +.mdui-theme-accent-deep-orange .mdui-text-color-theme-a100 { + color: #FF9E80 !important; +} +.mdui-theme-accent-deep-orange .mdui-text-color-theme-a200 { + color: #FF6E40 !important; +} +.mdui-theme-accent-deep-orange .mdui-text-color-theme-a400 { + color: #FF3D00 !important; +} +.mdui-theme-accent-deep-orange .mdui-text-color-theme-a700 { + color: #DD2C00 !important; +} +.mdui-theme-accent-deep-purple .mdui-text-color-theme-accent { + color: #7C4DFF !important; +} +.mdui-theme-accent-deep-purple .mdui-text-color-theme-a100 { + color: #B388FF !important; +} +.mdui-theme-accent-deep-purple .mdui-text-color-theme-a200 { + color: #7C4DFF !important; +} +.mdui-theme-accent-deep-purple .mdui-text-color-theme-a400 { + color: #651FFF !important; +} +.mdui-theme-accent-deep-purple .mdui-text-color-theme-a700 { + color: #6200EA !important; +} +.mdui-theme-accent-green .mdui-text-color-theme-accent { + color: #69F0AE !important; +} +.mdui-theme-accent-green .mdui-text-color-theme-a100 { + color: #B9F6CA !important; +} +.mdui-theme-accent-green .mdui-text-color-theme-a200 { + color: #69F0AE !important; +} +.mdui-theme-accent-green .mdui-text-color-theme-a400 { + color: #00E676 !important; +} +.mdui-theme-accent-green .mdui-text-color-theme-a700 { + color: #00C853 !important; +} +.mdui-theme-accent-indigo .mdui-text-color-theme-accent { + color: #536DFE !important; +} +.mdui-theme-accent-indigo .mdui-text-color-theme-a100 { + color: #8C9EFF !important; +} +.mdui-theme-accent-indigo .mdui-text-color-theme-a200 { + color: #536DFE !important; +} +.mdui-theme-accent-indigo .mdui-text-color-theme-a400 { + color: #3D5AFE !important; +} +.mdui-theme-accent-indigo .mdui-text-color-theme-a700 { + color: #304FFE !important; +} +.mdui-theme-accent-light-blue .mdui-text-color-theme-accent { + color: #40C4FF !important; +} +.mdui-theme-accent-light-blue .mdui-text-color-theme-a100 { + color: #80D8FF !important; +} +.mdui-theme-accent-light-blue .mdui-text-color-theme-a200 { + color: #40C4FF !important; +} +.mdui-theme-accent-light-blue .mdui-text-color-theme-a400 { + color: #00B0FF !important; +} +.mdui-theme-accent-light-blue .mdui-text-color-theme-a700 { + color: #0091EA !important; +} +.mdui-theme-accent-light-green .mdui-text-color-theme-accent { + color: #B2FF59 !important; +} +.mdui-theme-accent-light-green .mdui-text-color-theme-a100 { + color: #CCFF90 !important; +} +.mdui-theme-accent-light-green .mdui-text-color-theme-a200 { + color: #B2FF59 !important; +} +.mdui-theme-accent-light-green .mdui-text-color-theme-a400 { + color: #76FF03 !important; +} +.mdui-theme-accent-light-green .mdui-text-color-theme-a700 { + color: #64DD17 !important; +} +.mdui-theme-accent-lime .mdui-text-color-theme-accent { + color: #EEFF41 !important; +} +.mdui-theme-accent-lime .mdui-text-color-theme-a100 { + color: #F4FF81 !important; +} +.mdui-theme-accent-lime .mdui-text-color-theme-a200 { + color: #EEFF41 !important; +} +.mdui-theme-accent-lime .mdui-text-color-theme-a400 { + color: #C6FF00 !important; +} +.mdui-theme-accent-lime .mdui-text-color-theme-a700 { + color: #AEEA00 !important; +} +.mdui-theme-accent-orange .mdui-text-color-theme-accent { + color: #FFAB40 !important; +} +.mdui-theme-accent-orange .mdui-text-color-theme-a100 { + color: #FFD180 !important; +} +.mdui-theme-accent-orange .mdui-text-color-theme-a200 { + color: #FFAB40 !important; +} +.mdui-theme-accent-orange .mdui-text-color-theme-a400 { + color: #FF9100 !important; +} +.mdui-theme-accent-orange .mdui-text-color-theme-a700 { + color: #FF6D00 !important; +} +.mdui-theme-accent-pink .mdui-text-color-theme-accent { + color: #FF4081 !important; +} +.mdui-theme-accent-pink .mdui-text-color-theme-a100 { + color: #FF80AB !important; +} +.mdui-theme-accent-pink .mdui-text-color-theme-a200 { + color: #FF4081 !important; +} +.mdui-theme-accent-pink .mdui-text-color-theme-a400 { + color: #F50057 !important; +} +.mdui-theme-accent-pink .mdui-text-color-theme-a700 { + color: #C51162 !important; +} +.mdui-theme-accent-purple .mdui-text-color-theme-accent { + color: #E040FB !important; +} +.mdui-theme-accent-purple .mdui-text-color-theme-a100 { + color: #EA80FC !important; +} +.mdui-theme-accent-purple .mdui-text-color-theme-a200 { + color: #E040FB !important; +} +.mdui-theme-accent-purple .mdui-text-color-theme-a400 { + color: #D500F9 !important; +} +.mdui-theme-accent-purple .mdui-text-color-theme-a700 { + color: #AA00FF !important; +} +.mdui-theme-accent-red .mdui-text-color-theme-accent { + color: #FF5252 !important; +} +.mdui-theme-accent-red .mdui-text-color-theme-a100 { + color: #FF8A80 !important; +} +.mdui-theme-accent-red .mdui-text-color-theme-a200 { + color: #FF5252 !important; +} +.mdui-theme-accent-red .mdui-text-color-theme-a400 { + color: #FF1744 !important; +} +.mdui-theme-accent-red .mdui-text-color-theme-a700 { + color: #D50000 !important; +} +.mdui-theme-accent-teal .mdui-text-color-theme-accent { + color: #64FFDA !important; +} +.mdui-theme-accent-teal .mdui-text-color-theme-a100 { + color: #A7FFEB !important; +} +.mdui-theme-accent-teal .mdui-text-color-theme-a200 { + color: #64FFDA !important; +} +.mdui-theme-accent-teal .mdui-text-color-theme-a400 { + color: #1DE9B6 !important; +} +.mdui-theme-accent-teal .mdui-text-color-theme-a700 { + color: #00BFA5 !important; +} +.mdui-theme-accent-yellow .mdui-text-color-theme-accent { + color: #FFFF00 !important; +} +.mdui-theme-accent-yellow .mdui-text-color-theme-a100 { + color: #FFFF8D !important; +} +.mdui-theme-accent-yellow .mdui-text-color-theme-a200 { + color: #FFFF00 !important; +} +.mdui-theme-accent-yellow .mdui-text-color-theme-a400 { + color: #FFEA00 !important; +} +.mdui-theme-accent-yellow .mdui-text-color-theme-a700 { + color: #FFD600 !important; +} +/** + * .mdui-text-color-[color] + * .mdui-text-color-[color]-[degree] + */ +.mdui-text-color-amber { + color: #FFC107 !important; +} +.mdui-text-color-amber-50 { + color: #FFF8E1 !important; +} +.mdui-text-color-amber-100 { + color: #FFECB3 !important; +} +.mdui-text-color-amber-200 { + color: #FFE082 !important; +} +.mdui-text-color-amber-300 { + color: #FFD54F !important; +} +.mdui-text-color-amber-400 { + color: #FFCA28 !important; +} +.mdui-text-color-amber-500 { + color: #FFC107 !important; +} +.mdui-text-color-amber-600 { + color: #FFB300 !important; +} +.mdui-text-color-amber-700 { + color: #FFA000 !important; +} +.mdui-text-color-amber-800 { + color: #FF8F00 !important; +} +.mdui-text-color-amber-900 { + color: #FF6F00 !important; +} +.mdui-text-color-blue { + color: #2196F3 !important; +} +.mdui-text-color-blue-50 { + color: #E3F2FD !important; +} +.mdui-text-color-blue-100 { + color: #BBDEFB !important; +} +.mdui-text-color-blue-200 { + color: #90CAF9 !important; +} +.mdui-text-color-blue-300 { + color: #64B5F6 !important; +} +.mdui-text-color-blue-400 { + color: #42A5F5 !important; +} +.mdui-text-color-blue-500 { + color: #2196F3 !important; +} +.mdui-text-color-blue-600 { + color: #1E88E5 !important; +} +.mdui-text-color-blue-700 { + color: #1976D2 !important; +} +.mdui-text-color-blue-800 { + color: #1565C0 !important; +} +.mdui-text-color-blue-900 { + color: #0D47A1 !important; +} +.mdui-text-color-blue-grey { + color: #607D8B !important; +} +.mdui-text-color-blue-grey-50 { + color: #ECEFF1 !important; +} +.mdui-text-color-blue-grey-100 { + color: #CFD8DC !important; +} +.mdui-text-color-blue-grey-200 { + color: #B0BEC5 !important; +} +.mdui-text-color-blue-grey-300 { + color: #90A4AE !important; +} +.mdui-text-color-blue-grey-400 { + color: #78909C !important; +} +.mdui-text-color-blue-grey-500 { + color: #607D8B !important; +} +.mdui-text-color-blue-grey-600 { + color: #546E7A !important; +} +.mdui-text-color-blue-grey-700 { + color: #455A64 !important; +} +.mdui-text-color-blue-grey-800 { + color: #37474F !important; +} +.mdui-text-color-blue-grey-900 { + color: #263238 !important; +} +.mdui-text-color-brown { + color: #795548 !important; +} +.mdui-text-color-brown-50 { + color: #EFEBE9 !important; +} +.mdui-text-color-brown-100 { + color: #D7CCC8 !important; +} +.mdui-text-color-brown-200 { + color: #BCAAA4 !important; +} +.mdui-text-color-brown-300 { + color: #A1887F !important; +} +.mdui-text-color-brown-400 { + color: #8D6E63 !important; +} +.mdui-text-color-brown-500 { + color: #795548 !important; +} +.mdui-text-color-brown-600 { + color: #6D4C41 !important; +} +.mdui-text-color-brown-700 { + color: #5D4037 !important; +} +.mdui-text-color-brown-800 { + color: #4E342E !important; +} +.mdui-text-color-brown-900 { + color: #3E2723 !important; +} +.mdui-text-color-cyan { + color: #00BCD4 !important; +} +.mdui-text-color-cyan-50 { + color: #E0F7FA !important; +} +.mdui-text-color-cyan-100 { + color: #B2EBF2 !important; +} +.mdui-text-color-cyan-200 { + color: #80DEEA !important; +} +.mdui-text-color-cyan-300 { + color: #4DD0E1 !important; +} +.mdui-text-color-cyan-400 { + color: #26C6DA !important; +} +.mdui-text-color-cyan-500 { + color: #00BCD4 !important; +} +.mdui-text-color-cyan-600 { + color: #00ACC1 !important; +} +.mdui-text-color-cyan-700 { + color: #0097A7 !important; +} +.mdui-text-color-cyan-800 { + color: #00838F !important; +} +.mdui-text-color-cyan-900 { + color: #006064 !important; +} +.mdui-text-color-deep-orange { + color: #FF5722 !important; +} +.mdui-text-color-deep-orange-50 { + color: #FBE9E7 !important; +} +.mdui-text-color-deep-orange-100 { + color: #FFCCBC !important; +} +.mdui-text-color-deep-orange-200 { + color: #FFAB91 !important; +} +.mdui-text-color-deep-orange-300 { + color: #FF8A65 !important; +} +.mdui-text-color-deep-orange-400 { + color: #FF7043 !important; +} +.mdui-text-color-deep-orange-500 { + color: #FF5722 !important; +} +.mdui-text-color-deep-orange-600 { + color: #F4511E !important; +} +.mdui-text-color-deep-orange-700 { + color: #E64A19 !important; +} +.mdui-text-color-deep-orange-800 { + color: #D84315 !important; +} +.mdui-text-color-deep-orange-900 { + color: #BF360C !important; +} +.mdui-text-color-deep-purple { + color: #673AB7 !important; +} +.mdui-text-color-deep-purple-50 { + color: #EDE7F6 !important; +} +.mdui-text-color-deep-purple-100 { + color: #D1C4E9 !important; +} +.mdui-text-color-deep-purple-200 { + color: #B39DDB !important; +} +.mdui-text-color-deep-purple-300 { + color: #9575CD !important; +} +.mdui-text-color-deep-purple-400 { + color: #7E57C2 !important; +} +.mdui-text-color-deep-purple-500 { + color: #673AB7 !important; +} +.mdui-text-color-deep-purple-600 { + color: #5E35B1 !important; +} +.mdui-text-color-deep-purple-700 { + color: #512DA8 !important; +} +.mdui-text-color-deep-purple-800 { + color: #4527A0 !important; +} +.mdui-text-color-deep-purple-900 { + color: #311B92 !important; +} +.mdui-text-color-green { + color: #4CAF50 !important; +} +.mdui-text-color-green-50 { + color: #E8F5E9 !important; +} +.mdui-text-color-green-100 { + color: #C8E6C9 !important; +} +.mdui-text-color-green-200 { + color: #A5D6A7 !important; +} +.mdui-text-color-green-300 { + color: #81C784 !important; +} +.mdui-text-color-green-400 { + color: #66BB6A !important; +} +.mdui-text-color-green-500 { + color: #4CAF50 !important; +} +.mdui-text-color-green-600 { + color: #43A047 !important; +} +.mdui-text-color-green-700 { + color: #388E3C !important; +} +.mdui-text-color-green-800 { + color: #2E7D32 !important; +} +.mdui-text-color-green-900 { + color: #1B5E20 !important; +} +.mdui-text-color-grey { + color: #9E9E9E !important; +} +.mdui-text-color-grey-50 { + color: #FAFAFA !important; +} +.mdui-text-color-grey-100 { + color: #F5F5F5 !important; +} +.mdui-text-color-grey-200 { + color: #EEEEEE !important; +} +.mdui-text-color-grey-300 { + color: #E0E0E0 !important; +} +.mdui-text-color-grey-400 { + color: #BDBDBD !important; +} +.mdui-text-color-grey-500 { + color: #9E9E9E !important; +} +.mdui-text-color-grey-600 { + color: #757575 !important; +} +.mdui-text-color-grey-700 { + color: #616161 !important; +} +.mdui-text-color-grey-800 { + color: #424242 !important; +} +.mdui-text-color-grey-900 { + color: #212121 !important; +} +.mdui-text-color-indigo { + color: #3F51B5 !important; +} +.mdui-text-color-indigo-50 { + color: #E8EAF6 !important; +} +.mdui-text-color-indigo-100 { + color: #C5CAE9 !important; +} +.mdui-text-color-indigo-200 { + color: #9FA8DA !important; +} +.mdui-text-color-indigo-300 { + color: #7986CB !important; +} +.mdui-text-color-indigo-400 { + color: #5C6BC0 !important; +} +.mdui-text-color-indigo-500 { + color: #3F51B5 !important; +} +.mdui-text-color-indigo-600 { + color: #3949AB !important; +} +.mdui-text-color-indigo-700 { + color: #303F9F !important; +} +.mdui-text-color-indigo-800 { + color: #283593 !important; +} +.mdui-text-color-indigo-900 { + color: #1A237E !important; +} +.mdui-text-color-light-blue { + color: #03A9F4 !important; +} +.mdui-text-color-light-blue-50 { + color: #E1F5FE !important; +} +.mdui-text-color-light-blue-100 { + color: #B3E5FC !important; +} +.mdui-text-color-light-blue-200 { + color: #81D4FA !important; +} +.mdui-text-color-light-blue-300 { + color: #4FC3F7 !important; +} +.mdui-text-color-light-blue-400 { + color: #29B6F6 !important; +} +.mdui-text-color-light-blue-500 { + color: #03A9F4 !important; +} +.mdui-text-color-light-blue-600 { + color: #039BE5 !important; +} +.mdui-text-color-light-blue-700 { + color: #0288D1 !important; +} +.mdui-text-color-light-blue-800 { + color: #0277BD !important; +} +.mdui-text-color-light-blue-900 { + color: #01579B !important; +} +.mdui-text-color-light-green { + color: #8BC34A !important; +} +.mdui-text-color-light-green-50 { + color: #F1F8E9 !important; +} +.mdui-text-color-light-green-100 { + color: #DCEDC8 !important; +} +.mdui-text-color-light-green-200 { + color: #C5E1A5 !important; +} +.mdui-text-color-light-green-300 { + color: #AED581 !important; +} +.mdui-text-color-light-green-400 { + color: #9CCC65 !important; +} +.mdui-text-color-light-green-500 { + color: #8BC34A !important; +} +.mdui-text-color-light-green-600 { + color: #7CB342 !important; +} +.mdui-text-color-light-green-700 { + color: #689F38 !important; +} +.mdui-text-color-light-green-800 { + color: #558B2F !important; +} +.mdui-text-color-light-green-900 { + color: #33691E !important; +} +.mdui-text-color-lime { + color: #CDDC39 !important; +} +.mdui-text-color-lime-50 { + color: #F9FBE7 !important; +} +.mdui-text-color-lime-100 { + color: #F0F4C3 !important; +} +.mdui-text-color-lime-200 { + color: #E6EE9C !important; +} +.mdui-text-color-lime-300 { + color: #DCE775 !important; +} +.mdui-text-color-lime-400 { + color: #D4E157 !important; +} +.mdui-text-color-lime-500 { + color: #CDDC39 !important; +} +.mdui-text-color-lime-600 { + color: #C0CA33 !important; +} +.mdui-text-color-lime-700 { + color: #AFB42B !important; +} +.mdui-text-color-lime-800 { + color: #9E9D24 !important; +} +.mdui-text-color-lime-900 { + color: #827717 !important; +} +.mdui-text-color-orange { + color: #FF9800 !important; +} +.mdui-text-color-orange-50 { + color: #FFF3E0 !important; +} +.mdui-text-color-orange-100 { + color: #FFE0B2 !important; +} +.mdui-text-color-orange-200 { + color: #FFCC80 !important; +} +.mdui-text-color-orange-300 { + color: #FFB74D !important; +} +.mdui-text-color-orange-400 { + color: #FFA726 !important; +} +.mdui-text-color-orange-500 { + color: #FF9800 !important; +} +.mdui-text-color-orange-600 { + color: #FB8C00 !important; +} +.mdui-text-color-orange-700 { + color: #F57C00 !important; +} +.mdui-text-color-orange-800 { + color: #EF6C00 !important; +} +.mdui-text-color-orange-900 { + color: #E65100 !important; +} +.mdui-text-color-pink { + color: #E91E63 !important; +} +.mdui-text-color-pink-50 { + color: #FCE4EC !important; +} +.mdui-text-color-pink-100 { + color: #F8BBD0 !important; +} +.mdui-text-color-pink-200 { + color: #F48FB1 !important; +} +.mdui-text-color-pink-300 { + color: #F06292 !important; +} +.mdui-text-color-pink-400 { + color: #EC407A !important; +} +.mdui-text-color-pink-500 { + color: #E91E63 !important; +} +.mdui-text-color-pink-600 { + color: #D81B60 !important; +} +.mdui-text-color-pink-700 { + color: #C2185B !important; +} +.mdui-text-color-pink-800 { + color: #AD1457 !important; +} +.mdui-text-color-pink-900 { + color: #880E4F !important; +} +.mdui-text-color-purple { + color: #9C27B0 !important; +} +.mdui-text-color-purple-50 { + color: #F3E5F5 !important; +} +.mdui-text-color-purple-100 { + color: #E1BEE7 !important; +} +.mdui-text-color-purple-200 { + color: #CE93D8 !important; +} +.mdui-text-color-purple-300 { + color: #BA68C8 !important; +} +.mdui-text-color-purple-400 { + color: #AB47BC !important; +} +.mdui-text-color-purple-500 { + color: #9C27B0 !important; +} +.mdui-text-color-purple-600 { + color: #8E24AA !important; +} +.mdui-text-color-purple-700 { + color: #7B1FA2 !important; +} +.mdui-text-color-purple-800 { + color: #6A1B9A !important; +} +.mdui-text-color-purple-900 { + color: #4A148C !important; +} +.mdui-text-color-red { + color: #F44336 !important; +} +.mdui-text-color-red-50 { + color: #FFEBEE !important; +} +.mdui-text-color-red-100 { + color: #FFCDD2 !important; +} +.mdui-text-color-red-200 { + color: #EF9A9A !important; +} +.mdui-text-color-red-300 { + color: #E57373 !important; +} +.mdui-text-color-red-400 { + color: #EF5350 !important; +} +.mdui-text-color-red-500 { + color: #F44336 !important; +} +.mdui-text-color-red-600 { + color: #E53935 !important; +} +.mdui-text-color-red-700 { + color: #D32F2F !important; +} +.mdui-text-color-red-800 { + color: #C62828 !important; +} +.mdui-text-color-red-900 { + color: #B71C1C !important; +} +.mdui-text-color-teal { + color: #009688 !important; +} +.mdui-text-color-teal-50 { + color: #E0F2F1 !important; +} +.mdui-text-color-teal-100 { + color: #B2DFDB !important; +} +.mdui-text-color-teal-200 { + color: #80CBC4 !important; +} +.mdui-text-color-teal-300 { + color: #4DB6AC !important; +} +.mdui-text-color-teal-400 { + color: #26A69A !important; +} +.mdui-text-color-teal-500 { + color: #009688 !important; +} +.mdui-text-color-teal-600 { + color: #00897B !important; +} +.mdui-text-color-teal-700 { + color: #00796B !important; +} +.mdui-text-color-teal-800 { + color: #00695C !important; +} +.mdui-text-color-teal-900 { + color: #004D40 !important; +} +.mdui-text-color-yellow { + color: #FFEB3B !important; +} +.mdui-text-color-yellow-50 { + color: #FFFDE7 !important; +} +.mdui-text-color-yellow-100 { + color: #FFF9C4 !important; +} +.mdui-text-color-yellow-200 { + color: #FFF59D !important; +} +.mdui-text-color-yellow-300 { + color: #FFF176 !important; +} +.mdui-text-color-yellow-400 { + color: #FFEE58 !important; +} +.mdui-text-color-yellow-500 { + color: #FFEB3B !important; +} +.mdui-text-color-yellow-600 { + color: #FDD835 !important; +} +.mdui-text-color-yellow-700 { + color: #FBC02D !important; +} +.mdui-text-color-yellow-800 { + color: #F9A825 !important; +} +.mdui-text-color-yellow-900 { + color: #F57F17 !important; +} +/** + * .mdui-text-color-[color]-accent + * .mdui-text-color-[color]-[degree] + */ +.mdui-text-color-amber-accent { + color: #FFD740 !important; +} +.mdui-text-color-amber-a100 { + color: #FFE57F !important; +} +.mdui-text-color-amber-a200 { + color: #FFD740 !important; +} +.mdui-text-color-amber-a400 { + color: #FFC400 !important; +} +.mdui-text-color-amber-a700 { + color: #FFAB00 !important; +} +.mdui-text-color-blue-accent { + color: #448AFF !important; +} +.mdui-text-color-blue-a100 { + color: #82B1FF !important; +} +.mdui-text-color-blue-a200 { + color: #448AFF !important; +} +.mdui-text-color-blue-a400 { + color: #2979FF !important; +} +.mdui-text-color-blue-a700 { + color: #2962FF !important; +} +.mdui-text-color-cyan-accent { + color: #18FFFF !important; +} +.mdui-text-color-cyan-a100 { + color: #84FFFF !important; +} +.mdui-text-color-cyan-a200 { + color: #18FFFF !important; +} +.mdui-text-color-cyan-a400 { + color: #00E5FF !important; +} +.mdui-text-color-cyan-a700 { + color: #00B8D4 !important; +} +.mdui-text-color-deep-orange-accent { + color: #FF6E40 !important; +} +.mdui-text-color-deep-orange-a100 { + color: #FF9E80 !important; +} +.mdui-text-color-deep-orange-a200 { + color: #FF6E40 !important; +} +.mdui-text-color-deep-orange-a400 { + color: #FF3D00 !important; +} +.mdui-text-color-deep-orange-a700 { + color: #DD2C00 !important; +} +.mdui-text-color-deep-purple-accent { + color: #7C4DFF !important; +} +.mdui-text-color-deep-purple-a100 { + color: #B388FF !important; +} +.mdui-text-color-deep-purple-a200 { + color: #7C4DFF !important; +} +.mdui-text-color-deep-purple-a400 { + color: #651FFF !important; +} +.mdui-text-color-deep-purple-a700 { + color: #6200EA !important; +} +.mdui-text-color-green-accent { + color: #69F0AE !important; +} +.mdui-text-color-green-a100 { + color: #B9F6CA !important; +} +.mdui-text-color-green-a200 { + color: #69F0AE !important; +} +.mdui-text-color-green-a400 { + color: #00E676 !important; +} +.mdui-text-color-green-a700 { + color: #00C853 !important; +} +.mdui-text-color-indigo-accent { + color: #536DFE !important; +} +.mdui-text-color-indigo-a100 { + color: #8C9EFF !important; +} +.mdui-text-color-indigo-a200 { + color: #536DFE !important; +} +.mdui-text-color-indigo-a400 { + color: #3D5AFE !important; +} +.mdui-text-color-indigo-a700 { + color: #304FFE !important; +} +.mdui-text-color-light-blue-accent { + color: #40C4FF !important; +} +.mdui-text-color-light-blue-a100 { + color: #80D8FF !important; +} +.mdui-text-color-light-blue-a200 { + color: #40C4FF !important; +} +.mdui-text-color-light-blue-a400 { + color: #00B0FF !important; +} +.mdui-text-color-light-blue-a700 { + color: #0091EA !important; +} +.mdui-text-color-light-green-accent { + color: #B2FF59 !important; +} +.mdui-text-color-light-green-a100 { + color: #CCFF90 !important; +} +.mdui-text-color-light-green-a200 { + color: #B2FF59 !important; +} +.mdui-text-color-light-green-a400 { + color: #76FF03 !important; +} +.mdui-text-color-light-green-a700 { + color: #64DD17 !important; +} +.mdui-text-color-lime-accent { + color: #EEFF41 !important; +} +.mdui-text-color-lime-a100 { + color: #F4FF81 !important; +} +.mdui-text-color-lime-a200 { + color: #EEFF41 !important; +} +.mdui-text-color-lime-a400 { + color: #C6FF00 !important; +} +.mdui-text-color-lime-a700 { + color: #AEEA00 !important; +} +.mdui-text-color-orange-accent { + color: #FFAB40 !important; +} +.mdui-text-color-orange-a100 { + color: #FFD180 !important; +} +.mdui-text-color-orange-a200 { + color: #FFAB40 !important; +} +.mdui-text-color-orange-a400 { + color: #FF9100 !important; +} +.mdui-text-color-orange-a700 { + color: #FF6D00 !important; +} +.mdui-text-color-pink-accent { + color: #FF4081 !important; +} +.mdui-text-color-pink-a100 { + color: #FF80AB !important; +} +.mdui-text-color-pink-a200 { + color: #FF4081 !important; +} +.mdui-text-color-pink-a400 { + color: #F50057 !important; +} +.mdui-text-color-pink-a700 { + color: #C51162 !important; +} +.mdui-text-color-purple-accent { + color: #E040FB !important; +} +.mdui-text-color-purple-a100 { + color: #EA80FC !important; +} +.mdui-text-color-purple-a200 { + color: #E040FB !important; +} +.mdui-text-color-purple-a400 { + color: #D500F9 !important; +} +.mdui-text-color-purple-a700 { + color: #AA00FF !important; +} +.mdui-text-color-red-accent { + color: #FF5252 !important; +} +.mdui-text-color-red-a100 { + color: #FF8A80 !important; +} +.mdui-text-color-red-a200 { + color: #FF5252 !important; +} +.mdui-text-color-red-a400 { + color: #FF1744 !important; +} +.mdui-text-color-red-a700 { + color: #D50000 !important; +} +.mdui-text-color-teal-accent { + color: #64FFDA !important; +} +.mdui-text-color-teal-a100 { + color: #A7FFEB !important; +} +.mdui-text-color-teal-a200 { + color: #64FFDA !important; +} +.mdui-text-color-teal-a400 { + color: #1DE9B6 !important; +} +.mdui-text-color-teal-a700 { + color: #00BFA5 !important; +} +.mdui-text-color-yellow-accent { + color: #FFFF00 !important; +} +.mdui-text-color-yellow-a100 { + color: #FFFF8D !important; +} +.mdui-text-color-yellow-a200 { + color: #FFFF00 !important; +} +.mdui-text-color-yellow-a400 { + color: #FFEA00 !important; +} +.mdui-text-color-yellow-a700 { + color: #FFD600 !important; +} +/** + * .mdui-text-color-black + * .mdui-text-color-black-[] + * .mdui-text-color-theme-[] + */ +.mdui-text-color-black { + color: #000000 !important; +} +.mdui-text-color-black-text, +.mdui-text-color-theme-text { + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-text-color-black-secondary, +.mdui-text-color-theme-secondary { + color: rgba(0, 0, 0, 0.54) !important; +} +.mdui-text-color-black-disabled, +.mdui-text-color-theme-disabled { + color: rgba(0, 0, 0, 0.38) !important; +} +.mdui-text-color-black-divider, +.mdui-text-color-theme-divider { + color: rgba(0, 0, 0, 0.12) !important; +} +.mdui-text-color-black-icon, +.mdui-text-color-theme-icon { + color: rgba(0, 0, 0, 0.54) !important; +} +.mdui-text-color-black-icon-disabled, +.mdui-text-color-theme-icon-disabled { + color: rgba(0, 0, 0, 0.26) !important; +} +/** + * .mdui-text-color-white + * .mdui-text-color-white-[] + */ +.mdui-text-color-white { + color: #FFFFFF !important; +} +.mdui-text-color-white-text { + color: #ffffff !important; +} +.mdui-text-color-white-secondary { + color: rgba(255, 255, 255, 0.7) !important; +} +.mdui-text-color-white-disabled { + color: rgba(255, 255, 255, 0.5) !important; +} +.mdui-text-color-white-divider { + color: rgba(255, 255, 255, 0.12) !important; +} +.mdui-text-color-white-icon { + color: #ffffff !important; +} +.mdui-text-color-white-icon-disabled { + color: rgba(255, 255, 255, 0.3) !important; +} +/** + * .mdui-text-color-theme-[] 深色主题 + */ +.mdui-theme-layout-dark .mdui-text-color-theme-text { + color: #ffffff !important; +} +.mdui-theme-layout-dark .mdui-text-color-theme-secondary { + color: rgba(255, 255, 255, 0.7) !important; +} +.mdui-theme-layout-dark .mdui-text-color-theme-disabled { + color: rgba(255, 255, 255, 0.5) !important; +} +.mdui-theme-layout-dark .mdui-text-color-theme-divider { + color: rgba(255, 255, 255, 0.12) !important; +} +.mdui-theme-layout-dark .mdui-text-color-theme-icon { + color: #ffffff !important; +} +.mdui-theme-layout-dark .mdui-text-color-theme-icon-disabled { + color: rgba(255, 255, 255, 0.3) !important; +} +@media (prefers-color-scheme: dark) { + .mdui-theme-layout-auto .mdui-text-color-theme-text { + color: #ffffff !important; + } + .mdui-theme-layout-auto .mdui-text-color-theme-secondary { + color: rgba(255, 255, 255, 0.7) !important; + } + .mdui-theme-layout-auto .mdui-text-color-theme-disabled { + color: rgba(255, 255, 255, 0.5) !important; + } + .mdui-theme-layout-auto .mdui-text-color-theme-divider { + color: rgba(255, 255, 255, 0.12) !important; + } + .mdui-theme-layout-auto .mdui-text-color-theme-icon { + color: #ffffff !important; + } + .mdui-theme-layout-auto .mdui-text-color-theme-icon-disabled { + color: rgba(255, 255, 255, 0.3) !important; + } +} +/** + * ============================================================================= + * ************ Helper 辅助类 ************ + * ============================================================================= + */ +/** + * =================== 边距 + */ +.mdui-m-a-0 { + margin: 0px !important; +} +.mdui-m-t-0 { + margin-top: 0px !important; +} +.mdui-m-r-0 { + margin-right: 0px !important; +} +.mdui-m-b-0 { + margin-bottom: 0px !important; +} +.mdui-m-l-0 { + margin-left: 0px !important; +} +.mdui-m-x-0 { + margin-right: 0px !important; + margin-left: 0px !important; +} +.mdui-m-y-0 { + margin-top: 0px !important; + margin-bottom: 0px !important; +} +.mdui-p-a-0 { + padding: 0px !important; +} +.mdui-p-t-0 { + padding-top: 0px !important; +} +.mdui-p-r-0 { + padding-right: 0px !important; +} +.mdui-p-b-0 { + padding-bottom: 0px !important; +} +.mdui-p-l-0 { + padding-left: 0px !important; +} +.mdui-p-x-0 { + padding-right: 0px !important; + padding-left: 0px !important; +} +.mdui-p-y-0 { + padding-top: 0px !important; + padding-bottom: 0px !important; +} +.mdui-m-a-1 { + margin: 8px !important; +} +.mdui-m-t-1 { + margin-top: 8px !important; +} +.mdui-m-r-1 { + margin-right: 8px !important; +} +.mdui-m-b-1 { + margin-bottom: 8px !important; +} +.mdui-m-l-1 { + margin-left: 8px !important; +} +.mdui-m-x-1 { + margin-right: 8px !important; + margin-left: 8px !important; +} +.mdui-m-y-1 { + margin-top: 8px !important; + margin-bottom: 8px !important; +} +.mdui-p-a-1 { + padding: 8px !important; +} +.mdui-p-t-1 { + padding-top: 8px !important; +} +.mdui-p-r-1 { + padding-right: 8px !important; +} +.mdui-p-b-1 { + padding-bottom: 8px !important; +} +.mdui-p-l-1 { + padding-left: 8px !important; +} +.mdui-p-x-1 { + padding-right: 8px !important; + padding-left: 8px !important; +} +.mdui-p-y-1 { + padding-top: 8px !important; + padding-bottom: 8px !important; +} +.mdui-m-a-2 { + margin: 16px !important; +} +.mdui-m-t-2 { + margin-top: 16px !important; +} +.mdui-m-r-2 { + margin-right: 16px !important; +} +.mdui-m-b-2 { + margin-bottom: 16px !important; +} +.mdui-m-l-2 { + margin-left: 16px !important; +} +.mdui-m-x-2 { + margin-right: 16px !important; + margin-left: 16px !important; +} +.mdui-m-y-2 { + margin-top: 16px !important; + margin-bottom: 16px !important; +} +.mdui-p-a-2 { + padding: 16px !important; +} +.mdui-p-t-2 { + padding-top: 16px !important; +} +.mdui-p-r-2 { + padding-right: 16px !important; +} +.mdui-p-b-2 { + padding-bottom: 16px !important; +} +.mdui-p-l-2 { + padding-left: 16px !important; +} +.mdui-p-x-2 { + padding-right: 16px !important; + padding-left: 16px !important; +} +.mdui-p-y-2 { + padding-top: 16px !important; + padding-bottom: 16px !important; +} +.mdui-m-a-3 { + margin: 24px !important; +} +.mdui-m-t-3 { + margin-top: 24px !important; +} +.mdui-m-r-3 { + margin-right: 24px !important; +} +.mdui-m-b-3 { + margin-bottom: 24px !important; +} +.mdui-m-l-3 { + margin-left: 24px !important; +} +.mdui-m-x-3 { + margin-right: 24px !important; + margin-left: 24px !important; +} +.mdui-m-y-3 { + margin-top: 24px !important; + margin-bottom: 24px !important; +} +.mdui-p-a-3 { + padding: 24px !important; +} +.mdui-p-t-3 { + padding-top: 24px !important; +} +.mdui-p-r-3 { + padding-right: 24px !important; +} +.mdui-p-b-3 { + padding-bottom: 24px !important; +} +.mdui-p-l-3 { + padding-left: 24px !important; +} +.mdui-p-x-3 { + padding-right: 24px !important; + padding-left: 24px !important; +} +.mdui-p-y-3 { + padding-top: 24px !important; + padding-bottom: 24px !important; +} +.mdui-m-a-4 { + margin: 32px !important; +} +.mdui-m-t-4 { + margin-top: 32px !important; +} +.mdui-m-r-4 { + margin-right: 32px !important; +} +.mdui-m-b-4 { + margin-bottom: 32px !important; +} +.mdui-m-l-4 { + margin-left: 32px !important; +} +.mdui-m-x-4 { + margin-right: 32px !important; + margin-left: 32px !important; +} +.mdui-m-y-4 { + margin-top: 32px !important; + margin-bottom: 32px !important; +} +.mdui-p-a-4 { + padding: 32px !important; +} +.mdui-p-t-4 { + padding-top: 32px !important; +} +.mdui-p-r-4 { + padding-right: 32px !important; +} +.mdui-p-b-4 { + padding-bottom: 32px !important; +} +.mdui-p-l-4 { + padding-left: 32px !important; +} +.mdui-p-x-4 { + padding-right: 32px !important; + padding-left: 32px !important; +} +.mdui-p-y-4 { + padding-top: 32px !important; + padding-bottom: 32px !important; +} +.mdui-m-a-5 { + margin: 40px !important; +} +.mdui-m-t-5 { + margin-top: 40px !important; +} +.mdui-m-r-5 { + margin-right: 40px !important; +} +.mdui-m-b-5 { + margin-bottom: 40px !important; +} +.mdui-m-l-5 { + margin-left: 40px !important; +} +.mdui-m-x-5 { + margin-right: 40px !important; + margin-left: 40px !important; +} +.mdui-m-y-5 { + margin-top: 40px !important; + margin-bottom: 40px !important; +} +.mdui-p-a-5 { + padding: 40px !important; +} +.mdui-p-t-5 { + padding-top: 40px !important; +} +.mdui-p-r-5 { + padding-right: 40px !important; +} +.mdui-p-b-5 { + padding-bottom: 40px !important; +} +.mdui-p-l-5 { + padding-left: 40px !important; +} +.mdui-p-x-5 { + padding-right: 40px !important; + padding-left: 40px !important; +} +.mdui-p-y-5 { + padding-top: 40px !important; + padding-bottom: 40px !important; +} +/** + * ======================== 快速浮动 + */ +/* 向左浮动 */ +.mdui-float-left { + float: left !important; +} +/* 向右浮动 */ +.mdui-float-right { + float: right !important; +} +/** + * ========================= 水平居中 + */ +/* 水平居中 */ +.mdui-center { + display: block !important; + margin-right: auto !important; + margin-left: auto !important; +} +/** + * ========================= 垂直居中 + */ +/* 垂直居中 */ +.mdui-valign { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; + -webkit-box-align: center !important; + -ms-flex-align: center !important; + align-items: center !important; +} +/** + * ========================= 文本对齐方式 + */ +/* 文本左对齐 */ +.mdui-text-left { + text-align: left !important; +} +/* 文本居中对齐 */ +.mdui-text-center { + text-align: center !important; +} +/* 文本向右对齐 */ +.mdui-text-right { + text-align: right !important; +} +/** + * ========================= 文本大小写转换 + */ +/* 文本转为小写 */ +.mdui-text-lowercase { + text-transform: lowercase !important; +} +/* 文本转为大写 */ +.mdui-text-uppercase { + text-transform: uppercase !important; +} +/* 文本转为单词的首字母大写 */ +.mdui-text-capitalize { + text-transform: capitalize !important; +} +/** + * ======================== 文本截断 + */ +/* 文本截断 */ +.mdui-text-truncate { + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} +/** + * ========================= 清除浮动 + */ +/* 清除浮动 */ +.mdui-clearfix::before, +.mdui-clearfix::after { + display: table; + content: ' '; +} +.mdui-clearfix::after { + clear: both; +} +/** + * ========================= 隐藏内容 + */ +/* 隐藏元素 */ +.mdui-hidden, +[hidden] { + display: none !important; +} +/* 使元素不可见 */ +.mdui-invisible { + visibility: hidden; +} +/* Responsive utilities 响应式工具 + ========================================================================== */ +/* 在特定屏幕的特备上隐藏 */ +@media (max-width: 599.9px) { + .mdui-hidden-xs { + display: none !important; + } +} +@media (min-width: 600px) and (max-width: 1023.9px) { + .mdui-hidden-sm { + display: none !important; + } +} +@media (min-width: 1024px) and (max-width: 1439.9px) { + .mdui-hidden-md { + display: none !important; + } +} +@media (min-width: 1440px) and (max-width: 1919.9px) { + .mdui-hidden-lg { + display: none !important; + } +} +@media (min-width: 1920px) { + .mdui-hidden-xl { + display: none !important; + } +} +/* 在比特定屏幕小的设备上隐藏 */ +@media (max-width: 599.9px) { + .mdui-hidden-xs-down { + display: none !important; + } +} +@media (max-width: 1023.9px) { + .mdui-hidden-sm-down { + display: none !important; + } +} +@media (max-width: 1439.9px) { + .mdui-hidden-md-down { + display: none !important; + } +} +@media (max-width: 1919.9px) { + .mdui-hidden-lg-down { + display: none !important; + } +} +.mdui-hidden-xl-down { + display: none !important; +} +/* 在比特定屏幕大的设备上隐藏 */ +.mdui-hidden-xs-up { + display: none !important; +} +@media (min-width: 600px) { + .mdui-hidden-sm-up { + display: none !important; + } +} +@media (min-width: 1024px) { + .mdui-hidden-md-up { + display: none !important; + } +} +@media (min-width: 1440px) { + .mdui-hidden-lg-up { + display: none !important; + } +} +@media (min-width: 1920px) { + .mdui-hidden-xl-up { + display: none !important; + } +} +/** + * ============================================================================= + * ************ Icon 图标 ************ + * ============================================================================= + */ +.mdui-icon, +.mdui-icon::before { + color: inherit; + font-weight: normal; + font-size: 24px; + /* Preferred icon size */ + font-style: normal; + line-height: 1; + direction: ltr; + letter-spacing: normal; + white-space: nowrap; + text-transform: none; + vertical-align: middle; + word-wrap: normal; +} +.mdui-icon { + display: inline-block; + text-align: center; +} +.mdui-icon::before { + display: block !important; + width: 24px; + height: 24px; +} +/** + * ============================================================================= + * ************ Material Icons ************ + * ============================================================================= + * + * https://github.com/google/material-design-icons/ + * v3.0.1 + */ +@font-face { + font-weight: 400; + font-family: 'Material Icons'; + font-style: normal; + src: local('Material Icons'), local('MaterialIcons-Regular'), url(../icons/material-icons/MaterialIcons-Regular.woff2) format('woff2'), url(../icons/material-icons/MaterialIcons-Regular.woff) format('woff'); +} +.material-icons { + /* stylelint-disable-next-line */ + font-family: 'Material Icons'; + /* Support for all WebKit browsers. */ + -webkit-font-smoothing: antialiased; + /* Support for Safari and Chrome. */ + text-rendering: optimizeLegibility; + /* Support for Firefox. */ + -moz-osx-font-smoothing: grayscale; + /* Support for IE. */ + -webkit-font-feature-settings: 'liga'; + font-feature-settings: 'liga'; +} +/** + * ============================================================================= + * ************ Media 媒体工具 ************ + * ============================================================================= + */ +/* 响应式图片和视频 */ +.mdui-img-fluid, +.mdui-video-fluid { + display: block; + max-width: 100%; + height: auto; +} +/* 圆角图片 */ +.mdui-img-rounded { + border-radius: 2px; +} +/* 圆形图片 */ +.mdui-img-circle { + border-radius: 50%; +} +.mdui-video-container { + position: relative; + height: 0; + padding-bottom: 56.25%; + overflow: hidden; +} +.mdui-video-container iframe, +.mdui-video-container object, +.mdui-video-container embed { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; +} +/** + * ============================================================================= + * ************ Roboto 字体 ************ + * ============================================================================= + */ +@font-face { + font-weight: 100; + font-family: 'Roboto'; + font-style: normal; + font-display: swap; + src: local('Roboto Thin'), local('Roboto-Thin'), url('../fonts/roboto/Roboto-Thin.woff2') format('woff2'), url('../fonts/roboto/Roboto-Thin.woff') format('woff'); +} +@font-face { + font-weight: 100; + font-family: 'Roboto'; + font-style: italic; + font-display: swap; + src: local('Roboto ThinItalic'), local('Roboto-ThinItalic'), url('../fonts/roboto/Roboto-ThinItalic.woff2') format('woff2'), url('../fonts/roboto/Roboto-ThinItalic.woff') format('woff'); +} +@font-face { + font-weight: 300; + font-family: 'Roboto'; + font-style: normal; + font-display: swap; + src: local('Roboto Light'), local('Roboto-Light'), url('../fonts/roboto/Roboto-Light.woff2') format('woff2'), url('../fonts/roboto/Roboto-Light.woff') format('woff'); +} +@font-face { + font-weight: 300; + font-family: 'Roboto'; + font-style: italic; + font-display: swap; + src: local('Roboto LightItalic'), local('Roboto-LightItalic'), url('../fonts/roboto/Roboto-LightItalic.woff2') format('woff2'), url('../fonts/roboto/Roboto-LightItalic.woff') format('woff'); +} +@font-face { + font-weight: 400; + font-family: 'Roboto'; + font-style: normal; + font-display: swap; + src: local('Roboto Regular'), local('Roboto-Regular'), url('../fonts/roboto/Roboto-Regular.woff2') format('woff2'), url('../fonts/roboto/Roboto-Regular.woff') format('woff'); +} +@font-face { + font-weight: 400; + font-family: 'Roboto'; + font-style: italic; + font-display: swap; + src: local('Roboto RegularItalic'), local('Roboto-RegularItalic'), url('../fonts/roboto/Roboto-RegularItalic.woff2') format('woff2'), url('../fonts/roboto/Roboto-RegularItalic.woff') format('woff'); +} +@font-face { + font-weight: 500; + font-family: 'Roboto'; + font-style: normal; + font-display: swap; + src: local('Roboto Medium'), local('Roboto-Medium'), url('../fonts/roboto/Roboto-Medium.woff2') format('woff2'), url('../fonts/roboto/Roboto-Medium.woff') format('woff'); +} +@font-face { + font-weight: 500; + font-family: 'Roboto'; + font-style: italic; + font-display: swap; + src: local('Roboto MediumItalic'), local('Roboto-MediumItalic'), url('../fonts/roboto/Roboto-MediumItalic.woff2') format('woff2'), url('../fonts/roboto/Roboto-MediumItalic.woff') format('woff'); +} +@font-face { + font-weight: 700; + font-family: 'Roboto'; + font-style: normal; + font-display: swap; + src: local('Roboto Bold'), local('Roboto-Bold'), url('../fonts/roboto/Roboto-Bold.woff2') format('woff2'), url('../fonts/roboto/Roboto-Bold.woff') format('woff'); +} +@font-face { + font-weight: 700; + font-family: 'Roboto'; + font-style: italic; + font-display: swap; + src: local('Roboto BoldItalic'), local('Roboto-BoldItalic'), url('../fonts/roboto/Roboto-BoldItalic.woff2') format('woff2'), url('../fonts/roboto/Roboto-BoldItalic.woff') format('woff'); +} +@font-face { + font-weight: 900; + font-family: 'Roboto'; + font-style: normal; + font-display: swap; + src: local('Roboto Black'), local('Roboto-Black'), url('../fonts/roboto/Roboto-Black.woff2') format('woff2'), url('../fonts/roboto/Roboto-Black.woff') format('woff'); +} +@font-face { + font-weight: 900; + font-family: 'Roboto'; + font-style: italic; + font-display: swap; + src: local('Roboto BlackItalic'), local('Roboto-BlackItalic'), url('../fonts/roboto/Roboto-BlackItalic.woff2') format('woff2'), url('../fonts/roboto/Roboto-BlackItalic.woff') format('woff'); +} +/** + * ============================================================================= + * ************ Typography 样式排版 ************ + * ============================================================================= + */ +/* .mdui-typo-display-4 */ +.mdui-typo-display-4, +.mdui-typo-display-4-opacity { + font-weight: 300; + font-size: 112px; + letter-spacing: -0.04em; +} +.mdui-typo-display-4-opacity { + opacity: 0.54; +} +/* .mdui-typo-display-3 */ +.mdui-typo-display-3, +.mdui-typo-display-3-opacity { + font-weight: 400; + font-size: 56px; + letter-spacing: -0.02em; +} +.mdui-typo-display-3-opacity { + opacity: 0.54; +} +/* .mdui-typo-display-2 */ +.mdui-typo-display-2, +.mdui-typo-display-2-opacity { + font-weight: 400; + font-size: 45px; + letter-spacing: 0; +} +.mdui-typo-display-2-opacity { + opacity: 0.54; +} +/* .mdui-typo-display-1 */ +.mdui-typo-display-1, +.mdui-typo-display-1-opacity { + font-weight: 400; + font-size: 34px; + letter-spacing: 0; +} +.mdui-typo-display-1-opacity { + opacity: 0.54; +} +/* .mdui-typo-headline */ +.mdui-typo-headline, +.mdui-typo-headline-opacity { + font-weight: 400; + font-size: 24px; + -moz-osx-font-smoothing: grayscale; +} +.mdui-typo-headline-opacity { + opacity: 0.87; +} +/* .mdui-typo-title */ +.mdui-typo-title, +.mdui-typo-title-opacity { + font-weight: 500; + font-size: 20px; + letter-spacing: 0.02em; +} +.mdui-typo-title-opacity { + opacity: 0.87; +} +.mdui-typo-subheading, +.mdui-typo-subheading-opacity { + font-weight: 400; + font-size: 16px; + letter-spacing: 0.04em; +} +.mdui-typo-subheading-opacity { + opacity: 0.87; +} +.mdui-typo-body-2, +.mdui-typo-body-2-opacity { + font-weight: 500; + font-size: 14px; + letter-spacing: 0.04em; +} +.mdui-typo-body-2-opacity { + opacity: 0.87; +} +.mdui-typo-body-1, +.mdui-typo-body-1-opacity { + font-weight: 400; + font-size: 14px; + letter-spacing: 0.04em; +} +.mdui-typo-body-1-opacity { + opacity: 0.87; +} +.mdui-typo-caption, +.mdui-typo-caption-opacity { + font-weight: 400; + font-size: 12px; + letter-spacing: 0.08em; +} +.mdui-typo-caption-opacity { + opacity: 0.54; +} +/** + * ============================================================================= + * ************ Typography 文章排版 ************ + * ============================================================================= + */ +.mdui-typo { + line-height: 1.8; + word-wrap: break-word; + /* a */ + /* small */ + /* blockquote */ + /* mark */ + /* h1 - h6 */ + /* code */ + /* pre code */ + /* abbr */ + /* ins */ + /* u */ + /* del */ + /* hr */ + /* pre */ + /* kbd */ + /* ul / ol */ + /* img, video */ +} +.mdui-typo address, +.mdui-typo caption, +.mdui-typo cite, +.mdui-typo code, +.mdui-typo dfn, +.mdui-typo th { + font-weight: 400; + font-style: normal; +} +.mdui-typo caption, +.mdui-typo th { + text-align: left; +} +.mdui-typo q::before, +.mdui-typo q::after { + content: ''; +} +.mdui-typo pre, +.mdui-typo code, +.mdui-typo kbd, +.mdui-typo samp, +.mdui-typo pre tt { + font-family: Consolas, Courier, 'Courier New', monospace; +} +.mdui-typo figcaption { + color: rgba(0, 0, 0, 0.54); + font-size: 80%; +} +.mdui-typo [draggable], +.mdui-typo [draggable="true"] { + cursor: move; +} +.mdui-typo [draggable="false"] { + cursor: inherit; +} +.mdui-typo p, +.mdui-typo pre, +.mdui-typo ul, +.mdui-typo ol, +.mdui-typo dl, +.mdui-typo form, +.mdui-typo hr, +.mdui-typo figure, +.mdui-typo table, +.mdui-typo .mdui-table, +.mdui-typo .mdui-table-fluid { + margin: 0 0 1.2em 0; +} +.mdui-typo p:last-child, +.mdui-typo pre:last-child, +.mdui-typo ul:last-child, +.mdui-typo ol:last-child, +.mdui-typo dl:last-child, +.mdui-typo form:last-child, +.mdui-typo hr:last-child, +.mdui-typo figure:last-child, +.mdui-typo table:last-child, +.mdui-typo .mdui-table:last-child, +.mdui-typo .mdui-table-fluid:last-child { + margin-bottom: 0; +} +.mdui-typo a { + color: #FF4081; + position: relative; + display: inline-block; + overflow: hidden; + text-decoration: none; + vertical-align: top; + outline: none; +} +.mdui-typo a::before { + position: absolute; + top: auto; + bottom: 1px; + left: 0; + width: 100%; + height: 1px; + background-color: #FF4081; + -webkit-transform: scaleX(0); + transform: scaleX(0); + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + -webkit-transition: all 0.2s; + transition: all 0.2s; + content: ' '; +} +.mdui-typo a:hover::before, +.mdui-typo a:focus::before { + -webkit-transform: scaleX(1); + transform: scaleX(1); +} +.mdui-typo small { + font-size: 80%; +} +.mdui-typo blockquote { + margin: 1em 3em 1em 2em; + padding-left: 1em; + font-weight: 400; + border-left: 4px solid rgba(0, 0, 0, 0.12); +} +@media only screen and (max-width: 599.9px) { + .mdui-typo blockquote { + margin: 1em 0; + } +} +.mdui-typo blockquote:last-child { + margin-bottom: 0; +} +.mdui-typo blockquote footer { + color: rgba(0, 0, 0, 0.54); + font-size: 86%; +} +.mdui-typo mark { + margin: 0 5px; + padding: 2px; + background: #fffdd1; + border-bottom: 1px solid #ffedce; +} +.mdui-typo h1, +.mdui-typo h2, +.mdui-typo h3, +.mdui-typo h4, +.mdui-typo h5, +.mdui-typo h6 { + margin-top: 1.2em; + margin-bottom: 0.6em; + color: inherit; + font-weight: 400; + font-family: inherit; + line-height: 1.35; +} +.mdui-typo h1:last-child, +.mdui-typo h2:last-child, +.mdui-typo h3:last-child, +.mdui-typo h4:last-child, +.mdui-typo h5:last-child, +.mdui-typo h6:last-child { + margin-bottom: 0; +} +.mdui-typo h1 small, +.mdui-typo h2 small, +.mdui-typo h3 small, +.mdui-typo h4 small, +.mdui-typo h5 small, +.mdui-typo h6 small { + color: rgba(0, 0, 0, 0.54); + font-weight: 400; + font-size: 65%; + line-height: 1; +} +.mdui-typo h1 { + font-size: 2em; +} +.mdui-typo h2 { + font-size: 1.8em; +} +.mdui-typo h3 { + font-size: 1.6em; +} +.mdui-typo h4 { + font-size: 1.4em; +} +.mdui-typo h5 { + font-size: 1.2em; +} +.mdui-typo h6 { + font-size: 1.1em; +} +.mdui-typo code { + padding: 2px 6px; + color: #c7254e; + background-color: #f7f7f9; + border-radius: 2px; +} +.mdui-typo pre code { + padding: 0; + color: inherit; + font-size: inherit; + line-height: 1.7; + background-color: transparent; + border-radius: 0; +} +.mdui-typo abbr[title] { + text-decoration: none; + border-bottom: 1px dotted; + cursor: help; +} +.mdui-typo ins { + text-decoration: none; + border-bottom: 1px solid ; +} +.mdui-typo u { + text-decoration: none; + border-bottom: 1px solid; +} +.mdui-typo del { + text-decoration: line-through; +} +.mdui-typo hr { + height: 10px; + margin-bottom: 0.8em; + border: none; + border-bottom: 1px solid rgba(0, 0, 0, 0.12); +} +.mdui-typo pre { + padding: 12px 16px; + overflow-x: auto; + border: 1px solid rgba(0, 0, 0, 0.12); + border-radius: 2px; + -webkit-overflow-scrolling: touch; +} +.mdui-typo kbd { + padding: 2px 6px; + color: #fff; + font-size: 90%; + background-color: #333; + border-radius: 2px; +} +.mdui-typo ul { + padding-left: 2em; + list-style: disc; +} +.mdui-typo ol { + padding-left: 2em; + list-style: decimal; +} +.mdui-typo li ul, +.mdui-typo li ol { + margin: 0.8em 0; +} +.mdui-typo li ul { + list-style: circle; +} +.mdui-typo img, +.mdui-typo video { + max-width: 100%; +} +.mdui-typo figure { + text-align: center; +} +.mdui-typo figure figcaption { + margin-top: 8px; + color: #999; + font-size: 14px; +} +.mdui-typo figure figcaption:empty::before { + z-index: -1; + color: #bfbfbf; + cursor: text; + content: attr(placeholder); +} +/** + * ============================================================================= + * ************ Typo 强调色 ************ + * ============================================================================= + */ +.mdui-theme-accent-amber .mdui-typo a { + color: #FFD740; +} +.mdui-theme-accent-amber .mdui-typo a::before { + background-color: #FFD740; +} +.mdui-theme-accent-blue .mdui-typo a { + color: #448AFF; +} +.mdui-theme-accent-blue .mdui-typo a::before { + background-color: #448AFF; +} +.mdui-theme-accent-cyan .mdui-typo a { + color: #18FFFF; +} +.mdui-theme-accent-cyan .mdui-typo a::before { + background-color: #18FFFF; +} +.mdui-theme-accent-deep-orange .mdui-typo a { + color: #FF6E40; +} +.mdui-theme-accent-deep-orange .mdui-typo a::before { + background-color: #FF6E40; +} +.mdui-theme-accent-deep-purple .mdui-typo a { + color: #7C4DFF; +} +.mdui-theme-accent-deep-purple .mdui-typo a::before { + background-color: #7C4DFF; +} +.mdui-theme-accent-green .mdui-typo a { + color: #69F0AE; +} +.mdui-theme-accent-green .mdui-typo a::before { + background-color: #69F0AE; +} +.mdui-theme-accent-indigo .mdui-typo a { + color: #536DFE; +} +.mdui-theme-accent-indigo .mdui-typo a::before { + background-color: #536DFE; +} +.mdui-theme-accent-light-blue .mdui-typo a { + color: #40C4FF; +} +.mdui-theme-accent-light-blue .mdui-typo a::before { + background-color: #40C4FF; +} +.mdui-theme-accent-light-green .mdui-typo a { + color: #B2FF59; +} +.mdui-theme-accent-light-green .mdui-typo a::before { + background-color: #B2FF59; +} +.mdui-theme-accent-lime .mdui-typo a { + color: #EEFF41; +} +.mdui-theme-accent-lime .mdui-typo a::before { + background-color: #EEFF41; +} +.mdui-theme-accent-orange .mdui-typo a { + color: #FFAB40; +} +.mdui-theme-accent-orange .mdui-typo a::before { + background-color: #FFAB40; +} +.mdui-theme-accent-pink .mdui-typo a { + color: #FF4081; +} +.mdui-theme-accent-pink .mdui-typo a::before { + background-color: #FF4081; +} +.mdui-theme-accent-purple .mdui-typo a { + color: #E040FB; +} +.mdui-theme-accent-purple .mdui-typo a::before { + background-color: #E040FB; +} +.mdui-theme-accent-red .mdui-typo a { + color: #FF5252; +} +.mdui-theme-accent-red .mdui-typo a::before { + background-color: #FF5252; +} +.mdui-theme-accent-teal .mdui-typo a { + color: #64FFDA; +} +.mdui-theme-accent-teal .mdui-typo a::before { + background-color: #64FFDA; +} +.mdui-theme-accent-yellow .mdui-typo a { + color: #FFFF00; +} +.mdui-theme-accent-yellow .mdui-typo a::before { + background-color: #FFFF00; +} +/** + * ============================================================================= + * ************ Typo dark ************ + * ============================================================================= + */ +.mdui-theme-layout-dark .mdui-typo blockquote { + border-left-color: rgba(255, 255, 255, 0.12); +} +.mdui-theme-layout-dark .mdui-typo blockquote footer { + color: rgba(255, 255, 255, 0.7); +} +.mdui-theme-layout-dark .mdui-typo figcaption { + color: rgba(255, 255, 255, 0.7); +} +.mdui-theme-layout-dark .mdui-typo mark { + background: #aaa; + border-bottom-color: #bbb; +} +.mdui-theme-layout-dark .mdui-typo h1 small, +.mdui-theme-layout-dark .mdui-typo h2 small, +.mdui-theme-layout-dark .mdui-typo h3 small, +.mdui-theme-layout-dark .mdui-typo h4 small, +.mdui-theme-layout-dark .mdui-typo h5 small, +.mdui-theme-layout-dark .mdui-typo h6 small { + color: rgba(255, 255, 255, 0.7); +} +.mdui-theme-layout-dark .mdui-typo code { + color: #FFCDD2; + background-color: #424242; +} +.mdui-theme-layout-dark .mdui-typo pre { + background: #424242; + border-color: rgba(255, 255, 255, 0.12); +} +.mdui-theme-layout-dark .mdui-typo kbd { + background: #424242; +} +.mdui-theme-layout-dark .mdui-typo hr { + border-color: rgba(255, 255, 255, 0.12); +} +@media (prefers-color-scheme: dark) { + .mdui-theme-layout-auto .mdui-typo blockquote { + border-left-color: rgba(255, 255, 255, 0.12); + } + .mdui-theme-layout-auto .mdui-typo blockquote footer { + color: rgba(255, 255, 255, 0.7); + } + .mdui-theme-layout-auto .mdui-typo figcaption { + color: rgba(255, 255, 255, 0.7); + } + .mdui-theme-layout-auto .mdui-typo mark { + background: #aaa; + border-bottom-color: #bbb; + } + .mdui-theme-layout-auto .mdui-typo h1 small, + .mdui-theme-layout-auto .mdui-typo h2 small, + .mdui-theme-layout-auto .mdui-typo h3 small, + .mdui-theme-layout-auto .mdui-typo h4 small, + .mdui-theme-layout-auto .mdui-typo h5 small, + .mdui-theme-layout-auto .mdui-typo h6 small { + color: rgba(255, 255, 255, 0.7); + } + .mdui-theme-layout-auto .mdui-typo code { + color: #FFCDD2; + background-color: #424242; + } + .mdui-theme-layout-auto .mdui-typo pre { + background: #424242; + border-color: rgba(255, 255, 255, 0.12); + } + .mdui-theme-layout-auto .mdui-typo kbd { + background: #424242; + } + .mdui-theme-layout-auto .mdui-typo hr { + border-color: rgba(255, 255, 255, 0.12); + } +} +/** + * ============================================================================= + * ************ Grid 网格系统 ************ + * ============================================================================= + */ +.mdui-container, +.mdui-container-fluid { + -webkit-box-sizing: border-box; + box-sizing: border-box; + margin-right: auto; + margin-left: auto; + padding-right: 8px; + padding-left: 8px; +} +.mdui-container::after, +.mdui-container-fluid::after { + display: table; + clear: both; + content: ''; +} +.mdui-container { + width: 96%; + max-width: 1280px; +} +@media (min-width: 600px) { + .mdui-container { + width: 94%; + } +} +@media (min-width: 1024px) { + .mdui-container { + width: 92%; + } +} +.mdui-row, +[class*="mdui-row-"] { + margin-right: -8px; + margin-left: -8px; +} +.mdui-row::after, +[class*="mdui-row-"]::after { + display: table; + clear: both; + content: ''; +} +[class*="mdui-col-xs-"], +[class*="mdui-col-sm-"], +[class*="mdui-col-md-"], +[class*="mdui-col-lg-"], +[class*="mdui-col-xl-"], +.mdui-col { + position: relative; + -webkit-box-sizing: border-box; + box-sizing: border-box; + min-height: 1px; + padding-right: 8px; + padding-left: 8px; +} +/* 取消列间距 */ +.mdui-row-gapless .mdui-col, +.mdui-row-gapless [class*="mdui-col-xs-"], +.mdui-row-gapless [class*="mdui-col-sm-"], +.mdui-row-gapless [class*="mdui-col-md-"], +.mdui-row-gapless [class*="mdui-col-lg-"], +.mdui-row-gapless [class*="mdui-col-xl-"] { + padding-right: 0; + padding-left: 0; +} +.mdui-row-gapless .mdui-row, +.mdui-row-gapless [class*="mdui-row-"] { + margin-right: 0; + margin-left: 0; +} +.mdui-col-xs-1 { + float: left; + width: 8.333333%; +} +.mdui-col-offset-xs-1 { + margin-left: 8.333333%; +} +.mdui-row-xs-1 .mdui-col { + float: left; + width: 100%; +} +.mdui-col-xs-2 { + float: left; + width: 16.666667%; +} +.mdui-col-offset-xs-2 { + margin-left: 16.666667%; +} +.mdui-row-xs-2 .mdui-col { + float: left; + width: 50%; +} +.mdui-col-xs-3 { + float: left; + width: 25%; +} +.mdui-col-offset-xs-3 { + margin-left: 25%; +} +.mdui-row-xs-3 .mdui-col { + float: left; + width: 33.333333%; +} +.mdui-col-xs-4 { + float: left; + width: 33.333333%; +} +.mdui-col-offset-xs-4 { + margin-left: 33.333333%; +} +.mdui-row-xs-4 .mdui-col { + float: left; + width: 25%; +} +.mdui-col-xs-5 { + float: left; + width: 41.666667%; +} +.mdui-col-offset-xs-5 { + margin-left: 41.666667%; +} +.mdui-row-xs-5 .mdui-col { + float: left; + width: 20%; +} +.mdui-col-xs-6 { + float: left; + width: 50%; +} +.mdui-col-offset-xs-6 { + margin-left: 50%; +} +.mdui-row-xs-6 .mdui-col { + float: left; + width: 16.666667%; +} +.mdui-col-xs-7 { + float: left; + width: 58.333333%; +} +.mdui-col-offset-xs-7 { + margin-left: 58.333333%; +} +.mdui-row-xs-7 .mdui-col { + float: left; + width: 14.285714%; +} +.mdui-col-xs-8 { + float: left; + width: 66.666667%; +} +.mdui-col-offset-xs-8 { + margin-left: 66.666667%; +} +.mdui-row-xs-8 .mdui-col { + float: left; + width: 12.5%; +} +.mdui-col-xs-9 { + float: left; + width: 75%; +} +.mdui-col-offset-xs-9 { + margin-left: 75%; +} +.mdui-row-xs-9 .mdui-col { + float: left; + width: 11.111111%; +} +.mdui-col-xs-10 { + float: left; + width: 83.333333%; +} +.mdui-col-offset-xs-10 { + margin-left: 83.333333%; +} +.mdui-row-xs-10 .mdui-col { + float: left; + width: 10%; +} +.mdui-col-xs-11 { + float: left; + width: 91.666667%; +} +.mdui-col-offset-xs-11 { + margin-left: 91.666667%; +} +.mdui-row-xs-11 .mdui-col { + float: left; + width: 9.090909%; +} +.mdui-col-xs-12 { + float: left; + width: 100%; +} +.mdui-col-offset-xs-12 { + margin-left: 100%; +} +.mdui-row-xs-12 .mdui-col { + float: left; + width: 8.333333%; +} +@media (min-width: 600px) { + .mdui-col-sm-1 { + float: left; + width: 8.333333%; + } + .mdui-col-offset-sm-1 { + margin-left: 8.333333%; + } + .mdui-row-sm-1 .mdui-col { + float: left; + width: 100%; + } + .mdui-col-sm-2 { + float: left; + width: 16.666667%; + } + .mdui-col-offset-sm-2 { + margin-left: 16.666667%; + } + .mdui-row-sm-2 .mdui-col { + float: left; + width: 50%; + } + .mdui-col-sm-3 { + float: left; + width: 25%; + } + .mdui-col-offset-sm-3 { + margin-left: 25%; + } + .mdui-row-sm-3 .mdui-col { + float: left; + width: 33.333333%; + } + .mdui-col-sm-4 { + float: left; + width: 33.333333%; + } + .mdui-col-offset-sm-4 { + margin-left: 33.333333%; + } + .mdui-row-sm-4 .mdui-col { + float: left; + width: 25%; + } + .mdui-col-sm-5 { + float: left; + width: 41.666667%; + } + .mdui-col-offset-sm-5 { + margin-left: 41.666667%; + } + .mdui-row-sm-5 .mdui-col { + float: left; + width: 20%; + } + .mdui-col-sm-6 { + float: left; + width: 50%; + } + .mdui-col-offset-sm-6 { + margin-left: 50%; + } + .mdui-row-sm-6 .mdui-col { + float: left; + width: 16.666667%; + } + .mdui-col-sm-7 { + float: left; + width: 58.333333%; + } + .mdui-col-offset-sm-7 { + margin-left: 58.333333%; + } + .mdui-row-sm-7 .mdui-col { + float: left; + width: 14.285714%; + } + .mdui-col-sm-8 { + float: left; + width: 66.666667%; + } + .mdui-col-offset-sm-8 { + margin-left: 66.666667%; + } + .mdui-row-sm-8 .mdui-col { + float: left; + width: 12.5%; + } + .mdui-col-sm-9 { + float: left; + width: 75%; + } + .mdui-col-offset-sm-9 { + margin-left: 75%; + } + .mdui-row-sm-9 .mdui-col { + float: left; + width: 11.111111%; + } + .mdui-col-sm-10 { + float: left; + width: 83.333333%; + } + .mdui-col-offset-sm-10 { + margin-left: 83.333333%; + } + .mdui-row-sm-10 .mdui-col { + float: left; + width: 10%; + } + .mdui-col-sm-11 { + float: left; + width: 91.666667%; + } + .mdui-col-offset-sm-11 { + margin-left: 91.666667%; + } + .mdui-row-sm-11 .mdui-col { + float: left; + width: 9.090909%; + } + .mdui-col-sm-12 { + float: left; + width: 100%; + } + .mdui-col-offset-sm-12 { + margin-left: 100%; + } + .mdui-row-sm-12 .mdui-col { + float: left; + width: 8.333333%; + } +} +@media (min-width: 1024px) { + .mdui-col-md-1 { + float: left; + width: 8.333333%; + } + .mdui-col-offset-md-1 { + margin-left: 8.333333%; + } + .mdui-row-md-1 .mdui-col { + float: left; + width: 100%; + } + .mdui-col-md-2 { + float: left; + width: 16.666667%; + } + .mdui-col-offset-md-2 { + margin-left: 16.666667%; + } + .mdui-row-md-2 .mdui-col { + float: left; + width: 50%; + } + .mdui-col-md-3 { + float: left; + width: 25%; + } + .mdui-col-offset-md-3 { + margin-left: 25%; + } + .mdui-row-md-3 .mdui-col { + float: left; + width: 33.333333%; + } + .mdui-col-md-4 { + float: left; + width: 33.333333%; + } + .mdui-col-offset-md-4 { + margin-left: 33.333333%; + } + .mdui-row-md-4 .mdui-col { + float: left; + width: 25%; + } + .mdui-col-md-5 { + float: left; + width: 41.666667%; + } + .mdui-col-offset-md-5 { + margin-left: 41.666667%; + } + .mdui-row-md-5 .mdui-col { + float: left; + width: 20%; + } + .mdui-col-md-6 { + float: left; + width: 50%; + } + .mdui-col-offset-md-6 { + margin-left: 50%; + } + .mdui-row-md-6 .mdui-col { + float: left; + width: 16.666667%; + } + .mdui-col-md-7 { + float: left; + width: 58.333333%; + } + .mdui-col-offset-md-7 { + margin-left: 58.333333%; + } + .mdui-row-md-7 .mdui-col { + float: left; + width: 14.285714%; + } + .mdui-col-md-8 { + float: left; + width: 66.666667%; + } + .mdui-col-offset-md-8 { + margin-left: 66.666667%; + } + .mdui-row-md-8 .mdui-col { + float: left; + width: 12.5%; + } + .mdui-col-md-9 { + float: left; + width: 75%; + } + .mdui-col-offset-md-9 { + margin-left: 75%; + } + .mdui-row-md-9 .mdui-col { + float: left; + width: 11.111111%; + } + .mdui-col-md-10 { + float: left; + width: 83.333333%; + } + .mdui-col-offset-md-10 { + margin-left: 83.333333%; + } + .mdui-row-md-10 .mdui-col { + float: left; + width: 10%; + } + .mdui-col-md-11 { + float: left; + width: 91.666667%; + } + .mdui-col-offset-md-11 { + margin-left: 91.666667%; + } + .mdui-row-md-11 .mdui-col { + float: left; + width: 9.090909%; + } + .mdui-col-md-12 { + float: left; + width: 100%; + } + .mdui-col-offset-md-12 { + margin-left: 100%; + } + .mdui-row-md-12 .mdui-col { + float: left; + width: 8.333333%; + } +} +@media (min-width: 1440px) { + .mdui-col-lg-1 { + float: left; + width: 8.333333%; + } + .mdui-col-offset-lg-1 { + margin-left: 8.333333%; + } + .mdui-row-lg-1 .mdui-col { + float: left; + width: 100%; + } + .mdui-col-lg-2 { + float: left; + width: 16.666667%; + } + .mdui-col-offset-lg-2 { + margin-left: 16.666667%; + } + .mdui-row-lg-2 .mdui-col { + float: left; + width: 50%; + } + .mdui-col-lg-3 { + float: left; + width: 25%; + } + .mdui-col-offset-lg-3 { + margin-left: 25%; + } + .mdui-row-lg-3 .mdui-col { + float: left; + width: 33.333333%; + } + .mdui-col-lg-4 { + float: left; + width: 33.333333%; + } + .mdui-col-offset-lg-4 { + margin-left: 33.333333%; + } + .mdui-row-lg-4 .mdui-col { + float: left; + width: 25%; + } + .mdui-col-lg-5 { + float: left; + width: 41.666667%; + } + .mdui-col-offset-lg-5 { + margin-left: 41.666667%; + } + .mdui-row-lg-5 .mdui-col { + float: left; + width: 20%; + } + .mdui-col-lg-6 { + float: left; + width: 50%; + } + .mdui-col-offset-lg-6 { + margin-left: 50%; + } + .mdui-row-lg-6 .mdui-col { + float: left; + width: 16.666667%; + } + .mdui-col-lg-7 { + float: left; + width: 58.333333%; + } + .mdui-col-offset-lg-7 { + margin-left: 58.333333%; + } + .mdui-row-lg-7 .mdui-col { + float: left; + width: 14.285714%; + } + .mdui-col-lg-8 { + float: left; + width: 66.666667%; + } + .mdui-col-offset-lg-8 { + margin-left: 66.666667%; + } + .mdui-row-lg-8 .mdui-col { + float: left; + width: 12.5%; + } + .mdui-col-lg-9 { + float: left; + width: 75%; + } + .mdui-col-offset-lg-9 { + margin-left: 75%; + } + .mdui-row-lg-9 .mdui-col { + float: left; + width: 11.111111%; + } + .mdui-col-lg-10 { + float: left; + width: 83.333333%; + } + .mdui-col-offset-lg-10 { + margin-left: 83.333333%; + } + .mdui-row-lg-10 .mdui-col { + float: left; + width: 10%; + } + .mdui-col-lg-11 { + float: left; + width: 91.666667%; + } + .mdui-col-offset-lg-11 { + margin-left: 91.666667%; + } + .mdui-row-lg-11 .mdui-col { + float: left; + width: 9.090909%; + } + .mdui-col-lg-12 { + float: left; + width: 100%; + } + .mdui-col-offset-lg-12 { + margin-left: 100%; + } + .mdui-row-lg-12 .mdui-col { + float: left; + width: 8.333333%; + } +} +@media (min-width: 1920px) { + .mdui-col-xl-1 { + float: left; + width: 8.333333%; + } + .mdui-col-offset-xl-1 { + margin-left: 8.333333%; + } + .mdui-row-xl-1 .mdui-col { + float: left; + width: 100%; + } + .mdui-col-xl-2 { + float: left; + width: 16.666667%; + } + .mdui-col-offset-xl-2 { + margin-left: 16.666667%; + } + .mdui-row-xl-2 .mdui-col { + float: left; + width: 50%; + } + .mdui-col-xl-3 { + float: left; + width: 25%; + } + .mdui-col-offset-xl-3 { + margin-left: 25%; + } + .mdui-row-xl-3 .mdui-col { + float: left; + width: 33.333333%; + } + .mdui-col-xl-4 { + float: left; + width: 33.333333%; + } + .mdui-col-offset-xl-4 { + margin-left: 33.333333%; + } + .mdui-row-xl-4 .mdui-col { + float: left; + width: 25%; + } + .mdui-col-xl-5 { + float: left; + width: 41.666667%; + } + .mdui-col-offset-xl-5 { + margin-left: 41.666667%; + } + .mdui-row-xl-5 .mdui-col { + float: left; + width: 20%; + } + .mdui-col-xl-6 { + float: left; + width: 50%; + } + .mdui-col-offset-xl-6 { + margin-left: 50%; + } + .mdui-row-xl-6 .mdui-col { + float: left; + width: 16.666667%; + } + .mdui-col-xl-7 { + float: left; + width: 58.333333%; + } + .mdui-col-offset-xl-7 { + margin-left: 58.333333%; + } + .mdui-row-xl-7 .mdui-col { + float: left; + width: 14.285714%; + } + .mdui-col-xl-8 { + float: left; + width: 66.666667%; + } + .mdui-col-offset-xl-8 { + margin-left: 66.666667%; + } + .mdui-row-xl-8 .mdui-col { + float: left; + width: 12.5%; + } + .mdui-col-xl-9 { + float: left; + width: 75%; + } + .mdui-col-offset-xl-9 { + margin-left: 75%; + } + .mdui-row-xl-9 .mdui-col { + float: left; + width: 11.111111%; + } + .mdui-col-xl-10 { + float: left; + width: 83.333333%; + } + .mdui-col-offset-xl-10 { + margin-left: 83.333333%; + } + .mdui-row-xl-10 .mdui-col { + float: left; + width: 10%; + } + .mdui-col-xl-11 { + float: left; + width: 91.666667%; + } + .mdui-col-offset-xl-11 { + margin-left: 91.666667%; + } + .mdui-row-xl-11 .mdui-col { + float: left; + width: 9.090909%; + } + .mdui-col-xl-12 { + float: left; + width: 100%; + } + .mdui-col-offset-xl-12 { + margin-left: 100%; + } + .mdui-row-xl-12 .mdui-col { + float: left; + width: 8.333333%; + } +} +/** + * ============================================================================= + * ************ Shadow 阴影 ************ + * ============================================================================= + */ +.mdui-shadow-0 { + -webkit-box-shadow: none !important; + box-shadow: none !important; +} +.mdui-shadow-1 { + -webkit-box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12) !important; + box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12) !important; +} +.mdui-shadow-2 { + -webkit-box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12) !important; + box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12) !important; +} +.mdui-shadow-3 { + -webkit-box-shadow: 0 3px 3px -2px rgba(0, 0, 0, 0.2), 0 3px 4px 0 rgba(0, 0, 0, 0.14), 0 1px 8px 0 rgba(0, 0, 0, 0.12) !important; + box-shadow: 0 3px 3px -2px rgba(0, 0, 0, 0.2), 0 3px 4px 0 rgba(0, 0, 0, 0.14), 0 1px 8px 0 rgba(0, 0, 0, 0.12) !important; +} +.mdui-shadow-4 { + -webkit-box-shadow: 0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12) !important; + box-shadow: 0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12) !important; +} +.mdui-shadow-5 { + -webkit-box-shadow: 0 3px 5px -1px rgba(0, 0, 0, 0.2), 0 5px 8px 0 rgba(0, 0, 0, 0.14), 0 1px 14px 0 rgba(0, 0, 0, 0.12) !important; + box-shadow: 0 3px 5px -1px rgba(0, 0, 0, 0.2), 0 5px 8px 0 rgba(0, 0, 0, 0.14), 0 1px 14px 0 rgba(0, 0, 0, 0.12) !important; +} +.mdui-shadow-6 { + -webkit-box-shadow: 0 3px 5px -1px rgba(0, 0, 0, 0.2), 0 6px 10px 0 rgba(0, 0, 0, 0.14), 0 1px 18px 0 rgba(0, 0, 0, 0.12) !important; + box-shadow: 0 3px 5px -1px rgba(0, 0, 0, 0.2), 0 6px 10px 0 rgba(0, 0, 0, 0.14), 0 1px 18px 0 rgba(0, 0, 0, 0.12) !important; +} +.mdui-shadow-7 { + -webkit-box-shadow: 0 4px 5px -2px rgba(0, 0, 0, 0.2), 0 7px 10px 1px rgba(0, 0, 0, 0.14), 0 2px 16px 1px rgba(0, 0, 0, 0.12) !important; + box-shadow: 0 4px 5px -2px rgba(0, 0, 0, 0.2), 0 7px 10px 1px rgba(0, 0, 0, 0.14), 0 2px 16px 1px rgba(0, 0, 0, 0.12) !important; +} +.mdui-shadow-8 { + -webkit-box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12) !important; + box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12) !important; +} +.mdui-shadow-9 { + -webkit-box-shadow: 0 5px 6px -3px rgba(0, 0, 0, 0.2), 0 9px 12px 1px rgba(0, 0, 0, 0.14), 0 3px 16px 2px rgba(0, 0, 0, 0.12) !important; + box-shadow: 0 5px 6px -3px rgba(0, 0, 0, 0.2), 0 9px 12px 1px rgba(0, 0, 0, 0.14), 0 3px 16px 2px rgba(0, 0, 0, 0.12) !important; +} +.mdui-shadow-10 { + -webkit-box-shadow: 0 6px 6px -3px rgba(0, 0, 0, 0.2), 0 10px 14px 1px rgba(0, 0, 0, 0.14), 0 4px 18px 3px rgba(0, 0, 0, 0.12) !important; + box-shadow: 0 6px 6px -3px rgba(0, 0, 0, 0.2), 0 10px 14px 1px rgba(0, 0, 0, 0.14), 0 4px 18px 3px rgba(0, 0, 0, 0.12) !important; +} +.mdui-shadow-11 { + -webkit-box-shadow: 0 6px 7px -4px rgba(0, 0, 0, 0.2), 0 11px 15px 1px rgba(0, 0, 0, 0.14), 0 4px 20px 3px rgba(0, 0, 0, 0.12) !important; + box-shadow: 0 6px 7px -4px rgba(0, 0, 0, 0.2), 0 11px 15px 1px rgba(0, 0, 0, 0.14), 0 4px 20px 3px rgba(0, 0, 0, 0.12) !important; +} +.mdui-shadow-12 { + -webkit-box-shadow: 0 7px 8px -4px rgba(0, 0, 0, 0.2), 0 12px 17px 2px rgba(0, 0, 0, 0.14), 0 5px 22px 4px rgba(0, 0, 0, 0.12) !important; + box-shadow: 0 7px 8px -4px rgba(0, 0, 0, 0.2), 0 12px 17px 2px rgba(0, 0, 0, 0.14), 0 5px 22px 4px rgba(0, 0, 0, 0.12) !important; +} +.mdui-shadow-13 { + -webkit-box-shadow: 0 7px 8px -4px rgba(0, 0, 0, 0.2), 0 13px 19px 2px rgba(0, 0, 0, 0.14), 0 5px 24px 4px rgba(0, 0, 0, 0.12) !important; + box-shadow: 0 7px 8px -4px rgba(0, 0, 0, 0.2), 0 13px 19px 2px rgba(0, 0, 0, 0.14), 0 5px 24px 4px rgba(0, 0, 0, 0.12) !important; +} +.mdui-shadow-14 { + -webkit-box-shadow: 0 7px 9px -4px rgba(0, 0, 0, 0.2), 0 14px 21px 2px rgba(0, 0, 0, 0.14), 0 5px 26px 4px rgba(0, 0, 0, 0.12) !important; + box-shadow: 0 7px 9px -4px rgba(0, 0, 0, 0.2), 0 14px 21px 2px rgba(0, 0, 0, 0.14), 0 5px 26px 4px rgba(0, 0, 0, 0.12) !important; +} +.mdui-shadow-15 { + -webkit-box-shadow: 0 8px 9px -5px rgba(0, 0, 0, 0.2), 0 15px 22px 2px rgba(0, 0, 0, 0.14), 0 6px 28px 5px rgba(0, 0, 0, 0.12) !important; + box-shadow: 0 8px 9px -5px rgba(0, 0, 0, 0.2), 0 15px 22px 2px rgba(0, 0, 0, 0.14), 0 6px 28px 5px rgba(0, 0, 0, 0.12) !important; +} +.mdui-shadow-16 { + -webkit-box-shadow: 0 8px 10px -5px rgba(0, 0, 0, 0.2), 0 16px 24px 2px rgba(0, 0, 0, 0.14), 0 6px 30px 5px rgba(0, 0, 0, 0.12) !important; + box-shadow: 0 8px 10px -5px rgba(0, 0, 0, 0.2), 0 16px 24px 2px rgba(0, 0, 0, 0.14), 0 6px 30px 5px rgba(0, 0, 0, 0.12) !important; +} +.mdui-shadow-17 { + -webkit-box-shadow: 0 8px 11px -5px rgba(0, 0, 0, 0.2), 0 17px 26px 2px rgba(0, 0, 0, 0.14), 0 6px 32px 5px rgba(0, 0, 0, 0.12) !important; + box-shadow: 0 8px 11px -5px rgba(0, 0, 0, 0.2), 0 17px 26px 2px rgba(0, 0, 0, 0.14), 0 6px 32px 5px rgba(0, 0, 0, 0.12) !important; +} +.mdui-shadow-18 { + -webkit-box-shadow: 0 9px 11px -5px rgba(0, 0, 0, 0.2), 0 18px 28px 2px rgba(0, 0, 0, 0.14), 0 7px 34px 6px rgba(0, 0, 0, 0.12) !important; + box-shadow: 0 9px 11px -5px rgba(0, 0, 0, 0.2), 0 18px 28px 2px rgba(0, 0, 0, 0.14), 0 7px 34px 6px rgba(0, 0, 0, 0.12) !important; +} +.mdui-shadow-19 { + -webkit-box-shadow: 0 9px 12px -6px rgba(0, 0, 0, 0.2), 0 19px 29px 2px rgba(0, 0, 0, 0.14), 0 7px 36px 6px rgba(0, 0, 0, 0.12) !important; + box-shadow: 0 9px 12px -6px rgba(0, 0, 0, 0.2), 0 19px 29px 2px rgba(0, 0, 0, 0.14), 0 7px 36px 6px rgba(0, 0, 0, 0.12) !important; +} +.mdui-shadow-20 { + -webkit-box-shadow: 0 10px 13px -6px rgba(0, 0, 0, 0.2), 0 20px 31px 3px rgba(0, 0, 0, 0.14), 0 8px 38px 7px rgba(0, 0, 0, 0.12) !important; + box-shadow: 0 10px 13px -6px rgba(0, 0, 0, 0.2), 0 20px 31px 3px rgba(0, 0, 0, 0.14), 0 8px 38px 7px rgba(0, 0, 0, 0.12) !important; +} +.mdui-shadow-21 { + -webkit-box-shadow: 0 10px 13px -6px rgba(0, 0, 0, 0.2), 0 21px 33px 3px rgba(0, 0, 0, 0.14), 0 8px 40px 7px rgba(0, 0, 0, 0.12) !important; + box-shadow: 0 10px 13px -6px rgba(0, 0, 0, 0.2), 0 21px 33px 3px rgba(0, 0, 0, 0.14), 0 8px 40px 7px rgba(0, 0, 0, 0.12) !important; +} +.mdui-shadow-22 { + -webkit-box-shadow: 0 10px 14px -6px rgba(0, 0, 0, 0.2), 0 22px 35px 3px rgba(0, 0, 0, 0.14), 0 8px 42px 7px rgba(0, 0, 0, 0.12) !important; + box-shadow: 0 10px 14px -6px rgba(0, 0, 0, 0.2), 0 22px 35px 3px rgba(0, 0, 0, 0.14), 0 8px 42px 7px rgba(0, 0, 0, 0.12) !important; +} +.mdui-shadow-23 { + -webkit-box-shadow: 0 11px 14px -7px rgba(0, 0, 0, 0.2), 0 23px 36px 3px rgba(0, 0, 0, 0.14), 0 9px 44px 8px rgba(0, 0, 0, 0.12) !important; + box-shadow: 0 11px 14px -7px rgba(0, 0, 0, 0.2), 0 23px 36px 3px rgba(0, 0, 0, 0.14), 0 9px 44px 8px rgba(0, 0, 0, 0.12) !important; +} +.mdui-shadow-24 { + -webkit-box-shadow: 0 11px 15px -7px rgba(0, 0, 0, 0.2), 0 24px 38px 3px rgba(0, 0, 0, 0.14), 0 9px 46px 8px rgba(0, 0, 0, 0.12) !important; + box-shadow: 0 11px 15px -7px rgba(0, 0, 0, 0.2), 0 24px 38px 3px rgba(0, 0, 0, 0.14), 0 9px 46px 8px rgba(0, 0, 0, 0.12) !important; +} +/* 鼠标悬浮时加深阴影 */ +.mdui-hoverable { + -webkit-transition: -webkit-box-shadow 0.25s cubic-bezier(0.4, 0, 0.2, 1); + transition: -webkit-box-shadow 0.25s cubic-bezier(0.4, 0, 0.2, 1); + transition: box-shadow 0.25s cubic-bezier(0.4, 0, 0.2, 1); + transition: box-shadow 0.25s cubic-bezier(0.4, 0, 0.2, 1), -webkit-box-shadow 0.25s cubic-bezier(0.4, 0, 0.2, 1); + will-change: box-shadow; +} +.mdui-hoverable:hover, +.mdui-hoverable:focus { + -webkit-box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12); + box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12); +} +/** + * ============================================================================= + * ************ Headroom ************ + * ============================================================================= + */ +.mdui-headroom { + -webkit-transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important; + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important; +} +/* 固定在顶部时 */ +.mdui-headroom-pinned-top { + -webkit-transform: translate3d(0, 0, 0) !important; + transform: translate3d(0, 0, 0) !important; +} +/* 在顶部隐藏时 */ +.mdui-headroom-unpinned-top { + -webkit-transform: translate3d(0, -100%, 0) !important; + transform: translate3d(0, -100%, 0) !important; + -webkit-box-shadow: none !important; + box-shadow: none !important; +} +/* 固定在底部时 */ +.mdui-headroom-pinned-down { + -webkit-transform: translate3d(0, 0, 0) !important; + transform: translate3d(0, 0, 0) !important; +} +/* 在底部隐藏时 */ +.mdui-headroom-unpinned-down { + -webkit-transform: translate3d(0, 100%, 0) !important; + transform: translate3d(0, 100%, 0) !important; + -webkit-box-shadow: none !important; + box-shadow: none !important; +} +/* 固定应用栏中的工具栏 */ +.mdui-headroom-pinned-toolbar { + -webkit-transform: translate3d(0, 0, 0) !important; + transform: translate3d(0, 0, 0) !important; +} +/* 隐藏应用栏中的工具栏 */ +.mdui-headroom-unpinned-toolbar { + -webkit-transform: translate3d(0, -56px, 0) !important; + transform: translate3d(0, -56px, 0) !important; +} +@media (min-width: 600px) { + .mdui-headroom-unpinned-toolbar { + -webkit-transform: translate3d(0, -64px, 0) !important; + transform: translate3d(0, -64px, 0) !important; + } +} +@media (orientation: landscape) and (max-width: 959.9px) { + .mdui-headroom-unpinned-toolbar { + -webkit-transform: translate3d(0, -48px, 0) !important; + transform: translate3d(0, -48px, 0) !important; + } +} +/** + * ============================================================================= + * ************ Collapse 折叠插件 ************ + * ============================================================================= + */ +.mdui-collapse-item-header .mdui-collapse-item-arrow, +.mdui-collapse-item-header.mdui-collapse-item-arrow { + -webkit-transform: rotate(0); + transform: rotate(0); + -webkit-transition: -webkit-transform 0.3s cubic-bezier(0.4, 0, 0.2, 1); + transition: -webkit-transform 0.3s cubic-bezier(0.4, 0, 0.2, 1); + transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1); + transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 0.3s cubic-bezier(0.4, 0, 0.2, 1); + will-change: transform; +} +.mdui-collapse-item-body { + height: 0; + margin-top: 0; + margin-bottom: 0; + padding-top: 0; + padding-bottom: 0; + overflow: hidden; + -webkit-transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); + will-change: height; +} +.mdui-collapse-item-body .mdui-list-item { + padding-left: 72px; +} +.mdui-collapse-item-open > .mdui-collapse-item-header .mdui-collapse-item-arrow, +.mdui-collapse-item-open > .mdui-collapse-item-header.mdui-collapse-item-arrow { + -webkit-transform: rotate(180deg); + transform: rotate(180deg); +} +.mdui-collapse-item-open > .mdui-collapse-item-body { + height: auto; +} +/** + * ============================================================================= + * ************ Expansion panel 可扩展面板 ************ + * ============================================================================= + */ +/* 可扩展面板 */ +.mdui-panel { + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 100%; +} +/* 面板项 */ +.mdui-panel-item { + color: rgba(0, 0, 0, 0.87); + background-color: #fff; + -webkit-transition: margin 0.3s cubic-bezier(0.4, 0, 0.2, 1); + transition: margin 0.3s cubic-bezier(0.4, 0, 0.2, 1); + will-change: margin; + border-bottom: 1px solid rgba(0, 0, 0, 0.12); + -webkit-box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12); + box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12); +} +.mdui-panel-item:last-child { + border-bottom: none; +} +/* 面板头部 */ +.mdui-panel-item-header { + position: relative; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 100%; + height: 48px; + padding: 0 24px; + font-size: 15px; + cursor: pointer; + -webkit-transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); + will-change: height, background-color; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} +.mdui-panel-item-header:active { + background-color: #EEEEEE; +} +/* 面板项标题 */ +.mdui-panel-item-title { + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 36%; + min-width: 36%; + padding-right: 16px; + font-weight: 500; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} +/* 面板项内容 */ +.mdui-panel-item-summary { + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + -webkit-box-sizing: border-box; + box-sizing: border-box; + padding-right: 16px; + color: rgba(0, 0, 0, 0.54); + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} +/* 展开收起的图标 */ +.mdui-panel-item-arrow { + position: absolute; + top: 12px; + right: 24px; + color: rgba(0, 0, 0, 0.54); + -webkit-transform: rotate(0); + transform: rotate(0); + -webkit-transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + will-change: transform, top; +} +.mdui-panel-item-summary + .mdui-panel-item-arrow { + position: relative; + top: 0 !important; + right: 0; +} +/* 面板项内容 */ +.mdui-panel-item-body { + height: 0; + padding: 0 24px; + overflow: hidden; + -webkit-transition: height 0.3s cubic-bezier(0.4, 0, 0.2, 1); + transition: height 0.3s cubic-bezier(0.4, 0, 0.2, 1); + will-change: height; +} +.mdui-panel-item-body::before, +.mdui-panel-item-body::after { + display: table; + content: ' '; +} +.mdui-panel-item-body::after { + clear: both; +} +.mdui-panel-item-body::before, +.mdui-panel-item-body::after { + display: table; + content: ' '; +} +.mdui-panel-item-body::after { + clear: both; +} +.mdui-panel-item-body::after { + height: 16px; +} +/* 面板项操作栏 */ +.mdui-panel-item-actions { + display: block; + width: 100%; + margin: 16px -24px 0 -24px; + padding: 16px 24px 0 24px; + text-align: right; + border-top: 1px solid rgba(0, 0, 0, 0.12); +} +.mdui-panel-item-actions .mdui-btn { + margin-left: 8px; +} +.mdui-panel-item-actions .mdui-btn:first-child { + margin-left: 0; +} +/* 打开状态的面板项 */ +.mdui-panel-item-open { + height: auto; + margin-top: 16px; + margin-bottom: 16px; +} +.mdui-panel-item-open > .mdui-panel-item-header { + height: 64px; +} +.mdui-panel-item-open > .mdui-panel-item-header .mdui-panel-item-arrow { + top: 20px; + -webkit-transform: rotate(180deg); + transform: rotate(180deg); +} +.mdui-panel-item-open > .mdui-panel-item-body { + height: auto; +} +/* 使打开项上下没有边距 */ +.mdui-panel-gapless { + -webkit-box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12); + box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12); +} +.mdui-panel-gapless .mdui-panel-item { + -webkit-box-shadow: none; + box-shadow: none; +} +.mdui-panel-gapless .mdui-panel-item-open { + margin-top: 0; + margin-bottom: 0; +} +/* 弹出面板 */ +.mdui-panel-popout .mdui-panel-item-open { + margin-right: -16px; + margin-left: -16px; +} +/** + * ============================================================================= + * ************ Expansion panel dark ************ + * ============================================================================= + */ +.mdui-theme-layout-dark { + /* stylelint-disable-next-line */ +} +.mdui-theme-layout-dark .mdui-panel-item { + color: #fff; + background-color: #303030; + border-bottom: 1px solid rgba(255, 255, 255, 0.12); +} +.mdui-theme-layout-dark .mdui-panel-item:last-child { + border-bottom: none; +} +.mdui-theme-layout-dark .mdui-panel-item-header:active { + background-color: #424242; +} +.mdui-theme-layout-dark .mdui-panel-item-summary { + color: rgba(255, 255, 255, 0.7); +} +.mdui-theme-layout-dark .mdui-panel-item-arrow { + color: #ffffff; +} +.mdui-theme-layout-dark .mdui-panel-item-actions { + border-top: 1px solid rgba(255, 255, 255, 0.12); +} +@media (prefers-color-scheme: dark) { + .mdui-theme-layout-auto { + /* stylelint-disable-next-line */ + } + .mdui-theme-layout-auto .mdui-panel-item { + color: #fff; + background-color: #303030; + border-bottom: 1px solid rgba(255, 255, 255, 0.12); + } + .mdui-theme-layout-auto .mdui-panel-item:last-child { + border-bottom: none; + } + .mdui-theme-layout-auto .mdui-panel-item-header:active { + background-color: #424242; + } + .mdui-theme-layout-auto .mdui-panel-item-summary { + color: rgba(255, 255, 255, 0.7); + } + .mdui-theme-layout-auto .mdui-panel-item-arrow { + color: #ffffff; + } + .mdui-theme-layout-auto .mdui-panel-item-actions { + border-top: 1px solid rgba(255, 255, 255, 0.12); + } +} +/** + * ============================================================================= + * ************ Table 表格 ************ + * ============================================================================= + */ +.mdui-table { + position: relative; + width: 100%; + background-color: #fff; + border: 1px solid rgba(0, 0, 0, 0.12); + border-bottom: none; + border-collapse: separate; + border-spacing: 0; + -webkit-box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12); + box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12); +} +.mdui-table tbody tr { + position: relative; + -webkit-transition: background-color 0.28s cubic-bezier(0.4, 0, 0.2, 1); + transition: background-color 0.28s cubic-bezier(0.4, 0, 0.2, 1); +} +.mdui-table th, +.mdui-table td { + position: relative; + -webkit-box-sizing: border-box; + box-sizing: border-box; + padding: 12px 28px; + text-align: left; + vertical-align: middle; + border-bottom: 1px solid rgba(0, 0, 0, 0.12); +} +.mdui-table th { + color: rgba(0, 0, 0, 0.54); + font-weight: 700; + font-size: 13px; + line-height: 32px; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} +.mdui-table td { + color: rgba(0, 0, 0, 0.87); + font-size: 14px; + line-height: 24px; +} +/* 每一行前面的复选框 */ +.mdui-table-cell-checkbox { + padding-top: 0 !important; + padding-bottom: 0 !important; + padding-left: 24px !important; +} +.mdui-table-cell-checkbox .mdui-checkbox { + margin-top: 7px; +} +.mdui-table-cell-checkbox + td, +.mdui-table-cell-checkbox + th { + padding-left: 6px !important; +} +th.mdui-table-cell-checkbox .mdui-checkbox { + margin-top: 11px; +} +.mdui-table th:last-child, +.mdui-table td:last-child { + padding-right: 24px; +} +.mdui-table th:first-child, +.mdui-table td:first-child { + padding-right: 0; + padding-left: 24px; +} +.mdui-table th:nth-child(2), +.mdui-table td:nth-child(2) { + padding-left: 24px; +} +/* 鼠标悬浮时行背景加深 */ +.mdui-table-hoverable tbody tr:hover { + background-color: #EEEEEE; +} +/* 表格放到该元素内,使表格产生滚动条时只在该元素内滚动 */ +.mdui-table-fluid { + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch; + border: 1px solid rgba(0, 0, 0, 0.12); + border-bottom: none; + -webkit-box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12); + box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12); +} +.mdui-table-fluid .mdui-table { + -webkit-box-shadow: none; + box-shadow: none; + margin: 0; + border: none; +} +/* 数字列,右对齐 */ +.mdui-table-col-numeric { + text-align: right !important; +} +/* 行处于选中状态 */ +.mdui-table-row-selected { + background-color: #F5F5F5; +} +/** + * ============================================================================= + * ************ Table dark ************ + * ============================================================================= + */ +.mdui-theme-layout-dark .mdui-table { + background-color: #303030; + border: 1px solid rgba(255, 255, 255, 0.12); + border-bottom: none; +} +.mdui-theme-layout-dark .mdui-table th, +.mdui-theme-layout-dark .mdui-table td { + border-bottom: 1px solid rgba(255, 255, 255, 0.12); +} +.mdui-theme-layout-dark .mdui-table th { + color: rgba(255, 255, 255, 0.7); +} +.mdui-theme-layout-dark .mdui-table td { + color: #ffffff; +} +.mdui-theme-layout-dark .mdui-table-hoverable tbody tr:hover { + background-color: #616161; +} +.mdui-theme-layout-dark .mdui-table-fluid { + border: 1px solid rgba(255, 255, 255, 0.12); + border-bottom: none; +} +.mdui-theme-layout-dark .mdui-table-fluid .mdui-table { + -webkit-box-shadow: none; + box-shadow: none; + border: none; +} +.mdui-theme-layout-dark .mdui-table-row-selected { + background-color: #424242; +} +@media (prefers-color-scheme: dark) { + .mdui-theme-layout-auto .mdui-table { + background-color: #303030; + border: 1px solid rgba(255, 255, 255, 0.12); + border-bottom: none; + } + .mdui-theme-layout-auto .mdui-table th, + .mdui-theme-layout-auto .mdui-table td { + border-bottom: 1px solid rgba(255, 255, 255, 0.12); + } + .mdui-theme-layout-auto .mdui-table th { + color: rgba(255, 255, 255, 0.7); + } + .mdui-theme-layout-auto .mdui-table td { + color: #ffffff; + } + .mdui-theme-layout-auto .mdui-table-hoverable tbody tr:hover { + background-color: #616161; + } + .mdui-theme-layout-auto .mdui-table-fluid { + border: 1px solid rgba(255, 255, 255, 0.12); + border-bottom: none; + } + .mdui-theme-layout-auto .mdui-table-fluid .mdui-table { + -webkit-box-shadow: none; + box-shadow: none; + border: none; + } + .mdui-theme-layout-auto .mdui-table-row-selected { + background-color: #424242; + } +} +/** + * ============================================================================= + * ************ Divider 分割线 ************ + * ============================================================================= + */ +.mdui-divider, +.mdui-divider-light, +.mdui-divider-dark, +.mdui-divider-inset, +.mdui-divider-inset-light, +.mdui-divider-inset-dark { + height: 1px; + margin: -1px 0 0 0; + border: none; +} +.mdui-divider-inset, +.mdui-divider-inset-light, +.mdui-divider-inset-dark { + margin-left: 72px; +} +.mdui-divider, +.mdui-divider-inset { + background-color: rgba(0, 0, 0, 0.12); +} +.mdui-divider-light, +.mdui-divider-inset-light { + background-color: rgba(255, 255, 255, 0.12); +} +.mdui-divider-dark, +.mdui-divider-inset-dark { + background-color: rgba(0, 0, 0, 0.12); +} +/** + * ============================================================================= + * ************ Divider dark ************ + * ============================================================================= + */ +.mdui-theme-layout-dark .mdui-divider, +.mdui-theme-layout-dark .mdui-divider-inset { + background-color: rgba(255, 255, 255, 0.12); +} +@media (prefers-color-scheme: dark) { + .mdui-theme-layout-auto .mdui-divider, + .mdui-theme-layout-auto .mdui-divider-inset { + background-color: rgba(255, 255, 255, 0.12); + } +} +/** + * ============================================================================= + * ************ 涟漪动画 ************ + * ============================================================================= + */ +.mdui-ripple { + position: relative; + overflow: hidden; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +/* Ripple */ +.mdui-ripple-wave { + position: absolute !important; + top: 0; + left: 0; + z-index: 1; + margin: 0; + padding: 0; + font-size: 0; + background-color: rgba(0, 0, 0, 0.1); + border-radius: 50%; + -webkit-transform: translate3d(0, 0, 0) scale(0); + transform: translate3d(0, 0, 0) scale(0); + -webkit-transition-duration: 1400ms; + transition-duration: 1400ms; + pointer-events: none; +} +/* 有背景色的默认使用白色涟漪 */ +.mdui-ripple[class*="mdui-color-"] .mdui-ripple-wave { + background-color: rgba(255, 255, 255, 0.3); +} +/* 白色涟漪 */ +.mdui-ripple-white .mdui-ripple-wave { + background-color: rgba(255, 255, 255, 0.3) !important; +} +/* 黑色涟漪 */ +.mdui-ripple-black .mdui-ripple-wave { + background-color: rgba(0, 0, 0, 0.1) !important; +} +.mdui-ripple-wave-fill { + opacity: 0.35; + -webkit-transition-duration: 300ms; + transition-duration: 300ms; +} +.mdui-ripple-wave-out { + opacity: 0; + -webkit-transition-duration: 600ms; + transition-duration: 600ms; +} +/** + * ============================================================================= + * ************ Ripple 颜色 ************ + * ============================================================================= + */ +.mdui-ripple-amber .mdui-ripple-wave { + background-color: rgba(255, 193, 7, 0.3) !important; +} +.mdui-ripple-blue .mdui-ripple-wave { + background-color: rgba(33, 150, 243, 0.3) !important; +} +.mdui-ripple-blue-grey .mdui-ripple-wave { + background-color: rgba(96, 125, 139, 0.3) !important; +} +.mdui-ripple-brown .mdui-ripple-wave { + background-color: rgba(121, 85, 72, 0.3) !important; +} +.mdui-ripple-cyan .mdui-ripple-wave { + background-color: rgba(0, 188, 212, 0.3) !important; +} +.mdui-ripple-deep-orange .mdui-ripple-wave { + background-color: rgba(255, 87, 34, 0.3) !important; +} +.mdui-ripple-deep-purple .mdui-ripple-wave { + background-color: rgba(103, 58, 183, 0.3) !important; +} +.mdui-ripple-green .mdui-ripple-wave { + background-color: rgba(76, 175, 80, 0.3) !important; +} +.mdui-ripple-grey .mdui-ripple-wave { + background-color: rgba(158, 158, 158, 0.3) !important; +} +.mdui-ripple-indigo .mdui-ripple-wave { + background-color: rgba(63, 81, 181, 0.3) !important; +} +.mdui-ripple-light-blue .mdui-ripple-wave { + background-color: rgba(3, 169, 244, 0.3) !important; +} +.mdui-ripple-light-green .mdui-ripple-wave { + background-color: rgba(139, 195, 74, 0.3) !important; +} +.mdui-ripple-lime .mdui-ripple-wave { + background-color: rgba(205, 220, 57, 0.3) !important; +} +.mdui-ripple-orange .mdui-ripple-wave { + background-color: rgba(255, 152, 0, 0.3) !important; +} +.mdui-ripple-pink .mdui-ripple-wave { + background-color: rgba(233, 30, 99, 0.3) !important; +} +.mdui-ripple-purple .mdui-ripple-wave { + background-color: rgba(156, 39, 176, 0.3) !important; +} +.mdui-ripple-red .mdui-ripple-wave { + background-color: rgba(244, 67, 54, 0.3) !important; +} +.mdui-ripple-teal .mdui-ripple-wave { + background-color: rgba(0, 150, 136, 0.3) !important; +} +.mdui-ripple-yellow .mdui-ripple-wave { + background-color: rgba(255, 235, 59, 0.3) !important; +} +/** + * ============================================================================= + * ************ Ripple dark ************ + * ============================================================================= + */ +.mdui-theme-layout-dark .mdui-ripple-wave { + background-color: rgba(255, 255, 255, 0.3); +} +@media (prefers-color-scheme: dark) { + .mdui-theme-layout-auto .mdui-ripple-wave { + background-color: rgba(255, 255, 255, 0.3); + } +} +/** + * ============================================================================= + * ************ Text Field 文本框 ************ + * ============================================================================= + */ +/* 文本框外层 */ +.mdui-textfield { + position: relative; + padding-top: 16px; + padding-bottom: 8px; + overflow: hidden; +} +.mdui-textfield-has-bottom { + padding-bottom: 28px; +} +/* 输入框 */ +.mdui-textfield-input { + display: block; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 100%; + height: 36px; + margin: 0; + padding: 8px 0; + overflow: hidden; + color: rgba(0, 0, 0, 0.87); + font-size: 16px; + font-family: inherit; + line-height: 20px; + background: none; + border: none; + border-bottom: 1px solid rgba(0, 0, 0, 0.42); + border-radius: 0; + outline: none; + -webkit-box-shadow: none; + box-shadow: none; + -webkit-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + -webkit-transition-duration: 0.2s; + transition-duration: 0.2s; + -webkit-transition-property: border-bottom-color, padding-right, -webkit-box-shadow; + transition-property: border-bottom-color, padding-right, -webkit-box-shadow; + transition-property: border-bottom-color, padding-right, box-shadow; + transition-property: border-bottom-color, padding-right, box-shadow, -webkit-box-shadow; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + resize: none; +} +.mdui-textfield-input::-webkit-input-placeholder { + color: inherit; + opacity: 0.42; +} +.mdui-textfield-input:not([disabled]):hover { + border-bottom: 1px solid rgba(0, 0, 0, 0.87); + -webkit-box-shadow: 0 1px 0 0 rgba(0, 0, 0, 0.87); + box-shadow: 0 1px 0 0 rgba(0, 0, 0, 0.87); + cursor: pointer; +} +.mdui-textfield-input[rows] { + height: auto !important; + overflow: auto; + -webkit-overflow-scrolling: touch; +} +/* 文本框 label */ +.mdui-textfield-label { + display: block; + width: 100%; + color: rgba(0, 0, 0, 0.54); + font-size: 16px; + -webkit-transform: scale(0.75) translateY(0); + transform: scale(0.75) translateY(0); + -webkit-transform-origin: left; + transform-origin: left; + -webkit-transition: all 0.2s; + transition: all 0.2s; + pointer-events: none; +} +/* 表单验证错误提示、帮助文本提示 */ +.mdui-textfield-error, +.mdui-textfield-helper { + position: absolute; + bottom: 8px; + height: 12px; + font-size: 12px; + line-height: 12px; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} +.mdui-textfield-error { + color: rgba(255, 23, 68, 0.87); + visibility: hidden; +} +.mdui-textfield-helper { + color: rgba(0, 0, 0, 0.54); +} +/* 表单中的图标 + ========== */ +.mdui-textfield .mdui-icon { + position: absolute; + bottom: 8px; + padding: 6px; + color: rgba(0, 0, 0, 0.54); +} +.mdui-textfield .mdui-icon ~ .mdui-textfield-label, +.mdui-textfield .mdui-icon ~ .mdui-textfield-input, +.mdui-textfield .mdui-icon ~ .mdui-textfield-error, +.mdui-textfield .mdui-icon ~ .mdui-textfield-helper, +.mdui-textfield .mdui-icon ~ .mdui-textfield-flex-wrap { + /* stylelint-disable-next-line */ + width: calc(100% - 56px); + margin-left: 56px; +} +.mdui-textfield-has-bottom .mdui-icon { + bottom: 28px; +} +/* 聚焦状态的文本框 + ============= */ +.mdui-textfield-focus .mdui-textfield-input, +.mdui-textfield-focus .mdui-textfield-input:hover { + border-bottom-color: #C51162; + -webkit-box-shadow: 0 1px 0 0 #C51162; + box-shadow: 0 1px 0 0 #C51162; +} +.mdui-textfield-focus .mdui-textfield-label, +.mdui-textfield-focus .mdui-icon { + color: rgba(197, 17, 98, 0.87); +} +/* 含有浮动标签的文本框 + ================ */ +.mdui-textfield-floating-label .mdui-textfield-label { + color: rgba(0, 0, 0, 0.35); + -webkit-transform: scale(1) translateY(27px); + transform: scale(1) translateY(27px); +} +.mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, +.mdui-textfield-floating-label.mdui-textfield-not-empty .mdui-textfield-label { + color: rgba(0, 0, 0, 0.65); + -webkit-transform: scale(0.75) translateY(0); + transform: scale(0.75) translateY(0); +} +.mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label { + color: #E91E63; +} +/* 可展开文本框,默认向右展开 + ========== */ +.mdui-textfield-expandable { + width: 36px; + min-height: 36px; + padding: 1px 0; + -webkit-transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1); + transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1); +} +.mdui-textfield-expandable .mdui-icon { + bottom: 0; + padding: 0; +} +.mdui-textfield-expandable .mdui-textfield-input { + /* stylelint-disable-next-line */ + width: calc(100% - 36px); + margin-left: 36px; + padding-right: 0; +} +.mdui-textfield-expandable .mdui-textfield-icon { + position: absolute; + top: 0; + left: 0; +} +.mdui-textfield-expandable .mdui-textfield-close { + position: absolute; + top: 0; + right: 0; + -webkit-transform: scale(0); + transform: scale(0); +} +.mdui-textfield-expandable.mdui-textfield-expanded { + width: 100%; +} +.mdui-textfield-expandable.mdui-textfield-expanded .mdui-textfield-input { + padding-right: 36px; +} +.mdui-textfield-expandable.mdui-textfield-expanded .mdui-textfield-close { + -webkit-transform: scale(1); + transform: scale(1); +} +/* 表单验证不通过 + =========== */ +.mdui-textfield-invalid .mdui-textfield-input, +.mdui-textfield-invalid-html5 .mdui-textfield-input, +.mdui-textfield-invalid.mdui-textfield-focus .mdui-textfield-input, +.mdui-textfield-invalid-html5.mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #FF1744 !important; + -webkit-box-shadow: 0 1px 0 0 #FF1744 !important; + box-shadow: 0 1px 0 0 #FF1744 !important; +} +.mdui-textfield-invalid .mdui-textfield-label, +.mdui-textfield-invalid-html5 .mdui-textfield-label { + color: #FF1744 !important; +} +.mdui-textfield-invalid.mdui-textfield-floating-label .mdui-textfield-label, +.mdui-textfield-invalid-html5.mdui-textfield-floating-label .mdui-textfield-label { + color: rgba(255, 23, 68, 0.35) !important; +} +.mdui-textfield-invalid.mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, +.mdui-textfield-invalid-html5.mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, +.mdui-textfield-invalid.mdui-textfield-floating-label.mdui-textfield-not-empty .mdui-textfield-label, +.mdui-textfield-invalid-html5.mdui-textfield-floating-label.mdui-textfield-not-empty .mdui-textfield-label { + color: #FF1744 !important; +} +.mdui-textfield-invalid .mdui-textfield-error, +.mdui-textfield-invalid-html5 .mdui-textfield-error { + visibility: visible; +} +.mdui-textfield-invalid .mdui-textfield-error + .mdui-textfield-helper, +.mdui-textfield-invalid-html5 .mdui-textfield-error + .mdui-textfield-helper { + visibility: hidden; +} +/* 禁用表单 + ====== */ +.mdui-textfield-disabled .mdui-textfield-label, +.mdui-textfield-disabled .mdui-textfield-input::-webkit-input-placeholder { + color: rgba(0, 0, 0, 0.38); +} +.mdui-textfield-disabled .mdui-textfield-input { + color: rgba(0, 0, 0, 0.42); + cursor: default; +} +.mdui-textfield-disabled .mdui-textfield-input { + border-bottom: 1px dashed rgba(0, 0, 0, 0.42); +} +/* 字数统计 + ====== */ +.mdui-textfield-counter { + position: absolute; + right: 8px; + bottom: 8px; + height: 12px; + color: rgba(0, 0, 0, 0.54); + font-size: 12px; + line-height: 12px; +} +/** + * ============================================================================= + * ************ Textfield dark ************ + * ============================================================================= + */ +.mdui-theme-layout-dark .mdui-textfield-input { + color: #fff; + border-bottom-color: rgba(255, 255, 255, 0.7); +} +.mdui-theme-layout-dark .mdui-textfield-input::-webkit-input-placeholder { + color: rgba(255, 255, 255, 0.5); +} +.mdui-theme-layout-dark .mdui-textfield-input:not([disabled]):hover { + border-bottom-color: #ffffff; + -webkit-box-shadow: 0 1px 0 0 #ffffff; + box-shadow: 0 1px 0 0 #ffffff; +} +.mdui-theme-layout-dark .mdui-textfield .mdui-icon { + color: rgba(255, 255, 255, 0.7); +} +.mdui-theme-layout-dark .mdui-textfield-label { + color: rgba(255, 255, 255, 0.7); +} +.mdui-theme-layout-dark .mdui-textfield-floating-label .mdui-textfield-label { + color: rgba(255, 255, 255, 0.35); +} +.mdui-theme-layout-dark .mdui-textfield-error { + color: #FF1744; +} +.mdui-theme-layout-dark .mdui-textfield-helper { + color: rgba(255, 255, 255, 0.7); +} +.mdui-theme-layout-dark .mdui-textfield-counter { + color: rgba(255, 255, 255, 0.7); +} +.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input, +.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input:hover { + border-bottom-color: #FF4081; + -webkit-box-shadow: 0 1px 0 0 #FF4081; + box-shadow: 0 1px 0 0 #FF4081; +} +.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label { + color: #FF4081; +} +.mdui-theme-layout-dark .mdui-textfield-disabled .mdui-textfield-label, +.mdui-theme-layout-dark .mdui-textfield-disabled .mdui-textfield-input::-webkit-input-placeholder { + color: rgba(255, 255, 255, 0.5); +} +.mdui-theme-layout-dark .mdui-textfield-disabled .mdui-textfield-input { + color: rgba(255, 255, 255, 0.5); +} +.mdui-theme-layout-dark .mdui-textfield-disabled .mdui-textfield-input { + border-bottom-color: rgba(255, 255, 255, 0.7); +} +@media (prefers-color-scheme: dark) { + .mdui-theme-layout-auto .mdui-textfield-input { + color: #fff; + border-bottom-color: rgba(255, 255, 255, 0.7); + } + .mdui-theme-layout-auto .mdui-textfield-input::-webkit-input-placeholder { + color: rgba(255, 255, 255, 0.5); + } + .mdui-theme-layout-auto .mdui-textfield-input:not([disabled]):hover { + border-bottom-color: #ffffff; + -webkit-box-shadow: 0 1px 0 0 #ffffff; + box-shadow: 0 1px 0 0 #ffffff; + } + .mdui-theme-layout-auto .mdui-textfield .mdui-icon { + color: rgba(255, 255, 255, 0.7); + } + .mdui-theme-layout-auto .mdui-textfield-label { + color: rgba(255, 255, 255, 0.7); + } + .mdui-theme-layout-auto .mdui-textfield-floating-label .mdui-textfield-label { + color: rgba(255, 255, 255, 0.35); + } + .mdui-theme-layout-auto .mdui-textfield-error { + color: #FF1744; + } + .mdui-theme-layout-auto .mdui-textfield-helper { + color: rgba(255, 255, 255, 0.7); + } + .mdui-theme-layout-auto .mdui-textfield-counter { + color: rgba(255, 255, 255, 0.7); + } + .mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input, + .mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input:hover { + border-bottom-color: #FF4081; + -webkit-box-shadow: 0 1px 0 0 #FF4081; + box-shadow: 0 1px 0 0 #FF4081; + } + .mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label { + color: #FF4081; + } + .mdui-theme-layout-auto .mdui-textfield-disabled .mdui-textfield-label, + .mdui-theme-layout-auto .mdui-textfield-disabled .mdui-textfield-input::-webkit-input-placeholder { + color: rgba(255, 255, 255, 0.5); + } + .mdui-theme-layout-auto .mdui-textfield-disabled .mdui-textfield-input { + color: rgba(255, 255, 255, 0.5); + } + .mdui-theme-layout-auto .mdui-textfield-disabled .mdui-textfield-input { + border-bottom-color: rgba(255, 255, 255, 0.7); + } +} +/** + * ============================================================================= + * ************ Textfield 强调色 ************ + * ============================================================================= + */ +.mdui-theme-accent-amber .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #FFAB00; + -webkit-box-shadow: 0 1px 0 0 #FFAB00; + box-shadow: 0 1px 0 0 #FFAB00; +} +.mdui-theme-accent-amber .mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-amber .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-amber .mdui-textfield-focus .mdui-icon { + color: rgba(255, 171, 0, 0.87); +} +.mdui-theme-accent-amber.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #FFD740; + -webkit-box-shadow: 0 1px 0 0 #FFD740; + box-shadow: 0 1px 0 0 #FFD740; +} +.mdui-theme-accent-amber.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-amber.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-amber.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon { + color: #FFD740; +} +@media (prefers-color-scheme: dark) { + .mdui-theme-accent-amber.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #FFD740; + -webkit-box-shadow: 0 1px 0 0 #FFD740; + box-shadow: 0 1px 0 0 #FFD740; + } + .mdui-theme-accent-amber.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label, + .mdui-theme-accent-amber.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, + .mdui-theme-accent-amber.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon { + color: #FFD740; + } +} +.mdui-theme-accent-blue .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #2962FF; + -webkit-box-shadow: 0 1px 0 0 #2962FF; + box-shadow: 0 1px 0 0 #2962FF; +} +.mdui-theme-accent-blue .mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-blue .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-blue .mdui-textfield-focus .mdui-icon { + color: rgba(41, 98, 255, 0.87); +} +.mdui-theme-accent-blue.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #448AFF; + -webkit-box-shadow: 0 1px 0 0 #448AFF; + box-shadow: 0 1px 0 0 #448AFF; +} +.mdui-theme-accent-blue.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-blue.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-blue.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon { + color: #448AFF; +} +@media (prefers-color-scheme: dark) { + .mdui-theme-accent-blue.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #448AFF; + -webkit-box-shadow: 0 1px 0 0 #448AFF; + box-shadow: 0 1px 0 0 #448AFF; + } + .mdui-theme-accent-blue.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label, + .mdui-theme-accent-blue.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, + .mdui-theme-accent-blue.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon { + color: #448AFF; + } +} +.mdui-theme-accent-cyan .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #00B8D4; + -webkit-box-shadow: 0 1px 0 0 #00B8D4; + box-shadow: 0 1px 0 0 #00B8D4; +} +.mdui-theme-accent-cyan .mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-cyan .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-cyan .mdui-textfield-focus .mdui-icon { + color: rgba(0, 184, 212, 0.87); +} +.mdui-theme-accent-cyan.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #18FFFF; + -webkit-box-shadow: 0 1px 0 0 #18FFFF; + box-shadow: 0 1px 0 0 #18FFFF; +} +.mdui-theme-accent-cyan.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-cyan.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-cyan.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon { + color: #18FFFF; +} +@media (prefers-color-scheme: dark) { + .mdui-theme-accent-cyan.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #18FFFF; + -webkit-box-shadow: 0 1px 0 0 #18FFFF; + box-shadow: 0 1px 0 0 #18FFFF; + } + .mdui-theme-accent-cyan.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label, + .mdui-theme-accent-cyan.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, + .mdui-theme-accent-cyan.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon { + color: #18FFFF; + } +} +.mdui-theme-accent-deep-orange .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #DD2C00; + -webkit-box-shadow: 0 1px 0 0 #DD2C00; + box-shadow: 0 1px 0 0 #DD2C00; +} +.mdui-theme-accent-deep-orange .mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-deep-orange .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-deep-orange .mdui-textfield-focus .mdui-icon { + color: rgba(221, 44, 0, 0.87); +} +.mdui-theme-accent-deep-orange.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #FF6E40; + -webkit-box-shadow: 0 1px 0 0 #FF6E40; + box-shadow: 0 1px 0 0 #FF6E40; +} +.mdui-theme-accent-deep-orange.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-deep-orange.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-deep-orange.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon { + color: #FF6E40; +} +@media (prefers-color-scheme: dark) { + .mdui-theme-accent-deep-orange.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #FF6E40; + -webkit-box-shadow: 0 1px 0 0 #FF6E40; + box-shadow: 0 1px 0 0 #FF6E40; + } + .mdui-theme-accent-deep-orange.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label, + .mdui-theme-accent-deep-orange.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, + .mdui-theme-accent-deep-orange.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon { + color: #FF6E40; + } +} +.mdui-theme-accent-deep-purple .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #6200EA; + -webkit-box-shadow: 0 1px 0 0 #6200EA; + box-shadow: 0 1px 0 0 #6200EA; +} +.mdui-theme-accent-deep-purple .mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-deep-purple .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-deep-purple .mdui-textfield-focus .mdui-icon { + color: rgba(98, 0, 234, 0.87); +} +.mdui-theme-accent-deep-purple.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #7C4DFF; + -webkit-box-shadow: 0 1px 0 0 #7C4DFF; + box-shadow: 0 1px 0 0 #7C4DFF; +} +.mdui-theme-accent-deep-purple.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-deep-purple.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-deep-purple.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon { + color: #7C4DFF; +} +@media (prefers-color-scheme: dark) { + .mdui-theme-accent-deep-purple.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #7C4DFF; + -webkit-box-shadow: 0 1px 0 0 #7C4DFF; + box-shadow: 0 1px 0 0 #7C4DFF; + } + .mdui-theme-accent-deep-purple.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label, + .mdui-theme-accent-deep-purple.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, + .mdui-theme-accent-deep-purple.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon { + color: #7C4DFF; + } +} +.mdui-theme-accent-green .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #00C853; + -webkit-box-shadow: 0 1px 0 0 #00C853; + box-shadow: 0 1px 0 0 #00C853; +} +.mdui-theme-accent-green .mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-green .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-green .mdui-textfield-focus .mdui-icon { + color: rgba(0, 200, 83, 0.87); +} +.mdui-theme-accent-green.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #69F0AE; + -webkit-box-shadow: 0 1px 0 0 #69F0AE; + box-shadow: 0 1px 0 0 #69F0AE; +} +.mdui-theme-accent-green.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-green.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-green.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon { + color: #69F0AE; +} +@media (prefers-color-scheme: dark) { + .mdui-theme-accent-green.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #69F0AE; + -webkit-box-shadow: 0 1px 0 0 #69F0AE; + box-shadow: 0 1px 0 0 #69F0AE; + } + .mdui-theme-accent-green.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label, + .mdui-theme-accent-green.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, + .mdui-theme-accent-green.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon { + color: #69F0AE; + } +} +.mdui-theme-accent-indigo .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #304FFE; + -webkit-box-shadow: 0 1px 0 0 #304FFE; + box-shadow: 0 1px 0 0 #304FFE; +} +.mdui-theme-accent-indigo .mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-indigo .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-indigo .mdui-textfield-focus .mdui-icon { + color: rgba(48, 79, 254, 0.87); +} +.mdui-theme-accent-indigo.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #536DFE; + -webkit-box-shadow: 0 1px 0 0 #536DFE; + box-shadow: 0 1px 0 0 #536DFE; +} +.mdui-theme-accent-indigo.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-indigo.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-indigo.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon { + color: #536DFE; +} +@media (prefers-color-scheme: dark) { + .mdui-theme-accent-indigo.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #536DFE; + -webkit-box-shadow: 0 1px 0 0 #536DFE; + box-shadow: 0 1px 0 0 #536DFE; + } + .mdui-theme-accent-indigo.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label, + .mdui-theme-accent-indigo.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, + .mdui-theme-accent-indigo.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon { + color: #536DFE; + } +} +.mdui-theme-accent-light-blue .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #0091EA; + -webkit-box-shadow: 0 1px 0 0 #0091EA; + box-shadow: 0 1px 0 0 #0091EA; +} +.mdui-theme-accent-light-blue .mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-light-blue .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-light-blue .mdui-textfield-focus .mdui-icon { + color: rgba(0, 145, 234, 0.87); +} +.mdui-theme-accent-light-blue.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #40C4FF; + -webkit-box-shadow: 0 1px 0 0 #40C4FF; + box-shadow: 0 1px 0 0 #40C4FF; +} +.mdui-theme-accent-light-blue.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-light-blue.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-light-blue.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon { + color: #40C4FF; +} +@media (prefers-color-scheme: dark) { + .mdui-theme-accent-light-blue.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #40C4FF; + -webkit-box-shadow: 0 1px 0 0 #40C4FF; + box-shadow: 0 1px 0 0 #40C4FF; + } + .mdui-theme-accent-light-blue.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label, + .mdui-theme-accent-light-blue.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, + .mdui-theme-accent-light-blue.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon { + color: #40C4FF; + } +} +.mdui-theme-accent-light-green .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #64DD17; + -webkit-box-shadow: 0 1px 0 0 #64DD17; + box-shadow: 0 1px 0 0 #64DD17; +} +.mdui-theme-accent-light-green .mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-light-green .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-light-green .mdui-textfield-focus .mdui-icon { + color: rgba(100, 221, 23, 0.87); +} +.mdui-theme-accent-light-green.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #B2FF59; + -webkit-box-shadow: 0 1px 0 0 #B2FF59; + box-shadow: 0 1px 0 0 #B2FF59; +} +.mdui-theme-accent-light-green.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-light-green.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-light-green.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon { + color: #B2FF59; +} +@media (prefers-color-scheme: dark) { + .mdui-theme-accent-light-green.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #B2FF59; + -webkit-box-shadow: 0 1px 0 0 #B2FF59; + box-shadow: 0 1px 0 0 #B2FF59; + } + .mdui-theme-accent-light-green.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label, + .mdui-theme-accent-light-green.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, + .mdui-theme-accent-light-green.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon { + color: #B2FF59; + } +} +.mdui-theme-accent-lime .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #AEEA00; + -webkit-box-shadow: 0 1px 0 0 #AEEA00; + box-shadow: 0 1px 0 0 #AEEA00; +} +.mdui-theme-accent-lime .mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-lime .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-lime .mdui-textfield-focus .mdui-icon { + color: rgba(174, 234, 0, 0.87); +} +.mdui-theme-accent-lime.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #EEFF41; + -webkit-box-shadow: 0 1px 0 0 #EEFF41; + box-shadow: 0 1px 0 0 #EEFF41; +} +.mdui-theme-accent-lime.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-lime.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-lime.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon { + color: #EEFF41; +} +@media (prefers-color-scheme: dark) { + .mdui-theme-accent-lime.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #EEFF41; + -webkit-box-shadow: 0 1px 0 0 #EEFF41; + box-shadow: 0 1px 0 0 #EEFF41; + } + .mdui-theme-accent-lime.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label, + .mdui-theme-accent-lime.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, + .mdui-theme-accent-lime.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon { + color: #EEFF41; + } +} +.mdui-theme-accent-orange .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #FF6D00; + -webkit-box-shadow: 0 1px 0 0 #FF6D00; + box-shadow: 0 1px 0 0 #FF6D00; +} +.mdui-theme-accent-orange .mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-orange .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-orange .mdui-textfield-focus .mdui-icon { + color: rgba(255, 109, 0, 0.87); +} +.mdui-theme-accent-orange.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #FFAB40; + -webkit-box-shadow: 0 1px 0 0 #FFAB40; + box-shadow: 0 1px 0 0 #FFAB40; +} +.mdui-theme-accent-orange.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-orange.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-orange.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon { + color: #FFAB40; +} +@media (prefers-color-scheme: dark) { + .mdui-theme-accent-orange.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #FFAB40; + -webkit-box-shadow: 0 1px 0 0 #FFAB40; + box-shadow: 0 1px 0 0 #FFAB40; + } + .mdui-theme-accent-orange.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label, + .mdui-theme-accent-orange.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, + .mdui-theme-accent-orange.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon { + color: #FFAB40; + } +} +.mdui-theme-accent-pink .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #C51162; + -webkit-box-shadow: 0 1px 0 0 #C51162; + box-shadow: 0 1px 0 0 #C51162; +} +.mdui-theme-accent-pink .mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-pink .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-pink .mdui-textfield-focus .mdui-icon { + color: rgba(197, 17, 98, 0.87); +} +.mdui-theme-accent-pink.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #FF4081; + -webkit-box-shadow: 0 1px 0 0 #FF4081; + box-shadow: 0 1px 0 0 #FF4081; +} +.mdui-theme-accent-pink.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-pink.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-pink.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon { + color: #FF4081; +} +@media (prefers-color-scheme: dark) { + .mdui-theme-accent-pink.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #FF4081; + -webkit-box-shadow: 0 1px 0 0 #FF4081; + box-shadow: 0 1px 0 0 #FF4081; + } + .mdui-theme-accent-pink.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label, + .mdui-theme-accent-pink.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, + .mdui-theme-accent-pink.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon { + color: #FF4081; + } +} +.mdui-theme-accent-purple .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #AA00FF; + -webkit-box-shadow: 0 1px 0 0 #AA00FF; + box-shadow: 0 1px 0 0 #AA00FF; +} +.mdui-theme-accent-purple .mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-purple .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-purple .mdui-textfield-focus .mdui-icon { + color: rgba(170, 0, 255, 0.87); +} +.mdui-theme-accent-purple.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #E040FB; + -webkit-box-shadow: 0 1px 0 0 #E040FB; + box-shadow: 0 1px 0 0 #E040FB; +} +.mdui-theme-accent-purple.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-purple.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-purple.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon { + color: #E040FB; +} +@media (prefers-color-scheme: dark) { + .mdui-theme-accent-purple.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #E040FB; + -webkit-box-shadow: 0 1px 0 0 #E040FB; + box-shadow: 0 1px 0 0 #E040FB; + } + .mdui-theme-accent-purple.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label, + .mdui-theme-accent-purple.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, + .mdui-theme-accent-purple.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon { + color: #E040FB; + } +} +.mdui-theme-accent-red .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #D50000; + -webkit-box-shadow: 0 1px 0 0 #D50000; + box-shadow: 0 1px 0 0 #D50000; +} +.mdui-theme-accent-red .mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-red .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-red .mdui-textfield-focus .mdui-icon { + color: rgba(213, 0, 0, 0.87); +} +.mdui-theme-accent-red.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #FF5252; + -webkit-box-shadow: 0 1px 0 0 #FF5252; + box-shadow: 0 1px 0 0 #FF5252; +} +.mdui-theme-accent-red.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-red.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-red.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon { + color: #FF5252; +} +@media (prefers-color-scheme: dark) { + .mdui-theme-accent-red.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #FF5252; + -webkit-box-shadow: 0 1px 0 0 #FF5252; + box-shadow: 0 1px 0 0 #FF5252; + } + .mdui-theme-accent-red.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label, + .mdui-theme-accent-red.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, + .mdui-theme-accent-red.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon { + color: #FF5252; + } +} +.mdui-theme-accent-teal .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #00BFA5; + -webkit-box-shadow: 0 1px 0 0 #00BFA5; + box-shadow: 0 1px 0 0 #00BFA5; +} +.mdui-theme-accent-teal .mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-teal .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-teal .mdui-textfield-focus .mdui-icon { + color: rgba(0, 191, 165, 0.87); +} +.mdui-theme-accent-teal.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #64FFDA; + -webkit-box-shadow: 0 1px 0 0 #64FFDA; + box-shadow: 0 1px 0 0 #64FFDA; +} +.mdui-theme-accent-teal.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-teal.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-teal.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon { + color: #64FFDA; +} +@media (prefers-color-scheme: dark) { + .mdui-theme-accent-teal.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #64FFDA; + -webkit-box-shadow: 0 1px 0 0 #64FFDA; + box-shadow: 0 1px 0 0 #64FFDA; + } + .mdui-theme-accent-teal.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label, + .mdui-theme-accent-teal.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, + .mdui-theme-accent-teal.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon { + color: #64FFDA; + } +} +.mdui-theme-accent-yellow .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #FFD600; + -webkit-box-shadow: 0 1px 0 0 #FFD600; + box-shadow: 0 1px 0 0 #FFD600; +} +.mdui-theme-accent-yellow .mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-yellow .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-yellow .mdui-textfield-focus .mdui-icon { + color: rgba(255, 214, 0, 0.87); +} +.mdui-theme-accent-yellow.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #FFFF00; + -webkit-box-shadow: 0 1px 0 0 #FFFF00; + box-shadow: 0 1px 0 0 #FFFF00; +} +.mdui-theme-accent-yellow.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-yellow.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-yellow.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon { + color: #FFFF00; +} +@media (prefers-color-scheme: dark) { + .mdui-theme-accent-yellow.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #FFFF00; + -webkit-box-shadow: 0 1px 0 0 #FFFF00; + box-shadow: 0 1px 0 0 #FFFF00; + } + .mdui-theme-accent-yellow.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label, + .mdui-theme-accent-yellow.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, + .mdui-theme-accent-yellow.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon { + color: #FFFF00; + } +} +/** + * ============================================================================= + * ************ Checkbox 复选框 ************ + * ============================================================================= + */ +.mdui-checkbox { + position: relative; + display: inline-block; + height: 36px; + padding-left: 36px; + line-height: 36px; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.mdui-checkbox input[type="checkbox"] { + position: absolute; + width: 0; + height: 0; + overflow: hidden; + opacity: 0; +} +/* 透明的圆形,用于生成圆形阴影 */ +.mdui-checkbox-icon { + position: absolute; + top: 9px; + left: 0; + display: inline-block; + width: 18px; + height: 18px; + vertical-align: middle; + background-color: transparent; + border: none; + border-radius: 18px; + -webkit-transition: -webkit-box-shadow 0.14s cubic-bezier(0.4, 0, 0.2, 1); + transition: -webkit-box-shadow 0.14s cubic-bezier(0.4, 0, 0.2, 1); + transition: box-shadow 0.14s cubic-bezier(0.4, 0, 0.2, 1); + transition: box-shadow 0.14s cubic-bezier(0.4, 0, 0.2, 1), -webkit-box-shadow 0.14s cubic-bezier(0.4, 0, 0.2, 1); +} +.mdui-checkbox-icon::after { + position: absolute; + top: 0; + left: 0; + z-index: 0; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 18px; + height: 18px; + border: 2px solid rgba(0, 0, 0, 0.54); + border-radius: 2px; + -webkit-transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); + content: ' '; +} +.mdui-checkbox-icon::before { + position: absolute; + top: 2px; + left: 0; + z-index: 1; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 8px; + height: 13px; + border-right: 2px solid #fff; + border-bottom: 2px solid #fff; + -webkit-transform: rotateZ(37deg) scale(0); + transform: rotateZ(37deg) scale(0); + -webkit-transform-origin: 100% 100%; + transform-origin: 100% 100%; + opacity: 0; + -webkit-transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); + content: ' '; +} +/* 各种状态的图标 */ +.mdui-checkbox input[type="checkbox"]:checked + .mdui-checkbox-icon::after { + background-color: #FF4081; + border-color: #FF4081; +} +.mdui-checkbox input[type="checkbox"]:checked + .mdui-checkbox-icon::before { + -webkit-transform: rotateZ(37deg) scale(1); + transform: rotateZ(37deg) scale(1); + opacity: 1; +} +.mdui-checkbox input[type="checkbox"]:indeterminate + .mdui-checkbox-icon::after { + background-color: #FF4081; + border-color: #FF4081; +} +.mdui-checkbox input[type="checkbox"]:indeterminate + .mdui-checkbox-icon::before { + top: 8px; + left: 3px; + width: 12px; + height: 0; + border-right: none; + border-bottom: 2px solid #fff; + border-radius: 1px; + -webkit-transform: rotateZ(0) scale(1); + transform: rotateZ(0) scale(1); + opacity: 1; +} +.mdui-checkbox input[type="checkbox"]:disabled + .mdui-checkbox-icon::after { + border-color: rgba(0, 0, 0, 0.26); +} +.mdui-checkbox input[type="checkbox"]:disabled:checked + .mdui-checkbox-icon::after, +.mdui-checkbox input[type="checkbox"]:disabled:indeterminate + .mdui-checkbox-icon::after { + background-color: rgba(0, 0, 0, 0.26) !important; + border-color: transparent !important; +} +/* 阴影 */ +.mdui-checkbox:active input[type="checkbox"] + .mdui-checkbox-icon, +.mdui-checkbox input[type="checkbox"]:focus + .mdui-checkbox-icon { + -webkit-box-shadow: 0 0 0 15px rgba(0, 0, 0, 0.1); + box-shadow: 0 0 0 15px rgba(0, 0, 0, 0.1); +} +.mdui-checkbox:active input[type="checkbox"]:not(:disabled):checked + .mdui-checkbox-icon, +.mdui-checkbox input[type="checkbox"]:focus:not(:disabled):checked + .mdui-checkbox-icon, +.mdui-checkbox:active input[type="checkbox"]:not(:disabled):indeterminate + .mdui-checkbox-icon, +.mdui-checkbox input[type="checkbox"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon { + -webkit-box-shadow: 0 0 0 15px rgba(255, 64, 129, 0.16); + box-shadow: 0 0 0 15px rgba(255, 64, 129, 0.16); +} +/** + * ============================================================================= + * ************ Checkbox 强调色 ************ + * ============================================================================= + */ +.mdui-theme-accent-amber .mdui-checkbox input[type="checkbox"]:checked + .mdui-checkbox-icon::after, +.mdui-theme-accent-amber .mdui-checkbox input[type="checkbox"]:indeterminate + .mdui-checkbox-icon::after { + background-color: #FFD740; + border-color: #FFD740; +} +.mdui-theme-accent-amber .mdui-checkbox:active input[type="checkbox"]:not(:disabled):checked + .mdui-checkbox-icon, +.mdui-theme-accent-amber .mdui-checkbox input[type="checkbox"]:focus:not(:disabled):checked + .mdui-checkbox-icon, +.mdui-theme-accent-amber .mdui-checkbox:active input[type="checkbox"]:not(:disabled):indeterminate + .mdui-checkbox-icon, +.mdui-theme-accent-amber .mdui-checkbox input[type="checkbox"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon { + -webkit-box-shadow: 0 0 0 15px rgba(255, 215, 64, 0.16); + box-shadow: 0 0 0 15px rgba(255, 215, 64, 0.16); +} +.mdui-theme-accent-blue .mdui-checkbox input[type="checkbox"]:checked + .mdui-checkbox-icon::after, +.mdui-theme-accent-blue .mdui-checkbox input[type="checkbox"]:indeterminate + .mdui-checkbox-icon::after { + background-color: #448AFF; + border-color: #448AFF; +} +.mdui-theme-accent-blue .mdui-checkbox:active input[type="checkbox"]:not(:disabled):checked + .mdui-checkbox-icon, +.mdui-theme-accent-blue .mdui-checkbox input[type="checkbox"]:focus:not(:disabled):checked + .mdui-checkbox-icon, +.mdui-theme-accent-blue .mdui-checkbox:active input[type="checkbox"]:not(:disabled):indeterminate + .mdui-checkbox-icon, +.mdui-theme-accent-blue .mdui-checkbox input[type="checkbox"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon { + -webkit-box-shadow: 0 0 0 15px rgba(68, 138, 255, 0.16); + box-shadow: 0 0 0 15px rgba(68, 138, 255, 0.16); +} +.mdui-theme-accent-cyan .mdui-checkbox input[type="checkbox"]:checked + .mdui-checkbox-icon::after, +.mdui-theme-accent-cyan .mdui-checkbox input[type="checkbox"]:indeterminate + .mdui-checkbox-icon::after { + background-color: #18FFFF; + border-color: #18FFFF; +} +.mdui-theme-accent-cyan .mdui-checkbox:active input[type="checkbox"]:not(:disabled):checked + .mdui-checkbox-icon, +.mdui-theme-accent-cyan .mdui-checkbox input[type="checkbox"]:focus:not(:disabled):checked + .mdui-checkbox-icon, +.mdui-theme-accent-cyan .mdui-checkbox:active input[type="checkbox"]:not(:disabled):indeterminate + .mdui-checkbox-icon, +.mdui-theme-accent-cyan .mdui-checkbox input[type="checkbox"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon { + -webkit-box-shadow: 0 0 0 15px rgba(24, 255, 255, 0.16); + box-shadow: 0 0 0 15px rgba(24, 255, 255, 0.16); +} +.mdui-theme-accent-deep-orange .mdui-checkbox input[type="checkbox"]:checked + .mdui-checkbox-icon::after, +.mdui-theme-accent-deep-orange .mdui-checkbox input[type="checkbox"]:indeterminate + .mdui-checkbox-icon::after { + background-color: #FF6E40; + border-color: #FF6E40; +} +.mdui-theme-accent-deep-orange .mdui-checkbox:active input[type="checkbox"]:not(:disabled):checked + .mdui-checkbox-icon, +.mdui-theme-accent-deep-orange .mdui-checkbox input[type="checkbox"]:focus:not(:disabled):checked + .mdui-checkbox-icon, +.mdui-theme-accent-deep-orange .mdui-checkbox:active input[type="checkbox"]:not(:disabled):indeterminate + .mdui-checkbox-icon, +.mdui-theme-accent-deep-orange .mdui-checkbox input[type="checkbox"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon { + -webkit-box-shadow: 0 0 0 15px rgba(255, 110, 64, 0.16); + box-shadow: 0 0 0 15px rgba(255, 110, 64, 0.16); +} +.mdui-theme-accent-deep-purple .mdui-checkbox input[type="checkbox"]:checked + .mdui-checkbox-icon::after, +.mdui-theme-accent-deep-purple .mdui-checkbox input[type="checkbox"]:indeterminate + .mdui-checkbox-icon::after { + background-color: #7C4DFF; + border-color: #7C4DFF; +} +.mdui-theme-accent-deep-purple .mdui-checkbox:active input[type="checkbox"]:not(:disabled):checked + .mdui-checkbox-icon, +.mdui-theme-accent-deep-purple .mdui-checkbox input[type="checkbox"]:focus:not(:disabled):checked + .mdui-checkbox-icon, +.mdui-theme-accent-deep-purple .mdui-checkbox:active input[type="checkbox"]:not(:disabled):indeterminate + .mdui-checkbox-icon, +.mdui-theme-accent-deep-purple .mdui-checkbox input[type="checkbox"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon { + -webkit-box-shadow: 0 0 0 15px rgba(124, 77, 255, 0.16); + box-shadow: 0 0 0 15px rgba(124, 77, 255, 0.16); +} +.mdui-theme-accent-green .mdui-checkbox input[type="checkbox"]:checked + .mdui-checkbox-icon::after, +.mdui-theme-accent-green .mdui-checkbox input[type="checkbox"]:indeterminate + .mdui-checkbox-icon::after { + background-color: #69F0AE; + border-color: #69F0AE; +} +.mdui-theme-accent-green .mdui-checkbox:active input[type="checkbox"]:not(:disabled):checked + .mdui-checkbox-icon, +.mdui-theme-accent-green .mdui-checkbox input[type="checkbox"]:focus:not(:disabled):checked + .mdui-checkbox-icon, +.mdui-theme-accent-green .mdui-checkbox:active input[type="checkbox"]:not(:disabled):indeterminate + .mdui-checkbox-icon, +.mdui-theme-accent-green .mdui-checkbox input[type="checkbox"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon { + -webkit-box-shadow: 0 0 0 15px rgba(105, 240, 174, 0.16); + box-shadow: 0 0 0 15px rgba(105, 240, 174, 0.16); +} +.mdui-theme-accent-indigo .mdui-checkbox input[type="checkbox"]:checked + .mdui-checkbox-icon::after, +.mdui-theme-accent-indigo .mdui-checkbox input[type="checkbox"]:indeterminate + .mdui-checkbox-icon::after { + background-color: #536DFE; + border-color: #536DFE; +} +.mdui-theme-accent-indigo .mdui-checkbox:active input[type="checkbox"]:not(:disabled):checked + .mdui-checkbox-icon, +.mdui-theme-accent-indigo .mdui-checkbox input[type="checkbox"]:focus:not(:disabled):checked + .mdui-checkbox-icon, +.mdui-theme-accent-indigo .mdui-checkbox:active input[type="checkbox"]:not(:disabled):indeterminate + .mdui-checkbox-icon, +.mdui-theme-accent-indigo .mdui-checkbox input[type="checkbox"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon { + -webkit-box-shadow: 0 0 0 15px rgba(83, 109, 254, 0.16); + box-shadow: 0 0 0 15px rgba(83, 109, 254, 0.16); +} +.mdui-theme-accent-light-blue .mdui-checkbox input[type="checkbox"]:checked + .mdui-checkbox-icon::after, +.mdui-theme-accent-light-blue .mdui-checkbox input[type="checkbox"]:indeterminate + .mdui-checkbox-icon::after { + background-color: #40C4FF; + border-color: #40C4FF; +} +.mdui-theme-accent-light-blue .mdui-checkbox:active input[type="checkbox"]:not(:disabled):checked + .mdui-checkbox-icon, +.mdui-theme-accent-light-blue .mdui-checkbox input[type="checkbox"]:focus:not(:disabled):checked + .mdui-checkbox-icon, +.mdui-theme-accent-light-blue .mdui-checkbox:active input[type="checkbox"]:not(:disabled):indeterminate + .mdui-checkbox-icon, +.mdui-theme-accent-light-blue .mdui-checkbox input[type="checkbox"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon { + -webkit-box-shadow: 0 0 0 15px rgba(64, 196, 255, 0.16); + box-shadow: 0 0 0 15px rgba(64, 196, 255, 0.16); +} +.mdui-theme-accent-light-green .mdui-checkbox input[type="checkbox"]:checked + .mdui-checkbox-icon::after, +.mdui-theme-accent-light-green .mdui-checkbox input[type="checkbox"]:indeterminate + .mdui-checkbox-icon::after { + background-color: #B2FF59; + border-color: #B2FF59; +} +.mdui-theme-accent-light-green .mdui-checkbox:active input[type="checkbox"]:not(:disabled):checked + .mdui-checkbox-icon, +.mdui-theme-accent-light-green .mdui-checkbox input[type="checkbox"]:focus:not(:disabled):checked + .mdui-checkbox-icon, +.mdui-theme-accent-light-green .mdui-checkbox:active input[type="checkbox"]:not(:disabled):indeterminate + .mdui-checkbox-icon, +.mdui-theme-accent-light-green .mdui-checkbox input[type="checkbox"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon { + -webkit-box-shadow: 0 0 0 15px rgba(178, 255, 89, 0.16); + box-shadow: 0 0 0 15px rgba(178, 255, 89, 0.16); +} +.mdui-theme-accent-lime .mdui-checkbox input[type="checkbox"]:checked + .mdui-checkbox-icon::after, +.mdui-theme-accent-lime .mdui-checkbox input[type="checkbox"]:indeterminate + .mdui-checkbox-icon::after { + background-color: #EEFF41; + border-color: #EEFF41; +} +.mdui-theme-accent-lime .mdui-checkbox:active input[type="checkbox"]:not(:disabled):checked + .mdui-checkbox-icon, +.mdui-theme-accent-lime .mdui-checkbox input[type="checkbox"]:focus:not(:disabled):checked + .mdui-checkbox-icon, +.mdui-theme-accent-lime .mdui-checkbox:active input[type="checkbox"]:not(:disabled):indeterminate + .mdui-checkbox-icon, +.mdui-theme-accent-lime .mdui-checkbox input[type="checkbox"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon { + -webkit-box-shadow: 0 0 0 15px rgba(238, 255, 65, 0.16); + box-shadow: 0 0 0 15px rgba(238, 255, 65, 0.16); +} +.mdui-theme-accent-orange .mdui-checkbox input[type="checkbox"]:checked + .mdui-checkbox-icon::after, +.mdui-theme-accent-orange .mdui-checkbox input[type="checkbox"]:indeterminate + .mdui-checkbox-icon::after { + background-color: #FFAB40; + border-color: #FFAB40; +} +.mdui-theme-accent-orange .mdui-checkbox:active input[type="checkbox"]:not(:disabled):checked + .mdui-checkbox-icon, +.mdui-theme-accent-orange .mdui-checkbox input[type="checkbox"]:focus:not(:disabled):checked + .mdui-checkbox-icon, +.mdui-theme-accent-orange .mdui-checkbox:active input[type="checkbox"]:not(:disabled):indeterminate + .mdui-checkbox-icon, +.mdui-theme-accent-orange .mdui-checkbox input[type="checkbox"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon { + -webkit-box-shadow: 0 0 0 15px rgba(255, 171, 64, 0.16); + box-shadow: 0 0 0 15px rgba(255, 171, 64, 0.16); +} +.mdui-theme-accent-pink .mdui-checkbox input[type="checkbox"]:checked + .mdui-checkbox-icon::after, +.mdui-theme-accent-pink .mdui-checkbox input[type="checkbox"]:indeterminate + .mdui-checkbox-icon::after { + background-color: #FF4081; + border-color: #FF4081; +} +.mdui-theme-accent-pink .mdui-checkbox:active input[type="checkbox"]:not(:disabled):checked + .mdui-checkbox-icon, +.mdui-theme-accent-pink .mdui-checkbox input[type="checkbox"]:focus:not(:disabled):checked + .mdui-checkbox-icon, +.mdui-theme-accent-pink .mdui-checkbox:active input[type="checkbox"]:not(:disabled):indeterminate + .mdui-checkbox-icon, +.mdui-theme-accent-pink .mdui-checkbox input[type="checkbox"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon { + -webkit-box-shadow: 0 0 0 15px rgba(255, 64, 129, 0.16); + box-shadow: 0 0 0 15px rgba(255, 64, 129, 0.16); +} +.mdui-theme-accent-purple .mdui-checkbox input[type="checkbox"]:checked + .mdui-checkbox-icon::after, +.mdui-theme-accent-purple .mdui-checkbox input[type="checkbox"]:indeterminate + .mdui-checkbox-icon::after { + background-color: #E040FB; + border-color: #E040FB; +} +.mdui-theme-accent-purple .mdui-checkbox:active input[type="checkbox"]:not(:disabled):checked + .mdui-checkbox-icon, +.mdui-theme-accent-purple .mdui-checkbox input[type="checkbox"]:focus:not(:disabled):checked + .mdui-checkbox-icon, +.mdui-theme-accent-purple .mdui-checkbox:active input[type="checkbox"]:not(:disabled):indeterminate + .mdui-checkbox-icon, +.mdui-theme-accent-purple .mdui-checkbox input[type="checkbox"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon { + -webkit-box-shadow: 0 0 0 15px rgba(224, 64, 251, 0.16); + box-shadow: 0 0 0 15px rgba(224, 64, 251, 0.16); +} +.mdui-theme-accent-red .mdui-checkbox input[type="checkbox"]:checked + .mdui-checkbox-icon::after, +.mdui-theme-accent-red .mdui-checkbox input[type="checkbox"]:indeterminate + .mdui-checkbox-icon::after { + background-color: #FF5252; + border-color: #FF5252; +} +.mdui-theme-accent-red .mdui-checkbox:active input[type="checkbox"]:not(:disabled):checked + .mdui-checkbox-icon, +.mdui-theme-accent-red .mdui-checkbox input[type="checkbox"]:focus:not(:disabled):checked + .mdui-checkbox-icon, +.mdui-theme-accent-red .mdui-checkbox:active input[type="checkbox"]:not(:disabled):indeterminate + .mdui-checkbox-icon, +.mdui-theme-accent-red .mdui-checkbox input[type="checkbox"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon { + -webkit-box-shadow: 0 0 0 15px rgba(255, 82, 82, 0.16); + box-shadow: 0 0 0 15px rgba(255, 82, 82, 0.16); +} +.mdui-theme-accent-teal .mdui-checkbox input[type="checkbox"]:checked + .mdui-checkbox-icon::after, +.mdui-theme-accent-teal .mdui-checkbox input[type="checkbox"]:indeterminate + .mdui-checkbox-icon::after { + background-color: #64FFDA; + border-color: #64FFDA; +} +.mdui-theme-accent-teal .mdui-checkbox:active input[type="checkbox"]:not(:disabled):checked + .mdui-checkbox-icon, +.mdui-theme-accent-teal .mdui-checkbox input[type="checkbox"]:focus:not(:disabled):checked + .mdui-checkbox-icon, +.mdui-theme-accent-teal .mdui-checkbox:active input[type="checkbox"]:not(:disabled):indeterminate + .mdui-checkbox-icon, +.mdui-theme-accent-teal .mdui-checkbox input[type="checkbox"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon { + -webkit-box-shadow: 0 0 0 15px rgba(100, 255, 218, 0.16); + box-shadow: 0 0 0 15px rgba(100, 255, 218, 0.16); +} +.mdui-theme-accent-yellow .mdui-checkbox input[type="checkbox"]:checked + .mdui-checkbox-icon::after, +.mdui-theme-accent-yellow .mdui-checkbox input[type="checkbox"]:indeterminate + .mdui-checkbox-icon::after { + background-color: #FFFF00; + border-color: #FFFF00; +} +.mdui-theme-accent-yellow .mdui-checkbox:active input[type="checkbox"]:not(:disabled):checked + .mdui-checkbox-icon, +.mdui-theme-accent-yellow .mdui-checkbox input[type="checkbox"]:focus:not(:disabled):checked + .mdui-checkbox-icon, +.mdui-theme-accent-yellow .mdui-checkbox:active input[type="checkbox"]:not(:disabled):indeterminate + .mdui-checkbox-icon, +.mdui-theme-accent-yellow .mdui-checkbox input[type="checkbox"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon { + -webkit-box-shadow: 0 0 0 15px rgba(255, 255, 0, 0.16); + box-shadow: 0 0 0 15px rgba(255, 255, 0, 0.16); +} +/** + * ============================================================================= + * ************ Checkbox dark ************ + * ============================================================================= + */ +.mdui-theme-layout-dark .mdui-checkbox-icon::after { + border-color: rgba(255, 255, 255, 0.7); +} +.mdui-theme-layout-dark .mdui-checkbox-icon::before { + border-right-color: #303030 !important; + border-bottom-color: #303030 !important; +} +.mdui-theme-layout-dark .mdui-checkbox input[type="checkbox"]:disabled + .mdui-checkbox-icon::after { + border-color: rgba(255, 255, 255, 0.3); +} +.mdui-theme-layout-dark .mdui-checkbox input[type="checkbox"]:disabled:checked + .mdui-checkbox-icon::after, +.mdui-theme-layout-dark .mdui-checkbox input[type="checkbox"]:disabled:indeterminate + .mdui-checkbox-icon::after { + background-color: rgba(255, 255, 255, 0.3) !important; + border-color: transparent !important; +} +.mdui-theme-layout-dark .mdui-checkbox:active input[type="checkbox"] + .mdui-checkbox-icon, +.mdui-theme-layout-dark .mdui-checkbox input[type="checkbox"]:focus + .mdui-checkbox-icon { + -webkit-box-shadow: 0 0 0 15px rgba(255, 255, 255, 0.1); + box-shadow: 0 0 0 15px rgba(255, 255, 255, 0.1); +} +@media (prefers-color-scheme: dark) { + .mdui-theme-layout-auto .mdui-checkbox-icon::after { + border-color: rgba(255, 255, 255, 0.7); + } + .mdui-theme-layout-auto .mdui-checkbox-icon::before { + border-right-color: #303030 !important; + border-bottom-color: #303030 !important; + } + .mdui-theme-layout-auto .mdui-checkbox input[type="checkbox"]:disabled + .mdui-checkbox-icon::after { + border-color: rgba(255, 255, 255, 0.3); + } + .mdui-theme-layout-auto .mdui-checkbox input[type="checkbox"]:disabled:checked + .mdui-checkbox-icon::after, + .mdui-theme-layout-auto .mdui-checkbox input[type="checkbox"]:disabled:indeterminate + .mdui-checkbox-icon::after { + background-color: rgba(255, 255, 255, 0.3) !important; + border-color: transparent !important; + } + .mdui-theme-layout-auto .mdui-checkbox:active input[type="checkbox"] + .mdui-checkbox-icon, + .mdui-theme-layout-auto .mdui-checkbox input[type="checkbox"]:focus + .mdui-checkbox-icon { + -webkit-box-shadow: 0 0 0 15px rgba(255, 255, 255, 0.1); + box-shadow: 0 0 0 15px rgba(255, 255, 255, 0.1); + } +} +/** + * ============================================================================= + * ************ Radio 单选框 ************ + * ============================================================================= + */ +.mdui-radio { + position: relative; + display: inline-block; + height: 36px; + padding-left: 36px; + line-height: 36px; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.mdui-radio input { + position: absolute; + width: 0; + height: 0; + overflow: hidden; + opacity: 0; +} +/* 图标外圈 */ +.mdui-radio-icon { + position: absolute; + top: 9px; + left: 0; + display: inline-block; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 18px; + height: 18px; + vertical-align: middle; + border: 2px solid rgba(0, 0, 0, 0.54); + border-radius: 18px; + -webkit-transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1), -webkit-box-shadow 0.14s cubic-bezier(0.4, 0, 0.2, 1); + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1), -webkit-box-shadow 0.14s cubic-bezier(0.4, 0, 0.2, 1); + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.14s cubic-bezier(0.4, 0, 0.2, 1); + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.14s cubic-bezier(0.4, 0, 0.2, 1), -webkit-box-shadow 0.14s cubic-bezier(0.4, 0, 0.2, 1); +} +.mdui-radio-icon::before { + position: absolute; + top: 0; + left: 0; + width: 14px; + height: 14px; + background-color: #FF4081; + border-radius: 14px; + -webkit-transform: scale(0); + transform: scale(0); + opacity: 0; + -webkit-transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); + content: ' '; +} +/* 选中状态的图标 */ +.mdui-radio input[type="radio"]:checked + .mdui-radio-icon { + border-color: #FF4081; +} +.mdui-radio input[type="radio"]:checked + .mdui-radio-icon::before { + -webkit-transform: scale(0.68); + transform: scale(0.68); + opacity: 1; +} +/* 禁用状态的图标 */ +.mdui-radio input[type="radio"]:disabled + .mdui-radio-icon { + border-color: rgba(0, 0, 0, 0.26) !important; +} +/* 禁用且选中状态的图标 */ +.mdui-radio input[type="radio"]:disabled:checked + .mdui-radio-icon::before { + background-color: rgba(0, 0, 0, 0.26) !important; +} +/* 未选中、禁用时 按下的阴影 */ +.mdui-radio:active input[type="radio"] + .mdui-radio-icon, +.mdui-radio input[type="radio"]:focus + .mdui-radio-icon { + -webkit-box-shadow: 0 0 0 15px rgba(0, 0, 0, 0.1); + box-shadow: 0 0 0 15px rgba(0, 0, 0, 0.1); +} +/* 已选中时按下的阴影 */ +.mdui-radio:active input[type="radio"]:checked:not(:disabled) + .mdui-radio-icon, +.mdui-radio input[type="radio"]:focus:checked:not(:disabled) + .mdui-radio-icon { + -webkit-box-shadow: 0 0 0 15px rgba(255, 64, 129, 0.16); + box-shadow: 0 0 0 15px rgba(255, 64, 129, 0.16); +} +/** + * ============================================================================= + * ************ Radio 强调色 ************ + * ============================================================================= + */ +.mdui-theme-accent-amber .mdui-radio input[type="radio"]:checked + .mdui-radio-icon { + border-color: #FFD740; +} +.mdui-theme-accent-amber .mdui-radio input[type="radio"]:checked + .mdui-radio-icon::before { + background-color: #FFD740; +} +.mdui-theme-accent-amber .mdui-radio:active input[type="radio"]:checked:not(:disabled) + .mdui-radio-icon, +.mdui-theme-accent-amber .mdui-radio input[type="radio"]:focus:checked:not(:disabled) + .mdui-radio-icon { + -webkit-box-shadow: 0 0 0 15px rgba(255, 215, 64, 0.16); + box-shadow: 0 0 0 15px rgba(255, 215, 64, 0.16); +} +.mdui-theme-accent-blue .mdui-radio input[type="radio"]:checked + .mdui-radio-icon { + border-color: #448AFF; +} +.mdui-theme-accent-blue .mdui-radio input[type="radio"]:checked + .mdui-radio-icon::before { + background-color: #448AFF; +} +.mdui-theme-accent-blue .mdui-radio:active input[type="radio"]:checked:not(:disabled) + .mdui-radio-icon, +.mdui-theme-accent-blue .mdui-radio input[type="radio"]:focus:checked:not(:disabled) + .mdui-radio-icon { + -webkit-box-shadow: 0 0 0 15px rgba(68, 138, 255, 0.16); + box-shadow: 0 0 0 15px rgba(68, 138, 255, 0.16); +} +.mdui-theme-accent-cyan .mdui-radio input[type="radio"]:checked + .mdui-radio-icon { + border-color: #18FFFF; +} +.mdui-theme-accent-cyan .mdui-radio input[type="radio"]:checked + .mdui-radio-icon::before { + background-color: #18FFFF; +} +.mdui-theme-accent-cyan .mdui-radio:active input[type="radio"]:checked:not(:disabled) + .mdui-radio-icon, +.mdui-theme-accent-cyan .mdui-radio input[type="radio"]:focus:checked:not(:disabled) + .mdui-radio-icon { + -webkit-box-shadow: 0 0 0 15px rgba(24, 255, 255, 0.16); + box-shadow: 0 0 0 15px rgba(24, 255, 255, 0.16); +} +.mdui-theme-accent-deep-orange .mdui-radio input[type="radio"]:checked + .mdui-radio-icon { + border-color: #FF6E40; +} +.mdui-theme-accent-deep-orange .mdui-radio input[type="radio"]:checked + .mdui-radio-icon::before { + background-color: #FF6E40; +} +.mdui-theme-accent-deep-orange .mdui-radio:active input[type="radio"]:checked:not(:disabled) + .mdui-radio-icon, +.mdui-theme-accent-deep-orange .mdui-radio input[type="radio"]:focus:checked:not(:disabled) + .mdui-radio-icon { + -webkit-box-shadow: 0 0 0 15px rgba(255, 110, 64, 0.16); + box-shadow: 0 0 0 15px rgba(255, 110, 64, 0.16); +} +.mdui-theme-accent-deep-purple .mdui-radio input[type="radio"]:checked + .mdui-radio-icon { + border-color: #7C4DFF; +} +.mdui-theme-accent-deep-purple .mdui-radio input[type="radio"]:checked + .mdui-radio-icon::before { + background-color: #7C4DFF; +} +.mdui-theme-accent-deep-purple .mdui-radio:active input[type="radio"]:checked:not(:disabled) + .mdui-radio-icon, +.mdui-theme-accent-deep-purple .mdui-radio input[type="radio"]:focus:checked:not(:disabled) + .mdui-radio-icon { + -webkit-box-shadow: 0 0 0 15px rgba(124, 77, 255, 0.16); + box-shadow: 0 0 0 15px rgba(124, 77, 255, 0.16); +} +.mdui-theme-accent-green .mdui-radio input[type="radio"]:checked + .mdui-radio-icon { + border-color: #69F0AE; +} +.mdui-theme-accent-green .mdui-radio input[type="radio"]:checked + .mdui-radio-icon::before { + background-color: #69F0AE; +} +.mdui-theme-accent-green .mdui-radio:active input[type="radio"]:checked:not(:disabled) + .mdui-radio-icon, +.mdui-theme-accent-green .mdui-radio input[type="radio"]:focus:checked:not(:disabled) + .mdui-radio-icon { + -webkit-box-shadow: 0 0 0 15px rgba(105, 240, 174, 0.16); + box-shadow: 0 0 0 15px rgba(105, 240, 174, 0.16); +} +.mdui-theme-accent-indigo .mdui-radio input[type="radio"]:checked + .mdui-radio-icon { + border-color: #536DFE; +} +.mdui-theme-accent-indigo .mdui-radio input[type="radio"]:checked + .mdui-radio-icon::before { + background-color: #536DFE; +} +.mdui-theme-accent-indigo .mdui-radio:active input[type="radio"]:checked:not(:disabled) + .mdui-radio-icon, +.mdui-theme-accent-indigo .mdui-radio input[type="radio"]:focus:checked:not(:disabled) + .mdui-radio-icon { + -webkit-box-shadow: 0 0 0 15px rgba(83, 109, 254, 0.16); + box-shadow: 0 0 0 15px rgba(83, 109, 254, 0.16); +} +.mdui-theme-accent-light-blue .mdui-radio input[type="radio"]:checked + .mdui-radio-icon { + border-color: #40C4FF; +} +.mdui-theme-accent-light-blue .mdui-radio input[type="radio"]:checked + .mdui-radio-icon::before { + background-color: #40C4FF; +} +.mdui-theme-accent-light-blue .mdui-radio:active input[type="radio"]:checked:not(:disabled) + .mdui-radio-icon, +.mdui-theme-accent-light-blue .mdui-radio input[type="radio"]:focus:checked:not(:disabled) + .mdui-radio-icon { + -webkit-box-shadow: 0 0 0 15px rgba(64, 196, 255, 0.16); + box-shadow: 0 0 0 15px rgba(64, 196, 255, 0.16); +} +.mdui-theme-accent-light-green .mdui-radio input[type="radio"]:checked + .mdui-radio-icon { + border-color: #B2FF59; +} +.mdui-theme-accent-light-green .mdui-radio input[type="radio"]:checked + .mdui-radio-icon::before { + background-color: #B2FF59; +} +.mdui-theme-accent-light-green .mdui-radio:active input[type="radio"]:checked:not(:disabled) + .mdui-radio-icon, +.mdui-theme-accent-light-green .mdui-radio input[type="radio"]:focus:checked:not(:disabled) + .mdui-radio-icon { + -webkit-box-shadow: 0 0 0 15px rgba(178, 255, 89, 0.16); + box-shadow: 0 0 0 15px rgba(178, 255, 89, 0.16); +} +.mdui-theme-accent-lime .mdui-radio input[type="radio"]:checked + .mdui-radio-icon { + border-color: #EEFF41; +} +.mdui-theme-accent-lime .mdui-radio input[type="radio"]:checked + .mdui-radio-icon::before { + background-color: #EEFF41; +} +.mdui-theme-accent-lime .mdui-radio:active input[type="radio"]:checked:not(:disabled) + .mdui-radio-icon, +.mdui-theme-accent-lime .mdui-radio input[type="radio"]:focus:checked:not(:disabled) + .mdui-radio-icon { + -webkit-box-shadow: 0 0 0 15px rgba(238, 255, 65, 0.16); + box-shadow: 0 0 0 15px rgba(238, 255, 65, 0.16); +} +.mdui-theme-accent-orange .mdui-radio input[type="radio"]:checked + .mdui-radio-icon { + border-color: #FFAB40; +} +.mdui-theme-accent-orange .mdui-radio input[type="radio"]:checked + .mdui-radio-icon::before { + background-color: #FFAB40; +} +.mdui-theme-accent-orange .mdui-radio:active input[type="radio"]:checked:not(:disabled) + .mdui-radio-icon, +.mdui-theme-accent-orange .mdui-radio input[type="radio"]:focus:checked:not(:disabled) + .mdui-radio-icon { + -webkit-box-shadow: 0 0 0 15px rgba(255, 171, 64, 0.16); + box-shadow: 0 0 0 15px rgba(255, 171, 64, 0.16); +} +.mdui-theme-accent-pink .mdui-radio input[type="radio"]:checked + .mdui-radio-icon { + border-color: #FF4081; +} +.mdui-theme-accent-pink .mdui-radio input[type="radio"]:checked + .mdui-radio-icon::before { + background-color: #FF4081; +} +.mdui-theme-accent-pink .mdui-radio:active input[type="radio"]:checked:not(:disabled) + .mdui-radio-icon, +.mdui-theme-accent-pink .mdui-radio input[type="radio"]:focus:checked:not(:disabled) + .mdui-radio-icon { + -webkit-box-shadow: 0 0 0 15px rgba(255, 64, 129, 0.16); + box-shadow: 0 0 0 15px rgba(255, 64, 129, 0.16); +} +.mdui-theme-accent-purple .mdui-radio input[type="radio"]:checked + .mdui-radio-icon { + border-color: #E040FB; +} +.mdui-theme-accent-purple .mdui-radio input[type="radio"]:checked + .mdui-radio-icon::before { + background-color: #E040FB; +} +.mdui-theme-accent-purple .mdui-radio:active input[type="radio"]:checked:not(:disabled) + .mdui-radio-icon, +.mdui-theme-accent-purple .mdui-radio input[type="radio"]:focus:checked:not(:disabled) + .mdui-radio-icon { + -webkit-box-shadow: 0 0 0 15px rgba(224, 64, 251, 0.16); + box-shadow: 0 0 0 15px rgba(224, 64, 251, 0.16); +} +.mdui-theme-accent-red .mdui-radio input[type="radio"]:checked + .mdui-radio-icon { + border-color: #FF5252; +} +.mdui-theme-accent-red .mdui-radio input[type="radio"]:checked + .mdui-radio-icon::before { + background-color: #FF5252; +} +.mdui-theme-accent-red .mdui-radio:active input[type="radio"]:checked:not(:disabled) + .mdui-radio-icon, +.mdui-theme-accent-red .mdui-radio input[type="radio"]:focus:checked:not(:disabled) + .mdui-radio-icon { + -webkit-box-shadow: 0 0 0 15px rgba(255, 82, 82, 0.16); + box-shadow: 0 0 0 15px rgba(255, 82, 82, 0.16); +} +.mdui-theme-accent-teal .mdui-radio input[type="radio"]:checked + .mdui-radio-icon { + border-color: #64FFDA; +} +.mdui-theme-accent-teal .mdui-radio input[type="radio"]:checked + .mdui-radio-icon::before { + background-color: #64FFDA; +} +.mdui-theme-accent-teal .mdui-radio:active input[type="radio"]:checked:not(:disabled) + .mdui-radio-icon, +.mdui-theme-accent-teal .mdui-radio input[type="radio"]:focus:checked:not(:disabled) + .mdui-radio-icon { + -webkit-box-shadow: 0 0 0 15px rgba(100, 255, 218, 0.16); + box-shadow: 0 0 0 15px rgba(100, 255, 218, 0.16); +} +.mdui-theme-accent-yellow .mdui-radio input[type="radio"]:checked + .mdui-radio-icon { + border-color: #FFFF00; +} +.mdui-theme-accent-yellow .mdui-radio input[type="radio"]:checked + .mdui-radio-icon::before { + background-color: #FFFF00; +} +.mdui-theme-accent-yellow .mdui-radio:active input[type="radio"]:checked:not(:disabled) + .mdui-radio-icon, +.mdui-theme-accent-yellow .mdui-radio input[type="radio"]:focus:checked:not(:disabled) + .mdui-radio-icon { + -webkit-box-shadow: 0 0 0 15px rgba(255, 255, 0, 0.16); + box-shadow: 0 0 0 15px rgba(255, 255, 0, 0.16); +} +/** + * ============================================================================= + * ************ Radio dark ************ + * ============================================================================= + */ +.mdui-theme-layout-dark .mdui-radio-icon { + border-color: rgba(255, 255, 255, 0.7); +} +.mdui-theme-layout-dark .mdui-radio input[type="radio"]:disabled + .mdui-radio-icon { + border-color: rgba(255, 255, 255, 0.3) !important; +} +.mdui-theme-layout-dark .mdui-radio input[type="radio"]:disabled:checked + .mdui-radio-icon::before { + background-color: rgba(255, 255, 255, 0.3) !important; +} +.mdui-theme-layout-dark .mdui-radio:active input[type="radio"] + .mdui-radio-icon, +.mdui-theme-layout-dark .mdui-radio input[type="radio"]:focus + .mdui-radio-icon { + -webkit-box-shadow: 0 0 0 15px rgba(255, 255, 255, 0.1); + box-shadow: 0 0 0 15px rgba(255, 255, 255, 0.1); +} +@media (prefers-color-scheme: dark) { + .mdui-theme-layout-auto .mdui-radio-icon { + border-color: rgba(255, 255, 255, 0.7); + } + .mdui-theme-layout-auto .mdui-radio input[type="radio"]:disabled + .mdui-radio-icon { + border-color: rgba(255, 255, 255, 0.3) !important; + } + .mdui-theme-layout-auto .mdui-radio input[type="radio"]:disabled:checked + .mdui-radio-icon::before { + background-color: rgba(255, 255, 255, 0.3) !important; + } + .mdui-theme-layout-auto .mdui-radio:active input[type="radio"] + .mdui-radio-icon, + .mdui-theme-layout-auto .mdui-radio input[type="radio"]:focus + .mdui-radio-icon { + -webkit-box-shadow: 0 0 0 15px rgba(255, 255, 255, 0.1); + box-shadow: 0 0 0 15px rgba(255, 255, 255, 0.1); + } +} +/** + * ============================================================================= + * ************ Switch 单选框 ************ + * ============================================================================= + */ +.mdui-switch { + display: inline-block; + height: 36px; + line-height: 36px; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.mdui-switch input { + position: absolute; + width: 0; + height: 0; + overflow: hidden; + opacity: 0; +} +/* 图标轨道 */ +.mdui-switch-icon { + position: relative; + display: inline-block; + width: 36px; + height: 14px; + vertical-align: middle; + background-color: rgba(0, 0, 0, 0.38); + border-radius: 14px; + -webkit-transition: background-color 0.3s cubic-bezier(0.4, 0, 0.2, 1); + transition: background-color 0.3s cubic-bezier(0.4, 0, 0.2, 1); +} +.mdui-switch-icon::before { + position: absolute; + top: -3px; + left: -3px; + display: inline-block; + width: 20px; + height: 20px; + background-color: #FAFAFA; + border-radius: 20px; + -webkit-transition: background-color 0.3s cubic-bezier(0.4, 0, 0.2, 1), left 0.3s cubic-bezier(0.4, 0, 0.2, 1), -webkit-box-shadow 0.14s cubic-bezier(0.4, 0, 0.2, 1); + transition: background-color 0.3s cubic-bezier(0.4, 0, 0.2, 1), left 0.3s cubic-bezier(0.4, 0, 0.2, 1), -webkit-box-shadow 0.14s cubic-bezier(0.4, 0, 0.2, 1); + transition: box-shadow 0.14s cubic-bezier(0.4, 0, 0.2, 1), background-color 0.3s cubic-bezier(0.4, 0, 0.2, 1), left 0.3s cubic-bezier(0.4, 0, 0.2, 1); + transition: box-shadow 0.14s cubic-bezier(0.4, 0, 0.2, 1), background-color 0.3s cubic-bezier(0.4, 0, 0.2, 1), left 0.3s cubic-bezier(0.4, 0, 0.2, 1), -webkit-box-shadow 0.14s cubic-bezier(0.4, 0, 0.2, 1); + content: ' '; + -webkit-box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12); + box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12); +} +/* 选中状态的图标 */ +.mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(255, 64, 129, 0.5); +} +.mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + left: 20px; + background-color: #FF4081; +} +/* 未选中时或禁用时 按下的阴影 */ +.mdui-switch:active input[type="checkbox"] + .mdui-switch-icon::before, +.mdui-switch input[type="checkbox"]:focus + .mdui-switch-icon::before { + -webkit-box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(0, 0, 0, 0.1); + box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(0, 0, 0, 0.1); +} +/* 已选中时按下的阴影 */ +.mdui-switch:active input[type="checkbox"]:checked:not(:disabled) + .mdui-switch-icon::before, +.mdui-switch input[type="checkbox"]:focus:checked:not(:disabled) + .mdui-switch-icon::before { + -webkit-box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(255, 64, 129, 0.16); + box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(255, 64, 129, 0.16); +} +/* 禁用状态 */ +.mdui-switch input[type="checkbox"]:disabled + .mdui-switch-icon { + background-color: rgba(0, 0, 0, 0.12) !important; +} +.mdui-switch input[type="checkbox"]:disabled + .mdui-switch-icon::before { + background-color: #BDBDBD !important; +} +/** + * ============================================================================= + * ************ Switch 强调色 ************ + * ============================================================================= + */ +.mdui-theme-accent-amber .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(255, 215, 64, 0.5); +} +.mdui-theme-accent-amber .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #FFD740; +} +.mdui-theme-accent-amber .mdui-switch:active input[type="checkbox"]:checked:not(:disabled) + .mdui-switch-icon::before, +.mdui-theme-accent-amber .mdui-switch input[type="checkbox"]:focus:checked:not(:disabled) + .mdui-switch-icon::before { + -webkit-box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(255, 215, 64, 0.16); + box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(255, 215, 64, 0.16); +} +.mdui-theme-accent-blue .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(68, 138, 255, 0.5); +} +.mdui-theme-accent-blue .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #448AFF; +} +.mdui-theme-accent-blue .mdui-switch:active input[type="checkbox"]:checked:not(:disabled) + .mdui-switch-icon::before, +.mdui-theme-accent-blue .mdui-switch input[type="checkbox"]:focus:checked:not(:disabled) + .mdui-switch-icon::before { + -webkit-box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(68, 138, 255, 0.16); + box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(68, 138, 255, 0.16); +} +.mdui-theme-accent-cyan .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(24, 255, 255, 0.5); +} +.mdui-theme-accent-cyan .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #18FFFF; +} +.mdui-theme-accent-cyan .mdui-switch:active input[type="checkbox"]:checked:not(:disabled) + .mdui-switch-icon::before, +.mdui-theme-accent-cyan .mdui-switch input[type="checkbox"]:focus:checked:not(:disabled) + .mdui-switch-icon::before { + -webkit-box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(24, 255, 255, 0.16); + box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(24, 255, 255, 0.16); +} +.mdui-theme-accent-deep-orange .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(255, 110, 64, 0.5); +} +.mdui-theme-accent-deep-orange .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #FF6E40; +} +.mdui-theme-accent-deep-orange .mdui-switch:active input[type="checkbox"]:checked:not(:disabled) + .mdui-switch-icon::before, +.mdui-theme-accent-deep-orange .mdui-switch input[type="checkbox"]:focus:checked:not(:disabled) + .mdui-switch-icon::before { + -webkit-box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(255, 110, 64, 0.16); + box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(255, 110, 64, 0.16); +} +.mdui-theme-accent-deep-purple .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(124, 77, 255, 0.5); +} +.mdui-theme-accent-deep-purple .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #7C4DFF; +} +.mdui-theme-accent-deep-purple .mdui-switch:active input[type="checkbox"]:checked:not(:disabled) + .mdui-switch-icon::before, +.mdui-theme-accent-deep-purple .mdui-switch input[type="checkbox"]:focus:checked:not(:disabled) + .mdui-switch-icon::before { + -webkit-box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(124, 77, 255, 0.16); + box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(124, 77, 255, 0.16); +} +.mdui-theme-accent-green .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(105, 240, 174, 0.5); +} +.mdui-theme-accent-green .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #69F0AE; +} +.mdui-theme-accent-green .mdui-switch:active input[type="checkbox"]:checked:not(:disabled) + .mdui-switch-icon::before, +.mdui-theme-accent-green .mdui-switch input[type="checkbox"]:focus:checked:not(:disabled) + .mdui-switch-icon::before { + -webkit-box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(105, 240, 174, 0.16); + box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(105, 240, 174, 0.16); +} +.mdui-theme-accent-indigo .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(83, 109, 254, 0.5); +} +.mdui-theme-accent-indigo .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #536DFE; +} +.mdui-theme-accent-indigo .mdui-switch:active input[type="checkbox"]:checked:not(:disabled) + .mdui-switch-icon::before, +.mdui-theme-accent-indigo .mdui-switch input[type="checkbox"]:focus:checked:not(:disabled) + .mdui-switch-icon::before { + -webkit-box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(83, 109, 254, 0.16); + box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(83, 109, 254, 0.16); +} +.mdui-theme-accent-light-blue .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(64, 196, 255, 0.5); +} +.mdui-theme-accent-light-blue .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #40C4FF; +} +.mdui-theme-accent-light-blue .mdui-switch:active input[type="checkbox"]:checked:not(:disabled) + .mdui-switch-icon::before, +.mdui-theme-accent-light-blue .mdui-switch input[type="checkbox"]:focus:checked:not(:disabled) + .mdui-switch-icon::before { + -webkit-box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(64, 196, 255, 0.16); + box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(64, 196, 255, 0.16); +} +.mdui-theme-accent-light-green .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(178, 255, 89, 0.5); +} +.mdui-theme-accent-light-green .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #B2FF59; +} +.mdui-theme-accent-light-green .mdui-switch:active input[type="checkbox"]:checked:not(:disabled) + .mdui-switch-icon::before, +.mdui-theme-accent-light-green .mdui-switch input[type="checkbox"]:focus:checked:not(:disabled) + .mdui-switch-icon::before { + -webkit-box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(178, 255, 89, 0.16); + box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(178, 255, 89, 0.16); +} +.mdui-theme-accent-lime .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(238, 255, 65, 0.5); +} +.mdui-theme-accent-lime .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #EEFF41; +} +.mdui-theme-accent-lime .mdui-switch:active input[type="checkbox"]:checked:not(:disabled) + .mdui-switch-icon::before, +.mdui-theme-accent-lime .mdui-switch input[type="checkbox"]:focus:checked:not(:disabled) + .mdui-switch-icon::before { + -webkit-box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(238, 255, 65, 0.16); + box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(238, 255, 65, 0.16); +} +.mdui-theme-accent-orange .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(255, 171, 64, 0.5); +} +.mdui-theme-accent-orange .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #FFAB40; +} +.mdui-theme-accent-orange .mdui-switch:active input[type="checkbox"]:checked:not(:disabled) + .mdui-switch-icon::before, +.mdui-theme-accent-orange .mdui-switch input[type="checkbox"]:focus:checked:not(:disabled) + .mdui-switch-icon::before { + -webkit-box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(255, 171, 64, 0.16); + box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(255, 171, 64, 0.16); +} +.mdui-theme-accent-pink .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(255, 64, 129, 0.5); +} +.mdui-theme-accent-pink .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #FF4081; +} +.mdui-theme-accent-pink .mdui-switch:active input[type="checkbox"]:checked:not(:disabled) + .mdui-switch-icon::before, +.mdui-theme-accent-pink .mdui-switch input[type="checkbox"]:focus:checked:not(:disabled) + .mdui-switch-icon::before { + -webkit-box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(255, 64, 129, 0.16); + box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(255, 64, 129, 0.16); +} +.mdui-theme-accent-purple .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(224, 64, 251, 0.5); +} +.mdui-theme-accent-purple .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #E040FB; +} +.mdui-theme-accent-purple .mdui-switch:active input[type="checkbox"]:checked:not(:disabled) + .mdui-switch-icon::before, +.mdui-theme-accent-purple .mdui-switch input[type="checkbox"]:focus:checked:not(:disabled) + .mdui-switch-icon::before { + -webkit-box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(224, 64, 251, 0.16); + box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(224, 64, 251, 0.16); +} +.mdui-theme-accent-red .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(255, 82, 82, 0.5); +} +.mdui-theme-accent-red .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #FF5252; +} +.mdui-theme-accent-red .mdui-switch:active input[type="checkbox"]:checked:not(:disabled) + .mdui-switch-icon::before, +.mdui-theme-accent-red .mdui-switch input[type="checkbox"]:focus:checked:not(:disabled) + .mdui-switch-icon::before { + -webkit-box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(255, 82, 82, 0.16); + box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(255, 82, 82, 0.16); +} +.mdui-theme-accent-teal .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(100, 255, 218, 0.5); +} +.mdui-theme-accent-teal .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #64FFDA; +} +.mdui-theme-accent-teal .mdui-switch:active input[type="checkbox"]:checked:not(:disabled) + .mdui-switch-icon::before, +.mdui-theme-accent-teal .mdui-switch input[type="checkbox"]:focus:checked:not(:disabled) + .mdui-switch-icon::before { + -webkit-box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(100, 255, 218, 0.16); + box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(100, 255, 218, 0.16); +} +.mdui-theme-accent-yellow .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(255, 255, 0, 0.5); +} +.mdui-theme-accent-yellow .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #FFFF00; +} +.mdui-theme-accent-yellow .mdui-switch:active input[type="checkbox"]:checked:not(:disabled) + .mdui-switch-icon::before, +.mdui-theme-accent-yellow .mdui-switch input[type="checkbox"]:focus:checked:not(:disabled) + .mdui-switch-icon::before { + -webkit-box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(255, 255, 0, 0.16); + box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(255, 255, 0, 0.16); +} +/** + * ============================================================================= + * ************ Radio dark ************ + * ============================================================================= + */ +.mdui-theme-layout-dark .mdui-switch-icon { + background-color: rgba(255, 255, 255, 0.3); +} +.mdui-theme-layout-dark .mdui-switch-icon::before { + background-color: #BDBDBD; +} +.mdui-theme-layout-dark.mdui-theme-accent-amber .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(255, 229, 127, 0.5); +} +.mdui-theme-layout-dark.mdui-theme-accent-amber .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #FFE57F; +} +.mdui-theme-layout-dark.mdui-theme-accent-blue .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(130, 177, 255, 0.5); +} +.mdui-theme-layout-dark.mdui-theme-accent-blue .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #82B1FF; +} +.mdui-theme-layout-dark.mdui-theme-accent-cyan .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(132, 255, 255, 0.5); +} +.mdui-theme-layout-dark.mdui-theme-accent-cyan .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #84FFFF; +} +.mdui-theme-layout-dark.mdui-theme-accent-deep-orange .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(255, 158, 128, 0.5); +} +.mdui-theme-layout-dark.mdui-theme-accent-deep-orange .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #FF9E80; +} +.mdui-theme-layout-dark.mdui-theme-accent-deep-purple .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(179, 136, 255, 0.5); +} +.mdui-theme-layout-dark.mdui-theme-accent-deep-purple .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #B388FF; +} +.mdui-theme-layout-dark.mdui-theme-accent-green .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(185, 246, 202, 0.5); +} +.mdui-theme-layout-dark.mdui-theme-accent-green .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #B9F6CA; +} +.mdui-theme-layout-dark.mdui-theme-accent-indigo .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(140, 158, 255, 0.5); +} +.mdui-theme-layout-dark.mdui-theme-accent-indigo .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #8C9EFF; +} +.mdui-theme-layout-dark.mdui-theme-accent-light-blue .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(128, 216, 255, 0.5); +} +.mdui-theme-layout-dark.mdui-theme-accent-light-blue .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #80D8FF; +} +.mdui-theme-layout-dark.mdui-theme-accent-light-green .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(204, 255, 144, 0.5); +} +.mdui-theme-layout-dark.mdui-theme-accent-light-green .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #CCFF90; +} +.mdui-theme-layout-dark.mdui-theme-accent-lime .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(244, 255, 129, 0.5); +} +.mdui-theme-layout-dark.mdui-theme-accent-lime .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #F4FF81; +} +.mdui-theme-layout-dark.mdui-theme-accent-orange .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(255, 209, 128, 0.5); +} +.mdui-theme-layout-dark.mdui-theme-accent-orange .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #FFD180; +} +.mdui-theme-layout-dark.mdui-theme-accent-pink .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(255, 128, 171, 0.5); +} +.mdui-theme-layout-dark.mdui-theme-accent-pink .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #FF80AB; +} +.mdui-theme-layout-dark.mdui-theme-accent-purple .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(234, 128, 252, 0.5); +} +.mdui-theme-layout-dark.mdui-theme-accent-purple .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #EA80FC; +} +.mdui-theme-layout-dark.mdui-theme-accent-red .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(255, 138, 128, 0.5); +} +.mdui-theme-layout-dark.mdui-theme-accent-red .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #FF8A80; +} +.mdui-theme-layout-dark.mdui-theme-accent-teal .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(167, 255, 235, 0.5); +} +.mdui-theme-layout-dark.mdui-theme-accent-teal .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #A7FFEB; +} +.mdui-theme-layout-dark.mdui-theme-accent-yellow .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(255, 255, 141, 0.5); +} +.mdui-theme-layout-dark.mdui-theme-accent-yellow .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #FFFF8D; +} +.mdui-theme-layout-dark .mdui-switch:active input[type="checkbox"] + .mdui-switch-icon::before, +.mdui-theme-layout-dark .mdui-switch input[type="checkbox"]:focus + .mdui-switch-icon::before { + -webkit-box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(255, 255, 255, 0.1); + box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(255, 255, 255, 0.1); +} +.mdui-theme-layout-dark .mdui-switch input[type="checkbox"]:disabled + .mdui-switch-icon { + background-color: rgba(255, 255, 255, 0.1) !important; +} +.mdui-theme-layout-dark .mdui-switch input[type="checkbox"]:disabled + .mdui-switch-icon::before { + background-color: #424242 !important; +} +@media (prefers-color-scheme: dark) { + .mdui-theme-layout-auto .mdui-switch-icon { + background-color: rgba(255, 255, 255, 0.3); + } + .mdui-theme-layout-auto .mdui-switch-icon::before { + background-color: #BDBDBD; + } + .mdui-theme-layout-auto.mdui-theme-accent-amber .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(255, 229, 127, 0.5); + } + .mdui-theme-layout-auto.mdui-theme-accent-amber .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #FFE57F; + } + .mdui-theme-layout-auto.mdui-theme-accent-blue .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(130, 177, 255, 0.5); + } + .mdui-theme-layout-auto.mdui-theme-accent-blue .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #82B1FF; + } + .mdui-theme-layout-auto.mdui-theme-accent-cyan .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(132, 255, 255, 0.5); + } + .mdui-theme-layout-auto.mdui-theme-accent-cyan .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #84FFFF; + } + .mdui-theme-layout-auto.mdui-theme-accent-deep-orange .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(255, 158, 128, 0.5); + } + .mdui-theme-layout-auto.mdui-theme-accent-deep-orange .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #FF9E80; + } + .mdui-theme-layout-auto.mdui-theme-accent-deep-purple .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(179, 136, 255, 0.5); + } + .mdui-theme-layout-auto.mdui-theme-accent-deep-purple .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #B388FF; + } + .mdui-theme-layout-auto.mdui-theme-accent-green .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(185, 246, 202, 0.5); + } + .mdui-theme-layout-auto.mdui-theme-accent-green .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #B9F6CA; + } + .mdui-theme-layout-auto.mdui-theme-accent-indigo .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(140, 158, 255, 0.5); + } + .mdui-theme-layout-auto.mdui-theme-accent-indigo .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #8C9EFF; + } + .mdui-theme-layout-auto.mdui-theme-accent-light-blue .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(128, 216, 255, 0.5); + } + .mdui-theme-layout-auto.mdui-theme-accent-light-blue .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #80D8FF; + } + .mdui-theme-layout-auto.mdui-theme-accent-light-green .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(204, 255, 144, 0.5); + } + .mdui-theme-layout-auto.mdui-theme-accent-light-green .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #CCFF90; + } + .mdui-theme-layout-auto.mdui-theme-accent-lime .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(244, 255, 129, 0.5); + } + .mdui-theme-layout-auto.mdui-theme-accent-lime .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #F4FF81; + } + .mdui-theme-layout-auto.mdui-theme-accent-orange .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(255, 209, 128, 0.5); + } + .mdui-theme-layout-auto.mdui-theme-accent-orange .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #FFD180; + } + .mdui-theme-layout-auto.mdui-theme-accent-pink .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(255, 128, 171, 0.5); + } + .mdui-theme-layout-auto.mdui-theme-accent-pink .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #FF80AB; + } + .mdui-theme-layout-auto.mdui-theme-accent-purple .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(234, 128, 252, 0.5); + } + .mdui-theme-layout-auto.mdui-theme-accent-purple .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #EA80FC; + } + .mdui-theme-layout-auto.mdui-theme-accent-red .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(255, 138, 128, 0.5); + } + .mdui-theme-layout-auto.mdui-theme-accent-red .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #FF8A80; + } + .mdui-theme-layout-auto.mdui-theme-accent-teal .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(167, 255, 235, 0.5); + } + .mdui-theme-layout-auto.mdui-theme-accent-teal .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #A7FFEB; + } + .mdui-theme-layout-auto.mdui-theme-accent-yellow .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(255, 255, 141, 0.5); + } + .mdui-theme-layout-auto.mdui-theme-accent-yellow .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #FFFF8D; + } + .mdui-theme-layout-auto .mdui-switch:active input[type="checkbox"] + .mdui-switch-icon::before, + .mdui-theme-layout-auto .mdui-switch input[type="checkbox"]:focus + .mdui-switch-icon::before { + -webkit-box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(255, 255, 255, 0.1); + box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(255, 255, 255, 0.1); + } + .mdui-theme-layout-auto .mdui-switch input[type="checkbox"]:disabled + .mdui-switch-icon { + background-color: rgba(255, 255, 255, 0.1) !important; + } + .mdui-theme-layout-auto .mdui-switch input[type="checkbox"]:disabled + .mdui-switch-icon::before { + background-color: #424242 !important; + } +} +/** + * ============================================================================= + * ************ Slider 滑块 ************ + * ============================================================================= + */ +.mdui-slider { + position: relative; + display: block; + width: 100%; + height: 36px; +} +.mdui-slider input[type="range"] { + position: absolute; + top: 50%; + left: 0; + z-index: 2; + width: 100%; + height: 20px; + margin-top: -10px; + cursor: pointer; + opacity: 0; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; +} +.mdui-slider-track, +.mdui-slider-fill { + position: absolute; + top: 50%; + -webkit-box-sizing: border-box; + box-sizing: border-box; + height: 2px; + margin-top: -1px; +} +.mdui-slider-track::before, +.mdui-slider-fill::before { + display: block; + width: 100%; + height: 100%; + content: ' '; +} +/* 轨道 */ +.mdui-slider-track { + right: 0; +} +.mdui-slider-track::before { + background-color: #bdbdbd; + -webkit-transition: background-color 0.3s cubic-bezier(0.4, 0, 0.2, 1); + transition: background-color 0.3s cubic-bezier(0.4, 0, 0.2, 1); +} +/* 已滑动部分 */ +.mdui-slider-fill { + left: 0; +} +.mdui-slider-fill::before { + background-color: #FF4081; +} +/* 滑块 */ +.mdui-slider-thumb { + position: absolute; + top: 50%; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 12px; + height: 12px; + margin-top: -6px; + background-color: #FF4081; + border: 2px solid #FF4081; + border-radius: 50%; + -webkit-transform: translate(-50%); + transform: translate(-50%); + -webkit-transition: background 0.45s cubic-bezier(0.4, 0, 0.2, 1), border-color 0.45s cubic-bezier(0.4, 0, 0.2, 1), border-radius 0.2s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 0.2s cubic-bezier(0.4, 0, 0.2, 1); + transition: background 0.45s cubic-bezier(0.4, 0, 0.2, 1), border-color 0.45s cubic-bezier(0.4, 0, 0.2, 1), border-radius 0.2s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 0.2s cubic-bezier(0.4, 0, 0.2, 1); + transition: background 0.45s cubic-bezier(0.4, 0, 0.2, 1), border-color 0.45s cubic-bezier(0.4, 0, 0.2, 1), transform 0.2s cubic-bezier(0.4, 0, 0.2, 1), border-radius 0.2s cubic-bezier(0.4, 0, 0.2, 1); + transition: background 0.45s cubic-bezier(0.4, 0, 0.2, 1), border-color 0.45s cubic-bezier(0.4, 0, 0.2, 1), transform 0.2s cubic-bezier(0.4, 0, 0.2, 1), border-radius 0.2s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 0.2s cubic-bezier(0.4, 0, 0.2, 1); + will-change: background, border-color, transform, border-radius; +} +/** + * ============================================================================= + * ************ Slider 强调色 ************ + * ============================================================================= + */ +.mdui-theme-accent-amber .mdui-slider-fill::before { + background-color: #FFD740; +} +.mdui-theme-accent-amber .mdui-slider-thumb { + background-color: #FFD740; + border: 2px solid #FFD740; +} +.mdui-theme-accent-blue .mdui-slider-fill::before { + background-color: #448AFF; +} +.mdui-theme-accent-blue .mdui-slider-thumb { + background-color: #448AFF; + border: 2px solid #448AFF; +} +.mdui-theme-accent-cyan .mdui-slider-fill::before { + background-color: #18FFFF; +} +.mdui-theme-accent-cyan .mdui-slider-thumb { + background-color: #18FFFF; + border: 2px solid #18FFFF; +} +.mdui-theme-accent-deep-orange .mdui-slider-fill::before { + background-color: #FF6E40; +} +.mdui-theme-accent-deep-orange .mdui-slider-thumb { + background-color: #FF6E40; + border: 2px solid #FF6E40; +} +.mdui-theme-accent-deep-purple .mdui-slider-fill::before { + background-color: #7C4DFF; +} +.mdui-theme-accent-deep-purple .mdui-slider-thumb { + background-color: #7C4DFF; + border: 2px solid #7C4DFF; +} +.mdui-theme-accent-green .mdui-slider-fill::before { + background-color: #69F0AE; +} +.mdui-theme-accent-green .mdui-slider-thumb { + background-color: #69F0AE; + border: 2px solid #69F0AE; +} +.mdui-theme-accent-indigo .mdui-slider-fill::before { + background-color: #536DFE; +} +.mdui-theme-accent-indigo .mdui-slider-thumb { + background-color: #536DFE; + border: 2px solid #536DFE; +} +.mdui-theme-accent-light-blue .mdui-slider-fill::before { + background-color: #40C4FF; +} +.mdui-theme-accent-light-blue .mdui-slider-thumb { + background-color: #40C4FF; + border: 2px solid #40C4FF; +} +.mdui-theme-accent-light-green .mdui-slider-fill::before { + background-color: #B2FF59; +} +.mdui-theme-accent-light-green .mdui-slider-thumb { + background-color: #B2FF59; + border: 2px solid #B2FF59; +} +.mdui-theme-accent-lime .mdui-slider-fill::before { + background-color: #EEFF41; +} +.mdui-theme-accent-lime .mdui-slider-thumb { + background-color: #EEFF41; + border: 2px solid #EEFF41; +} +.mdui-theme-accent-orange .mdui-slider-fill::before { + background-color: #FFAB40; +} +.mdui-theme-accent-orange .mdui-slider-thumb { + background-color: #FFAB40; + border: 2px solid #FFAB40; +} +.mdui-theme-accent-pink .mdui-slider-fill::before { + background-color: #FF4081; +} +.mdui-theme-accent-pink .mdui-slider-thumb { + background-color: #FF4081; + border: 2px solid #FF4081; +} +.mdui-theme-accent-purple .mdui-slider-fill::before { + background-color: #E040FB; +} +.mdui-theme-accent-purple .mdui-slider-thumb { + background-color: #E040FB; + border: 2px solid #E040FB; +} +.mdui-theme-accent-red .mdui-slider-fill::before { + background-color: #FF5252; +} +.mdui-theme-accent-red .mdui-slider-thumb { + background-color: #FF5252; + border: 2px solid #FF5252; +} +.mdui-theme-accent-teal .mdui-slider-fill::before { + background-color: #64FFDA; +} +.mdui-theme-accent-teal .mdui-slider-thumb { + background-color: #64FFDA; + border: 2px solid #64FFDA; +} +.mdui-theme-accent-yellow .mdui-slider-fill::before { + background-color: #FFFF00; +} +.mdui-theme-accent-yellow .mdui-slider-thumb { + background-color: #FFFF00; + border: 2px solid #FFFF00; +} +/** + * ============================================================================= + * ============ Slider 的不同状态 ============ + * ============================================================================= + */ +/* 鼠标按下状态 */ +.mdui-slider-focus .mdui-slider-track::before { + background-color: #9e9e9e; +} +.mdui-slider-focus .mdui-slider-thumb { + -webkit-transform: translate(-50%) scale(1.6); + transform: translate(-50%) scale(1.6); +} +/* 滑块值为 0 */ +.mdui-slider-zero .mdui-slider-thumb { + background-color: #fff; + border-color: #bdbdbd; +} +/* 滑块值为 0,且鼠标按下 */ +.mdui-slider-zero.mdui-slider-focus .mdui-slider-thumb { + border-color: #9e9e9e; +} +/* 禁用状态 */ +.mdui-slider-disabled input[type="range"] { + cursor: default; +} +.mdui-slider-disabled .mdui-slider-track::before { + background-color: #bdbdbd; +} +.mdui-slider-disabled .mdui-slider-fill::before { + background-color: #bdbdbd; +} +.mdui-slider-disabled .mdui-slider-thumb { + background-color: #bdbdbd; + border-color: transparent !important; + -webkit-transform: translate(-50%) scale(0.72); + transform: translate(-50%) scale(0.72); +} +/** + * ============================================================================= + * ============ 间续型滑块 ============ + * ============================================================================= + */ +.mdui-slider-discrete .mdui-slider-thumb { + width: 30px; + height: 30px; + margin-top: -15px; + margin-left: -15px; + border: none; + -webkit-transform: rotate(-45deg) scale(0.4); + transform: rotate(-45deg) scale(0.4); +} +.mdui-slider-discrete .mdui-slider-thumb span { + position: absolute; + top: 9px; + left: -1px; + width: 100%; + color: #fff; + font-size: 12px; + text-align: center; + -webkit-transform: rotate(45deg); + transform: rotate(45deg); + opacity: 0; + -webkit-transition: opacity 0.25s cubic-bezier(0.4, 0, 0.2, 1); + transition: opacity 0.25s cubic-bezier(0.4, 0, 0.2, 1); +} +.mdui-slider-discrete.mdui-slider-focus .mdui-slider-thumb { + border-radius: 15px 15px 15px 0; + -webkit-transform: rotate(-45deg) scale(1) translate(22px, -22px); + transform: rotate(-45deg) scale(1) translate(22px, -22px); +} +.mdui-slider-discrete.mdui-slider-focus .mdui-slider-thumb span { + opacity: 1; +} +.mdui-slider-discrete.mdui-slider-zero .mdui-slider-thumb { + background-color: #323232; +} +.mdui-slider-discrete.mdui-slider-zero.mdui-slider-focus .mdui-slider-thumb { + background-color: #bdbdbd; +} +.mdui-slider-discrete.mdui-slider-disabled .mdui-slider-thumb { + -webkit-transform: rotate(-45deg) scale(0.288); + transform: rotate(-45deg) scale(0.288); +} +.mdui-slider-discrete.mdui-slider-zero.mdui-slider-disabled .mdui-slider-thumb { + background-color: #bdbdbd; +} +/** + * ============================================================================= + * ************ Slider dark ************ + * ============================================================================= + */ +.mdui-theme-layout-dark .mdui-slider-track::before { + background-color: #4c4c4c; +} +.mdui-theme-layout-dark .mdui-slider-focus .mdui-slider-track::before { + background-color: #4c4c4c; +} +.mdui-theme-layout-dark .mdui-slider-zero .mdui-slider-thumb { + background-color: #303030; + border-color: #4c4c4c; +} +.mdui-theme-layout-dark .mdui-slider-zero.mdui-slider-focus .mdui-slider-thumb { + border-color: #4c4c4c; +} +.mdui-theme-layout-dark .mdui-slider-disabled .mdui-slider-track::before { + background-color: #4c4c4c; +} +.mdui-theme-layout-dark .mdui-slider-disabled .mdui-slider-fill::before { + background-color: #4c4c4c; +} +.mdui-theme-layout-dark .mdui-slider-disabled .mdui-slider-thumb { + background-color: #4c4c4c; +} +.mdui-theme-layout-dark .mdui-slider-discrete.mdui-slider-zero .mdui-slider-thumb { + background-color: #fefefe; +} +.mdui-theme-layout-dark .mdui-slider-discrete.mdui-slider-zero.mdui-slider-focus .mdui-slider-thumb { + background-color: #5c5c5c; +} +.mdui-theme-layout-dark .mdui-slider-discrete.mdui-slider-zero.mdui-slider-disabled .mdui-slider-thumb { + background-color: #4c4c4c; +} +@media (prefers-color-scheme: dark) { + .mdui-theme-layout-auto .mdui-slider-track::before { + background-color: #4c4c4c; + } + .mdui-theme-layout-auto .mdui-slider-focus .mdui-slider-track::before { + background-color: #4c4c4c; + } + .mdui-theme-layout-auto .mdui-slider-zero .mdui-slider-thumb { + background-color: #303030; + border-color: #4c4c4c; + } + .mdui-theme-layout-auto .mdui-slider-zero.mdui-slider-focus .mdui-slider-thumb { + border-color: #4c4c4c; + } + .mdui-theme-layout-auto .mdui-slider-disabled .mdui-slider-track::before { + background-color: #4c4c4c; + } + .mdui-theme-layout-auto .mdui-slider-disabled .mdui-slider-fill::before { + background-color: #4c4c4c; + } + .mdui-theme-layout-auto .mdui-slider-disabled .mdui-slider-thumb { + background-color: #4c4c4c; + } + .mdui-theme-layout-auto .mdui-slider-discrete.mdui-slider-zero .mdui-slider-thumb { + background-color: #fefefe; + } + .mdui-theme-layout-auto .mdui-slider-discrete.mdui-slider-zero.mdui-slider-focus .mdui-slider-thumb { + background-color: #5c5c5c; + } + .mdui-theme-layout-auto .mdui-slider-discrete.mdui-slider-zero.mdui-slider-disabled .mdui-slider-thumb { + background-color: #4c4c4c; + } +} +/** + * ============================================================================= + * ************ Button 按钮 ************ + * ============================================================================= + */ +/* 默认为 Flat 扁平按钮 */ +.mdui-btn, +.mdui-fab { + position: relative; + display: inline-block; + -webkit-box-sizing: border-box; + box-sizing: border-box; + min-width: 88px; + height: 36px; + margin: 0; + padding: 0 16px; + overflow: hidden; + color: inherit; + font-weight: 500; + font-size: 14px; + line-height: 36px; + letter-spacing: 0.04em; + white-space: nowrap; + text-align: center; + text-transform: uppercase; + text-decoration: none; + vertical-align: middle; + background: transparent; + border: none; + border-radius: 2px; + outline: none; + cursor: pointer; + -webkit-transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1), -webkit-box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1); + transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1), -webkit-box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1); + transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1); + transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1), -webkit-box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1); + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + -ms-touch-action: manipulation; + touch-action: manipulation; + will-change: box-shadow; + zoom: 1; + -webkit-user-drag: none; +} +.mdui-btn:hover, +.mdui-fab:hover { + background-color: rgba(0, 0, 0, 0.1); +} +.mdui-btn:not(.mdui-ripple):active, +.mdui-fab:not(.mdui-ripple):active { + background-color: rgba(0, 0, 0, 0.165); +} +.mdui-btn[class*="mdui-color-"]:hover, +.mdui-fab[class*="mdui-color-"]:hover { + opacity: 0.87; +} +.mdui-btn:not(.mdui-ripple)[class*="mdui-color-"]:active, +.mdui-fab:not(.mdui-ripple)[class*="mdui-color-"]:active { + opacity: 0.76; +} +/* 按钮内的图标 */ +.mdui-btn .mdui-icon-left, +.mdui-btn .mdui-icon-right, +.mdui-btn .mdui-icon-left::before, +.mdui-btn .mdui-icon-right::before { + height: inherit; + font-size: 1.3em; + line-height: inherit; +} +.mdui-btn .mdui-icon-left { + float: left; + margin-right: 0.4em; +} +.mdui-btn .mdui-icon-right { + float: right; + margin-left: 0.4em; +} +input.mdui-btn[type="submit"] { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; +} +/* Raised button 浮动按钮 */ +.mdui-btn-raised { + -webkit-box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12); + box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12); +} +.mdui-btn-raised:hover { + -webkit-box-shadow: 0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12); + box-shadow: 0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12); +} +.mdui-btn-raised:active { + -webkit-box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12); + box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12); +} +/* 禁用按钮 */ +.mdui-btn[disabled], +.mdui-fab[disabled], +.mdui-btn[disabled]:hover, +.mdui-fab[disabled]:hover, +.mdui-btn[disabled]:active, +.mdui-fab[disabled]:active, +.mdui-btn[disabled]:focus, +.mdui-fab[disabled]:focus { + color: rgba(0, 0, 0, 0.26) !important; + background-color: transparent !important; + cursor: default !important; + opacity: 1 !important; + -webkit-box-shadow: none !important; + box-shadow: none !important; +} +.mdui-btn[disabled] .mdui-icon, +.mdui-fab[disabled] .mdui-icon, +.mdui-btn[disabled]:hover .mdui-icon, +.mdui-fab[disabled]:hover .mdui-icon, +.mdui-btn[disabled]:active .mdui-icon, +.mdui-fab[disabled]:active .mdui-icon, +.mdui-btn[disabled]:focus .mdui-icon, +.mdui-fab[disabled]:focus .mdui-icon { + color: rgba(0, 0, 0, 0.26) !important; +} +/* 禁用状态浮动按钮和浮动操作按钮 */ +.mdui-btn-raised[disabled], +.mdui-fab[disabled], +.mdui-btn-raised[disabled]:hover, +.mdui-fab[disabled]:hover, +.mdui-btn-raised[disabled]:active, +.mdui-fab[disabled]:active, +.mdui-btn-raised[disabled]:focus, +.mdui-fab[disabled]:focus { + background-color: rgba(0, 0, 0, 0.12) !important; + -webkit-box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12) !important; + box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12) !important; +} +/* 加粗按钮文本 */ +.mdui-btn-bold { + font-weight: bold; +} +/* 图标按钮 */ +.mdui-btn-icon { + width: 36px; + min-width: 36px; + height: 36px; + margin-right: 0; + margin-left: 0; + padding: 0; + overflow: hidden; + font-size: 24px; + line-height: normal; + border-radius: 50%; +} +.mdui-btn-icon .mdui-icon { + position: absolute; + top: 50%; + left: 50%; + width: 24px; + line-height: 24px; + -webkit-transform: translate(-12px, -12px); + transform: translate(-12px, -12px); +} +.mdui-btn-icon.mdui-ripple { + -webkit-transform: translateZ(0); + transform: translateZ(0); +} +/* 按钮 100% 宽度 */ +.mdui-btn-block { + display: block; + width: 100%; +} +/* 密集型按钮 */ +.mdui-btn-dense { + height: 32px; + font-size: 13px; + line-height: 32px; +} +.mdui-btn-dense.mdui-btn-icon { + width: 32px; + min-width: 32px; +} +/* 按钮组 */ +.mdui-btn-group { + position: relative; + display: inline-block; + vertical-align: middle; +} +.mdui-btn-group .mdui-btn { + float: left; + min-width: inherit; + padding: 0 12px; + color: rgba(0, 0, 0, 0.54); + border-radius: 0; +} +.mdui-btn-group .mdui-btn::before { + position: absolute; + top: 0; + bottom: 0; + left: 0; + border-left: 1px solid transparent; + content: ' '; +} +.mdui-btn-group .mdui-btn:first-child { + border-top-left-radius: 2px; + border-bottom-left-radius: 2px; +} +.mdui-btn-group .mdui-btn:first-child::before { + border-left: none; +} +.mdui-btn-group .mdui-btn:last-child { + border-top-right-radius: 2px; + border-bottom-right-radius: 2px; +} +.mdui-btn-group .mdui-btn.mdui-btn-active { + color: rgba(0, 0, 0, 0.87); + background-color: rgba(0, 0, 0, 0.215); +} +.mdui-btn-group .mdui-btn.mdui-btn-active + .mdui-btn-active::before { + border-left: 1px solid rgba(0, 0, 0, 0.145); +} +/** + * ============================================================================= + * ************ Button dark ************ + * ============================================================================= + */ +.mdui-theme-layout-dark .mdui-btn:hover, +.mdui-theme-layout-dark .mdui-fab:hover { + background-color: rgba(255, 255, 255, 0.1); +} +.mdui-theme-layout-dark .mdui-btn:not(.mdui-ripple):active, +.mdui-theme-layout-dark .mdui-fab:not(.mdui-ripple):active { + background-color: rgba(255, 255, 255, 0.165); +} +.mdui-theme-layout-dark .mdui-btn[class*="mdui-color-"]:hover, +.mdui-theme-layout-dark .mdui-fab[class*="mdui-color-"]:hover { + opacity: 0.87; +} +.mdui-theme-layout-dark .mdui-btn:not(.mdui-ripple)[class*="mdui-color-"]:active, +.mdui-theme-layout-dark .mdui-fab:not(.mdui-ripple)[class*="mdui-color-"]:active { + opacity: 0.76; +} +.mdui-theme-layout-dark .mdui-btn[disabled], +.mdui-theme-layout-dark .mdui-fab[disabled], +.mdui-theme-layout-dark .mdui-btn[disabled]:hover, +.mdui-theme-layout-dark .mdui-fab[disabled]:hover, +.mdui-theme-layout-dark .mdui-btn[disabled]:active, +.mdui-theme-layout-dark .mdui-fab[disabled]:active, +.mdui-theme-layout-dark .mdui-btn[disabled]:focus, +.mdui-theme-layout-dark .mdui-fab[disabled]:focus { + color: rgba(255, 255, 255, 0.3) !important; + background-color: transparent !important; +} +.mdui-theme-layout-dark .mdui-btn[disabled] .mdui-icon, +.mdui-theme-layout-dark .mdui-fab[disabled] .mdui-icon, +.mdui-theme-layout-dark .mdui-btn[disabled]:hover .mdui-icon, +.mdui-theme-layout-dark .mdui-fab[disabled]:hover .mdui-icon, +.mdui-theme-layout-dark .mdui-btn[disabled]:active .mdui-icon, +.mdui-theme-layout-dark .mdui-fab[disabled]:active .mdui-icon, +.mdui-theme-layout-dark .mdui-btn[disabled]:focus .mdui-icon, +.mdui-theme-layout-dark .mdui-fab[disabled]:focus .mdui-icon { + color: rgba(255, 255, 255, 0.3) !important; +} +.mdui-theme-layout-dark .mdui-btn-raised[disabled], +.mdui-theme-layout-dark .mdui-fab[disabled], +.mdui-theme-layout-dark .mdui-btn-raised[disabled]:hover, +.mdui-theme-layout-dark .mdui-fab[disabled]:hover, +.mdui-theme-layout-dark .mdui-btn-raised[disabled]:active, +.mdui-theme-layout-dark .mdui-fab[disabled]:active, +.mdui-theme-layout-dark .mdui-btn-raised[disabled]:focus, +.mdui-theme-layout-dark .mdui-fab[disabled]:focus { + background-color: rgba(255, 255, 255, 0.12) !important; +} +@media (prefers-color-scheme: dark) { + .mdui-theme-layout-auto .mdui-btn:hover, + .mdui-theme-layout-auto .mdui-fab:hover { + background-color: rgba(255, 255, 255, 0.1); + } + .mdui-theme-layout-auto .mdui-btn:not(.mdui-ripple):active, + .mdui-theme-layout-auto .mdui-fab:not(.mdui-ripple):active { + background-color: rgba(255, 255, 255, 0.165); + } + .mdui-theme-layout-auto .mdui-btn[class*="mdui-color-"]:hover, + .mdui-theme-layout-auto .mdui-fab[class*="mdui-color-"]:hover { + opacity: 0.87; + } + .mdui-theme-layout-auto .mdui-btn:not(.mdui-ripple)[class*="mdui-color-"]:active, + .mdui-theme-layout-auto .mdui-fab:not(.mdui-ripple)[class*="mdui-color-"]:active { + opacity: 0.76; + } + .mdui-theme-layout-auto .mdui-btn[disabled], + .mdui-theme-layout-auto .mdui-fab[disabled], + .mdui-theme-layout-auto .mdui-btn[disabled]:hover, + .mdui-theme-layout-auto .mdui-fab[disabled]:hover, + .mdui-theme-layout-auto .mdui-btn[disabled]:active, + .mdui-theme-layout-auto .mdui-fab[disabled]:active, + .mdui-theme-layout-auto .mdui-btn[disabled]:focus, + .mdui-theme-layout-auto .mdui-fab[disabled]:focus { + color: rgba(255, 255, 255, 0.3) !important; + background-color: transparent !important; + } + .mdui-theme-layout-auto .mdui-btn[disabled] .mdui-icon, + .mdui-theme-layout-auto .mdui-fab[disabled] .mdui-icon, + .mdui-theme-layout-auto .mdui-btn[disabled]:hover .mdui-icon, + .mdui-theme-layout-auto .mdui-fab[disabled]:hover .mdui-icon, + .mdui-theme-layout-auto .mdui-btn[disabled]:active .mdui-icon, + .mdui-theme-layout-auto .mdui-fab[disabled]:active .mdui-icon, + .mdui-theme-layout-auto .mdui-btn[disabled]:focus .mdui-icon, + .mdui-theme-layout-auto .mdui-fab[disabled]:focus .mdui-icon { + color: rgba(255, 255, 255, 0.3) !important; + } + .mdui-theme-layout-auto .mdui-btn-raised[disabled], + .mdui-theme-layout-auto .mdui-fab[disabled], + .mdui-theme-layout-auto .mdui-btn-raised[disabled]:hover, + .mdui-theme-layout-auto .mdui-fab[disabled]:hover, + .mdui-theme-layout-auto .mdui-btn-raised[disabled]:active, + .mdui-theme-layout-auto .mdui-fab[disabled]:active, + .mdui-theme-layout-auto .mdui-btn-raised[disabled]:focus, + .mdui-theme-layout-auto .mdui-fab[disabled]:focus { + background-color: rgba(255, 255, 255, 0.12) !important; + } +} +/** + * ============================================================================= + * ************ Fab 浮动操作按钮 ************ + * ============================================================================= + */ +/* 浮动操作按钮 */ +.mdui-fab { + width: 56px; + min-width: 56px; + height: 56px; + margin: auto; + padding: 0 !important; + overflow: hidden; + font-size: 24px; + line-height: normal !important; + border-radius: 50%; + -webkit-box-shadow: 0 3px 5px -1px rgba(0, 0, 0, 0.2), 0 6px 10px 0 rgba(0, 0, 0, 0.14), 0 1px 18px 0 rgba(0, 0, 0, 0.12); + box-shadow: 0 3px 5px -1px rgba(0, 0, 0, 0.2), 0 6px 10px 0 rgba(0, 0, 0, 0.14), 0 1px 18px 0 rgba(0, 0, 0, 0.12); +} +.mdui-fab:hover { + -webkit-box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12); + box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12); +} +.mdui-fab:active { + -webkit-box-shadow: 0 7px 8px -4px rgba(0, 0, 0, 0.2), 0 12px 17px 2px rgba(0, 0, 0, 0.14), 0 5px 22px 4px rgba(0, 0, 0, 0.12); + box-shadow: 0 7px 8px -4px rgba(0, 0, 0, 0.2), 0 12px 17px 2px rgba(0, 0, 0, 0.14), 0 5px 22px 4px rgba(0, 0, 0, 0.12); +} +.mdui-fab .mdui-icon { + position: absolute; + top: 0; + left: 0; + width: 24px; + margin-top: 16px; + margin-left: 16px; + line-height: 24px; +} +/* mini 型浮动操作按钮 */ +.mdui-fab-mini { + width: 40px; + min-width: 40px; + height: 40px; +} +.mdui-fab-mini .mdui-icon { + margin-top: 8px; + margin-left: 8px; +} +/* 固定到右下角的 FAB 按钮 */ +.mdui-fab-fixed, +.mdui-fab-wrapper { + position: fixed !important; + /* 手机平板上距离屏幕右下角 16px */ + right: 16px; + bottom: 16px; +} +@media (min-width: 1024px) { + .mdui-fab-fixed, + .mdui-fab-wrapper { + /* 电脑上距离屏幕右下角 24px */ + right: 24px; + bottom: 24px; + } +} +/* 含菜单的浮动操作按钮 */ +.mdui-fab-wrapper { + position: relative; + z-index: 4000; + width: 56px; + height: 56px; + padding-top: 8px; + text-align: center; +} +.mdui-fab-wrapper > .mdui-fab .mdui-icon:not(.mdui-fab-opened) { + opacity: 1; + -webkit-transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1); + transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1); + will-change: opacity, transform; +} +.mdui-fab-wrapper > .mdui-fab .mdui-icon.mdui-fab-opened { + -webkit-transform: rotate(225deg); + transform: rotate(225deg); + opacity: 0; + -webkit-transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1); + transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1); + will-change: opacity, transform; +} +.mdui-fab-wrapper > .mdui-fab.mdui-fab-opened .mdui-icon:not(.mdui-fab-opened) { + -webkit-transform: rotate(225deg); + transform: rotate(225deg); + opacity: 0; +} +.mdui-fab-wrapper > .mdui-fab.mdui-fab-opened .mdui-icon.mdui-fab-opened { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + opacity: 1; +} +.mdui-fab-wrapper > .mdui-fab-mini { + margin-top: 8px; +} +.mdui-fab-wrapper .mdui-fab-dial { + position: absolute; + right: 0; + bottom: 64px; + left: 0; + height: 0; + text-align: center; + visibility: visible; +} +.mdui-fab-wrapper .mdui-fab-dial .mdui-fab { + margin: 8px 0; + -webkit-transform: scale(0); + transform: scale(0); + opacity: 0; + -webkit-transition: color 0.2s cubic-bezier(0.4, 0, 0.2, 1), opacity 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1); + transition: color 0.2s cubic-bezier(0.4, 0, 0.2, 1), opacity 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1); + transition: box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1), color 0.2s cubic-bezier(0.4, 0, 0.2, 1), transform 150ms cubic-bezier(0.4, 0, 0.2, 1), opacity 150ms cubic-bezier(0.4, 0, 0.2, 1); + transition: box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1), color 0.2s cubic-bezier(0.4, 0, 0.2, 1), transform 150ms cubic-bezier(0.4, 0, 0.2, 1), opacity 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1); +} +.mdui-fab-wrapper .mdui-fab-dial.mdui-fab-dial-show .mdui-fab { + -webkit-transform: scale(1); + transform: scale(1); + opacity: 1; +} +/* 添加类 .mdui-fab-hide 以动画的形式隐藏按钮 */ +.mdui-fab, +.mdui-fab-mini, +.mdui-fab-wrapper { + -webkit-transform: scale(1) translateZ(0); + transform: scale(1) translateZ(0); + -webkit-transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1), -webkit-box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1), -webkit-transform 0.2s; + transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1), -webkit-box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1), -webkit-transform 0.2s; + transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1), transform 0.2s; + transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1), transform 0.2s, -webkit-box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1), -webkit-transform 0.2s; + will-change: transform; +} +.mdui-fab.mdui-fab-hide, +.mdui-fab-mini.mdui-fab-hide, +.mdui-fab-wrapper.mdui-fab-hide { + -webkit-transform: scale(0) translateZ(0); + transform: scale(0) translateZ(0); +} +/** + * ============================================================================= + * ************ Select 下拉选择 ************ + * ============================================================================= + */ +.mdui-select { + position: relative; + display: inline-block; + -webkit-box-sizing: border-box; + box-sizing: border-box; + max-width: 100%; + height: 36px; + padding-right: 24px; + padding-left: 0; + font-size: 16px; + font-family: Roboto, Noto, Helvetica, Arial, sans-serif; + vertical-align: middle; + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cpath d='M-.003 2.5l5 5 5-5h-10z' opacity='.54'/%3E%3C/svg%3E"); + background-repeat: no-repeat; + background-position: right center; + border: none; + border-bottom: 1px solid rgba(0, 0, 0, 0.12); + outline: none; + cursor: pointer; + -webkit-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + -webkit-transition-duration: 0.2s; + transition-duration: 0.2s; + -webkit-transition-property: background-color, background-position-x, -webkit-box-shadow; + transition-property: background-color, background-position-x, -webkit-box-shadow; + transition-property: background-color, box-shadow, background-position-x; + transition-property: background-color, box-shadow, background-position-x, -webkit-box-shadow; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + will-change: background-color, box-shadow, background-position-x; +} +.mdui-select.mdui-select-open { + border-bottom: none; +} +.mdui-select-position-top { + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cpath d='M10.003 7.5l-5-5-5 5h10z' opacity='.54'/%3E%3C/svg%3E"); +} +/* 底部和顶部菜单的样式 */ +.mdui-select-open.mdui-select-position-top, +.mdui-select-open.mdui-select-position-bottom { + z-index: 99999; + background-color: #fff; + /* stylelint-disable-next-line */ + background-position-x: calc(100% - 12px); + border-radius: 2px; +} +.mdui-select-open.mdui-select-position-top { + border-top: 1px solid rgba(0, 0, 0, 0.12); + border-bottom: 2px solid transparent; + border-top-left-radius: 0; + border-top-right-radius: 0; + -webkit-box-shadow: 0 10px 10px -3px rgba(0, 0, 0, 0.2), 0 0 14px 1px rgba(0, 0, 0, 0.14), 0 -7px 24px 2px rgba(0, 0, 0, 0.12); + box-shadow: 0 10px 10px -3px rgba(0, 0, 0, 0.2), 0 0 14px 1px rgba(0, 0, 0, 0.14), 0 -7px 24px 2px rgba(0, 0, 0, 0.12); +} +.mdui-select-open.mdui-select-position-top .mdui-select-menu { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; + -webkit-box-shadow: 0 -4px 4px -2px rgba(0, 0, 0, 0.06), 8px 0 8px -4px rgba(0, 0, 0, 0.12), -8px 0 8px -4px rgba(0, 0, 0, 0.12); + box-shadow: 0 -4px 4px -2px rgba(0, 0, 0, 0.06), 8px 0 8px -4px rgba(0, 0, 0, 0.12), -8px 0 8px -4px rgba(0, 0, 0, 0.12); +} +.mdui-select-open.mdui-select-position-bottom { + border-bottom: 1px solid rgba(0, 0, 0, 0.12); + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; + -webkit-box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12); + box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12); +} +.mdui-select-open.mdui-select-position-bottom .mdui-select-menu { + border-top-left-radius: 0; + border-top-right-radius: 0; + -webkit-box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 9px 9px 1px rgba(0, 0, 0, 0.14), 0 8px 8px 2px rgba(0, 0, 0, 0.06); + box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 9px 9px 1px rgba(0, 0, 0, 0.14), 0 8px 8px 2px rgba(0, 0, 0, 0.06); +} +/* 当前选中项文本 */ +.mdui-select-selected { + position: absolute; + top: 50%; + right: 24px; + left: 0; + display: block; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); + -webkit-transition: left 0.2s cubic-bezier(0, 0, 0.2, 1); + transition: left 0.2s cubic-bezier(0, 0, 0.2, 1); + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} +.mdui-select-open .mdui-select-selected { + right: 32px; + left: 16px; +} +.mdui-select-open.mdui-select-position-auto .mdui-select-selected { + visibility: hidden; +} +/* 菜单 */ +.mdui-select-menu { + position: relative; + z-index: 99999; + -webkit-box-sizing: border-box; + box-sizing: border-box; + height: 36px; + margin: 0 -24px 0 0; + overflow-y: scroll; + color: rgba(0, 0, 0, 0.87); + background-color: #fff; + border-radius: 2px; + -webkit-transform: scale(1, 0); + transform: scale(1, 0); + visibility: hidden; + cursor: default; + opacity: 0; + -webkit-transition-timing-function: cubic-bezier(0, 0, 0.2, 1); + transition-timing-function: cubic-bezier(0, 0, 0.2, 1); + -webkit-transition-duration: 0.2s; + transition-duration: 0.2s; + -webkit-transition-property: opacity, visibility, -webkit-transform; + transition-property: opacity, visibility, -webkit-transform; + transition-property: transform, opacity, visibility; + transition-property: transform, opacity, visibility, -webkit-transform; + will-change: transform, opacity, visibility; + -webkit-overflow-scrolling: touch; + -webkit-box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12); + box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12); +} +.mdui-select-open .mdui-select-menu { + overflow-y: hidden; + -webkit-transform: scale(1, 1); + transform: scale(1, 1); + visibility: visible; + opacity: 1; +} +.mdui-select-closing .mdui-select-menu { + overflow-y: hidden; + -webkit-box-shadow: none; + box-shadow: none; + -webkit-transform: scale(1, 1); + transform: scale(1, 1); + visibility: visible; + opacity: 0; +} +/* 菜单项 */ +.mdui-select-menu-item { + height: 48px; + padding: 0 16px; + line-height: 48px; + cursor: pointer; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} +.mdui-select-menu-item:hover { + background-color: #EEEEEE; +} +.mdui-select-menu-item:first-child { + margin-top: 8px; +} +.mdui-select-menu-item:last-child { + margin-bottom: 8px; +} +.mdui-select-menu-item[disabled] { + color: rgba(0, 0, 0, 0.38) !important; + cursor: default; +} +.mdui-select-menu-item[disabled]:hover { + background-color: inherit !important; +} +.mdui-select-menu-item[selected] { + color: #FF4081; +} +/* 原生 select 组件 */ +select.mdui-select { + background-color: transparent; +} +select.mdui-select option { + color: rgba(0, 0, 0, 0.87); +} +select.mdui-select::-ms-expand { + display: none; +} +/* 原生多选 select 组件 */ +select.mdui-select[multiple] { + height: auto; + padding: 0; + font-size: 15px; + background-color: #FFF; + background-image: none; + border: 1px solid rgba(0, 0, 0, 0.38); + cursor: default; +} +select.mdui-select[multiple] optgroup { + margin: 8px 0 0 0; + padding: 0 0 0 16px; + color: rgba(0, 0, 0, 0.38); +} +select.mdui-select[multiple] optgroup:last-child { + margin-bottom: 8px; +} +select.mdui-select[multiple] optgroup:not(:first-child) { + padding-top: 8px; + border-top: 1px solid rgba(0, 0, 0, 0.12); +} +select.mdui-select[multiple] option { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + height: 32px; + margin: 0 0 0 -16px; + padding: 0 16px; + color: rgba(0, 0, 0, 0.87); +} +select.mdui-select[multiple] option:first-child { + margin-top: 8px; +} +select.mdui-select[multiple] option:last-child { + margin-bottom: 8px; +} +/** + * ============================================================================= + * ************ Select 强调色 ************ + * ============================================================================= + */ +.mdui-theme-accent-amber .mdui-select-menu-item[selected] { + color: #FFC107; +} +.mdui-theme-accent-blue .mdui-select-menu-item[selected] { + color: #2196F3; +} +.mdui-theme-accent-cyan .mdui-select-menu-item[selected] { + color: #00BCD4; +} +.mdui-theme-accent-deep-orange .mdui-select-menu-item[selected] { + color: #FF5722; +} +.mdui-theme-accent-deep-purple .mdui-select-menu-item[selected] { + color: #673AB7; +} +.mdui-theme-accent-green .mdui-select-menu-item[selected] { + color: #4CAF50; +} +.mdui-theme-accent-indigo .mdui-select-menu-item[selected] { + color: #3F51B5; +} +.mdui-theme-accent-light-blue .mdui-select-menu-item[selected] { + color: #03A9F4; +} +.mdui-theme-accent-light-green .mdui-select-menu-item[selected] { + color: #8BC34A; +} +.mdui-theme-accent-lime .mdui-select-menu-item[selected] { + color: #CDDC39; +} +.mdui-theme-accent-orange .mdui-select-menu-item[selected] { + color: #FF9800; +} +.mdui-theme-accent-pink .mdui-select-menu-item[selected] { + color: #E91E63; +} +.mdui-theme-accent-purple .mdui-select-menu-item[selected] { + color: #9C27B0; +} +.mdui-theme-accent-red .mdui-select-menu-item[selected] { + color: #F44336; +} +.mdui-theme-accent-teal .mdui-select-menu-item[selected] { + color: #009688; +} +.mdui-theme-accent-yellow .mdui-select-menu-item[selected] { + color: #FFEB3B; +} +/** + * ============================================================================= + * ************ Select dark ************ + * ============================================================================= + */ +.mdui-theme-layout-dark .mdui-select { + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cpath d='M-.003 2.5l5 5 5-5h-10z' fill='%23FFF'/%3E%3C/svg%3E"); + border-bottom: 1px solid rgba(255, 255, 255, 0.12); +} +.mdui-theme-layout-dark .mdui-select-position-top { + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cpath d='M10.003 7.5l-5-5-5 5h10z' fill='%23FFF'/%3E%3C/svg%3E"); +} +.mdui-theme-layout-dark .mdui-select-open.mdui-select-position-top, +.mdui-theme-layout-dark .mdui-select-open.mdui-select-position-bottom { + background-color: #424242; +} +.mdui-theme-layout-dark .mdui-select-open.mdui-select-position-top { + border-top: 1px solid rgba(255, 255, 255, 0.12); +} +.mdui-theme-layout-dark .mdui-select-open.mdui-select-position-bottom { + border-bottom: 1px solid rgba(255, 255, 255, 0.12); +} +.mdui-theme-layout-dark .mdui-select-menu { + color: #fff; + background-color: #424242; +} +.mdui-theme-layout-dark .mdui-select-menu-item:hover { + background-color: #616161; +} +.mdui-theme-layout-dark .mdui-select-menu-item[disabled] { + color: rgba(255, 255, 255, 0.5) !important; +} +.mdui-theme-layout-dark select.mdui-select { + color: #FFF; + background-color: #303030; +} +.mdui-theme-layout-dark select.mdui-select option { + color: #FFF; + background-color: #303030; +} +.mdui-theme-layout-dark select.mdui-select[multiple] { + border: 1px solid rgba(255, 255, 255, 0.5); +} +.mdui-theme-layout-dark select.mdui-select[multiple] optgroup { + color: rgba(255, 255, 255, 0.5); +} +.mdui-theme-layout-dark select.mdui-select[multiple] optgroup:not(:first-child) { + border-top: 1px solid rgba(255, 255, 255, 0.12); +} +@media (prefers-color-scheme: dark) { + .mdui-theme-layout-auto .mdui-select { + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cpath d='M-.003 2.5l5 5 5-5h-10z' fill='%23FFF'/%3E%3C/svg%3E"); + border-bottom: 1px solid rgba(255, 255, 255, 0.12); + } + .mdui-theme-layout-auto .mdui-select-position-top { + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cpath d='M10.003 7.5l-5-5-5 5h10z' fill='%23FFF'/%3E%3C/svg%3E"); + } + .mdui-theme-layout-auto .mdui-select-open.mdui-select-position-top, + .mdui-theme-layout-auto .mdui-select-open.mdui-select-position-bottom { + background-color: #424242; + } + .mdui-theme-layout-auto .mdui-select-open.mdui-select-position-top { + border-top: 1px solid rgba(255, 255, 255, 0.12); + } + .mdui-theme-layout-auto .mdui-select-open.mdui-select-position-bottom { + border-bottom: 1px solid rgba(255, 255, 255, 0.12); + } + .mdui-theme-layout-auto .mdui-select-menu { + color: #fff; + background-color: #424242; + } + .mdui-theme-layout-auto .mdui-select-menu-item:hover { + background-color: #616161; + } + .mdui-theme-layout-auto .mdui-select-menu-item[disabled] { + color: rgba(255, 255, 255, 0.5) !important; + } + .mdui-theme-layout-auto select.mdui-select { + color: #FFF; + background-color: #303030; + } + .mdui-theme-layout-auto select.mdui-select option { + color: #FFF; + background-color: #303030; + } + .mdui-theme-layout-auto select.mdui-select[multiple] { + border: 1px solid rgba(255, 255, 255, 0.5); + } + .mdui-theme-layout-auto select.mdui-select[multiple] optgroup { + color: rgba(255, 255, 255, 0.5); + } + .mdui-theme-layout-auto select.mdui-select[multiple] optgroup:not(:first-child) { + border-top: 1px solid rgba(255, 255, 255, 0.12); + } +} +/** + * ============================================================================= + * ************ Toolbar 工具栏 ************ + * ============================================================================= + */ +.mdui-toolbar { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 100%; +} +.mdui-toolbar > * { + margin: 0 16px; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} +.mdui-toolbar[class*="mdui-color-"]:not(.mdui-color-transparent) .mdui-btn:hover { + background-color: rgba(255, 255, 255, 0.1); +} +.mdui-toolbar[class*="mdui-color-"]:not(.mdui-color-transparent) .mdui-btn:active { + background-color: rgba(255, 255, 255, 0.165); +} +.mdui-toolbar > a { + color: inherit; + text-decoration: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.mdui-toolbar > .mdui-btn-icon { + width: 48px; + min-width: 48px; + height: 48px; +} +@media (orientation: landscape) and (max-width: 959.9px) { + .mdui-toolbar > .mdui-btn-icon { + width: 40px; + min-width: 40px; + height: 40px; + } +} +.mdui-toolbar > .mdui-btn-icon .mdui-icon { + height: 24px; + line-height: 24px; +} +.mdui-toolbar .mdui-icon { + color: inherit; +} +.mdui-toolbar-spacer { + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + margin: 0; +} +/* 手机 */ +.mdui-toolbar { + height: 56px; + line-height: 56px; +} +.mdui-toolbar > .mdui-btn { + margin: 0 4px; +} +.mdui-toolbar > .mdui-btn + .mdui-btn { + margin-left: 0; +} +@media (min-width: 600px) { + .mdui-appbar .mdui-toolbar { + height: 64px; + line-height: 64px; + } + .mdui-appbar .mdui-toolbar > .mdui-btn { + margin: 0 8px; + } + .mdui-appbar .mdui-toolbar > .mdui-btn + .mdui-btn { + margin-left: 0; + } +} +@media (orientation: landscape) and (max-width: 959.9px) { + .mdui-appbar .mdui-toolbar { + height: 48px; + line-height: 48px; + } + .mdui-appbar .mdui-toolbar > .mdui-btn { + margin: 0 4px; + } + .mdui-appbar .mdui-toolbar > .mdui-btn + .mdui-btn { + margin-left: 0; + } +} +/** + * ============================================================================= + * ************ Appbar 应用栏 ************ + * ============================================================================= + */ +.mdui-appbar { + z-index: 1000; + -webkit-box-shadow: 0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12); + box-shadow: 0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12); +} +/* appbar 固定在顶部 */ +.mdui-appbar-fixed { + position: fixed; + top: 0; + right: 0; + left: 0; + -webkit-transition-timing-function: cubic-bezier(0, 0, 0.2, 1); + transition-timing-function: cubic-bezier(0, 0, 0.2, 1); + -webkit-transition-duration: 0.3s; + transition-duration: 0.3s; + -webkit-transition-property: left, right; + transition-property: left, right; + will-change: left, right; +} +/* 左侧留出抽屉栏的距离 */ +@media (min-width: 1024px) { + .mdui-drawer-body-left .mdui-appbar-inset.mdui-appbar-fixed { + left: 240px; + } +} +@media (min-width: 1024px) { + .mdui-drawer-body-right .mdui-appbar-inset.mdui-appbar-fixed { + right: 240px; + } +} +/* 含工具栏 */ +.mdui-appbar-with-toolbar { + padding-top: 56px; +} +@media (min-width: 600px) { + .mdui-appbar-with-toolbar { + padding-top: 64px; + } +} +@media (orientation: landscape) and (max-width: 959.9px) { + .mdui-appbar-with-toolbar { + padding-top: 48px; + } +} +/* 含 Tab */ +.mdui-appbar-with-tab { + padding-top: 48px; +} +/* 含大 Tab */ +.mdui-appbar-with-tab-larger { + padding-top: 72px; +} +/* 含工具栏和 Tab */ +.mdui-appbar-with-toolbar.mdui-appbar-with-tab { + padding-top: 104px; +} +@media (min-width: 600px) { + .mdui-appbar-with-toolbar.mdui-appbar-with-tab { + padding-top: 112px; + } +} +@media (orientation: landscape) and (max-width: 959.9px) { + .mdui-appbar-with-toolbar.mdui-appbar-with-tab { + padding-top: 96px; + } +} +/* 含工具栏和大 Tab */ +.mdui-appbar-with-toolbar.mdui-appbar-with-tab-larger { + padding-top: 128px; +} +@media (min-width: 600px) { + .mdui-appbar-with-toolbar.mdui-appbar-with-tab-larger { + padding-top: 136px; + } +} +@media (orientation: landscape) and (max-width: 959.9px) { + .mdui-appbar-with-toolbar.mdui-appbar-with-tab-larger { + padding-top: 120px; + } +} +/** + * ============================================================================= + * ************ Appbar dark ************ + * ============================================================================= + */ +.mdui-theme-layout-dark .mdui-appbar > [class*="mdui-color-"]:not(.mdui-color-transparent) { + color: #fff !important; + background-color: #212121 !important; +} +@media (prefers-color-scheme: dark) { + .mdui-theme-layout-auto .mdui-appbar > [class*="mdui-color-"]:not(.mdui-color-transparent) { + color: #fff !important; + background-color: #212121 !important; + } +} +/** + * ============================================================================= + * ************ Card 卡片 ************ + * ============================================================================= + */ +/* 卡片 */ +.mdui-card { + position: relative; + -webkit-box-sizing: border-box; + box-sizing: border-box; + overflow: hidden; + color: #000; + background-color: #fff; + border-radius: 2px; + -webkit-box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12); + box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12); +} +/** + * ===================== 头部,包含头像、标题、副标题 + */ +.mdui-card-header { + position: relative; + -webkit-box-sizing: border-box; + box-sizing: border-box; + height: 72px; + padding: 16px; +} +/* 卡片头部头像 */ +.mdui-card-header-avatar { + float: left; + width: 40px; + height: 40px; + border-radius: 50%; +} +/* 卡片头部标题 */ +.mdui-card-header-title { + display: block; + margin-left: 52px; + font-weight: 500; + font-size: 16px; + line-height: 20px; + opacity: 0.87; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} +/* 卡片头部副标题 */ +.mdui-card-header-subtitle { + display: block; + margin-left: 52px; + font-weight: 400; + font-size: 14px; + line-height: 20px; + opacity: 0.54; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} +/** + * =========================== 主标题区域 + */ +.mdui-card-primary { + position: relative; + padding: 24px 16px 16px 16px; +} +/* 主标题区域标题 */ +.mdui-card-primary-title { + display: block; + font-size: 24px; + line-height: 36px; + opacity: 0.87; +} +/* 主标题区域副标题 */ +.mdui-card-primary-subtitle { + display: block; + font-size: 14px; + line-height: 24px; + opacity: 0.54; +} +/** + * ============================ 内容区域 + */ +.mdui-card-content { + position: relative; + padding: 16px; + font-size: 14px; + line-height: 24px; +} +/** + * ============================ 卡片菜单 + */ +.mdui-card-menu { + position: absolute; + top: 16px; + right: 16px; + z-index: 1; +} +.mdui-card-menu .mdui-btn { + margin-left: 8px; +} +/** + * =========================== 按钮区域 + */ +.mdui-card-actions { + position: relative; + -webkit-box-sizing: border-box; + box-sizing: border-box; + padding: 8px; +} +.mdui-card-actions::before, +.mdui-card-actions::after { + display: table; + content: ' '; +} +.mdui-card-actions::after { + clear: both; +} +.mdui-card-actions::before, +.mdui-card-actions::after { + display: table; + content: ' '; +} +.mdui-card-actions::after { + clear: both; +} +.mdui-card-actions .mdui-btn { + max-width: 100%; + margin: 0 8px 0 0; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} +.mdui-card-actions .mdui-btn-icon { + width: 36px; + height: 36px; + margin: 0 8px; +} +/* 使按钮竖向排列 */ +.mdui-card-actions-stacked .mdui-btn { + display: block; + margin: 0 0 4px 0; +} +.mdui-card-actions-stacked .mdui-btn:last-child { + margin: 0; +} +/** + * ============================= 媒体元素区域 + */ +.mdui-card-media { + position: relative; +} +.mdui-card-media img, +.mdui-card-media video { + display: block; + width: 100%; +} +/* 覆盖在媒体元素上的内容 */ +.mdui-card-media-covered { + position: absolute; + right: 0; + bottom: 0; + left: 0; + color: #fff; + background: rgba(0, 0, 0, 0.2); + /* 覆盖在媒体元素上的标题 */ +} +.mdui-card-media-covered .mdui-card-primary-title { + opacity: 1; +} +.mdui-card-media-covered .mdui-card-primary-subtitle { + opacity: 0.7; +} +/* 覆盖在媒体元素顶部 */ +.mdui-card-media-covered-top { + top: 0; + bottom: auto; +} +/* 覆盖层透明 */ +.mdui-card-media-covered-transparent { + background: transparent; +} +/* 覆盖层渐变 */ +.mdui-card-media-covered-gradient { + background: -webkit-gradient(linear, left bottom, left top, from(rgba(0, 0, 0, 0.26)), to(rgba(0, 0, 0, 0))); + background: linear-gradient(to top, rgba(0, 0, 0, 0.26), rgba(0, 0, 0, 0)); +} +.mdui-card-media-covered-gradient.mdui-card-media-covered-top { + background: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0.26)), to(rgba(0, 0, 0, 0))); + background: linear-gradient(to bottom, rgba(0, 0, 0, 0.26), rgba(0, 0, 0, 0)); +} +/** + * ============================================================================= + * ************ Card dark ************ + * ============================================================================= + */ +.mdui-theme-layout-dark .mdui-card { + color: #fff; + background-color: #424242; +} +@media (prefers-color-scheme: dark) { + .mdui-theme-layout-auto .mdui-card { + color: #fff; + background-color: #424242; + } +} +/** + * ============================================================================= + * ************ Tab ************ + * ============================================================================= + * + * 在手机上选项卡始终平分或可滚动,在平板以上的设备上默认左对齐,可以选择居中对齐,或全宽等分 + */ +/* 选项卡,默认的选项卡为全宽 */ +.mdui-tab { + position: relative; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + min-height: 48px; + max-height: 72px; + margin: 0 auto; + padding: 0; + overflow-x: auto; + overflow-y: hidden; + white-space: nowrap; + -webkit-overflow-scrolling: touch; +} +.mdui-tab a { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-sizing: border-box; + box-sizing: border-box; + min-width: 72px; + min-height: 48px; + max-height: 72px; + padding: 12px; + overflow: hidden; + color: inherit; + font-size: 14px; + text-align: center; + text-transform: uppercase; + text-decoration: none; + text-overflow: ellipsis; + outline: none; + cursor: pointer; + opacity: 0.7; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.mdui-tab a .mdui-icon { + opacity: 0.7; +} +@media (min-width: 600px) { + .mdui-tab a { + -webkit-box-flex: 0; + -ms-flex: none; + flex: none; + min-width: 99px; + max-width: 264px; + padding: 12px 24px; + } +} +@media (min-width: 1024px) { + .mdui-tab a { + min-width: 112px; + } +} +@media (min-width: 1440px) { + .mdui-tab a { + min-width: 136px; + } +} +@media (min-width: 1920px) { + .mdui-tab a { + min-width: 160px; + } +} +.mdui-tab a label { + display: block; + width: 100%; + cursor: pointer; +} +.mdui-tab a .mdui-icon + label { + margin-top: 8px; +} +.mdui-tab a[disabled] { + cursor: default; + opacity: 0.38; +} +.mdui-tab a[disabled] label { + cursor: default; +} +.mdui-tab .mdui-tab-active { + color: #3F51B5; + opacity: 1; +} +.mdui-tab .mdui-tab-active .mdui-icon { + opacity: 1; +} +/* 选项卡居中 */ +@media (min-width: 600px) { + .mdui-tab-centered::before { + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + content: ' '; + } + .mdui-tab-centered::after { + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + content: ' '; + } + .mdui-tab-centered a { + -webkit-box-flex: 0; + -ms-flex: none; + flex: none; + } +} +/* 选项卡始终全宽等分 */ +.mdui-tab-full-width a { + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; + max-width: none; +} +/* 可横向滚动的选项卡 */ +.mdui-tab-scrollable { + padding-left: 56px; +} +.mdui-tab-scrollable a { + -webkit-box-flex: 0; + -ms-flex: none; + flex: none; +} +@media (max-width: 599.9px) { + .mdui-tab-scrollable { + padding-left: 60px; + } +} +/* 下划线指示器 */ +.mdui-tab-indicator { + position: absolute; + bottom: 0; + height: 2px; + background-color: #3F51B5; + -webkit-transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1); + transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1); + will-change: left, width; +} +/** + * ============================================================================= + * ************ Tab 主色 ************ + * ============================================================================= + */ +.mdui-theme-primary-amber .mdui-tab .mdui-tab-active { + color: #FFC107; +} +.mdui-theme-primary-amber .mdui-tab-indicator { + background-color: #FFC107; +} +.mdui-theme-primary-blue .mdui-tab .mdui-tab-active { + color: #2196F3; +} +.mdui-theme-primary-blue .mdui-tab-indicator { + background-color: #2196F3; +} +.mdui-theme-primary-blue-grey .mdui-tab .mdui-tab-active { + color: #607D8B; +} +.mdui-theme-primary-blue-grey .mdui-tab-indicator { + background-color: #607D8B; +} +.mdui-theme-primary-brown .mdui-tab .mdui-tab-active { + color: #795548; +} +.mdui-theme-primary-brown .mdui-tab-indicator { + background-color: #795548; +} +.mdui-theme-primary-cyan .mdui-tab .mdui-tab-active { + color: #00BCD4; +} +.mdui-theme-primary-cyan .mdui-tab-indicator { + background-color: #00BCD4; +} +.mdui-theme-primary-deep-orange .mdui-tab .mdui-tab-active { + color: #FF5722; +} +.mdui-theme-primary-deep-orange .mdui-tab-indicator { + background-color: #FF5722; +} +.mdui-theme-primary-deep-purple .mdui-tab .mdui-tab-active { + color: #673AB7; +} +.mdui-theme-primary-deep-purple .mdui-tab-indicator { + background-color: #673AB7; +} +.mdui-theme-primary-green .mdui-tab .mdui-tab-active { + color: #4CAF50; +} +.mdui-theme-primary-green .mdui-tab-indicator { + background-color: #4CAF50; +} +.mdui-theme-primary-grey .mdui-tab .mdui-tab-active { + color: #9E9E9E; +} +.mdui-theme-primary-grey .mdui-tab-indicator { + background-color: #9E9E9E; +} +.mdui-theme-primary-indigo .mdui-tab .mdui-tab-active { + color: #3F51B5; +} +.mdui-theme-primary-indigo .mdui-tab-indicator { + background-color: #3F51B5; +} +.mdui-theme-primary-light-blue .mdui-tab .mdui-tab-active { + color: #03A9F4; +} +.mdui-theme-primary-light-blue .mdui-tab-indicator { + background-color: #03A9F4; +} +.mdui-theme-primary-light-green .mdui-tab .mdui-tab-active { + color: #8BC34A; +} +.mdui-theme-primary-light-green .mdui-tab-indicator { + background-color: #8BC34A; +} +.mdui-theme-primary-lime .mdui-tab .mdui-tab-active { + color: #CDDC39; +} +.mdui-theme-primary-lime .mdui-tab-indicator { + background-color: #CDDC39; +} +.mdui-theme-primary-orange .mdui-tab .mdui-tab-active { + color: #FF9800; +} +.mdui-theme-primary-orange .mdui-tab-indicator { + background-color: #FF9800; +} +.mdui-theme-primary-pink .mdui-tab .mdui-tab-active { + color: #E91E63; +} +.mdui-theme-primary-pink .mdui-tab-indicator { + background-color: #E91E63; +} +.mdui-theme-primary-purple .mdui-tab .mdui-tab-active { + color: #9C27B0; +} +.mdui-theme-primary-purple .mdui-tab-indicator { + background-color: #9C27B0; +} +.mdui-theme-primary-red .mdui-tab .mdui-tab-active { + color: #F44336; +} +.mdui-theme-primary-red .mdui-tab-indicator { + background-color: #F44336; +} +.mdui-theme-primary-teal .mdui-tab .mdui-tab-active { + color: #009688; +} +.mdui-theme-primary-teal .mdui-tab-indicator { + background-color: #009688; +} +.mdui-theme-primary-yellow .mdui-tab .mdui-tab-active { + color: #FFEB3B; +} +.mdui-theme-primary-yellow .mdui-tab-indicator { + background-color: #FFEB3B; +} +/* 带背景色的选项卡 */ +.mdui-tab[class*="mdui-color-"]:not(.mdui-color-white) .mdui-tab-active { + color: inherit; +} +.mdui-tab[class*="mdui-color-"]:not(.mdui-color-white) .mdui-tab-indicator { + background-color: #FFFFFF; +} +.mdui-tab[class*="mdui-color-"]:not(.mdui-color-white)::-webkit-scrollbar { + width: 5px; + height: 5px; + background: transparent; +} +@media (min-width: 1024px) { + .mdui-tab[class*="mdui-color-"]:not(.mdui-color-white)::-webkit-scrollbar { + width: 8px; + height: 8px; + } +} +.mdui-tab[class*="mdui-color-"]:not(.mdui-color-white)::-webkit-scrollbar-thumb { + background: rgba(255, 255, 255, 0.3); +} +/** + * ============================================================================= + * ************ Subheader 副标题 ************ + * ============================================================================= + * + * 用于 List 和 Grid list 组件 + */ +.mdui-subheader, +.mdui-subheader-inset { + position: relative; + -webkit-box-sizing: border-box; + box-sizing: border-box; + height: 48px; + padding-right: 16px; + padding-left: 16px; + color: rgba(0, 0, 0, 0.54); + font-weight: 500; + font-size: 14px; + line-height: 48px; + cursor: default; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} +.mdui-subheader-inset { + padding-left: 72px; +} +/** + * ============================================================================= + * ************ Subheader dark ************ + * ============================================================================= + */ +.mdui-theme-layout-dark .mdui-subheader, +.mdui-theme-layout-dark .mdui-subheader-inset { + color: rgba(255, 255, 255, 0.7); +} +@media (prefers-color-scheme: dark) { + .mdui-theme-layout-auto .mdui-subheader, + .mdui-theme-layout-auto .mdui-subheader-inset { + color: rgba(255, 255, 255, 0.7); + } +} +/** + * ============================================================================= + * ************ Grid List 网格列表 ************ + * ============================================================================= + */ +/* 调整网格边距 */ +.mdui-grid-list { + margin: 0 -2px; +} +.mdui-grid-list .mdui-col, +.mdui-grid-list [class*="mdui-col-xs-"], +.mdui-grid-list [class*="mdui-col-sm-"], +.mdui-grid-list [class*="mdui-col-md-"], +.mdui-grid-list [class*="mdui-col-lg-"], +.mdui-grid-list [class*="mdui-col-xl-"] { + padding-right: 2px; + padding-left: 2px; +} +/* 单元格 */ +.mdui-grid-tile { + position: relative; + -webkit-box-sizing: border-box; + box-sizing: border-box; + margin-bottom: 4px; + overflow: hidden; +} +.mdui-grid-tile img { + display: block; + width: 100%; +} +/* 操作栏 */ +.mdui-grid-tile-actions { + position: absolute; + right: 0; + bottom: 0; + left: 0; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-sizing: border-box; + box-sizing: border-box; + min-height: 48px; + max-height: 68px; + padding: 16px; + color: #fff; + background: rgba(0, 0, 0, 0.2); +} +.mdui-grid-tile-actions .mdui-icon { + color: #fff; +} +/* 操作栏内的文本 */ +.mdui-grid-tile-text { + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; + overflow: hidden; +} +/* 标题 */ +.mdui-grid-tile-title { + height: 16px; + font-size: 16px; + line-height: 16px; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} +.mdui-grid-tile-title .mdui-icon { + margin-right: 8px; +} +/* 副标题 */ +.mdui-grid-tile-subtitle { + height: 18px; + margin-top: 4px; + font-size: 12px; + line-height: 18px; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} +.mdui-grid-tile-subtitle .mdui-icon { + margin-right: 8px; + font-size: 18px; +} +/* 操作栏内的按钮 */ +.mdui-grid-tile-buttons { + -webkit-box-flex: 0; + -ms-flex: none; + flex: none; + margin: -8px; + white-space: nowrap; +} +.mdui-grid-tile-buttons .mdui-btn { + margin-left: 8px; +} +.mdui-grid-tile-buttons .mdui-btn:first-child { + margin-left: 0; +} +.mdui-grid-tile-text + .mdui-grid-tile-buttons { + margin-left: 8px; +} +.mdui-grid-tile-buttons + .mdui-grid-tile-text { + margin-left: 16px; +} +/* 操作栏位于顶部 */ +.mdui-grid-tile-actions-top { + top: 0; + bottom: auto; +} +/* 操作栏背景透明 */ +.mdui-grid-tile-actions-transparent { + background: transparent; +} +/* 操作栏背景渐变 */ +.mdui-grid-tile-actions-gradient { + background: -webkit-gradient(linear, left bottom, left top, from(rgba(0, 0, 0, 0.26)), to(rgba(0, 0, 0, 0))); + background: linear-gradient(to top, rgba(0, 0, 0, 0.26), rgba(0, 0, 0, 0)); +} +.mdui-grid-tile-actions-gradient.mdui-grid-tile-actions-top { + background: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0.26)), to(rgba(0, 0, 0, 0))); + background: linear-gradient(to bottom, rgba(0, 0, 0, 0.26), rgba(0, 0, 0, 0)); +} +/** + * ============================================================================= + * ************ List 列表 ************ + * ============================================================================= + */ +/* 列表 */ +.mdui-list { + margin: 0; + padding: 8px 0; + list-style: none; + background-color: transparent; +} +.mdui-list .mdui-list { + padding: 0; +} +.mdui-list > .mdui-divider, +.mdui-list > .mdui-divider-light, +.mdui-list > .mdui-divider-dark, +.mdui-list > .mdui-divider-inset, +.mdui-list > .mdui-divider-inset-light, +.mdui-list > .mdui-divider-inset-dark { + margin-top: 8px; + margin-bottom: 8px; +} +.mdui-list a { + color: inherit; + text-decoration: none; +} +.mdui-list .mdui-subheader, +.mdui-list .mdui-subheader-inset { + margin-top: 8px; +} +.mdui-list .mdui-subheader::before, +.mdui-list .mdui-subheader-inset::before { + position: absolute; + right: 0; + left: 0; + display: block; + height: 1px; + background-color: rgba(0, 0, 0, 0.12); + content: ' '; +} +.mdui-list .mdui-subheader:first-child, +.mdui-list .mdui-subheader-inset:first-child { + margin-top: -8px; +} +.mdui-list .mdui-subheader:first-child::before, +.mdui-list .mdui-subheader-inset:first-child::before { + background-color: transparent; +} +.mdui-list .mdui-subheader-inset::before { + left: 72px; +} +/* 列表项 */ +.mdui-list-item { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-sizing: border-box; + box-sizing: border-box; + min-height: 48px; + padding: 0 16px; + text-decoration: none; + cursor: pointer; + -webkit-transition: background-color 0.3s cubic-bezier(0.4, 0, 0.2, 1); + transition: background-color 0.3s cubic-bezier(0.4, 0, 0.2, 1); +} +.mdui-list-item:hover { + background-color: rgba(0, 0, 0, 0.08); +} +.mdui-list-item::after { + height: 48px; + visibility: hidden; + content: ' '; +} +/* 列表项图标 */ +.mdui-list-item-icon { + width: 24px; + min-width: 24px; + height: 24px; + color: rgba(0, 0, 0, 0.54); +} +/* 列表项头像 */ +.mdui-list-item-avatar { + min-width: 40px; + max-width: 40px; + height: 40px; + margin-top: 8px; + margin-bottom: 8px; + color: #FFFFFF; + line-height: 40px; + text-align: center; + background-color: #BDBDBD; + border-radius: 50%; +} +.mdui-list-item-avatar img { + width: 100%; + height: 100%; + border-radius: 50%; +} +/* 列表项内容 */ +.mdui-list-item-content { + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + padding-top: 14px; + padding-bottom: 14px; + font-weight: 400; + font-size: 16px; + line-height: 20px; +} +/* 列表项内容的副内容 */ +.mdui-list-item-text { + font-size: 14px; + opacity: 0.54; +} +.mdui-list-item-title ~ .mdui-list-item-text { + margin-top: 4px; +} +/* 激活状态的列表项 */ +.mdui-list-item-active { + font-weight: 700; + background-color: rgba(0, 0, 0, 0.08); +} +.mdui-list-item-active .mdui-list-item-content { + font-weight: 700; +} +.mdui-list-item-active .mdui-list-item-text { + font-weight: 400; +} +/* 限制文本高度 */ +.mdui-list-item-one-line, +.mdui-list-item-two-line, +.mdui-list-item-three-line { + display: -webkit-box; + overflow: hidden; + text-overflow: ellipsis; + -webkit-box-orient: vertical; +} +.mdui-list-item-one-line { + -webkit-line-clamp: 1; + height: 20px; +} +.mdui-list-item-two-line { + -webkit-line-clamp: 2; + height: 40px; +} +.mdui-list-item-three-line { + -webkit-line-clamp: 3; + height: 60px; +} +/* 列表项内的元素间添加间距 */ +.mdui-list-item-icon ~ .mdui-list-item-content { + margin-left: 32px; +} +.mdui-checkbox ~ .mdui-list-item-content, +.mdui-radio ~ .mdui-list-item-content, +.mdui-switch ~ .mdui-list-item-content { + margin-left: 20px; +} +.mdui-list-item-avatar ~ .mdui-list-item-content { + margin-left: 16px; +} +.mdui-list-item-content ~ .mdui-list-item-icon, +.mdui-list-item-content ~ .mdui-list-item-avatar, +.mdui-list-item-content ~ .mdui-checkbox, +.mdui-list-item-content ~ .mdui-radio, +.mdui-list-item-content ~ .mdui-switch { + margin-left: 16px; +} +.mdui-list-item-content ~ .mdui-checkbox, +.mdui-list-item-content ~ .mdui-radio { + padding-left: 24px; +} +/* 密集型列表 */ +.mdui-list-dense { + padding: 4px 0; + font-size: 13px; +} +.mdui-list-dense > .mdui-divider, +.mdui-list-dense > .mdui-divider-light, +.mdui-list-dense > .mdui-divider-dark, +.mdui-list-dense > .mdui-divider-inset, +.mdui-list-dense > .mdui-divider-inset-light, +.mdui-list-dense > .mdui-divider-inset-dark { + margin-top: 4px; + margin-bottom: 4px; +} +.mdui-list-dense .mdui-subheader, +.mdui-list-dense .mdui-subheader-inset { + height: 40px; + margin-top: 4px; + font-size: 12px; + line-height: 40px; +} +.mdui-list-dense .mdui-subheader:first-child, +.mdui-list-dense .mdui-subheader-inset:first-child { + margin-top: -4px; +} +.mdui-list-dense .mdui-list-item { + min-height: 40px; +} +.mdui-list-dense .mdui-list-item::after { + height: 40px; +} +.mdui-list-dense .mdui-list-item-icon { + width: 20px; + height: 20px; + font-size: 20px; +} +.mdui-list-dense .mdui-list-item-avatar { + width: 36px; + min-width: 36px; + height: 36px; + min-height: 36px; +} +.mdui-list-dense .mdui-list-item-content { + padding-top: 11px; + padding-bottom: 11px; + font-size: 13px; + line-height: 18px; +} +.mdui-list-dense .mdui-list-item-text { + font-size: 13px; +} +.mdui-list-dense .mdui-list-item-title ~ .mdui-list-item-text { + margin-top: 2px; +} +.mdui-list-dense .mdui-list-item-one-line { + height: 18px; +} +.mdui-list-dense .mdui-list-item-two-line { + height: 36px; +} +.mdui-list-dense .mdui-list-item-three-line { + height: 54px; +} +/** + * ============================================================================= + * ************ List dark ************ + * ============================================================================= + */ +.mdui-theme-layout-dark .mdui-list .mdui-subheader::before, +.mdui-theme-layout-dark .mdui-list .mdui-subheader-inset::before { + background-color: rgba(255, 255, 255, 0.12); +} +.mdui-theme-layout-dark .mdui-list .mdui-subheader:first-child::before, +.mdui-theme-layout-dark .mdui-list .mdui-subheader-inset:first-child::before { + background-color: transparent; +} +.mdui-theme-layout-dark .mdui-list-item { + color: #ffffff; +} +.mdui-theme-layout-dark .mdui-list-item:hover { + background-color: rgba(255, 255, 255, 0.08); +} +.mdui-theme-layout-dark .mdui-list-item-icon { + color: #ffffff; +} +.mdui-theme-layout-dark .mdui-list-item-text { + opacity: 0.7; +} +.mdui-theme-layout-dark .mdui-list-item-active { + background-color: rgba(255, 255, 255, 0.08); +} +@media (prefers-color-scheme: dark) { + .mdui-theme-layout-auto .mdui-list .mdui-subheader::before, + .mdui-theme-layout-auto .mdui-list .mdui-subheader-inset::before { + background-color: rgba(255, 255, 255, 0.12); + } + .mdui-theme-layout-auto .mdui-list .mdui-subheader:first-child::before, + .mdui-theme-layout-auto .mdui-list .mdui-subheader-inset:first-child::before { + background-color: transparent; + } + .mdui-theme-layout-auto .mdui-list-item { + color: #ffffff; + } + .mdui-theme-layout-auto .mdui-list-item:hover { + background-color: rgba(255, 255, 255, 0.08); + } + .mdui-theme-layout-auto .mdui-list-item-icon { + color: #ffffff; + } + .mdui-theme-layout-auto .mdui-list-item-text { + opacity: 0.7; + } + .mdui-theme-layout-auto .mdui-list-item-active { + background-color: rgba(255, 255, 255, 0.08); + } +} +/** + * ============================================================================== + * ************ List inner theme ************ + * ============================================================================== + */ +[class*="mdui-color-"] .mdui-list-item { + color: inherit; +} +[class*="mdui-color-"] .mdui-list-item-icon { + color: inherit; +} +/** + * ============================================================================= + * ************ Drawer 抽屉栏导航 ************ + * ============================================================================= + */ +/* DOM 加载完后再添加 transition */ +body.mdui-loaded { + -webkit-transition: padding 0.3s cubic-bezier(0, 0, 0.2, 1); + transition: padding 0.3s cubic-bezier(0, 0, 0.2, 1); +} +body.mdui-loaded .mdui-drawer { + -webkit-transition: all 0.3s cubic-bezier(0, 0, 0.2, 1); + transition: all 0.3s cubic-bezier(0, 0, 0.2, 1); +} +/* 抽屉栏外层,默认出现在左侧且隐藏 */ +.mdui-drawer { + position: fixed; + top: 0; + bottom: 0; + left: 0; + z-index: 5000; + -webkit-box-sizing: border-box; + box-sizing: border-box; + /* stylelint-disable-next-line */ + width: calc(100% - 56px); + max-width: 280px; + margin: 0; + overflow-x: hidden; + overflow-y: auto; + white-space: nowrap; + will-change: transform; + -webkit-overflow-scrolling: touch; +} +@media (max-width: 1023.9px) { + .mdui-drawer:not(.mdui-drawer-open) { + -webkit-box-shadow: none !important; + box-shadow: none !important; + } +} +@media (min-width: 600px) { + .mdui-drawer { + /* stylelint-disable-next-line */ + width: calc(100% - 64px); + max-width: 320px; + } +} +@media (min-width: 1024px) { + .mdui-drawer { + width: 240px; + max-width: none; + } + .mdui-drawer.mdui-drawer-close { + -webkit-box-shadow: none !important; + box-shadow: none !important; + } +} +/* 出现在右侧的抽屉栏 */ +.mdui-drawer-right { + right: 0; + left: auto; +} +/* 平板上的样式 */ +@media (max-width: 1023.9px) { + .mdui-drawer { + /* 始终有背景和阴影 */ + background-color: #fff; + /* 默认隐藏 */ + -webkit-transform: translateX(-330px); + transform: translateX(-330px); + -webkit-box-shadow: 0 8px 10px -5px rgba(0, 0, 0, 0.2), 0 16px 24px 2px rgba(0, 0, 0, 0.14), 0 6px 30px 5px rgba(0, 0, 0, 0.12); + box-shadow: 0 8px 10px -5px rgba(0, 0, 0, 0.2), 0 16px 24px 2px rgba(0, 0, 0, 0.14), 0 6px 30px 5px rgba(0, 0, 0, 0.12); + } + .mdui-drawer-right { + /* 右侧 drawer 也默认隐藏 */ + -webkit-transform: translateX(330px); + transform: translateX(330px); + } +} +/* 手机上的样式 */ +@media (max-width: 599.9px) { + .mdui-drawer { + -webkit-transform: translateX(-290px); + transform: translateX(-290px); + } + .mdui-drawer-right { + -webkit-transform: translateX(290px); + transform: translateX(290px); + } +} +/* 强制隐藏抽屉栏 */ +.mdui-drawer-close { + -webkit-transform: translateX(-290px); + transform: translateX(-290px); +} +.mdui-drawer-close.mdui-drawer-right { + -webkit-transform: translateX(290px); + transform: translateX(290px); +} +@media (min-width: 600px) { + .mdui-drawer-close { + -webkit-transform: translateX(-330px); + transform: translateX(-330px); + } + .mdui-drawer-close.mdui-drawer-right { + -webkit-transform: translateX(330px); + transform: translateX(330px); + } +} +@media (min-width: 1024px) { + .mdui-drawer-close { + -webkit-transform: translateX(-250px); + transform: translateX(-250px); + } + .mdui-drawer-close.mdui-drawer-right { + -webkit-transform: translateX(250px); + transform: translateX(250px); + } +} +/* 强制显示抽屉栏 */ +.mdui-drawer-open { + -webkit-transform: translateX(0) !important; + transform: translateX(0) !important; +} +/* PC 上的样式 */ +@media (min-width: 1024px) { + /* 使该类所在元素获得 padding-left 或 padding-right,避免被抽屉栏覆盖住页面 */ + .mdui-drawer-body-left { + padding-left: 240px; + } + .mdui-drawer-body-right { + padding-right: 240px; + } + /* PC 上默认有上边距 */ + .mdui-appbar-with-toolbar .mdui-drawer { + top: 64px; + } + .mdui-appbar-with-tab .mdui-drawer { + top: 48px; + } + .mdui-appbar-with-tab-larger .mdui-drawer { + top: 72px; + } + .mdui-appbar-with-toolbar.mdui-appbar-with-tab .mdui-drawer { + top: 112px; + } + .mdui-appbar-with-toolbar.mdui-appbar-with-tab-larger .mdui-drawer { + top: 136px; + } +} +/* 抽屉栏不是透明时添加阴影 */ +.mdui-drawer[class*="mdui-color-"]:not(.mdui-color-transparent) { + -webkit-box-shadow: 0 8px 10px -5px rgba(0, 0, 0, 0.2), 0 16px 24px 2px rgba(0, 0, 0, 0.14), 0 6px 30px 5px rgba(0, 0, 0, 0.12); + box-shadow: 0 8px 10px -5px rgba(0, 0, 0, 0.2), 0 16px 24px 2px rgba(0, 0, 0, 0.14), 0 6px 30px 5px rgba(0, 0, 0, 0.12); +} +/* 抽屉栏 100% 高度,覆盖在导航栏上面 */ +.mdui-drawer-full-height { + top: 0 !important; +} +/** + * ============================================================================= + * ************ Drawer dark ************ + * ============================================================================= + */ +@media (max-width: 1023.9px) { + .mdui-theme-layout-dark .mdui-drawer { + background-color: #424242; + } +} +@media (prefers-color-scheme: dark) and (max-width: 1023.9px) { + .mdui-theme-layout-auto .mdui-drawer { + background-color: #424242; + } +} +/** + * ============================================================================= + * ************ Dialog 提示框 ************ + * ============================================================================= + */ +.mdui-dialog { + position: fixed; + right: 0; + left: 0; + z-index: 6000; + display: none; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 92%; + min-width: 180px; + max-width: 728px; + max-height: 90%; + margin: auto; + overflow: hidden; + color: #000; + background-color: #fff; + border-radius: 2px; + -webkit-transform: scale(0.95); + transform: scale(0.95); + opacity: 0; + -webkit-transition-duration: 0.3s; + transition-duration: 0.3s; + -webkit-transition-property: opacity, visibility, -webkit-transform; + transition-property: opacity, visibility, -webkit-transform; + transition-property: transform, opacity, visibility; + transition-property: transform, opacity, visibility, -webkit-transform; + will-change: top, opacity, transform; + -webkit-box-shadow: 0 11px 15px -7px rgba(0, 0, 0, 0.2), 0 24px 38px 3px rgba(0, 0, 0, 0.14), 0 9px 46px 8px rgba(0, 0, 0, 0.12); + box-shadow: 0 11px 15px -7px rgba(0, 0, 0, 0.2), 0 24px 38px 3px rgba(0, 0, 0, 0.14), 0 9px 46px 8px rgba(0, 0, 0, 0.12); +} +@media (min-width: 600px) { + .mdui-dialog { + width: 85%; + max-height: 85%; + } +} +@media (min-width: 1024px) { + .mdui-dialog { + width: 80%; + max-height: 80%; + } +} +/* 打开提示框 */ +.mdui-dialog-open { + -webkit-transform: scale(1); + transform: scale(1); + opacity: 1; +} +/* 提示框标题 */ +.mdui-dialog-title { + -webkit-box-sizing: border-box; + box-sizing: border-box; + font-weight: 500; + font-size: 20px; + line-height: 24px; + text-align: left; +} +/* 标题固定在顶部 */ +.mdui-dialog > .mdui-dialog-title { + padding: 24px 24px 20px 24px; +} +/* 提示框内容 */ +.mdui-dialog-content { + -webkit-box-sizing: border-box; + box-sizing: border-box; + padding: 24px; + overflow-y: auto; + color: rgba(0, 0, 0, 0.7); + font-size: 15px; + line-height: 1.5; + -webkit-overflow-scrolling: touch; +} +/* 标题随内容滚动 */ +.mdui-dialog-content > .mdui-dialog-title { + padding-bottom: 20px; +} +.mdui-dialog-title + .mdui-dialog-content { + padding-top: 0; +} +/* 提示框底部按钮 */ +.mdui-dialog-actions { + -webkit-box-sizing: border-box; + box-sizing: border-box; + padding: 8px; + text-align: right; +} +.mdui-dialog-actions .mdui-btn { + min-width: 64px; + margin-left: 8px; + color: #E91E63; +} +.mdui-dialog-actions .mdui-btn:first-child { + margin-left: 0; +} +/* 底部按钮滚随内容动 */ +.mdui-dialog-content > .mdui-dialog-actions { + margin: 0 -24px -24px -24px; + padding-top: 32px; +} +/* 使提示框底部按钮竖排 */ +.mdui-dialog-actions-stacked { + padding: 8px 0 8px 0; +} +.mdui-dialog-actions-stacked .mdui-btn { + width: 100%; + height: 48px; + margin: 0; + line-height: 48px !important; + text-align: right; + border-radius: 0; +} +/** + * ============================================================================= + * ************ Dialog 强调色 ************ + * ============================================================================= + */ +.mdui-theme-accent-amber .mdui-dialog-actions .mdui-btn { + color: #FFC107; +} +.mdui-theme-accent-blue .mdui-dialog-actions .mdui-btn { + color: #2196F3; +} +.mdui-theme-accent-cyan .mdui-dialog-actions .mdui-btn { + color: #00BCD4; +} +.mdui-theme-accent-deep-orange .mdui-dialog-actions .mdui-btn { + color: #FF5722; +} +.mdui-theme-accent-deep-purple .mdui-dialog-actions .mdui-btn { + color: #673AB7; +} +.mdui-theme-accent-green .mdui-dialog-actions .mdui-btn { + color: #4CAF50; +} +.mdui-theme-accent-indigo .mdui-dialog-actions .mdui-btn { + color: #3F51B5; +} +.mdui-theme-accent-light-blue .mdui-dialog-actions .mdui-btn { + color: #03A9F4; +} +.mdui-theme-accent-light-green .mdui-dialog-actions .mdui-btn { + color: #8BC34A; +} +.mdui-theme-accent-lime .mdui-dialog-actions .mdui-btn { + color: #CDDC39; +} +.mdui-theme-accent-orange .mdui-dialog-actions .mdui-btn { + color: #FF9800; +} +.mdui-theme-accent-pink .mdui-dialog-actions .mdui-btn { + color: #E91E63; +} +.mdui-theme-accent-purple .mdui-dialog-actions .mdui-btn { + color: #9C27B0; +} +.mdui-theme-accent-red .mdui-dialog-actions .mdui-btn { + color: #F44336; +} +.mdui-theme-accent-teal .mdui-dialog-actions .mdui-btn { + color: #009688; +} +.mdui-theme-accent-yellow .mdui-dialog-actions .mdui-btn { + color: #FFEB3B; +} +/** + * ============================================================================= + * ************ Dialog dark ************ + * ============================================================================= + */ +.mdui-theme-layout-dark .mdui-dialog { + color: #fff; + background-color: #424242; +} +.mdui-theme-layout-dark .mdui-dialog-content { + color: rgba(255, 255, 255, 0.7); +} +@media (prefers-color-scheme: dark) { + .mdui-theme-layout-auto .mdui-dialog { + color: #fff; + background-color: #424242; + } + .mdui-theme-layout-auto .mdui-dialog-content { + color: rgba(255, 255, 255, 0.7); + } +} +/** + * ============================================================================= + * ************ Dialog alert ************ + * ============================================================================= + */ +.mdui-dialog-alert { + max-width: 448px; +} +/** + * ============================================================================= + * ************ Dialog confirm ************ + * ============================================================================= + */ +.mdui-dialog-confirm { + max-width: 448px; +} +/** + * ============================================================================= + * ************ Dialog prompt ************ + * ============================================================================= + */ +.mdui-dialog-prompt { + max-width: 448px; +} +.mdui-dialog-prompt .mdui-textfield { + padding-top: 0; +} +/** + * ============================================================================= + * ************ Tooltip 工具提示 ************ + * ============================================================================= + */ +.mdui-tooltip { + position: absolute; + z-index: 9000; + display: inline-block; + -webkit-box-sizing: border-box; + box-sizing: border-box; + max-width: 180px; + min-height: 32px; + padding: 8px 16px; + color: #fff; + font-weight: 500; + font-size: 14px; + line-height: 22px; + text-align: left; + background-color: rgba(97, 97, 97, 0.9); + border-radius: 2px; + -webkit-transform: scale(0); + transform: scale(0); + opacity: 0; + -webkit-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + -webkit-transition-duration: 0.15s; + transition-duration: 0.15s; + -webkit-transition-property: opacity, -webkit-transform; + transition-property: opacity, -webkit-transform; + transition-property: opacity, transform; + transition-property: opacity, transform, -webkit-transform; + will-change: opacity, transform; +} +@media (min-width: 1024px) { + .mdui-tooltip { + max-width: 200px; + min-height: 24px; + padding: 4px 8px; + font-size: 12px; + line-height: 18px; + } +} +/* 显示工具提示 */ +.mdui-tooltip-open { + -webkit-transform: scale(1); + transform: scale(1); + opacity: 1; +} +/** + * ============================================================================= + * ************ Snackbar ************ + * ============================================================================= + */ +.mdui-snackbar { + position: fixed; + z-index: 7000; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 100%; + min-height: 48px; + padding: 0 24px 0 24px; + color: #fff; + font-size: 14px; + line-height: 20px; + background-color: #323232; + will-change: transform; +} +@media (min-width: 600px) { + .mdui-snackbar { + width: auto; + min-width: 288px; + max-width: 568px; + border-radius: 2px; + } +} +.mdui-snackbar-bottom, +.mdui-snackbar-top, +.mdui-snackbar-left-top, +.mdui-snackbar-left-bottom, +.mdui-snackbar-right-top, +.mdui-snackbar-right-bottom { + -webkit-transition: -webkit-transform 0.3s cubic-bezier(0.4, 0, 0.2, 1); + transition: -webkit-transform 0.3s cubic-bezier(0.4, 0, 0.2, 1); + transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1); + transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 0.3s cubic-bezier(0.4, 0, 0.2, 1); +} +/* 位置 */ +.mdui-snackbar-bottom, +.mdui-snackbar-left-bottom, +.mdui-snackbar-right-bottom { + bottom: 0; +} +.mdui-snackbar-top, +.mdui-snackbar-left-top, +.mdui-snackbar-right-top { + top: 0; +} +.mdui-snackbar-top, +.mdui-snackbar-bottom { + left: 50%; +} +@media (min-width: 600px) { + .mdui-snackbar-left-top { + top: 24px; + left: 24px; + } + .mdui-snackbar-left-bottom { + bottom: 24px; + left: 24px; + } + .mdui-snackbar-right-top { + top: 24px; + right: 24px; + } + .mdui-snackbar-right-bottom { + right: 24px; + bottom: 24px; + } +} +/* 文本 */ +.mdui-snackbar-text { + position: relative; + max-width: 100%; + padding: 14px 0 14px 0; + overflow: hidden; + text-overflow: ellipsis; +} +/* 按钮 */ +.mdui-snackbar-action { + margin-right: -16px; + white-space: nowrap; + color: #FF80AB; +} +/** + * ============================================================================= + * ************ Snackbar 强调色 ************ + * ============================================================================= + */ +.mdui-theme-accent-amber .mdui-snackbar-action { + color: #FFE57F; +} +.mdui-theme-accent-blue .mdui-snackbar-action { + color: #82B1FF; +} +.mdui-theme-accent-cyan .mdui-snackbar-action { + color: #84FFFF; +} +.mdui-theme-accent-deep-orange .mdui-snackbar-action { + color: #FF9E80; +} +.mdui-theme-accent-deep-purple .mdui-snackbar-action { + color: #B388FF; +} +.mdui-theme-accent-green .mdui-snackbar-action { + color: #B9F6CA; +} +.mdui-theme-accent-indigo .mdui-snackbar-action { + color: #8C9EFF; +} +.mdui-theme-accent-light-blue .mdui-snackbar-action { + color: #80D8FF; +} +.mdui-theme-accent-light-green .mdui-snackbar-action { + color: #CCFF90; +} +.mdui-theme-accent-lime .mdui-snackbar-action { + color: #F4FF81; +} +.mdui-theme-accent-orange .mdui-snackbar-action { + color: #FFD180; +} +.mdui-theme-accent-pink .mdui-snackbar-action { + color: #FF80AB; +} +.mdui-theme-accent-purple .mdui-snackbar-action { + color: #EA80FC; +} +.mdui-theme-accent-red .mdui-snackbar-action { + color: #FF8A80; +} +.mdui-theme-accent-teal .mdui-snackbar-action { + color: #A7FFEB; +} +.mdui-theme-accent-yellow .mdui-snackbar-action { + color: #FFFF8D; +} +/** + * ============================================================================= + * ************ Snackbar dark ************ + * ============================================================================= + */ +.mdui-theme-layout-dark .mdui-snackbar { + background-color: #5d5d5d; +} +@media (prefers-color-scheme: dark) { + .mdui-theme-layout-auto .mdui-snackbar { + background-color: #5d5d5d; + } +} +/** + * ============================================================================= + * ************ Chip 纸片 ************ + * ============================================================================= + */ +.mdui-chip { + display: inline-block; + -webkit-box-sizing: border-box; + box-sizing: border-box; + height: 32px; + margin: 2px 0; + color: inherit; + white-space: nowrap; + background-color: #e0e0e0; + border-radius: 16px; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + -webkit-transition: -webkit-box-shadow 0.25s cubic-bezier(0.4, 0, 0.2, 1); + transition: -webkit-box-shadow 0.25s cubic-bezier(0.4, 0, 0.2, 1); + transition: box-shadow 0.25s cubic-bezier(0.4, 0, 0.2, 1); + transition: box-shadow 0.25s cubic-bezier(0.4, 0, 0.2, 1), -webkit-box-shadow 0.25s cubic-bezier(0.4, 0, 0.2, 1); + will-change: box-shadow; +} +.mdui-chip:hover, +.mdui-chip:focus { + -webkit-box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12); + box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12); +} +.mdui-chip:active { + background-color: #d6d6d6; +} +/* 左侧的图标 */ +.mdui-chip-icon { + position: relative; + display: inline-block; + width: 32px; + height: 32px; + margin-right: -4px; + overflow: hidden; + color: #fff; + font-size: 18px; + line-height: 32px; + text-align: center; + vertical-align: middle; + background-color: #989898; + border-radius: 50%; +} +.mdui-chip-icon .mdui-icon { + position: absolute; + top: 4px; + left: 4px; + color: #fff; +} +/* 文本 */ +.mdui-chip-title { + display: inline-block; + height: 32px; + padding-right: 12px; + padding-left: 12px; + font-size: 14px; + line-height: 32px; + vertical-align: middle; +} +/* 删除按钮 */ +.mdui-chip-delete { + display: inline-block; + width: 24px; + height: 24px; + margin-right: 4px; + margin-left: -8px; + overflow: hidden; + text-align: center; + text-decoration: none; + vertical-align: middle; + border-radius: 50%; + cursor: pointer; + opacity: 0.54; + -webkit-transition: opacity 0.25s cubic-bezier(0.4, 0, 0.2, 1); + transition: opacity 0.25s cubic-bezier(0.4, 0, 0.2, 1); + will-change: opacity; +} +.mdui-chip-delete:hover, +.mdui-chip-delete:focus { + opacity: 0.87; +} +/** + * ============================================================================= + * ************ Chip dark ************ + * ============================================================================= + */ +.mdui-theme-layout-dark .mdui-chip { + background-color: #484848; +} +.mdui-theme-layout-dark .mdui-chip:active { + background-color: #5d5d5d; +} +@media (prefers-color-scheme: dark) { + .mdui-theme-layout-auto .mdui-chip { + background-color: #484848; + } + .mdui-theme-layout-auto .mdui-chip:active { + background-color: #5d5d5d; + } +} +/** + * ============================================================================= + * ************ Bottom navigation 底部导航栏 ************ + * ============================================================================= + */ +.mdui-bottom-nav { + position: relative; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + height: 56px; + margin: 0 auto; + padding: 0; + overflow: hidden; + white-space: nowrap; +} +@media (min-width: 600px) { + .mdui-bottom-nav::before { + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + content: ' '; + } + .mdui-bottom-nav::after { + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + content: ' '; + } +} +.mdui-bottom-nav a { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + min-width: 32px; + max-width: none; + padding: 8px 12px 10px 12px; + overflow: hidden; + color: inherit; + font-size: 12px; + text-align: center; + text-decoration: none; + text-overflow: ellipsis; + cursor: pointer; + opacity: 0.7; + -webkit-transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1); + transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1); + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + will-change: padding; +} +@media (min-width: 600px) { + .mdui-bottom-nav a { + max-width: 144px; + } +} +.mdui-bottom-nav a .mdui-icon { + opacity: 0.7; +} +.mdui-bottom-nav a label { + display: block; + width: 100%; + cursor: pointer; + -webkit-transition: -webkit-transform 0.2s cubic-bezier(0.4, 0, 0.2, 1); + transition: -webkit-transform 0.2s cubic-bezier(0.4, 0, 0.2, 1); + transition: transform 0.2s cubic-bezier(0.4, 0, 0.2, 1); + transition: transform 0.2s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 0.2s cubic-bezier(0.4, 0, 0.2, 1); + will-change: font-size; +} +.mdui-bottom-nav a .mdui-icon + label { + margin-top: 6px; +} +.mdui-bottom-nav a.mdui-bottom-nav-active { + color: #3F51B5; + font-size: 14px; + opacity: 1; +} +.mdui-bottom-nav a.mdui-bottom-nav-active .mdui-icon { + opacity: 1; +} +/* 只在激活时显示文本 */ +.mdui-bottom-nav-text-auto a { + min-width: 32px; + padding-right: 0; + padding-left: 0; +} +@media (min-width: 600px) { + .mdui-bottom-nav-text-auto a { + max-width: 156px; + } +} +.mdui-bottom-nav-text-auto a .mdui-icon { + padding-top: 16px; + -webkit-transition: padding-top 0.2s cubic-bezier(0.4, 0, 0.2, 1); + transition: padding-top 0.2s cubic-bezier(0.4, 0, 0.2, 1); + will-change: padding-top; +} +.mdui-bottom-nav-text-auto a label { + -webkit-transform: scale(0); + transform: scale(0); +} +.mdui-bottom-nav-text-auto a.mdui-bottom-nav-active { + padding-right: 18px; + padding-left: 18px; +} +.mdui-bottom-nav-text-auto a.mdui-bottom-nav-active .mdui-icon { + padding-top: 0; +} +.mdui-bottom-nav-text-auto a.mdui-bottom-nav-active label { + -webkit-transform: scale(1); + transform: scale(1); +} +/* 固定到页面底部 */ +.mdui-bottom-nav-fixed { + padding-bottom: 56px; +} +.mdui-bottom-nav-fixed .mdui-bottom-nav { + position: fixed; + right: 0; + bottom: 0; + left: 0; +} +/** + * ============================================================================= + * ************ Bottom Nav 主色 ************ + * ============================================================================= + */ +.mdui-theme-primary-amber .mdui-bottom-nav a.mdui-bottom-nav-active { + color: #FFC107; +} +.mdui-theme-primary-blue .mdui-bottom-nav a.mdui-bottom-nav-active { + color: #2196F3; +} +.mdui-theme-primary-blue-grey .mdui-bottom-nav a.mdui-bottom-nav-active { + color: #607D8B; +} +.mdui-theme-primary-brown .mdui-bottom-nav a.mdui-bottom-nav-active { + color: #795548; +} +.mdui-theme-primary-cyan .mdui-bottom-nav a.mdui-bottom-nav-active { + color: #00BCD4; +} +.mdui-theme-primary-deep-orange .mdui-bottom-nav a.mdui-bottom-nav-active { + color: #FF5722; +} +.mdui-theme-primary-deep-purple .mdui-bottom-nav a.mdui-bottom-nav-active { + color: #673AB7; +} +.mdui-theme-primary-green .mdui-bottom-nav a.mdui-bottom-nav-active { + color: #4CAF50; +} +.mdui-theme-primary-grey .mdui-bottom-nav a.mdui-bottom-nav-active { + color: #9E9E9E; +} +.mdui-theme-primary-indigo .mdui-bottom-nav a.mdui-bottom-nav-active { + color: #3F51B5; +} +.mdui-theme-primary-light-blue .mdui-bottom-nav a.mdui-bottom-nav-active { + color: #03A9F4; +} +.mdui-theme-primary-light-green .mdui-bottom-nav a.mdui-bottom-nav-active { + color: #8BC34A; +} +.mdui-theme-primary-lime .mdui-bottom-nav a.mdui-bottom-nav-active { + color: #CDDC39; +} +.mdui-theme-primary-orange .mdui-bottom-nav a.mdui-bottom-nav-active { + color: #FF9800; +} +.mdui-theme-primary-pink .mdui-bottom-nav a.mdui-bottom-nav-active { + color: #E91E63; +} +.mdui-theme-primary-purple .mdui-bottom-nav a.mdui-bottom-nav-active { + color: #9C27B0; +} +.mdui-theme-primary-red .mdui-bottom-nav a.mdui-bottom-nav-active { + color: #F44336; +} +.mdui-theme-primary-teal .mdui-bottom-nav a.mdui-bottom-nav-active { + color: #009688; +} +.mdui-theme-primary-yellow .mdui-bottom-nav a.mdui-bottom-nav-active { + color: #FFEB3B; +} +/* 带背景色的底部导航栏 */ +.mdui-bottom-nav[class*="mdui-color-"] .mdui-bottom-nav-active { + color: inherit !important; +} +/** + * ============================================================================= + * ************ Progress Linear 线性进度条 ************ + * ============================================================================= + */ +/* 线性进度条 */ +.mdui-progress { + position: relative; + display: block; + width: 100%; + height: 4px; + overflow: hidden; + background-color: rgba(63, 81, 181, 0.2); + border-radius: 2px; +} +/* 确定进度的线性进度条 */ +.mdui-progress-determinate { + position: absolute; + top: 0; + bottom: 0; + left: 0; + background-color: #3F51B5; + -webkit-transition: width 0.3s linear; + transition: width 0.3s linear; +} +/* 不确定进度的线性进度条 */ +.mdui-progress-indeterminate { + background-color: #3F51B5; +} +.mdui-progress-indeterminate::before { + position: absolute; + top: 0; + bottom: 0; + left: 0; + background-color: inherit; + -webkit-animation: mdui-progress-indeterminate 2s linear infinite; + animation: mdui-progress-indeterminate 2s linear infinite; + content: ' '; + will-change: left, width; +} +.mdui-progress-indeterminate::after { + position: absolute; + top: 0; + bottom: 0; + left: 0; + background-color: inherit; + -webkit-animation: mdui-progress-indeterminate-short 2s linear infinite; + animation: mdui-progress-indeterminate-short 2s linear infinite; + content: ' '; + will-change: left, width; +} +@-webkit-keyframes mdui-progress-indeterminate { + 0% { + left: 0; + width: 0; + } + 50% { + left: 30%; + width: 70%; + } + 75% { + left: 100%; + width: 0; + } +} +@keyframes mdui-progress-indeterminate { + 0% { + left: 0; + width: 0; + } + 50% { + left: 30%; + width: 70%; + } + 75% { + left: 100%; + width: 0; + } +} +@-webkit-keyframes mdui-progress-indeterminate-short { + 0% { + left: 0; + width: 0; + } + 50% { + left: 0; + width: 0; + } + 75% { + left: 0; + width: 25%; + } + 100% { + left: 100%; + width: 0; + } +} +@keyframes mdui-progress-indeterminate-short { + 0% { + left: 0; + width: 0; + } + 50% { + left: 0; + width: 0; + } + 75% { + left: 0; + width: 25%; + } + 100% { + left: 100%; + width: 0; + } +} +/** + * ============================================================================= + * ************ Progress linear 主色 ************ + * ============================================================================= + */ +.mdui-theme-primary-amber .mdui-progress { + background-color: rgba(255, 193, 7, 0.2); +} +.mdui-theme-primary-amber .mdui-progress-determinate, +.mdui-theme-primary-amber .mdui-progress-indeterminate { + background-color: #FFC107; +} +.mdui-theme-primary-blue .mdui-progress { + background-color: rgba(33, 150, 243, 0.2); +} +.mdui-theme-primary-blue .mdui-progress-determinate, +.mdui-theme-primary-blue .mdui-progress-indeterminate { + background-color: #2196F3; +} +.mdui-theme-primary-blue-grey .mdui-progress { + background-color: rgba(96, 125, 139, 0.2); +} +.mdui-theme-primary-blue-grey .mdui-progress-determinate, +.mdui-theme-primary-blue-grey .mdui-progress-indeterminate { + background-color: #607D8B; +} +.mdui-theme-primary-brown .mdui-progress { + background-color: rgba(121, 85, 72, 0.2); +} +.mdui-theme-primary-brown .mdui-progress-determinate, +.mdui-theme-primary-brown .mdui-progress-indeterminate { + background-color: #795548; +} +.mdui-theme-primary-cyan .mdui-progress { + background-color: rgba(0, 188, 212, 0.2); +} +.mdui-theme-primary-cyan .mdui-progress-determinate, +.mdui-theme-primary-cyan .mdui-progress-indeterminate { + background-color: #00BCD4; +} +.mdui-theme-primary-deep-orange .mdui-progress { + background-color: rgba(255, 87, 34, 0.2); +} +.mdui-theme-primary-deep-orange .mdui-progress-determinate, +.mdui-theme-primary-deep-orange .mdui-progress-indeterminate { + background-color: #FF5722; +} +.mdui-theme-primary-deep-purple .mdui-progress { + background-color: rgba(103, 58, 183, 0.2); +} +.mdui-theme-primary-deep-purple .mdui-progress-determinate, +.mdui-theme-primary-deep-purple .mdui-progress-indeterminate { + background-color: #673AB7; +} +.mdui-theme-primary-green .mdui-progress { + background-color: rgba(76, 175, 80, 0.2); +} +.mdui-theme-primary-green .mdui-progress-determinate, +.mdui-theme-primary-green .mdui-progress-indeterminate { + background-color: #4CAF50; +} +.mdui-theme-primary-grey .mdui-progress { + background-color: rgba(158, 158, 158, 0.2); +} +.mdui-theme-primary-grey .mdui-progress-determinate, +.mdui-theme-primary-grey .mdui-progress-indeterminate { + background-color: #9E9E9E; +} +.mdui-theme-primary-indigo .mdui-progress { + background-color: rgba(63, 81, 181, 0.2); +} +.mdui-theme-primary-indigo .mdui-progress-determinate, +.mdui-theme-primary-indigo .mdui-progress-indeterminate { + background-color: #3F51B5; +} +.mdui-theme-primary-light-blue .mdui-progress { + background-color: rgba(3, 169, 244, 0.2); +} +.mdui-theme-primary-light-blue .mdui-progress-determinate, +.mdui-theme-primary-light-blue .mdui-progress-indeterminate { + background-color: #03A9F4; +} +.mdui-theme-primary-light-green .mdui-progress { + background-color: rgba(139, 195, 74, 0.2); +} +.mdui-theme-primary-light-green .mdui-progress-determinate, +.mdui-theme-primary-light-green .mdui-progress-indeterminate { + background-color: #8BC34A; +} +.mdui-theme-primary-lime .mdui-progress { + background-color: rgba(205, 220, 57, 0.2); +} +.mdui-theme-primary-lime .mdui-progress-determinate, +.mdui-theme-primary-lime .mdui-progress-indeterminate { + background-color: #CDDC39; +} +.mdui-theme-primary-orange .mdui-progress { + background-color: rgba(255, 152, 0, 0.2); +} +.mdui-theme-primary-orange .mdui-progress-determinate, +.mdui-theme-primary-orange .mdui-progress-indeterminate { + background-color: #FF9800; +} +.mdui-theme-primary-pink .mdui-progress { + background-color: rgba(233, 30, 99, 0.2); +} +.mdui-theme-primary-pink .mdui-progress-determinate, +.mdui-theme-primary-pink .mdui-progress-indeterminate { + background-color: #E91E63; +} +.mdui-theme-primary-purple .mdui-progress { + background-color: rgba(156, 39, 176, 0.2); +} +.mdui-theme-primary-purple .mdui-progress-determinate, +.mdui-theme-primary-purple .mdui-progress-indeterminate { + background-color: #9C27B0; +} +.mdui-theme-primary-red .mdui-progress { + background-color: rgba(244, 67, 54, 0.2); +} +.mdui-theme-primary-red .mdui-progress-determinate, +.mdui-theme-primary-red .mdui-progress-indeterminate { + background-color: #F44336; +} +.mdui-theme-primary-teal .mdui-progress { + background-color: rgba(0, 150, 136, 0.2); +} +.mdui-theme-primary-teal .mdui-progress-determinate, +.mdui-theme-primary-teal .mdui-progress-indeterminate { + background-color: #009688; +} +.mdui-theme-primary-yellow .mdui-progress { + background-color: rgba(255, 235, 59, 0.2); +} +.mdui-theme-primary-yellow .mdui-progress-determinate, +.mdui-theme-primary-yellow .mdui-progress-indeterminate { + background-color: #FFEB3B; +} +/** + * ============================================================================= + * ************ Progress Circular 圆形进度条 ************ + * ============================================================================= + */ +.mdui-spinner { + position: relative; + display: inline-block; + width: 28px; + height: 28px; + -webkit-animation: mdui-spinner 1568ms linear infinite; + animation: mdui-spinner 1568ms linear infinite; +} +@-webkit-keyframes mdui-spinner { + to { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} +@keyframes mdui-spinner { + to { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} +.mdui-spinner-layer { + position: absolute; + width: 100%; + height: 100%; + border-color: #3F51B5; + opacity: 0; + opacity: 1; + -webkit-animation: mdui-spinner-layer-fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; + animation: mdui-spinner-layer-fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; +} +.mdui-spinner-layer-1 { + border-color: #42A5F5 !important; + -webkit-animation: mdui-spinner-layer-fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, mdui-spinner-layer-1-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; + animation: mdui-spinner-layer-fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, mdui-spinner-layer-1-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; +} +.mdui-spinner-layer-2 { + border-color: #F44336 !important; + -webkit-animation: mdui-spinner-layer-fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, mdui-spinner-layer-2-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; + animation: mdui-spinner-layer-fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, mdui-spinner-layer-2-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; +} +.mdui-spinner-layer-3 { + border-color: #FDD835 !important; + -webkit-animation: mdui-spinner-layer-fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, mdui-spinner-layer-3-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; + animation: mdui-spinner-layer-fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, mdui-spinner-layer-3-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; +} +.mdui-spinner-layer-4 { + border-color: #4CAF50 !important; + -webkit-animation: mdui-spinner-layer-fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, mdui-spinner-layer-4-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; + animation: mdui-spinner-layer-fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, mdui-spinner-layer-4-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; +} +@-webkit-keyframes mdui-spinner-layer-fill-unfill-rotate { + 12.5% { + -webkit-transform: rotate(135deg); + transform: rotate(135deg); + } + 25% { + -webkit-transform: rotate(270deg); + transform: rotate(270deg); + } + 37.5% { + -webkit-transform: rotate(405deg); + transform: rotate(405deg); + } + 50% { + -webkit-transform: rotate(540deg); + transform: rotate(540deg); + } + 62.5% { + -webkit-transform: rotate(675deg); + transform: rotate(675deg); + } + 75% { + -webkit-transform: rotate(810deg); + transform: rotate(810deg); + } + 87.5% { + -webkit-transform: rotate(945deg); + transform: rotate(945deg); + } + to { + -webkit-transform: rotate(1080deg); + transform: rotate(1080deg); + } +} +@keyframes mdui-spinner-layer-fill-unfill-rotate { + 12.5% { + -webkit-transform: rotate(135deg); + transform: rotate(135deg); + } + 25% { + -webkit-transform: rotate(270deg); + transform: rotate(270deg); + } + 37.5% { + -webkit-transform: rotate(405deg); + transform: rotate(405deg); + } + 50% { + -webkit-transform: rotate(540deg); + transform: rotate(540deg); + } + 62.5% { + -webkit-transform: rotate(675deg); + transform: rotate(675deg); + } + 75% { + -webkit-transform: rotate(810deg); + transform: rotate(810deg); + } + 87.5% { + -webkit-transform: rotate(945deg); + transform: rotate(945deg); + } + to { + -webkit-transform: rotate(1080deg); + transform: rotate(1080deg); + } +} +@-webkit-keyframes mdui-spinner-layer-1-fade-in-out { + from { + opacity: 1; + } + 25% { + opacity: 1; + } + 26% { + opacity: 0; + } + 89% { + opacity: 0; + } + 90% { + opacity: 1; + } + 100% { + opacity: 1; + } +} +@keyframes mdui-spinner-layer-1-fade-in-out { + from { + opacity: 1; + } + 25% { + opacity: 1; + } + 26% { + opacity: 0; + } + 89% { + opacity: 0; + } + 90% { + opacity: 1; + } + 100% { + opacity: 1; + } +} +@-webkit-keyframes mdui-spinner-layer-2-fade-in-out { + from { + opacity: 0; + } + 15% { + opacity: 0; + } + 25% { + opacity: 1; + } + 50% { + opacity: 1; + } + 51% { + opacity: 0; + } +} +@keyframes mdui-spinner-layer-2-fade-in-out { + from { + opacity: 0; + } + 15% { + opacity: 0; + } + 25% { + opacity: 1; + } + 50% { + opacity: 1; + } + 51% { + opacity: 0; + } +} +@-webkit-keyframes mdui-spinner-layer-3-fade-in-out { + from { + opacity: 0; + } + 40% { + opacity: 0; + } + 50% { + opacity: 1; + } + 75% { + opacity: 1; + } + 76% { + opacity: 0; + } +} +@keyframes mdui-spinner-layer-3-fade-in-out { + from { + opacity: 0; + } + 40% { + opacity: 0; + } + 50% { + opacity: 1; + } + 75% { + opacity: 1; + } + 76% { + opacity: 0; + } +} +@-webkit-keyframes mdui-spinner-layer-4-fade-in-out { + from { + opacity: 0; + } + 65% { + opacity: 0; + } + 75% { + opacity: 1; + } + 90% { + opacity: 1; + } + 100% { + opacity: 0; + } +} +@keyframes mdui-spinner-layer-4-fade-in-out { + from { + opacity: 0; + } + 65% { + opacity: 0; + } + 75% { + opacity: 1; + } + 90% { + opacity: 1; + } + 100% { + opacity: 0; + } +} +.mdui-spinner-gap-patch { + position: absolute; + top: 0; + left: 45%; + width: 10%; + height: 100%; + overflow: hidden; + border-color: inherit; +} +.mdui-spinner-gap-patch .mdui-spinner-circle { + left: -450%; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 1000%; +} +.mdui-spinner-circle-clipper { + position: relative; + display: inline-block; + width: 50%; + height: 100%; + overflow: hidden; + border-color: inherit; +} +.mdui-spinner-circle-clipper .mdui-spinner-circle { + position: absolute; + top: 0; + right: 0; + bottom: 0; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 200%; + height: 100%; + border-color: inherit; + border-style: solid; + border-width: 3px; + border-bottom-color: transparent !important; + border-radius: 50%; + -webkit-animation: none; + animation: none; +} +.mdui-spinner-circle-clipper.mdui-spinner-left { + float: left; +} +.mdui-spinner-circle-clipper.mdui-spinner-left .mdui-spinner-circle { + left: 0; + border-right-color: transparent !important; + -webkit-transform: rotate(129deg); + transform: rotate(129deg); + -webkit-animation: mdui-spinner-left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; + animation: mdui-spinner-left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; +} +.mdui-spinner-circle-clipper.mdui-spinner-right { + float: right; +} +.mdui-spinner-circle-clipper.mdui-spinner-right .mdui-spinner-circle { + left: -100%; + border-left-color: transparent !important; + -webkit-transform: rotate(-129deg); + transform: rotate(-129deg); + -webkit-animation: mdui-spinner-right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; + animation: mdui-spinner-right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; +} +@-webkit-keyframes mdui-spinner-left-spin { + from { + -webkit-transform: rotate(130deg); + transform: rotate(130deg); + } + 50% { + -webkit-transform: rotate(-5deg); + transform: rotate(-5deg); + } + to { + -webkit-transform: rotate(130deg); + transform: rotate(130deg); + } +} +@keyframes mdui-spinner-left-spin { + from { + -webkit-transform: rotate(130deg); + transform: rotate(130deg); + } + 50% { + -webkit-transform: rotate(-5deg); + transform: rotate(-5deg); + } + to { + -webkit-transform: rotate(130deg); + transform: rotate(130deg); + } +} +@-webkit-keyframes mdui-spinner-right-spin { + from { + -webkit-transform: rotate(-130deg); + transform: rotate(-130deg); + } + 50% { + -webkit-transform: rotate(5deg); + transform: rotate(5deg); + } + to { + -webkit-transform: rotate(-130deg); + transform: rotate(-130deg); + } +} +@keyframes mdui-spinner-right-spin { + from { + -webkit-transform: rotate(-130deg); + transform: rotate(-130deg); + } + 50% { + -webkit-transform: rotate(5deg); + transform: rotate(5deg); + } + to { + -webkit-transform: rotate(-130deg); + transform: rotate(-130deg); + } +} +/** + * ============================================================================= + * ************ Spinner linear 主色 ************ + * ============================================================================= + */ +.mdui-theme-primary-amber .mdui-spinner-layer { + border-color: #FFC107; +} +.mdui-theme-primary-blue .mdui-spinner-layer { + border-color: #2196F3; +} +.mdui-theme-primary-blue-grey .mdui-spinner-layer { + border-color: #607D8B; +} +.mdui-theme-primary-brown .mdui-spinner-layer { + border-color: #795548; +} +.mdui-theme-primary-cyan .mdui-spinner-layer { + border-color: #00BCD4; +} +.mdui-theme-primary-deep-orange .mdui-spinner-layer { + border-color: #FF5722; +} +.mdui-theme-primary-deep-purple .mdui-spinner-layer { + border-color: #673AB7; +} +.mdui-theme-primary-green .mdui-spinner-layer { + border-color: #4CAF50; +} +.mdui-theme-primary-grey .mdui-spinner-layer { + border-color: #9E9E9E; +} +.mdui-theme-primary-indigo .mdui-spinner-layer { + border-color: #3F51B5; +} +.mdui-theme-primary-light-blue .mdui-spinner-layer { + border-color: #03A9F4; +} +.mdui-theme-primary-light-green .mdui-spinner-layer { + border-color: #8BC34A; +} +.mdui-theme-primary-lime .mdui-spinner-layer { + border-color: #CDDC39; +} +.mdui-theme-primary-orange .mdui-spinner-layer { + border-color: #FF9800; +} +.mdui-theme-primary-pink .mdui-spinner-layer { + border-color: #E91E63; +} +.mdui-theme-primary-purple .mdui-spinner-layer { + border-color: #9C27B0; +} +.mdui-theme-primary-red .mdui-spinner-layer { + border-color: #F44336; +} +.mdui-theme-primary-teal .mdui-spinner-layer { + border-color: #009688; +} +.mdui-theme-primary-yellow .mdui-spinner-layer { + border-color: #FFEB3B; +} +/** + * ============================================================================= + * ************ Menu 菜单 ************ + * ============================================================================= + */ +/* 菜单 */ +.mdui-menu { + position: fixed; + z-index: 99999; + display: block; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 168px; + margin: 0; + padding: 8px 0; + overflow-y: auto; + color: rgba(0, 0, 0, 0.87); + font-size: 16px; + list-style: none; + background-color: #fff; + border-radius: 2px; + -webkit-transform: scale(0); + transform: scale(0); + visibility: hidden; + opacity: 0; + -webkit-transition-timing-function: cubic-bezier(0, 0, 0.2, 1); + transition-timing-function: cubic-bezier(0, 0, 0.2, 1); + -webkit-transition-duration: 0.3s; + transition-duration: 0.3s; + -webkit-transition-property: opacity, visibility, -webkit-transform; + transition-property: opacity, visibility, -webkit-transform; + transition-property: transform, opacity, visibility; + transition-property: transform, opacity, visibility, -webkit-transform; + will-change: transform, opacity, visibility; + -webkit-overflow-scrolling: touch; + -webkit-box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12); + box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12); +} +.mdui-menu .mdui-divider { + margin-top: 8px; + margin-bottom: 8px; +} +/* 打开状态的菜单 */ +.mdui-menu-open { + -webkit-transform: scale(1); + transform: scale(1); + visibility: visible; + opacity: 1; +} +/* 关闭中的菜单 */ +.mdui-menu-closing { + -webkit-transform: scale(1); + transform: scale(1); + visibility: visible; + opacity: 0; +} +/* 菜单项 */ +.mdui-menu-item { + position: relative; +} +.mdui-menu-item > a { + position: relative; + display: block; + height: 48px; + padding: 0 16px; + color: inherit; + line-height: 48px; + text-decoration: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} +.mdui-menu-item > a:hover { + background-color: #EEEEEE; +} +.mdui-menu-item > .mdui-menu { + position: absolute; + -webkit-box-shadow: 0 5px 6px -3px rgba(0, 0, 0, 0.2), 0 9px 12px 1px rgba(0, 0, 0, 0.14), 0 3px 16px 2px rgba(0, 0, 0, 0.12); + box-shadow: 0 5px 6px -3px rgba(0, 0, 0, 0.2), 0 9px 12px 1px rgba(0, 0, 0, 0.14), 0 3px 16px 2px rgba(0, 0, 0, 0.12); +} +.mdui-menu-item[disabled] > a { + color: rgba(0, 0, 0, 0.38) !important; + cursor: default; +} +.mdui-menu-item[disabled] > a:hover { + background-color: inherit !important; +} +.mdui-menu-item[disabled] > a .mdui-icon { + color: rgba(0, 0, 0, 0.26); +} +/* 激活状态的菜单项 */ +.mdui-menu-item-active { + background-color: #EEEEEE; +} +/* 菜单中的图标 */ +.mdui-menu-item-icon { + display: inline-block; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 40px; + padding-right: 16px; + color: rgba(0, 0, 0, 0.54); +} +/* 菜单中的辅助文本或图标 */ +.mdui-menu-item-helper { + float: right; +} +/* 有子菜单的条目的图标 */ +.mdui-menu-item-more { + float: right; + width: 24px; + height: 24px; + margin: 4px 0; + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M9.5 17.5l5-5-5-5z' opacity='.54'/%3E%3C/svg%3E"); +} +/* 级联菜单 */ +.mdui-menu-cascade { + width: 320px; + padding: 16px 0; + overflow: visible; + font-size: 15px; +} +.mdui-menu-cascade > .mdui-menu-item > a { + height: 32px; + padding: 0 24px; + line-height: 32px; +} +/** + * ============================================================================= + * ************ Menu dark ************ + * ============================================================================= + */ +.mdui-theme-layout-dark .mdui-menu { + color: #fff; + background-color: #424242; +} +.mdui-theme-layout-dark .mdui-menu-item > a:hover { + background-color: #616161; +} +.mdui-theme-layout-dark .mdui-menu-item[disabled] > a { + color: rgba(255, 255, 255, 0.5) !important; +} +.mdui-theme-layout-dark .mdui-menu-item[disabled] > a .mdui-icon { + color: rgba(255, 255, 255, 0.3); +} +.mdui-theme-layout-dark .mdui-menu-item-active { + background-color: #616161; +} +.mdui-theme-layout-dark .mdui-menu-item-icon { + color: #ffffff; +} +.mdui-theme-layout-dark .mdui-menu-item-more { + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M9.5 17.5l5-5-5-5z' fill='%23FFF'/%3E%3C/svg%3E"); +} +@media (prefers-color-scheme: dark) { + .mdui-theme-layout-auto .mdui-menu { + color: #fff; + background-color: #424242; + } + .mdui-theme-layout-auto .mdui-menu-item > a:hover { + background-color: #616161; + } + .mdui-theme-layout-auto .mdui-menu-item[disabled] > a { + color: rgba(255, 255, 255, 0.5) !important; + } + .mdui-theme-layout-auto .mdui-menu-item[disabled] > a .mdui-icon { + color: rgba(255, 255, 255, 0.3); + } + .mdui-theme-layout-auto .mdui-menu-item-active { + background-color: #616161; + } + .mdui-theme-layout-auto .mdui-menu-item-icon { + color: #ffffff; + } + .mdui-theme-layout-auto .mdui-menu-item-more { + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M9.5 17.5l5-5-5-5z' fill='%23FFF'/%3E%3C/svg%3E"); + } +} + +/*# sourceMappingURL=mdui.css.map */ diff --git a/mdui.css.map b/mdui.css.map new file mode 100644 index 0000000..09735ff --- /dev/null +++ b/mdui.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["index.css","../node_modules/normalize.css/normalize.css","styles/global.less","styles/mixin/helper.less","styles/mixin/layout-theme.less","styles/variable/shadow.less","styles/mixin/color.less","styles/color.less","styles/helper.less","styles/icon.less","styles/material-icons.less","styles/media.less","styles/mixin/media.less","styles/roboto.less","styles/typo-styles.less","styles/mixin/typo.less","styles/typo.less","styles/grid.less","styles/mixin/shadow.less","styles/shadow.less","components/headroom/index.less","components/collapse/index.less","components/panel/index.less","styles/mixin/divider.less","components/table/index.less","components/divider/index.less","components/ripple/index.less","components/textfield/index.less","components/selection_control/checkbox.less","components/selection_control/radio.less","components/selection_control/switch.less","components/slider/index.less","components/button/index.less","components/fab/index.less","components/select/index.less","components/toolbar/index.less","components/appbar/index.less","components/card/index.less","components/tab/index.less","components/subheader/index.less","components/grid_list/index.less","components/list/index.less","components/drawer/index.less","components/dialog/index.less","components/dialog/alert.less","components/dialog/confirm.less","components/dialog/prompt.less","components/tooltip/index.less","components/snackbar/index.less","components/chip/index.less","components/bottom_nav/index.less","components/progress/progress.less","components/progress/spinner.less","components/menu/index.less"],"names":[],"mappings":"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AAA;EAzCE,yBAAA;ANijBJ;AKpjBC;EC4CC,oCAAA;EAtCE,qCAAA;ANkjBJ;AKxjBC;EC4CC,oCAAA;EAtCE,qCAAA;ANsjBJ;AK5jBC;EC4CC,oCAAA;EAtCE,qCAAA;AN0jBJ;AKhkBC;EC4CC,oCAAA;EAtCE,qCAAA;AN8jBJ;AKpkBC;EC4CC,oCAAA;EAzCE,yBAAA;ANqkBJ;AKxkBC;EC4CC,oCAAA;EAzCE,yBAAA;ANykBJ;AK5kBC;EC4CC,oCAAA;EAzCE,yBAAA;AN6kBJ;AKhlBC;EC4CC,oCAAA;EAzCE,yBAAA;ANilBJ;AKplBC;EC4CC,oCAAA;EAzCE,yBAAA;ANqlBJ;AKxlBC;EC4CC,oCAAA;EAzCE,yBAAA;ANylBJ;AK5lBC;EC4CC,oCAAA;EAzCE,yBAAA;AN6lBJ;AKhmBC;EC4CC,oCAAA;EAtCE,qCAAA;AN8lBJ;AKpmBC;EC4CC,oCAAA;EAtCE,qCAAA;ANkmBJ;AKxmBC;EC4CC,oCAAA;EAtCE,qCAAA;ANsmBJ;AK5mBC;EC4CC,oCAAA;EAzCE,yBAAA;AN6mBJ;AKhnBC;EC4CC,oCAAA;EAzCE,yBAAA;ANinBJ;AKpnBC;EC4CC,oCAAA;EAzCE,yBAAA;ANqnBJ;AKxnBC;EC4CC,oCAAA;EAzCE,yBAAA;ANynBJ;AK5nBC;EC4CC,oCAAA;EAzCE,yBAAA;AN6nBJ;AKhoBC;EC4CC,oCAAA;EAzCE,yBAAA;ANioBJ;AKpoBC;EC4CC,oCAAA;EAzCE,yBAAA;ANqoBJ;AKxoBC;EC4CC,oCAAA;EAtCE,qCAAA;ANsoBJ;AK5oBC;EC4CC,oCAAA;EAtCE,qCAAA;AN0oBJ;AKhpBC;EC4CC,oCAAA;EAtCE,qCAAA;AN8oBJ;AKppBC;EC4CC,oCAAA;EAtCE,qCAAA;ANkpBJ;AKxpBC;EC4CC,oCAAA;EAtCE,qCAAA;ANspBJ;AK5pBC;EC4CC,oCAAA;EAtCE,qCAAA;AN0pBJ;AKhqBC;EC4CC,oCAAA;EAtCE,qCAAA;AN8pBJ;AKpqBC;EC4CC,oCAAA;EAtCE,qCAAA;ANkqBJ;AKxqBC;EC4CC,oCAAA;EAzCE,yBAAA;ANyqBJ;AK5qBC;EC4CC,oCAAA;EAzCE,yBAAA;AN6qBJ;AKhrBC;EC4CC,oCAAA;EAzCE,yBAAA;ANirBJ;AKprBC;EC4CC,oCAAA;EAtCE,qCAAA;ANkrBJ;AKxrBC;EC4CC,oCAAA;EAtCE,qCAAA;ANsrBJ;AK5rBC;EC4CC,oCAAA;EAtCE,qCAAA;AN0rBJ;AKhsBC;EC4CC,oCAAA;EAtCE,qCAAA;AN8rBJ;AKpsBC;EC4CC,oCAAA;EAtCE,qCAAA;ANksBJ;AKxsBC;EC4CC,oCAAA;EAtCE,qCAAA;ANssBJ;AK5sBC;EC4CC,oCAAA;EAtCE,qCAAA;AN0sBJ;AKhtBC;EC4CC,oCAAA;EAzCE,yBAAA;ANitBJ;AKptBC;EC4CC,oCAAA;EAzCE,yBAAA;ANqtBJ;AKxtBC;EC4CC,oCAAA;EAzCE,yBAAA;ANytBJ;AK5tBC;EC4CC,oCAAA;EAzCE,yBAAA;AN6tBJ;AKhuBC;EC4CC,oCAAA;EAzCE,yBAAA;ANiuBJ;AKpuBC;EC4CC,oCAAA;EAtCE,qCAAA;ANkuBJ;AKxuBC;EC4CC,oCAAA;EAtCE,qCAAA;ANsuBJ;AK5uBC;EC4CC,oCAAA;EAtCE,qCAAA;AN0uBJ;AKhvBC;EC4CC,oCAAA;EAzCE,yBAAA;ANivBJ;AKpvBC;EC4CC,oCAAA;EAzCE,yBAAA;ANqvBJ;AKxvBC;EC4CC,oCAAA;EAzCE,yBAAA;ANyvBJ;AK5vBC;EC4CC,oCAAA;EAzCE,yBAAA;AN6vBJ;AKhwBC;EC4CC,oCAAA;EAzCE,yBAAA;ANiwBJ;AKpwBC;EC4CC,oCAAA;EAzCE,yBAAA;ANqwBJ;AKxwBC;EC4CC,oCAAA;EAzCE,yBAAA;ANywBJ;AK5wBC;EC4CC,oCAAA;EAtCE,qCAAA;AN0wBJ;AKhxBC;EC4CC,oCAAA;EAtCE,qCAAA;AN8wBJ;AKpxBC;EC4CC,oCAAA;EAtCE,qCAAA;ANkxBJ;AKxxBC;EC4CC,oCAAA;EAtCE,qCAAA;ANsxBJ;AK5xBC;EC4CC,oCAAA;EAtCE,qCAAA;AN0xBJ;AKhyBC;EC4CC,oCAAA;EAtCE,qCAAA;AN8xBJ;AKpyBC;EC4CC,oCAAA;EAtCE,qCAAA;ANkyBJ;AKxyBC;EC4CC,oCAAA;EAzCE,yBAAA;ANyyBJ;AK5yBC;EC4CC,oCAAA;EAzCE,yBAAA;AN6yBJ;AKhzBC;EC4CC,oCAAA;EAzCE,yBAAA;ANizBJ;AKpzBC;EC4CC,oCAAA;EAzCE,yBAAA;ANqzBJ;AKxzBC;EC4CC,oCAAA;EAtCE,qCAAA;ANszBJ;AK5zBC;EC4CC,oCAAA;EAtCE,qCAAA;AN0zBJ;AKh0BC;EC4CC,oCAAA;EAtCE,qCAAA;AN8zBJ;AKp0BC;EC4CC,oCAAA;EAtCE,qCAAA;ANk0BJ;AKx0BC;EC4CC,oCAAA;EAtCE,qCAAA;ANs0BJ;AK50BC;EC4CC,oCAAA;EAtCE,qCAAA;AN00BJ;AKh1BC;EC4CC,oCAAA;EAtCE,qCAAA;AN80BJ;AKp1BC;EC4CC,oCAAA;EAzCE,yBAAA;ANq1BJ;AKx1BC;EC4CC,oCAAA;EAzCE,yBAAA;ANy1BJ;AK51BC;EC4CC,oCAAA;EAzCE,yBAAA;AN61BJ;AKh2BC;EC4CC,oCAAA;EAzCE,yBAAA;ANi2BJ;AKp2BC;EC4CC,oCAAA;EAzCE,yBAAA;ANq2BJ;AKx2BC;EC4CC,oCAAA;EAtCE,qCAAA;ANs2BJ;AK52BC;EC4CC,oCAAA;EAtCE,qCAAA;AN02BJ;AKh3BC;EC4CC,oCAAA;EAtCE,qCAAA;AN82BJ;AKp3BC;EC4CC,oCAAA;EAzCE,yBAAA;ANq3BJ;AKx3BC;EC4CC,oCAAA;EAzCE,yBAAA;ANy3BJ;AK53BC;EC4CC,oCAAA;EAzCE,yBAAA;AN63BJ;AKh4BC;EC4CC,oCAAA;EAzCE,yBAAA;ANi4BJ;AKp4BC;EC4CC,oCAAA;EAzCE,yBAAA;ANq4BJ;AKx4BC;EC4CC,oCAAA;EAzCE,yBAAA;ANy4BJ;AK54BC;EC4CC,oCAAA;EAzCE,yBAAA;AN64BJ;AKh5BC;EC4CC,oCAAA;EAtCE,qCAAA;AN84BJ;AKp5BC;EC4CC,oCAAA;EAtCE,qCAAA;ANk5BJ;AKx5BC;EC4CC,oCAAA;EAtCE,qCAAA;ANs5BJ;AK55BC;EC4CC,oCAAA;EAtCE,qCAAA;AN05BJ;AKh6BC;EC4CC,oCAAA;EAtCE,qCAAA;AN85BJ;AKp6BC;EC4CC,oCAAA;EAtCE,qCAAA;ANk6BJ;AKx6BC;EC4CC,oCAAA;EAtCE,qCAAA;ANs6BJ;AK56BC;EC4CC,oCAAA;EAtCE,qCAAA;AN06BJ;AKh7BC;EC4CC,oCAAA;EAzCE,yBAAA;ANi7BJ;AKp7BC;EC4CC,oCAAA;EAzCE,yBAAA;ANq7BJ;AKx7BC;EC4CC,oCAAA;EAzCE,yBAAA;ANy7BJ;AK57BC;EC4CC,oCAAA;EAtCE,qCAAA;AN07BJ;AKh8BC;EC4CC,oCAAA;EAtCE,qCAAA;AN87BJ;AKp8BC;EC4CC,oCAAA;EAtCE,qCAAA;ANk8BJ;AKx8BC;EC4CC,oCAAA;EAtCE,qCAAA;ANs8BJ;AK58BC;EC4CC,oCAAA;EAtCE,qCAAA;AN08BJ;AKh9BC;EC4CC,oCAAA;EAtCE,qCAAA;AN88BJ;AKp9BC;EC4CC,oCAAA;EAtCE,qCAAA;ANk9BJ;AKx9BC;EC4CC,oCAAA;EAtCE,qCAAA;ANs9BJ;AK59BC;EC4CC,oCAAA;EAtCE,qCAAA;AN09BJ;AKh+BC;EC4CC,oCAAA;EAzCE,yBAAA;ANi+BJ;AKp+BC;EC4CC,oCAAA;EAzCE,yBAAA;ANq+BJ;AKx+BC;EC4CC,oCAAA;EAtCE,qCAAA;ANs+BJ;AK5+BC;EC4CC,oCAAA;EAtCE,qCAAA;AN0+BJ;AKh/BC;EC4CC,oCAAA;EAtCE,qCAAA;AN8+BJ;AKp/BC;EC4CC,oCAAA;EAtCE,qCAAA;ANk/BJ;AKx/BC;EC4CC,oCAAA;EAtCE,qCAAA;ANs/BJ;AK5/BC;EC4CC,oCAAA;EAtCE,qCAAA;AN0/BJ;AKhgCC;EC4CC,oCAAA;EAtCE,qCAAA;AN8/BJ;AKpgCC;EC4CC,oCAAA;EAtCE,qCAAA;ANkgCJ;AKxgCC;EC4CC,oCAAA;EAtCE,qCAAA;ANsgCJ;AK5gCC;EC4CC,oCAAA;EAtCE,qCAAA;AN0gCJ;AKhhCC;EC4CC,oCAAA;EAzCE,yBAAA;ANihCJ;AKphCC;EC4CC,oCAAA;EAtCE,qCAAA;ANkhCJ;AKxhCC;EC4CC,oCAAA;EAtCE,qCAAA;ANshCJ;AK5hCC;EC4CC,oCAAA;EAtCE,qCAAA;AN0hCJ;AKhiCC;EC4CC,oCAAA;EAtCE,qCAAA;AN8hCJ;AKpiCC;EC4CC,oCAAA;EAtCE,qCAAA;ANkiCJ;AKxiCC;EC4CC,oCAAA;EAtCE,qCAAA;ANsiCJ;AK5iCC;EC4CC,oCAAA;EAtCE,qCAAA;AN0iCJ;AKhjCC;EC4CC,oCAAA;EAtCE,qCAAA;AN8iCJ;AKpjCC;EC4CC,oCAAA;EAtCE,qCAAA;ANkjCJ;AKxjCC;EC4CC,oCAAA;EAtCE,qCAAA;ANsjCJ;AK5jCC;EC4CC,oCAAA;EAzCE,yBAAA;AN6jCJ;AKhkCC;EC4CC,oCAAA;EAzCE,yBAAA;ANikCJ;AKpkCC;EC4CC,oCAAA;EAtCE,qCAAA;ANkkCJ;AKxkCC;EC4CC,oCAAA;EAtCE,qCAAA;ANskCJ;AK5kCC;EC4CC,oCAAA;EAtCE,qCAAA;AN0kCJ;AKhlCC;EC4CC,oCAAA;EAtCE,qCAAA;AN8kCJ;AKplCC;EC4CC,oCAAA;EAzCE,yBAAA;ANqlCJ;AKxlCC;EC4CC,oCAAA;EAzCE,yBAAA;ANylCJ;AK5lCC;EC4CC,oCAAA;EAzCE,yBAAA;AN6lCJ;AKhmCC;EC4CC,oCAAA;EAzCE,yBAAA;ANimCJ;AKpmCC;EC4CC,oCAAA;EAzCE,yBAAA;ANqmCJ;AKxmCC;EC4CC,oCAAA;EAzCE,yBAAA;ANymCJ;AK5mCC;EC4CC,oCAAA;EAzCE,yBAAA;AN6mCJ;AKhnCC;EC4CC,oCAAA;EAtCE,qCAAA;AN8mCJ;AKpnCC;EC4CC,oCAAA;EAtCE,qCAAA;ANknCJ;AKxnCC;EC4CC,oCAAA;EAtCE,qCAAA;ANsnCJ;AK5nCC;EC4CC,oCAAA;EAzCE,yBAAA;AN6nCJ;AKhoCC;EC4CC,oCAAA;EAzCE,yBAAA;ANioCJ;AKpoCC;EC4CC,oCAAA;EAzCE,yBAAA;ANqoCJ;AKxoCC;EC4CC,oCAAA;EAzCE,yBAAA;ANyoCJ;AK5oCC;EC4CC,oCAAA;EAzCE,yBAAA;AN6oCJ;AKhpCC;EC4CC,oCAAA;EAzCE,yBAAA;ANipCJ;AKppCC;EC4CC,oCAAA;EAzCE,yBAAA;ANqpCJ;AKxpCC;EC4CC,oCAAA;EAzCE,yBAAA;ANypCJ;AK5pCC;EC4CC,oCAAA;EAtCE,qCAAA;AN0pCJ;AKhqCC;EC4CC,oCAAA;EAtCE,qCAAA;AN8pCJ;AKpqCC;EC4CC,oCAAA;EAtCE,qCAAA;ANkqCJ;AKxqCC;EC4CC,oCAAA;EAtCE,qCAAA;ANsqCJ;AK5qCC;EC4CC,oCAAA;EAzCE,yBAAA;AN6qCJ;AKhrCC;EC4CC,oCAAA;EAzCE,yBAAA;ANirCJ;AKprCC;EC4CC,oCAAA;EAzCE,yBAAA;ANqrCJ;AKxrCC;EC4CC,oCAAA;EAzCE,yBAAA;ANyrCJ;AK5rCC;EC4CC,oCAAA;EAzCE,yBAAA;AN6rCJ;AKhsCC;EC4CC,oCAAA;EAzCE,yBAAA;ANisCJ;AKpsCC;EC4CC,oCAAA;EAzCE,yBAAA;ANqsCJ;AKxsCC;EC4CC,oCAAA;EAtCE,qCAAA;ANssCJ;AK5sCC;EC4CC,oCAAA;EAtCE,qCAAA;AN0sCJ;AKhtCC;EC4CC,oCAAA;EAtCE,qCAAA;AN8sCJ;AKptCC;EC4CC,oCAAA;EAtCE,qCAAA;ANktCJ;AKxtCC;EC4CC,oCAAA;EAtCE,qCAAA;ANstCJ;AK5tCC;EC4CC,oCAAA;EAzCE,yBAAA;AN6tCJ;AKhuCC;EC4CC,oCAAA;EAzCE,yBAAA;ANiuCJ;AKpuCC;EC4CC,oCAAA;EAzCE,yBAAA;ANquCJ;AKxuCC;EC4CC,oCAAA;EAzCE,yBAAA;ANyuCJ;AK5uCC;EC4CC,oCAAA;EAzCE,yBAAA;AN6uCJ;AKhvCC;EC4CC,oCAAA;EAtCE,qCAAA;AN8uCJ;AKpvCC;EC4CC,oCAAA;EAtCE,qCAAA;ANkvCJ;AKxvCC;EC4CC,oCAAA;EAtCE,qCAAA;ANsvCJ;AK5vCC;EC4CC,oCAAA;EAtCE,qCAAA;AN0vCJ;AKhwCC;EC4CC,oCAAA;EAtCE,qCAAA;AN8vCJ;AKpwCC;EC4CC,oCAAA;EAtCE,qCAAA;ANkwCJ;AKxwCC;EC4CC,oCAAA;EAtCE,qCAAA;ANswCJ;AK5wCC;EC4CC,oCAAA;EAtCE,qCAAA;AN0wCJ;AKhxCC;EC4CC,oCAAA;EAtCE,qCAAA;AN8wCJ;AKpxCC;EC4CC,oCAAA;EAtCE,qCAAA;ANkxCJ;AKxxCC;EC4CC,oCAAA;EAtCE,qCAAA;ANsxCJ;AACA;;;EAGE;AKhyCD;EC4CC,oCAAA;EAtCE,qCAAA;AN8xCJ;AKpyCC;EC4CC,oCAAA;EAtCE,qCAAA;ANkyCJ;AKxyCC;EC4CC,oCAAA;EAtCE,qCAAA;ANsyCJ;AK5yCC;EC4CC,oCAAA;EAtCE,qCAAA;AN0yCJ;AKhzCC;EC4CC,oCAAA;EAtCE,qCAAA;AN8yCJ;AKpzCC;EC4CC,oCAAA;EAzCE,yBAAA;ANqzCJ;AKxzCC;EC4CC,oCAAA;EAtCE,qCAAA;ANszCJ;AK5zCC;EC4CC,oCAAA;EAzCE,yBAAA;AN6zCJ;AKh0CC;EC4CC,oCAAA;EAzCE,yBAAA;ANi0CJ;AKp0CC;EC4CC,oCAAA;EAzCE,yBAAA;ANq0CJ;AKx0CC;EC4CC,oCAAA;EAtCE,qCAAA;ANs0CJ;AK50CC;EC4CC,oCAAA;EAtCE,qCAAA;AN00CJ;AKh1CC;EC4CC,oCAAA;EAtCE,qCAAA;AN80CJ;AKp1CC;EC4CC,oCAAA;EAtCE,qCAAA;ANk1CJ;AKx1CC;EC4CC,oCAAA;EAtCE,qCAAA;ANs1CJ;AK51CC;EC4CC,oCAAA;EAtCE,qCAAA;AN01CJ;AKh2CC;EC4CC,oCAAA;EAtCE,qCAAA;AN81CJ;AKp2CC;EC4CC,oCAAA;EAtCE,qCAAA;ANk2CJ;AKx2CC;EC4CC,oCAAA;EAzCE,yBAAA;ANy2CJ;AK52CC;EC4CC,oCAAA;EAzCE,yBAAA;AN62CJ;AKh3CC;EC4CC,oCAAA;EAzCE,yBAAA;ANi3CJ;AKp3CC;EC4CC,oCAAA;EAtCE,qCAAA;ANk3CJ;AKx3CC;EC4CC,oCAAA;EAzCE,yBAAA;ANy3CJ;AK53CC;EC4CC,oCAAA;EAzCE,yBAAA;AN63CJ;AKh4CC;EC4CC,oCAAA;EAzCE,yBAAA;ANi4CJ;AKp4CC;EC4CC,oCAAA;EAtCE,qCAAA;ANk4CJ;AKx4CC;EC4CC,oCAAA;EAtCE,qCAAA;ANs4CJ;AK54CC;EC4CC,oCAAA;EAtCE,qCAAA;AN04CJ;AKh5CC;EC4CC,oCAAA;EAtCE,qCAAA;AN84CJ;AKp5CC;EC4CC,oCAAA;EAtCE,qCAAA;ANk5CJ;AKx5CC;EC4CC,oCAAA;EAzCE,yBAAA;ANy5CJ;AK55CC;EC4CC,oCAAA;EAtCE,qCAAA;AN05CJ;AKh6CC;EC4CC,oCAAA;EAzCE,yBAAA;ANi6CJ;AKp6CC;EC4CC,oCAAA;EAzCE,yBAAA;ANq6CJ;AKx6CC;EC4CC,oCAAA;EAzCE,yBAAA;ANy6CJ;AK56CC;EC4CC,oCAAA;EAtCE,qCAAA;AN06CJ;AKh7CC;EC4CC,oCAAA;EAtCE,qCAAA;AN86CJ;AKp7CC;EC4CC,oCAAA;EAtCE,qCAAA;ANk7CJ;AKx7CC;EC4CC,oCAAA;EAtCE,qCAAA;ANs7CJ;AK57CC;EC4CC,oCAAA;EAzCE,yBAAA;AN67CJ;AKh8CC;EC4CC,oCAAA;EAtCE,qCAAA;AN87CJ;AKp8CC;EC4CC,oCAAA;EAtCE,qCAAA;ANk8CJ;AKx8CC;EC4CC,oCAAA;EAtCE,qCAAA;ANs8CJ;AK58CC;EC4CC,oCAAA;EAtCE,qCAAA;AN08CJ;AKh9CC;EC4CC,oCAAA;EAtCE,qCAAA;AN88CJ;AKp9CC;EC4CC,oCAAA;EAtCE,qCAAA;ANk9CJ;AKx9CC;EC4CC,oCAAA;EAtCE,qCAAA;ANs9CJ;AK59CC;EC4CC,oCAAA;EAtCE,qCAAA;AN09CJ;AKh+CC;EC4CC,oCAAA;EAtCE,qCAAA;AN89CJ;AKp+CC;EC4CC,oCAAA;EAtCE,qCAAA;ANk+CJ;AKx+CC;EC4CC,oCAAA;EAtCE,qCAAA;ANs+CJ;AK5+CC;EC4CC,oCAAA;EAtCE,qCAAA;AN0+CJ;AKh/CC;EC4CC,oCAAA;EAtCE,qCAAA;AN8+CJ;AKp/CC;EC4CC,oCAAA;EAtCE,qCAAA;ANk/CJ;AKx/CC;EC4CC,oCAAA;EAtCE,qCAAA;ANs/CJ;AK5/CC;EC4CC,oCAAA;EAzCE,yBAAA;AN6/CJ;AKhgDC;EC4CC,oCAAA;EAtCE,qCAAA;AN8/CJ;AKpgDC;EC4CC,oCAAA;EAzCE,yBAAA;ANqgDJ;AKxgDC;EC4CC,oCAAA;EAzCE,yBAAA;ANygDJ;AK5gDC;EC4CC,oCAAA;EAzCE,yBAAA;AN6gDJ;AKhhDC;EC4CC,oCAAA;EAzCE,yBAAA;ANihDJ;AKphDC;EC4CC,oCAAA;EAtCE,qCAAA;ANkhDJ;AKxhDC;EC4CC,oCAAA;EAzCE,yBAAA;ANyhDJ;AK5hDC;EC4CC,oCAAA;EAzCE,yBAAA;AN6hDJ;AKhiDC;EC4CC,oCAAA;EAzCE,yBAAA;ANiiDJ;AKpiDC;EC4CC,oCAAA;EAzCE,yBAAA;ANqiDJ;AKxiDC;EC4CC,oCAAA;EAtCE,qCAAA;ANsiDJ;AK5iDC;EC4CC,oCAAA;EAzCE,yBAAA;AN6iDJ;AKhjDC;EC4CC,oCAAA;EAzCE,yBAAA;ANijDJ;AKpjDC;EC4CC,oCAAA;EAzCE,yBAAA;ANqjDJ;AKxjDC;EC4CC,oCAAA;EAtCE,qCAAA;ANsjDJ;AK5jDC;EC4CC,oCAAA;EAtCE,qCAAA;AN0jDJ;AKhkDC;EC4CC,oCAAA;EAtCE,qCAAA;AN8jDJ;AKpkDC;EC4CC,oCAAA;EAtCE,qCAAA;ANkkDJ;AKxkDC;EC4CC,oCAAA;EAtCE,qCAAA;ANskDJ;AK5kDC;EC4CC,oCAAA;EAtCE,qCAAA;AN0kDJ;AKhlDC;EC4CC,oCAAA;EAtCE,qCAAA;AN8kDJ;AKplDC;EC4CC,oCAAA;EAtCE,qCAAA;ANklDJ;AKxlDC;EC4CC,oCAAA;EAtCE,qCAAA;ANslDJ;AK5lDC;EC4CC,oCAAA;EAtCE,qCAAA;AN0lDJ;AACA;;;EAGE;AKpmDD;EC4CC,oCAAA;EAtCE,qCAAA;ANkmDJ;AKxmDC;EC4CC,oCAAA;EAtCE,qCAAA;ANsmDJ;AK5mDC;EC4CC,oCAAA;EAtCE,qCAAA;AN0mDJ;AKhnDC;EC4CC,oCAAA;EAtCE,qCAAA;AN8mDJ;AKpnDC;EC4CC,oCAAA;EAtCE,qCAAA;ANknDJ;AKxnDC;EC4CC,oCAAA;EAtCE,qCAAA;ANsnDJ;AK5nDC;EC4CC,oCAAA;EAtCE,qCAAA;AN0nDJ;AKhoDC;EC4CC,oCAAA;EAtCE,qCAAA;AN8nDJ;AKpoDC;EC4CC,oCAAA;EAtCE,qCAAA;ANkoDJ;AKxoDC;EC4CC,oCAAA;EAtCE,qCAAA;ANsoDJ;AK5oDC;EC4CC,oCAAA;EAtCE,qCAAA;AN0oDJ;AKhpDC;EC4CC,oCAAA;EAtCE,qCAAA;AN8oDJ;AKppDC;EC4CC,oCAAA;EAtCE,qCAAA;ANkpDJ;AKxpDC;EC4CC,oCAAA;EAtCE,qCAAA;ANspDJ;AK5pDC;EC4CC,oCAAA;EAtCE,qCAAA;AN0pDJ;AKhqDC;EC4CC,oCAAA;EAtCE,qCAAA;AN8pDJ;AKpqDC;EC4CC,oCAAA;EAtCE,qCAAA;ANkqDJ;AKxqDC;EC4CC,oCAAA;EAtCE,qCAAA;ANsqDJ;AK5qDC;EC4CC,oCAAA;EAzCE,yBAAA;AN6qDJ;AKhrDC;EC4CC,oCAAA;EAzCE,yBAAA;ANirDJ;AKprDC;EC4CC,oCAAA;EAzCE,yBAAA;ANqrDJ;AKxrDC;EC4CC,oCAAA;EAzCE,yBAAA;ANyrDJ;AK5rDC;EC4CC,oCAAA;EAzCE,yBAAA;AN6rDJ;AKhsDC;EC4CC,oCAAA;EAtCE,qCAAA;AN8rDJ;AKpsDC;EC4CC,oCAAA;EAtCE,qCAAA;ANksDJ;AKxsDC;EC4CC,oCAAA;EAtCE,qCAAA;ANssDJ;AK5sDC;EC4CC,oCAAA;EAtCE,qCAAA;AN0sDJ;AKhtDC;EC4CC,oCAAA;EAzCE,yBAAA;ANitDJ;AKptDC;EC4CC,oCAAA;EAzCE,yBAAA;ANqtDJ;AKxtDC;EC4CC,oCAAA;EAzCE,yBAAA;ANytDJ;AK5tDC;EC4CC,oCAAA;EAzCE,yBAAA;AN6tDJ;AKhuDC;EC4CC,oCAAA;EAzCE,yBAAA;ANiuDJ;AKpuDC;EC4CC,oCAAA;EAzCE,yBAAA;ANquDJ;AKxuDC;EC4CC,oCAAA;EAzCE,yBAAA;ANyuDJ;AK5uDC;EC4CC,oCAAA;EAtCE,qCAAA;AN0uDJ;AKhvDC;EC4CC,oCAAA;EAtCE,qCAAA;AN8uDJ;AKpvDC;EC4CC,oCAAA;EAtCE,qCAAA;ANkvDJ;AKxvDC;EC4CC,oCAAA;EAzCE,yBAAA;ANyvDJ;AK5vDC;EC4CC,oCAAA;EAzCE,yBAAA;AN6vDJ;AKhwDC;EC4CC,oCAAA;EAzCE,yBAAA;ANiwDJ;AKpwDC;EC4CC,oCAAA;EAzCE,yBAAA;ANqwDJ;AKxwDC;EC4CC,oCAAA;EAzCE,yBAAA;ANywDJ;AK5wDC;EC4CC,oCAAA;EAzCE,yBAAA;AN6wDJ;AKhxDC;EC4CC,oCAAA;EAzCE,yBAAA;ANixDJ;AKpxDC;EC4CC,oCAAA;EAtCE,qCAAA;ANkxDJ;AKxxDC;EC4CC,oCAAA;EAtCE,qCAAA;ANsxDJ;AK5xDC;EC4CC,oCAAA;EAtCE,qCAAA;AN0xDJ;AKhyDC;EC4CC,oCAAA;EAtCE,qCAAA;AN8xDJ;AKpyDC;EC4CC,oCAAA;EAtCE,qCAAA;ANkyDJ;AKxyDC;EC4CC,oCAAA;EAtCE,qCAAA;ANsyDJ;AK5yDC;EC4CC,oCAAA;EAtCE,qCAAA;AN0yDJ;AKhzDC;EC4CC,oCAAA;EAtCE,qCAAA;AN8yDJ;AKpzDC;EC4CC,oCAAA;EAzCE,yBAAA;ANqzDJ;AKxzDC;EC4CC,oCAAA;EAzCE,yBAAA;ANyzDJ;AK5zDC;EC4CC,oCAAA;EAzCE,yBAAA;AN6zDJ;AKh0DC;EC4CC,oCAAA;EAtCE,qCAAA;AN8zDJ;AKp0DC;EC4CC,oCAAA;EAtCE,qCAAA;ANk0DJ;AKx0DC;EC4CC,oCAAA;EAtCE,qCAAA;ANs0DJ;AK50DC;EC4CC,oCAAA;EAtCE,qCAAA;AN00DJ;AKh1DC;EC4CC,oCAAA;EAtCE,qCAAA;AN80DJ;AKp1DC;EC4CC,oCAAA;EAtCE,qCAAA;ANk1DJ;AKx1DC;EC4CC,oCAAA;EAtCE,qCAAA;ANs1DJ;AK51DC;EC4CC,oCAAA;EAzCE,yBAAA;AN61DJ;AKh2DC;EC4CC,oCAAA;EAzCE,yBAAA;ANi2DJ;AKp2DC;EC4CC,oCAAA;EAzCE,yBAAA;ANq2DJ;AKx2DC;EC4CC,oCAAA;EAzCE,yBAAA;ANy2DJ;AK52DC;EC4CC,oCAAA;EAzCE,yBAAA;AN62DJ;AKh3DC;EC4CC,oCAAA;EAtCE,qCAAA;AN82DJ;AKp3DC;EC4CC,oCAAA;EAtCE,qCAAA;ANk3DJ;AKx3DC;EC4CC,oCAAA;EAtCE,qCAAA;ANs3DJ;AK53DC;EC4CC,oCAAA;EAzCE,yBAAA;AN63DJ;AKh4DC;EC4CC,oCAAA;EAzCE,yBAAA;ANi4DJ;AKp4DC;EC4CC,oCAAA;EAzCE,yBAAA;ANq4DJ;AKx4DC;EC4CC,oCAAA;EAzCE,yBAAA;ANy4DJ;AK54DC;EC4CC,oCAAA;EAzCE,yBAAA;AN64DJ;AKh5DC;EC4CC,oCAAA;EAzCE,yBAAA;ANi5DJ;AKp5DC;EC4CC,oCAAA;EAzCE,yBAAA;ANq5DJ;AKx5DC;EC4CC,oCAAA;EAtCE,qCAAA;ANs5DJ;AK55DC;EC4CC,oCAAA;EAtCE,qCAAA;AN05DJ;AKh6DC;EC4CC,oCAAA;EAtCE,qCAAA;AN85DJ;AKp6DC;EC4CC,oCAAA;EAtCE,qCAAA;ANk6DJ;AKx6DC;EC4CC,oCAAA;EAtCE,qCAAA;ANs6DJ;AK56DC;EC4CC,oCAAA;EAtCE,qCAAA;AN06DJ;AKh7DC;EC4CC,oCAAA;EAtCE,qCAAA;AN86DJ;AKp7DC;EC4CC,oCAAA;EAzCE,yBAAA;ANq7DJ;AKx7DC;EC4CC,oCAAA;EAzCE,yBAAA;ANy7DJ;AK57DC;EC4CC,oCAAA;EAzCE,yBAAA;AN67DJ;AKh8DC;EC4CC,oCAAA;EAzCE,yBAAA;ANi8DJ;AKp8DC;EC4CC,oCAAA;EAtCE,qCAAA;ANk8DJ;AKx8DC;EC4CC,oCAAA;EAtCE,qCAAA;ANs8DJ;AK58DC;EC4CC,oCAAA;EAtCE,qCAAA;AN08DJ;AKh9DC;EC4CC,oCAAA;EAtCE,qCAAA;AN88DJ;AKp9DC;EC4CC,oCAAA;EAtCE,qCAAA;ANk9DJ;AKx9DC;EC4CC,oCAAA;EAtCE,qCAAA;ANs9DJ;AK59DC;EC4CC,oCAAA;EAtCE,qCAAA;AN09DJ;AKh+DC;EC4CC,oCAAA;EAzCE,yBAAA;ANi+DJ;AKp+DC;EC4CC,oCAAA;EAzCE,yBAAA;ANq+DJ;AKx+DC;EC4CC,oCAAA;EAzCE,yBAAA;ANy+DJ;AK5+DC;EC4CC,oCAAA;EAzCE,yBAAA;AN6+DJ;AKh/DC;EC4CC,oCAAA;EAzCE,yBAAA;ANi/DJ;AKp/DC;EC4CC,oCAAA;EAtCE,qCAAA;ANk/DJ;AKx/DC;EC4CC,oCAAA;EAtCE,qCAAA;ANs/DJ;AK5/DC;EC4CC,oCAAA;EAtCE,qCAAA;AN0/DJ;AKhgEC;EC4CC,oCAAA;EAzCE,yBAAA;ANigEJ;AKpgEC;EC4CC,oCAAA;EAzCE,yBAAA;ANqgEJ;AKxgEC;EC4CC,oCAAA;EAzCE,yBAAA;ANygEJ;AK5gEC;EC4CC,oCAAA;EAzCE,yBAAA;AN6gEJ;AKhhEC;EC4CC,oCAAA;EAzCE,yBAAA;ANihEJ;AKphEC;EC4CC,oCAAA;EAzCE,yBAAA;ANqhEJ;AKxhEC;EC4CC,oCAAA;EAzCE,yBAAA;ANyhEJ;AK5hEC;EC4CC,oCAAA;EAtCE,qCAAA;AN0hEJ;AKhiEC;EC4CC,oCAAA;EAtCE,qCAAA;AN8hEJ;AKpiEC;EC4CC,oCAAA;EAtCE,qCAAA;ANkiEJ;AKxiEC;EC4CC,oCAAA;EAtCE,qCAAA;ANsiEJ;AK5iEC;EC4CC,oCAAA;EAtCE,qCAAA;AN0iEJ;AKhjEC;EC4CC,oCAAA;EAtCE,qCAAA;AN8iEJ;AKpjEC;EC4CC,oCAAA;EAtCE,qCAAA;ANkjEJ;AKxjEC;EC4CC,oCAAA;EAtCE,qCAAA;ANsjEJ;AK5jEC;EC4CC,oCAAA;EAzCE,yBAAA;AN6jEJ;AKhkEC;EC4CC,oCAAA;EAzCE,yBAAA;ANikEJ;AKpkEC;EC4CC,oCAAA;EAzCE,yBAAA;ANqkEJ;AKxkEC;EC4CC,oCAAA;EAtCE,qCAAA;ANskEJ;AK5kEC;EC4CC,oCAAA;EAtCE,qCAAA;AN0kEJ;AKhlEC;EC4CC,oCAAA;EAtCE,qCAAA;AN8kEJ;AKplEC;EC4CC,oCAAA;EAtCE,qCAAA;ANklEJ;AKxlEC;EC4CC,oCAAA;EAtCE,qCAAA;ANslEJ;AK5lEC;EC4CC,oCAAA;EAtCE,qCAAA;AN0lEJ;AKhmEC;EC4CC,oCAAA;EAtCE,qCAAA;AN8lEJ;AKpmEC;EC4CC,oCAAA;EAtCE,qCAAA;ANkmEJ;AKxmEC;EC4CC,oCAAA;EAtCE,qCAAA;ANsmEJ;AK5mEC;EC4CC,oCAAA;EAzCE,yBAAA;AN6mEJ;AKhnEC;EC4CC,oCAAA;EAzCE,yBAAA;ANinEJ;AKpnEC;EC4CC,oCAAA;EAtCE,qCAAA;ANknEJ;AKxnEC;EC4CC,oCAAA;EAtCE,qCAAA;ANsnEJ;AK5nEC;EC4CC,oCAAA;EAtCE,qCAAA;AN0nEJ;AKhoEC;EC4CC,oCAAA;EAtCE,qCAAA;AN8nEJ;AKpoEC;EC4CC,oCAAA;EAtCE,qCAAA;ANkoEJ;AKxoEC;EC4CC,oCAAA;EAtCE,qCAAA;ANsoEJ;AK5oEC;EC4CC,oCAAA;EAtCE,qCAAA;AN0oEJ;AKhpEC;EC4CC,oCAAA;EAtCE,qCAAA;AN8oEJ;AKppEC;EC4CC,oCAAA;EAtCE,qCAAA;ANkpEJ;AKxpEC;EC4CC,oCAAA;EAtCE,qCAAA;ANspEJ;AK5pEC;EC4CC,oCAAA;EAzCE,yBAAA;AN6pEJ;AKhqEC;EC4CC,oCAAA;EAtCE,qCAAA;AN8pEJ;AKpqEC;EC4CC,oCAAA;EAtCE,qCAAA;ANkqEJ;AKxqEC;EC4CC,oCAAA;EAtCE,qCAAA;ANsqEJ;AK5qEC;EC4CC,oCAAA;EAtCE,qCAAA;AN0qEJ;AKhrEC;EC4CC,oCAAA;EAtCE,qCAAA;AN8qEJ;AKprEC;EC4CC,oCAAA;EAtCE,qCAAA;ANkrEJ;AKxrEC;EC4CC,oCAAA;EAtCE,qCAAA;ANsrEJ;AK5rEC;EC4CC,oCAAA;EAtCE,qCAAA;AN0rEJ;AKhsEC;EC4CC,oCAAA;EAtCE,qCAAA;AN8rEJ;AKpsEC;EC4CC,oCAAA;EAtCE,qCAAA;ANksEJ;AKxsEC;EC4CC,oCAAA;EAzCE,yBAAA;ANysEJ;AK5sEC;EC4CC,oCAAA;EAzCE,yBAAA;AN6sEJ;AKhtEC;EC4CC,oCAAA;EAtCE,qCAAA;AN8sEJ;AKptEC;EC4CC,oCAAA;EAtCE,qCAAA;ANktEJ;AKxtEC;EC4CC,oCAAA;EAtCE,qCAAA;ANstEJ;AK5tEC;EC4CC,oCAAA;EAtCE,qCAAA;AN0tEJ;AKhuEC;EC4CC,oCAAA;EAzCE,yBAAA;ANiuEJ;AKpuEC;EC4CC,oCAAA;EAzCE,yBAAA;ANquEJ;AKxuEC;EC4CC,oCAAA;EAzCE,yBAAA;ANyuEJ;AK5uEC;EC4CC,oCAAA;EAzCE,yBAAA;AN6uEJ;AKhvEC;EC4CC,oCAAA;EAzCE,yBAAA;ANivEJ;AKpvEC;EC4CC,oCAAA;EAzCE,yBAAA;ANqvEJ;AKxvEC;EC4CC,oCAAA;EAzCE,yBAAA;ANyvEJ;AK5vEC;EC4CC,oCAAA;EAtCE,qCAAA;AN0vEJ;AKhwEC;EC4CC,oCAAA;EAtCE,qCAAA;AN8vEJ;AKpwEC;EC4CC,oCAAA;EAtCE,qCAAA;ANkwEJ;AKxwEC;EC4CC,oCAAA;EAzCE,yBAAA;ANywEJ;AK5wEC;EC4CC,oCAAA;EAzCE,yBAAA;AN6wEJ;AKhxEC;EC4CC,oCAAA;EAzCE,yBAAA;ANixEJ;AKpxEC;EC4CC,oCAAA;EAzCE,yBAAA;ANqxEJ;AKxxEC;EC4CC,oCAAA;EAzCE,yBAAA;ANyxEJ;AK5xEC;EC4CC,oCAAA;EAzCE,yBAAA;AN6xEJ;AKhyEC;EC4CC,oCAAA;EAzCE,yBAAA;ANiyEJ;AKpyEC;EC4CC,oCAAA;EAzCE,yBAAA;ANqyEJ;AKxyEC;EC4CC,oCAAA;EAtCE,qCAAA;ANsyEJ;AK5yEC;EC4CC,oCAAA;EAtCE,qCAAA;AN0yEJ;AKhzEC;EC4CC,oCAAA;EAtCE,qCAAA;AN8yEJ;AKpzEC;EC4CC,oCAAA;EAtCE,qCAAA;ANkzEJ;AKxzEC;EC4CC,oCAAA;EAzCE,yBAAA;ANyzEJ;AK5zEC;EC4CC,oCAAA;EAzCE,yBAAA;AN6zEJ;AKh0EC;EC4CC,oCAAA;EAzCE,yBAAA;ANi0EJ;AKp0EC;EC4CC,oCAAA;EAzCE,yBAAA;ANq0EJ;AKx0EC;EC4CC,oCAAA;EAzCE,yBAAA;ANy0EJ;AK50EC;EC4CC,oCAAA;EAzCE,yBAAA;AN60EJ;AKh1EC;EC4CC,oCAAA;EAzCE,yBAAA;ANi1EJ;AKp1EC;EC4CC,oCAAA;EAtCE,qCAAA;ANk1EJ;AKx1EC;EC4CC,oCAAA;EAtCE,qCAAA;ANs1EJ;AK51EC;EC4CC,oCAAA;EAtCE,qCAAA;AN01EJ;AKh2EC;EC4CC,oCAAA;EAtCE,qCAAA;AN81EJ;AKp2EC;EC4CC,oCAAA;EAtCE,qCAAA;ANk2EJ;AKx2EC;EC4CC,oCAAA;EAzCE,yBAAA;ANy2EJ;AK52EC;EC4CC,oCAAA;EAzCE,yBAAA;AN62EJ;AKh3EC;EC4CC,oCAAA;EAzCE,yBAAA;ANi3EJ;AKp3EC;EC4CC,oCAAA;EAzCE,yBAAA;ANq3EJ;AKx3EC;EC4CC,oCAAA;EAzCE,yBAAA;ANy3EJ;AK53EC;EC4CC,oCAAA;EAtCE,qCAAA;AN03EJ;AKh4EC;EC4CC,oCAAA;EAtCE,qCAAA;AN83EJ;AKp4EC;EC4CC,oCAAA;EAtCE,qCAAA;ANk4EJ;AKx4EC;EC4CC,oCAAA;EAtCE,qCAAA;ANs4EJ;AK54EC;EC4CC,oCAAA;EAtCE,qCAAA;AN04EJ;AKh5EC;EC4CC,oCAAA;EAtCE,qCAAA;AN84EJ;AKp5EC;EC4CC,oCAAA;EAtCE,qCAAA;ANk5EJ;AKx5EC;EC4CC,oCAAA;EAtCE,qCAAA;ANs5EJ;AK55EC;EC4CC,oCAAA;EAtCE,qCAAA;AN05EJ;AKh6EC;EC4CC,oCAAA;EAtCE,qCAAA;AN85EJ;AKp6EC;EC4CC,oCAAA;EAtCE,qCAAA;ANk6EJ;AACA;;;EAGE;AK56ED;EC4CC,oCAAA;EAtCE,qCAAA;AN06EJ;AKh7EC;EC4CC,oCAAA;EAtCE,qCAAA;AN86EJ;AKp7EC;EC4CC,oCAAA;EAtCE,qCAAA;ANk7EJ;AKx7EC;EC4CC,oCAAA;EAtCE,qCAAA;ANs7EJ;AK57EC;EC4CC,oCAAA;EAtCE,qCAAA;AN07EJ;AKh8EC;EC4CC,oCAAA;EAzCE,yBAAA;ANi8EJ;AKp8EC;EC4CC,oCAAA;EAtCE,qCAAA;ANk8EJ;AKx8EC;EC4CC,oCAAA;EAzCE,yBAAA;ANy8EJ;AK58EC;EC4CC,oCAAA;EAzCE,yBAAA;AN68EJ;AKh9EC;EC4CC,oCAAA;EAzCE,yBAAA;ANi9EJ;AKp9EC;EC4CC,oCAAA;EAtCE,qCAAA;ANk9EJ;AKx9EC;EC4CC,oCAAA;EAtCE,qCAAA;ANs9EJ;AK59EC;EC4CC,oCAAA;EAtCE,qCAAA;AN09EJ;AKh+EC;EC4CC,oCAAA;EAtCE,qCAAA;AN89EJ;AKp+EC;EC4CC,oCAAA;EAtCE,qCAAA;ANk+EJ;AKx+EC;EC4CC,oCAAA;EAtCE,qCAAA;ANs+EJ;AK5+EC;EC4CC,oCAAA;EAtCE,qCAAA;AN0+EJ;AKh/EC;EC4CC,oCAAA;EAtCE,qCAAA;AN8+EJ;AKp/EC;EC4CC,oCAAA;EAzCE,yBAAA;ANq/EJ;AKx/EC;EC4CC,oCAAA;EAzCE,yBAAA;ANy/EJ;AK5/EC;EC4CC,oCAAA;EAzCE,yBAAA;AN6/EJ;AKhgFC;EC4CC,oCAAA;EAtCE,qCAAA;AN8/EJ;AKpgFC;EC4CC,oCAAA;EAzCE,yBAAA;ANqgFJ;AKxgFC;EC4CC,oCAAA;EAzCE,yBAAA;ANygFJ;AK5gFC;EC4CC,oCAAA;EAzCE,yBAAA;AN6gFJ;AKhhFC;EC4CC,oCAAA;EAtCE,qCAAA;AN8gFJ;AKphFC;EC4CC,oCAAA;EAtCE,qCAAA;ANkhFJ;AKxhFC;EC4CC,oCAAA;EAtCE,qCAAA;ANshFJ;AK5hFC;EC4CC,oCAAA;EAtCE,qCAAA;AN0hFJ;AKhiFC;EC4CC,oCAAA;EAtCE,qCAAA;AN8hFJ;AKpiFC;EC4CC,oCAAA;EAzCE,yBAAA;ANqiFJ;AKxiFC;EC4CC,oCAAA;EAtCE,qCAAA;ANsiFJ;AK5iFC;EC4CC,oCAAA;EAzCE,yBAAA;AN6iFJ;AKhjFC;EC4CC,oCAAA;EAzCE,yBAAA;ANijFJ;AKpjFC;EC4CC,oCAAA;EAzCE,yBAAA;ANqjFJ;AKxjFC;EC4CC,oCAAA;EAtCE,qCAAA;ANsjFJ;AK5jFC;EC4CC,oCAAA;EAtCE,qCAAA;AN0jFJ;AKhkFC;EC4CC,oCAAA;EAtCE,qCAAA;AN8jFJ;AKpkFC;EC4CC,oCAAA;EAtCE,qCAAA;ANkkFJ;AKxkFC;EC4CC,oCAAA;EAzCE,yBAAA;ANykFJ;AK5kFC;EC4CC,oCAAA;EAtCE,qCAAA;AN0kFJ;AKhlFC;EC4CC,oCAAA;EAtCE,qCAAA;AN8kFJ;AKplFC;EC4CC,oCAAA;EAtCE,qCAAA;ANklFJ;AKxlFC;EC4CC,oCAAA;EAtCE,qCAAA;ANslFJ;AK5lFC;EC4CC,oCAAA;EAtCE,qCAAA;AN0lFJ;AKhmFC;EC4CC,oCAAA;EAtCE,qCAAA;AN8lFJ;AKpmFC;EC4CC,oCAAA;EAtCE,qCAAA;ANkmFJ;AKxmFC;EC4CC,oCAAA;EAtCE,qCAAA;ANsmFJ;AK5mFC;EC4CC,oCAAA;EAtCE,qCAAA;AN0mFJ;AKhnFC;EC4CC,oCAAA;EAtCE,qCAAA;AN8mFJ;AKpnFC;EC4CC,oCAAA;EAtCE,qCAAA;ANknFJ;AKxnFC;EC4CC,oCAAA;EAtCE,qCAAA;ANsnFJ;AK5nFC;EC4CC,oCAAA;EAtCE,qCAAA;AN0nFJ;AKhoFC;EC4CC,oCAAA;EAtCE,qCAAA;AN8nFJ;AKpoFC;EC4CC,oCAAA;EAtCE,qCAAA;ANkoFJ;AKxoFC;EC4CC,oCAAA;EAzCE,yBAAA;ANyoFJ;AK5oFC;EC4CC,oCAAA;EAtCE,qCAAA;AN0oFJ;AKhpFC;EC4CC,oCAAA;EAzCE,yBAAA;ANipFJ;AKppFC;EC4CC,oCAAA;EAzCE,yBAAA;ANqpFJ;AKxpFC;EC4CC,oCAAA;EAzCE,yBAAA;ANypFJ;AK5pFC;EC4CC,oCAAA;EAzCE,yBAAA;AN6pFJ;AKhqFC;EC4CC,oCAAA;EAtCE,qCAAA;AN8pFJ;AKpqFC;EC4CC,oCAAA;EAzCE,yBAAA;ANqqFJ;AKxqFC;EC4CC,oCAAA;EAzCE,yBAAA;ANyqFJ;AK5qFC;EC4CC,oCAAA;EAzCE,yBAAA;AN6qFJ;AKhrFC;EC4CC,oCAAA;EAzCE,yBAAA;ANirFJ;AKprFC;EC4CC,oCAAA;EAtCE,qCAAA;ANkrFJ;AKxrFC;EC4CC,oCAAA;EAzCE,yBAAA;ANyrFJ;AK5rFC;EC4CC,oCAAA;EAzCE,yBAAA;AN6rFJ;AKhsFC;EC4CC,oCAAA;EAzCE,yBAAA;ANisFJ;AKpsFC;EC4CC,oCAAA;EAtCE,qCAAA;ANksFJ;AKxsFC;EC4CC,oCAAA;EAtCE,qCAAA;ANssFJ;AK5sFC;EC4CC,oCAAA;EAtCE,qCAAA;AN0sFJ;AKhtFC;EC4CC,oCAAA;EAtCE,qCAAA;AN8sFJ;AKptFC;EC4CC,oCAAA;EAtCE,qCAAA;ANktFJ;AKxtFC;EC4CC,oCAAA;EAtCE,qCAAA;ANstFJ;AK5tFC;EC4CC,oCAAA;EAtCE,qCAAA;AN0tFJ;AKhuFC;EC4CC,oCAAA;EAtCE,qCAAA;AN8tFJ;AKpuFC;EC4CC,oCAAA;EAtCE,qCAAA;ANkuFJ;AKxuFC;EC4CC,oCAAA;EAtCE,qCAAA;ANsuFJ;AACA;;;;EAIE;AOrlFF;EACE,yBAAA;EACA,oCAAA;APulFF;AOplFA;EACE,qCAAA;EACA,oCAAA;APslFF;AOnlFA;EACE,wCAAA;APqlFF;AACA;;;EAGE;AKhwFD;EC4DG,yBAAA;ANusFJ;AKnwFC;EC4DG,yBAAA;AN0sFJ;AKtwFC;EC4DG,yBAAA;AN6sFJ;AKzwFC;EC4DG,yBAAA;ANgtFJ;AK5wFC;EC4DG,yBAAA;ANmtFJ;AK/wFC;EC4DG,yBAAA;ANstFJ;AKlxFC;EC4DG,yBAAA;ANytFJ;AKrxFC;EC4DG,yBAAA;AN4tFJ;AKxxFC;EC4DG,yBAAA;AN+tFJ;AK3xFC;EC4DG,yBAAA;ANkuFJ;AK9xFC;EC4DG,yBAAA;ANquFJ;AKjyFC;EC4DG,yBAAA;ANwuFJ;AKpyFC;EC4DG,yBAAA;AN2uFJ;AKvyFC;EC4DG,yBAAA;AN8uFJ;AK1yFC;EC4DG,yBAAA;ANivFJ;AK7yFC;EC4DG,yBAAA;ANovFJ;AKhzFC;EC4DG,yBAAA;ANuvFJ;AKnzFC;EC4DG,yBAAA;AN0vFJ;AKtzFC;EC4DG,yBAAA;AN6vFJ;AKzzFC;EC4DG,yBAAA;ANgwFJ;AK5zFC;EC4DG,yBAAA;ANmwFJ;AK/zFC;EC4DG,yBAAA;ANswFJ;AKl0FC;EC4DG,yBAAA;ANywFJ;AKr0FC;EC4DG,yBAAA;AN4wFJ;AKx0FC;EC4DG,yBAAA;AN+wFJ;AK30FC;EC4DG,yBAAA;ANkxFJ;AK90FC;EC4DG,yBAAA;ANqxFJ;AKj1FC;EC4DG,yBAAA;ANwxFJ;AKp1FC;EC4DG,yBAAA;AN2xFJ;AKv1FC;EC4DG,yBAAA;AN8xFJ;AK11FC;EC4DG,yBAAA;ANiyFJ;AK71FC;EC4DG,yBAAA;ANoyFJ;AKh2FC;EC4DG,yBAAA;ANuyFJ;AKn2FC;EC4DG,yBAAA;AN0yFJ;AKt2FC;EC4DG,yBAAA;AN6yFJ;AKz2FC;EC4DG,yBAAA;ANgzFJ;AK52FC;EC4DG,yBAAA;ANmzFJ;AK/2FC;EC4DG,yBAAA;ANszFJ;AKl3FC;EC4DG,yBAAA;ANyzFJ;AKr3FC;EC4DG,yBAAA;AN4zFJ;AKx3FC;EC4DG,yBAAA;AN+zFJ;AK33FC;EC4DG,yBAAA;ANk0FJ;AK93FC;EC4DG,yBAAA;ANq0FJ;AKj4FC;EC4DG,yBAAA;ANw0FJ;AKp4FC;EC4DG,yBAAA;AN20FJ;AKv4FC;EC4DG,yBAAA;AN80FJ;AK14FC;EC4DG,yBAAA;ANi1FJ;AK74FC;EC4DG,yBAAA;ANo1FJ;AKh5FC;EC4DG,yBAAA;ANu1FJ;AKn5FC;EC4DG,yBAAA;AN01FJ;AKt5FC;EC4DG,yBAAA;AN61FJ;AKz5FC;EC4DG,yBAAA;ANg2FJ;AK55FC;EC4DG,yBAAA;ANm2FJ;AK/5FC;EC4DG,yBAAA;ANs2FJ;AKl6FC;EC4DG,yBAAA;ANy2FJ;AKr6FC;EC4DG,yBAAA;AN42FJ;AKx6FC;EC4DG,yBAAA;AN+2FJ;AK36FC;EC4DG,yBAAA;ANk3FJ;AK96FC;EC4DG,yBAAA;ANq3FJ;AKj7FC;EC4DG,yBAAA;ANw3FJ;AKp7FC;EC4DG,yBAAA;AN23FJ;AKv7FC;EC4DG,yBAAA;AN83FJ;AK17FC;EC4DG,yBAAA;ANi4FJ;AK77FC;EC4DG,yBAAA;ANo4FJ;AKh8FC;EC4DG,yBAAA;ANu4FJ;AKn8FC;EC4DG,yBAAA;AN04FJ;AKt8FC;EC4DG,yBAAA;AN64FJ;AKz8FC;EC4DG,yBAAA;ANg5FJ;AK58FC;EC4DG,yBAAA;ANm5FJ;AK/8FC;EC4DG,yBAAA;ANs5FJ;AKl9FC;EC4DG,yBAAA;ANy5FJ;AKr9FC;EC4DG,yBAAA;AN45FJ;AKx9FC;EC4DG,yBAAA;AN+5FJ;AK39FC;EC4DG,yBAAA;ANk6FJ;AK99FC;EC4DG,yBAAA;ANq6FJ;AKj+FC;EC4DG,yBAAA;ANw6FJ;AKp+FC;EC4DG,yBAAA;AN26FJ;AKv+FC;EC4DG,yBAAA;AN86FJ;AK1+FC;EC4DG,yBAAA;ANi7FJ;AK7+FC;EC4DG,yBAAA;ANo7FJ;AKh/FC;EC4DG,yBAAA;ANu7FJ;AKn/FC;EC4DG,yBAAA;AN07FJ;AKt/FC;EC4DG,yBAAA;AN67FJ;AKz/FC;EC4DG,yBAAA;ANg8FJ;AK5/FC;EC4DG,yBAAA;ANm8FJ;AK//FC;EC4DG,yBAAA;ANs8FJ;AKlgGC;EC4DG,yBAAA;ANy8FJ;AKrgGC;EC4DG,yBAAA;AN48FJ;AKxgGC;EC4DG,yBAAA;AN+8FJ;AK3gGC;EC4DG,yBAAA;ANk9FJ;AK9gGC;EC4DG,yBAAA;ANq9FJ;AKjhGC;EC4DG,yBAAA;ANw9FJ;AKphGC;EC4DG,yBAAA;AN29FJ;AKvhGC;EC4DG,yBAAA;AN89FJ;AK1hGC;EC4DG,yBAAA;ANi+FJ;AK7hGC;EC4DG,yBAAA;ANo+FJ;AKhiGC;EC4DG,yBAAA;ANu+FJ;AKniGC;EC4DG,yBAAA;AN0+FJ;AKtiGC;EC4DG,yBAAA;AN6+FJ;AKziGC;EC4DG,yBAAA;ANg/FJ;AK5iGC;EC4DG,yBAAA;ANm/FJ;AK/iGC;EC4DG,yBAAA;ANs/FJ;AKljGC;EC4DG,yBAAA;ANy/FJ;AKrjGC;EC4DG,yBAAA;AN4/FJ;AKxjGC;EC4DG,yBAAA;AN+/FJ;AK3jGC;EC4DG,yBAAA;ANkgGJ;AK9jGC;EC4DG,yBAAA;ANqgGJ;AKjkGC;EC4DG,yBAAA;ANwgGJ;AKpkGC;EC4DG,yBAAA;AN2gGJ;AKvkGC;EC4DG,yBAAA;AN8gGJ;AK1kGC;EC4DG,yBAAA;ANihGJ;AK7kGC;EC4DG,yBAAA;ANohGJ;AKhlGC;EC4DG,yBAAA;ANuhGJ;AKnlGC;EC4DG,yBAAA;AN0hGJ;AKtlGC;EC4DG,yBAAA;AN6hGJ;AKzlGC;EC4DG,yBAAA;ANgiGJ;AK5lGC;EC4DG,yBAAA;ANmiGJ;AK/lGC;EC4DG,yBAAA;ANsiGJ;AKlmGC;EC4DG,yBAAA;ANyiGJ;AKrmGC;EC4DG,yBAAA;AN4iGJ;AKxmGC;EC4DG,yBAAA;AN+iGJ;AK3mGC;EC4DG,yBAAA;ANkjGJ;AK9mGC;EC4DG,yBAAA;ANqjGJ;AKjnGC;EC4DG,yBAAA;ANwjGJ;AKpnGC;EC4DG,yBAAA;AN2jGJ;AKvnGC;EC4DG,yBAAA;AN8jGJ;AK1nGC;EC4DG,yBAAA;ANikGJ;AK7nGC;EC4DG,yBAAA;ANokGJ;AKhoGC;EC4DG,yBAAA;ANukGJ;AKnoGC;EC4DG,yBAAA;AN0kGJ;AKtoGC;EC4DG,yBAAA;AN6kGJ;AKzoGC;EC4DG,yBAAA;ANglGJ;AK5oGC;EC4DG,yBAAA;ANmlGJ;AK/oGC;EC4DG,yBAAA;ANslGJ;AKlpGC;EC4DG,yBAAA;ANylGJ;AKrpGC;EC4DG,yBAAA;AN4lGJ;AKxpGC;EC4DG,yBAAA;AN+lGJ;AK3pGC;EC4DG,yBAAA;ANkmGJ;AK9pGC;EC4DG,yBAAA;ANqmGJ;AKjqGC;EC4DG,yBAAA;ANwmGJ;AKpqGC;EC4DG,yBAAA;AN2mGJ;AKvqGC;EC4DG,yBAAA;AN8mGJ;AK1qGC;EC4DG,yBAAA;ANinGJ;AK7qGC;EC4DG,yBAAA;ANonGJ;AKhrGC;EC4DG,yBAAA;ANunGJ;AKnrGC;EC4DG,yBAAA;AN0nGJ;AKtrGC;EC4DG,yBAAA;AN6nGJ;AKzrGC;EC4DG,yBAAA;ANgoGJ;AK5rGC;EC4DG,yBAAA;ANmoGJ;AK/rGC;EC4DG,yBAAA;ANsoGJ;AKlsGC;EC4DG,yBAAA;ANyoGJ;AKrsGC;EC4DG,yBAAA;AN4oGJ;AKxsGC;EC4DG,yBAAA;AN+oGJ;AK3sGC;EC4DG,yBAAA;ANkpGJ;AK9sGC;EC4DG,yBAAA;ANqpGJ;AKjtGC;EC4DG,yBAAA;ANwpGJ;AKptGC;EC4DG,yBAAA;AN2pGJ;AKvtGC;EC4DG,yBAAA;AN8pGJ;AK1tGC;EC4DG,yBAAA;ANiqGJ;AK7tGC;EC4DG,yBAAA;ANoqGJ;AKhuGC;EC4DG,yBAAA;ANuqGJ;AKnuGC;EC4DG,yBAAA;AN0qGJ;AKtuGC;EC4DG,yBAAA;AN6qGJ;AKzuGC;EC4DG,yBAAA;ANgrGJ;AK5uGC;EC4DG,yBAAA;ANmrGJ;AK/uGC;EC4DG,yBAAA;ANsrGJ;AKlvGC;EC4DG,yBAAA;ANyrGJ;AKrvGC;EC4DG,yBAAA;AN4rGJ;AKxvGC;EC4DG,yBAAA;AN+rGJ;AK3vGC;EC4DG,yBAAA;ANksGJ;AK9vGC;EC4DG,yBAAA;ANqsGJ;AKjwGC;EC4DG,yBAAA;ANwsGJ;AKpwGC;EC4DG,yBAAA;AN2sGJ;AKvwGC;EC4DG,yBAAA;AN8sGJ;AK1wGC;EC4DG,yBAAA;ANitGJ;AK7wGC;EC4DG,yBAAA;ANotGJ;AKhxGC;EC4DG,yBAAA;ANutGJ;AKnxGC;EC4DG,yBAAA;AN0tGJ;AKtxGC;EC4DG,yBAAA;AN6tGJ;AKzxGC;EC4DG,yBAAA;ANguGJ;AK5xGC;EC4DG,yBAAA;ANmuGJ;AK/xGC;EC4DG,yBAAA;ANsuGJ;AKlyGC;EC4DG,yBAAA;ANyuGJ;AKryGC;EC4DG,yBAAA;AN4uGJ;AKxyGC;EC4DG,yBAAA;AN+uGJ;AK3yGC;EC4DG,yBAAA;ANkvGJ;AK9yGC;EC4DG,yBAAA;ANqvGJ;AKjzGC;EC4DG,yBAAA;ANwvGJ;AKpzGC;EC4DG,yBAAA;AN2vGJ;AKvzGC;EC4DG,yBAAA;AN8vGJ;AK1zGC;EC4DG,yBAAA;ANiwGJ;AK7zGC;EC4DG,yBAAA;ANowGJ;AKh0GC;EC4DG,yBAAA;ANuwGJ;AKn0GC;EC4DG,yBAAA;AN0wGJ;AKt0GC;EC4DG,yBAAA;AN6wGJ;AKz0GC;EC4DG,yBAAA;ANgxGJ;AK50GC;EC4DG,yBAAA;ANmxGJ;AK/0GC;EC4DG,yBAAA;ANsxGJ;AKl1GC;EC4DG,yBAAA;ANyxGJ;AKr1GC;EC4DG,yBAAA;AN4xGJ;AKx1GC;EC4DG,yBAAA;AN+xGJ;AK31GC;EC4DG,yBAAA;ANkyGJ;AK91GC;EC4DG,yBAAA;ANqyGJ;AKj2GC;EC4DG,yBAAA;ANwyGJ;AKp2GC;EC4DG,yBAAA;AN2yGJ;AKv2GC;EC4DG,yBAAA;AN8yGJ;AK12GC;EC4DG,yBAAA;ANizGJ;AK72GC;EC4DG,yBAAA;ANozGJ;AKh3GC;EC4DG,yBAAA;ANuzGJ;AACA;;;EAGE;AKv3GD;EC4DG,yBAAA;AN8zGJ;AK13GC;EC4DG,yBAAA;ANi0GJ;AK73GC;EC4DG,yBAAA;ANo0GJ;AKh4GC;EC4DG,yBAAA;ANu0GJ;AKn4GC;EC4DG,yBAAA;AN00GJ;AKt4GC;EC4DG,yBAAA;AN60GJ;AKz4GC;EC4DG,yBAAA;ANg1GJ;AK54GC;EC4DG,yBAAA;ANm1GJ;AK/4GC;EC4DG,yBAAA;ANs1GJ;AKl5GC;EC4DG,yBAAA;ANy1GJ;AKr5GC;EC4DG,yBAAA;AN41GJ;AKx5GC;EC4DG,yBAAA;AN+1GJ;AK35GC;EC4DG,yBAAA;ANk2GJ;AK95GC;EC4DG,yBAAA;ANq2GJ;AKj6GC;EC4DG,yBAAA;ANw2GJ;AKp6GC;EC4DG,yBAAA;AN22GJ;AKv6GC;EC4DG,yBAAA;AN82GJ;AK16GC;EC4DG,yBAAA;ANi3GJ;AK76GC;EC4DG,yBAAA;ANo3GJ;AKh7GC;EC4DG,yBAAA;ANu3GJ;AKn7GC;EC4DG,yBAAA;AN03GJ;AKt7GC;EC4DG,yBAAA;AN63GJ;AKz7GC;EC4DG,yBAAA;ANg4GJ;AK57GC;EC4DG,yBAAA;ANm4GJ;AK/7GC;EC4DG,yBAAA;ANs4GJ;AKl8GC;EC4DG,yBAAA;ANy4GJ;AKr8GC;EC4DG,yBAAA;AN44GJ;AKx8GC;EC4DG,yBAAA;AN+4GJ;AK38GC;EC4DG,yBAAA;ANk5GJ;AK98GC;EC4DG,yBAAA;ANq5GJ;AKj9GC;EC4DG,yBAAA;ANw5GJ;AKp9GC;EC4DG,yBAAA;AN25GJ;AKv9GC;EC4DG,yBAAA;AN85GJ;AK19GC;EC4DG,yBAAA;ANi6GJ;AK79GC;EC4DG,yBAAA;ANo6GJ;AKh+GC;EC4DG,yBAAA;ANu6GJ;AKn+GC;EC4DG,yBAAA;AN06GJ;AKt+GC;EC4DG,yBAAA;AN66GJ;AKz+GC;EC4DG,yBAAA;ANg7GJ;AK5+GC;EC4DG,yBAAA;ANm7GJ;AK/+GC;EC4DG,yBAAA;ANs7GJ;AKl/GC;EC4DG,yBAAA;ANy7GJ;AKr/GC;EC4DG,yBAAA;AN47GJ;AKx/GC;EC4DG,yBAAA;AN+7GJ;AK3/GC;EC4DG,yBAAA;ANk8GJ;AK9/GC;EC4DG,yBAAA;ANq8GJ;AKjgHC;EC4DG,yBAAA;ANw8GJ;AKpgHC;EC4DG,yBAAA;AN28GJ;AKvgHC;EC4DG,yBAAA;AN88GJ;AK1gHC;EC4DG,yBAAA;ANi9GJ;AK7gHC;EC4DG,yBAAA;ANo9GJ;AKhhHC;EC4DG,yBAAA;ANu9GJ;AKnhHC;EC4DG,yBAAA;AN09GJ;AKthHC;EC4DG,yBAAA;AN69GJ;AKzhHC;EC4DG,yBAAA;ANg+GJ;AK5hHC;EC4DG,yBAAA;ANm+GJ;AK/hHC;EC4DG,yBAAA;ANs+GJ;AKliHC;EC4DG,yBAAA;ANy+GJ;AKriHC;EC4DG,yBAAA;AN4+GJ;AKxiHC;EC4DG,yBAAA;AN++GJ;AK3iHC;EC4DG,yBAAA;ANk/GJ;AK9iHC;EC4DG,yBAAA;ANq/GJ;AKjjHC;EC4DG,yBAAA;ANw/GJ;AKpjHC;EC4DG,yBAAA;AN2/GJ;AKvjHC;EC4DG,yBAAA;AN8/GJ;AK1jHC;EC4DG,yBAAA;ANigHJ;AK7jHC;EC4DG,yBAAA;ANogHJ;AKhkHC;EC4DG,yBAAA;ANugHJ;AKnkHC;EC4DG,yBAAA;AN0gHJ;AKtkHC;EC4DG,yBAAA;AN6gHJ;AKzkHC;EC4DG,yBAAA;ANghHJ;AK5kHC;EC4DG,yBAAA;ANmhHJ;AK/kHC;EC4DG,yBAAA;ANshHJ;AKllHC;EC4DG,yBAAA;ANyhHJ;AKrlHC;EC4DG,yBAAA;AN4hHJ;AKxlHC;EC4DG,yBAAA;AN+hHJ;AK3lHC;EC4DG,yBAAA;ANkiHJ;AK9lHC;EC4DG,yBAAA;ANqiHJ;AKjmHC;EC4DG,yBAAA;ANwiHJ;AKpmHC;EC4DG,yBAAA;AN2iHJ;AACA;;;EAGE;AK3mHD;EC4DG,yBAAA;ANkjHJ;AK9mHC;EC4DG,yBAAA;ANqjHJ;AKjnHC;EC4DG,yBAAA;ANwjHJ;AKpnHC;EC4DG,yBAAA;AN2jHJ;AKvnHC;EC4DG,yBAAA;AN8jHJ;AK1nHC;EC4DG,yBAAA;ANikHJ;AK7nHC;EC4DG,yBAAA;ANokHJ;AKhoHC;EC4DG,yBAAA;ANukHJ;AKnoHC;EC4DG,yBAAA;AN0kHJ;AKtoHC;EC4DG,yBAAA;AN6kHJ;AKzoHC;EC4DG,yBAAA;ANglHJ;AK5oHC;EC4DG,yBAAA;ANmlHJ;AK/oHC;EC4DG,yBAAA;ANslHJ;AKlpHC;EC4DG,yBAAA;ANylHJ;AKrpHC;EC4DG,yBAAA;AN4lHJ;AKxpHC;EC4DG,yBAAA;AN+lHJ;AK3pHC;EC4DG,yBAAA;ANkmHJ;AK9pHC;EC4DG,yBAAA;ANqmHJ;AKjqHC;EC4DG,yBAAA;ANwmHJ;AKpqHC;EC4DG,yBAAA;AN2mHJ;AKvqHC;EC4DG,yBAAA;AN8mHJ;AK1qHC;EC4DG,yBAAA;ANinHJ;AK7qHC;EC4DG,yBAAA;ANonHJ;AKhrHC;EC4DG,yBAAA;ANunHJ;AKnrHC;EC4DG,yBAAA;AN0nHJ;AKtrHC;EC4DG,yBAAA;AN6nHJ;AKzrHC;EC4DG,yBAAA;ANgoHJ;AK5rHC;EC4DG,yBAAA;ANmoHJ;AK/rHC;EC4DG,yBAAA;ANsoHJ;AKlsHC;EC4DG,yBAAA;ANyoHJ;AKrsHC;EC4DG,yBAAA;AN4oHJ;AKxsHC;EC4DG,yBAAA;AN+oHJ;AK3sHC;EC4DG,yBAAA;ANkpHJ;AK9sHC;EC4DG,yBAAA;ANqpHJ;AKjtHC;EC4DG,yBAAA;ANwpHJ;AKptHC;EC4DG,yBAAA;AN2pHJ;AKvtHC;EC4DG,yBAAA;AN8pHJ;AK1tHC;EC4DG,yBAAA;ANiqHJ;AK7tHC;EC4DG,yBAAA;ANoqHJ;AKhuHC;EC4DG,yBAAA;ANuqHJ;AKnuHC;EC4DG,yBAAA;AN0qHJ;AKtuHC;EC4DG,yBAAA;AN6qHJ;AKzuHC;EC4DG,yBAAA;ANgrHJ;AK5uHC;EC4DG,yBAAA;ANmrHJ;AK/uHC;EC4DG,yBAAA;ANsrHJ;AKlvHC;EC4DG,yBAAA;ANyrHJ;AKrvHC;EC4DG,yBAAA;AN4rHJ;AKxvHC;EC4DG,yBAAA;AN+rHJ;AK3vHC;EC4DG,yBAAA;ANksHJ;AK9vHC;EC4DG,yBAAA;ANqsHJ;AKjwHC;EC4DG,yBAAA;ANwsHJ;AKpwHC;EC4DG,yBAAA;AN2sHJ;AKvwHC;EC4DG,yBAAA;AN8sHJ;AK1wHC;EC4DG,yBAAA;ANitHJ;AK7wHC;EC4DG,yBAAA;ANotHJ;AKhxHC;EC4DG,yBAAA;ANutHJ;AKnxHC;EC4DG,yBAAA;AN0tHJ;AKtxHC;EC4DG,yBAAA;AN6tHJ;AKzxHC;EC4DG,yBAAA;ANguHJ;AK5xHC;EC4DG,yBAAA;ANmuHJ;AK/xHC;EC4DG,yBAAA;ANsuHJ;AKlyHC;EC4DG,yBAAA;ANyuHJ;AKryHC;EC4DG,yBAAA;AN4uHJ;AKxyHC;EC4DG,yBAAA;AN+uHJ;AK3yHC;EC4DG,yBAAA;ANkvHJ;AK9yHC;EC4DG,yBAAA;ANqvHJ;AKjzHC;EC4DG,yBAAA;ANwvHJ;AKpzHC;EC4DG,yBAAA;AN2vHJ;AKvzHC;EC4DG,yBAAA;AN8vHJ;AK1zHC;EC4DG,yBAAA;ANiwHJ;AK7zHC;EC4DG,yBAAA;ANowHJ;AKh0HC;EC4DG,yBAAA;ANuwHJ;AKn0HC;EC4DG,yBAAA;AN0wHJ;AKt0HC;EC4DG,yBAAA;AN6wHJ;AKz0HC;EC4DG,yBAAA;ANgxHJ;AK50HC;EC4DG,yBAAA;ANmxHJ;AK/0HC;EC4DG,yBAAA;ANsxHJ;AKl1HC;EC4DG,yBAAA;ANyxHJ;AKr1HC;EC4DG,yBAAA;AN4xHJ;AKx1HC;EC4DG,yBAAA;AN+xHJ;AK31HC;EC4DG,yBAAA;ANkyHJ;AK91HC;EC4DG,yBAAA;ANqyHJ;AKj2HC;EC4DG,yBAAA;ANwyHJ;AKp2HC;EC4DG,yBAAA;AN2yHJ;AKv2HC;EC4DG,yBAAA;AN8yHJ;AK12HC;EC4DG,yBAAA;ANizHJ;AK72HC;EC4DG,yBAAA;ANozHJ;AKh3HC;EC4DG,yBAAA;ANuzHJ;AKn3HC;EC4DG,yBAAA;AN0zHJ;AKt3HC;EC4DG,yBAAA;AN6zHJ;AKz3HC;EC4DG,yBAAA;ANg0HJ;AK53HC;EC4DG,yBAAA;ANm0HJ;AK/3HC;EC4DG,yBAAA;ANs0HJ;AKl4HC;EC4DG,yBAAA;ANy0HJ;AKr4HC;EC4DG,yBAAA;AN40HJ;AKx4HC;EC4DG,yBAAA;AN+0HJ;AK34HC;EC4DG,yBAAA;ANk1HJ;AK94HC;EC4DG,yBAAA;ANq1HJ;AKj5HC;EC4DG,yBAAA;ANw1HJ;AKp5HC;EC4DG,yBAAA;AN21HJ;AKv5HC;EC4DG,yBAAA;AN81HJ;AK15HC;EC4DG,yBAAA;ANi2HJ;AK75HC;EC4DG,yBAAA;ANo2HJ;AKh6HC;EC4DG,yBAAA;ANu2HJ;AKn6HC;EC4DG,yBAAA;AN02HJ;AKt6HC;EC4DG,yBAAA;AN62HJ;AKz6HC;EC4DG,yBAAA;ANg3HJ;AK56HC;EC4DG,yBAAA;ANm3HJ;AK/6HC;EC4DG,yBAAA;ANs3HJ;AKl7HC;EC4DG,yBAAA;ANy3HJ;AKr7HC;EC4DG,yBAAA;AN43HJ;AKx7HC;EC4DG,yBAAA;AN+3HJ;AK37HC;EC4DG,yBAAA;ANk4HJ;AK97HC;EC4DG,yBAAA;ANq4HJ;AKj8HC;EC4DG,yBAAA;ANw4HJ;AKp8HC;EC4DG,yBAAA;AN24HJ;AKv8HC;EC4DG,yBAAA;AN84HJ;AK18HC;EC4DG,yBAAA;ANi5HJ;AK78HC;EC4DG,yBAAA;ANo5HJ;AKh9HC;EC4DG,yBAAA;ANu5HJ;AKn9HC;EC4DG,yBAAA;AN05HJ;AKt9HC;EC4DG,yBAAA;AN65HJ;AKz9HC;EC4DG,yBAAA;ANg6HJ;AK59HC;EC4DG,yBAAA;ANm6HJ;AK/9HC;EC4DG,yBAAA;ANs6HJ;AKl+HC;EC4DG,yBAAA;ANy6HJ;AKr+HC;EC4DG,yBAAA;AN46HJ;AKx+HC;EC4DG,yBAAA;AN+6HJ;AK3+HC;EC4DG,yBAAA;ANk7HJ;AK9+HC;EC4DG,yBAAA;ANq7HJ;AKj/HC;EC4DG,yBAAA;ANw7HJ;AKp/HC;EC4DG,yBAAA;AN27HJ;AKv/HC;EC4DG,yBAAA;AN87HJ;AK1/HC;EC4DG,yBAAA;ANi8HJ;AK7/HC;EC4DG,yBAAA;ANo8HJ;AKhgIC;EC4DG,yBAAA;ANu8HJ;AKngIC;EC4DG,yBAAA;AN08HJ;AKtgIC;EC4DG,yBAAA;AN68HJ;AKzgIC;EC4DG,yBAAA;ANg9HJ;AK5gIC;EC4DG,yBAAA;ANm9HJ;AK/gIC;EC4DG,yBAAA;ANs9HJ;AKlhIC;EC4DG,yBAAA;ANy9HJ;AKrhIC;EC4DG,yBAAA;AN49HJ;AKxhIC;EC4DG,yBAAA;AN+9HJ;AK3hIC;EC4DG,yBAAA;ANk+HJ;AK9hIC;EC4DG,yBAAA;ANq+HJ;AKjiIC;EC4DG,yBAAA;ANw+HJ;AKpiIC;EC4DG,yBAAA;AN2+HJ;AKviIC;EC4DG,yBAAA;AN8+HJ;AK1iIC;EC4DG,yBAAA;ANi/HJ;AK7iIC;EC4DG,yBAAA;ANo/HJ;AKhjIC;EC4DG,yBAAA;ANu/HJ;AKnjIC;EC4DG,yBAAA;AN0/HJ;AKtjIC;EC4DG,yBAAA;AN6/HJ;AKzjIC;EC4DG,yBAAA;ANggIJ;AK5jIC;EC4DG,yBAAA;ANmgIJ;AK/jIC;EC4DG,yBAAA;ANsgIJ;AKlkIC;EC4DG,yBAAA;ANygIJ;AKrkIC;EC4DG,yBAAA;AN4gIJ;AKxkIC;EC4DG,yBAAA;AN+gIJ;AK3kIC;EC4DG,yBAAA;ANkhIJ;AK9kIC;EC4DG,yBAAA;ANqhIJ;AKjlIC;EC4DG,yBAAA;ANwhIJ;AKplIC;EC4DG,yBAAA;AN2hIJ;AKvlIC;EC4DG,yBAAA;AN8hIJ;AK1lIC;EC4DG,yBAAA;ANiiIJ;AK7lIC;EC4DG,yBAAA;ANoiIJ;AKhmIC;EC4DG,yBAAA;ANuiIJ;AKnmIC;EC4DG,yBAAA;AN0iIJ;AKtmIC;EC4DG,yBAAA;AN6iIJ;AKzmIC;EC4DG,yBAAA;ANgjIJ;AK5mIC;EC4DG,yBAAA;ANmjIJ;AK/mIC;EC4DG,yBAAA;ANsjIJ;AKlnIC;EC4DG,yBAAA;ANyjIJ;AKrnIC;EC4DG,yBAAA;AN4jIJ;AKxnIC;EC4DG,yBAAA;AN+jIJ;AK3nIC;EC4DG,yBAAA;ANkkIJ;AK9nIC;EC4DG,yBAAA;ANqkIJ;AKjoIC;EC4DG,yBAAA;ANwkIJ;AKpoIC;EC4DG,yBAAA;AN2kIJ;AKvoIC;EC4DG,yBAAA;AN8kIJ;AK1oIC;EC4DG,yBAAA;ANilIJ;AK7oIC;EC4DG,yBAAA;ANolIJ;AKhpIC;EC4DG,yBAAA;ANulIJ;AKnpIC;EC4DG,yBAAA;AN0lIJ;AKtpIC;EC4DG,yBAAA;AN6lIJ;AKzpIC;EC4DG,yBAAA;ANgmIJ;AK5pIC;EC4DG,yBAAA;ANmmIJ;AK/pIC;EC4DG,yBAAA;ANsmIJ;AKlqIC;EC4DG,yBAAA;ANymIJ;AKrqIC;EC4DG,yBAAA;AN4mIJ;AKxqIC;EC4DG,yBAAA;AN+mIJ;AK3qIC;EC4DG,yBAAA;ANknIJ;AK9qIC;EC4DG,yBAAA;ANqnIJ;AKjrIC;EC4DG,yBAAA;ANwnIJ;AKprIC;EC4DG,yBAAA;AN2nIJ;AKvrIC;EC4DG,yBAAA;AN8nIJ;AK1rIC;EC4DG,yBAAA;ANioIJ;AK7rIC;EC4DG,yBAAA;ANooIJ;AKhsIC;EC4DG,yBAAA;ANuoIJ;AKnsIC;EC4DG,yBAAA;AN0oIJ;AKtsIC;EC4DG,yBAAA;AN6oIJ;AKzsIC;EC4DG,yBAAA;ANgpIJ;AK5sIC;EC4DG,yBAAA;ANmpIJ;AK/sIC;EC4DG,yBAAA;ANspIJ;AKltIC;EC4DG,yBAAA;ANypIJ;AKrtIC;EC4DG,yBAAA;AN4pIJ;AKxtIC;EC4DG,yBAAA;AN+pIJ;AK3tIC;EC4DG,yBAAA;ANkqIJ;AACA;;;EAGE;AKluID;EC4DG,yBAAA;ANyqIJ;AKruIC;EC4DG,yBAAA;AN4qIJ;AKxuIC;EC4DG,yBAAA;AN+qIJ;AK3uIC;EC4DG,yBAAA;ANkrIJ;AK9uIC;EC4DG,yBAAA;ANqrIJ;AKjvIC;EC4DG,yBAAA;ANwrIJ;AKpvIC;EC4DG,yBAAA;AN2rIJ;AKvvIC;EC4DG,yBAAA;AN8rIJ;AK1vIC;EC4DG,yBAAA;ANisIJ;AK7vIC;EC4DG,yBAAA;ANosIJ;AKhwIC;EC4DG,yBAAA;ANusIJ;AKnwIC;EC4DG,yBAAA;AN0sIJ;AKtwIC;EC4DG,yBAAA;AN6sIJ;AKzwIC;EC4DG,yBAAA;ANgtIJ;AK5wIC;EC4DG,yBAAA;ANmtIJ;AK/wIC;EC4DG,yBAAA;ANstIJ;AKlxIC;EC4DG,yBAAA;ANytIJ;AKrxIC;EC4DG,yBAAA;AN4tIJ;AKxxIC;EC4DG,yBAAA;AN+tIJ;AK3xIC;EC4DG,yBAAA;ANkuIJ;AK9xIC;EC4DG,yBAAA;ANquIJ;AKjyIC;EC4DG,yBAAA;ANwuIJ;AKpyIC;EC4DG,yBAAA;AN2uIJ;AKvyIC;EC4DG,yBAAA;AN8uIJ;AK1yIC;EC4DG,yBAAA;ANivIJ;AK7yIC;EC4DG,yBAAA;ANovIJ;AKhzIC;EC4DG,yBAAA;ANuvIJ;AKnzIC;EC4DG,yBAAA;AN0vIJ;AKtzIC;EC4DG,yBAAA;AN6vIJ;AKzzIC;EC4DG,yBAAA;ANgwIJ;AK5zIC;EC4DG,yBAAA;ANmwIJ;AK/zIC;EC4DG,yBAAA;ANswIJ;AKl0IC;EC4DG,yBAAA;ANywIJ;AKr0IC;EC4DG,yBAAA;AN4wIJ;AKx0IC;EC4DG,yBAAA;AN+wIJ;AK30IC;EC4DG,yBAAA;ANkxIJ;AK90IC;EC4DG,yBAAA;ANqxIJ;AKj1IC;EC4DG,yBAAA;ANwxIJ;AKp1IC;EC4DG,yBAAA;AN2xIJ;AKv1IC;EC4DG,yBAAA;AN8xIJ;AK11IC;EC4DG,yBAAA;ANiyIJ;AK71IC;EC4DG,yBAAA;ANoyIJ;AKh2IC;EC4DG,yBAAA;ANuyIJ;AKn2IC;EC4DG,yBAAA;AN0yIJ;AKt2IC;EC4DG,yBAAA;AN6yIJ;AKz2IC;EC4DG,yBAAA;ANgzIJ;AK52IC;EC4DG,yBAAA;ANmzIJ;AK/2IC;EC4DG,yBAAA;ANszIJ;AKl3IC;EC4DG,yBAAA;ANyzIJ;AKr3IC;EC4DG,yBAAA;AN4zIJ;AKx3IC;EC4DG,yBAAA;AN+zIJ;AK33IC;EC4DG,yBAAA;ANk0IJ;AK93IC;EC4DG,yBAAA;ANq0IJ;AKj4IC;EC4DG,yBAAA;ANw0IJ;AKp4IC;EC4DG,yBAAA;AN20IJ;AKv4IC;EC4DG,yBAAA;AN80IJ;AK14IC;EC4DG,yBAAA;ANi1IJ;AK74IC;EC4DG,yBAAA;ANo1IJ;AKh5IC;EC4DG,yBAAA;ANu1IJ;AKn5IC;EC4DG,yBAAA;AN01IJ;AKt5IC;EC4DG,yBAAA;AN61IJ;AKz5IC;EC4DG,yBAAA;ANg2IJ;AK55IC;EC4DG,yBAAA;ANm2IJ;AK/5IC;EC4DG,yBAAA;ANs2IJ;AKl6IC;EC4DG,yBAAA;ANy2IJ;AKr6IC;EC4DG,yBAAA;AN42IJ;AKx6IC;EC4DG,yBAAA;AN+2IJ;AK36IC;EC4DG,yBAAA;ANk3IJ;AK96IC;EC4DG,yBAAA;ANq3IJ;AKj7IC;EC4DG,yBAAA;ANw3IJ;AKp7IC;EC4DG,yBAAA;AN23IJ;AKv7IC;EC4DG,yBAAA;AN83IJ;AK17IC;EC4DG,yBAAA;ANi4IJ;AK77IC;EC4DG,yBAAA;ANo4IJ;AKh8IC;EC4DG,yBAAA;ANu4IJ;AKn8IC;EC4DG,yBAAA;AN04IJ;AKt8IC;EC4DG,yBAAA;AN64IJ;AKz8IC;EC4DG,yBAAA;ANg5IJ;AK58IC;EC4DG,yBAAA;ANm5IJ;AK/8IC;EC4DG,yBAAA;ANs5IJ;AACA;;;;EAIE;AO5pIF;EACE,yBAAA;AP8pIF;AO5pIA;;EAEE,qCAAA;AP8pIF;AO5pIA;;EAEE,qCAAA;AP8pIF;AO5pIA;;EAEE,qCAAA;AP8pIF;AO5pIA;;EAEE,qCAAA;AP8pIF;AO5pIA;;EAEE,qCAAA;AP8pIF;AO5pIA;;EAEE,qCAAA;AP8pIF;AACA;;;EAGE;AO3pIF;EACE,yBAAA;AP6pIF;AO3pIA;EACE,yBAAA;AP6pIF;AO3pIA;EACE,0CAAA;AP6pIF;AO3pIA;EACE,0CAAA;AP6pIF;AO3pIA;EACE,2CAAA;AP6pIF;AO3pIA;EACE,yBAAA;AP6pIF;AO3pIA;EACE,0CAAA;AP6pIF;AACA;;EAEE;AI5gJE;EGoXA,yBAAA;AP2pIJ;AI/gJI;EGuXA,0CAAA;AP2pIJ;AIlhJI;EG0XA,0CAAA;AP2pIJ;AIrhJI;EG6XA,2CAAA;AP2pIJ;AIxhJI;EGgYA,yBAAA;AP2pIJ;AI3hJI;EGmYA,0CAAA;AP2pIJ;AIzhJI;EACE;IG8WF,yBAAA;EP8qIF;EI5hJI;IGiXF,0CAAA;EP8qIF;EI/hJI;IGoXF,0CAAA;EP8qIF;EIliJI;IGuXF,2CAAA;EP8qIF;EIriJI;IG0XF,yBAAA;EP8qIF;EIxiJI;IG6XF,0CAAA;EP8qIF;AACF;AACA;;;;EAIE;AACF;;EAEE;AK5jJD;EFEC,sBAAA;AH6jJF;AK/jJC;EFKC,0BAAA;AH6jJF;AKlkJC;EFQC,4BAAA;AH6jJF;AKrkJC;EFWC,6BAAA;AH6jJF;AKxkJC;EFcC,2BAAA;AH6jJF;AK3kJC;EFiBC,4BAAA;EACA,2BAAA;AH6jJF;AK/kJC;EFqBC,0BAAA;EACA,6BAAA;AH6jJF;AKnlJC;EF0BC,uBAAA;AH4jJF;AKtlJC;EF6BC,2BAAA;AH4jJF;AKzlJC;EFgCC,6BAAA;AH4jJF;AK5lJC;EFmCC,8BAAA;AH4jJF;AK/lJC;EFsCC,4BAAA;AH4jJF;AKlmJC;EFyCC,6BAAA;EACA,4BAAA;AH4jJF;AKtmJC;EF6CC,2BAAA;EACA,8BAAA;AH4jJF;AK1mJC;EFEC,sBAAA;AH2mJF;AK7mJC;EFKC,0BAAA;AH2mJF;AKhnJC;EFQC,4BAAA;AH2mJF;AKnnJC;EFWC,6BAAA;AH2mJF;AKtnJC;EFcC,2BAAA;AH2mJF;AKznJC;EFiBC,4BAAA;EACA,2BAAA;AH2mJF;AK7nJC;EFqBC,0BAAA;EACA,6BAAA;AH2mJF;AKjoJC;EF0BC,uBAAA;AH0mJF;AKpoJC;EF6BC,2BAAA;AH0mJF;AKvoJC;EFgCC,6BAAA;AH0mJF;AK1oJC;EFmCC,8BAAA;AH0mJF;AK7oJC;EFsCC,4BAAA;AH0mJF;AKhpJC;EFyCC,6BAAA;EACA,4BAAA;AH0mJF;AKppJC;EF6CC,2BAAA;EACA,8BAAA;AH0mJF;AKxpJC;EFEC,uBAAA;AHypJF;AK3pJC;EFKC,2BAAA;AHypJF;AK9pJC;EFQC,6BAAA;AHypJF;AKjqJC;EFWC,8BAAA;AHypJF;AKpqJC;EFcC,4BAAA;AHypJF;AKvqJC;EFiBC,6BAAA;EACA,4BAAA;AHypJF;AK3qJC;EFqBC,2BAAA;EACA,8BAAA;AHypJF;AK/qJC;EF0BC,wBAAA;AHwpJF;AKlrJC;EF6BC,4BAAA;AHwpJF;AKrrJC;EFgCC,8BAAA;AHwpJF;AKxrJC;EFmCC,+BAAA;AHwpJF;AK3rJC;EFsCC,6BAAA;AHwpJF;AK9rJC;EFyCC,8BAAA;EACA,6BAAA;AHwpJF;AKlsJC;EF6CC,4BAAA;EACA,+BAAA;AHwpJF;AKtsJC;EFEC,uBAAA;AHusJF;AKzsJC;EFKC,2BAAA;AHusJF;AK5sJC;EFQC,6BAAA;AHusJF;AK/sJC;EFWC,8BAAA;AHusJF;AKltJC;EFcC,4BAAA;AHusJF;AKrtJC;EFiBC,6BAAA;EACA,4BAAA;AHusJF;AKztJC;EFqBC,2BAAA;EACA,8BAAA;AHusJF;AK7tJC;EF0BC,wBAAA;AHssJF;AKhuJC;EF6BC,4BAAA;AHssJF;AKnuJC;EFgCC,8BAAA;AHssJF;AKtuJC;EFmCC,+BAAA;AHssJF;AKzuJC;EFsCC,6BAAA;AHssJF;AK5uJC;EFyCC,8BAAA;EACA,6BAAA;AHssJF;AKhvJC;EF6CC,4BAAA;EACA,+BAAA;AHssJF;AKpvJC;EFEC,uBAAA;AHqvJF;AKvvJC;EFKC,2BAAA;AHqvJF;AK1vJC;EFQC,6BAAA;AHqvJF;AK7vJC;EFWC,8BAAA;AHqvJF;AKhwJC;EFcC,4BAAA;AHqvJF;AKnwJC;EFiBC,6BAAA;EACA,4BAAA;AHqvJF;AKvwJC;EFqBC,2BAAA;EACA,8BAAA;AHqvJF;AK3wJC;EF0BC,wBAAA;AHovJF;AK9wJC;EF6BC,4BAAA;AHovJF;AKjxJC;EFgCC,8BAAA;AHovJF;AKpxJC;EFmCC,+BAAA;AHovJF;AKvxJC;EFsCC,6BAAA;AHovJF;AK1xJC;EFyCC,8BAAA;EACA,6BAAA;AHovJF;AK9xJC;EF6CC,4BAAA;EACA,+BAAA;AHovJF;AKlyJC;EFEC,uBAAA;AHmyJF;AKryJC;EFKC,2BAAA;AHmyJF;AKxyJC;EFQC,6BAAA;AHmyJF;AK3yJC;EFWC,8BAAA;AHmyJF;AK9yJC;EFcC,4BAAA;AHmyJF;AKjzJC;EFiBC,6BAAA;EACA,4BAAA;AHmyJF;AKrzJC;EFqBC,2BAAA;EACA,8BAAA;AHmyJF;AKzzJC;EF0BC,wBAAA;AHkyJF;AK5zJC;EF6BC,4BAAA;AHkyJF;AK/zJC;EFgCC,8BAAA;AHkyJF;AKl0JC;EFmCC,+BAAA;AHkyJF;AKr0JC;EFsCC,6BAAA;AHkyJF;AKx0JC;EFyCC,8BAAA;EACA,6BAAA;AHkyJF;AK50JC;EF6CC,4BAAA;EACA,+BAAA;AHkyJF;AACA;;EAEE;AACF,SAAS;AQnxJT;EACE,sBAAA;ARqxJF;AACA,SAAS;AQlxJT;EACE,uBAAA;ARoxJF;AACA;;EAEE;AACF,SAAS;AQhxJT;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LJ;AgB3yKU;EVxOR,yBAAA;ANshLF;AKlkLC;EC4DG,cAAA;ANygLJ;AgBjzKU;EVxOR,yBAAA;AN4hLF;AKxkLC;EC4DG,cAAA;AN+gLJ;AgBvzKU;EVxOR,yBAAA;ANkiLF;AK9kLC;EC4DG,cAAA;ANqhLJ;AgB7zKU;EVxOR,yBAAA;ANwiLF;AKplLC;EC4DG,cAAA;AN2hLJ;AgBn0KU;EVxOR,yBAAA;AN8iLF;AK1lLC;EC4DG,cAAA;ANiiLJ;AgBz0KU;EVxOR,yBAAA;ANojLF;AKhmLC;EC4DG,cAAA;ANuiLJ;AgB/0KU;EVxOR,yBAAA;AN0jLF;AKtmLC;EC4DG,cAAA;AN6iLJ;AgBr1KU;EVxOR,yBAAA;ANgkLF;AK5mLC;EC4DG,cAAA;ANmjLJ;AgB31KU;EVxOR,yBAAA;ANskLF;AKlnLC;EC4DG,cAAA;ANyjLJ;AgBj2KU;EVxOR,yBAAA;AN4kLF;AKxnLC;EC4DG,cAAA;AN+jLJ;AgBv2KU;EVxOR,yBAAA;ANklLF;AK9nLC;EC4DG,cAAA;ANqkLJ;AgB72KU;EVxOR,yBAAA;ANwlLF;AACA;;;;EAIE;AIvoLE;EYuSE,4CAAA;AhBm2KN;AI1oLI;EY0SI,+BAAA;AhBm2KR;AI7oLI;EY+SE,+BAAA;AhBi2KN;AIhpLI;EYmTE,gBAAA;EACA,yBAAA;AhBg2KN;AIppLI;;;;;;EYyTI,+BAAA;AhBm2KR;AI5pLI;EY8TE,cAAA;EACA,yBAAA;AhBi2KN;AIhqLI;EYmUE,mBAAA;EACA,uCAAA;AhBg2KN;AIpqLI;EYwUE,mBAAA;AhB+1KN;AIvqLI;EY4UE,uCAAA;AhB81KN;AIrqLI;EACE;IYiSA,4CAAA;EhBu4KJ;EIxqLI;IYoSE,+BAAA;EhBu4KN;EI3qLI;IYySA,+BAAA;EhBq4KJ;EI9qLI;IY6SA,gBAAA;IACA,yBAAA;EhBo4KJ;EIlrLI;;;;;;IYmTE,+BAAA;EhBu4KN;EI1rLI;IYwTA,cAAA;IACA,yBAAA;EhBq4KJ;EI9rLI;IY6TA,mBAAA;IACA,uCAAA;EhBo4KJ;EIlsLI;IYkUA,mBAAA;EhBm4KJ;EIrsLI;IYsUA,uCAAA;EhBk4KJ;AACF;AACA;;;;EAIE;AiBtpLF;;EAEE,8BAAA;UAAA,sBAAA;EACA,kBAAA;EACA,iBAAA;EACA,kBAAA;EACA,iBAAA;AjBwpLF;AiBvpLE;;EACE,cAAA;EACA,WAAA;EACA,WAAA;AjB0pLJ;AiBtpLA;EACE,UAAA;EACA,iBAAA;AjBwpLF;AiBvpLE;EAAA;IACE,UAAA;EjB0pLF;AACF;AiBzpLE;EAAA;IACE,UAAA;EjB4pLF;AACF;AiBzpLA;;EAEE,kBAAA;EACA,iBAAA;AjB2pLF;AiB1pLE;;EACE,cAAA;EACA,WAAA;EACA,WAAA;AjB6pLJ;AiBzpLA;;;;;;EAME,kBAAA;EACA,8BAAA;UAAA,sBAAA;EACA,eAAA;EACA,kBAAA;EACA,iBAAA;AjB2pLF;AACA,UAAU;AiBxpLV;;;;;;EAOI,gBAAA;EACA,eAAA;AjBypLJ;AiBjqLA;;EAcI,eAAA;EACA,cAAA;AjBupLJ;AKxxLC;EY+CG,WAAA;EACA,gBAAA;AjB4uLJ;AK5xLC;EYqDG,sBAAA;AjB0uLJ;AK/xLC;EY2DG,WAAA;EACA,WAAA;AjBuuLJ;AKnyLC;EY+CG,WAAA;EACA,iBAAA;AjBuvLJ;AKvyLC;EYqDG,uBAAA;AjBqvLJ;AK1yLC;EY2DG,WAAA;EACA,UAAA;AjBkvLJ;AK9yLC;EY+CG,WAAA;EACA,UAAA;AjBkwLJ;AKlzLC;EYqDG,gBAAA;AjBgwLJ;AKrzLC;EY2DG,WAAA;EACA,iBAAA;AjB6vLJ;AKzzLC;EY+CG,WAAA;EACA,iBAAA;AjB6wLJ;AK7zLC;EYqDG,uBAAA;AjB2wLJ;AKh0LC;EY2DG,WAAA;EACA,UAAA;AjBwwLJ;AKp0LC;EY+CG,WAAA;EACA,iBAAA;AjBwxLJ;AKx0LC;EYqDG,uBAAA;AjBsxLJ;AK30LC;EY2DG,WAAA;EACA,UAAA;AjBmxLJ;AK/0LC;EY+CG,WAAA;EACA,UAAA;AjBmyLJ;AKn1LC;EYqDG,gBAAA;AjBiyLJ;AKt1LC;EY2DG,WAAA;EACA,iBAAA;AjB8xLJ;AK11LC;EY+CG,WAAA;EACA,iBAAA;AjB8yLJ;AK91LC;EYqDG,uBAAA;AjB4yLJ;AKj2LC;EY2DG,WAAA;EACA,iBAAA;AjByyLJ;AKr2LC;EY+CG,WAAA;EACA,iBAAA;AjByzLJ;AKz2LC;EYqDG,uBAAA;AjBuzLJ;AK52LC;EY2DG,WAAA;EACA,YAAA;AjBozLJ;AKh3LC;EY+CG,WAAA;EACA,UAAA;AjBo0LJ;AKp3LC;EYqDG,gBAAA;AjBk0LJ;AKv3LC;EY2DG,WAAA;EACA,iBAAA;AjB+zLJ;AK33LC;EY+CG,WAAA;EACA,iBAAA;AjB+0LJ;AK/3LC;EYqDG,uBAAA;AjB60LJ;AKl4LC;EY2DG,WAAA;EACA,UAAA;AjB00LJ;AKt4LC;EY+CG,WAAA;EACA,iBAAA;AjB01LJ;AK14LC;EYqDG,uBAAA;AjBw1LJ;AK74LC;EY2DG,WAAA;EACA,gBAAA;AjBq1LJ;AKj5LC;EY+CG,WAAA;EACA,WAAA;AjBq2LJ;AKr5LC;EYqDG,iBAAA;AjBm2LJ;AKx5LC;EY2DG,WAAA;EACA,gBAAA;AjBg2LJ;AiBrxLA;EZvIC;IY+CG,WAAA;IACA,gBAAA;EjBi3LF;EKj6LD;IYqDG,sBAAA;EjB+2LF;EKp6LD;IY2DG,WAAA;IACA,WAAA;EjB42LF;EKx6LD;IY+CG,WAAA;IACA,iBAAA;EjB43LF;EK56LD;IYqDG,uBAAA;EjB03LF;EK/6LD;IY2DG,WAAA;IACA,UAAA;EjBu3LF;EKn7LD;IY+CG,WAAA;IACA,UAAA;EjBu4LF;EKv7LD;IYqDG,gBAAA;EjBq4LF;EK17LD;IY2DG,WAAA;IACA,iBAAA;EjBk4LF;EK97LD;IY+CG,WAAA;IACA,iBAAA;EjBk5LF;EKl8LD;IYqDG,uBAAA;EjBg5LF;EKr8LD;IY2DG,WAAA;IACA,UAAA;EjB64LF;EKz8LD;IY+CG,WAAA;IACA,iBAAA;EjB65LF;EK78LD;IYqDG,uBAAA;EjB25LF;EKh9LD;IY2DG,WAAA;IACA,UAAA;EjBw5LF;EKp9LD;IY+CG,WAAA;IACA,UAAA;EjBw6LF;EKx9LD;IYqDG,gBAAA;EjBs6LF;EK39LD;IY2DG,WAAA;IACA,iBAAA;EjBm6LF;EK/9LD;IY+CG,WAAA;IACA,iBAAA;EjBm7LF;EKn+LD;IYqDG,uBAAA;EjBi7LF;EKt+LD;IY2DG,WAAA;IACA,iBAAA;EjB86LF;EK1+LD;IY+CG,WAAA;IACA,iBAAA;EjB87LF;EK9+LD;IYqDG,uBAAA;EjB47LF;EKj/LD;IY2DG,WAAA;IACA,YAAA;EjBy7LF;EKr/LD;IY+CG,WAAA;IACA,UAAA;EjBy8LF;EKz/LD;IYqDG,gBAAA;EjBu8LF;EK5/LD;IY2DG,WAAA;IACA,iBAAA;EjBo8LF;EKhgMD;IY+CG,WAAA;IACA,iBAAA;EjBo9LF;EKpgMD;IYqDG,uBAAA;EjBk9LF;EKvgMD;IY2DG,WAAA;IACA,UAAA;EjB+8LF;EK3gMD;IY+CG,WAAA;IACA,iBAAA;EjB+9LF;EK/gMD;IYqDG,uBAAA;EjB69LF;EKlhMD;IY2DG,WAAA;IACA,gBAAA;EjB09LF;EKthMD;IY+CG,WAAA;IACA,WAAA;EjB0+LF;EK1hMD;IYqDG,iBAAA;EjBw+LF;EK7hMD;IY2DG,WAAA;IACA,gBAAA;EjBq+LF;AACF;AiBv5LA;EZ3IC;IY+CG,WAAA;IACA,gBAAA;EjBu/LF;EKviMD;IYqDG,sBAAA;EjBq/LF;EK1iMD;IY2DG,WAAA;IACA,WAAA;EjBk/LF;EK9iMD;IY+CG,WAAA;IACA,iBAAA;EjBkgMF;EKljMD;IYqDG,uBAAA;EjBggMF;EKrjMD;IY2DG,WAAA;IACA,UAAA;EjB6/LF;EKzjMD;IY+CG,WAAA;IACA,UAAA;EjB6gMF;EK7jMD;IYqDG,gBAAA;EjB2gMF;EKhkMD;IY2DG,WAAA;IACA,iBAAA;EjBwgMF;EKpkMD;IY+CG,WAAA;IACA,iBAAA;EjBwhMF;EKxkMD;IYqDG,uBAAA;EjBshMF;EK3kMD;IY2DG,WAAA;IACA,UAAA;EjBmhMF;EK/kMD;IY+CG,WAAA;IACA,iBAAA;EjBmiMF;EKnlMD;IYqDG,uBAAA;EjBiiMF;EKtlMD;IY2DG,WAAA;IACA,UAAA;EjB8hMF;EK1lMD;IY+CG,WAAA;IACA,UAAA;EjB8iMF;EK9lMD;IYqDG,gBAAA;EjB4iMF;EKjmMD;IY2DG,WAAA;IACA,iBAAA;EjByiMF;EKrmMD;IY+CG,WAAA;IACA,iBAAA;EjByjMF;EKzmMD;IYqDG,uBAAA;EjBujMF;EK5mMD;IY2DG,WAAA;IACA,iBAAA;EjBojMF;EKhnMD;IY+CG,WAAA;IACA,iBAAA;EjBokMF;EKpnMD;IYqDG,uBAAA;EjBkkMF;EKvnMD;IY2DG,WAAA;IACA,YAAA;EjB+jMF;EK3nMD;IY+CG,WAAA;IACA,UAAA;EjB+kMF;EK/nMD;IYqDG,gBAAA;EjB6kMF;EKloMD;IY2DG,WAAA;IACA,iBAAA;EjB0kMF;EKtoMD;IY+CG,WAAA;IACA,iBAAA;EjB0lMF;EK1oMD;IYqDG,uBAAA;EjBwlMF;EK7oMD;IY2DG,WAAA;IACA,UAAA;EjBqlMF;EKjpMD;IY+CG,WAAA;IACA,iBAAA;EjBqmMF;EKrpMD;IYqDG,uBAAA;EjBmmMF;EKxpMD;IY2DG,WAAA;IACA,gBAAA;EjBgmMF;EK5pMD;IY+CG,WAAA;IACA,WAAA;EjBgnMF;EKhqMD;IYqDG,iBAAA;EjB8mMF;EKnqMD;IY2DG,WAAA;IACA,gBAAA;EjB2mMF;AACF;AiBzhMA;EZ/IC;IY+CG,WAAA;IACA,gBAAA;EjB6nMF;EK7qMD;IYqDG,sBAAA;EjB2nMF;EKhrMD;IY2DG,WAAA;IACA,WAAA;EjBwnMF;EKprMD;IY+CG,WAAA;IACA,iBAAA;EjBwoMF;EKxrMD;IYqDG,uBAAA;EjBsoMF;EK3rMD;IY2DG,WAAA;IACA,UAAA;EjBmoMF;EK/rMD;IY+CG,WAAA;IACA,UAAA;EjBmpMF;EKnsMD;IYqDG,gBAAA;EjBipMF;EKtsMD;IY2DG,WAAA;IACA,iBAAA;EjB8oMF;EK1sMD;IY+CG,WAAA;IACA,iBAAA;EjB8pMF;EK9sMD;IYqDG,uBAAA;EjB4pMF;EKjtMD;IY2DG,WAAA;IACA,UAAA;EjBypMF;EKrtMD;IY+CG,WAAA;IACA,iBAAA;EjByqMF;EKztMD;IYqDG,uBAAA;EjBuqMF;EK5tMD;IY2DG,WAAA;IACA,UAAA;EjBoqMF;EKhuMD;IY+CG,WAAA;IACA,UAAA;EjBorMF;EKpuMD;IYqDG,gBAAA;EjBkrMF;EKvuMD;IY2DG,WAAA;IACA,iBAAA;EjB+qMF;EK3uMD;IY+CG,WAAA;IACA,iBAAA;EjB+rMF;EK/uMD;IYqDG,uBAAA;EjB6rMF;EKlvMD;IY2DG,WAAA;IACA,iBAAA;EjB0rMF;EKtvMD;IY+CG,WAAA;IACA,iBAAA;EjB0sMF;EK1vMD;IYqDG,uBAAA;EjBwsMF;EK7vMD;IY2DG,WAAA;IACA,YAAA;EjBqsMF;EKjwMD;IY+CG,WAAA;IACA,UAAA;EjBqtMF;EKrwMD;IYqDG,gBAAA;EjBmtMF;EKxwMD;IY2DG,WAAA;IACA,iBAAA;EjBgtMF;EK5wMD;IY+CG,WAAA;IACA,iBAAA;EjBguMF;EKhxMD;IYqDG,uBAAA;EjB8tMF;EKnxMD;IY2DG,WAAA;IACA,UAAA;EjB2tMF;EKvxMD;IY+CG,WAAA;IACA,iBAAA;EjB2uMF;EK3xMD;IYqDG,uBAAA;EjByuMF;EK9xMD;IY2DG,WAAA;IACA,gBAAA;EjBsuMF;EKlyMD;IY+CG,WAAA;IACA,WAAA;EjBsvMF;EKtyMD;IYqDG,iBAAA;EjBovMF;EKzyMD;IY2DG,WAAA;IACA,gBAAA;EjBivMF;AACF;AiB3pMA;EZnJC;IY+CG,WAAA;IACA,gBAAA;EjBmwMF;EKnzMD;IYqDG,sBAAA;EjBiwMF;EKtzMD;IY2DG,WAAA;IACA,WAAA;EjB8vMF;EK1zMD;IY+CG,WAAA;IACA,iBAAA;EjB8wMF;EK9zMD;IYqDG,uBAAA;EjB4wMF;EKj0MD;IY2DG,WAAA;IACA,UAAA;EjBywMF;EKr0MD;IY+CG,WAAA;IACA,UAAA;EjByxMF;EKz0MD;IYqDG,gBAAA;EjBuxMF;EK50MD;IY2DG,WAAA;IACA,iBAAA;EjBoxMF;EKh1MD;IY+CG,WAAA;IACA,iBAAA;EjBoyMF;EKp1MD;IYqDG,uBAAA;EjBkyMF;EKv1MD;IY2DG,WAAA;IACA,UAAA;EjB+xMF;EK31MD;IY+CG,WAAA;IACA,iBAAA;EjB+yMF;EK/1MD;IYqDG,uBAAA;EjB6yMF;EKl2MD;IY2DG,WAAA;IACA,UAAA;EjB0yMF;EKt2MD;IY+CG,WAAA;IACA,UAAA;EjB0zMF;EK12MD;IYqDG,gBAAA;EjBwzMF;EK72MD;IY2DG,WAAA;IACA,iBAAA;EjBqzMF;EKj3MD;IY+CG,WAAA;IACA,iBAAA;EjBq0MF;EKr3MD;IYqDG,uBAAA;EjBm0MF;EKx3MD;IY2DG,WAAA;IACA,iBAAA;EjBg0MF;EK53MD;IY+CG,WAAA;IACA,iBAAA;EjBg1MF;EKh4MD;IYqDG,uBAAA;EjB80MF;EKn4MD;IY2DG,WAAA;IACA,YAAA;EjB20MF;EKv4MD;IY+CG,WAAA;IACA,UAAA;EjB21MF;EK34MD;IYqDG,gBAAA;EjBy1MF;EK94MD;IY2DG,WAAA;IACA,iBAAA;EjBs1MF;EKl5MD;IY+CG,WAAA;IACA,iBAAA;EjBs2MF;EKt5MD;IYqDG,uBAAA;EjBo2MF;EKz5MD;IY2DG,WAAA;IACA,UAAA;EjBi2MF;EK75MD;IY+CG,WAAA;IACA,iBAAA;EjBi3MF;EKj6MD;IYqDG,uBAAA;EjB+2MF;EKp6MD;IY2DG,WAAA;IACA,gBAAA;EjB42MF;EKx6MD;IY+CG,WAAA;IACA,WAAA;EjB43MF;EK56MD;IYqDG,iBAAA;EjB03MF;EK/6MD;IY2DG,WAAA;IACA,gBAAA;EjBu3MF;AACF;AACA;;;;EAIE;AKz7MD;EaIC,mCAAA;UAAA,2BAAA;AlBw7MF;AK57MC;EaIC,kIAAA;UAAA,0HAAA;AlB27MF;AK/7MC;EaIC,kIAAA;UAAA,0HAAA;AlB87MF;AKl8MC;EaIC,kIAAA;UAAA,0HAAA;AlBi8MF;AKr8MC;EaIC,mIAAA;UAAA,2HAAA;AlBo8MF;AKx8MC;EaIC,mIAAA;UAAA,2HAAA;AlBu8MF;AK38MC;EaIC,oIAAA;UAAA,4HAAA;AlB08MF;AK98MC;EaIC,wIAAA;UAAA,gIAAA;AlB68MF;AKj9MC;EaIC,wIAAA;UAAA,gIAAA;AlBg9MF;AKp9MC;EaIC,wIAAA;UAAA,gIAAA;AlBm9MF;AKv9MC;EaIC,yIAAA;UAAA,iIAAA;AlBs9MF;AK19MC;EaIC,yIAAA;UAAA,iIAAA;AlBy9MF;AK79MC;EaIC,yIAAA;UAAA,iIAAA;AlB49MF;AKh+MC;EaIC,yIAAA;UAAA,iIAAA;AlB+9MF;AKn+MC;EaIC,yIAAA;UAAA,iIAAA;AlBk+MF;AKt+MC;EaIC,yIAAA;UAAA,iIAAA;AlBq+MF;AKz+MC;EaIC,0IAAA;UAAA,kIAAA;AlBw+MF;AK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,4BAAA;EACA,qCAAA;UAAA,6BAAA;A3B2jON;AI51OI;EuBwSE,+BAAA;A3BujON;AI/1OI;EuB8SA,+BAAA;A3BojOJ;AIl2OI;EuBmTE,gCAAA;A3BkjON;AIr2OI;EuByTA,cAAA;A3B+iOJ;AIx2OI;EuB8TA,+BAAA;A3B6iOJ;AI32OI;EuBmUA,+BAAA;A3B2iOJ;AI92OI;;EuB2UE,4BAAA;EACA,qCAAA;UAAA,6BAAA;A3BuiON;AIn3OI;EuBgVE,cAAA;A3BsiON;AIt3OI;;EuBwVE,+BAAA;A3BkiON;AI13OI;EuB4VE,+BAAA;A3BiiON;AI73OI;EuBgWE,6CAAA;A3BgiON;AI33OI;EACE;IuBkRF,WAAA;IACA,6CAAA;E3B4mOF;E2B1mOE;IACE,+BAAA;E3B4mOJ;E2BzmOE;IACE,4BAAA;IACA,qCAAA;YAAA,6BAAA;E3B2mOJ;EIt4OI;IuBkSA,+BAAA;E3BumOJ;EIz4OI;IuBwSF,+BAAA;E3BomOF;EI54OI;IuB6SA,gCAAA;E3BkmOJ;EI/4OI;IuBmTF,cAAA;E3B+lOF;EIl5OI;IuBwTF,+BAAA;E3B6lOF;EIr5OI;IuB6TF,+BAAA;E3B2lOF;EIx5OI;;IuBqUA,4BAAA;IACA,qCAAA;YAAA,6BAAA;E3BulOJ;EI75OI;IuB0UA,cAAA;E3BslOJ;EIh6OI;;IuBkVA,+BAAA;E3BklOJ;EIp6OI;IuBsVA,+BAAA;E3BilOJ;EIv6OI;IuB0VA,6CAAA;E3BglOJ;AACF;AACA;;;;EAIE;AKx7OD;EsB0XS,4BAAA;EACA,qCAAA;UAAA,6BAAA;A3BikOV;AK57OC;;;EsBiYS,8BAAA;A3BgkOV;A2BziOU;EAbI,4BAAA;EACA,qCAAA;UAAA,6BAAA;A3ByjOd;A2B7iOU;;;EANI,cAAA;A3BwjOd;A2B5iOU;EACE;IApBE,4BAAA;IACA,qCAAA;YAAA,6BAAA;E3BmkOZ;E2BhjOU;;;IAbE,cAAA;E3BkkOZ;AACF;AKr9OC;EsB0XS,4BAAA;EACA,qCAAA;UAAA,6BAAA;A3B8lOV;AKz9OC;;;EsBiYS,8BAAA;A3B6lOV;A2BtkOU;EAbI,4BAAA;EACA,qCAAA;UAAA,6BAAA;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AA;A7BwrQR;A6BtrQQ;EACE,yBAAA;A7BwrQV;A6BjrQQ;;EACE,uDAAA;UAAA,+CAAA;A7BorQV;AK9yQC;EwB+GO,qBAAA;A7BksQR;A6BhsQQ;EACE,yBAAA;A7BksQV;A6B3rQQ;;EACE,uDAAA;UAAA,+CAAA;A7B8rQV;AKxzQC;EwB+GO,qBAAA;A7B4sQR;A6B1sQQ;EACE,yBAAA;A7B4sQV;A6BrsQQ;;EACE,uDAAA;UAAA,+CAAA;A7BwsQV;AKl0QC;EwB+GO,qBAAA;A7BstQR;A6BptQQ;EACE,yBAAA;A7BstQV;A6B/sQQ;;EACE,uDAAA;UAAA,+CAAA;A7BktQV;AK50QC;EwB+GO,qBAAA;A7BguQR;A6B9tQQ;EACE,yBAAA;A7BguQV;A6BztQQ;;EACE,uDAAA;UAAA,+CAAA;A7B4tQV;AKt1QC;EwB+GO,qBAAA;A7B0uQR;A6BxuQQ;EACE,yBAAA;A7B0uQV;A6BnuQQ;;EACE,wDAAA;UAAA,gDAAA;A7BsuQV;AKh2QC;EwB+GO,qBAAA;A7BovQR;A6BlvQQ;EACE,yBAAA;A7BovQV;A6B7uQQ;;EACE,uDAAA;UAAA,+CAAA;A7BgvQV;AK12QC;EwB+GO,qBAAA;A7B8vQR;A6B5vQQ;EACE,yBAAA;A7B8vQV;A6BvvQQ;;EACE,uDAAA;UAAA,+CAAA;A7B0vQV;AKp3QC;EwB+GO,qBAAA;A7BwwQR;A6BtwQQ;EACE,yBAAA;A7BwwQV;A6BjwQQ;;EACE,uDAAA;UAAA,+CAAA;A7BowQV;AK93QC;EwB+GO,qBAAA;A7BkxQR;A6BhxQQ;EACE,yBAAA;A7BkxQV;A6B3wQQ;;EACE,uDAAA;UAAA,+CAAA;A7B8wQV;AKx4QC;EwB+GO,qBAAA;A7B4xQR;A6B1xQQ;EACE,yBAAA;A7B4xQV;A6BrxQQ;;EACE,uDAAA;UAAA,+CAAA;A7BwxQV;AKl5QC;EwB+GO,qBAAA;A7BsyQR;A6BpyQQ;EACE,yBAAA;A7BsyQV;A6B/xQQ;;EACE,uDAAA;UAAA,+CAAA;A7BkyQV;AK55QC;EwB+GO,qBAAA;A7BgzQR;A6B9yQQ;EACE,yBAAA;A7BgzQV;A6BzyQQ;;EACE,uDAAA;UAAA,+CAAA;A7B4yQV;AKt6QC;EwB+GO,qBAAA;A7B0zQR;A6BxzQQ;EACE,yBAAA;A7B0zQV;A6BnzQQ;;EACE,sDAAA;UAAA,8CAAA;A7BszQV;AKh7QC;EwB+GO,qBAAA;A7Bo0QR;A6Bl0QQ;EACE,yBAAA;A7Bo0QV;A6B7zQQ;;EACE,wDAAA;UAAA,gDAAA;A7Bg0QV;AK17QC;EwB+GO,qBAAA;A7B80QR;A6B50QQ;EACE,yBAAA;A7B80QV;A6Bv0QQ;;EACE,sDAAA;UAAA,8CAAA;A7B00QV;AACA;;;;EAIE;AIv8QE;EyB0IA,sCAAA;A7Bg0QJ;AI18QI;EyB+IA,iDAAA;A7B8zQJ;A6BzzQI;EACE,qDAAA;A7B2zQN;A6BpzQI;;EACE,uDAAA;UAAA,+CAAA;A7BuzQN;AI/8QI;EACE;IyBoIF,sCAAA;E7B80QF;EIl9QI;IyByIF,iDAAA;E7B40QF;E6Bv0QE;IACE,qDAAA;E7By0QJ;E6Bl0QE;;IACE,uDAAA;YAAA,+CAAA;E7Bq0QJ;AACF;AACA;;;;EAIE;A8Bp+QF;EACE,qBAAA;EACA,YAAA;EACA,iBAAA;EACA,eAAA;EACA,yBAAA;KAAA,sBAAA;MAAA,qBAAA;UAAA,iBAAA;A9Bs+QF;A8B3+QA;EASI,kBAAA;EACA,QAAA;EACA,SAAA;EACA,gBAAA;EACA,UAAA;A9Bq+QJ;AACA,SAAS;A8Bj+QT;EACE,kBAAA;EACA,qBAAA;EACA,WAAA;EACA,YAAA;EACA,sBAAA;EACA,qCAAA;EACA,mBAAA;EACA,sEAAA;EAAA,8DAAA;A9Bm+QF;A8Bh+QE;EACE,kBAAA;EACA,SAAA;EACA,UAAA;EACA,qBAAA;EACA,WAAA;EACA,YAAA;EACA,yBAAA;EACA,mBAAA;EACA,qKAAA;EAAA,6JAAA;EAAA,qJAAA;EAAA,4MAAA;EAGA,YAAA;EZ3CF,uHAAA;UAAA,+GAAA;AlB4gRF;AACA,YAAY;A8B59QZ;EACE,yCAAA;A9B89QF;A8B59QE;EACE,UAAA;EACA,yBAAA;A9B89QJ;AACA,mBAAmB;A8Bx9QjB;;EACE,sJAAA;UAAA,8IAAA;A9B29QJ;AACA,cAAc;A8B98QZ;;EACE,4JAAA;UAAA,oJAAA;A9Bi9QJ;AACA,SAAS;A8Bt8QT;EACE,gDAAA;A9Bw8QF;A8Bt8QE;EACE,oCAAA;A9Bw8QJ;AACA;;;;EAIE;AK9iRD;EyBuHO,yCAAA;A9B07QR;A8Bx7QQ;EACE,yBAAA;A9B07QV;A8Bn7QQ;;EACE,4JAAA;UAAA,oJAAA;A9Bs7QV;AKxjRC;EyBuHO,yCAAA;A9Bo8QR;A8Bl8QQ;EACE,yBAAA;A9Bo8QV;A8B77QQ;;EACE,4JAAA;UAAA,oJAAA;A9Bg8QV;AKlkRC;EyBuHO,yCAAA;A9B88QR;A8B58QQ;EACE,yBAAA;A9B88QV;A8Bv8QQ;;EACE,4JAAA;UAAA,oJAAA;A9B08QV;AK5kRC;EyBuHO,yCAAA;A9Bw9QR;A8Bt9QQ;EACE,yBAAA;A9Bw9QV;A8Bj9QQ;;EACE,4JAAA;UAAA,oJAAA;A9Bo9QV;AKtlRC;EyBuHO,yCAAA;A9Bk+QR;A8Bh+QQ;EACE,yBAAA;A9Bk+QV;A8B39QQ;;EACE,4JAAA;UAAA,oJAAA;A9B89QV;AKhmRC;EyBuHO,0CAAA;A9B4+QR;A8B1+QQ;EACE,yBAAA;A9B4+QV;A8Br+QQ;;EACE,6JAAA;UAAA,qJAAA;A9Bw+QV;AK1mRC;EyBuHO,yCAAA;A9Bs/QR;A8Bp/QQ;EACE,yBAAA;A9Bs/QV;A8B/+QQ;;EACE,4JAAA;UAAA,oJAAA;A9Bk/QV;AKpnRC;EyBuHO,yCAAA;A9BggRR;A8B9/QQ;EACE,yBAAA;A9BggRV;A8Bz/QQ;;EACE,4JAAA;UAAA,oJAAA;A9B4/QV;AK9nRC;EyBuHO,yCAAA;A9B0gRR;A8BxgRQ;EACE,yBAAA;A9B0gRV;A8BngRQ;;EACE,4JAAA;UAAA,oJAAA;A9BsgRV;AKxoRC;EyBuHO,yCAAA;A9BohRR;A8BlhRQ;EACE,yBAAA;A9BohRV;A8B7gRQ;;EACE,4JAAA;UAAA,oJAAA;A9BghRV;AKlpRC;EyBuHO,yCAAA;A9B8hRR;A8B5hRQ;EACE,yBAAA;A9B8hRV;A8BvhRQ;;EACE,4JAAA;UAAA,oJAAA;A9B0hRV;AK5pRC;EyBuHO,yCAAA;A9BwiRR;A8BtiRQ;EACE,yBAAA;A9BwiRV;A8BjiRQ;;EACE,4JAAA;UAAA,oJAAA;A9BoiRV;AKtqRC;EyBuHO,yCAAA;A9BkjRR;A8BhjRQ;EACE,yBAAA;A9BkjRV;A8B3iRQ;;EACE,4JAAA;UAAA,oJAAA;A9B8iRV;AKhrRC;EyBuHO,wCAAA;A9B4jRR;A8B1jRQ;EACE,yBAAA;A9B4jRV;A8BrjRQ;;EACE,2JAAA;UAAA,mJAAA;A9BwjRV;AK1rRC;EyBuHO,0CAAA;A9BskRR;A8BpkRQ;EACE,yBAAA;A9BskRV;A8B/jRQ;;EACE,6JAAA;UAAA,qJAAA;A9BkkRV;AKpsRC;EyBuHO,wCAAA;A9BglRR;A8B9kRQ;EACE,yBAAA;A9BglRV;A8BzkRQ;;EACE,2JAAA;UAAA,mJAAA;A9B4kRV;AACA;;;;EAIE;AIjtRE;E0ByJA,0CAAA;A9B2jRJ;A8BzjRI;EACE,yBAAA;A9B2jRN;AKztRC;EyB8KS,0CAAA;A9B8iRV;A8B5iRU;EACE,yBAAA;A9B8iRZ;AK/tRC;EyB8KS,0CAAA;A9BojRV;A8BljRU;EACE,yBAAA;A9BojRZ;AKruRC;EyB8KS,0CAAA;A9B0jRV;A8BxjRU;EACE,yBAAA;A9B0jRZ;AK3uRC;EyB8KS,0CAAA;A9BgkRV;A8B9jRU;EACE,yBAAA;A9BgkRZ;AKjvRC;EyB8KS,0CAAA;A9BskRV;A8BpkRU;EACE,yBAAA;A9BskRZ;AKvvRC;EyB8KS,0CAAA;A9B4kRV;A8B1kRU;EACE,yBAAA;A9B4kRZ;AK7vRC;EyB8KS,0CAAA;A9BklRV;A8BhlRU;EACE,yBAAA;A9BklRZ;AKnwRC;EyB8KS,0CAAA;A9BwlRV;A8BtlRU;EACE,yBAAA;A9BwlRZ;AKzwRC;EyB8KS,0CAAA;A9B8lRV;A8B5lRU;EACE,yBAAA;A9B8lRZ;AK/wRC;EyB8KS,0CAAA;A9BomRV;A8BlmRU;EACE,yBAAA;A9BomRZ;AKrxRC;EyB8KS,0CAAA;A9B0mRV;A8BxmRU;EACE,yBAAA;A9B0mRZ;AK3xRC;EyB8KS,0CAAA;A9BgnRV;A8B9mRU;EACE,yBAAA;A9BgnRZ;AKjyRC;EyB8KS,0CAAA;A9BsnRV;A8BpnRU;EACE,yBAAA;A9BsnRZ;AKvyRC;EyB8KS,0CAAA;A9B4nRV;A8B1nRU;EACE,yBAAA;A9B4nRZ;AK7yRC;EyB8KS,0CAAA;A9BkoRV;A8BhoRU;EACE,yBAAA;A9BkoRZ;AKnzRC;EyB8KS,0CAAA;A9BwoRV;A8BtoRU;EACE,yBAAA;A9BwoRZ;A8B5nRI;;EACE,4JAAA;UAAA,oJAAA;A9B+nRN;AI3zRI;E0ByMA,qDAAA;A9BqnRJ;A8BnnRI;EACE,oCAAA;A9BqnRN;AI5zRI;EACE;I0BmJF,0CAAA;E9B4qRF;E8B1qRE;IACE,yBAAA;E9B4qRJ;EK10RD;IyB8KS,0CAAA;E9B+pRR;E8B7pRQ;IACE,yBAAA;E9B+pRV;EKh1RD;IyB8KS,0CAAA;E9BqqRR;E8BnqRQ;IACE,yBAAA;E9BqqRV;EKt1RD;IyB8KS,0CAAA;E9B2qRR;E8BzqRQ;IACE,yBAAA;E9B2qRV;EK51RD;IyB8KS,0CAAA;E9BirRR;E8B/qRQ;IACE,yBAAA;E9BirRV;EKl2RD;IyB8KS,0CAAA;E9BurRR;E8BrrRQ;IACE,yBAAA;E9BurRV;EKx2RD;IyB8KS,0CAAA;E9B6rRR;E8B3rRQ;IACE,yBAAA;E9B6rRV;EK92RD;IyB8KS,0CAAA;E9BmsRR;E8BjsRQ;IACE,yBAAA;E9BmsRV;EKp3RD;IyB8KS,0CAAA;E9BysRR;E8BvsRQ;IACE,yBAAA;E9BysRV;EK13RD;IyB8KS,0CAAA;E9B+sRR;E8B7sRQ;IACE,yBAAA;E9B+sRV;EKh4RD;IyB8KS,0CAAA;E9BqtRR;E8BntRQ;IACE,yBAAA;E9BqtRV;EKt4RD;IyB8KS,0CAAA;E9B2tRR;E8BztRQ;IACE,yBAAA;E9B2tRV;EK54RD;IyB8KS,0CAAA;E9BiuRR;E8B/tRQ;IACE,yBAAA;E9BiuRV;EKl5RD;IyB8KS,0CAAA;E9BuuRR;E8BruRQ;IACE,yBAAA;E9BuuRV;EKx5RD;IyB8KS,0CAAA;E9B6uRR;E8B3uRQ;IACE,yBAAA;E9B6uRV;EK95RD;IyB8KS,0CAAA;E9BmvRR;E8BjvRQ;IACE,yBAAA;E9BmvRV;EKp6RD;IyB8KS,0CAAA;E9ByvRR;E8BvvRQ;IACE,yBAAA;E9ByvRV;E8B7uRE;;IACE,4JAAA;YAAA,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AAA;AtCs4UR;AKnjVC;EiCyKO,cAAA;AtC64UR;AKtjVC;EiC6KO,yBAAA;AtC44UR;AKzjVC;EiCyKO,cAAA;AtCm5UR;AK5jVC;EiC6KO,yBAAA;AtCk5UR;AK/jVC;EiCyKO,cAAA;AtCy5UR;AKlkVC;EiC6KO,yBAAA;AtCw5UR;AKrkVC;EiCyKO,cAAA;AtC+5UR;AKxkVC;EiC6KO,yBAAA;AtC85UR;AK3kVC;EiCyKO,cAAA;AtCq6UR;AK9kVC;EiC6KO,yBAAA;AtCo6UR;AKjlVC;EiCyKO,cAAA;AtC26UR;AKplVC;EiC6KO,yBAAA;AtC06UR;AKvlVC;EiCyKO,cAAA;AtCi7UR;AK1lVC;EiC6KO,yBAAA;AtCg7UR;AK7lVC;EiCyKO,cAAA;AtCu7UR;AKhmVC;EiC6KO,yBAAA;AtCs7UR;AKnmVC;EiCyKO,cAAA;AtC67UR;AKtmVC;EiC6KO,yBAAA;AtC47UR;AKzmVC;EiCyKO,cAAA;AtCm8UR;AK5mVC;EiC6KO,yBAAA;AtCk8UR;AK/mVC;EiCyKO,cAAA;AtCy8UR;AKlnVC;EiC6KO,yBAAA;AtCw8UR;AKrnVC;EiCyKO,cAAA;AtC+8UR;AKxnVC;EiC6KO,yBAAA;AtC88UR;AK3nVC;EiCyKO,cAAA;AtCq9UR;AK9nVC;EiC6KO,yBAAA;AtCo9UR;AACA,aAAa;AsC58Ub;EAEI,cAAA;AtC68UJ;AsC/8UA;EAKI,yBAAA;AtC68UJ;AG1hVI;EACE,UAAA;EACA,WAAA;EACA,uBAAA;AH4hVN;AG1hVM;EAAA;IACE,UAAA;IACA,WAAA;EH6hVN;AACF;AG1hVI;EACE,oCAAA;AH4hVN;AACA;;;;;;EAME;AuCrpVF;;EAEE,kBAAA;EACA,8BAAA;UAAA,sBAAA;EACA,YAAA;EACA,mBAAA;EACA,kBAAA;EACA,0BAAA;EACA,gBAAA;EACA,eAAA;EACA,iBAAA;EACA,eAAA;EpC6CA,gBAAA;EACA,mBAAA;EACA,uBAAA;AH2mVF;AuCtpVA;EACE,kBAAA;AvCwpVF;AACA;;;;EAIE;AInrVE;;EmCiCA,+BAAA;AvCspVJ;AIlrVI;EACE;;ImC2BF,+BAAA;EvC2pVF;AACF;AACA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4XA;EACE;IACE,OAAA;IACA,QAAA;EnD64XF;EmD34XA;IACE,SAAA;IACA,UAAA;EnD64XF;EmD34XA;IACE,UAAA;IACA,QAAA;EnD64XF;AACF;AmDz5XA;EACE;IACE,OAAA;IACA,QAAA;EnD64XF;EmD34XA;IACE,SAAA;IACA,UAAA;EnD64XF;EmD34XA;IACE,UAAA;IACA,QAAA;EnD64XF;AACF;AmD14XA;EACE;IACE,OAAA;IACA,QAAA;EnD44XF;EmD14XA;IACE,OAAA;IACA,QAAA;EnD44XF;EmD14XA;IACE,OAAA;IACA,UAAA;EnD44XF;EmD14XA;IACE,UAAA;IACA,QAAA;EnD44XF;AACF;AmD55XA;EACE;IACE,OAAA;IACA,QAAA;EnD44XF;EmD14XA;IACE,OAAA;IACA,QAAA;EnD44XF;EmD14XA;IACE,OAAA;IACA,UAAA;EnD44XF;EmD14XA;IACE,UAAA;IACA,QAAA;EnD44XF;AACF;AACA;;;;EAIE;AKt+XD;E8CsGO,wCAAA;AnDm4XR;AKz+XC;;EC4CC,yBAAA;ANi8XF;AK7+XC;E8CsGO,yCAAA;AnD04XR;AKh/XC;;EC4CC,yBAAA;ANw8XF;AKp/XC;E8CsGO,yCAAA;AnDi5XR;AKv/XC;;EC4CC,yBAAA;AN+8XF;AK3/XC;E8CsGO,wCAAA;AnDw5XR;AK9/XC;;EC4CC,yBAAA;ANs9XF;AKlgYC;E8CsGO,wCAAA;AnD+5XR;AKrgYC;;EC4CC,yBAAA;AN69XF;AKzgYC;E8CsGO,wCAAA;AnDs6XR;AK5gYC;;EC4CC,yBAAA;ANo+XF;AKhhYC;E8CsGO,yCAAA;AnD66XR;AKnhYC;;EC4CC,yBAAA;AN2+XF;AKvhYC;E8CsGO,wCAAA;AnDo7XR;AK1hYC;;EC4CC,yBAAA;ANk/XF;AK9hYC;E8CsGO,0CAAA;AnD27XR;AKjiYC;;EC4CC,yBAAA;ANy/XF;AKriYC;E8CsGO,wCAAA;AnDk8XR;AKxiYC;;EC4CC,yBAAA;ANggYF;AK5iYC;E8CsGO,wCAAA;AnDy8XR;AK/iYC;;EC4CC,yBAAA;ANugYF;AKnjYC;E8CsGO,yCAAA;AnDg9XR;AKtjYC;;EC4CC,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","file":"mdui.css","sourcesContent":["/*!\n * mdui 1.0.2 (https://mdui.org)\n * Copyright 2016-2021 zdhxiong\n * Licensed under MIT\n *//*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\nhtml {\n line-height: 1.15; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n\n/**\n * Remove the margin in all browsers.\n */\n\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\n\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Remove the gray background on active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove the border on images inside links in IE 10.\n */\n\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput { /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect { /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\n\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\n\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n\n/**\n * Add the correct display in IE 10+.\n */\n\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n\n[hidden] {\n display: none;\n}\n\n/**\n * =============================================================================\n * ************ 公共样式 ************\n * =============================================================================\n */\n* {\n -webkit-tap-highlight-color: transparent;\n}\nbody {\n color: rgba(0, 0, 0, 0.87);\n font-size: 14px;\n font-family: Roboto, Noto, Helvetica, Arial, sans-serif;\n background-color: #fff;\n}\n@media (min-width: 600px) {\n body {\n font-size: 14.5px;\n }\n}\n@media (min-width: 1024px) {\n body {\n font-size: 15px;\n }\n}\nbody *::-webkit-scrollbar {\n width: 5px;\n height: 5px;\n background: transparent;\n}\n@media (min-width: 1024px) {\n body *::-webkit-scrollbar {\n width: 8px;\n height: 8px;\n }\n}\nbody *::-webkit-scrollbar-thumb {\n background: rgba(0, 0, 0, 0.2);\n}\n/* 锁定屏幕 */\nbody.mdui-locked {\n overflow: hidden;\n}\n/* 遮罩层 */\n.mdui-overlay {\n position: fixed;\n top: -5000px;\n right: -5000px;\n bottom: -5000px;\n left: -5000px;\n z-index: 2000;\n background: rgba(0, 0, 0, 0.4);\n backface-visibility: hidden;\n visibility: hidden;\n opacity: 0;\n transition-duration: 0.3s;\n transition-property: opacity, visibility;\n will-change: opacity;\n}\n/* 显示遮罩层 */\n.mdui-overlay-show {\n visibility: visible;\n opacity: 1;\n}\n/* 取消 transition 过渡效果 */\n.mdui-no-transition {\n transition-property: none !important;\n}\n/**\n * =============================================================================\n * ************ Global dark ************\n * =============================================================================\n */\n.mdui-theme-layout-dark {\n color: #fff;\n background-color: #303030;\n}\n.mdui-theme-layout-dark *::-webkit-scrollbar {\n width: 5px;\n height: 5px;\n background: transparent;\n}\n@media (min-width: 1024px) {\n .mdui-theme-layout-dark *::-webkit-scrollbar {\n width: 8px;\n height: 8px;\n }\n}\n.mdui-theme-layout-dark *::-webkit-scrollbar-thumb {\n background: rgba(255, 255, 255, 0.3);\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-layout-auto {\n color: #fff;\n background-color: #303030;\n }\n .mdui-theme-layout-auto *::-webkit-scrollbar {\n width: 5px;\n height: 5px;\n background: transparent;\n }\n .mdui-theme-layout-auto *::-webkit-scrollbar-thumb {\n background: rgba(255, 255, 255, 0.3);\n }\n}\n@media (prefers-color-scheme: dark) and (min-width: 1024px) {\n .mdui-theme-layout-auto *::-webkit-scrollbar {\n width: 8px;\n height: 8px;\n }\n}\n/**\n * =============================================================================\n * ************ Color 颜色 ************\n * =============================================================================\n */\n/**\n * .mdui-theme-primary-[color] .mdui-color-theme\n * .mdui-theme-primary-[color] .mdui-color-theme-[degree]\n */\n.mdui-theme-primary-amber .mdui-color-theme {\n background-color: #FFC107 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-amber .mdui-color-theme-50 {\n background-color: #FFF8E1 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-amber .mdui-color-theme-100 {\n background-color: #FFECB3 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-amber .mdui-color-theme-200 {\n background-color: #FFE082 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-amber .mdui-color-theme-300 {\n background-color: #FFD54F !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-amber .mdui-color-theme-400 {\n background-color: #FFCA28 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-amber .mdui-color-theme-500 {\n background-color: #FFC107 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-amber .mdui-color-theme-600 {\n background-color: #FFB300 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-amber .mdui-color-theme-700 {\n background-color: #FFA000 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-amber .mdui-color-theme-800 {\n background-color: #FF8F00 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-amber .mdui-color-theme-900 {\n background-color: #FF6F00 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-blue .mdui-color-theme {\n background-color: #2196F3 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-blue .mdui-color-theme-50 {\n background-color: #E3F2FD !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-blue .mdui-color-theme-100 {\n background-color: #BBDEFB !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-blue .mdui-color-theme-200 {\n background-color: #90CAF9 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-blue .mdui-color-theme-300 {\n background-color: #64B5F6 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-blue .mdui-color-theme-400 {\n background-color: #42A5F5 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-blue .mdui-color-theme-500 {\n background-color: #2196F3 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-blue .mdui-color-theme-600 {\n background-color: #1E88E5 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-blue .mdui-color-theme-700 {\n background-color: #1976D2 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-blue .mdui-color-theme-800 {\n background-color: #1565C0 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-blue .mdui-color-theme-900 {\n background-color: #0D47A1 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-blue-grey .mdui-color-theme {\n background-color: #607D8B !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-blue-grey .mdui-color-theme-50 {\n background-color: #ECEFF1 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-blue-grey .mdui-color-theme-100 {\n background-color: #CFD8DC !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-blue-grey .mdui-color-theme-200 {\n background-color: #B0BEC5 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-blue-grey .mdui-color-theme-300 {\n background-color: #90A4AE !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-blue-grey .mdui-color-theme-400 {\n background-color: #78909C !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-blue-grey .mdui-color-theme-500 {\n background-color: #607D8B !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-blue-grey .mdui-color-theme-600 {\n background-color: #546E7A !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-blue-grey .mdui-color-theme-700 {\n background-color: #455A64 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-blue-grey .mdui-color-theme-800 {\n background-color: #37474F !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-blue-grey .mdui-color-theme-900 {\n background-color: #263238 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-brown .mdui-color-theme {\n background-color: #795548 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-brown .mdui-color-theme-50 {\n background-color: #EFEBE9 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-brown .mdui-color-theme-100 {\n background-color: #D7CCC8 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-brown .mdui-color-theme-200 {\n background-color: #BCAAA4 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-brown .mdui-color-theme-300 {\n background-color: #A1887F !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-brown .mdui-color-theme-400 {\n background-color: #8D6E63 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-brown .mdui-color-theme-500 {\n background-color: #795548 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-brown .mdui-color-theme-600 {\n background-color: #6D4C41 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-brown .mdui-color-theme-700 {\n background-color: #5D4037 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-brown .mdui-color-theme-800 {\n background-color: #4E342E !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-brown .mdui-color-theme-900 {\n background-color: #3E2723 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-cyan .mdui-color-theme {\n background-color: #00BCD4 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-cyan .mdui-color-theme-50 {\n background-color: #E0F7FA !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-cyan .mdui-color-theme-100 {\n background-color: #B2EBF2 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-cyan .mdui-color-theme-200 {\n background-color: #80DEEA !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-cyan .mdui-color-theme-300 {\n background-color: #4DD0E1 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-cyan .mdui-color-theme-400 {\n background-color: #26C6DA !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-cyan .mdui-color-theme-500 {\n background-color: #00BCD4 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-cyan .mdui-color-theme-600 {\n background-color: #00ACC1 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-cyan .mdui-color-theme-700 {\n background-color: #0097A7 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-cyan .mdui-color-theme-800 {\n background-color: #00838F !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-cyan .mdui-color-theme-900 {\n background-color: #006064 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-deep-orange .mdui-color-theme {\n background-color: #FF5722 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-deep-orange .mdui-color-theme-50 {\n background-color: #FBE9E7 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-deep-orange .mdui-color-theme-100 {\n background-color: #FFCCBC !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-deep-orange .mdui-color-theme-200 {\n background-color: #FFAB91 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-deep-orange .mdui-color-theme-300 {\n background-color: #FF8A65 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-deep-orange .mdui-color-theme-400 {\n background-color: #FF7043 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-deep-orange .mdui-color-theme-500 {\n background-color: #FF5722 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-deep-orange .mdui-color-theme-600 {\n background-color: #F4511E !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-deep-orange .mdui-color-theme-700 {\n background-color: #E64A19 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-deep-orange .mdui-color-theme-800 {\n background-color: #D84315 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-deep-orange .mdui-color-theme-900 {\n background-color: #BF360C !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-deep-purple .mdui-color-theme {\n background-color: #673AB7 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-deep-purple .mdui-color-theme-50 {\n background-color: #EDE7F6 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-deep-purple .mdui-color-theme-100 {\n background-color: #D1C4E9 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-deep-purple .mdui-color-theme-200 {\n background-color: #B39DDB !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-deep-purple .mdui-color-theme-300 {\n background-color: #9575CD !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-deep-purple .mdui-color-theme-400 {\n background-color: #7E57C2 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-deep-purple .mdui-color-theme-500 {\n background-color: #673AB7 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-deep-purple .mdui-color-theme-600 {\n background-color: #5E35B1 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-deep-purple .mdui-color-theme-700 {\n background-color: #512DA8 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-deep-purple .mdui-color-theme-800 {\n background-color: #4527A0 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-deep-purple .mdui-color-theme-900 {\n background-color: #311B92 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-green .mdui-color-theme {\n background-color: #4CAF50 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-green .mdui-color-theme-50 {\n background-color: #E8F5E9 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-green .mdui-color-theme-100 {\n background-color: #C8E6C9 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-green .mdui-color-theme-200 {\n background-color: #A5D6A7 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-green .mdui-color-theme-300 {\n background-color: #81C784 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-green .mdui-color-theme-400 {\n background-color: #66BB6A !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-green .mdui-color-theme-500 {\n background-color: #4CAF50 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-green .mdui-color-theme-600 {\n background-color: #43A047 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-green .mdui-color-theme-700 {\n background-color: #388E3C !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-green .mdui-color-theme-800 {\n background-color: #2E7D32 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-green .mdui-color-theme-900 {\n background-color: #1B5E20 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-grey .mdui-color-theme {\n background-color: #9E9E9E !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-grey .mdui-color-theme-50 {\n background-color: #FAFAFA !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-grey .mdui-color-theme-100 {\n background-color: #F5F5F5 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-grey .mdui-color-theme-200 {\n background-color: #EEEEEE !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-grey .mdui-color-theme-300 {\n background-color: #E0E0E0 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-grey .mdui-color-theme-400 {\n background-color: #BDBDBD !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-grey .mdui-color-theme-500 {\n background-color: #9E9E9E !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-grey .mdui-color-theme-600 {\n background-color: #757575 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-grey .mdui-color-theme-700 {\n background-color: #616161 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-grey .mdui-color-theme-800 {\n background-color: #424242 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-grey .mdui-color-theme-900 {\n background-color: #212121 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-indigo .mdui-color-theme {\n background-color: #3F51B5 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-indigo .mdui-color-theme-50 {\n background-color: #E8EAF6 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-indigo .mdui-color-theme-100 {\n background-color: #C5CAE9 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-indigo .mdui-color-theme-200 {\n background-color: #9FA8DA !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-indigo .mdui-color-theme-300 {\n background-color: #7986CB !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-indigo .mdui-color-theme-400 {\n background-color: #5C6BC0 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-indigo .mdui-color-theme-500 {\n background-color: #3F51B5 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-indigo .mdui-color-theme-600 {\n background-color: #3949AB !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-indigo .mdui-color-theme-700 {\n background-color: #303F9F !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-indigo .mdui-color-theme-800 {\n background-color: #283593 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-indigo .mdui-color-theme-900 {\n background-color: #1A237E !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-light-blue .mdui-color-theme {\n background-color: #03A9F4 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-light-blue .mdui-color-theme-50 {\n background-color: #E1F5FE !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-light-blue .mdui-color-theme-100 {\n background-color: #B3E5FC !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-light-blue .mdui-color-theme-200 {\n background-color: #81D4FA !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-light-blue .mdui-color-theme-300 {\n background-color: #4FC3F7 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-light-blue .mdui-color-theme-400 {\n background-color: #29B6F6 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-light-blue .mdui-color-theme-500 {\n background-color: #03A9F4 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-light-blue .mdui-color-theme-600 {\n background-color: #039BE5 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-light-blue .mdui-color-theme-700 {\n background-color: #0288D1 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-light-blue .mdui-color-theme-800 {\n background-color: #0277BD !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-light-blue .mdui-color-theme-900 {\n background-color: #01579B !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-light-green .mdui-color-theme {\n background-color: #8BC34A !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-light-green .mdui-color-theme-50 {\n background-color: #F1F8E9 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-light-green .mdui-color-theme-100 {\n background-color: #DCEDC8 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-light-green .mdui-color-theme-200 {\n background-color: #C5E1A5 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-light-green .mdui-color-theme-300 {\n background-color: #AED581 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-light-green .mdui-color-theme-400 {\n background-color: #9CCC65 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-light-green .mdui-color-theme-500 {\n background-color: #8BC34A !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-light-green .mdui-color-theme-600 {\n background-color: #7CB342 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-light-green .mdui-color-theme-700 {\n background-color: #689F38 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-light-green .mdui-color-theme-800 {\n background-color: #558B2F !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-light-green .mdui-color-theme-900 {\n background-color: #33691E !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-lime .mdui-color-theme {\n background-color: #CDDC39 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-lime .mdui-color-theme-50 {\n background-color: #F9FBE7 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-lime .mdui-color-theme-100 {\n background-color: #F0F4C3 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-lime .mdui-color-theme-200 {\n background-color: #E6EE9C !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-lime .mdui-color-theme-300 {\n background-color: #DCE775 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-lime .mdui-color-theme-400 {\n background-color: #D4E157 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-lime .mdui-color-theme-500 {\n background-color: #CDDC39 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-lime .mdui-color-theme-600 {\n background-color: #C0CA33 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-lime .mdui-color-theme-700 {\n background-color: #AFB42B !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-lime .mdui-color-theme-800 {\n background-color: #9E9D24 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-lime .mdui-color-theme-900 {\n background-color: #827717 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-orange .mdui-color-theme {\n background-color: #FF9800 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-orange .mdui-color-theme-50 {\n background-color: #FFF3E0 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-orange .mdui-color-theme-100 {\n background-color: #FFE0B2 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-orange .mdui-color-theme-200 {\n background-color: #FFCC80 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-orange .mdui-color-theme-300 {\n background-color: #FFB74D !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-orange .mdui-color-theme-400 {\n background-color: #FFA726 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-orange .mdui-color-theme-500 {\n background-color: #FF9800 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-orange .mdui-color-theme-600 {\n background-color: #FB8C00 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-orange .mdui-color-theme-700 {\n background-color: #F57C00 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-orange .mdui-color-theme-800 {\n background-color: #EF6C00 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-orange .mdui-color-theme-900 {\n background-color: #E65100 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-pink .mdui-color-theme {\n background-color: #E91E63 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-pink .mdui-color-theme-50 {\n background-color: #FCE4EC !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-pink .mdui-color-theme-100 {\n background-color: #F8BBD0 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-pink .mdui-color-theme-200 {\n background-color: #F48FB1 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-pink .mdui-color-theme-300 {\n background-color: #F06292 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-pink .mdui-color-theme-400 {\n background-color: #EC407A !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-pink .mdui-color-theme-500 {\n background-color: #E91E63 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-pink .mdui-color-theme-600 {\n background-color: #D81B60 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-pink .mdui-color-theme-700 {\n background-color: #C2185B !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-pink .mdui-color-theme-800 {\n background-color: #AD1457 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-pink .mdui-color-theme-900 {\n background-color: #880E4F !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-purple .mdui-color-theme {\n background-color: #9C27B0 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-purple .mdui-color-theme-50 {\n background-color: #F3E5F5 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-purple .mdui-color-theme-100 {\n background-color: #E1BEE7 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-purple .mdui-color-theme-200 {\n background-color: #CE93D8 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-purple .mdui-color-theme-300 {\n background-color: #BA68C8 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-purple .mdui-color-theme-400 {\n background-color: #AB47BC !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-purple .mdui-color-theme-500 {\n background-color: #9C27B0 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-purple .mdui-color-theme-600 {\n background-color: #8E24AA !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-purple .mdui-color-theme-700 {\n background-color: #7B1FA2 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-purple .mdui-color-theme-800 {\n background-color: #6A1B9A !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-purple .mdui-color-theme-900 {\n background-color: #4A148C !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-red .mdui-color-theme {\n background-color: #F44336 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-red .mdui-color-theme-50 {\n background-color: #FFEBEE !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-red .mdui-color-theme-100 {\n background-color: #FFCDD2 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-red .mdui-color-theme-200 {\n background-color: #EF9A9A !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-red .mdui-color-theme-300 {\n background-color: #E57373 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-red .mdui-color-theme-400 {\n background-color: #EF5350 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-red .mdui-color-theme-500 {\n background-color: #F44336 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-red .mdui-color-theme-600 {\n background-color: #E53935 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-red .mdui-color-theme-700 {\n background-color: #D32F2F !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-red .mdui-color-theme-800 {\n background-color: #C62828 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-red .mdui-color-theme-900 {\n background-color: #B71C1C !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-teal .mdui-color-theme {\n background-color: #009688 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-teal .mdui-color-theme-50 {\n background-color: #E0F2F1 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-teal .mdui-color-theme-100 {\n background-color: #B2DFDB !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-teal .mdui-color-theme-200 {\n background-color: #80CBC4 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-teal .mdui-color-theme-300 {\n background-color: #4DB6AC !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-teal .mdui-color-theme-400 {\n background-color: #26A69A !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-teal .mdui-color-theme-500 {\n background-color: #009688 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-teal .mdui-color-theme-600 {\n background-color: #00897B !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-teal .mdui-color-theme-700 {\n background-color: #00796B !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-teal .mdui-color-theme-800 {\n background-color: #00695C !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-teal .mdui-color-theme-900 {\n background-color: #004D40 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-yellow .mdui-color-theme {\n background-color: #FFEB3B !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-yellow .mdui-color-theme-50 {\n background-color: #FFFDE7 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-yellow .mdui-color-theme-100 {\n background-color: #FFF9C4 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-yellow .mdui-color-theme-200 {\n background-color: #FFF59D !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-yellow .mdui-color-theme-300 {\n background-color: #FFF176 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-yellow .mdui-color-theme-400 {\n background-color: #FFEE58 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-yellow .mdui-color-theme-500 {\n background-color: #FFEB3B !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-yellow .mdui-color-theme-600 {\n background-color: #FDD835 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-yellow .mdui-color-theme-700 {\n background-color: #FBC02D !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-yellow .mdui-color-theme-800 {\n background-color: #F9A825 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-yellow .mdui-color-theme-900 {\n background-color: #F57F17 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n/**\n * .mdui-theme-accent-[color] .mdui-color-theme-accent\n * .mdui-theme-accent-[color] .mdui-color-theme-[degree]\n */\n.mdui-theme-accent-amber .mdui-color-theme-accent {\n background-color: #FFD740 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-amber .mdui-color-theme-a100 {\n background-color: #FFE57F !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-amber .mdui-color-theme-a200 {\n background-color: #FFD740 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-amber .mdui-color-theme-a400 {\n background-color: #FFC400 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-amber .mdui-color-theme-a700 {\n background-color: #FFAB00 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-blue .mdui-color-theme-accent {\n background-color: #448AFF !important;\n color: #ffffff !important;\n}\n.mdui-theme-accent-blue .mdui-color-theme-a100 {\n background-color: #82B1FF !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-blue .mdui-color-theme-a200 {\n background-color: #448AFF !important;\n color: #ffffff !important;\n}\n.mdui-theme-accent-blue .mdui-color-theme-a400 {\n background-color: #2979FF !important;\n color: #ffffff !important;\n}\n.mdui-theme-accent-blue .mdui-color-theme-a700 {\n background-color: #2962FF !important;\n color: #ffffff !important;\n}\n.mdui-theme-accent-cyan .mdui-color-theme-accent {\n background-color: #18FFFF !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-cyan .mdui-color-theme-a100 {\n background-color: #84FFFF !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-cyan .mdui-color-theme-a200 {\n background-color: #18FFFF !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-cyan .mdui-color-theme-a400 {\n background-color: #00E5FF !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-cyan .mdui-color-theme-a700 {\n background-color: #00B8D4 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-deep-orange .mdui-color-theme-accent {\n background-color: #FF6E40 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-deep-orange .mdui-color-theme-a100 {\n background-color: #FF9E80 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-deep-orange .mdui-color-theme-a200 {\n background-color: #FF6E40 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-deep-orange .mdui-color-theme-a400 {\n background-color: #FF3D00 !important;\n color: #ffffff !important;\n}\n.mdui-theme-accent-deep-orange .mdui-color-theme-a700 {\n background-color: #DD2C00 !important;\n color: #ffffff !important;\n}\n.mdui-theme-accent-deep-purple .mdui-color-theme-accent {\n background-color: #7C4DFF !important;\n color: #ffffff !important;\n}\n.mdui-theme-accent-deep-purple .mdui-color-theme-a100 {\n background-color: #B388FF !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-deep-purple .mdui-color-theme-a200 {\n background-color: #7C4DFF !important;\n color: #ffffff !important;\n}\n.mdui-theme-accent-deep-purple .mdui-color-theme-a400 {\n background-color: #651FFF !important;\n color: #ffffff !important;\n}\n.mdui-theme-accent-deep-purple .mdui-color-theme-a700 {\n background-color: #6200EA !important;\n color: #ffffff !important;\n}\n.mdui-theme-accent-green .mdui-color-theme-accent {\n background-color: #69F0AE !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-green .mdui-color-theme-a100 {\n background-color: #B9F6CA !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-green .mdui-color-theme-a200 {\n background-color: #69F0AE !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-green .mdui-color-theme-a400 {\n background-color: #00E676 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-green .mdui-color-theme-a700 {\n background-color: #00C853 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-indigo .mdui-color-theme-accent {\n background-color: #536DFE !important;\n color: #ffffff !important;\n}\n.mdui-theme-accent-indigo .mdui-color-theme-a100 {\n background-color: #8C9EFF !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-indigo .mdui-color-theme-a200 {\n background-color: #536DFE !important;\n color: #ffffff !important;\n}\n.mdui-theme-accent-indigo .mdui-color-theme-a400 {\n background-color: #3D5AFE !important;\n color: #ffffff !important;\n}\n.mdui-theme-accent-indigo .mdui-color-theme-a700 {\n background-color: #304FFE !important;\n color: #ffffff !important;\n}\n.mdui-theme-accent-light-blue .mdui-color-theme-accent {\n background-color: #40C4FF !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-light-blue .mdui-color-theme-a100 {\n background-color: #80D8FF !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-light-blue .mdui-color-theme-a200 {\n background-color: #40C4FF !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-light-blue .mdui-color-theme-a400 {\n background-color: #00B0FF !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-light-blue .mdui-color-theme-a700 {\n background-color: #0091EA !important;\n color: #ffffff !important;\n}\n.mdui-theme-accent-light-green .mdui-color-theme-accent {\n background-color: #B2FF59 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-light-green .mdui-color-theme-a100 {\n background-color: #CCFF90 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-light-green .mdui-color-theme-a200 {\n background-color: #B2FF59 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-light-green .mdui-color-theme-a400 {\n background-color: #76FF03 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-light-green .mdui-color-theme-a700 {\n background-color: #64DD17 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-lime .mdui-color-theme-accent {\n background-color: #EEFF41 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-lime .mdui-color-theme-a100 {\n background-color: #F4FF81 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-lime .mdui-color-theme-a200 {\n background-color: #EEFF41 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-lime .mdui-color-theme-a400 {\n background-color: #C6FF00 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-lime .mdui-color-theme-a700 {\n background-color: #AEEA00 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-orange .mdui-color-theme-accent {\n background-color: #FFAB40 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-orange .mdui-color-theme-a100 {\n background-color: #FFD180 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-orange .mdui-color-theme-a200 {\n background-color: #FFAB40 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-orange .mdui-color-theme-a400 {\n background-color: #FF9100 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-orange .mdui-color-theme-a700 {\n background-color: #FF6D00 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-pink .mdui-color-theme-accent {\n background-color: #FF4081 !important;\n color: #ffffff !important;\n}\n.mdui-theme-accent-pink .mdui-color-theme-a100 {\n background-color: #FF80AB !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-pink .mdui-color-theme-a200 {\n background-color: #FF4081 !important;\n color: #ffffff !important;\n}\n.mdui-theme-accent-pink .mdui-color-theme-a400 {\n background-color: #F50057 !important;\n color: #ffffff !important;\n}\n.mdui-theme-accent-pink .mdui-color-theme-a700 {\n background-color: #C51162 !important;\n color: #ffffff !important;\n}\n.mdui-theme-accent-purple .mdui-color-theme-accent {\n background-color: #E040FB !important;\n color: #ffffff !important;\n}\n.mdui-theme-accent-purple .mdui-color-theme-a100 {\n background-color: #EA80FC !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-purple .mdui-color-theme-a200 {\n background-color: #E040FB !important;\n color: #ffffff !important;\n}\n.mdui-theme-accent-purple .mdui-color-theme-a400 {\n background-color: #D500F9 !important;\n color: #ffffff !important;\n}\n.mdui-theme-accent-purple .mdui-color-theme-a700 {\n background-color: #AA00FF !important;\n color: #ffffff !important;\n}\n.mdui-theme-accent-red .mdui-color-theme-accent {\n background-color: #FF5252 !important;\n color: #ffffff !important;\n}\n.mdui-theme-accent-red .mdui-color-theme-a100 {\n background-color: #FF8A80 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-red .mdui-color-theme-a200 {\n background-color: #FF5252 !important;\n color: #ffffff !important;\n}\n.mdui-theme-accent-red .mdui-color-theme-a400 {\n background-color: #FF1744 !important;\n color: #ffffff !important;\n}\n.mdui-theme-accent-red .mdui-color-theme-a700 {\n background-color: #D50000 !important;\n color: #ffffff !important;\n}\n.mdui-theme-accent-teal .mdui-color-theme-accent {\n background-color: #64FFDA !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-teal .mdui-color-theme-a100 {\n background-color: #A7FFEB !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-teal .mdui-color-theme-a200 {\n background-color: #64FFDA !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-teal .mdui-color-theme-a400 {\n background-color: #1DE9B6 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-teal .mdui-color-theme-a700 {\n background-color: #00BFA5 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-yellow .mdui-color-theme-accent {\n background-color: #FFFF00 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-yellow .mdui-color-theme-a100 {\n background-color: #FFFF8D !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-yellow .mdui-color-theme-a200 {\n background-color: #FFFF00 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-yellow .mdui-color-theme-a400 {\n background-color: #FFEA00 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-yellow .mdui-color-theme-a700 {\n background-color: #FFD600 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n/**\n * .mdui-color-[color]\n * .mdui-color-[color]-[degree]\n */\n.mdui-color-amber {\n background-color: #FFC107 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-amber-50 {\n background-color: #FFF8E1 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-amber-100 {\n background-color: #FFECB3 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-amber-200 {\n background-color: #FFE082 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-amber-300 {\n background-color: #FFD54F !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-amber-400 {\n background-color: #FFCA28 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-amber-500 {\n background-color: #FFC107 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-amber-600 {\n background-color: #FFB300 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-amber-700 {\n background-color: #FFA000 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-amber-800 {\n background-color: #FF8F00 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-amber-900 {\n background-color: #FF6F00 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-blue {\n background-color: #2196F3 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-blue-50 {\n background-color: #E3F2FD !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-blue-100 {\n background-color: #BBDEFB !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-blue-200 {\n background-color: #90CAF9 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-blue-300 {\n background-color: #64B5F6 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-blue-400 {\n background-color: #42A5F5 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-blue-500 {\n background-color: #2196F3 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-blue-600 {\n background-color: #1E88E5 !important;\n color: #ffffff !important;\n}\n.mdui-color-blue-700 {\n background-color: #1976D2 !important;\n color: #ffffff !important;\n}\n.mdui-color-blue-800 {\n background-color: #1565C0 !important;\n color: #ffffff !important;\n}\n.mdui-color-blue-900 {\n background-color: #0D47A1 !important;\n color: #ffffff !important;\n}\n.mdui-color-blue-grey {\n background-color: #607D8B !important;\n color: #ffffff !important;\n}\n.mdui-color-blue-grey-50 {\n background-color: #ECEFF1 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-blue-grey-100 {\n background-color: #CFD8DC !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-blue-grey-200 {\n background-color: #B0BEC5 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-blue-grey-300 {\n background-color: #90A4AE !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-blue-grey-400 {\n background-color: #78909C !important;\n color: #ffffff !important;\n}\n.mdui-color-blue-grey-500 {\n background-color: #607D8B !important;\n color: #ffffff !important;\n}\n.mdui-color-blue-grey-600 {\n background-color: #546E7A !important;\n color: #ffffff !important;\n}\n.mdui-color-blue-grey-700 {\n background-color: #455A64 !important;\n color: #ffffff !important;\n}\n.mdui-color-blue-grey-800 {\n background-color: #37474F !important;\n color: #ffffff !important;\n}\n.mdui-color-blue-grey-900 {\n background-color: #263238 !important;\n color: #ffffff !important;\n}\n.mdui-color-brown {\n background-color: #795548 !important;\n color: #ffffff !important;\n}\n.mdui-color-brown-50 {\n background-color: #EFEBE9 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-brown-100 {\n background-color: #D7CCC8 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-brown-200 {\n background-color: #BCAAA4 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-brown-300 {\n background-color: #A1887F !important;\n color: #ffffff !important;\n}\n.mdui-color-brown-400 {\n background-color: #8D6E63 !important;\n color: #ffffff !important;\n}\n.mdui-color-brown-500 {\n background-color: #795548 !important;\n color: #ffffff !important;\n}\n.mdui-color-brown-600 {\n background-color: #6D4C41 !important;\n color: #ffffff !important;\n}\n.mdui-color-brown-700 {\n background-color: #5D4037 !important;\n color: #ffffff !important;\n}\n.mdui-color-brown-800 {\n background-color: #4E342E !important;\n color: #ffffff !important;\n}\n.mdui-color-brown-900 {\n background-color: #3E2723 !important;\n color: #ffffff !important;\n}\n.mdui-color-cyan {\n background-color: #00BCD4 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-cyan-50 {\n background-color: #E0F7FA !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-cyan-100 {\n background-color: #B2EBF2 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-cyan-200 {\n background-color: #80DEEA !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-cyan-300 {\n background-color: #4DD0E1 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-cyan-400 {\n background-color: #26C6DA !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-cyan-500 {\n background-color: #00BCD4 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-cyan-600 {\n background-color: #00ACC1 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-cyan-700 {\n background-color: #0097A7 !important;\n color: #ffffff !important;\n}\n.mdui-color-cyan-800 {\n background-color: #00838F !important;\n color: #ffffff !important;\n}\n.mdui-color-cyan-900 {\n background-color: #006064 !important;\n color: #ffffff !important;\n}\n.mdui-color-deep-orange {\n background-color: #FF5722 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-deep-orange-50 {\n background-color: #FBE9E7 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-deep-orange-100 {\n background-color: #FFCCBC !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-deep-orange-200 {\n background-color: #FFAB91 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-deep-orange-300 {\n background-color: #FF8A65 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-deep-orange-400 {\n background-color: #FF7043 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-deep-orange-500 {\n background-color: #FF5722 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-deep-orange-600 {\n background-color: #F4511E !important;\n color: #ffffff !important;\n}\n.mdui-color-deep-orange-700 {\n background-color: #E64A19 !important;\n color: #ffffff !important;\n}\n.mdui-color-deep-orange-800 {\n background-color: #D84315 !important;\n color: #ffffff !important;\n}\n.mdui-color-deep-orange-900 {\n background-color: #BF360C !important;\n color: #ffffff !important;\n}\n.mdui-color-deep-purple {\n background-color: #673AB7 !important;\n color: #ffffff !important;\n}\n.mdui-color-deep-purple-50 {\n background-color: #EDE7F6 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-deep-purple-100 {\n background-color: #D1C4E9 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-deep-purple-200 {\n background-color: #B39DDB !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-deep-purple-300 {\n background-color: #9575CD !important;\n color: #ffffff !important;\n}\n.mdui-color-deep-purple-400 {\n background-color: #7E57C2 !important;\n color: #ffffff !important;\n}\n.mdui-color-deep-purple-500 {\n background-color: #673AB7 !important;\n color: #ffffff !important;\n}\n.mdui-color-deep-purple-600 {\n background-color: #5E35B1 !important;\n color: #ffffff !important;\n}\n.mdui-color-deep-purple-700 {\n background-color: #512DA8 !important;\n color: #ffffff !important;\n}\n.mdui-color-deep-purple-800 {\n background-color: #4527A0 !important;\n color: #ffffff !important;\n}\n.mdui-color-deep-purple-900 {\n background-color: #311B92 !important;\n color: #ffffff !important;\n}\n.mdui-color-green {\n background-color: #4CAF50 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-green-50 {\n background-color: #E8F5E9 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-green-100 {\n background-color: #C8E6C9 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-green-200 {\n background-color: #A5D6A7 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-green-300 {\n background-color: #81C784 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-green-400 {\n background-color: #66BB6A !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-green-500 {\n background-color: #4CAF50 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-green-600 {\n background-color: #43A047 !important;\n color: #ffffff !important;\n}\n.mdui-color-green-700 {\n background-color: #388E3C !important;\n color: #ffffff !important;\n}\n.mdui-color-green-800 {\n background-color: #2E7D32 !important;\n color: #ffffff !important;\n}\n.mdui-color-green-900 {\n background-color: #1B5E20 !important;\n color: #ffffff !important;\n}\n.mdui-color-grey {\n background-color: #9E9E9E !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-grey-50 {\n background-color: #FAFAFA !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-grey-100 {\n background-color: #F5F5F5 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-grey-200 {\n background-color: #EEEEEE !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-grey-300 {\n background-color: #E0E0E0 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-grey-400 {\n background-color: #BDBDBD !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-grey-500 {\n background-color: #9E9E9E !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-grey-600 {\n background-color: #757575 !important;\n color: #ffffff !important;\n}\n.mdui-color-grey-700 {\n background-color: #616161 !important;\n color: #ffffff !important;\n}\n.mdui-color-grey-800 {\n background-color: #424242 !important;\n color: #ffffff !important;\n}\n.mdui-color-grey-900 {\n background-color: #212121 !important;\n color: #ffffff !important;\n}\n.mdui-color-indigo {\n background-color: #3F51B5 !important;\n color: #ffffff !important;\n}\n.mdui-color-indigo-50 {\n background-color: #E8EAF6 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-indigo-100 {\n background-color: #C5CAE9 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-indigo-200 {\n background-color: #9FA8DA !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-indigo-300 {\n background-color: #7986CB !important;\n color: #ffffff !important;\n}\n.mdui-color-indigo-400 {\n background-color: #5C6BC0 !important;\n color: #ffffff !important;\n}\n.mdui-color-indigo-500 {\n background-color: #3F51B5 !important;\n color: #ffffff !important;\n}\n.mdui-color-indigo-600 {\n background-color: #3949AB !important;\n color: #ffffff !important;\n}\n.mdui-color-indigo-700 {\n background-color: #303F9F !important;\n color: #ffffff !important;\n}\n.mdui-color-indigo-800 {\n background-color: #283593 !important;\n color: #ffffff !important;\n}\n.mdui-color-indigo-900 {\n background-color: #1A237E !important;\n color: #ffffff !important;\n}\n.mdui-color-light-blue {\n background-color: #03A9F4 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-light-blue-50 {\n background-color: #E1F5FE !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-light-blue-100 {\n background-color: #B3E5FC !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-light-blue-200 {\n background-color: #81D4FA !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-light-blue-300 {\n background-color: #4FC3F7 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-light-blue-400 {\n background-color: #29B6F6 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-light-blue-500 {\n background-color: #03A9F4 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-light-blue-600 {\n background-color: #039BE5 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-light-blue-700 {\n background-color: #0288D1 !important;\n color: #ffffff !important;\n}\n.mdui-color-light-blue-800 {\n background-color: #0277BD !important;\n color: #ffffff !important;\n}\n.mdui-color-light-blue-900 {\n background-color: #01579B !important;\n color: #ffffff !important;\n}\n.mdui-color-light-green {\n background-color: #8BC34A !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-light-green-50 {\n background-color: #F1F8E9 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-light-green-100 {\n background-color: #DCEDC8 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-light-green-200 {\n background-color: #C5E1A5 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-light-green-300 {\n background-color: #AED581 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-light-green-400 {\n background-color: #9CCC65 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-light-green-500 {\n background-color: #8BC34A !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-light-green-600 {\n background-color: #7CB342 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-light-green-700 {\n background-color: #689F38 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-light-green-800 {\n background-color: #558B2F !important;\n color: #ffffff !important;\n}\n.mdui-color-light-green-900 {\n background-color: #33691E !important;\n color: #ffffff !important;\n}\n.mdui-color-lime {\n background-color: #CDDC39 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-lime-50 {\n background-color: #F9FBE7 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-lime-100 {\n background-color: #F0F4C3 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-lime-200 {\n background-color: #E6EE9C !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-lime-300 {\n background-color: #DCE775 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-lime-400 {\n background-color: #D4E157 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-lime-500 {\n background-color: #CDDC39 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-lime-600 {\n background-color: #C0CA33 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-lime-700 {\n background-color: #AFB42B !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-lime-800 {\n background-color: #9E9D24 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-lime-900 {\n background-color: #827717 !important;\n color: #ffffff !important;\n}\n.mdui-color-orange {\n background-color: #FF9800 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-orange-50 {\n background-color: #FFF3E0 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-orange-100 {\n background-color: #FFE0B2 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-orange-200 {\n background-color: #FFCC80 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-orange-300 {\n background-color: #FFB74D !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-orange-400 {\n background-color: #FFA726 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-orange-500 {\n background-color: #FF9800 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-orange-600 {\n background-color: #FB8C00 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-orange-700 {\n background-color: #F57C00 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-orange-800 {\n background-color: #EF6C00 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-orange-900 {\n background-color: #E65100 !important;\n color: #ffffff !important;\n}\n.mdui-color-pink {\n background-color: #E91E63 !important;\n color: #ffffff !important;\n}\n.mdui-color-pink-50 {\n background-color: #FCE4EC !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-pink-100 {\n background-color: #F8BBD0 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-pink-200 {\n background-color: #F48FB1 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-pink-300 {\n background-color: #F06292 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-pink-400 {\n background-color: #EC407A !important;\n color: #ffffff !important;\n}\n.mdui-color-pink-500 {\n background-color: #E91E63 !important;\n color: #ffffff !important;\n}\n.mdui-color-pink-600 {\n background-color: #D81B60 !important;\n color: #ffffff !important;\n}\n.mdui-color-pink-700 {\n background-color: #C2185B !important;\n color: #ffffff !important;\n}\n.mdui-color-pink-800 {\n background-color: #AD1457 !important;\n color: #ffffff !important;\n}\n.mdui-color-pink-900 {\n background-color: #880E4F !important;\n color: #ffffff !important;\n}\n.mdui-color-purple {\n background-color: #9C27B0 !important;\n color: #ffffff !important;\n}\n.mdui-color-purple-50 {\n background-color: #F3E5F5 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-purple-100 {\n background-color: #E1BEE7 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-purple-200 {\n background-color: #CE93D8 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-purple-300 {\n background-color: #BA68C8 !important;\n color: #ffffff !important;\n}\n.mdui-color-purple-400 {\n background-color: #AB47BC !important;\n color: #ffffff !important;\n}\n.mdui-color-purple-500 {\n background-color: #9C27B0 !important;\n color: #ffffff !important;\n}\n.mdui-color-purple-600 {\n background-color: #8E24AA !important;\n color: #ffffff !important;\n}\n.mdui-color-purple-700 {\n background-color: #7B1FA2 !important;\n color: #ffffff !important;\n}\n.mdui-color-purple-800 {\n background-color: #6A1B9A !important;\n color: #ffffff !important;\n}\n.mdui-color-purple-900 {\n background-color: #4A148C !important;\n color: #ffffff !important;\n}\n.mdui-color-red {\n background-color: #F44336 !important;\n color: #ffffff !important;\n}\n.mdui-color-red-50 {\n background-color: #FFEBEE !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-red-100 {\n background-color: #FFCDD2 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-red-200 {\n background-color: #EF9A9A !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-red-300 {\n background-color: #E57373 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-red-400 {\n background-color: #EF5350 !important;\n color: #ffffff !important;\n}\n.mdui-color-red-500 {\n background-color: #F44336 !important;\n color: #ffffff !important;\n}\n.mdui-color-red-600 {\n background-color: #E53935 !important;\n color: #ffffff !important;\n}\n.mdui-color-red-700 {\n background-color: #D32F2F !important;\n color: #ffffff !important;\n}\n.mdui-color-red-800 {\n background-color: #C62828 !important;\n color: #ffffff !important;\n}\n.mdui-color-red-900 {\n background-color: #B71C1C !important;\n color: #ffffff !important;\n}\n.mdui-color-teal {\n background-color: #009688 !important;\n color: #ffffff !important;\n}\n.mdui-color-teal-50 {\n background-color: #E0F2F1 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-teal-100 {\n background-color: #B2DFDB !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-teal-200 {\n background-color: #80CBC4 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-teal-300 {\n background-color: #4DB6AC !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-teal-400 {\n background-color: #26A69A !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-teal-500 {\n background-color: #009688 !important;\n color: #ffffff !important;\n}\n.mdui-color-teal-600 {\n background-color: #00897B !important;\n color: #ffffff !important;\n}\n.mdui-color-teal-700 {\n background-color: #00796B !important;\n color: #ffffff !important;\n}\n.mdui-color-teal-800 {\n background-color: #00695C !important;\n color: #ffffff !important;\n}\n.mdui-color-teal-900 {\n background-color: #004D40 !important;\n color: #ffffff !important;\n}\n.mdui-color-yellow {\n background-color: #FFEB3B !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-yellow-50 {\n background-color: #FFFDE7 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-yellow-100 {\n background-color: #FFF9C4 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-yellow-200 {\n background-color: #FFF59D !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-yellow-300 {\n background-color: #FFF176 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-yellow-400 {\n background-color: #FFEE58 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-yellow-500 {\n background-color: #FFEB3B !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-yellow-600 {\n background-color: #FDD835 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-yellow-700 {\n background-color: #FBC02D !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-yellow-800 {\n background-color: #F9A825 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-yellow-900 {\n background-color: #F57F17 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n/**\n * .mdui-color-[color]-accent\n * .mdui-color-[color]-[degree]\n */\n.mdui-color-amber-accent {\n background-color: #FFD740 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-amber-a100 {\n background-color: #FFE57F !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-amber-a200 {\n background-color: #FFD740 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-amber-a400 {\n background-color: #FFC400 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-amber-a700 {\n background-color: #FFAB00 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-blue-accent {\n background-color: #448AFF !important;\n color: #ffffff !important;\n}\n.mdui-color-blue-a100 {\n background-color: #82B1FF !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-blue-a200 {\n background-color: #448AFF !important;\n color: #ffffff !important;\n}\n.mdui-color-blue-a400 {\n background-color: #2979FF !important;\n color: #ffffff !important;\n}\n.mdui-color-blue-a700 {\n background-color: #2962FF !important;\n color: #ffffff !important;\n}\n.mdui-color-cyan-accent {\n background-color: #18FFFF !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-cyan-a100 {\n background-color: #84FFFF !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-cyan-a200 {\n background-color: #18FFFF !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-cyan-a400 {\n background-color: #00E5FF !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-cyan-a700 {\n background-color: #00B8D4 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-deep-orange-accent {\n background-color: #FF6E40 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-deep-orange-a100 {\n background-color: #FF9E80 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-deep-orange-a200 {\n background-color: #FF6E40 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-deep-orange-a400 {\n background-color: #FF3D00 !important;\n color: #ffffff !important;\n}\n.mdui-color-deep-orange-a700 {\n background-color: #DD2C00 !important;\n color: #ffffff !important;\n}\n.mdui-color-deep-purple-accent {\n background-color: #7C4DFF !important;\n color: #ffffff !important;\n}\n.mdui-color-deep-purple-a100 {\n background-color: #B388FF !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-deep-purple-a200 {\n background-color: #7C4DFF !important;\n color: #ffffff !important;\n}\n.mdui-color-deep-purple-a400 {\n background-color: #651FFF !important;\n color: #ffffff !important;\n}\n.mdui-color-deep-purple-a700 {\n background-color: #6200EA !important;\n color: #ffffff !important;\n}\n.mdui-color-green-accent {\n background-color: #69F0AE !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-green-a100 {\n background-color: #B9F6CA !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-green-a200 {\n background-color: #69F0AE !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-green-a400 {\n background-color: #00E676 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-green-a700 {\n background-color: #00C853 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-indigo-accent {\n background-color: #536DFE !important;\n color: #ffffff !important;\n}\n.mdui-color-indigo-a100 {\n background-color: #8C9EFF !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-indigo-a200 {\n background-color: #536DFE !important;\n color: #ffffff !important;\n}\n.mdui-color-indigo-a400 {\n background-color: #3D5AFE !important;\n color: #ffffff !important;\n}\n.mdui-color-indigo-a700 {\n background-color: #304FFE !important;\n color: #ffffff !important;\n}\n.mdui-color-light-blue-accent {\n background-color: #40C4FF !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-light-blue-a100 {\n background-color: #80D8FF !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-light-blue-a200 {\n background-color: #40C4FF !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-light-blue-a400 {\n background-color: #00B0FF !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-light-blue-a700 {\n background-color: #0091EA !important;\n color: #ffffff !important;\n}\n.mdui-color-light-green-accent {\n background-color: #B2FF59 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-light-green-a100 {\n background-color: #CCFF90 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-light-green-a200 {\n background-color: #B2FF59 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-light-green-a400 {\n background-color: #76FF03 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-light-green-a700 {\n background-color: #64DD17 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-lime-accent {\n background-color: #EEFF41 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-lime-a100 {\n background-color: #F4FF81 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-lime-a200 {\n background-color: #EEFF41 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-lime-a400 {\n background-color: #C6FF00 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-lime-a700 {\n background-color: #AEEA00 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-orange-accent {\n background-color: #FFAB40 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-orange-a100 {\n background-color: #FFD180 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-orange-a200 {\n background-color: #FFAB40 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-orange-a400 {\n background-color: #FF9100 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-orange-a700 {\n background-color: #FF6D00 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-pink-accent {\n background-color: #FF4081 !important;\n color: #ffffff !important;\n}\n.mdui-color-pink-a100 {\n background-color: #FF80AB !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-pink-a200 {\n background-color: #FF4081 !important;\n color: #ffffff !important;\n}\n.mdui-color-pink-a400 {\n background-color: #F50057 !important;\n color: #ffffff !important;\n}\n.mdui-color-pink-a700 {\n background-color: #C51162 !important;\n color: #ffffff !important;\n}\n.mdui-color-purple-accent {\n background-color: #E040FB !important;\n color: #ffffff !important;\n}\n.mdui-color-purple-a100 {\n background-color: #EA80FC !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-purple-a200 {\n background-color: #E040FB !important;\n color: #ffffff !important;\n}\n.mdui-color-purple-a400 {\n background-color: #D500F9 !important;\n color: #ffffff !important;\n}\n.mdui-color-purple-a700 {\n background-color: #AA00FF !important;\n color: #ffffff !important;\n}\n.mdui-color-red-accent {\n background-color: #FF5252 !important;\n color: #ffffff !important;\n}\n.mdui-color-red-a100 {\n background-color: #FF8A80 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-red-a200 {\n background-color: #FF5252 !important;\n color: #ffffff !important;\n}\n.mdui-color-red-a400 {\n background-color: #FF1744 !important;\n color: #ffffff !important;\n}\n.mdui-color-red-a700 {\n background-color: #D50000 !important;\n color: #ffffff !important;\n}\n.mdui-color-teal-accent {\n background-color: #64FFDA !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-teal-a100 {\n background-color: #A7FFEB !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-teal-a200 {\n background-color: #64FFDA !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-teal-a400 {\n background-color: #1DE9B6 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-teal-a700 {\n background-color: #00BFA5 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-yellow-accent {\n background-color: #FFFF00 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-yellow-a100 {\n background-color: #FFFF8D !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-yellow-a200 {\n background-color: #FFFF00 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-yellow-a400 {\n background-color: #FFEA00 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-yellow-a700 {\n background-color: #FFD600 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n/**\n * .mdui-color-black\n * .mdui-color-white\n * .mdui-color-transparent\n */\n.mdui-color-black {\n color: #ffffff !important;\n background-color: #000000 !important;\n}\n.mdui-color-white {\n color: rgba(0, 0, 0, 0.87) !important;\n background-color: #FFFFFF !important;\n}\n.mdui-color-transparent {\n background-color: transparent !important;\n}\n/**\n * .mdui-theme-primary-[color] .mdui-text-color-theme\n * .mdui-theme-primary-[color] .mdui-text-color-theme-[degree]\n */\n.mdui-theme-primary-amber .mdui-text-color-theme {\n color: #FFC107 !important;\n}\n.mdui-theme-primary-amber .mdui-text-color-theme-50 {\n color: #FFF8E1 !important;\n}\n.mdui-theme-primary-amber .mdui-text-color-theme-100 {\n color: #FFECB3 !important;\n}\n.mdui-theme-primary-amber .mdui-text-color-theme-200 {\n color: #FFE082 !important;\n}\n.mdui-theme-primary-amber .mdui-text-color-theme-300 {\n color: #FFD54F !important;\n}\n.mdui-theme-primary-amber .mdui-text-color-theme-400 {\n color: #FFCA28 !important;\n}\n.mdui-theme-primary-amber .mdui-text-color-theme-500 {\n color: #FFC107 !important;\n}\n.mdui-theme-primary-amber .mdui-text-color-theme-600 {\n color: #FFB300 !important;\n}\n.mdui-theme-primary-amber .mdui-text-color-theme-700 {\n color: #FFA000 !important;\n}\n.mdui-theme-primary-amber .mdui-text-color-theme-800 {\n color: #FF8F00 !important;\n}\n.mdui-theme-primary-amber .mdui-text-color-theme-900 {\n color: #FF6F00 !important;\n}\n.mdui-theme-primary-blue .mdui-text-color-theme {\n color: #2196F3 !important;\n}\n.mdui-theme-primary-blue .mdui-text-color-theme-50 {\n color: #E3F2FD !important;\n}\n.mdui-theme-primary-blue .mdui-text-color-theme-100 {\n color: #BBDEFB !important;\n}\n.mdui-theme-primary-blue .mdui-text-color-theme-200 {\n color: #90CAF9 !important;\n}\n.mdui-theme-primary-blue .mdui-text-color-theme-300 {\n color: #64B5F6 !important;\n}\n.mdui-theme-primary-blue .mdui-text-color-theme-400 {\n color: #42A5F5 !important;\n}\n.mdui-theme-primary-blue .mdui-text-color-theme-500 {\n color: #2196F3 !important;\n}\n.mdui-theme-primary-blue .mdui-text-color-theme-600 {\n color: #1E88E5 !important;\n}\n.mdui-theme-primary-blue .mdui-text-color-theme-700 {\n color: #1976D2 !important;\n}\n.mdui-theme-primary-blue .mdui-text-color-theme-800 {\n color: #1565C0 !important;\n}\n.mdui-theme-primary-blue .mdui-text-color-theme-900 {\n color: #0D47A1 !important;\n}\n.mdui-theme-primary-blue-grey .mdui-text-color-theme {\n color: #607D8B !important;\n}\n.mdui-theme-primary-blue-grey .mdui-text-color-theme-50 {\n color: #ECEFF1 !important;\n}\n.mdui-theme-primary-blue-grey .mdui-text-color-theme-100 {\n color: #CFD8DC !important;\n}\n.mdui-theme-primary-blue-grey .mdui-text-color-theme-200 {\n color: #B0BEC5 !important;\n}\n.mdui-theme-primary-blue-grey .mdui-text-color-theme-300 {\n color: #90A4AE !important;\n}\n.mdui-theme-primary-blue-grey .mdui-text-color-theme-400 {\n color: #78909C !important;\n}\n.mdui-theme-primary-blue-grey .mdui-text-color-theme-500 {\n color: #607D8B !important;\n}\n.mdui-theme-primary-blue-grey .mdui-text-color-theme-600 {\n color: #546E7A !important;\n}\n.mdui-theme-primary-blue-grey .mdui-text-color-theme-700 {\n color: #455A64 !important;\n}\n.mdui-theme-primary-blue-grey .mdui-text-color-theme-800 {\n color: #37474F !important;\n}\n.mdui-theme-primary-blue-grey .mdui-text-color-theme-900 {\n color: #263238 !important;\n}\n.mdui-theme-primary-brown .mdui-text-color-theme {\n color: #795548 !important;\n}\n.mdui-theme-primary-brown .mdui-text-color-theme-50 {\n color: #EFEBE9 !important;\n}\n.mdui-theme-primary-brown .mdui-text-color-theme-100 {\n color: #D7CCC8 !important;\n}\n.mdui-theme-primary-brown .mdui-text-color-theme-200 {\n color: #BCAAA4 !important;\n}\n.mdui-theme-primary-brown .mdui-text-color-theme-300 {\n color: #A1887F !important;\n}\n.mdui-theme-primary-brown .mdui-text-color-theme-400 {\n color: #8D6E63 !important;\n}\n.mdui-theme-primary-brown .mdui-text-color-theme-500 {\n color: #795548 !important;\n}\n.mdui-theme-primary-brown .mdui-text-color-theme-600 {\n color: #6D4C41 !important;\n}\n.mdui-theme-primary-brown .mdui-text-color-theme-700 {\n color: #5D4037 !important;\n}\n.mdui-theme-primary-brown .mdui-text-color-theme-800 {\n color: #4E342E !important;\n}\n.mdui-theme-primary-brown .mdui-text-color-theme-900 {\n color: #3E2723 !important;\n}\n.mdui-theme-primary-cyan .mdui-text-color-theme {\n color: #00BCD4 !important;\n}\n.mdui-theme-primary-cyan .mdui-text-color-theme-50 {\n color: #E0F7FA !important;\n}\n.mdui-theme-primary-cyan .mdui-text-color-theme-100 {\n color: #B2EBF2 !important;\n}\n.mdui-theme-primary-cyan .mdui-text-color-theme-200 {\n color: #80DEEA !important;\n}\n.mdui-theme-primary-cyan .mdui-text-color-theme-300 {\n color: #4DD0E1 !important;\n}\n.mdui-theme-primary-cyan .mdui-text-color-theme-400 {\n color: #26C6DA !important;\n}\n.mdui-theme-primary-cyan .mdui-text-color-theme-500 {\n color: #00BCD4 !important;\n}\n.mdui-theme-primary-cyan .mdui-text-color-theme-600 {\n color: #00ACC1 !important;\n}\n.mdui-theme-primary-cyan .mdui-text-color-theme-700 {\n color: #0097A7 !important;\n}\n.mdui-theme-primary-cyan .mdui-text-color-theme-800 {\n color: #00838F !important;\n}\n.mdui-theme-primary-cyan .mdui-text-color-theme-900 {\n color: #006064 !important;\n}\n.mdui-theme-primary-deep-orange .mdui-text-color-theme {\n color: #FF5722 !important;\n}\n.mdui-theme-primary-deep-orange .mdui-text-color-theme-50 {\n color: #FBE9E7 !important;\n}\n.mdui-theme-primary-deep-orange .mdui-text-color-theme-100 {\n color: #FFCCBC !important;\n}\n.mdui-theme-primary-deep-orange .mdui-text-color-theme-200 {\n color: #FFAB91 !important;\n}\n.mdui-theme-primary-deep-orange .mdui-text-color-theme-300 {\n color: #FF8A65 !important;\n}\n.mdui-theme-primary-deep-orange .mdui-text-color-theme-400 {\n color: #FF7043 !important;\n}\n.mdui-theme-primary-deep-orange .mdui-text-color-theme-500 {\n color: #FF5722 !important;\n}\n.mdui-theme-primary-deep-orange .mdui-text-color-theme-600 {\n color: #F4511E !important;\n}\n.mdui-theme-primary-deep-orange .mdui-text-color-theme-700 {\n color: #E64A19 !important;\n}\n.mdui-theme-primary-deep-orange .mdui-text-color-theme-800 {\n color: #D84315 !important;\n}\n.mdui-theme-primary-deep-orange .mdui-text-color-theme-900 {\n color: #BF360C !important;\n}\n.mdui-theme-primary-deep-purple .mdui-text-color-theme {\n color: #673AB7 !important;\n}\n.mdui-theme-primary-deep-purple .mdui-text-color-theme-50 {\n color: #EDE7F6 !important;\n}\n.mdui-theme-primary-deep-purple .mdui-text-color-theme-100 {\n color: #D1C4E9 !important;\n}\n.mdui-theme-primary-deep-purple .mdui-text-color-theme-200 {\n color: #B39DDB !important;\n}\n.mdui-theme-primary-deep-purple .mdui-text-color-theme-300 {\n color: #9575CD !important;\n}\n.mdui-theme-primary-deep-purple .mdui-text-color-theme-400 {\n color: #7E57C2 !important;\n}\n.mdui-theme-primary-deep-purple .mdui-text-color-theme-500 {\n color: #673AB7 !important;\n}\n.mdui-theme-primary-deep-purple .mdui-text-color-theme-600 {\n color: #5E35B1 !important;\n}\n.mdui-theme-primary-deep-purple .mdui-text-color-theme-700 {\n color: #512DA8 !important;\n}\n.mdui-theme-primary-deep-purple .mdui-text-color-theme-800 {\n color: #4527A0 !important;\n}\n.mdui-theme-primary-deep-purple .mdui-text-color-theme-900 {\n color: #311B92 !important;\n}\n.mdui-theme-primary-green .mdui-text-color-theme {\n color: #4CAF50 !important;\n}\n.mdui-theme-primary-green .mdui-text-color-theme-50 {\n color: #E8F5E9 !important;\n}\n.mdui-theme-primary-green .mdui-text-color-theme-100 {\n color: #C8E6C9 !important;\n}\n.mdui-theme-primary-green .mdui-text-color-theme-200 {\n color: #A5D6A7 !important;\n}\n.mdui-theme-primary-green .mdui-text-color-theme-300 {\n color: #81C784 !important;\n}\n.mdui-theme-primary-green .mdui-text-color-theme-400 {\n color: #66BB6A !important;\n}\n.mdui-theme-primary-green .mdui-text-color-theme-500 {\n color: #4CAF50 !important;\n}\n.mdui-theme-primary-green .mdui-text-color-theme-600 {\n color: #43A047 !important;\n}\n.mdui-theme-primary-green .mdui-text-color-theme-700 {\n color: #388E3C !important;\n}\n.mdui-theme-primary-green .mdui-text-color-theme-800 {\n color: #2E7D32 !important;\n}\n.mdui-theme-primary-green .mdui-text-color-theme-900 {\n color: #1B5E20 !important;\n}\n.mdui-theme-primary-grey .mdui-text-color-theme {\n color: #9E9E9E !important;\n}\n.mdui-theme-primary-grey .mdui-text-color-theme-50 {\n color: #FAFAFA !important;\n}\n.mdui-theme-primary-grey .mdui-text-color-theme-100 {\n color: #F5F5F5 !important;\n}\n.mdui-theme-primary-grey .mdui-text-color-theme-200 {\n color: #EEEEEE !important;\n}\n.mdui-theme-primary-grey .mdui-text-color-theme-300 {\n color: #E0E0E0 !important;\n}\n.mdui-theme-primary-grey .mdui-text-color-theme-400 {\n color: #BDBDBD !important;\n}\n.mdui-theme-primary-grey .mdui-text-color-theme-500 {\n color: #9E9E9E !important;\n}\n.mdui-theme-primary-grey .mdui-text-color-theme-600 {\n color: #757575 !important;\n}\n.mdui-theme-primary-grey .mdui-text-color-theme-700 {\n color: #616161 !important;\n}\n.mdui-theme-primary-grey .mdui-text-color-theme-800 {\n color: #424242 !important;\n}\n.mdui-theme-primary-grey .mdui-text-color-theme-900 {\n color: #212121 !important;\n}\n.mdui-theme-primary-indigo .mdui-text-color-theme {\n color: #3F51B5 !important;\n}\n.mdui-theme-primary-indigo .mdui-text-color-theme-50 {\n color: #E8EAF6 !important;\n}\n.mdui-theme-primary-indigo .mdui-text-color-theme-100 {\n color: #C5CAE9 !important;\n}\n.mdui-theme-primary-indigo .mdui-text-color-theme-200 {\n color: #9FA8DA !important;\n}\n.mdui-theme-primary-indigo .mdui-text-color-theme-300 {\n color: #7986CB !important;\n}\n.mdui-theme-primary-indigo .mdui-text-color-theme-400 {\n color: #5C6BC0 !important;\n}\n.mdui-theme-primary-indigo .mdui-text-color-theme-500 {\n color: #3F51B5 !important;\n}\n.mdui-theme-primary-indigo .mdui-text-color-theme-600 {\n color: #3949AB !important;\n}\n.mdui-theme-primary-indigo .mdui-text-color-theme-700 {\n color: #303F9F !important;\n}\n.mdui-theme-primary-indigo .mdui-text-color-theme-800 {\n color: #283593 !important;\n}\n.mdui-theme-primary-indigo .mdui-text-color-theme-900 {\n color: #1A237E !important;\n}\n.mdui-theme-primary-light-blue .mdui-text-color-theme {\n color: #03A9F4 !important;\n}\n.mdui-theme-primary-light-blue .mdui-text-color-theme-50 {\n color: #E1F5FE !important;\n}\n.mdui-theme-primary-light-blue .mdui-text-color-theme-100 {\n color: #B3E5FC !important;\n}\n.mdui-theme-primary-light-blue .mdui-text-color-theme-200 {\n color: #81D4FA !important;\n}\n.mdui-theme-primary-light-blue .mdui-text-color-theme-300 {\n color: #4FC3F7 !important;\n}\n.mdui-theme-primary-light-blue .mdui-text-color-theme-400 {\n color: #29B6F6 !important;\n}\n.mdui-theme-primary-light-blue .mdui-text-color-theme-500 {\n color: #03A9F4 !important;\n}\n.mdui-theme-primary-light-blue .mdui-text-color-theme-600 {\n color: #039BE5 !important;\n}\n.mdui-theme-primary-light-blue .mdui-text-color-theme-700 {\n color: #0288D1 !important;\n}\n.mdui-theme-primary-light-blue .mdui-text-color-theme-800 {\n color: #0277BD !important;\n}\n.mdui-theme-primary-light-blue .mdui-text-color-theme-900 {\n color: #01579B !important;\n}\n.mdui-theme-primary-light-green .mdui-text-color-theme {\n color: #8BC34A !important;\n}\n.mdui-theme-primary-light-green .mdui-text-color-theme-50 {\n color: #F1F8E9 !important;\n}\n.mdui-theme-primary-light-green .mdui-text-color-theme-100 {\n color: #DCEDC8 !important;\n}\n.mdui-theme-primary-light-green .mdui-text-color-theme-200 {\n color: #C5E1A5 !important;\n}\n.mdui-theme-primary-light-green .mdui-text-color-theme-300 {\n color: #AED581 !important;\n}\n.mdui-theme-primary-light-green .mdui-text-color-theme-400 {\n color: #9CCC65 !important;\n}\n.mdui-theme-primary-light-green .mdui-text-color-theme-500 {\n color: #8BC34A !important;\n}\n.mdui-theme-primary-light-green .mdui-text-color-theme-600 {\n color: #7CB342 !important;\n}\n.mdui-theme-primary-light-green .mdui-text-color-theme-700 {\n color: #689F38 !important;\n}\n.mdui-theme-primary-light-green .mdui-text-color-theme-800 {\n color: #558B2F !important;\n}\n.mdui-theme-primary-light-green .mdui-text-color-theme-900 {\n color: #33691E !important;\n}\n.mdui-theme-primary-lime .mdui-text-color-theme {\n color: #CDDC39 !important;\n}\n.mdui-theme-primary-lime .mdui-text-color-theme-50 {\n color: #F9FBE7 !important;\n}\n.mdui-theme-primary-lime .mdui-text-color-theme-100 {\n color: #F0F4C3 !important;\n}\n.mdui-theme-primary-lime .mdui-text-color-theme-200 {\n color: #E6EE9C !important;\n}\n.mdui-theme-primary-lime .mdui-text-color-theme-300 {\n color: #DCE775 !important;\n}\n.mdui-theme-primary-lime .mdui-text-color-theme-400 {\n color: #D4E157 !important;\n}\n.mdui-theme-primary-lime .mdui-text-color-theme-500 {\n color: #CDDC39 !important;\n}\n.mdui-theme-primary-lime .mdui-text-color-theme-600 {\n color: #C0CA33 !important;\n}\n.mdui-theme-primary-lime .mdui-text-color-theme-700 {\n color: #AFB42B !important;\n}\n.mdui-theme-primary-lime .mdui-text-color-theme-800 {\n color: #9E9D24 !important;\n}\n.mdui-theme-primary-lime .mdui-text-color-theme-900 {\n color: #827717 !important;\n}\n.mdui-theme-primary-orange .mdui-text-color-theme {\n color: #FF9800 !important;\n}\n.mdui-theme-primary-orange .mdui-text-color-theme-50 {\n color: #FFF3E0 !important;\n}\n.mdui-theme-primary-orange .mdui-text-color-theme-100 {\n color: #FFE0B2 !important;\n}\n.mdui-theme-primary-orange .mdui-text-color-theme-200 {\n color: #FFCC80 !important;\n}\n.mdui-theme-primary-orange .mdui-text-color-theme-300 {\n color: #FFB74D !important;\n}\n.mdui-theme-primary-orange .mdui-text-color-theme-400 {\n color: #FFA726 !important;\n}\n.mdui-theme-primary-orange .mdui-text-color-theme-500 {\n color: #FF9800 !important;\n}\n.mdui-theme-primary-orange .mdui-text-color-theme-600 {\n color: #FB8C00 !important;\n}\n.mdui-theme-primary-orange .mdui-text-color-theme-700 {\n color: #F57C00 !important;\n}\n.mdui-theme-primary-orange .mdui-text-color-theme-800 {\n color: #EF6C00 !important;\n}\n.mdui-theme-primary-orange .mdui-text-color-theme-900 {\n color: #E65100 !important;\n}\n.mdui-theme-primary-pink .mdui-text-color-theme {\n color: #E91E63 !important;\n}\n.mdui-theme-primary-pink .mdui-text-color-theme-50 {\n color: #FCE4EC !important;\n}\n.mdui-theme-primary-pink .mdui-text-color-theme-100 {\n color: #F8BBD0 !important;\n}\n.mdui-theme-primary-pink .mdui-text-color-theme-200 {\n color: #F48FB1 !important;\n}\n.mdui-theme-primary-pink .mdui-text-color-theme-300 {\n color: #F06292 !important;\n}\n.mdui-theme-primary-pink .mdui-text-color-theme-400 {\n color: #EC407A !important;\n}\n.mdui-theme-primary-pink .mdui-text-color-theme-500 {\n color: #E91E63 !important;\n}\n.mdui-theme-primary-pink .mdui-text-color-theme-600 {\n color: #D81B60 !important;\n}\n.mdui-theme-primary-pink .mdui-text-color-theme-700 {\n color: #C2185B !important;\n}\n.mdui-theme-primary-pink .mdui-text-color-theme-800 {\n color: #AD1457 !important;\n}\n.mdui-theme-primary-pink .mdui-text-color-theme-900 {\n color: #880E4F !important;\n}\n.mdui-theme-primary-purple .mdui-text-color-theme {\n color: #9C27B0 !important;\n}\n.mdui-theme-primary-purple .mdui-text-color-theme-50 {\n color: #F3E5F5 !important;\n}\n.mdui-theme-primary-purple .mdui-text-color-theme-100 {\n color: #E1BEE7 !important;\n}\n.mdui-theme-primary-purple .mdui-text-color-theme-200 {\n color: #CE93D8 !important;\n}\n.mdui-theme-primary-purple .mdui-text-color-theme-300 {\n color: #BA68C8 !important;\n}\n.mdui-theme-primary-purple .mdui-text-color-theme-400 {\n color: #AB47BC !important;\n}\n.mdui-theme-primary-purple .mdui-text-color-theme-500 {\n color: #9C27B0 !important;\n}\n.mdui-theme-primary-purple .mdui-text-color-theme-600 {\n color: #8E24AA !important;\n}\n.mdui-theme-primary-purple .mdui-text-color-theme-700 {\n color: #7B1FA2 !important;\n}\n.mdui-theme-primary-purple .mdui-text-color-theme-800 {\n color: #6A1B9A !important;\n}\n.mdui-theme-primary-purple .mdui-text-color-theme-900 {\n color: #4A148C !important;\n}\n.mdui-theme-primary-red .mdui-text-color-theme {\n color: #F44336 !important;\n}\n.mdui-theme-primary-red .mdui-text-color-theme-50 {\n color: #FFEBEE !important;\n}\n.mdui-theme-primary-red .mdui-text-color-theme-100 {\n color: #FFCDD2 !important;\n}\n.mdui-theme-primary-red .mdui-text-color-theme-200 {\n color: #EF9A9A !important;\n}\n.mdui-theme-primary-red .mdui-text-color-theme-300 {\n color: #E57373 !important;\n}\n.mdui-theme-primary-red .mdui-text-color-theme-400 {\n color: #EF5350 !important;\n}\n.mdui-theme-primary-red .mdui-text-color-theme-500 {\n color: #F44336 !important;\n}\n.mdui-theme-primary-red .mdui-text-color-theme-600 {\n color: #E53935 !important;\n}\n.mdui-theme-primary-red .mdui-text-color-theme-700 {\n color: #D32F2F !important;\n}\n.mdui-theme-primary-red .mdui-text-color-theme-800 {\n color: #C62828 !important;\n}\n.mdui-theme-primary-red .mdui-text-color-theme-900 {\n color: #B71C1C !important;\n}\n.mdui-theme-primary-teal .mdui-text-color-theme {\n color: #009688 !important;\n}\n.mdui-theme-primary-teal .mdui-text-color-theme-50 {\n color: #E0F2F1 !important;\n}\n.mdui-theme-primary-teal .mdui-text-color-theme-100 {\n color: #B2DFDB !important;\n}\n.mdui-theme-primary-teal .mdui-text-color-theme-200 {\n color: #80CBC4 !important;\n}\n.mdui-theme-primary-teal .mdui-text-color-theme-300 {\n color: #4DB6AC !important;\n}\n.mdui-theme-primary-teal .mdui-text-color-theme-400 {\n color: #26A69A !important;\n}\n.mdui-theme-primary-teal .mdui-text-color-theme-500 {\n color: #009688 !important;\n}\n.mdui-theme-primary-teal .mdui-text-color-theme-600 {\n color: #00897B !important;\n}\n.mdui-theme-primary-teal .mdui-text-color-theme-700 {\n color: #00796B !important;\n}\n.mdui-theme-primary-teal .mdui-text-color-theme-800 {\n color: #00695C !important;\n}\n.mdui-theme-primary-teal .mdui-text-color-theme-900 {\n color: #004D40 !important;\n}\n.mdui-theme-primary-yellow .mdui-text-color-theme {\n color: #FFEB3B !important;\n}\n.mdui-theme-primary-yellow .mdui-text-color-theme-50 {\n color: #FFFDE7 !important;\n}\n.mdui-theme-primary-yellow .mdui-text-color-theme-100 {\n color: #FFF9C4 !important;\n}\n.mdui-theme-primary-yellow .mdui-text-color-theme-200 {\n color: #FFF59D !important;\n}\n.mdui-theme-primary-yellow .mdui-text-color-theme-300 {\n color: #FFF176 !important;\n}\n.mdui-theme-primary-yellow .mdui-text-color-theme-400 {\n color: #FFEE58 !important;\n}\n.mdui-theme-primary-yellow .mdui-text-color-theme-500 {\n color: #FFEB3B !important;\n}\n.mdui-theme-primary-yellow .mdui-text-color-theme-600 {\n color: #FDD835 !important;\n}\n.mdui-theme-primary-yellow .mdui-text-color-theme-700 {\n color: #FBC02D !important;\n}\n.mdui-theme-primary-yellow .mdui-text-color-theme-800 {\n color: #F9A825 !important;\n}\n.mdui-theme-primary-yellow .mdui-text-color-theme-900 {\n color: #F57F17 !important;\n}\n/**\n * .mdui-theme-accent-[color] .mdui-text-color-theme-accent\n * .mdui-theme-accent-[color] .mdui-text-color-theme-[degree]\n */\n.mdui-theme-accent-amber .mdui-text-color-theme-accent {\n color: #FFD740 !important;\n}\n.mdui-theme-accent-amber .mdui-text-color-theme-a100 {\n color: #FFE57F !important;\n}\n.mdui-theme-accent-amber .mdui-text-color-theme-a200 {\n color: #FFD740 !important;\n}\n.mdui-theme-accent-amber .mdui-text-color-theme-a400 {\n color: #FFC400 !important;\n}\n.mdui-theme-accent-amber .mdui-text-color-theme-a700 {\n color: #FFAB00 !important;\n}\n.mdui-theme-accent-blue .mdui-text-color-theme-accent {\n color: #448AFF !important;\n}\n.mdui-theme-accent-blue .mdui-text-color-theme-a100 {\n color: #82B1FF !important;\n}\n.mdui-theme-accent-blue .mdui-text-color-theme-a200 {\n color: #448AFF !important;\n}\n.mdui-theme-accent-blue .mdui-text-color-theme-a400 {\n color: #2979FF !important;\n}\n.mdui-theme-accent-blue .mdui-text-color-theme-a700 {\n color: #2962FF !important;\n}\n.mdui-theme-accent-cyan .mdui-text-color-theme-accent {\n color: #18FFFF !important;\n}\n.mdui-theme-accent-cyan .mdui-text-color-theme-a100 {\n color: #84FFFF !important;\n}\n.mdui-theme-accent-cyan .mdui-text-color-theme-a200 {\n color: #18FFFF !important;\n}\n.mdui-theme-accent-cyan .mdui-text-color-theme-a400 {\n color: #00E5FF !important;\n}\n.mdui-theme-accent-cyan .mdui-text-color-theme-a700 {\n color: #00B8D4 !important;\n}\n.mdui-theme-accent-deep-orange .mdui-text-color-theme-accent {\n color: #FF6E40 !important;\n}\n.mdui-theme-accent-deep-orange .mdui-text-color-theme-a100 {\n color: #FF9E80 !important;\n}\n.mdui-theme-accent-deep-orange .mdui-text-color-theme-a200 {\n color: #FF6E40 !important;\n}\n.mdui-theme-accent-deep-orange .mdui-text-color-theme-a400 {\n color: #FF3D00 !important;\n}\n.mdui-theme-accent-deep-orange .mdui-text-color-theme-a700 {\n color: #DD2C00 !important;\n}\n.mdui-theme-accent-deep-purple .mdui-text-color-theme-accent {\n color: #7C4DFF !important;\n}\n.mdui-theme-accent-deep-purple .mdui-text-color-theme-a100 {\n color: #B388FF !important;\n}\n.mdui-theme-accent-deep-purple .mdui-text-color-theme-a200 {\n color: #7C4DFF !important;\n}\n.mdui-theme-accent-deep-purple .mdui-text-color-theme-a400 {\n color: #651FFF !important;\n}\n.mdui-theme-accent-deep-purple .mdui-text-color-theme-a700 {\n color: #6200EA !important;\n}\n.mdui-theme-accent-green .mdui-text-color-theme-accent {\n color: #69F0AE !important;\n}\n.mdui-theme-accent-green .mdui-text-color-theme-a100 {\n color: #B9F6CA !important;\n}\n.mdui-theme-accent-green .mdui-text-color-theme-a200 {\n color: #69F0AE !important;\n}\n.mdui-theme-accent-green .mdui-text-color-theme-a400 {\n color: #00E676 !important;\n}\n.mdui-theme-accent-green .mdui-text-color-theme-a700 {\n color: #00C853 !important;\n}\n.mdui-theme-accent-indigo .mdui-text-color-theme-accent {\n color: #536DFE !important;\n}\n.mdui-theme-accent-indigo .mdui-text-color-theme-a100 {\n color: #8C9EFF !important;\n}\n.mdui-theme-accent-indigo .mdui-text-color-theme-a200 {\n color: #536DFE !important;\n}\n.mdui-theme-accent-indigo .mdui-text-color-theme-a400 {\n color: #3D5AFE !important;\n}\n.mdui-theme-accent-indigo .mdui-text-color-theme-a700 {\n color: #304FFE !important;\n}\n.mdui-theme-accent-light-blue .mdui-text-color-theme-accent {\n color: #40C4FF !important;\n}\n.mdui-theme-accent-light-blue .mdui-text-color-theme-a100 {\n color: #80D8FF !important;\n}\n.mdui-theme-accent-light-blue .mdui-text-color-theme-a200 {\n color: #40C4FF !important;\n}\n.mdui-theme-accent-light-blue .mdui-text-color-theme-a400 {\n color: #00B0FF !important;\n}\n.mdui-theme-accent-light-blue .mdui-text-color-theme-a700 {\n color: #0091EA !important;\n}\n.mdui-theme-accent-light-green .mdui-text-color-theme-accent {\n color: #B2FF59 !important;\n}\n.mdui-theme-accent-light-green .mdui-text-color-theme-a100 {\n color: #CCFF90 !important;\n}\n.mdui-theme-accent-light-green .mdui-text-color-theme-a200 {\n color: #B2FF59 !important;\n}\n.mdui-theme-accent-light-green .mdui-text-color-theme-a400 {\n color: #76FF03 !important;\n}\n.mdui-theme-accent-light-green .mdui-text-color-theme-a700 {\n color: #64DD17 !important;\n}\n.mdui-theme-accent-lime .mdui-text-color-theme-accent {\n color: #EEFF41 !important;\n}\n.mdui-theme-accent-lime .mdui-text-color-theme-a100 {\n color: #F4FF81 !important;\n}\n.mdui-theme-accent-lime .mdui-text-color-theme-a200 {\n color: #EEFF41 !important;\n}\n.mdui-theme-accent-lime .mdui-text-color-theme-a400 {\n color: #C6FF00 !important;\n}\n.mdui-theme-accent-lime .mdui-text-color-theme-a700 {\n color: #AEEA00 !important;\n}\n.mdui-theme-accent-orange .mdui-text-color-theme-accent {\n color: #FFAB40 !important;\n}\n.mdui-theme-accent-orange .mdui-text-color-theme-a100 {\n color: #FFD180 !important;\n}\n.mdui-theme-accent-orange .mdui-text-color-theme-a200 {\n color: #FFAB40 !important;\n}\n.mdui-theme-accent-orange .mdui-text-color-theme-a400 {\n color: #FF9100 !important;\n}\n.mdui-theme-accent-orange .mdui-text-color-theme-a700 {\n color: #FF6D00 !important;\n}\n.mdui-theme-accent-pink .mdui-text-color-theme-accent {\n color: #FF4081 !important;\n}\n.mdui-theme-accent-pink .mdui-text-color-theme-a100 {\n color: #FF80AB !important;\n}\n.mdui-theme-accent-pink .mdui-text-color-theme-a200 {\n color: #FF4081 !important;\n}\n.mdui-theme-accent-pink .mdui-text-color-theme-a400 {\n color: #F50057 !important;\n}\n.mdui-theme-accent-pink .mdui-text-color-theme-a700 {\n color: #C51162 !important;\n}\n.mdui-theme-accent-purple .mdui-text-color-theme-accent {\n color: #E040FB !important;\n}\n.mdui-theme-accent-purple .mdui-text-color-theme-a100 {\n color: #EA80FC !important;\n}\n.mdui-theme-accent-purple .mdui-text-color-theme-a200 {\n color: #E040FB !important;\n}\n.mdui-theme-accent-purple .mdui-text-color-theme-a400 {\n color: #D500F9 !important;\n}\n.mdui-theme-accent-purple .mdui-text-color-theme-a700 {\n color: #AA00FF !important;\n}\n.mdui-theme-accent-red .mdui-text-color-theme-accent {\n color: #FF5252 !important;\n}\n.mdui-theme-accent-red .mdui-text-color-theme-a100 {\n color: #FF8A80 !important;\n}\n.mdui-theme-accent-red .mdui-text-color-theme-a200 {\n color: #FF5252 !important;\n}\n.mdui-theme-accent-red .mdui-text-color-theme-a400 {\n color: #FF1744 !important;\n}\n.mdui-theme-accent-red .mdui-text-color-theme-a700 {\n color: #D50000 !important;\n}\n.mdui-theme-accent-teal .mdui-text-color-theme-accent {\n color: #64FFDA !important;\n}\n.mdui-theme-accent-teal .mdui-text-color-theme-a100 {\n color: #A7FFEB !important;\n}\n.mdui-theme-accent-teal .mdui-text-color-theme-a200 {\n color: #64FFDA !important;\n}\n.mdui-theme-accent-teal .mdui-text-color-theme-a400 {\n color: #1DE9B6 !important;\n}\n.mdui-theme-accent-teal .mdui-text-color-theme-a700 {\n color: #00BFA5 !important;\n}\n.mdui-theme-accent-yellow .mdui-text-color-theme-accent {\n color: #FFFF00 !important;\n}\n.mdui-theme-accent-yellow .mdui-text-color-theme-a100 {\n color: #FFFF8D !important;\n}\n.mdui-theme-accent-yellow .mdui-text-color-theme-a200 {\n color: #FFFF00 !important;\n}\n.mdui-theme-accent-yellow .mdui-text-color-theme-a400 {\n color: #FFEA00 !important;\n}\n.mdui-theme-accent-yellow .mdui-text-color-theme-a700 {\n color: #FFD600 !important;\n}\n/**\n * .mdui-text-color-[color]\n * .mdui-text-color-[color]-[degree]\n */\n.mdui-text-color-amber {\n color: #FFC107 !important;\n}\n.mdui-text-color-amber-50 {\n color: #FFF8E1 !important;\n}\n.mdui-text-color-amber-100 {\n color: #FFECB3 !important;\n}\n.mdui-text-color-amber-200 {\n color: #FFE082 !important;\n}\n.mdui-text-color-amber-300 {\n color: #FFD54F !important;\n}\n.mdui-text-color-amber-400 {\n color: #FFCA28 !important;\n}\n.mdui-text-color-amber-500 {\n color: #FFC107 !important;\n}\n.mdui-text-color-amber-600 {\n color: #FFB300 !important;\n}\n.mdui-text-color-amber-700 {\n color: #FFA000 !important;\n}\n.mdui-text-color-amber-800 {\n color: #FF8F00 !important;\n}\n.mdui-text-color-amber-900 {\n color: #FF6F00 !important;\n}\n.mdui-text-color-blue {\n color: #2196F3 !important;\n}\n.mdui-text-color-blue-50 {\n color: #E3F2FD !important;\n}\n.mdui-text-color-blue-100 {\n color: #BBDEFB !important;\n}\n.mdui-text-color-blue-200 {\n color: #90CAF9 !important;\n}\n.mdui-text-color-blue-300 {\n color: #64B5F6 !important;\n}\n.mdui-text-color-blue-400 {\n color: #42A5F5 !important;\n}\n.mdui-text-color-blue-500 {\n color: #2196F3 !important;\n}\n.mdui-text-color-blue-600 {\n color: #1E88E5 !important;\n}\n.mdui-text-color-blue-700 {\n color: #1976D2 !important;\n}\n.mdui-text-color-blue-800 {\n color: #1565C0 !important;\n}\n.mdui-text-color-blue-900 {\n color: #0D47A1 !important;\n}\n.mdui-text-color-blue-grey {\n color: #607D8B !important;\n}\n.mdui-text-color-blue-grey-50 {\n color: #ECEFF1 !important;\n}\n.mdui-text-color-blue-grey-100 {\n color: #CFD8DC !important;\n}\n.mdui-text-color-blue-grey-200 {\n color: #B0BEC5 !important;\n}\n.mdui-text-color-blue-grey-300 {\n color: #90A4AE !important;\n}\n.mdui-text-color-blue-grey-400 {\n color: #78909C !important;\n}\n.mdui-text-color-blue-grey-500 {\n color: #607D8B !important;\n}\n.mdui-text-color-blue-grey-600 {\n color: #546E7A !important;\n}\n.mdui-text-color-blue-grey-700 {\n color: #455A64 !important;\n}\n.mdui-text-color-blue-grey-800 {\n color: #37474F !important;\n}\n.mdui-text-color-blue-grey-900 {\n color: #263238 !important;\n}\n.mdui-text-color-brown {\n color: #795548 !important;\n}\n.mdui-text-color-brown-50 {\n color: #EFEBE9 !important;\n}\n.mdui-text-color-brown-100 {\n color: #D7CCC8 !important;\n}\n.mdui-text-color-brown-200 {\n color: #BCAAA4 !important;\n}\n.mdui-text-color-brown-300 {\n color: #A1887F !important;\n}\n.mdui-text-color-brown-400 {\n color: #8D6E63 !important;\n}\n.mdui-text-color-brown-500 {\n color: #795548 !important;\n}\n.mdui-text-color-brown-600 {\n color: #6D4C41 !important;\n}\n.mdui-text-color-brown-700 {\n color: #5D4037 !important;\n}\n.mdui-text-color-brown-800 {\n color: #4E342E !important;\n}\n.mdui-text-color-brown-900 {\n color: #3E2723 !important;\n}\n.mdui-text-color-cyan {\n color: #00BCD4 !important;\n}\n.mdui-text-color-cyan-50 {\n color: #E0F7FA !important;\n}\n.mdui-text-color-cyan-100 {\n color: #B2EBF2 !important;\n}\n.mdui-text-color-cyan-200 {\n color: #80DEEA !important;\n}\n.mdui-text-color-cyan-300 {\n color: #4DD0E1 !important;\n}\n.mdui-text-color-cyan-400 {\n color: #26C6DA !important;\n}\n.mdui-text-color-cyan-500 {\n color: #00BCD4 !important;\n}\n.mdui-text-color-cyan-600 {\n color: #00ACC1 !important;\n}\n.mdui-text-color-cyan-700 {\n color: #0097A7 !important;\n}\n.mdui-text-color-cyan-800 {\n color: #00838F !important;\n}\n.mdui-text-color-cyan-900 {\n color: #006064 !important;\n}\n.mdui-text-color-deep-orange {\n color: #FF5722 !important;\n}\n.mdui-text-color-deep-orange-50 {\n color: #FBE9E7 !important;\n}\n.mdui-text-color-deep-orange-100 {\n color: #FFCCBC !important;\n}\n.mdui-text-color-deep-orange-200 {\n color: #FFAB91 !important;\n}\n.mdui-text-color-deep-orange-300 {\n color: #FF8A65 !important;\n}\n.mdui-text-color-deep-orange-400 {\n color: #FF7043 !important;\n}\n.mdui-text-color-deep-orange-500 {\n color: #FF5722 !important;\n}\n.mdui-text-color-deep-orange-600 {\n color: #F4511E !important;\n}\n.mdui-text-color-deep-orange-700 {\n color: #E64A19 !important;\n}\n.mdui-text-color-deep-orange-800 {\n color: #D84315 !important;\n}\n.mdui-text-color-deep-orange-900 {\n color: #BF360C !important;\n}\n.mdui-text-color-deep-purple {\n color: #673AB7 !important;\n}\n.mdui-text-color-deep-purple-50 {\n color: #EDE7F6 !important;\n}\n.mdui-text-color-deep-purple-100 {\n color: #D1C4E9 !important;\n}\n.mdui-text-color-deep-purple-200 {\n color: #B39DDB !important;\n}\n.mdui-text-color-deep-purple-300 {\n color: #9575CD !important;\n}\n.mdui-text-color-deep-purple-400 {\n color: #7E57C2 !important;\n}\n.mdui-text-color-deep-purple-500 {\n color: #673AB7 !important;\n}\n.mdui-text-color-deep-purple-600 {\n color: #5E35B1 !important;\n}\n.mdui-text-color-deep-purple-700 {\n color: #512DA8 !important;\n}\n.mdui-text-color-deep-purple-800 {\n color: #4527A0 !important;\n}\n.mdui-text-color-deep-purple-900 {\n color: #311B92 !important;\n}\n.mdui-text-color-green {\n color: #4CAF50 !important;\n}\n.mdui-text-color-green-50 {\n color: #E8F5E9 !important;\n}\n.mdui-text-color-green-100 {\n color: #C8E6C9 !important;\n}\n.mdui-text-color-green-200 {\n color: #A5D6A7 !important;\n}\n.mdui-text-color-green-300 {\n color: #81C784 !important;\n}\n.mdui-text-color-green-400 {\n color: #66BB6A !important;\n}\n.mdui-text-color-green-500 {\n color: #4CAF50 !important;\n}\n.mdui-text-color-green-600 {\n color: #43A047 !important;\n}\n.mdui-text-color-green-700 {\n color: #388E3C !important;\n}\n.mdui-text-color-green-800 {\n color: #2E7D32 !important;\n}\n.mdui-text-color-green-900 {\n color: #1B5E20 !important;\n}\n.mdui-text-color-grey {\n color: #9E9E9E !important;\n}\n.mdui-text-color-grey-50 {\n color: #FAFAFA !important;\n}\n.mdui-text-color-grey-100 {\n color: #F5F5F5 !important;\n}\n.mdui-text-color-grey-200 {\n color: #EEEEEE !important;\n}\n.mdui-text-color-grey-300 {\n color: #E0E0E0 !important;\n}\n.mdui-text-color-grey-400 {\n color: #BDBDBD !important;\n}\n.mdui-text-color-grey-500 {\n color: #9E9E9E !important;\n}\n.mdui-text-color-grey-600 {\n color: #757575 !important;\n}\n.mdui-text-color-grey-700 {\n color: #616161 !important;\n}\n.mdui-text-color-grey-800 {\n color: #424242 !important;\n}\n.mdui-text-color-grey-900 {\n color: #212121 !important;\n}\n.mdui-text-color-indigo {\n color: #3F51B5 !important;\n}\n.mdui-text-color-indigo-50 {\n color: #E8EAF6 !important;\n}\n.mdui-text-color-indigo-100 {\n color: #C5CAE9 !important;\n}\n.mdui-text-color-indigo-200 {\n color: #9FA8DA !important;\n}\n.mdui-text-color-indigo-300 {\n color: #7986CB !important;\n}\n.mdui-text-color-indigo-400 {\n color: #5C6BC0 !important;\n}\n.mdui-text-color-indigo-500 {\n color: #3F51B5 !important;\n}\n.mdui-text-color-indigo-600 {\n color: #3949AB !important;\n}\n.mdui-text-color-indigo-700 {\n color: #303F9F !important;\n}\n.mdui-text-color-indigo-800 {\n color: #283593 !important;\n}\n.mdui-text-color-indigo-900 {\n color: #1A237E !important;\n}\n.mdui-text-color-light-blue {\n color: #03A9F4 !important;\n}\n.mdui-text-color-light-blue-50 {\n color: #E1F5FE !important;\n}\n.mdui-text-color-light-blue-100 {\n color: #B3E5FC !important;\n}\n.mdui-text-color-light-blue-200 {\n color: #81D4FA !important;\n}\n.mdui-text-color-light-blue-300 {\n color: #4FC3F7 !important;\n}\n.mdui-text-color-light-blue-400 {\n color: #29B6F6 !important;\n}\n.mdui-text-color-light-blue-500 {\n color: #03A9F4 !important;\n}\n.mdui-text-color-light-blue-600 {\n color: #039BE5 !important;\n}\n.mdui-text-color-light-blue-700 {\n color: #0288D1 !important;\n}\n.mdui-text-color-light-blue-800 {\n color: #0277BD !important;\n}\n.mdui-text-color-light-blue-900 {\n color: #01579B !important;\n}\n.mdui-text-color-light-green {\n color: #8BC34A !important;\n}\n.mdui-text-color-light-green-50 {\n color: #F1F8E9 !important;\n}\n.mdui-text-color-light-green-100 {\n color: #DCEDC8 !important;\n}\n.mdui-text-color-light-green-200 {\n color: #C5E1A5 !important;\n}\n.mdui-text-color-light-green-300 {\n color: #AED581 !important;\n}\n.mdui-text-color-light-green-400 {\n color: #9CCC65 !important;\n}\n.mdui-text-color-light-green-500 {\n color: #8BC34A !important;\n}\n.mdui-text-color-light-green-600 {\n color: #7CB342 !important;\n}\n.mdui-text-color-light-green-700 {\n color: #689F38 !important;\n}\n.mdui-text-color-light-green-800 {\n color: #558B2F !important;\n}\n.mdui-text-color-light-green-900 {\n color: #33691E !important;\n}\n.mdui-text-color-lime {\n color: #CDDC39 !important;\n}\n.mdui-text-color-lime-50 {\n color: #F9FBE7 !important;\n}\n.mdui-text-color-lime-100 {\n color: #F0F4C3 !important;\n}\n.mdui-text-color-lime-200 {\n color: #E6EE9C !important;\n}\n.mdui-text-color-lime-300 {\n color: #DCE775 !important;\n}\n.mdui-text-color-lime-400 {\n color: #D4E157 !important;\n}\n.mdui-text-color-lime-500 {\n color: #CDDC39 !important;\n}\n.mdui-text-color-lime-600 {\n color: #C0CA33 !important;\n}\n.mdui-text-color-lime-700 {\n color: #AFB42B !important;\n}\n.mdui-text-color-lime-800 {\n color: #9E9D24 !important;\n}\n.mdui-text-color-lime-900 {\n color: #827717 !important;\n}\n.mdui-text-color-orange {\n color: #FF9800 !important;\n}\n.mdui-text-color-orange-50 {\n color: #FFF3E0 !important;\n}\n.mdui-text-color-orange-100 {\n color: #FFE0B2 !important;\n}\n.mdui-text-color-orange-200 {\n color: #FFCC80 !important;\n}\n.mdui-text-color-orange-300 {\n color: #FFB74D !important;\n}\n.mdui-text-color-orange-400 {\n color: #FFA726 !important;\n}\n.mdui-text-color-orange-500 {\n color: #FF9800 !important;\n}\n.mdui-text-color-orange-600 {\n color: #FB8C00 !important;\n}\n.mdui-text-color-orange-700 {\n color: #F57C00 !important;\n}\n.mdui-text-color-orange-800 {\n color: #EF6C00 !important;\n}\n.mdui-text-color-orange-900 {\n color: #E65100 !important;\n}\n.mdui-text-color-pink {\n color: #E91E63 !important;\n}\n.mdui-text-color-pink-50 {\n color: #FCE4EC !important;\n}\n.mdui-text-color-pink-100 {\n color: #F8BBD0 !important;\n}\n.mdui-text-color-pink-200 {\n color: #F48FB1 !important;\n}\n.mdui-text-color-pink-300 {\n color: #F06292 !important;\n}\n.mdui-text-color-pink-400 {\n color: #EC407A !important;\n}\n.mdui-text-color-pink-500 {\n color: #E91E63 !important;\n}\n.mdui-text-color-pink-600 {\n color: #D81B60 !important;\n}\n.mdui-text-color-pink-700 {\n color: #C2185B !important;\n}\n.mdui-text-color-pink-800 {\n color: #AD1457 !important;\n}\n.mdui-text-color-pink-900 {\n color: #880E4F !important;\n}\n.mdui-text-color-purple {\n color: #9C27B0 !important;\n}\n.mdui-text-color-purple-50 {\n color: #F3E5F5 !important;\n}\n.mdui-text-color-purple-100 {\n color: #E1BEE7 !important;\n}\n.mdui-text-color-purple-200 {\n color: #CE93D8 !important;\n}\n.mdui-text-color-purple-300 {\n color: #BA68C8 !important;\n}\n.mdui-text-color-purple-400 {\n color: #AB47BC !important;\n}\n.mdui-text-color-purple-500 {\n color: #9C27B0 !important;\n}\n.mdui-text-color-purple-600 {\n color: #8E24AA !important;\n}\n.mdui-text-color-purple-700 {\n color: #7B1FA2 !important;\n}\n.mdui-text-color-purple-800 {\n color: #6A1B9A !important;\n}\n.mdui-text-color-purple-900 {\n color: #4A148C !important;\n}\n.mdui-text-color-red {\n color: #F44336 !important;\n}\n.mdui-text-color-red-50 {\n color: #FFEBEE !important;\n}\n.mdui-text-color-red-100 {\n color: #FFCDD2 !important;\n}\n.mdui-text-color-red-200 {\n color: #EF9A9A !important;\n}\n.mdui-text-color-red-300 {\n color: #E57373 !important;\n}\n.mdui-text-color-red-400 {\n color: #EF5350 !important;\n}\n.mdui-text-color-red-500 {\n color: #F44336 !important;\n}\n.mdui-text-color-red-600 {\n color: #E53935 !important;\n}\n.mdui-text-color-red-700 {\n color: #D32F2F !important;\n}\n.mdui-text-color-red-800 {\n color: #C62828 !important;\n}\n.mdui-text-color-red-900 {\n color: #B71C1C !important;\n}\n.mdui-text-color-teal {\n color: #009688 !important;\n}\n.mdui-text-color-teal-50 {\n color: #E0F2F1 !important;\n}\n.mdui-text-color-teal-100 {\n color: #B2DFDB !important;\n}\n.mdui-text-color-teal-200 {\n color: #80CBC4 !important;\n}\n.mdui-text-color-teal-300 {\n color: #4DB6AC !important;\n}\n.mdui-text-color-teal-400 {\n color: #26A69A !important;\n}\n.mdui-text-color-teal-500 {\n color: #009688 !important;\n}\n.mdui-text-color-teal-600 {\n color: #00897B !important;\n}\n.mdui-text-color-teal-700 {\n color: #00796B !important;\n}\n.mdui-text-color-teal-800 {\n color: #00695C !important;\n}\n.mdui-text-color-teal-900 {\n color: #004D40 !important;\n}\n.mdui-text-color-yellow {\n color: #FFEB3B !important;\n}\n.mdui-text-color-yellow-50 {\n color: #FFFDE7 !important;\n}\n.mdui-text-color-yellow-100 {\n color: #FFF9C4 !important;\n}\n.mdui-text-color-yellow-200 {\n color: #FFF59D !important;\n}\n.mdui-text-color-yellow-300 {\n color: #FFF176 !important;\n}\n.mdui-text-color-yellow-400 {\n color: #FFEE58 !important;\n}\n.mdui-text-color-yellow-500 {\n color: #FFEB3B !important;\n}\n.mdui-text-color-yellow-600 {\n color: #FDD835 !important;\n}\n.mdui-text-color-yellow-700 {\n color: #FBC02D !important;\n}\n.mdui-text-color-yellow-800 {\n color: #F9A825 !important;\n}\n.mdui-text-color-yellow-900 {\n color: #F57F17 !important;\n}\n/**\n * .mdui-text-color-[color]-accent\n * .mdui-text-color-[color]-[degree]\n */\n.mdui-text-color-amber-accent {\n color: #FFD740 !important;\n}\n.mdui-text-color-amber-a100 {\n color: #FFE57F !important;\n}\n.mdui-text-color-amber-a200 {\n color: #FFD740 !important;\n}\n.mdui-text-color-amber-a400 {\n color: #FFC400 !important;\n}\n.mdui-text-color-amber-a700 {\n color: #FFAB00 !important;\n}\n.mdui-text-color-blue-accent {\n color: #448AFF !important;\n}\n.mdui-text-color-blue-a100 {\n color: #82B1FF !important;\n}\n.mdui-text-color-blue-a200 {\n color: #448AFF !important;\n}\n.mdui-text-color-blue-a400 {\n color: #2979FF !important;\n}\n.mdui-text-color-blue-a700 {\n color: #2962FF !important;\n}\n.mdui-text-color-cyan-accent {\n color: #18FFFF !important;\n}\n.mdui-text-color-cyan-a100 {\n color: #84FFFF !important;\n}\n.mdui-text-color-cyan-a200 {\n color: #18FFFF !important;\n}\n.mdui-text-color-cyan-a400 {\n color: #00E5FF !important;\n}\n.mdui-text-color-cyan-a700 {\n color: #00B8D4 !important;\n}\n.mdui-text-color-deep-orange-accent {\n color: #FF6E40 !important;\n}\n.mdui-text-color-deep-orange-a100 {\n color: #FF9E80 !important;\n}\n.mdui-text-color-deep-orange-a200 {\n color: #FF6E40 !important;\n}\n.mdui-text-color-deep-orange-a400 {\n color: #FF3D00 !important;\n}\n.mdui-text-color-deep-orange-a700 {\n color: #DD2C00 !important;\n}\n.mdui-text-color-deep-purple-accent {\n color: #7C4DFF !important;\n}\n.mdui-text-color-deep-purple-a100 {\n color: #B388FF !important;\n}\n.mdui-text-color-deep-purple-a200 {\n color: #7C4DFF !important;\n}\n.mdui-text-color-deep-purple-a400 {\n color: #651FFF !important;\n}\n.mdui-text-color-deep-purple-a700 {\n color: #6200EA !important;\n}\n.mdui-text-color-green-accent {\n color: #69F0AE !important;\n}\n.mdui-text-color-green-a100 {\n color: #B9F6CA !important;\n}\n.mdui-text-color-green-a200 {\n color: #69F0AE !important;\n}\n.mdui-text-color-green-a400 {\n color: #00E676 !important;\n}\n.mdui-text-color-green-a700 {\n color: #00C853 !important;\n}\n.mdui-text-color-indigo-accent {\n color: #536DFE !important;\n}\n.mdui-text-color-indigo-a100 {\n color: #8C9EFF !important;\n}\n.mdui-text-color-indigo-a200 {\n color: #536DFE !important;\n}\n.mdui-text-color-indigo-a400 {\n color: #3D5AFE !important;\n}\n.mdui-text-color-indigo-a700 {\n color: #304FFE !important;\n}\n.mdui-text-color-light-blue-accent {\n color: #40C4FF !important;\n}\n.mdui-text-color-light-blue-a100 {\n color: #80D8FF !important;\n}\n.mdui-text-color-light-blue-a200 {\n color: #40C4FF !important;\n}\n.mdui-text-color-light-blue-a400 {\n color: #00B0FF !important;\n}\n.mdui-text-color-light-blue-a700 {\n color: #0091EA !important;\n}\n.mdui-text-color-light-green-accent {\n color: #B2FF59 !important;\n}\n.mdui-text-color-light-green-a100 {\n color: #CCFF90 !important;\n}\n.mdui-text-color-light-green-a200 {\n color: #B2FF59 !important;\n}\n.mdui-text-color-light-green-a400 {\n color: #76FF03 !important;\n}\n.mdui-text-color-light-green-a700 {\n color: #64DD17 !important;\n}\n.mdui-text-color-lime-accent {\n color: #EEFF41 !important;\n}\n.mdui-text-color-lime-a100 {\n color: #F4FF81 !important;\n}\n.mdui-text-color-lime-a200 {\n color: #EEFF41 !important;\n}\n.mdui-text-color-lime-a400 {\n color: #C6FF00 !important;\n}\n.mdui-text-color-lime-a700 {\n color: #AEEA00 !important;\n}\n.mdui-text-color-orange-accent {\n color: #FFAB40 !important;\n}\n.mdui-text-color-orange-a100 {\n color: #FFD180 !important;\n}\n.mdui-text-color-orange-a200 {\n color: #FFAB40 !important;\n}\n.mdui-text-color-orange-a400 {\n color: #FF9100 !important;\n}\n.mdui-text-color-orange-a700 {\n color: #FF6D00 !important;\n}\n.mdui-text-color-pink-accent {\n color: #FF4081 !important;\n}\n.mdui-text-color-pink-a100 {\n color: #FF80AB !important;\n}\n.mdui-text-color-pink-a200 {\n color: #FF4081 !important;\n}\n.mdui-text-color-pink-a400 {\n color: #F50057 !important;\n}\n.mdui-text-color-pink-a700 {\n color: #C51162 !important;\n}\n.mdui-text-color-purple-accent {\n color: #E040FB !important;\n}\n.mdui-text-color-purple-a100 {\n color: #EA80FC !important;\n}\n.mdui-text-color-purple-a200 {\n color: #E040FB !important;\n}\n.mdui-text-color-purple-a400 {\n color: #D500F9 !important;\n}\n.mdui-text-color-purple-a700 {\n color: #AA00FF !important;\n}\n.mdui-text-color-red-accent {\n color: #FF5252 !important;\n}\n.mdui-text-color-red-a100 {\n color: #FF8A80 !important;\n}\n.mdui-text-color-red-a200 {\n color: #FF5252 !important;\n}\n.mdui-text-color-red-a400 {\n color: #FF1744 !important;\n}\n.mdui-text-color-red-a700 {\n color: #D50000 !important;\n}\n.mdui-text-color-teal-accent {\n color: #64FFDA !important;\n}\n.mdui-text-color-teal-a100 {\n color: #A7FFEB !important;\n}\n.mdui-text-color-teal-a200 {\n color: #64FFDA !important;\n}\n.mdui-text-color-teal-a400 {\n color: #1DE9B6 !important;\n}\n.mdui-text-color-teal-a700 {\n color: #00BFA5 !important;\n}\n.mdui-text-color-yellow-accent {\n color: #FFFF00 !important;\n}\n.mdui-text-color-yellow-a100 {\n color: #FFFF8D !important;\n}\n.mdui-text-color-yellow-a200 {\n color: #FFFF00 !important;\n}\n.mdui-text-color-yellow-a400 {\n color: #FFEA00 !important;\n}\n.mdui-text-color-yellow-a700 {\n color: #FFD600 !important;\n}\n/**\n * .mdui-text-color-black\n * .mdui-text-color-black-[]\n * .mdui-text-color-theme-[]\n */\n.mdui-text-color-black {\n color: #000000 !important;\n}\n.mdui-text-color-black-text,\n.mdui-text-color-theme-text {\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-text-color-black-secondary,\n.mdui-text-color-theme-secondary {\n color: rgba(0, 0, 0, 0.54) !important;\n}\n.mdui-text-color-black-disabled,\n.mdui-text-color-theme-disabled {\n color: rgba(0, 0, 0, 0.38) !important;\n}\n.mdui-text-color-black-divider,\n.mdui-text-color-theme-divider {\n color: rgba(0, 0, 0, 0.12) !important;\n}\n.mdui-text-color-black-icon,\n.mdui-text-color-theme-icon {\n color: rgba(0, 0, 0, 0.54) !important;\n}\n.mdui-text-color-black-icon-disabled,\n.mdui-text-color-theme-icon-disabled {\n color: rgba(0, 0, 0, 0.26) !important;\n}\n/**\n * .mdui-text-color-white\n * .mdui-text-color-white-[]\n */\n.mdui-text-color-white {\n color: #FFFFFF !important;\n}\n.mdui-text-color-white-text {\n color: #ffffff !important;\n}\n.mdui-text-color-white-secondary {\n color: rgba(255, 255, 255, 0.7) !important;\n}\n.mdui-text-color-white-disabled {\n color: rgba(255, 255, 255, 0.5) !important;\n}\n.mdui-text-color-white-divider {\n color: rgba(255, 255, 255, 0.12) !important;\n}\n.mdui-text-color-white-icon {\n color: #ffffff !important;\n}\n.mdui-text-color-white-icon-disabled {\n color: rgba(255, 255, 255, 0.3) !important;\n}\n/**\n * .mdui-text-color-theme-[] 深色主题\n */\n.mdui-theme-layout-dark .mdui-text-color-theme-text {\n color: #ffffff !important;\n}\n.mdui-theme-layout-dark .mdui-text-color-theme-secondary {\n color: rgba(255, 255, 255, 0.7) !important;\n}\n.mdui-theme-layout-dark .mdui-text-color-theme-disabled {\n color: rgba(255, 255, 255, 0.5) !important;\n}\n.mdui-theme-layout-dark .mdui-text-color-theme-divider {\n color: rgba(255, 255, 255, 0.12) !important;\n}\n.mdui-theme-layout-dark .mdui-text-color-theme-icon {\n color: #ffffff !important;\n}\n.mdui-theme-layout-dark .mdui-text-color-theme-icon-disabled {\n color: rgba(255, 255, 255, 0.3) !important;\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-layout-auto .mdui-text-color-theme-text {\n color: #ffffff !important;\n }\n .mdui-theme-layout-auto .mdui-text-color-theme-secondary {\n color: rgba(255, 255, 255, 0.7) !important;\n }\n .mdui-theme-layout-auto .mdui-text-color-theme-disabled {\n color: rgba(255, 255, 255, 0.5) !important;\n }\n .mdui-theme-layout-auto .mdui-text-color-theme-divider {\n color: rgba(255, 255, 255, 0.12) !important;\n }\n .mdui-theme-layout-auto .mdui-text-color-theme-icon {\n color: #ffffff !important;\n }\n .mdui-theme-layout-auto .mdui-text-color-theme-icon-disabled {\n color: rgba(255, 255, 255, 0.3) !important;\n }\n}\n/**\n * =============================================================================\n * ************ Helper 辅助类 ************\n * =============================================================================\n */\n/**\n * =================== 边距\n */\n.mdui-m-a-0 {\n margin: 0px !important;\n}\n.mdui-m-t-0 {\n margin-top: 0px !important;\n}\n.mdui-m-r-0 {\n margin-right: 0px !important;\n}\n.mdui-m-b-0 {\n margin-bottom: 0px !important;\n}\n.mdui-m-l-0 {\n margin-left: 0px !important;\n}\n.mdui-m-x-0 {\n margin-right: 0px !important;\n margin-left: 0px !important;\n}\n.mdui-m-y-0 {\n margin-top: 0px !important;\n margin-bottom: 0px !important;\n}\n.mdui-p-a-0 {\n padding: 0px !important;\n}\n.mdui-p-t-0 {\n padding-top: 0px !important;\n}\n.mdui-p-r-0 {\n padding-right: 0px !important;\n}\n.mdui-p-b-0 {\n padding-bottom: 0px !important;\n}\n.mdui-p-l-0 {\n padding-left: 0px !important;\n}\n.mdui-p-x-0 {\n padding-right: 0px !important;\n padding-left: 0px !important;\n}\n.mdui-p-y-0 {\n padding-top: 0px !important;\n padding-bottom: 0px !important;\n}\n.mdui-m-a-1 {\n margin: 8px !important;\n}\n.mdui-m-t-1 {\n margin-top: 8px !important;\n}\n.mdui-m-r-1 {\n margin-right: 8px !important;\n}\n.mdui-m-b-1 {\n margin-bottom: 8px !important;\n}\n.mdui-m-l-1 {\n margin-left: 8px !important;\n}\n.mdui-m-x-1 {\n margin-right: 8px !important;\n margin-left: 8px !important;\n}\n.mdui-m-y-1 {\n margin-top: 8px !important;\n margin-bottom: 8px !important;\n}\n.mdui-p-a-1 {\n padding: 8px !important;\n}\n.mdui-p-t-1 {\n padding-top: 8px !important;\n}\n.mdui-p-r-1 {\n padding-right: 8px !important;\n}\n.mdui-p-b-1 {\n padding-bottom: 8px !important;\n}\n.mdui-p-l-1 {\n padding-left: 8px !important;\n}\n.mdui-p-x-1 {\n padding-right: 8px !important;\n padding-left: 8px !important;\n}\n.mdui-p-y-1 {\n padding-top: 8px !important;\n padding-bottom: 8px !important;\n}\n.mdui-m-a-2 {\n margin: 16px !important;\n}\n.mdui-m-t-2 {\n margin-top: 16px !important;\n}\n.mdui-m-r-2 {\n margin-right: 16px !important;\n}\n.mdui-m-b-2 {\n margin-bottom: 16px !important;\n}\n.mdui-m-l-2 {\n margin-left: 16px !important;\n}\n.mdui-m-x-2 {\n margin-right: 16px !important;\n margin-left: 16px !important;\n}\n.mdui-m-y-2 {\n margin-top: 16px !important;\n margin-bottom: 16px !important;\n}\n.mdui-p-a-2 {\n padding: 16px !important;\n}\n.mdui-p-t-2 {\n padding-top: 16px !important;\n}\n.mdui-p-r-2 {\n padding-right: 16px !important;\n}\n.mdui-p-b-2 {\n padding-bottom: 16px !important;\n}\n.mdui-p-l-2 {\n padding-left: 16px !important;\n}\n.mdui-p-x-2 {\n padding-right: 16px !important;\n padding-left: 16px !important;\n}\n.mdui-p-y-2 {\n padding-top: 16px !important;\n padding-bottom: 16px !important;\n}\n.mdui-m-a-3 {\n margin: 24px !important;\n}\n.mdui-m-t-3 {\n margin-top: 24px !important;\n}\n.mdui-m-r-3 {\n margin-right: 24px !important;\n}\n.mdui-m-b-3 {\n margin-bottom: 24px !important;\n}\n.mdui-m-l-3 {\n margin-left: 24px !important;\n}\n.mdui-m-x-3 {\n margin-right: 24px !important;\n margin-left: 24px !important;\n}\n.mdui-m-y-3 {\n margin-top: 24px !important;\n margin-bottom: 24px !important;\n}\n.mdui-p-a-3 {\n padding: 24px !important;\n}\n.mdui-p-t-3 {\n padding-top: 24px !important;\n}\n.mdui-p-r-3 {\n padding-right: 24px !important;\n}\n.mdui-p-b-3 {\n padding-bottom: 24px !important;\n}\n.mdui-p-l-3 {\n padding-left: 24px !important;\n}\n.mdui-p-x-3 {\n padding-right: 24px !important;\n padding-left: 24px !important;\n}\n.mdui-p-y-3 {\n padding-top: 24px !important;\n padding-bottom: 24px !important;\n}\n.mdui-m-a-4 {\n margin: 32px !important;\n}\n.mdui-m-t-4 {\n margin-top: 32px !important;\n}\n.mdui-m-r-4 {\n margin-right: 32px !important;\n}\n.mdui-m-b-4 {\n margin-bottom: 32px !important;\n}\n.mdui-m-l-4 {\n margin-left: 32px !important;\n}\n.mdui-m-x-4 {\n margin-right: 32px !important;\n margin-left: 32px !important;\n}\n.mdui-m-y-4 {\n margin-top: 32px !important;\n margin-bottom: 32px !important;\n}\n.mdui-p-a-4 {\n padding: 32px !important;\n}\n.mdui-p-t-4 {\n padding-top: 32px !important;\n}\n.mdui-p-r-4 {\n padding-right: 32px !important;\n}\n.mdui-p-b-4 {\n padding-bottom: 32px !important;\n}\n.mdui-p-l-4 {\n padding-left: 32px !important;\n}\n.mdui-p-x-4 {\n padding-right: 32px !important;\n padding-left: 32px !important;\n}\n.mdui-p-y-4 {\n padding-top: 32px !important;\n padding-bottom: 32px !important;\n}\n.mdui-m-a-5 {\n margin: 40px !important;\n}\n.mdui-m-t-5 {\n margin-top: 40px !important;\n}\n.mdui-m-r-5 {\n margin-right: 40px !important;\n}\n.mdui-m-b-5 {\n margin-bottom: 40px !important;\n}\n.mdui-m-l-5 {\n margin-left: 40px !important;\n}\n.mdui-m-x-5 {\n margin-right: 40px !important;\n margin-left: 40px !important;\n}\n.mdui-m-y-5 {\n margin-top: 40px !important;\n margin-bottom: 40px !important;\n}\n.mdui-p-a-5 {\n padding: 40px !important;\n}\n.mdui-p-t-5 {\n padding-top: 40px !important;\n}\n.mdui-p-r-5 {\n padding-right: 40px !important;\n}\n.mdui-p-b-5 {\n padding-bottom: 40px !important;\n}\n.mdui-p-l-5 {\n padding-left: 40px !important;\n}\n.mdui-p-x-5 {\n padding-right: 40px !important;\n padding-left: 40px !important;\n}\n.mdui-p-y-5 {\n padding-top: 40px !important;\n padding-bottom: 40px !important;\n}\n/**\n * ======================== 快速浮动\n */\n/* 向左浮动 */\n.mdui-float-left {\n float: left !important;\n}\n/* 向右浮动 */\n.mdui-float-right {\n float: right !important;\n}\n/**\n * ========================= 水平居中\n */\n/* 水平居中 */\n.mdui-center {\n display: block !important;\n margin-right: auto !important;\n margin-left: auto !important;\n}\n/**\n * ========================= 垂直居中\n */\n/* 垂直居中 */\n.mdui-valign {\n display: flex !important;\n align-items: center !important;\n}\n/**\n * ========================= 文本对齐方式\n */\n/* 文本左对齐 */\n.mdui-text-left {\n text-align: left !important;\n}\n/* 文本居中对齐 */\n.mdui-text-center {\n text-align: center !important;\n}\n/* 文本向右对齐 */\n.mdui-text-right {\n text-align: right !important;\n}\n/**\n * ========================= 文本大小写转换\n */\n/* 文本转为小写 */\n.mdui-text-lowercase {\n text-transform: lowercase !important;\n}\n/* 文本转为大写 */\n.mdui-text-uppercase {\n text-transform: uppercase !important;\n}\n/* 文本转为单词的首字母大写 */\n.mdui-text-capitalize {\n text-transform: capitalize !important;\n}\n/**\n * ======================== 文本截断\n */\n/* 文本截断 */\n.mdui-text-truncate {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n/**\n * ========================= 清除浮动\n */\n/* 清除浮动 */\n.mdui-clearfix::before,\n.mdui-clearfix::after {\n display: table;\n content: ' ';\n}\n.mdui-clearfix::after {\n clear: both;\n}\n/**\n * ========================= 隐藏内容\n */\n/* 隐藏元素 */\n.mdui-hidden,\n[hidden] {\n display: none !important;\n}\n/* 使元素不可见 */\n.mdui-invisible {\n visibility: hidden;\n}\n/* Responsive utilities 响应式工具\n ========================================================================== */\n/* 在特定屏幕的特备上隐藏 */\n@media (max-width: 599.9px) {\n .mdui-hidden-xs {\n display: none !important;\n }\n}\n@media (min-width: 600px) and (max-width: 1023.9px) {\n .mdui-hidden-sm {\n display: none !important;\n }\n}\n@media (min-width: 1024px) and (max-width: 1439.9px) {\n .mdui-hidden-md {\n display: none !important;\n }\n}\n@media (min-width: 1440px) and (max-width: 1919.9px) {\n .mdui-hidden-lg {\n display: none !important;\n }\n}\n@media (min-width: 1920px) {\n .mdui-hidden-xl {\n display: none !important;\n }\n}\n/* 在比特定屏幕小的设备上隐藏 */\n@media (max-width: 599.9px) {\n .mdui-hidden-xs-down {\n display: none !important;\n }\n}\n@media (max-width: 1023.9px) {\n .mdui-hidden-sm-down {\n display: none !important;\n }\n}\n@media (max-width: 1439.9px) {\n .mdui-hidden-md-down {\n display: none !important;\n }\n}\n@media (max-width: 1919.9px) {\n .mdui-hidden-lg-down {\n display: none !important;\n }\n}\n.mdui-hidden-xl-down {\n display: none !important;\n}\n/* 在比特定屏幕大的设备上隐藏 */\n.mdui-hidden-xs-up {\n display: none !important;\n}\n@media (min-width: 600px) {\n .mdui-hidden-sm-up {\n display: none !important;\n }\n}\n@media (min-width: 1024px) {\n .mdui-hidden-md-up {\n display: none !important;\n }\n}\n@media (min-width: 1440px) {\n .mdui-hidden-lg-up {\n display: none !important;\n }\n}\n@media (min-width: 1920px) {\n .mdui-hidden-xl-up {\n display: none !important;\n }\n}\n/**\n * =============================================================================\n * ************ Icon 图标 ************\n * =============================================================================\n */\n.mdui-icon,\n.mdui-icon::before {\n color: inherit;\n font-weight: normal;\n font-size: 24px;\n /* Preferred icon size */\n font-style: normal;\n line-height: 1;\n direction: ltr;\n letter-spacing: normal;\n white-space: nowrap;\n text-transform: none;\n vertical-align: middle;\n word-wrap: normal;\n}\n.mdui-icon {\n display: inline-block;\n text-align: center;\n}\n.mdui-icon::before {\n display: block !important;\n width: 24px;\n height: 24px;\n}\n/**\n * =============================================================================\n * ************ Material Icons ************\n * =============================================================================\n *\n * https://github.com/google/material-design-icons/\n * v3.0.1\n */\n@font-face {\n font-weight: 400;\n font-family: 'Material Icons';\n font-style: normal;\n src: local('Material Icons'), local('MaterialIcons-Regular'), url(../icons/material-icons/MaterialIcons-Regular.woff2) format('woff2'), url(../icons/material-icons/MaterialIcons-Regular.woff) format('woff');\n}\n.material-icons {\n /* stylelint-disable-next-line */\n font-family: 'Material Icons';\n /* Support for all WebKit browsers. */\n -webkit-font-smoothing: antialiased;\n /* Support for Safari and Chrome. */\n text-rendering: optimizeLegibility;\n /* Support for Firefox. */\n -moz-osx-font-smoothing: grayscale;\n /* Support for IE. */\n font-feature-settings: 'liga';\n}\n/**\n * =============================================================================\n * ************ Media 媒体工具 ************\n * =============================================================================\n */\n/* 响应式图片和视频 */\n.mdui-img-fluid,\n.mdui-video-fluid {\n display: block;\n max-width: 100%;\n height: auto;\n}\n/* 圆角图片 */\n.mdui-img-rounded {\n border-radius: 2px;\n}\n/* 圆形图片 */\n.mdui-img-circle {\n border-radius: 50%;\n}\n.mdui-video-container {\n position: relative;\n height: 0;\n padding-bottom: 56.25%;\n overflow: hidden;\n}\n.mdui-video-container iframe,\n.mdui-video-container object,\n.mdui-video-container embed {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n}\n/**\n * =============================================================================\n * ************ Roboto 字体 ************\n * =============================================================================\n */\n@font-face {\n font-weight: 100;\n font-family: 'Roboto';\n font-style: normal;\n font-display: swap;\n src: local('Roboto Thin'), local('Roboto-Thin'), url('../fonts/roboto/Roboto-Thin.woff2') format('woff2'), url('../fonts/roboto/Roboto-Thin.woff') format('woff');\n}\n@font-face {\n font-weight: 100;\n font-family: 'Roboto';\n font-style: italic;\n font-display: swap;\n src: local('Roboto ThinItalic'), local('Roboto-ThinItalic'), url('../fonts/roboto/Roboto-ThinItalic.woff2') format('woff2'), url('../fonts/roboto/Roboto-ThinItalic.woff') format('woff');\n}\n@font-face {\n font-weight: 300;\n font-family: 'Roboto';\n font-style: normal;\n font-display: swap;\n src: local('Roboto Light'), local('Roboto-Light'), url('../fonts/roboto/Roboto-Light.woff2') format('woff2'), url('../fonts/roboto/Roboto-Light.woff') format('woff');\n}\n@font-face {\n font-weight: 300;\n font-family: 'Roboto';\n font-style: italic;\n font-display: swap;\n src: local('Roboto LightItalic'), local('Roboto-LightItalic'), url('../fonts/roboto/Roboto-LightItalic.woff2') format('woff2'), url('../fonts/roboto/Roboto-LightItalic.woff') format('woff');\n}\n@font-face {\n font-weight: 400;\n font-family: 'Roboto';\n font-style: normal;\n font-display: swap;\n src: local('Roboto Regular'), local('Roboto-Regular'), url('../fonts/roboto/Roboto-Regular.woff2') format('woff2'), url('../fonts/roboto/Roboto-Regular.woff') format('woff');\n}\n@font-face {\n font-weight: 400;\n font-family: 'Roboto';\n font-style: italic;\n font-display: swap;\n src: local('Roboto RegularItalic'), local('Roboto-RegularItalic'), url('../fonts/roboto/Roboto-RegularItalic.woff2') format('woff2'), url('../fonts/roboto/Roboto-RegularItalic.woff') format('woff');\n}\n@font-face {\n font-weight: 500;\n font-family: 'Roboto';\n font-style: normal;\n font-display: swap;\n src: local('Roboto Medium'), local('Roboto-Medium'), url('../fonts/roboto/Roboto-Medium.woff2') format('woff2'), url('../fonts/roboto/Roboto-Medium.woff') format('woff');\n}\n@font-face {\n font-weight: 500;\n font-family: 'Roboto';\n font-style: italic;\n font-display: swap;\n src: local('Roboto MediumItalic'), local('Roboto-MediumItalic'), url('../fonts/roboto/Roboto-MediumItalic.woff2') format('woff2'), url('../fonts/roboto/Roboto-MediumItalic.woff') format('woff');\n}\n@font-face {\n font-weight: 700;\n font-family: 'Roboto';\n font-style: normal;\n font-display: swap;\n src: local('Roboto Bold'), local('Roboto-Bold'), url('../fonts/roboto/Roboto-Bold.woff2') format('woff2'), url('../fonts/roboto/Roboto-Bold.woff') format('woff');\n}\n@font-face {\n font-weight: 700;\n font-family: 'Roboto';\n font-style: italic;\n font-display: swap;\n src: local('Roboto BoldItalic'), local('Roboto-BoldItalic'), url('../fonts/roboto/Roboto-BoldItalic.woff2') format('woff2'), url('../fonts/roboto/Roboto-BoldItalic.woff') format('woff');\n}\n@font-face {\n font-weight: 900;\n font-family: 'Roboto';\n font-style: normal;\n font-display: swap;\n src: local('Roboto Black'), local('Roboto-Black'), url('../fonts/roboto/Roboto-Black.woff2') format('woff2'), url('../fonts/roboto/Roboto-Black.woff') format('woff');\n}\n@font-face {\n font-weight: 900;\n font-family: 'Roboto';\n font-style: italic;\n font-display: swap;\n src: local('Roboto BlackItalic'), local('Roboto-BlackItalic'), url('../fonts/roboto/Roboto-BlackItalic.woff2') format('woff2'), url('../fonts/roboto/Roboto-BlackItalic.woff') format('woff');\n}\n/**\n * =============================================================================\n * ************ Typography 样式排版 ************\n * =============================================================================\n */\n/* .mdui-typo-display-4 */\n.mdui-typo-display-4,\n.mdui-typo-display-4-opacity {\n font-weight: 300;\n font-size: 112px;\n letter-spacing: -0.04em;\n}\n.mdui-typo-display-4-opacity {\n opacity: 0.54;\n}\n/* .mdui-typo-display-3 */\n.mdui-typo-display-3,\n.mdui-typo-display-3-opacity {\n font-weight: 400;\n font-size: 56px;\n letter-spacing: -0.02em;\n}\n.mdui-typo-display-3-opacity {\n opacity: 0.54;\n}\n/* .mdui-typo-display-2 */\n.mdui-typo-display-2,\n.mdui-typo-display-2-opacity {\n font-weight: 400;\n font-size: 45px;\n letter-spacing: 0;\n}\n.mdui-typo-display-2-opacity {\n opacity: 0.54;\n}\n/* .mdui-typo-display-1 */\n.mdui-typo-display-1,\n.mdui-typo-display-1-opacity {\n font-weight: 400;\n font-size: 34px;\n letter-spacing: 0;\n}\n.mdui-typo-display-1-opacity {\n opacity: 0.54;\n}\n/* .mdui-typo-headline */\n.mdui-typo-headline,\n.mdui-typo-headline-opacity {\n font-weight: 400;\n font-size: 24px;\n -moz-osx-font-smoothing: grayscale;\n}\n.mdui-typo-headline-opacity {\n opacity: 0.87;\n}\n/* .mdui-typo-title */\n.mdui-typo-title,\n.mdui-typo-title-opacity {\n font-weight: 500;\n font-size: 20px;\n letter-spacing: 0.02em;\n}\n.mdui-typo-title-opacity {\n opacity: 0.87;\n}\n.mdui-typo-subheading,\n.mdui-typo-subheading-opacity {\n font-weight: 400;\n font-size: 16px;\n letter-spacing: 0.04em;\n}\n.mdui-typo-subheading-opacity {\n opacity: 0.87;\n}\n.mdui-typo-body-2,\n.mdui-typo-body-2-opacity {\n font-weight: 500;\n font-size: 14px;\n letter-spacing: 0.04em;\n}\n.mdui-typo-body-2-opacity {\n opacity: 0.87;\n}\n.mdui-typo-body-1,\n.mdui-typo-body-1-opacity {\n font-weight: 400;\n font-size: 14px;\n letter-spacing: 0.04em;\n}\n.mdui-typo-body-1-opacity {\n opacity: 0.87;\n}\n.mdui-typo-caption,\n.mdui-typo-caption-opacity {\n font-weight: 400;\n font-size: 12px;\n letter-spacing: 0.08em;\n}\n.mdui-typo-caption-opacity {\n opacity: 0.54;\n}\n/**\n * =============================================================================\n * ************ Typography 文章排版 ************\n * =============================================================================\n */\n.mdui-typo {\n line-height: 1.8;\n word-wrap: break-word;\n /* a */\n /* small */\n /* blockquote */\n /* mark */\n /* h1 - h6 */\n /* code */\n /* pre code */\n /* abbr */\n /* ins */\n /* u */\n /* del */\n /* hr */\n /* pre */\n /* kbd */\n /* ul / ol */\n /* img, video */\n}\n.mdui-typo address,\n.mdui-typo caption,\n.mdui-typo cite,\n.mdui-typo code,\n.mdui-typo dfn,\n.mdui-typo th {\n font-weight: 400;\n font-style: normal;\n}\n.mdui-typo caption,\n.mdui-typo th {\n text-align: left;\n}\n.mdui-typo q::before,\n.mdui-typo q::after {\n content: '';\n}\n.mdui-typo pre,\n.mdui-typo code,\n.mdui-typo kbd,\n.mdui-typo samp,\n.mdui-typo pre tt {\n font-family: Consolas, Courier, 'Courier New', monospace;\n}\n.mdui-typo figcaption {\n color: rgba(0, 0, 0, 0.54);\n font-size: 80%;\n}\n.mdui-typo [draggable],\n.mdui-typo [draggable=\"true\"] {\n cursor: move;\n}\n.mdui-typo [draggable=\"false\"] {\n cursor: inherit;\n}\n.mdui-typo p,\n.mdui-typo pre,\n.mdui-typo ul,\n.mdui-typo ol,\n.mdui-typo dl,\n.mdui-typo form,\n.mdui-typo hr,\n.mdui-typo figure,\n.mdui-typo table,\n.mdui-typo .mdui-table,\n.mdui-typo .mdui-table-fluid {\n margin: 0 0 1.2em 0;\n}\n.mdui-typo p:last-child,\n.mdui-typo pre:last-child,\n.mdui-typo ul:last-child,\n.mdui-typo ol:last-child,\n.mdui-typo dl:last-child,\n.mdui-typo form:last-child,\n.mdui-typo hr:last-child,\n.mdui-typo figure:last-child,\n.mdui-typo table:last-child,\n.mdui-typo .mdui-table:last-child,\n.mdui-typo .mdui-table-fluid:last-child {\n margin-bottom: 0;\n}\n.mdui-typo a {\n color: #FF4081;\n position: relative;\n display: inline-block;\n overflow: hidden;\n text-decoration: none;\n vertical-align: top;\n outline: none;\n}\n.mdui-typo a::before {\n position: absolute;\n top: auto;\n bottom: 1px;\n left: 0;\n width: 100%;\n height: 1px;\n background-color: #FF4081;\n transform: scaleX(0);\n backface-visibility: hidden;\n transition: all 0.2s;\n content: ' ';\n}\n.mdui-typo a:hover::before,\n.mdui-typo a:focus::before {\n transform: scaleX(1);\n}\n.mdui-typo small {\n font-size: 80%;\n}\n.mdui-typo blockquote {\n margin: 1em 3em 1em 2em;\n padding-left: 1em;\n font-weight: 400;\n border-left: 4px solid rgba(0, 0, 0, 0.12);\n}\n@media only screen and (max-width: 599.9px) {\n .mdui-typo blockquote {\n margin: 1em 0;\n }\n}\n.mdui-typo blockquote:last-child {\n margin-bottom: 0;\n}\n.mdui-typo blockquote footer {\n color: rgba(0, 0, 0, 0.54);\n font-size: 86%;\n}\n.mdui-typo mark {\n margin: 0 5px;\n padding: 2px;\n background: #fffdd1;\n border-bottom: 1px solid #ffedce;\n}\n.mdui-typo h1,\n.mdui-typo h2,\n.mdui-typo h3,\n.mdui-typo h4,\n.mdui-typo h5,\n.mdui-typo h6 {\n margin-top: 1.2em;\n margin-bottom: 0.6em;\n color: inherit;\n font-weight: 400;\n font-family: inherit;\n line-height: 1.35;\n}\n.mdui-typo h1:last-child,\n.mdui-typo h2:last-child,\n.mdui-typo h3:last-child,\n.mdui-typo h4:last-child,\n.mdui-typo h5:last-child,\n.mdui-typo h6:last-child {\n margin-bottom: 0;\n}\n.mdui-typo h1 small,\n.mdui-typo h2 small,\n.mdui-typo h3 small,\n.mdui-typo h4 small,\n.mdui-typo h5 small,\n.mdui-typo h6 small {\n color: rgba(0, 0, 0, 0.54);\n font-weight: 400;\n font-size: 65%;\n line-height: 1;\n}\n.mdui-typo h1 {\n font-size: 2em;\n}\n.mdui-typo h2 {\n font-size: 1.8em;\n}\n.mdui-typo h3 {\n font-size: 1.6em;\n}\n.mdui-typo h4 {\n font-size: 1.4em;\n}\n.mdui-typo h5 {\n font-size: 1.2em;\n}\n.mdui-typo h6 {\n font-size: 1.1em;\n}\n.mdui-typo code {\n padding: 2px 6px;\n color: #c7254e;\n background-color: #f7f7f9;\n border-radius: 2px;\n}\n.mdui-typo pre code {\n padding: 0;\n color: inherit;\n font-size: inherit;\n line-height: 1.7;\n background-color: transparent;\n border-radius: 0;\n}\n.mdui-typo abbr[title] {\n text-decoration: none;\n border-bottom: 1px dotted;\n cursor: help;\n}\n.mdui-typo ins {\n text-decoration: none;\n border-bottom: 1px solid ;\n}\n.mdui-typo u {\n text-decoration: none;\n border-bottom: 1px solid;\n}\n.mdui-typo del {\n text-decoration: line-through;\n}\n.mdui-typo hr {\n height: 10px;\n margin-bottom: 0.8em;\n border: none;\n border-bottom: 1px solid rgba(0, 0, 0, 0.12);\n}\n.mdui-typo pre {\n padding: 12px 16px;\n overflow-x: auto;\n border: 1px solid rgba(0, 0, 0, 0.12);\n border-radius: 2px;\n -webkit-overflow-scrolling: touch;\n}\n.mdui-typo kbd {\n padding: 2px 6px;\n color: #fff;\n font-size: 90%;\n background-color: #333;\n border-radius: 2px;\n}\n.mdui-typo ul {\n padding-left: 2em;\n list-style: disc;\n}\n.mdui-typo ol {\n padding-left: 2em;\n list-style: decimal;\n}\n.mdui-typo li ul,\n.mdui-typo li ol {\n margin: 0.8em 0;\n}\n.mdui-typo li ul {\n list-style: circle;\n}\n.mdui-typo img,\n.mdui-typo video {\n max-width: 100%;\n}\n.mdui-typo figure {\n text-align: center;\n}\n.mdui-typo figure figcaption {\n margin-top: 8px;\n color: #999;\n font-size: 14px;\n}\n.mdui-typo figure figcaption:empty::before {\n z-index: -1;\n color: #bfbfbf;\n cursor: text;\n content: attr(placeholder);\n}\n/**\n * =============================================================================\n * ************ Typo 强调色 ************\n * =============================================================================\n */\n.mdui-theme-accent-amber .mdui-typo a {\n color: #FFD740;\n}\n.mdui-theme-accent-amber .mdui-typo a::before {\n background-color: #FFD740;\n}\n.mdui-theme-accent-blue .mdui-typo a {\n color: #448AFF;\n}\n.mdui-theme-accent-blue .mdui-typo a::before {\n background-color: #448AFF;\n}\n.mdui-theme-accent-cyan .mdui-typo a {\n color: #18FFFF;\n}\n.mdui-theme-accent-cyan .mdui-typo a::before {\n background-color: #18FFFF;\n}\n.mdui-theme-accent-deep-orange .mdui-typo a {\n color: #FF6E40;\n}\n.mdui-theme-accent-deep-orange .mdui-typo a::before {\n background-color: #FF6E40;\n}\n.mdui-theme-accent-deep-purple .mdui-typo a {\n color: #7C4DFF;\n}\n.mdui-theme-accent-deep-purple .mdui-typo a::before {\n background-color: #7C4DFF;\n}\n.mdui-theme-accent-green .mdui-typo a {\n color: #69F0AE;\n}\n.mdui-theme-accent-green .mdui-typo a::before {\n background-color: #69F0AE;\n}\n.mdui-theme-accent-indigo .mdui-typo a {\n color: #536DFE;\n}\n.mdui-theme-accent-indigo .mdui-typo a::before {\n background-color: #536DFE;\n}\n.mdui-theme-accent-light-blue .mdui-typo a {\n color: #40C4FF;\n}\n.mdui-theme-accent-light-blue .mdui-typo a::before {\n background-color: #40C4FF;\n}\n.mdui-theme-accent-light-green .mdui-typo a {\n color: #B2FF59;\n}\n.mdui-theme-accent-light-green .mdui-typo a::before {\n background-color: #B2FF59;\n}\n.mdui-theme-accent-lime .mdui-typo a {\n color: #EEFF41;\n}\n.mdui-theme-accent-lime .mdui-typo a::before {\n background-color: #EEFF41;\n}\n.mdui-theme-accent-orange .mdui-typo a {\n color: #FFAB40;\n}\n.mdui-theme-accent-orange .mdui-typo a::before {\n background-color: #FFAB40;\n}\n.mdui-theme-accent-pink .mdui-typo a {\n color: #FF4081;\n}\n.mdui-theme-accent-pink .mdui-typo a::before {\n background-color: #FF4081;\n}\n.mdui-theme-accent-purple .mdui-typo a {\n color: #E040FB;\n}\n.mdui-theme-accent-purple .mdui-typo a::before {\n background-color: #E040FB;\n}\n.mdui-theme-accent-red .mdui-typo a {\n color: #FF5252;\n}\n.mdui-theme-accent-red .mdui-typo a::before {\n background-color: #FF5252;\n}\n.mdui-theme-accent-teal .mdui-typo a {\n color: #64FFDA;\n}\n.mdui-theme-accent-teal .mdui-typo a::before {\n background-color: #64FFDA;\n}\n.mdui-theme-accent-yellow .mdui-typo a {\n color: #FFFF00;\n}\n.mdui-theme-accent-yellow .mdui-typo a::before {\n background-color: #FFFF00;\n}\n/**\n * =============================================================================\n * ************ Typo dark ************\n * =============================================================================\n */\n.mdui-theme-layout-dark .mdui-typo blockquote {\n border-left-color: rgba(255, 255, 255, 0.12);\n}\n.mdui-theme-layout-dark .mdui-typo blockquote footer {\n color: rgba(255, 255, 255, 0.7);\n}\n.mdui-theme-layout-dark .mdui-typo figcaption {\n color: rgba(255, 255, 255, 0.7);\n}\n.mdui-theme-layout-dark .mdui-typo mark {\n background: #aaa;\n border-bottom-color: #bbb;\n}\n.mdui-theme-layout-dark .mdui-typo h1 small,\n.mdui-theme-layout-dark .mdui-typo h2 small,\n.mdui-theme-layout-dark .mdui-typo h3 small,\n.mdui-theme-layout-dark .mdui-typo h4 small,\n.mdui-theme-layout-dark .mdui-typo h5 small,\n.mdui-theme-layout-dark .mdui-typo h6 small {\n color: rgba(255, 255, 255, 0.7);\n}\n.mdui-theme-layout-dark .mdui-typo code {\n color: #FFCDD2;\n background-color: #424242;\n}\n.mdui-theme-layout-dark .mdui-typo pre {\n background: #424242;\n border-color: rgba(255, 255, 255, 0.12);\n}\n.mdui-theme-layout-dark .mdui-typo kbd {\n background: #424242;\n}\n.mdui-theme-layout-dark .mdui-typo hr {\n border-color: rgba(255, 255, 255, 0.12);\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-layout-auto .mdui-typo blockquote {\n border-left-color: rgba(255, 255, 255, 0.12);\n }\n .mdui-theme-layout-auto .mdui-typo blockquote footer {\n color: rgba(255, 255, 255, 0.7);\n }\n .mdui-theme-layout-auto .mdui-typo figcaption {\n color: rgba(255, 255, 255, 0.7);\n }\n .mdui-theme-layout-auto .mdui-typo mark {\n background: #aaa;\n border-bottom-color: #bbb;\n }\n .mdui-theme-layout-auto .mdui-typo h1 small,\n .mdui-theme-layout-auto .mdui-typo h2 small,\n .mdui-theme-layout-auto .mdui-typo h3 small,\n .mdui-theme-layout-auto .mdui-typo h4 small,\n .mdui-theme-layout-auto .mdui-typo h5 small,\n .mdui-theme-layout-auto .mdui-typo h6 small {\n color: rgba(255, 255, 255, 0.7);\n }\n .mdui-theme-layout-auto .mdui-typo code {\n color: #FFCDD2;\n background-color: #424242;\n }\n .mdui-theme-layout-auto .mdui-typo pre {\n background: #424242;\n border-color: rgba(255, 255, 255, 0.12);\n }\n .mdui-theme-layout-auto .mdui-typo kbd {\n background: #424242;\n }\n .mdui-theme-layout-auto .mdui-typo hr {\n border-color: rgba(255, 255, 255, 0.12);\n }\n}\n/**\n * =============================================================================\n * ************ Grid 网格系统 ************\n * =============================================================================\n */\n.mdui-container,\n.mdui-container-fluid {\n box-sizing: border-box;\n margin-right: auto;\n margin-left: auto;\n padding-right: 8px;\n padding-left: 8px;\n}\n.mdui-container::after,\n.mdui-container-fluid::after {\n display: table;\n clear: both;\n content: '';\n}\n.mdui-container {\n width: 96%;\n max-width: 1280px;\n}\n@media (min-width: 600px) {\n .mdui-container {\n width: 94%;\n }\n}\n@media (min-width: 1024px) {\n .mdui-container {\n width: 92%;\n }\n}\n.mdui-row,\n[class*=\"mdui-row-\"] {\n margin-right: -8px;\n margin-left: -8px;\n}\n.mdui-row::after,\n[class*=\"mdui-row-\"]::after {\n display: table;\n clear: both;\n content: '';\n}\n[class*=\"mdui-col-xs-\"],\n[class*=\"mdui-col-sm-\"],\n[class*=\"mdui-col-md-\"],\n[class*=\"mdui-col-lg-\"],\n[class*=\"mdui-col-xl-\"],\n.mdui-col {\n position: relative;\n box-sizing: border-box;\n min-height: 1px;\n padding-right: 8px;\n padding-left: 8px;\n}\n/* 取消列间距 */\n.mdui-row-gapless .mdui-col,\n.mdui-row-gapless [class*=\"mdui-col-xs-\"],\n.mdui-row-gapless [class*=\"mdui-col-sm-\"],\n.mdui-row-gapless [class*=\"mdui-col-md-\"],\n.mdui-row-gapless [class*=\"mdui-col-lg-\"],\n.mdui-row-gapless [class*=\"mdui-col-xl-\"] {\n padding-right: 0;\n padding-left: 0;\n}\n.mdui-row-gapless .mdui-row,\n.mdui-row-gapless [class*=\"mdui-row-\"] {\n margin-right: 0;\n margin-left: 0;\n}\n.mdui-col-xs-1 {\n float: left;\n width: 8.333333%;\n}\n.mdui-col-offset-xs-1 {\n margin-left: 8.333333%;\n}\n.mdui-row-xs-1 .mdui-col {\n float: left;\n width: 100%;\n}\n.mdui-col-xs-2 {\n float: left;\n width: 16.666667%;\n}\n.mdui-col-offset-xs-2 {\n margin-left: 16.666667%;\n}\n.mdui-row-xs-2 .mdui-col {\n float: left;\n width: 50%;\n}\n.mdui-col-xs-3 {\n float: left;\n width: 25%;\n}\n.mdui-col-offset-xs-3 {\n margin-left: 25%;\n}\n.mdui-row-xs-3 .mdui-col {\n float: left;\n width: 33.333333%;\n}\n.mdui-col-xs-4 {\n float: left;\n width: 33.333333%;\n}\n.mdui-col-offset-xs-4 {\n margin-left: 33.333333%;\n}\n.mdui-row-xs-4 .mdui-col {\n float: left;\n width: 25%;\n}\n.mdui-col-xs-5 {\n float: left;\n width: 41.666667%;\n}\n.mdui-col-offset-xs-5 {\n margin-left: 41.666667%;\n}\n.mdui-row-xs-5 .mdui-col {\n float: left;\n width: 20%;\n}\n.mdui-col-xs-6 {\n float: left;\n width: 50%;\n}\n.mdui-col-offset-xs-6 {\n margin-left: 50%;\n}\n.mdui-row-xs-6 .mdui-col {\n float: left;\n width: 16.666667%;\n}\n.mdui-col-xs-7 {\n float: left;\n width: 58.333333%;\n}\n.mdui-col-offset-xs-7 {\n margin-left: 58.333333%;\n}\n.mdui-row-xs-7 .mdui-col {\n float: left;\n width: 14.285714%;\n}\n.mdui-col-xs-8 {\n float: left;\n width: 66.666667%;\n}\n.mdui-col-offset-xs-8 {\n margin-left: 66.666667%;\n}\n.mdui-row-xs-8 .mdui-col {\n float: left;\n width: 12.5%;\n}\n.mdui-col-xs-9 {\n float: left;\n width: 75%;\n}\n.mdui-col-offset-xs-9 {\n margin-left: 75%;\n}\n.mdui-row-xs-9 .mdui-col {\n float: left;\n width: 11.111111%;\n}\n.mdui-col-xs-10 {\n float: left;\n width: 83.333333%;\n}\n.mdui-col-offset-xs-10 {\n margin-left: 83.333333%;\n}\n.mdui-row-xs-10 .mdui-col {\n float: left;\n width: 10%;\n}\n.mdui-col-xs-11 {\n float: left;\n width: 91.666667%;\n}\n.mdui-col-offset-xs-11 {\n margin-left: 91.666667%;\n}\n.mdui-row-xs-11 .mdui-col {\n float: left;\n width: 9.090909%;\n}\n.mdui-col-xs-12 {\n float: left;\n width: 100%;\n}\n.mdui-col-offset-xs-12 {\n margin-left: 100%;\n}\n.mdui-row-xs-12 .mdui-col {\n float: left;\n width: 8.333333%;\n}\n@media (min-width: 600px) {\n .mdui-col-sm-1 {\n float: left;\n width: 8.333333%;\n }\n .mdui-col-offset-sm-1 {\n margin-left: 8.333333%;\n }\n .mdui-row-sm-1 .mdui-col {\n float: left;\n width: 100%;\n }\n .mdui-col-sm-2 {\n float: left;\n width: 16.666667%;\n }\n .mdui-col-offset-sm-2 {\n margin-left: 16.666667%;\n }\n .mdui-row-sm-2 .mdui-col {\n float: left;\n width: 50%;\n }\n .mdui-col-sm-3 {\n float: left;\n width: 25%;\n }\n .mdui-col-offset-sm-3 {\n margin-left: 25%;\n }\n .mdui-row-sm-3 .mdui-col {\n float: left;\n width: 33.333333%;\n }\n .mdui-col-sm-4 {\n float: left;\n width: 33.333333%;\n }\n .mdui-col-offset-sm-4 {\n margin-left: 33.333333%;\n }\n .mdui-row-sm-4 .mdui-col {\n float: left;\n width: 25%;\n }\n .mdui-col-sm-5 {\n float: left;\n width: 41.666667%;\n }\n .mdui-col-offset-sm-5 {\n margin-left: 41.666667%;\n }\n .mdui-row-sm-5 .mdui-col {\n float: left;\n width: 20%;\n }\n .mdui-col-sm-6 {\n float: left;\n width: 50%;\n }\n .mdui-col-offset-sm-6 {\n margin-left: 50%;\n }\n .mdui-row-sm-6 .mdui-col {\n float: left;\n width: 16.666667%;\n }\n .mdui-col-sm-7 {\n float: left;\n width: 58.333333%;\n }\n .mdui-col-offset-sm-7 {\n margin-left: 58.333333%;\n }\n .mdui-row-sm-7 .mdui-col {\n float: left;\n width: 14.285714%;\n }\n .mdui-col-sm-8 {\n float: left;\n width: 66.666667%;\n }\n .mdui-col-offset-sm-8 {\n margin-left: 66.666667%;\n }\n .mdui-row-sm-8 .mdui-col {\n float: left;\n width: 12.5%;\n }\n .mdui-col-sm-9 {\n float: left;\n width: 75%;\n }\n .mdui-col-offset-sm-9 {\n margin-left: 75%;\n }\n .mdui-row-sm-9 .mdui-col {\n float: left;\n width: 11.111111%;\n }\n .mdui-col-sm-10 {\n float: left;\n width: 83.333333%;\n }\n .mdui-col-offset-sm-10 {\n margin-left: 83.333333%;\n }\n .mdui-row-sm-10 .mdui-col {\n float: left;\n width: 10%;\n }\n .mdui-col-sm-11 {\n float: left;\n width: 91.666667%;\n }\n .mdui-col-offset-sm-11 {\n margin-left: 91.666667%;\n }\n .mdui-row-sm-11 .mdui-col {\n float: left;\n width: 9.090909%;\n }\n .mdui-col-sm-12 {\n float: left;\n width: 100%;\n }\n .mdui-col-offset-sm-12 {\n margin-left: 100%;\n }\n .mdui-row-sm-12 .mdui-col {\n float: left;\n width: 8.333333%;\n }\n}\n@media (min-width: 1024px) {\n .mdui-col-md-1 {\n float: left;\n width: 8.333333%;\n }\n .mdui-col-offset-md-1 {\n margin-left: 8.333333%;\n }\n .mdui-row-md-1 .mdui-col {\n float: left;\n width: 100%;\n }\n .mdui-col-md-2 {\n float: left;\n width: 16.666667%;\n }\n .mdui-col-offset-md-2 {\n margin-left: 16.666667%;\n }\n .mdui-row-md-2 .mdui-col {\n float: left;\n width: 50%;\n }\n .mdui-col-md-3 {\n float: left;\n width: 25%;\n }\n .mdui-col-offset-md-3 {\n margin-left: 25%;\n }\n .mdui-row-md-3 .mdui-col {\n float: left;\n width: 33.333333%;\n }\n .mdui-col-md-4 {\n float: left;\n width: 33.333333%;\n }\n .mdui-col-offset-md-4 {\n margin-left: 33.333333%;\n }\n .mdui-row-md-4 .mdui-col {\n float: left;\n width: 25%;\n }\n .mdui-col-md-5 {\n float: left;\n width: 41.666667%;\n }\n .mdui-col-offset-md-5 {\n margin-left: 41.666667%;\n }\n .mdui-row-md-5 .mdui-col {\n float: left;\n width: 20%;\n }\n .mdui-col-md-6 {\n float: left;\n width: 50%;\n }\n .mdui-col-offset-md-6 {\n margin-left: 50%;\n }\n .mdui-row-md-6 .mdui-col {\n float: left;\n width: 16.666667%;\n }\n .mdui-col-md-7 {\n float: left;\n width: 58.333333%;\n }\n .mdui-col-offset-md-7 {\n margin-left: 58.333333%;\n }\n .mdui-row-md-7 .mdui-col {\n float: left;\n width: 14.285714%;\n }\n .mdui-col-md-8 {\n float: left;\n width: 66.666667%;\n }\n .mdui-col-offset-md-8 {\n margin-left: 66.666667%;\n }\n .mdui-row-md-8 .mdui-col {\n float: left;\n width: 12.5%;\n }\n .mdui-col-md-9 {\n float: left;\n width: 75%;\n }\n .mdui-col-offset-md-9 {\n margin-left: 75%;\n }\n .mdui-row-md-9 .mdui-col {\n float: left;\n width: 11.111111%;\n }\n .mdui-col-md-10 {\n float: left;\n width: 83.333333%;\n }\n .mdui-col-offset-md-10 {\n margin-left: 83.333333%;\n }\n .mdui-row-md-10 .mdui-col {\n float: left;\n width: 10%;\n }\n .mdui-col-md-11 {\n float: left;\n width: 91.666667%;\n }\n .mdui-col-offset-md-11 {\n margin-left: 91.666667%;\n }\n .mdui-row-md-11 .mdui-col {\n float: left;\n width: 9.090909%;\n }\n .mdui-col-md-12 {\n float: left;\n width: 100%;\n }\n .mdui-col-offset-md-12 {\n margin-left: 100%;\n }\n .mdui-row-md-12 .mdui-col {\n float: left;\n width: 8.333333%;\n }\n}\n@media (min-width: 1440px) {\n .mdui-col-lg-1 {\n float: left;\n width: 8.333333%;\n }\n .mdui-col-offset-lg-1 {\n margin-left: 8.333333%;\n }\n .mdui-row-lg-1 .mdui-col {\n float: left;\n width: 100%;\n }\n .mdui-col-lg-2 {\n float: left;\n width: 16.666667%;\n }\n .mdui-col-offset-lg-2 {\n margin-left: 16.666667%;\n }\n .mdui-row-lg-2 .mdui-col {\n float: left;\n width: 50%;\n }\n .mdui-col-lg-3 {\n float: left;\n width: 25%;\n }\n .mdui-col-offset-lg-3 {\n margin-left: 25%;\n }\n .mdui-row-lg-3 .mdui-col {\n float: left;\n width: 33.333333%;\n }\n .mdui-col-lg-4 {\n float: left;\n width: 33.333333%;\n }\n .mdui-col-offset-lg-4 {\n margin-left: 33.333333%;\n }\n .mdui-row-lg-4 .mdui-col {\n float: left;\n width: 25%;\n }\n .mdui-col-lg-5 {\n float: left;\n width: 41.666667%;\n }\n .mdui-col-offset-lg-5 {\n margin-left: 41.666667%;\n }\n .mdui-row-lg-5 .mdui-col {\n float: left;\n width: 20%;\n }\n .mdui-col-lg-6 {\n float: left;\n width: 50%;\n }\n .mdui-col-offset-lg-6 {\n margin-left: 50%;\n }\n .mdui-row-lg-6 .mdui-col {\n float: left;\n width: 16.666667%;\n }\n .mdui-col-lg-7 {\n float: left;\n width: 58.333333%;\n }\n .mdui-col-offset-lg-7 {\n margin-left: 58.333333%;\n }\n .mdui-row-lg-7 .mdui-col {\n float: left;\n width: 14.285714%;\n }\n .mdui-col-lg-8 {\n float: left;\n width: 66.666667%;\n }\n .mdui-col-offset-lg-8 {\n margin-left: 66.666667%;\n }\n .mdui-row-lg-8 .mdui-col {\n float: left;\n width: 12.5%;\n }\n .mdui-col-lg-9 {\n float: left;\n width: 75%;\n }\n .mdui-col-offset-lg-9 {\n margin-left: 75%;\n }\n .mdui-row-lg-9 .mdui-col {\n float: left;\n width: 11.111111%;\n }\n .mdui-col-lg-10 {\n float: left;\n width: 83.333333%;\n }\n .mdui-col-offset-lg-10 {\n margin-left: 83.333333%;\n }\n .mdui-row-lg-10 .mdui-col {\n float: left;\n width: 10%;\n }\n .mdui-col-lg-11 {\n float: left;\n width: 91.666667%;\n }\n .mdui-col-offset-lg-11 {\n margin-left: 91.666667%;\n }\n .mdui-row-lg-11 .mdui-col {\n float: left;\n width: 9.090909%;\n }\n .mdui-col-lg-12 {\n float: left;\n width: 100%;\n }\n .mdui-col-offset-lg-12 {\n margin-left: 100%;\n }\n .mdui-row-lg-12 .mdui-col {\n float: left;\n width: 8.333333%;\n }\n}\n@media (min-width: 1920px) {\n .mdui-col-xl-1 {\n float: left;\n width: 8.333333%;\n }\n .mdui-col-offset-xl-1 {\n margin-left: 8.333333%;\n }\n .mdui-row-xl-1 .mdui-col {\n float: left;\n width: 100%;\n }\n .mdui-col-xl-2 {\n float: left;\n width: 16.666667%;\n }\n .mdui-col-offset-xl-2 {\n margin-left: 16.666667%;\n }\n .mdui-row-xl-2 .mdui-col {\n float: left;\n width: 50%;\n }\n .mdui-col-xl-3 {\n float: left;\n width: 25%;\n }\n .mdui-col-offset-xl-3 {\n margin-left: 25%;\n }\n .mdui-row-xl-3 .mdui-col {\n float: left;\n width: 33.333333%;\n }\n .mdui-col-xl-4 {\n float: left;\n width: 33.333333%;\n }\n .mdui-col-offset-xl-4 {\n margin-left: 33.333333%;\n }\n .mdui-row-xl-4 .mdui-col {\n float: left;\n width: 25%;\n }\n .mdui-col-xl-5 {\n float: left;\n width: 41.666667%;\n }\n .mdui-col-offset-xl-5 {\n margin-left: 41.666667%;\n }\n .mdui-row-xl-5 .mdui-col {\n float: left;\n width: 20%;\n }\n .mdui-col-xl-6 {\n float: left;\n width: 50%;\n }\n .mdui-col-offset-xl-6 {\n margin-left: 50%;\n }\n .mdui-row-xl-6 .mdui-col {\n float: left;\n width: 16.666667%;\n }\n .mdui-col-xl-7 {\n float: left;\n width: 58.333333%;\n }\n .mdui-col-offset-xl-7 {\n margin-left: 58.333333%;\n }\n .mdui-row-xl-7 .mdui-col {\n float: left;\n width: 14.285714%;\n }\n .mdui-col-xl-8 {\n float: left;\n width: 66.666667%;\n }\n .mdui-col-offset-xl-8 {\n margin-left: 66.666667%;\n }\n .mdui-row-xl-8 .mdui-col {\n float: left;\n width: 12.5%;\n }\n .mdui-col-xl-9 {\n float: left;\n width: 75%;\n }\n .mdui-col-offset-xl-9 {\n margin-left: 75%;\n }\n .mdui-row-xl-9 .mdui-col {\n float: left;\n width: 11.111111%;\n }\n .mdui-col-xl-10 {\n float: left;\n width: 83.333333%;\n }\n .mdui-col-offset-xl-10 {\n margin-left: 83.333333%;\n }\n .mdui-row-xl-10 .mdui-col {\n float: left;\n width: 10%;\n }\n .mdui-col-xl-11 {\n float: left;\n width: 91.666667%;\n }\n .mdui-col-offset-xl-11 {\n margin-left: 91.666667%;\n }\n .mdui-row-xl-11 .mdui-col {\n float: left;\n width: 9.090909%;\n }\n .mdui-col-xl-12 {\n float: left;\n width: 100%;\n }\n .mdui-col-offset-xl-12 {\n margin-left: 100%;\n }\n .mdui-row-xl-12 .mdui-col {\n float: left;\n width: 8.333333%;\n }\n}\n/**\n * =============================================================================\n * ************ Shadow 阴影 ************\n * =============================================================================\n */\n.mdui-shadow-0 {\n box-shadow: none !important;\n}\n.mdui-shadow-1 {\n box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12) !important;\n}\n.mdui-shadow-2 {\n box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12) !important;\n}\n.mdui-shadow-3 {\n box-shadow: 0 3px 3px -2px rgba(0, 0, 0, 0.2), 0 3px 4px 0 rgba(0, 0, 0, 0.14), 0 1px 8px 0 rgba(0, 0, 0, 0.12) !important;\n}\n.mdui-shadow-4 {\n box-shadow: 0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12) !important;\n}\n.mdui-shadow-5 {\n box-shadow: 0 3px 5px -1px rgba(0, 0, 0, 0.2), 0 5px 8px 0 rgba(0, 0, 0, 0.14), 0 1px 14px 0 rgba(0, 0, 0, 0.12) !important;\n}\n.mdui-shadow-6 {\n box-shadow: 0 3px 5px -1px rgba(0, 0, 0, 0.2), 0 6px 10px 0 rgba(0, 0, 0, 0.14), 0 1px 18px 0 rgba(0, 0, 0, 0.12) !important;\n}\n.mdui-shadow-7 {\n box-shadow: 0 4px 5px -2px rgba(0, 0, 0, 0.2), 0 7px 10px 1px rgba(0, 0, 0, 0.14), 0 2px 16px 1px rgba(0, 0, 0, 0.12) !important;\n}\n.mdui-shadow-8 {\n box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12) !important;\n}\n.mdui-shadow-9 {\n box-shadow: 0 5px 6px -3px rgba(0, 0, 0, 0.2), 0 9px 12px 1px rgba(0, 0, 0, 0.14), 0 3px 16px 2px rgba(0, 0, 0, 0.12) !important;\n}\n.mdui-shadow-10 {\n box-shadow: 0 6px 6px -3px rgba(0, 0, 0, 0.2), 0 10px 14px 1px rgba(0, 0, 0, 0.14), 0 4px 18px 3px rgba(0, 0, 0, 0.12) !important;\n}\n.mdui-shadow-11 {\n box-shadow: 0 6px 7px -4px rgba(0, 0, 0, 0.2), 0 11px 15px 1px rgba(0, 0, 0, 0.14), 0 4px 20px 3px rgba(0, 0, 0, 0.12) !important;\n}\n.mdui-shadow-12 {\n box-shadow: 0 7px 8px -4px rgba(0, 0, 0, 0.2), 0 12px 17px 2px rgba(0, 0, 0, 0.14), 0 5px 22px 4px rgba(0, 0, 0, 0.12) !important;\n}\n.mdui-shadow-13 {\n box-shadow: 0 7px 8px -4px rgba(0, 0, 0, 0.2), 0 13px 19px 2px rgba(0, 0, 0, 0.14), 0 5px 24px 4px rgba(0, 0, 0, 0.12) !important;\n}\n.mdui-shadow-14 {\n box-shadow: 0 7px 9px -4px rgba(0, 0, 0, 0.2), 0 14px 21px 2px rgba(0, 0, 0, 0.14), 0 5px 26px 4px rgba(0, 0, 0, 0.12) !important;\n}\n.mdui-shadow-15 {\n box-shadow: 0 8px 9px -5px rgba(0, 0, 0, 0.2), 0 15px 22px 2px rgba(0, 0, 0, 0.14), 0 6px 28px 5px rgba(0, 0, 0, 0.12) !important;\n}\n.mdui-shadow-16 {\n box-shadow: 0 8px 10px -5px rgba(0, 0, 0, 0.2), 0 16px 24px 2px rgba(0, 0, 0, 0.14), 0 6px 30px 5px rgba(0, 0, 0, 0.12) !important;\n}\n.mdui-shadow-17 {\n box-shadow: 0 8px 11px -5px rgba(0, 0, 0, 0.2), 0 17px 26px 2px rgba(0, 0, 0, 0.14), 0 6px 32px 5px rgba(0, 0, 0, 0.12) !important;\n}\n.mdui-shadow-18 {\n box-shadow: 0 9px 11px -5px rgba(0, 0, 0, 0.2), 0 18px 28px 2px rgba(0, 0, 0, 0.14), 0 7px 34px 6px rgba(0, 0, 0, 0.12) !important;\n}\n.mdui-shadow-19 {\n box-shadow: 0 9px 12px -6px rgba(0, 0, 0, 0.2), 0 19px 29px 2px rgba(0, 0, 0, 0.14), 0 7px 36px 6px rgba(0, 0, 0, 0.12) !important;\n}\n.mdui-shadow-20 {\n box-shadow: 0 10px 13px -6px rgba(0, 0, 0, 0.2), 0 20px 31px 3px rgba(0, 0, 0, 0.14), 0 8px 38px 7px rgba(0, 0, 0, 0.12) !important;\n}\n.mdui-shadow-21 {\n box-shadow: 0 10px 13px -6px rgba(0, 0, 0, 0.2), 0 21px 33px 3px rgba(0, 0, 0, 0.14), 0 8px 40px 7px rgba(0, 0, 0, 0.12) !important;\n}\n.mdui-shadow-22 {\n box-shadow: 0 10px 14px -6px rgba(0, 0, 0, 0.2), 0 22px 35px 3px rgba(0, 0, 0, 0.14), 0 8px 42px 7px rgba(0, 0, 0, 0.12) !important;\n}\n.mdui-shadow-23 {\n box-shadow: 0 11px 14px -7px rgba(0, 0, 0, 0.2), 0 23px 36px 3px rgba(0, 0, 0, 0.14), 0 9px 44px 8px rgba(0, 0, 0, 0.12) !important;\n}\n.mdui-shadow-24 {\n box-shadow: 0 11px 15px -7px rgba(0, 0, 0, 0.2), 0 24px 38px 3px rgba(0, 0, 0, 0.14), 0 9px 46px 8px rgba(0, 0, 0, 0.12) !important;\n}\n/* 鼠标悬浮时加深阴影 */\n.mdui-hoverable {\n transition: box-shadow 0.25s cubic-bezier(0.4, 0, 0.2, 1);\n will-change: box-shadow;\n}\n.mdui-hoverable:hover,\n.mdui-hoverable:focus {\n box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12);\n}\n/**\n * =============================================================================\n * ************ Headroom ************\n * =============================================================================\n */\n.mdui-headroom {\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;\n}\n/* 固定在顶部时 */\n.mdui-headroom-pinned-top {\n transform: translate3d(0, 0, 0) !important;\n}\n/* 在顶部隐藏时 */\n.mdui-headroom-unpinned-top {\n transform: translate3d(0, -100%, 0) !important;\n box-shadow: none !important;\n}\n/* 固定在底部时 */\n.mdui-headroom-pinned-down {\n transform: translate3d(0, 0, 0) !important;\n}\n/* 在底部隐藏时 */\n.mdui-headroom-unpinned-down {\n transform: translate3d(0, 100%, 0) !important;\n box-shadow: none !important;\n}\n/* 固定应用栏中的工具栏 */\n.mdui-headroom-pinned-toolbar {\n transform: translate3d(0, 0, 0) !important;\n}\n/* 隐藏应用栏中的工具栏 */\n.mdui-headroom-unpinned-toolbar {\n transform: translate3d(0, -56px, 0) !important;\n}\n@media (min-width: 600px) {\n .mdui-headroom-unpinned-toolbar {\n transform: translate3d(0, -64px, 0) !important;\n }\n}\n@media (orientation: landscape) and (max-width: 959.9px) {\n .mdui-headroom-unpinned-toolbar {\n transform: translate3d(0, -48px, 0) !important;\n }\n}\n/**\n * =============================================================================\n * ************ Collapse 折叠插件 ************\n * =============================================================================\n */\n.mdui-collapse-item-header .mdui-collapse-item-arrow,\n.mdui-collapse-item-header.mdui-collapse-item-arrow {\n transform: rotate(0);\n transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n will-change: transform;\n}\n.mdui-collapse-item-body {\n height: 0;\n margin-top: 0;\n margin-bottom: 0;\n padding-top: 0;\n padding-bottom: 0;\n overflow: hidden;\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n will-change: height;\n}\n.mdui-collapse-item-body .mdui-list-item {\n padding-left: 72px;\n}\n.mdui-collapse-item-open > .mdui-collapse-item-header .mdui-collapse-item-arrow,\n.mdui-collapse-item-open > .mdui-collapse-item-header.mdui-collapse-item-arrow {\n transform: rotate(180deg);\n}\n.mdui-collapse-item-open > .mdui-collapse-item-body {\n height: auto;\n}\n/**\n * =============================================================================\n * ************ Expansion panel 可扩展面板 ************\n * =============================================================================\n */\n/* 可扩展面板 */\n.mdui-panel {\n box-sizing: border-box;\n width: 100%;\n}\n/* 面板项 */\n.mdui-panel-item {\n color: rgba(0, 0, 0, 0.87);\n background-color: #fff;\n transition: margin 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n will-change: margin;\n border-bottom: 1px solid rgba(0, 0, 0, 0.12);\n box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\n}\n.mdui-panel-item:last-child {\n border-bottom: none;\n}\n/* 面板头部 */\n.mdui-panel-item-header {\n position: relative;\n display: flex;\n align-items: center;\n box-sizing: border-box;\n width: 100%;\n height: 48px;\n padding: 0 24px;\n font-size: 15px;\n cursor: pointer;\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n will-change: height, background-color;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.mdui-panel-item-header:active {\n background-color: #EEEEEE;\n}\n/* 面板项标题 */\n.mdui-panel-item-title {\n box-sizing: border-box;\n width: 36%;\n min-width: 36%;\n padding-right: 16px;\n font-weight: 500;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n/* 面板项内容 */\n.mdui-panel-item-summary {\n flex-grow: 1;\n box-sizing: border-box;\n padding-right: 16px;\n color: rgba(0, 0, 0, 0.54);\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n/* 展开收起的图标 */\n.mdui-panel-item-arrow {\n position: absolute;\n top: 12px;\n right: 24px;\n color: rgba(0, 0, 0, 0.54);\n transform: rotate(0);\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n user-select: none;\n will-change: transform, top;\n}\n.mdui-panel-item-summary + .mdui-panel-item-arrow {\n position: relative;\n top: 0 !important;\n right: 0;\n}\n/* 面板项内容 */\n.mdui-panel-item-body {\n height: 0;\n padding: 0 24px;\n overflow: hidden;\n transition: height 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n will-change: height;\n}\n.mdui-panel-item-body::before,\n.mdui-panel-item-body::after {\n display: table;\n content: ' ';\n}\n.mdui-panel-item-body::after {\n clear: both;\n}\n.mdui-panel-item-body::before,\n.mdui-panel-item-body::after {\n display: table;\n content: ' ';\n}\n.mdui-panel-item-body::after {\n clear: both;\n}\n.mdui-panel-item-body::after {\n height: 16px;\n}\n/* 面板项操作栏 */\n.mdui-panel-item-actions {\n display: block;\n width: 100%;\n margin: 16px -24px 0 -24px;\n padding: 16px 24px 0 24px;\n text-align: right;\n border-top: 1px solid rgba(0, 0, 0, 0.12);\n}\n.mdui-panel-item-actions .mdui-btn {\n margin-left: 8px;\n}\n.mdui-panel-item-actions .mdui-btn:first-child {\n margin-left: 0;\n}\n/* 打开状态的面板项 */\n.mdui-panel-item-open {\n height: auto;\n margin-top: 16px;\n margin-bottom: 16px;\n}\n.mdui-panel-item-open > .mdui-panel-item-header {\n height: 64px;\n}\n.mdui-panel-item-open > .mdui-panel-item-header .mdui-panel-item-arrow {\n top: 20px;\n transform: rotate(180deg);\n}\n.mdui-panel-item-open > .mdui-panel-item-body {\n height: auto;\n}\n/* 使打开项上下没有边距 */\n.mdui-panel-gapless {\n box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\n}\n.mdui-panel-gapless .mdui-panel-item {\n box-shadow: none;\n}\n.mdui-panel-gapless .mdui-panel-item-open {\n margin-top: 0;\n margin-bottom: 0;\n}\n/* 弹出面板 */\n.mdui-panel-popout .mdui-panel-item-open {\n margin-right: -16px;\n margin-left: -16px;\n}\n/**\n * =============================================================================\n * ************ Expansion panel dark ************\n * =============================================================================\n */\n.mdui-theme-layout-dark {\n /* stylelint-disable-next-line */\n}\n.mdui-theme-layout-dark .mdui-panel-item {\n color: #fff;\n background-color: #303030;\n border-bottom: 1px solid rgba(255, 255, 255, 0.12);\n}\n.mdui-theme-layout-dark .mdui-panel-item:last-child {\n border-bottom: none;\n}\n.mdui-theme-layout-dark .mdui-panel-item-header:active {\n background-color: #424242;\n}\n.mdui-theme-layout-dark .mdui-panel-item-summary {\n color: rgba(255, 255, 255, 0.7);\n}\n.mdui-theme-layout-dark .mdui-panel-item-arrow {\n color: #ffffff;\n}\n.mdui-theme-layout-dark .mdui-panel-item-actions {\n border-top: 1px solid rgba(255, 255, 255, 0.12);\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-layout-auto {\n /* stylelint-disable-next-line */\n }\n .mdui-theme-layout-auto .mdui-panel-item {\n color: #fff;\n background-color: #303030;\n border-bottom: 1px solid rgba(255, 255, 255, 0.12);\n }\n .mdui-theme-layout-auto .mdui-panel-item:last-child {\n border-bottom: none;\n }\n .mdui-theme-layout-auto .mdui-panel-item-header:active {\n background-color: #424242;\n }\n .mdui-theme-layout-auto .mdui-panel-item-summary {\n color: rgba(255, 255, 255, 0.7);\n }\n .mdui-theme-layout-auto .mdui-panel-item-arrow {\n color: #ffffff;\n }\n .mdui-theme-layout-auto .mdui-panel-item-actions {\n border-top: 1px solid rgba(255, 255, 255, 0.12);\n }\n}\n/**\n * =============================================================================\n * ************ Table 表格 ************\n * =============================================================================\n */\n.mdui-table {\n position: relative;\n width: 100%;\n background-color: #fff;\n border: 1px solid rgba(0, 0, 0, 0.12);\n border-bottom: none;\n border-collapse: separate;\n border-spacing: 0;\n box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\n}\n.mdui-table tbody tr {\n position: relative;\n transition: background-color 0.28s cubic-bezier(0.4, 0, 0.2, 1);\n}\n.mdui-table th,\n.mdui-table td {\n position: relative;\n box-sizing: border-box;\n padding: 12px 28px;\n text-align: left;\n vertical-align: middle;\n border-bottom: 1px solid rgba(0, 0, 0, 0.12);\n}\n.mdui-table th {\n color: rgba(0, 0, 0, 0.54);\n font-weight: 700;\n font-size: 13px;\n line-height: 32px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.mdui-table td {\n color: rgba(0, 0, 0, 0.87);\n font-size: 14px;\n line-height: 24px;\n}\n/* 每一行前面的复选框 */\n.mdui-table-cell-checkbox {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n padding-left: 24px !important;\n}\n.mdui-table-cell-checkbox .mdui-checkbox {\n margin-top: 7px;\n}\n.mdui-table-cell-checkbox + td,\n.mdui-table-cell-checkbox + th {\n padding-left: 6px !important;\n}\nth.mdui-table-cell-checkbox .mdui-checkbox {\n margin-top: 11px;\n}\n.mdui-table th:last-child,\n.mdui-table td:last-child {\n padding-right: 24px;\n}\n.mdui-table th:first-child,\n.mdui-table td:first-child {\n padding-right: 0;\n padding-left: 24px;\n}\n.mdui-table th:nth-child(2),\n.mdui-table td:nth-child(2) {\n padding-left: 24px;\n}\n/* 鼠标悬浮时行背景加深 */\n.mdui-table-hoverable tbody tr:hover {\n background-color: #EEEEEE;\n}\n/* 表格放到该元素内,使表格产生滚动条时只在该元素内滚动 */\n.mdui-table-fluid {\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n border: 1px solid rgba(0, 0, 0, 0.12);\n border-bottom: none;\n box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\n}\n.mdui-table-fluid .mdui-table {\n box-shadow: none;\n margin: 0;\n border: none;\n}\n/* 数字列,右对齐 */\n.mdui-table-col-numeric {\n text-align: right !important;\n}\n/* 行处于选中状态 */\n.mdui-table-row-selected {\n background-color: #F5F5F5;\n}\n/**\n * =============================================================================\n * ************ Table dark ************\n * =============================================================================\n */\n.mdui-theme-layout-dark .mdui-table {\n background-color: #303030;\n border: 1px solid rgba(255, 255, 255, 0.12);\n border-bottom: none;\n}\n.mdui-theme-layout-dark .mdui-table th,\n.mdui-theme-layout-dark .mdui-table td {\n border-bottom: 1px solid rgba(255, 255, 255, 0.12);\n}\n.mdui-theme-layout-dark .mdui-table th {\n color: rgba(255, 255, 255, 0.7);\n}\n.mdui-theme-layout-dark .mdui-table td {\n color: #ffffff;\n}\n.mdui-theme-layout-dark .mdui-table-hoverable tbody tr:hover {\n background-color: #616161;\n}\n.mdui-theme-layout-dark .mdui-table-fluid {\n border: 1px solid rgba(255, 255, 255, 0.12);\n border-bottom: none;\n}\n.mdui-theme-layout-dark .mdui-table-fluid .mdui-table {\n box-shadow: none;\n border: none;\n}\n.mdui-theme-layout-dark .mdui-table-row-selected {\n background-color: #424242;\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-layout-auto .mdui-table {\n background-color: #303030;\n border: 1px solid rgba(255, 255, 255, 0.12);\n border-bottom: none;\n }\n .mdui-theme-layout-auto .mdui-table th,\n .mdui-theme-layout-auto .mdui-table td {\n border-bottom: 1px solid rgba(255, 255, 255, 0.12);\n }\n .mdui-theme-layout-auto .mdui-table th {\n color: rgba(255, 255, 255, 0.7);\n }\n .mdui-theme-layout-auto .mdui-table td {\n color: #ffffff;\n }\n .mdui-theme-layout-auto .mdui-table-hoverable tbody tr:hover {\n background-color: #616161;\n }\n .mdui-theme-layout-auto .mdui-table-fluid {\n border: 1px solid rgba(255, 255, 255, 0.12);\n border-bottom: none;\n }\n .mdui-theme-layout-auto .mdui-table-fluid .mdui-table {\n box-shadow: none;\n border: none;\n }\n .mdui-theme-layout-auto .mdui-table-row-selected {\n background-color: #424242;\n }\n}\n/**\n * =============================================================================\n * ************ Divider 分割线 ************\n * =============================================================================\n */\n.mdui-divider,\n.mdui-divider-light,\n.mdui-divider-dark,\n.mdui-divider-inset,\n.mdui-divider-inset-light,\n.mdui-divider-inset-dark {\n height: 1px;\n margin: -1px 0 0 0;\n border: none;\n}\n.mdui-divider-inset,\n.mdui-divider-inset-light,\n.mdui-divider-inset-dark {\n margin-left: 72px;\n}\n.mdui-divider,\n.mdui-divider-inset {\n background-color: rgba(0, 0, 0, 0.12);\n}\n.mdui-divider-light,\n.mdui-divider-inset-light {\n background-color: rgba(255, 255, 255, 0.12);\n}\n.mdui-divider-dark,\n.mdui-divider-inset-dark {\n background-color: rgba(0, 0, 0, 0.12);\n}\n/**\n * =============================================================================\n * ************ Divider dark ************\n * =============================================================================\n */\n.mdui-theme-layout-dark .mdui-divider,\n.mdui-theme-layout-dark .mdui-divider-inset {\n background-color: rgba(255, 255, 255, 0.12);\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-layout-auto .mdui-divider,\n .mdui-theme-layout-auto .mdui-divider-inset {\n background-color: rgba(255, 255, 255, 0.12);\n }\n}\n/**\n * =============================================================================\n * ************ 涟漪动画 ************\n * =============================================================================\n */\n.mdui-ripple {\n position: relative;\n overflow: hidden;\n cursor: pointer;\n user-select: none;\n}\n/* Ripple */\n.mdui-ripple-wave {\n position: absolute !important;\n top: 0;\n left: 0;\n z-index: 1;\n margin: 0;\n padding: 0;\n font-size: 0;\n background-color: rgba(0, 0, 0, 0.1);\n border-radius: 50%;\n transform: translate3d(0, 0, 0) scale(0);\n transition-duration: 1400ms;\n pointer-events: none;\n}\n/* 有背景色的默认使用白色涟漪 */\n.mdui-ripple[class*=\"mdui-color-\"] .mdui-ripple-wave {\n background-color: rgba(255, 255, 255, 0.3);\n}\n/* 白色涟漪 */\n.mdui-ripple-white .mdui-ripple-wave {\n background-color: rgba(255, 255, 255, 0.3) !important;\n}\n/* 黑色涟漪 */\n.mdui-ripple-black .mdui-ripple-wave {\n background-color: rgba(0, 0, 0, 0.1) !important;\n}\n.mdui-ripple-wave-fill {\n opacity: 0.35;\n transition-duration: 300ms;\n}\n.mdui-ripple-wave-out {\n opacity: 0;\n transition-duration: 600ms;\n}\n/**\n * =============================================================================\n * ************ Ripple 颜色 ************\n * =============================================================================\n */\n.mdui-ripple-amber .mdui-ripple-wave {\n background-color: rgba(255, 193, 7, 0.3) !important;\n}\n.mdui-ripple-blue .mdui-ripple-wave {\n background-color: rgba(33, 150, 243, 0.3) !important;\n}\n.mdui-ripple-blue-grey .mdui-ripple-wave {\n background-color: rgba(96, 125, 139, 0.3) !important;\n}\n.mdui-ripple-brown .mdui-ripple-wave {\n background-color: rgba(121, 85, 72, 0.3) !important;\n}\n.mdui-ripple-cyan .mdui-ripple-wave {\n background-color: rgba(0, 188, 212, 0.3) !important;\n}\n.mdui-ripple-deep-orange .mdui-ripple-wave {\n background-color: rgba(255, 87, 34, 0.3) !important;\n}\n.mdui-ripple-deep-purple .mdui-ripple-wave {\n background-color: rgba(103, 58, 183, 0.3) !important;\n}\n.mdui-ripple-green .mdui-ripple-wave {\n background-color: rgba(76, 175, 80, 0.3) !important;\n}\n.mdui-ripple-grey .mdui-ripple-wave {\n background-color: rgba(158, 158, 158, 0.3) !important;\n}\n.mdui-ripple-indigo .mdui-ripple-wave {\n background-color: rgba(63, 81, 181, 0.3) !important;\n}\n.mdui-ripple-light-blue .mdui-ripple-wave {\n background-color: rgba(3, 169, 244, 0.3) !important;\n}\n.mdui-ripple-light-green .mdui-ripple-wave {\n background-color: rgba(139, 195, 74, 0.3) !important;\n}\n.mdui-ripple-lime .mdui-ripple-wave {\n background-color: rgba(205, 220, 57, 0.3) !important;\n}\n.mdui-ripple-orange .mdui-ripple-wave {\n background-color: rgba(255, 152, 0, 0.3) !important;\n}\n.mdui-ripple-pink .mdui-ripple-wave {\n background-color: rgba(233, 30, 99, 0.3) !important;\n}\n.mdui-ripple-purple .mdui-ripple-wave {\n background-color: rgba(156, 39, 176, 0.3) !important;\n}\n.mdui-ripple-red .mdui-ripple-wave {\n background-color: rgba(244, 67, 54, 0.3) !important;\n}\n.mdui-ripple-teal .mdui-ripple-wave {\n background-color: rgba(0, 150, 136, 0.3) !important;\n}\n.mdui-ripple-yellow .mdui-ripple-wave {\n background-color: rgba(255, 235, 59, 0.3) !important;\n}\n/**\n * =============================================================================\n * ************ Ripple dark ************\n * =============================================================================\n */\n.mdui-theme-layout-dark .mdui-ripple-wave {\n background-color: rgba(255, 255, 255, 0.3);\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-layout-auto .mdui-ripple-wave {\n background-color: rgba(255, 255, 255, 0.3);\n }\n}\n/**\n * =============================================================================\n * ************ Text Field 文本框 ************\n * =============================================================================\n */\n/* 文本框外层 */\n.mdui-textfield {\n position: relative;\n padding-top: 16px;\n padding-bottom: 8px;\n overflow: hidden;\n}\n.mdui-textfield-has-bottom {\n padding-bottom: 28px;\n}\n/* 输入框 */\n.mdui-textfield-input {\n display: block;\n box-sizing: border-box;\n width: 100%;\n height: 36px;\n margin: 0;\n padding: 8px 0;\n overflow: hidden;\n color: rgba(0, 0, 0, 0.87);\n font-size: 16px;\n font-family: inherit;\n line-height: 20px;\n background: none;\n border: none;\n border-bottom: 1px solid rgba(0, 0, 0, 0.42);\n border-radius: 0;\n outline: none;\n box-shadow: none;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 0.2s;\n transition-property: border-bottom-color, padding-right, box-shadow;\n appearance: none;\n resize: none;\n}\n.mdui-textfield-input::-webkit-input-placeholder {\n color: inherit;\n opacity: 0.42;\n}\n.mdui-textfield-input:not([disabled]):hover {\n border-bottom: 1px solid rgba(0, 0, 0, 0.87);\n box-shadow: 0 1px 0 0 rgba(0, 0, 0, 0.87);\n cursor: pointer;\n}\n.mdui-textfield-input[rows] {\n height: auto !important;\n overflow: auto;\n -webkit-overflow-scrolling: touch;\n}\n/* 文本框 label */\n.mdui-textfield-label {\n display: block;\n width: 100%;\n color: rgba(0, 0, 0, 0.54);\n font-size: 16px;\n transform: scale(0.75) translateY(0);\n transform-origin: left;\n transition: all 0.2s;\n pointer-events: none;\n}\n/* 表单验证错误提示、帮助文本提示 */\n.mdui-textfield-error,\n.mdui-textfield-helper {\n position: absolute;\n bottom: 8px;\n height: 12px;\n font-size: 12px;\n line-height: 12px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.mdui-textfield-error {\n color: rgba(255, 23, 68, 0.87);\n visibility: hidden;\n}\n.mdui-textfield-helper {\n color: rgba(0, 0, 0, 0.54);\n}\n/* 表单中的图标\n ========== */\n.mdui-textfield .mdui-icon {\n position: absolute;\n bottom: 8px;\n padding: 6px;\n color: rgba(0, 0, 0, 0.54);\n}\n.mdui-textfield .mdui-icon ~ .mdui-textfield-label,\n.mdui-textfield .mdui-icon ~ .mdui-textfield-input,\n.mdui-textfield .mdui-icon ~ .mdui-textfield-error,\n.mdui-textfield .mdui-icon ~ .mdui-textfield-helper,\n.mdui-textfield .mdui-icon ~ .mdui-textfield-flex-wrap {\n /* stylelint-disable-next-line */\n width: calc(100% - 56px);\n margin-left: 56px;\n}\n.mdui-textfield-has-bottom .mdui-icon {\n bottom: 28px;\n}\n/* 聚焦状态的文本框\n ============= */\n.mdui-textfield-focus .mdui-textfield-input,\n.mdui-textfield-focus .mdui-textfield-input:hover {\n border-bottom-color: #C51162;\n box-shadow: 0 1px 0 0 #C51162;\n}\n.mdui-textfield-focus .mdui-textfield-label,\n.mdui-textfield-focus .mdui-icon {\n color: rgba(197, 17, 98, 0.87);\n}\n/* 含有浮动标签的文本框\n ================ */\n.mdui-textfield-floating-label .mdui-textfield-label {\n color: rgba(0, 0, 0, 0.35);\n transform: scale(1) translateY(27px);\n}\n.mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-textfield-floating-label.mdui-textfield-not-empty .mdui-textfield-label {\n color: rgba(0, 0, 0, 0.65);\n transform: scale(0.75) translateY(0);\n}\n.mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label {\n color: #E91E63;\n}\n/* 可展开文本框,默认向右展开\n ========== */\n.mdui-textfield-expandable {\n width: 36px;\n min-height: 36px;\n padding: 1px 0;\n transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n}\n.mdui-textfield-expandable .mdui-icon {\n bottom: 0;\n padding: 0;\n}\n.mdui-textfield-expandable .mdui-textfield-input {\n /* stylelint-disable-next-line */\n width: calc(100% - 36px);\n margin-left: 36px;\n padding-right: 0;\n}\n.mdui-textfield-expandable .mdui-textfield-icon {\n position: absolute;\n top: 0;\n left: 0;\n}\n.mdui-textfield-expandable .mdui-textfield-close {\n position: absolute;\n top: 0;\n right: 0;\n transform: scale(0);\n}\n.mdui-textfield-expandable.mdui-textfield-expanded {\n width: 100%;\n}\n.mdui-textfield-expandable.mdui-textfield-expanded .mdui-textfield-input {\n padding-right: 36px;\n}\n.mdui-textfield-expandable.mdui-textfield-expanded .mdui-textfield-close {\n transform: scale(1);\n}\n/* 表单验证不通过\n =========== */\n.mdui-textfield-invalid .mdui-textfield-input,\n.mdui-textfield-invalid-html5 .mdui-textfield-input,\n.mdui-textfield-invalid.mdui-textfield-focus .mdui-textfield-input,\n.mdui-textfield-invalid-html5.mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #FF1744 !important;\n box-shadow: 0 1px 0 0 #FF1744 !important;\n}\n.mdui-textfield-invalid .mdui-textfield-label,\n.mdui-textfield-invalid-html5 .mdui-textfield-label {\n color: #FF1744 !important;\n}\n.mdui-textfield-invalid.mdui-textfield-floating-label .mdui-textfield-label,\n.mdui-textfield-invalid-html5.mdui-textfield-floating-label .mdui-textfield-label {\n color: rgba(255, 23, 68, 0.35) !important;\n}\n.mdui-textfield-invalid.mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-textfield-invalid-html5.mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-textfield-invalid.mdui-textfield-floating-label.mdui-textfield-not-empty .mdui-textfield-label,\n.mdui-textfield-invalid-html5.mdui-textfield-floating-label.mdui-textfield-not-empty .mdui-textfield-label {\n color: #FF1744 !important;\n}\n.mdui-textfield-invalid .mdui-textfield-error,\n.mdui-textfield-invalid-html5 .mdui-textfield-error {\n visibility: visible;\n}\n.mdui-textfield-invalid .mdui-textfield-error + .mdui-textfield-helper,\n.mdui-textfield-invalid-html5 .mdui-textfield-error + .mdui-textfield-helper {\n visibility: hidden;\n}\n/* 禁用表单\n ====== */\n.mdui-textfield-disabled .mdui-textfield-label,\n.mdui-textfield-disabled .mdui-textfield-input::-webkit-input-placeholder {\n color: rgba(0, 0, 0, 0.38);\n}\n.mdui-textfield-disabled .mdui-textfield-input {\n color: rgba(0, 0, 0, 0.42);\n cursor: default;\n}\n.mdui-textfield-disabled .mdui-textfield-input {\n border-bottom: 1px dashed rgba(0, 0, 0, 0.42);\n}\n/* 字数统计\n ====== */\n.mdui-textfield-counter {\n position: absolute;\n right: 8px;\n bottom: 8px;\n height: 12px;\n color: rgba(0, 0, 0, 0.54);\n font-size: 12px;\n line-height: 12px;\n}\n/**\n * =============================================================================\n * ************ Textfield dark ************\n * =============================================================================\n */\n.mdui-theme-layout-dark .mdui-textfield-input {\n color: #fff;\n border-bottom-color: rgba(255, 255, 255, 0.7);\n}\n.mdui-theme-layout-dark .mdui-textfield-input::-webkit-input-placeholder {\n color: rgba(255, 255, 255, 0.5);\n}\n.mdui-theme-layout-dark .mdui-textfield-input:not([disabled]):hover {\n border-bottom-color: #ffffff;\n box-shadow: 0 1px 0 0 #ffffff;\n}\n.mdui-theme-layout-dark .mdui-textfield .mdui-icon {\n color: rgba(255, 255, 255, 0.7);\n}\n.mdui-theme-layout-dark .mdui-textfield-label {\n color: rgba(255, 255, 255, 0.7);\n}\n.mdui-theme-layout-dark .mdui-textfield-floating-label .mdui-textfield-label {\n color: rgba(255, 255, 255, 0.35);\n}\n.mdui-theme-layout-dark .mdui-textfield-error {\n color: #FF1744;\n}\n.mdui-theme-layout-dark .mdui-textfield-helper {\n color: rgba(255, 255, 255, 0.7);\n}\n.mdui-theme-layout-dark .mdui-textfield-counter {\n color: rgba(255, 255, 255, 0.7);\n}\n.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input,\n.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input:hover {\n border-bottom-color: #FF4081;\n box-shadow: 0 1px 0 0 #FF4081;\n}\n.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label {\n color: #FF4081;\n}\n.mdui-theme-layout-dark .mdui-textfield-disabled .mdui-textfield-label,\n.mdui-theme-layout-dark .mdui-textfield-disabled .mdui-textfield-input::-webkit-input-placeholder {\n color: rgba(255, 255, 255, 0.5);\n}\n.mdui-theme-layout-dark .mdui-textfield-disabled .mdui-textfield-input {\n color: rgba(255, 255, 255, 0.5);\n}\n.mdui-theme-layout-dark .mdui-textfield-disabled .mdui-textfield-input {\n border-bottom-color: rgba(255, 255, 255, 0.7);\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-layout-auto .mdui-textfield-input {\n color: #fff;\n border-bottom-color: rgba(255, 255, 255, 0.7);\n }\n .mdui-theme-layout-auto .mdui-textfield-input::-webkit-input-placeholder {\n color: rgba(255, 255, 255, 0.5);\n }\n .mdui-theme-layout-auto .mdui-textfield-input:not([disabled]):hover {\n border-bottom-color: #ffffff;\n box-shadow: 0 1px 0 0 #ffffff;\n }\n .mdui-theme-layout-auto .mdui-textfield .mdui-icon {\n color: rgba(255, 255, 255, 0.7);\n }\n .mdui-theme-layout-auto .mdui-textfield-label {\n color: rgba(255, 255, 255, 0.7);\n }\n .mdui-theme-layout-auto .mdui-textfield-floating-label .mdui-textfield-label {\n color: rgba(255, 255, 255, 0.35);\n }\n .mdui-theme-layout-auto .mdui-textfield-error {\n color: #FF1744;\n }\n .mdui-theme-layout-auto .mdui-textfield-helper {\n color: rgba(255, 255, 255, 0.7);\n }\n .mdui-theme-layout-auto .mdui-textfield-counter {\n color: rgba(255, 255, 255, 0.7);\n }\n .mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input,\n .mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input:hover {\n border-bottom-color: #FF4081;\n box-shadow: 0 1px 0 0 #FF4081;\n }\n .mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label {\n color: #FF4081;\n }\n .mdui-theme-layout-auto .mdui-textfield-disabled .mdui-textfield-label,\n .mdui-theme-layout-auto .mdui-textfield-disabled .mdui-textfield-input::-webkit-input-placeholder {\n color: rgba(255, 255, 255, 0.5);\n }\n .mdui-theme-layout-auto .mdui-textfield-disabled .mdui-textfield-input {\n color: rgba(255, 255, 255, 0.5);\n }\n .mdui-theme-layout-auto .mdui-textfield-disabled .mdui-textfield-input {\n border-bottom-color: rgba(255, 255, 255, 0.7);\n }\n}\n/**\n * =============================================================================\n * ************ Textfield 强调色 ************\n * =============================================================================\n */\n.mdui-theme-accent-amber .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #FFAB00;\n box-shadow: 0 1px 0 0 #FFAB00;\n}\n.mdui-theme-accent-amber .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-amber .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-amber .mdui-textfield-focus .mdui-icon {\n color: rgba(255, 171, 0, 0.87);\n}\n.mdui-theme-accent-amber.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #FFD740;\n box-shadow: 0 1px 0 0 #FFD740;\n}\n.mdui-theme-accent-amber.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-amber.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-amber.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon {\n color: #FFD740;\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-accent-amber.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #FFD740;\n box-shadow: 0 1px 0 0 #FFD740;\n }\n .mdui-theme-accent-amber.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-amber.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-amber.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon {\n color: #FFD740;\n }\n}\n.mdui-theme-accent-blue .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #2962FF;\n box-shadow: 0 1px 0 0 #2962FF;\n}\n.mdui-theme-accent-blue .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-blue .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-blue .mdui-textfield-focus .mdui-icon {\n color: rgba(41, 98, 255, 0.87);\n}\n.mdui-theme-accent-blue.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #448AFF;\n box-shadow: 0 1px 0 0 #448AFF;\n}\n.mdui-theme-accent-blue.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-blue.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-blue.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon {\n color: #448AFF;\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-accent-blue.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #448AFF;\n box-shadow: 0 1px 0 0 #448AFF;\n }\n .mdui-theme-accent-blue.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-blue.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-blue.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon {\n color: #448AFF;\n }\n}\n.mdui-theme-accent-cyan .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #00B8D4;\n box-shadow: 0 1px 0 0 #00B8D4;\n}\n.mdui-theme-accent-cyan .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-cyan .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-cyan .mdui-textfield-focus .mdui-icon {\n color: rgba(0, 184, 212, 0.87);\n}\n.mdui-theme-accent-cyan.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #18FFFF;\n box-shadow: 0 1px 0 0 #18FFFF;\n}\n.mdui-theme-accent-cyan.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-cyan.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-cyan.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon {\n color: #18FFFF;\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-accent-cyan.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #18FFFF;\n box-shadow: 0 1px 0 0 #18FFFF;\n }\n .mdui-theme-accent-cyan.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-cyan.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-cyan.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon {\n color: #18FFFF;\n }\n}\n.mdui-theme-accent-deep-orange .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #DD2C00;\n box-shadow: 0 1px 0 0 #DD2C00;\n}\n.mdui-theme-accent-deep-orange .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-deep-orange .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-deep-orange .mdui-textfield-focus .mdui-icon {\n color: rgba(221, 44, 0, 0.87);\n}\n.mdui-theme-accent-deep-orange.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #FF6E40;\n box-shadow: 0 1px 0 0 #FF6E40;\n}\n.mdui-theme-accent-deep-orange.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-deep-orange.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-deep-orange.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon {\n color: #FF6E40;\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-accent-deep-orange.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #FF6E40;\n box-shadow: 0 1px 0 0 #FF6E40;\n }\n .mdui-theme-accent-deep-orange.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-deep-orange.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-deep-orange.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon {\n color: #FF6E40;\n }\n}\n.mdui-theme-accent-deep-purple .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #6200EA;\n box-shadow: 0 1px 0 0 #6200EA;\n}\n.mdui-theme-accent-deep-purple .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-deep-purple .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-deep-purple .mdui-textfield-focus .mdui-icon {\n color: rgba(98, 0, 234, 0.87);\n}\n.mdui-theme-accent-deep-purple.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #7C4DFF;\n box-shadow: 0 1px 0 0 #7C4DFF;\n}\n.mdui-theme-accent-deep-purple.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-deep-purple.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-deep-purple.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon {\n color: #7C4DFF;\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-accent-deep-purple.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #7C4DFF;\n box-shadow: 0 1px 0 0 #7C4DFF;\n }\n .mdui-theme-accent-deep-purple.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-deep-purple.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-deep-purple.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon {\n color: #7C4DFF;\n }\n}\n.mdui-theme-accent-green .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #00C853;\n box-shadow: 0 1px 0 0 #00C853;\n}\n.mdui-theme-accent-green .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-green .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-green .mdui-textfield-focus .mdui-icon {\n color: rgba(0, 200, 83, 0.87);\n}\n.mdui-theme-accent-green.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #69F0AE;\n box-shadow: 0 1px 0 0 #69F0AE;\n}\n.mdui-theme-accent-green.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-green.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-green.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon {\n color: #69F0AE;\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-accent-green.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #69F0AE;\n box-shadow: 0 1px 0 0 #69F0AE;\n }\n .mdui-theme-accent-green.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-green.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-green.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon {\n color: #69F0AE;\n }\n}\n.mdui-theme-accent-indigo .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #304FFE;\n box-shadow: 0 1px 0 0 #304FFE;\n}\n.mdui-theme-accent-indigo .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-indigo .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-indigo .mdui-textfield-focus .mdui-icon {\n color: rgba(48, 79, 254, 0.87);\n}\n.mdui-theme-accent-indigo.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #536DFE;\n box-shadow: 0 1px 0 0 #536DFE;\n}\n.mdui-theme-accent-indigo.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-indigo.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-indigo.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon {\n color: #536DFE;\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-accent-indigo.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #536DFE;\n box-shadow: 0 1px 0 0 #536DFE;\n }\n .mdui-theme-accent-indigo.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-indigo.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-indigo.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon {\n color: #536DFE;\n }\n}\n.mdui-theme-accent-light-blue .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #0091EA;\n box-shadow: 0 1px 0 0 #0091EA;\n}\n.mdui-theme-accent-light-blue .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-light-blue .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-light-blue .mdui-textfield-focus .mdui-icon {\n color: rgba(0, 145, 234, 0.87);\n}\n.mdui-theme-accent-light-blue.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #40C4FF;\n box-shadow: 0 1px 0 0 #40C4FF;\n}\n.mdui-theme-accent-light-blue.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-light-blue.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-light-blue.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon {\n color: #40C4FF;\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-accent-light-blue.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #40C4FF;\n box-shadow: 0 1px 0 0 #40C4FF;\n }\n .mdui-theme-accent-light-blue.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-light-blue.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-light-blue.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon {\n color: #40C4FF;\n }\n}\n.mdui-theme-accent-light-green .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #64DD17;\n box-shadow: 0 1px 0 0 #64DD17;\n}\n.mdui-theme-accent-light-green .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-light-green .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-light-green .mdui-textfield-focus .mdui-icon {\n color: rgba(100, 221, 23, 0.87);\n}\n.mdui-theme-accent-light-green.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #B2FF59;\n box-shadow: 0 1px 0 0 #B2FF59;\n}\n.mdui-theme-accent-light-green.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-light-green.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-light-green.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon {\n color: #B2FF59;\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-accent-light-green.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #B2FF59;\n box-shadow: 0 1px 0 0 #B2FF59;\n }\n .mdui-theme-accent-light-green.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-light-green.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-light-green.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon {\n color: #B2FF59;\n }\n}\n.mdui-theme-accent-lime .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #AEEA00;\n box-shadow: 0 1px 0 0 #AEEA00;\n}\n.mdui-theme-accent-lime .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-lime .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-lime .mdui-textfield-focus .mdui-icon {\n color: rgba(174, 234, 0, 0.87);\n}\n.mdui-theme-accent-lime.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #EEFF41;\n box-shadow: 0 1px 0 0 #EEFF41;\n}\n.mdui-theme-accent-lime.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-lime.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-lime.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon {\n color: #EEFF41;\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-accent-lime.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #EEFF41;\n box-shadow: 0 1px 0 0 #EEFF41;\n }\n .mdui-theme-accent-lime.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-lime.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-lime.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon {\n color: #EEFF41;\n }\n}\n.mdui-theme-accent-orange .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #FF6D00;\n box-shadow: 0 1px 0 0 #FF6D00;\n}\n.mdui-theme-accent-orange .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-orange .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-orange .mdui-textfield-focus .mdui-icon {\n color: rgba(255, 109, 0, 0.87);\n}\n.mdui-theme-accent-orange.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #FFAB40;\n box-shadow: 0 1px 0 0 #FFAB40;\n}\n.mdui-theme-accent-orange.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-orange.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-orange.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon {\n color: #FFAB40;\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-accent-orange.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #FFAB40;\n box-shadow: 0 1px 0 0 #FFAB40;\n }\n .mdui-theme-accent-orange.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-orange.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-orange.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon {\n color: #FFAB40;\n }\n}\n.mdui-theme-accent-pink .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #C51162;\n box-shadow: 0 1px 0 0 #C51162;\n}\n.mdui-theme-accent-pink .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-pink .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-pink .mdui-textfield-focus .mdui-icon {\n color: rgba(197, 17, 98, 0.87);\n}\n.mdui-theme-accent-pink.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #FF4081;\n box-shadow: 0 1px 0 0 #FF4081;\n}\n.mdui-theme-accent-pink.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-pink.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-pink.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon {\n color: #FF4081;\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-accent-pink.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #FF4081;\n box-shadow: 0 1px 0 0 #FF4081;\n }\n .mdui-theme-accent-pink.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-pink.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-pink.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon {\n color: #FF4081;\n }\n}\n.mdui-theme-accent-purple .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #AA00FF;\n box-shadow: 0 1px 0 0 #AA00FF;\n}\n.mdui-theme-accent-purple .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-purple .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-purple .mdui-textfield-focus .mdui-icon {\n color: rgba(170, 0, 255, 0.87);\n}\n.mdui-theme-accent-purple.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #E040FB;\n box-shadow: 0 1px 0 0 #E040FB;\n}\n.mdui-theme-accent-purple.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-purple.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-purple.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon {\n color: #E040FB;\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-accent-purple.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #E040FB;\n box-shadow: 0 1px 0 0 #E040FB;\n }\n .mdui-theme-accent-purple.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-purple.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-purple.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon {\n color: #E040FB;\n }\n}\n.mdui-theme-accent-red .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #D50000;\n box-shadow: 0 1px 0 0 #D50000;\n}\n.mdui-theme-accent-red .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-red .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-red .mdui-textfield-focus .mdui-icon {\n color: rgba(213, 0, 0, 0.87);\n}\n.mdui-theme-accent-red.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #FF5252;\n box-shadow: 0 1px 0 0 #FF5252;\n}\n.mdui-theme-accent-red.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-red.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-red.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon {\n color: #FF5252;\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-accent-red.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #FF5252;\n box-shadow: 0 1px 0 0 #FF5252;\n }\n .mdui-theme-accent-red.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-red.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-red.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon {\n color: #FF5252;\n }\n}\n.mdui-theme-accent-teal .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #00BFA5;\n box-shadow: 0 1px 0 0 #00BFA5;\n}\n.mdui-theme-accent-teal .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-teal .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-teal .mdui-textfield-focus .mdui-icon {\n color: rgba(0, 191, 165, 0.87);\n}\n.mdui-theme-accent-teal.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #64FFDA;\n box-shadow: 0 1px 0 0 #64FFDA;\n}\n.mdui-theme-accent-teal.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-teal.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-teal.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon {\n color: #64FFDA;\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-accent-teal.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #64FFDA;\n box-shadow: 0 1px 0 0 #64FFDA;\n }\n .mdui-theme-accent-teal.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-teal.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-teal.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon {\n color: #64FFDA;\n }\n}\n.mdui-theme-accent-yellow .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #FFD600;\n box-shadow: 0 1px 0 0 #FFD600;\n}\n.mdui-theme-accent-yellow .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-yellow .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-yellow .mdui-textfield-focus .mdui-icon {\n color: rgba(255, 214, 0, 0.87);\n}\n.mdui-theme-accent-yellow.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #FFFF00;\n box-shadow: 0 1px 0 0 #FFFF00;\n}\n.mdui-theme-accent-yellow.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-yellow.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-yellow.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon {\n color: #FFFF00;\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-accent-yellow.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #FFFF00;\n box-shadow: 0 1px 0 0 #FFFF00;\n }\n .mdui-theme-accent-yellow.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-yellow.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-yellow.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon {\n color: #FFFF00;\n }\n}\n/**\n * =============================================================================\n * ************ Checkbox 复选框 ************\n * =============================================================================\n */\n.mdui-checkbox {\n position: relative;\n display: inline-block;\n height: 36px;\n padding-left: 36px;\n line-height: 36px;\n cursor: pointer;\n user-select: none;\n}\n.mdui-checkbox input[type=\"checkbox\"] {\n position: absolute;\n width: 0;\n height: 0;\n overflow: hidden;\n opacity: 0;\n}\n/* 透明的圆形,用于生成圆形阴影 */\n.mdui-checkbox-icon {\n position: absolute;\n top: 9px;\n left: 0;\n display: inline-block;\n width: 18px;\n height: 18px;\n vertical-align: middle;\n background-color: transparent;\n border: none;\n border-radius: 18px;\n transition: box-shadow 0.14s cubic-bezier(0.4, 0, 0.2, 1);\n}\n.mdui-checkbox-icon::after {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 0;\n box-sizing: border-box;\n width: 18px;\n height: 18px;\n border: 2px solid rgba(0, 0, 0, 0.54);\n border-radius: 2px;\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n content: ' ';\n}\n.mdui-checkbox-icon::before {\n position: absolute;\n top: 2px;\n left: 0;\n z-index: 1;\n box-sizing: border-box;\n width: 8px;\n height: 13px;\n border-right: 2px solid #fff;\n border-bottom: 2px solid #fff;\n transform: rotateZ(37deg) scale(0);\n transform-origin: 100% 100%;\n opacity: 0;\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n content: ' ';\n}\n/* 各种状态的图标 */\n.mdui-checkbox input[type=\"checkbox\"]:checked + .mdui-checkbox-icon::after {\n background-color: #FF4081;\n border-color: #FF4081;\n}\n.mdui-checkbox input[type=\"checkbox\"]:checked + .mdui-checkbox-icon::before {\n transform: rotateZ(37deg) scale(1);\n opacity: 1;\n}\n.mdui-checkbox input[type=\"checkbox\"]:indeterminate + .mdui-checkbox-icon::after {\n background-color: #FF4081;\n border-color: #FF4081;\n}\n.mdui-checkbox input[type=\"checkbox\"]:indeterminate + .mdui-checkbox-icon::before {\n top: 8px;\n left: 3px;\n width: 12px;\n height: 0;\n border-right: none;\n border-bottom: 2px solid #fff;\n border-radius: 1px;\n transform: rotateZ(0) scale(1);\n opacity: 1;\n}\n.mdui-checkbox input[type=\"checkbox\"]:disabled + .mdui-checkbox-icon::after {\n border-color: rgba(0, 0, 0, 0.26);\n}\n.mdui-checkbox input[type=\"checkbox\"]:disabled:checked + .mdui-checkbox-icon::after,\n.mdui-checkbox input[type=\"checkbox\"]:disabled:indeterminate + .mdui-checkbox-icon::after {\n background-color: rgba(0, 0, 0, 0.26) !important;\n border-color: transparent !important;\n}\n/* 阴影 */\n.mdui-checkbox:active input[type=\"checkbox\"] + .mdui-checkbox-icon,\n.mdui-checkbox input[type=\"checkbox\"]:focus + .mdui-checkbox-icon {\n box-shadow: 0 0 0 15px rgba(0, 0, 0, 0.1);\n}\n.mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):indeterminate + .mdui-checkbox-icon,\n.mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon {\n box-shadow: 0 0 0 15px rgba(255, 64, 129, 0.16);\n}\n/**\n * =============================================================================\n * ************ Checkbox 强调色 ************\n * =============================================================================\n */\n.mdui-theme-accent-amber .mdui-checkbox input[type=\"checkbox\"]:checked + .mdui-checkbox-icon::after,\n.mdui-theme-accent-amber .mdui-checkbox input[type=\"checkbox\"]:indeterminate + .mdui-checkbox-icon::after {\n background-color: #FFD740;\n border-color: #FFD740;\n}\n.mdui-theme-accent-amber .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-amber .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-amber .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):indeterminate + .mdui-checkbox-icon,\n.mdui-theme-accent-amber .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon {\n box-shadow: 0 0 0 15px rgba(255, 215, 64, 0.16);\n}\n.mdui-theme-accent-blue .mdui-checkbox input[type=\"checkbox\"]:checked + .mdui-checkbox-icon::after,\n.mdui-theme-accent-blue .mdui-checkbox input[type=\"checkbox\"]:indeterminate + .mdui-checkbox-icon::after {\n background-color: #448AFF;\n border-color: #448AFF;\n}\n.mdui-theme-accent-blue .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-blue .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-blue .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):indeterminate + .mdui-checkbox-icon,\n.mdui-theme-accent-blue .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon {\n box-shadow: 0 0 0 15px rgba(68, 138, 255, 0.16);\n}\n.mdui-theme-accent-cyan .mdui-checkbox input[type=\"checkbox\"]:checked + .mdui-checkbox-icon::after,\n.mdui-theme-accent-cyan .mdui-checkbox input[type=\"checkbox\"]:indeterminate + .mdui-checkbox-icon::after {\n background-color: #18FFFF;\n border-color: #18FFFF;\n}\n.mdui-theme-accent-cyan .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-cyan .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-cyan .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):indeterminate + .mdui-checkbox-icon,\n.mdui-theme-accent-cyan .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon {\n box-shadow: 0 0 0 15px rgba(24, 255, 255, 0.16);\n}\n.mdui-theme-accent-deep-orange .mdui-checkbox input[type=\"checkbox\"]:checked + .mdui-checkbox-icon::after,\n.mdui-theme-accent-deep-orange .mdui-checkbox input[type=\"checkbox\"]:indeterminate + .mdui-checkbox-icon::after {\n background-color: #FF6E40;\n border-color: #FF6E40;\n}\n.mdui-theme-accent-deep-orange .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-deep-orange .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-deep-orange .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):indeterminate + .mdui-checkbox-icon,\n.mdui-theme-accent-deep-orange .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon {\n box-shadow: 0 0 0 15px rgba(255, 110, 64, 0.16);\n}\n.mdui-theme-accent-deep-purple .mdui-checkbox input[type=\"checkbox\"]:checked + .mdui-checkbox-icon::after,\n.mdui-theme-accent-deep-purple .mdui-checkbox input[type=\"checkbox\"]:indeterminate + .mdui-checkbox-icon::after {\n background-color: #7C4DFF;\n border-color: #7C4DFF;\n}\n.mdui-theme-accent-deep-purple .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-deep-purple .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-deep-purple .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):indeterminate + .mdui-checkbox-icon,\n.mdui-theme-accent-deep-purple .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon {\n box-shadow: 0 0 0 15px rgba(124, 77, 255, 0.16);\n}\n.mdui-theme-accent-green .mdui-checkbox input[type=\"checkbox\"]:checked + .mdui-checkbox-icon::after,\n.mdui-theme-accent-green .mdui-checkbox input[type=\"checkbox\"]:indeterminate + .mdui-checkbox-icon::after {\n background-color: #69F0AE;\n border-color: #69F0AE;\n}\n.mdui-theme-accent-green .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-green .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-green .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):indeterminate + .mdui-checkbox-icon,\n.mdui-theme-accent-green .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon {\n box-shadow: 0 0 0 15px rgba(105, 240, 174, 0.16);\n}\n.mdui-theme-accent-indigo .mdui-checkbox input[type=\"checkbox\"]:checked + .mdui-checkbox-icon::after,\n.mdui-theme-accent-indigo .mdui-checkbox input[type=\"checkbox\"]:indeterminate + .mdui-checkbox-icon::after {\n background-color: #536DFE;\n border-color: #536DFE;\n}\n.mdui-theme-accent-indigo .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-indigo .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-indigo .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):indeterminate + .mdui-checkbox-icon,\n.mdui-theme-accent-indigo .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon {\n box-shadow: 0 0 0 15px rgba(83, 109, 254, 0.16);\n}\n.mdui-theme-accent-light-blue .mdui-checkbox input[type=\"checkbox\"]:checked + .mdui-checkbox-icon::after,\n.mdui-theme-accent-light-blue .mdui-checkbox input[type=\"checkbox\"]:indeterminate + .mdui-checkbox-icon::after {\n background-color: #40C4FF;\n border-color: #40C4FF;\n}\n.mdui-theme-accent-light-blue .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-light-blue .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-light-blue .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):indeterminate + .mdui-checkbox-icon,\n.mdui-theme-accent-light-blue .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon {\n box-shadow: 0 0 0 15px rgba(64, 196, 255, 0.16);\n}\n.mdui-theme-accent-light-green .mdui-checkbox input[type=\"checkbox\"]:checked + .mdui-checkbox-icon::after,\n.mdui-theme-accent-light-green .mdui-checkbox input[type=\"checkbox\"]:indeterminate + .mdui-checkbox-icon::after {\n background-color: #B2FF59;\n border-color: #B2FF59;\n}\n.mdui-theme-accent-light-green .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-light-green .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-light-green .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):indeterminate + .mdui-checkbox-icon,\n.mdui-theme-accent-light-green .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon {\n box-shadow: 0 0 0 15px rgba(178, 255, 89, 0.16);\n}\n.mdui-theme-accent-lime .mdui-checkbox input[type=\"checkbox\"]:checked + .mdui-checkbox-icon::after,\n.mdui-theme-accent-lime .mdui-checkbox input[type=\"checkbox\"]:indeterminate + .mdui-checkbox-icon::after {\n background-color: #EEFF41;\n border-color: #EEFF41;\n}\n.mdui-theme-accent-lime .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-lime .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-lime .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):indeterminate + .mdui-checkbox-icon,\n.mdui-theme-accent-lime .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon {\n box-shadow: 0 0 0 15px rgba(238, 255, 65, 0.16);\n}\n.mdui-theme-accent-orange .mdui-checkbox input[type=\"checkbox\"]:checked + .mdui-checkbox-icon::after,\n.mdui-theme-accent-orange .mdui-checkbox input[type=\"checkbox\"]:indeterminate + .mdui-checkbox-icon::after {\n background-color: #FFAB40;\n border-color: #FFAB40;\n}\n.mdui-theme-accent-orange .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-orange .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-orange .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):indeterminate + .mdui-checkbox-icon,\n.mdui-theme-accent-orange .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon {\n box-shadow: 0 0 0 15px rgba(255, 171, 64, 0.16);\n}\n.mdui-theme-accent-pink .mdui-checkbox input[type=\"checkbox\"]:checked + .mdui-checkbox-icon::after,\n.mdui-theme-accent-pink .mdui-checkbox input[type=\"checkbox\"]:indeterminate + .mdui-checkbox-icon::after {\n background-color: #FF4081;\n border-color: #FF4081;\n}\n.mdui-theme-accent-pink .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-pink .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-pink .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):indeterminate + .mdui-checkbox-icon,\n.mdui-theme-accent-pink .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon {\n box-shadow: 0 0 0 15px rgba(255, 64, 129, 0.16);\n}\n.mdui-theme-accent-purple .mdui-checkbox input[type=\"checkbox\"]:checked + .mdui-checkbox-icon::after,\n.mdui-theme-accent-purple .mdui-checkbox input[type=\"checkbox\"]:indeterminate + .mdui-checkbox-icon::after {\n background-color: #E040FB;\n border-color: #E040FB;\n}\n.mdui-theme-accent-purple .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-purple .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-purple .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):indeterminate + .mdui-checkbox-icon,\n.mdui-theme-accent-purple .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon {\n box-shadow: 0 0 0 15px rgba(224, 64, 251, 0.16);\n}\n.mdui-theme-accent-red .mdui-checkbox input[type=\"checkbox\"]:checked + .mdui-checkbox-icon::after,\n.mdui-theme-accent-red .mdui-checkbox input[type=\"checkbox\"]:indeterminate + .mdui-checkbox-icon::after {\n background-color: #FF5252;\n border-color: #FF5252;\n}\n.mdui-theme-accent-red .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-red .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-red .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):indeterminate + .mdui-checkbox-icon,\n.mdui-theme-accent-red .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon {\n box-shadow: 0 0 0 15px rgba(255, 82, 82, 0.16);\n}\n.mdui-theme-accent-teal .mdui-checkbox input[type=\"checkbox\"]:checked + .mdui-checkbox-icon::after,\n.mdui-theme-accent-teal .mdui-checkbox input[type=\"checkbox\"]:indeterminate + .mdui-checkbox-icon::after {\n background-color: #64FFDA;\n border-color: #64FFDA;\n}\n.mdui-theme-accent-teal .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-teal .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-teal .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):indeterminate + .mdui-checkbox-icon,\n.mdui-theme-accent-teal .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon {\n box-shadow: 0 0 0 15px rgba(100, 255, 218, 0.16);\n}\n.mdui-theme-accent-yellow .mdui-checkbox input[type=\"checkbox\"]:checked + .mdui-checkbox-icon::after,\n.mdui-theme-accent-yellow .mdui-checkbox input[type=\"checkbox\"]:indeterminate + .mdui-checkbox-icon::after {\n background-color: #FFFF00;\n border-color: #FFFF00;\n}\n.mdui-theme-accent-yellow .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-yellow .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-yellow .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):indeterminate + .mdui-checkbox-icon,\n.mdui-theme-accent-yellow .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon {\n box-shadow: 0 0 0 15px rgba(255, 255, 0, 0.16);\n}\n/**\n * =============================================================================\n * ************ Checkbox dark ************\n * =============================================================================\n */\n.mdui-theme-layout-dark .mdui-checkbox-icon::after {\n border-color: rgba(255, 255, 255, 0.7);\n}\n.mdui-theme-layout-dark .mdui-checkbox-icon::before {\n border-right-color: #303030 !important;\n border-bottom-color: #303030 !important;\n}\n.mdui-theme-layout-dark .mdui-checkbox input[type=\"checkbox\"]:disabled + .mdui-checkbox-icon::after {\n border-color: rgba(255, 255, 255, 0.3);\n}\n.mdui-theme-layout-dark .mdui-checkbox input[type=\"checkbox\"]:disabled:checked + .mdui-checkbox-icon::after,\n.mdui-theme-layout-dark .mdui-checkbox input[type=\"checkbox\"]:disabled:indeterminate + .mdui-checkbox-icon::after {\n background-color: rgba(255, 255, 255, 0.3) !important;\n border-color: transparent !important;\n}\n.mdui-theme-layout-dark .mdui-checkbox:active input[type=\"checkbox\"] + .mdui-checkbox-icon,\n.mdui-theme-layout-dark .mdui-checkbox input[type=\"checkbox\"]:focus + .mdui-checkbox-icon {\n box-shadow: 0 0 0 15px rgba(255, 255, 255, 0.1);\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-layout-auto .mdui-checkbox-icon::after {\n border-color: rgba(255, 255, 255, 0.7);\n }\n .mdui-theme-layout-auto .mdui-checkbox-icon::before {\n border-right-color: #303030 !important;\n border-bottom-color: #303030 !important;\n }\n .mdui-theme-layout-auto .mdui-checkbox input[type=\"checkbox\"]:disabled + .mdui-checkbox-icon::after {\n border-color: rgba(255, 255, 255, 0.3);\n }\n .mdui-theme-layout-auto .mdui-checkbox input[type=\"checkbox\"]:disabled:checked + .mdui-checkbox-icon::after,\n .mdui-theme-layout-auto .mdui-checkbox input[type=\"checkbox\"]:disabled:indeterminate + .mdui-checkbox-icon::after {\n background-color: rgba(255, 255, 255, 0.3) !important;\n border-color: transparent !important;\n }\n .mdui-theme-layout-auto .mdui-checkbox:active input[type=\"checkbox\"] + .mdui-checkbox-icon,\n .mdui-theme-layout-auto .mdui-checkbox input[type=\"checkbox\"]:focus + .mdui-checkbox-icon {\n box-shadow: 0 0 0 15px rgba(255, 255, 255, 0.1);\n }\n}\n/**\n * =============================================================================\n * ************ Radio 单选框 ************\n * =============================================================================\n */\n.mdui-radio {\n position: relative;\n display: inline-block;\n height: 36px;\n padding-left: 36px;\n line-height: 36px;\n cursor: pointer;\n user-select: none;\n}\n.mdui-radio input {\n position: absolute;\n width: 0;\n height: 0;\n overflow: hidden;\n opacity: 0;\n}\n/* 图标外圈 */\n.mdui-radio-icon {\n position: absolute;\n top: 9px;\n left: 0;\n display: inline-block;\n box-sizing: border-box;\n width: 18px;\n height: 18px;\n vertical-align: middle;\n border: 2px solid rgba(0, 0, 0, 0.54);\n border-radius: 18px;\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.14s cubic-bezier(0.4, 0, 0.2, 1);\n}\n.mdui-radio-icon::before {\n position: absolute;\n top: 0;\n left: 0;\n width: 14px;\n height: 14px;\n background-color: #FF4081;\n border-radius: 14px;\n transform: scale(0);\n opacity: 0;\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n content: ' ';\n}\n/* 选中状态的图标 */\n.mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon {\n border-color: #FF4081;\n}\n.mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon::before {\n transform: scale(0.68);\n opacity: 1;\n}\n/* 禁用状态的图标 */\n.mdui-radio input[type=\"radio\"]:disabled + .mdui-radio-icon {\n border-color: rgba(0, 0, 0, 0.26) !important;\n}\n/* 禁用且选中状态的图标 */\n.mdui-radio input[type=\"radio\"]:disabled:checked + .mdui-radio-icon::before {\n background-color: rgba(0, 0, 0, 0.26) !important;\n}\n/* 未选中、禁用时 按下的阴影 */\n.mdui-radio:active input[type=\"radio\"] + .mdui-radio-icon,\n.mdui-radio input[type=\"radio\"]:focus + .mdui-radio-icon {\n box-shadow: 0 0 0 15px rgba(0, 0, 0, 0.1);\n}\n/* 已选中时按下的阴影 */\n.mdui-radio:active input[type=\"radio\"]:checked:not(:disabled) + .mdui-radio-icon,\n.mdui-radio input[type=\"radio\"]:focus:checked:not(:disabled) + .mdui-radio-icon {\n box-shadow: 0 0 0 15px rgba(255, 64, 129, 0.16);\n}\n/**\n * =============================================================================\n * ************ Radio 强调色 ************\n * =============================================================================\n */\n.mdui-theme-accent-amber .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon {\n border-color: #FFD740;\n}\n.mdui-theme-accent-amber .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon::before {\n background-color: #FFD740;\n}\n.mdui-theme-accent-amber .mdui-radio:active input[type=\"radio\"]:checked:not(:disabled) + .mdui-radio-icon,\n.mdui-theme-accent-amber .mdui-radio input[type=\"radio\"]:focus:checked:not(:disabled) + .mdui-radio-icon {\n box-shadow: 0 0 0 15px rgba(255, 215, 64, 0.16);\n}\n.mdui-theme-accent-blue .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon {\n border-color: #448AFF;\n}\n.mdui-theme-accent-blue .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon::before {\n background-color: #448AFF;\n}\n.mdui-theme-accent-blue .mdui-radio:active input[type=\"radio\"]:checked:not(:disabled) + .mdui-radio-icon,\n.mdui-theme-accent-blue .mdui-radio input[type=\"radio\"]:focus:checked:not(:disabled) + .mdui-radio-icon {\n box-shadow: 0 0 0 15px rgba(68, 138, 255, 0.16);\n}\n.mdui-theme-accent-cyan .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon {\n border-color: #18FFFF;\n}\n.mdui-theme-accent-cyan .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon::before {\n background-color: #18FFFF;\n}\n.mdui-theme-accent-cyan .mdui-radio:active input[type=\"radio\"]:checked:not(:disabled) + .mdui-radio-icon,\n.mdui-theme-accent-cyan .mdui-radio input[type=\"radio\"]:focus:checked:not(:disabled) + .mdui-radio-icon {\n box-shadow: 0 0 0 15px rgba(24, 255, 255, 0.16);\n}\n.mdui-theme-accent-deep-orange .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon {\n border-color: #FF6E40;\n}\n.mdui-theme-accent-deep-orange .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon::before {\n background-color: #FF6E40;\n}\n.mdui-theme-accent-deep-orange .mdui-radio:active input[type=\"radio\"]:checked:not(:disabled) + .mdui-radio-icon,\n.mdui-theme-accent-deep-orange .mdui-radio input[type=\"radio\"]:focus:checked:not(:disabled) + .mdui-radio-icon {\n box-shadow: 0 0 0 15px rgba(255, 110, 64, 0.16);\n}\n.mdui-theme-accent-deep-purple .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon {\n border-color: #7C4DFF;\n}\n.mdui-theme-accent-deep-purple .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon::before {\n background-color: #7C4DFF;\n}\n.mdui-theme-accent-deep-purple .mdui-radio:active input[type=\"radio\"]:checked:not(:disabled) + .mdui-radio-icon,\n.mdui-theme-accent-deep-purple .mdui-radio input[type=\"radio\"]:focus:checked:not(:disabled) + .mdui-radio-icon {\n box-shadow: 0 0 0 15px rgba(124, 77, 255, 0.16);\n}\n.mdui-theme-accent-green .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon {\n border-color: #69F0AE;\n}\n.mdui-theme-accent-green .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon::before {\n background-color: #69F0AE;\n}\n.mdui-theme-accent-green .mdui-radio:active input[type=\"radio\"]:checked:not(:disabled) + .mdui-radio-icon,\n.mdui-theme-accent-green .mdui-radio input[type=\"radio\"]:focus:checked:not(:disabled) + .mdui-radio-icon {\n box-shadow: 0 0 0 15px rgba(105, 240, 174, 0.16);\n}\n.mdui-theme-accent-indigo .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon {\n border-color: #536DFE;\n}\n.mdui-theme-accent-indigo .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon::before {\n background-color: #536DFE;\n}\n.mdui-theme-accent-indigo .mdui-radio:active input[type=\"radio\"]:checked:not(:disabled) + .mdui-radio-icon,\n.mdui-theme-accent-indigo .mdui-radio input[type=\"radio\"]:focus:checked:not(:disabled) + .mdui-radio-icon {\n box-shadow: 0 0 0 15px rgba(83, 109, 254, 0.16);\n}\n.mdui-theme-accent-light-blue .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon {\n border-color: #40C4FF;\n}\n.mdui-theme-accent-light-blue .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon::before {\n background-color: #40C4FF;\n}\n.mdui-theme-accent-light-blue .mdui-radio:active input[type=\"radio\"]:checked:not(:disabled) + .mdui-radio-icon,\n.mdui-theme-accent-light-blue .mdui-radio input[type=\"radio\"]:focus:checked:not(:disabled) + .mdui-radio-icon {\n box-shadow: 0 0 0 15px rgba(64, 196, 255, 0.16);\n}\n.mdui-theme-accent-light-green .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon {\n border-color: #B2FF59;\n}\n.mdui-theme-accent-light-green .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon::before {\n background-color: #B2FF59;\n}\n.mdui-theme-accent-light-green .mdui-radio:active input[type=\"radio\"]:checked:not(:disabled) + .mdui-radio-icon,\n.mdui-theme-accent-light-green .mdui-radio input[type=\"radio\"]:focus:checked:not(:disabled) + .mdui-radio-icon {\n box-shadow: 0 0 0 15px rgba(178, 255, 89, 0.16);\n}\n.mdui-theme-accent-lime .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon {\n border-color: #EEFF41;\n}\n.mdui-theme-accent-lime .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon::before {\n background-color: #EEFF41;\n}\n.mdui-theme-accent-lime .mdui-radio:active input[type=\"radio\"]:checked:not(:disabled) + .mdui-radio-icon,\n.mdui-theme-accent-lime .mdui-radio input[type=\"radio\"]:focus:checked:not(:disabled) + .mdui-radio-icon {\n box-shadow: 0 0 0 15px rgba(238, 255, 65, 0.16);\n}\n.mdui-theme-accent-orange .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon {\n border-color: #FFAB40;\n}\n.mdui-theme-accent-orange .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon::before {\n background-color: #FFAB40;\n}\n.mdui-theme-accent-orange .mdui-radio:active input[type=\"radio\"]:checked:not(:disabled) + .mdui-radio-icon,\n.mdui-theme-accent-orange .mdui-radio input[type=\"radio\"]:focus:checked:not(:disabled) + .mdui-radio-icon {\n box-shadow: 0 0 0 15px rgba(255, 171, 64, 0.16);\n}\n.mdui-theme-accent-pink .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon {\n border-color: #FF4081;\n}\n.mdui-theme-accent-pink .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon::before {\n background-color: #FF4081;\n}\n.mdui-theme-accent-pink .mdui-radio:active input[type=\"radio\"]:checked:not(:disabled) + .mdui-radio-icon,\n.mdui-theme-accent-pink .mdui-radio input[type=\"radio\"]:focus:checked:not(:disabled) + .mdui-radio-icon {\n box-shadow: 0 0 0 15px rgba(255, 64, 129, 0.16);\n}\n.mdui-theme-accent-purple .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon {\n border-color: #E040FB;\n}\n.mdui-theme-accent-purple .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon::before {\n background-color: #E040FB;\n}\n.mdui-theme-accent-purple .mdui-radio:active input[type=\"radio\"]:checked:not(:disabled) + .mdui-radio-icon,\n.mdui-theme-accent-purple .mdui-radio input[type=\"radio\"]:focus:checked:not(:disabled) + .mdui-radio-icon {\n box-shadow: 0 0 0 15px rgba(224, 64, 251, 0.16);\n}\n.mdui-theme-accent-red .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon {\n border-color: #FF5252;\n}\n.mdui-theme-accent-red .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon::before {\n background-color: #FF5252;\n}\n.mdui-theme-accent-red .mdui-radio:active input[type=\"radio\"]:checked:not(:disabled) + .mdui-radio-icon,\n.mdui-theme-accent-red .mdui-radio input[type=\"radio\"]:focus:checked:not(:disabled) + .mdui-radio-icon {\n box-shadow: 0 0 0 15px rgba(255, 82, 82, 0.16);\n}\n.mdui-theme-accent-teal .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon {\n border-color: #64FFDA;\n}\n.mdui-theme-accent-teal .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon::before {\n background-color: #64FFDA;\n}\n.mdui-theme-accent-teal .mdui-radio:active input[type=\"radio\"]:checked:not(:disabled) + .mdui-radio-icon,\n.mdui-theme-accent-teal .mdui-radio input[type=\"radio\"]:focus:checked:not(:disabled) + .mdui-radio-icon {\n box-shadow: 0 0 0 15px rgba(100, 255, 218, 0.16);\n}\n.mdui-theme-accent-yellow .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon {\n border-color: #FFFF00;\n}\n.mdui-theme-accent-yellow .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon::before {\n background-color: #FFFF00;\n}\n.mdui-theme-accent-yellow .mdui-radio:active input[type=\"radio\"]:checked:not(:disabled) + .mdui-radio-icon,\n.mdui-theme-accent-yellow .mdui-radio input[type=\"radio\"]:focus:checked:not(:disabled) + .mdui-radio-icon {\n box-shadow: 0 0 0 15px rgba(255, 255, 0, 0.16);\n}\n/**\n * =============================================================================\n * ************ Radio dark ************\n * =============================================================================\n */\n.mdui-theme-layout-dark .mdui-radio-icon {\n border-color: rgba(255, 255, 255, 0.7);\n}\n.mdui-theme-layout-dark .mdui-radio input[type=\"radio\"]:disabled + .mdui-radio-icon {\n border-color: rgba(255, 255, 255, 0.3) !important;\n}\n.mdui-theme-layout-dark .mdui-radio input[type=\"radio\"]:disabled:checked + .mdui-radio-icon::before {\n background-color: rgba(255, 255, 255, 0.3) !important;\n}\n.mdui-theme-layout-dark .mdui-radio:active input[type=\"radio\"] + .mdui-radio-icon,\n.mdui-theme-layout-dark .mdui-radio input[type=\"radio\"]:focus + .mdui-radio-icon {\n box-shadow: 0 0 0 15px rgba(255, 255, 255, 0.1);\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-layout-auto .mdui-radio-icon {\n border-color: rgba(255, 255, 255, 0.7);\n }\n .mdui-theme-layout-auto .mdui-radio input[type=\"radio\"]:disabled + .mdui-radio-icon {\n border-color: rgba(255, 255, 255, 0.3) !important;\n }\n .mdui-theme-layout-auto .mdui-radio input[type=\"radio\"]:disabled:checked + .mdui-radio-icon::before {\n background-color: rgba(255, 255, 255, 0.3) !important;\n }\n .mdui-theme-layout-auto .mdui-radio:active input[type=\"radio\"] + .mdui-radio-icon,\n .mdui-theme-layout-auto .mdui-radio input[type=\"radio\"]:focus + .mdui-radio-icon {\n box-shadow: 0 0 0 15px rgba(255, 255, 255, 0.1);\n }\n}\n/**\n * =============================================================================\n * ************ Switch 单选框 ************\n * =============================================================================\n */\n.mdui-switch {\n display: inline-block;\n height: 36px;\n line-height: 36px;\n cursor: pointer;\n user-select: none;\n}\n.mdui-switch input {\n position: absolute;\n width: 0;\n height: 0;\n overflow: hidden;\n opacity: 0;\n}\n/* 图标轨道 */\n.mdui-switch-icon {\n position: relative;\n display: inline-block;\n width: 36px;\n height: 14px;\n vertical-align: middle;\n background-color: rgba(0, 0, 0, 0.38);\n border-radius: 14px;\n transition: background-color 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n}\n.mdui-switch-icon::before {\n position: absolute;\n top: -3px;\n left: -3px;\n display: inline-block;\n width: 20px;\n height: 20px;\n background-color: #FAFAFA;\n border-radius: 20px;\n transition: box-shadow 0.14s cubic-bezier(0.4, 0, 0.2, 1), background-color 0.3s cubic-bezier(0.4, 0, 0.2, 1), left 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n content: ' ';\n box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12);\n}\n/* 选中状态的图标 */\n.mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(255, 64, 129, 0.5);\n}\n.mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n left: 20px;\n background-color: #FF4081;\n}\n/* 未选中时或禁用时 按下的阴影 */\n.mdui-switch:active input[type=\"checkbox\"] + .mdui-switch-icon::before,\n.mdui-switch input[type=\"checkbox\"]:focus + .mdui-switch-icon::before {\n box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(0, 0, 0, 0.1);\n}\n/* 已选中时按下的阴影 */\n.mdui-switch:active input[type=\"checkbox\"]:checked:not(:disabled) + .mdui-switch-icon::before,\n.mdui-switch input[type=\"checkbox\"]:focus:checked:not(:disabled) + .mdui-switch-icon::before {\n box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(255, 64, 129, 0.16);\n}\n/* 禁用状态 */\n.mdui-switch input[type=\"checkbox\"]:disabled + .mdui-switch-icon {\n background-color: rgba(0, 0, 0, 0.12) !important;\n}\n.mdui-switch input[type=\"checkbox\"]:disabled + .mdui-switch-icon::before {\n background-color: #BDBDBD !important;\n}\n/**\n * =============================================================================\n * ************ Switch 强调色 ************\n * =============================================================================\n */\n.mdui-theme-accent-amber .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(255, 215, 64, 0.5);\n}\n.mdui-theme-accent-amber .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #FFD740;\n}\n.mdui-theme-accent-amber .mdui-switch:active input[type=\"checkbox\"]:checked:not(:disabled) + .mdui-switch-icon::before,\n.mdui-theme-accent-amber .mdui-switch input[type=\"checkbox\"]:focus:checked:not(:disabled) + .mdui-switch-icon::before {\n box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(255, 215, 64, 0.16);\n}\n.mdui-theme-accent-blue .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(68, 138, 255, 0.5);\n}\n.mdui-theme-accent-blue .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #448AFF;\n}\n.mdui-theme-accent-blue .mdui-switch:active input[type=\"checkbox\"]:checked:not(:disabled) + .mdui-switch-icon::before,\n.mdui-theme-accent-blue .mdui-switch input[type=\"checkbox\"]:focus:checked:not(:disabled) + .mdui-switch-icon::before {\n box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(68, 138, 255, 0.16);\n}\n.mdui-theme-accent-cyan .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(24, 255, 255, 0.5);\n}\n.mdui-theme-accent-cyan .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #18FFFF;\n}\n.mdui-theme-accent-cyan .mdui-switch:active input[type=\"checkbox\"]:checked:not(:disabled) + .mdui-switch-icon::before,\n.mdui-theme-accent-cyan .mdui-switch input[type=\"checkbox\"]:focus:checked:not(:disabled) + .mdui-switch-icon::before {\n box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(24, 255, 255, 0.16);\n}\n.mdui-theme-accent-deep-orange .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(255, 110, 64, 0.5);\n}\n.mdui-theme-accent-deep-orange .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #FF6E40;\n}\n.mdui-theme-accent-deep-orange .mdui-switch:active input[type=\"checkbox\"]:checked:not(:disabled) + .mdui-switch-icon::before,\n.mdui-theme-accent-deep-orange .mdui-switch input[type=\"checkbox\"]:focus:checked:not(:disabled) + .mdui-switch-icon::before {\n box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(255, 110, 64, 0.16);\n}\n.mdui-theme-accent-deep-purple .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(124, 77, 255, 0.5);\n}\n.mdui-theme-accent-deep-purple .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #7C4DFF;\n}\n.mdui-theme-accent-deep-purple .mdui-switch:active input[type=\"checkbox\"]:checked:not(:disabled) + .mdui-switch-icon::before,\n.mdui-theme-accent-deep-purple .mdui-switch input[type=\"checkbox\"]:focus:checked:not(:disabled) + .mdui-switch-icon::before {\n box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(124, 77, 255, 0.16);\n}\n.mdui-theme-accent-green .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(105, 240, 174, 0.5);\n}\n.mdui-theme-accent-green .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #69F0AE;\n}\n.mdui-theme-accent-green .mdui-switch:active input[type=\"checkbox\"]:checked:not(:disabled) + .mdui-switch-icon::before,\n.mdui-theme-accent-green .mdui-switch input[type=\"checkbox\"]:focus:checked:not(:disabled) + .mdui-switch-icon::before {\n box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(105, 240, 174, 0.16);\n}\n.mdui-theme-accent-indigo .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(83, 109, 254, 0.5);\n}\n.mdui-theme-accent-indigo .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #536DFE;\n}\n.mdui-theme-accent-indigo .mdui-switch:active input[type=\"checkbox\"]:checked:not(:disabled) + .mdui-switch-icon::before,\n.mdui-theme-accent-indigo .mdui-switch input[type=\"checkbox\"]:focus:checked:not(:disabled) + .mdui-switch-icon::before {\n box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(83, 109, 254, 0.16);\n}\n.mdui-theme-accent-light-blue .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(64, 196, 255, 0.5);\n}\n.mdui-theme-accent-light-blue .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #40C4FF;\n}\n.mdui-theme-accent-light-blue .mdui-switch:active input[type=\"checkbox\"]:checked:not(:disabled) + .mdui-switch-icon::before,\n.mdui-theme-accent-light-blue .mdui-switch input[type=\"checkbox\"]:focus:checked:not(:disabled) + .mdui-switch-icon::before {\n box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(64, 196, 255, 0.16);\n}\n.mdui-theme-accent-light-green .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(178, 255, 89, 0.5);\n}\n.mdui-theme-accent-light-green .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #B2FF59;\n}\n.mdui-theme-accent-light-green .mdui-switch:active input[type=\"checkbox\"]:checked:not(:disabled) + .mdui-switch-icon::before,\n.mdui-theme-accent-light-green .mdui-switch input[type=\"checkbox\"]:focus:checked:not(:disabled) + .mdui-switch-icon::before {\n box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(178, 255, 89, 0.16);\n}\n.mdui-theme-accent-lime .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(238, 255, 65, 0.5);\n}\n.mdui-theme-accent-lime .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #EEFF41;\n}\n.mdui-theme-accent-lime .mdui-switch:active input[type=\"checkbox\"]:checked:not(:disabled) + .mdui-switch-icon::before,\n.mdui-theme-accent-lime .mdui-switch input[type=\"checkbox\"]:focus:checked:not(:disabled) + .mdui-switch-icon::before {\n box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(238, 255, 65, 0.16);\n}\n.mdui-theme-accent-orange .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(255, 171, 64, 0.5);\n}\n.mdui-theme-accent-orange .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #FFAB40;\n}\n.mdui-theme-accent-orange .mdui-switch:active input[type=\"checkbox\"]:checked:not(:disabled) + .mdui-switch-icon::before,\n.mdui-theme-accent-orange .mdui-switch input[type=\"checkbox\"]:focus:checked:not(:disabled) + .mdui-switch-icon::before {\n box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(255, 171, 64, 0.16);\n}\n.mdui-theme-accent-pink .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(255, 64, 129, 0.5);\n}\n.mdui-theme-accent-pink .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #FF4081;\n}\n.mdui-theme-accent-pink .mdui-switch:active input[type=\"checkbox\"]:checked:not(:disabled) + .mdui-switch-icon::before,\n.mdui-theme-accent-pink .mdui-switch input[type=\"checkbox\"]:focus:checked:not(:disabled) + .mdui-switch-icon::before {\n box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(255, 64, 129, 0.16);\n}\n.mdui-theme-accent-purple .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(224, 64, 251, 0.5);\n}\n.mdui-theme-accent-purple .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #E040FB;\n}\n.mdui-theme-accent-purple .mdui-switch:active input[type=\"checkbox\"]:checked:not(:disabled) + .mdui-switch-icon::before,\n.mdui-theme-accent-purple .mdui-switch input[type=\"checkbox\"]:focus:checked:not(:disabled) + .mdui-switch-icon::before {\n box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(224, 64, 251, 0.16);\n}\n.mdui-theme-accent-red .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(255, 82, 82, 0.5);\n}\n.mdui-theme-accent-red .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #FF5252;\n}\n.mdui-theme-accent-red .mdui-switch:active input[type=\"checkbox\"]:checked:not(:disabled) + .mdui-switch-icon::before,\n.mdui-theme-accent-red .mdui-switch input[type=\"checkbox\"]:focus:checked:not(:disabled) + .mdui-switch-icon::before {\n box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(255, 82, 82, 0.16);\n}\n.mdui-theme-accent-teal .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(100, 255, 218, 0.5);\n}\n.mdui-theme-accent-teal .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #64FFDA;\n}\n.mdui-theme-accent-teal .mdui-switch:active input[type=\"checkbox\"]:checked:not(:disabled) + .mdui-switch-icon::before,\n.mdui-theme-accent-teal .mdui-switch input[type=\"checkbox\"]:focus:checked:not(:disabled) + .mdui-switch-icon::before {\n box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(100, 255, 218, 0.16);\n}\n.mdui-theme-accent-yellow .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(255, 255, 0, 0.5);\n}\n.mdui-theme-accent-yellow .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #FFFF00;\n}\n.mdui-theme-accent-yellow .mdui-switch:active input[type=\"checkbox\"]:checked:not(:disabled) + .mdui-switch-icon::before,\n.mdui-theme-accent-yellow .mdui-switch input[type=\"checkbox\"]:focus:checked:not(:disabled) + .mdui-switch-icon::before {\n box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(255, 255, 0, 0.16);\n}\n/**\n * =============================================================================\n * ************ Radio dark ************\n * =============================================================================\n */\n.mdui-theme-layout-dark .mdui-switch-icon {\n background-color: rgba(255, 255, 255, 0.3);\n}\n.mdui-theme-layout-dark .mdui-switch-icon::before {\n background-color: #BDBDBD;\n}\n.mdui-theme-layout-dark.mdui-theme-accent-amber .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(255, 229, 127, 0.5);\n}\n.mdui-theme-layout-dark.mdui-theme-accent-amber .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #FFE57F;\n}\n.mdui-theme-layout-dark.mdui-theme-accent-blue .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(130, 177, 255, 0.5);\n}\n.mdui-theme-layout-dark.mdui-theme-accent-blue .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #82B1FF;\n}\n.mdui-theme-layout-dark.mdui-theme-accent-cyan .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(132, 255, 255, 0.5);\n}\n.mdui-theme-layout-dark.mdui-theme-accent-cyan .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #84FFFF;\n}\n.mdui-theme-layout-dark.mdui-theme-accent-deep-orange .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(255, 158, 128, 0.5);\n}\n.mdui-theme-layout-dark.mdui-theme-accent-deep-orange .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #FF9E80;\n}\n.mdui-theme-layout-dark.mdui-theme-accent-deep-purple .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(179, 136, 255, 0.5);\n}\n.mdui-theme-layout-dark.mdui-theme-accent-deep-purple .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #B388FF;\n}\n.mdui-theme-layout-dark.mdui-theme-accent-green .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(185, 246, 202, 0.5);\n}\n.mdui-theme-layout-dark.mdui-theme-accent-green .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #B9F6CA;\n}\n.mdui-theme-layout-dark.mdui-theme-accent-indigo .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(140, 158, 255, 0.5);\n}\n.mdui-theme-layout-dark.mdui-theme-accent-indigo .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #8C9EFF;\n}\n.mdui-theme-layout-dark.mdui-theme-accent-light-blue .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(128, 216, 255, 0.5);\n}\n.mdui-theme-layout-dark.mdui-theme-accent-light-blue .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #80D8FF;\n}\n.mdui-theme-layout-dark.mdui-theme-accent-light-green .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(204, 255, 144, 0.5);\n}\n.mdui-theme-layout-dark.mdui-theme-accent-light-green .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #CCFF90;\n}\n.mdui-theme-layout-dark.mdui-theme-accent-lime .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(244, 255, 129, 0.5);\n}\n.mdui-theme-layout-dark.mdui-theme-accent-lime .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #F4FF81;\n}\n.mdui-theme-layout-dark.mdui-theme-accent-orange .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(255, 209, 128, 0.5);\n}\n.mdui-theme-layout-dark.mdui-theme-accent-orange .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #FFD180;\n}\n.mdui-theme-layout-dark.mdui-theme-accent-pink .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(255, 128, 171, 0.5);\n}\n.mdui-theme-layout-dark.mdui-theme-accent-pink .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #FF80AB;\n}\n.mdui-theme-layout-dark.mdui-theme-accent-purple .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(234, 128, 252, 0.5);\n}\n.mdui-theme-layout-dark.mdui-theme-accent-purple .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #EA80FC;\n}\n.mdui-theme-layout-dark.mdui-theme-accent-red .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(255, 138, 128, 0.5);\n}\n.mdui-theme-layout-dark.mdui-theme-accent-red .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #FF8A80;\n}\n.mdui-theme-layout-dark.mdui-theme-accent-teal .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(167, 255, 235, 0.5);\n}\n.mdui-theme-layout-dark.mdui-theme-accent-teal .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #A7FFEB;\n}\n.mdui-theme-layout-dark.mdui-theme-accent-yellow .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(255, 255, 141, 0.5);\n}\n.mdui-theme-layout-dark.mdui-theme-accent-yellow .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #FFFF8D;\n}\n.mdui-theme-layout-dark .mdui-switch:active input[type=\"checkbox\"] + .mdui-switch-icon::before,\n.mdui-theme-layout-dark .mdui-switch input[type=\"checkbox\"]:focus + .mdui-switch-icon::before {\n box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(255, 255, 255, 0.1);\n}\n.mdui-theme-layout-dark .mdui-switch input[type=\"checkbox\"]:disabled + .mdui-switch-icon {\n background-color: rgba(255, 255, 255, 0.1) !important;\n}\n.mdui-theme-layout-dark .mdui-switch input[type=\"checkbox\"]:disabled + .mdui-switch-icon::before {\n background-color: #424242 !important;\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-layout-auto .mdui-switch-icon {\n background-color: rgba(255, 255, 255, 0.3);\n }\n .mdui-theme-layout-auto .mdui-switch-icon::before {\n background-color: #BDBDBD;\n }\n .mdui-theme-layout-auto.mdui-theme-accent-amber .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(255, 229, 127, 0.5);\n }\n .mdui-theme-layout-auto.mdui-theme-accent-amber .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #FFE57F;\n }\n .mdui-theme-layout-auto.mdui-theme-accent-blue .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(130, 177, 255, 0.5);\n }\n .mdui-theme-layout-auto.mdui-theme-accent-blue .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #82B1FF;\n }\n .mdui-theme-layout-auto.mdui-theme-accent-cyan .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(132, 255, 255, 0.5);\n }\n .mdui-theme-layout-auto.mdui-theme-accent-cyan .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #84FFFF;\n }\n .mdui-theme-layout-auto.mdui-theme-accent-deep-orange .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(255, 158, 128, 0.5);\n }\n .mdui-theme-layout-auto.mdui-theme-accent-deep-orange .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #FF9E80;\n }\n .mdui-theme-layout-auto.mdui-theme-accent-deep-purple .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(179, 136, 255, 0.5);\n }\n .mdui-theme-layout-auto.mdui-theme-accent-deep-purple .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #B388FF;\n }\n .mdui-theme-layout-auto.mdui-theme-accent-green .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(185, 246, 202, 0.5);\n }\n .mdui-theme-layout-auto.mdui-theme-accent-green .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #B9F6CA;\n }\n .mdui-theme-layout-auto.mdui-theme-accent-indigo .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(140, 158, 255, 0.5);\n }\n .mdui-theme-layout-auto.mdui-theme-accent-indigo .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #8C9EFF;\n }\n .mdui-theme-layout-auto.mdui-theme-accent-light-blue .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(128, 216, 255, 0.5);\n }\n .mdui-theme-layout-auto.mdui-theme-accent-light-blue .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #80D8FF;\n }\n .mdui-theme-layout-auto.mdui-theme-accent-light-green .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(204, 255, 144, 0.5);\n }\n .mdui-theme-layout-auto.mdui-theme-accent-light-green .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #CCFF90;\n }\n .mdui-theme-layout-auto.mdui-theme-accent-lime .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(244, 255, 129, 0.5);\n }\n .mdui-theme-layout-auto.mdui-theme-accent-lime .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #F4FF81;\n }\n .mdui-theme-layout-auto.mdui-theme-accent-orange .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(255, 209, 128, 0.5);\n }\n .mdui-theme-layout-auto.mdui-theme-accent-orange .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #FFD180;\n }\n .mdui-theme-layout-auto.mdui-theme-accent-pink .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(255, 128, 171, 0.5);\n }\n .mdui-theme-layout-auto.mdui-theme-accent-pink .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #FF80AB;\n }\n .mdui-theme-layout-auto.mdui-theme-accent-purple .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(234, 128, 252, 0.5);\n }\n .mdui-theme-layout-auto.mdui-theme-accent-purple .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #EA80FC;\n }\n .mdui-theme-layout-auto.mdui-theme-accent-red .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(255, 138, 128, 0.5);\n }\n .mdui-theme-layout-auto.mdui-theme-accent-red .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #FF8A80;\n }\n .mdui-theme-layout-auto.mdui-theme-accent-teal .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(167, 255, 235, 0.5);\n }\n .mdui-theme-layout-auto.mdui-theme-accent-teal .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #A7FFEB;\n }\n .mdui-theme-layout-auto.mdui-theme-accent-yellow .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(255, 255, 141, 0.5);\n }\n .mdui-theme-layout-auto.mdui-theme-accent-yellow .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #FFFF8D;\n }\n .mdui-theme-layout-auto .mdui-switch:active input[type=\"checkbox\"] + .mdui-switch-icon::before,\n .mdui-theme-layout-auto .mdui-switch input[type=\"checkbox\"]:focus + .mdui-switch-icon::before {\n box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(255, 255, 255, 0.1);\n }\n .mdui-theme-layout-auto .mdui-switch input[type=\"checkbox\"]:disabled + .mdui-switch-icon {\n background-color: rgba(255, 255, 255, 0.1) !important;\n }\n .mdui-theme-layout-auto .mdui-switch input[type=\"checkbox\"]:disabled + .mdui-switch-icon::before {\n background-color: #424242 !important;\n }\n}\n/**\n * =============================================================================\n * ************ Slider 滑块 ************\n * =============================================================================\n */\n.mdui-slider {\n position: relative;\n display: block;\n width: 100%;\n height: 36px;\n}\n.mdui-slider input[type=\"range\"] {\n position: absolute;\n top: 50%;\n left: 0;\n z-index: 2;\n width: 100%;\n height: 20px;\n margin-top: -10px;\n cursor: pointer;\n opacity: 0;\n appearance: none;\n}\n.mdui-slider-track,\n.mdui-slider-fill {\n position: absolute;\n top: 50%;\n box-sizing: border-box;\n height: 2px;\n margin-top: -1px;\n}\n.mdui-slider-track::before,\n.mdui-slider-fill::before {\n display: block;\n width: 100%;\n height: 100%;\n content: ' ';\n}\n/* 轨道 */\n.mdui-slider-track {\n right: 0;\n}\n.mdui-slider-track::before {\n background-color: #bdbdbd;\n transition: background-color 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n}\n/* 已滑动部分 */\n.mdui-slider-fill {\n left: 0;\n}\n.mdui-slider-fill::before {\n background-color: #FF4081;\n}\n/* 滑块 */\n.mdui-slider-thumb {\n position: absolute;\n top: 50%;\n box-sizing: border-box;\n width: 12px;\n height: 12px;\n margin-top: -6px;\n background-color: #FF4081;\n border: 2px solid #FF4081;\n border-radius: 50%;\n transform: translate(-50%);\n transition: background 0.45s cubic-bezier(0.4, 0, 0.2, 1), border-color 0.45s cubic-bezier(0.4, 0, 0.2, 1), transform 0.2s cubic-bezier(0.4, 0, 0.2, 1), border-radius 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n will-change: background, border-color, transform, border-radius;\n}\n/**\n * =============================================================================\n * ************ Slider 强调色 ************\n * =============================================================================\n */\n.mdui-theme-accent-amber .mdui-slider-fill::before {\n background-color: #FFD740;\n}\n.mdui-theme-accent-amber .mdui-slider-thumb {\n background-color: #FFD740;\n border: 2px solid #FFD740;\n}\n.mdui-theme-accent-blue .mdui-slider-fill::before {\n background-color: #448AFF;\n}\n.mdui-theme-accent-blue .mdui-slider-thumb {\n background-color: #448AFF;\n border: 2px solid #448AFF;\n}\n.mdui-theme-accent-cyan .mdui-slider-fill::before {\n background-color: #18FFFF;\n}\n.mdui-theme-accent-cyan .mdui-slider-thumb {\n background-color: #18FFFF;\n border: 2px solid #18FFFF;\n}\n.mdui-theme-accent-deep-orange .mdui-slider-fill::before {\n background-color: #FF6E40;\n}\n.mdui-theme-accent-deep-orange .mdui-slider-thumb {\n background-color: #FF6E40;\n border: 2px solid #FF6E40;\n}\n.mdui-theme-accent-deep-purple .mdui-slider-fill::before {\n background-color: #7C4DFF;\n}\n.mdui-theme-accent-deep-purple .mdui-slider-thumb {\n background-color: #7C4DFF;\n border: 2px solid #7C4DFF;\n}\n.mdui-theme-accent-green .mdui-slider-fill::before {\n background-color: #69F0AE;\n}\n.mdui-theme-accent-green .mdui-slider-thumb {\n background-color: #69F0AE;\n border: 2px solid #69F0AE;\n}\n.mdui-theme-accent-indigo .mdui-slider-fill::before {\n background-color: #536DFE;\n}\n.mdui-theme-accent-indigo .mdui-slider-thumb {\n background-color: #536DFE;\n border: 2px solid #536DFE;\n}\n.mdui-theme-accent-light-blue .mdui-slider-fill::before {\n background-color: #40C4FF;\n}\n.mdui-theme-accent-light-blue .mdui-slider-thumb {\n background-color: #40C4FF;\n border: 2px solid #40C4FF;\n}\n.mdui-theme-accent-light-green .mdui-slider-fill::before {\n background-color: #B2FF59;\n}\n.mdui-theme-accent-light-green .mdui-slider-thumb {\n background-color: #B2FF59;\n border: 2px solid #B2FF59;\n}\n.mdui-theme-accent-lime .mdui-slider-fill::before {\n background-color: #EEFF41;\n}\n.mdui-theme-accent-lime .mdui-slider-thumb {\n background-color: #EEFF41;\n border: 2px solid #EEFF41;\n}\n.mdui-theme-accent-orange .mdui-slider-fill::before {\n background-color: #FFAB40;\n}\n.mdui-theme-accent-orange .mdui-slider-thumb {\n background-color: #FFAB40;\n border: 2px solid #FFAB40;\n}\n.mdui-theme-accent-pink .mdui-slider-fill::before {\n background-color: #FF4081;\n}\n.mdui-theme-accent-pink .mdui-slider-thumb {\n background-color: #FF4081;\n border: 2px solid #FF4081;\n}\n.mdui-theme-accent-purple .mdui-slider-fill::before {\n background-color: #E040FB;\n}\n.mdui-theme-accent-purple .mdui-slider-thumb {\n background-color: #E040FB;\n border: 2px solid #E040FB;\n}\n.mdui-theme-accent-red .mdui-slider-fill::before {\n background-color: #FF5252;\n}\n.mdui-theme-accent-red .mdui-slider-thumb {\n background-color: #FF5252;\n border: 2px solid #FF5252;\n}\n.mdui-theme-accent-teal .mdui-slider-fill::before {\n background-color: #64FFDA;\n}\n.mdui-theme-accent-teal .mdui-slider-thumb {\n background-color: #64FFDA;\n border: 2px solid #64FFDA;\n}\n.mdui-theme-accent-yellow .mdui-slider-fill::before {\n background-color: #FFFF00;\n}\n.mdui-theme-accent-yellow .mdui-slider-thumb {\n background-color: #FFFF00;\n border: 2px solid #FFFF00;\n}\n/**\n * =============================================================================\n * ============ Slider 的不同状态 ============\n * =============================================================================\n */\n/* 鼠标按下状态 */\n.mdui-slider-focus .mdui-slider-track::before {\n background-color: #9e9e9e;\n}\n.mdui-slider-focus .mdui-slider-thumb {\n transform: translate(-50%) scale(1.6);\n}\n/* 滑块值为 0 */\n.mdui-slider-zero .mdui-slider-thumb {\n background-color: #fff;\n border-color: #bdbdbd;\n}\n/* 滑块值为 0,且鼠标按下 */\n.mdui-slider-zero.mdui-slider-focus .mdui-slider-thumb {\n border-color: #9e9e9e;\n}\n/* 禁用状态 */\n.mdui-slider-disabled input[type=\"range\"] {\n cursor: default;\n}\n.mdui-slider-disabled .mdui-slider-track::before {\n background-color: #bdbdbd;\n}\n.mdui-slider-disabled .mdui-slider-fill::before {\n background-color: #bdbdbd;\n}\n.mdui-slider-disabled .mdui-slider-thumb {\n background-color: #bdbdbd;\n border-color: transparent !important;\n transform: translate(-50%) scale(0.72);\n}\n/**\n * =============================================================================\n * ============ 间续型滑块 ============\n * =============================================================================\n */\n.mdui-slider-discrete .mdui-slider-thumb {\n width: 30px;\n height: 30px;\n margin-top: -15px;\n margin-left: -15px;\n border: none;\n transform: rotate(-45deg) scale(0.4);\n}\n.mdui-slider-discrete .mdui-slider-thumb span {\n position: absolute;\n top: 9px;\n left: -1px;\n width: 100%;\n color: #fff;\n font-size: 12px;\n text-align: center;\n transform: rotate(45deg);\n opacity: 0;\n transition: opacity 0.25s cubic-bezier(0.4, 0, 0.2, 1);\n}\n.mdui-slider-discrete.mdui-slider-focus .mdui-slider-thumb {\n border-radius: 15px 15px 15px 0;\n transform: rotate(-45deg) scale(1) translate(22px, -22px);\n}\n.mdui-slider-discrete.mdui-slider-focus .mdui-slider-thumb span {\n opacity: 1;\n}\n.mdui-slider-discrete.mdui-slider-zero .mdui-slider-thumb {\n background-color: #323232;\n}\n.mdui-slider-discrete.mdui-slider-zero.mdui-slider-focus .mdui-slider-thumb {\n background-color: #bdbdbd;\n}\n.mdui-slider-discrete.mdui-slider-disabled .mdui-slider-thumb {\n transform: rotate(-45deg) scale(0.288);\n}\n.mdui-slider-discrete.mdui-slider-zero.mdui-slider-disabled .mdui-slider-thumb {\n background-color: #bdbdbd;\n}\n/**\n * =============================================================================\n * ************ Slider dark ************\n * =============================================================================\n */\n.mdui-theme-layout-dark .mdui-slider-track::before {\n background-color: #4c4c4c;\n}\n.mdui-theme-layout-dark .mdui-slider-focus .mdui-slider-track::before {\n background-color: #4c4c4c;\n}\n.mdui-theme-layout-dark .mdui-slider-zero .mdui-slider-thumb {\n background-color: #303030;\n border-color: #4c4c4c;\n}\n.mdui-theme-layout-dark .mdui-slider-zero.mdui-slider-focus .mdui-slider-thumb {\n border-color: #4c4c4c;\n}\n.mdui-theme-layout-dark .mdui-slider-disabled .mdui-slider-track::before {\n background-color: #4c4c4c;\n}\n.mdui-theme-layout-dark .mdui-slider-disabled .mdui-slider-fill::before {\n background-color: #4c4c4c;\n}\n.mdui-theme-layout-dark .mdui-slider-disabled .mdui-slider-thumb {\n background-color: #4c4c4c;\n}\n.mdui-theme-layout-dark .mdui-slider-discrete.mdui-slider-zero .mdui-slider-thumb {\n background-color: #fefefe;\n}\n.mdui-theme-layout-dark .mdui-slider-discrete.mdui-slider-zero.mdui-slider-focus .mdui-slider-thumb {\n background-color: #5c5c5c;\n}\n.mdui-theme-layout-dark .mdui-slider-discrete.mdui-slider-zero.mdui-slider-disabled .mdui-slider-thumb {\n background-color: #4c4c4c;\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-layout-auto .mdui-slider-track::before {\n background-color: #4c4c4c;\n }\n .mdui-theme-layout-auto .mdui-slider-focus .mdui-slider-track::before {\n background-color: #4c4c4c;\n }\n .mdui-theme-layout-auto .mdui-slider-zero .mdui-slider-thumb {\n background-color: #303030;\n border-color: #4c4c4c;\n }\n .mdui-theme-layout-auto .mdui-slider-zero.mdui-slider-focus .mdui-slider-thumb {\n border-color: #4c4c4c;\n }\n .mdui-theme-layout-auto .mdui-slider-disabled .mdui-slider-track::before {\n background-color: #4c4c4c;\n }\n .mdui-theme-layout-auto .mdui-slider-disabled .mdui-slider-fill::before {\n background-color: #4c4c4c;\n }\n .mdui-theme-layout-auto .mdui-slider-disabled .mdui-slider-thumb {\n background-color: #4c4c4c;\n }\n .mdui-theme-layout-auto .mdui-slider-discrete.mdui-slider-zero .mdui-slider-thumb {\n background-color: #fefefe;\n }\n .mdui-theme-layout-auto .mdui-slider-discrete.mdui-slider-zero.mdui-slider-focus .mdui-slider-thumb {\n background-color: #5c5c5c;\n }\n .mdui-theme-layout-auto .mdui-slider-discrete.mdui-slider-zero.mdui-slider-disabled .mdui-slider-thumb {\n background-color: #4c4c4c;\n }\n}\n/**\n * =============================================================================\n * ************ Button 按钮 ************\n * =============================================================================\n */\n/* 默认为 Flat 扁平按钮 */\n.mdui-btn,\n.mdui-fab {\n position: relative;\n display: inline-block;\n box-sizing: border-box;\n min-width: 88px;\n height: 36px;\n margin: 0;\n padding: 0 16px;\n overflow: hidden;\n color: inherit;\n font-weight: 500;\n font-size: 14px;\n line-height: 36px;\n letter-spacing: 0.04em;\n white-space: nowrap;\n text-align: center;\n text-transform: uppercase;\n text-decoration: none;\n vertical-align: middle;\n background: transparent;\n border: none;\n border-radius: 2px;\n outline: none;\n cursor: pointer;\n transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1);\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n touch-action: manipulation;\n will-change: box-shadow;\n zoom: 1;\n -webkit-user-drag: none;\n}\n.mdui-btn:hover,\n.mdui-fab:hover {\n background-color: rgba(0, 0, 0, 0.1);\n}\n.mdui-btn:not(.mdui-ripple):active,\n.mdui-fab:not(.mdui-ripple):active {\n background-color: rgba(0, 0, 0, 0.165);\n}\n.mdui-btn[class*=\"mdui-color-\"]:hover,\n.mdui-fab[class*=\"mdui-color-\"]:hover {\n opacity: 0.87;\n}\n.mdui-btn:not(.mdui-ripple)[class*=\"mdui-color-\"]:active,\n.mdui-fab:not(.mdui-ripple)[class*=\"mdui-color-\"]:active {\n opacity: 0.76;\n}\n/* 按钮内的图标 */\n.mdui-btn .mdui-icon-left,\n.mdui-btn .mdui-icon-right,\n.mdui-btn .mdui-icon-left::before,\n.mdui-btn .mdui-icon-right::before {\n height: inherit;\n font-size: 1.3em;\n line-height: inherit;\n}\n.mdui-btn .mdui-icon-left {\n float: left;\n margin-right: 0.4em;\n}\n.mdui-btn .mdui-icon-right {\n float: right;\n margin-left: 0.4em;\n}\ninput.mdui-btn[type=\"submit\"] {\n appearance: none;\n}\n/* Raised button 浮动按钮 */\n.mdui-btn-raised {\n box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\n}\n.mdui-btn-raised:hover {\n box-shadow: 0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12);\n}\n.mdui-btn-raised:active {\n box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12);\n}\n/* 禁用按钮 */\n.mdui-btn[disabled],\n.mdui-fab[disabled],\n.mdui-btn[disabled]:hover,\n.mdui-fab[disabled]:hover,\n.mdui-btn[disabled]:active,\n.mdui-fab[disabled]:active,\n.mdui-btn[disabled]:focus,\n.mdui-fab[disabled]:focus {\n color: rgba(0, 0, 0, 0.26) !important;\n background-color: transparent !important;\n cursor: default !important;\n opacity: 1 !important;\n box-shadow: none !important;\n}\n.mdui-btn[disabled] .mdui-icon,\n.mdui-fab[disabled] .mdui-icon,\n.mdui-btn[disabled]:hover .mdui-icon,\n.mdui-fab[disabled]:hover .mdui-icon,\n.mdui-btn[disabled]:active .mdui-icon,\n.mdui-fab[disabled]:active .mdui-icon,\n.mdui-btn[disabled]:focus .mdui-icon,\n.mdui-fab[disabled]:focus .mdui-icon {\n color: rgba(0, 0, 0, 0.26) !important;\n}\n/* 禁用状态浮动按钮和浮动操作按钮 */\n.mdui-btn-raised[disabled],\n.mdui-fab[disabled],\n.mdui-btn-raised[disabled]:hover,\n.mdui-fab[disabled]:hover,\n.mdui-btn-raised[disabled]:active,\n.mdui-fab[disabled]:active,\n.mdui-btn-raised[disabled]:focus,\n.mdui-fab[disabled]:focus {\n background-color: rgba(0, 0, 0, 0.12) !important;\n box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12) !important;\n}\n/* 加粗按钮文本 */\n.mdui-btn-bold {\n font-weight: bold;\n}\n/* 图标按钮 */\n.mdui-btn-icon {\n width: 36px;\n min-width: 36px;\n height: 36px;\n margin-right: 0;\n margin-left: 0;\n padding: 0;\n overflow: hidden;\n font-size: 24px;\n line-height: normal;\n border-radius: 50%;\n}\n.mdui-btn-icon .mdui-icon {\n position: absolute;\n top: 50%;\n left: 50%;\n width: 24px;\n line-height: 24px;\n transform: translate(-12px, -12px);\n}\n.mdui-btn-icon.mdui-ripple {\n transform: translateZ(0);\n}\n/* 按钮 100% 宽度 */\n.mdui-btn-block {\n display: block;\n width: 100%;\n}\n/* 密集型按钮 */\n.mdui-btn-dense {\n height: 32px;\n font-size: 13px;\n line-height: 32px;\n}\n.mdui-btn-dense.mdui-btn-icon {\n width: 32px;\n min-width: 32px;\n}\n/* 按钮组 */\n.mdui-btn-group {\n position: relative;\n display: inline-block;\n vertical-align: middle;\n}\n.mdui-btn-group .mdui-btn {\n float: left;\n min-width: inherit;\n padding: 0 12px;\n color: rgba(0, 0, 0, 0.54);\n border-radius: 0;\n}\n.mdui-btn-group .mdui-btn::before {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n border-left: 1px solid transparent;\n content: ' ';\n}\n.mdui-btn-group .mdui-btn:first-child {\n border-top-left-radius: 2px;\n border-bottom-left-radius: 2px;\n}\n.mdui-btn-group .mdui-btn:first-child::before {\n border-left: none;\n}\n.mdui-btn-group .mdui-btn:last-child {\n border-top-right-radius: 2px;\n border-bottom-right-radius: 2px;\n}\n.mdui-btn-group .mdui-btn.mdui-btn-active {\n color: rgba(0, 0, 0, 0.87);\n background-color: rgba(0, 0, 0, 0.215);\n}\n.mdui-btn-group .mdui-btn.mdui-btn-active + .mdui-btn-active::before {\n border-left: 1px solid rgba(0, 0, 0, 0.145);\n}\n/**\n * =============================================================================\n * ************ Button dark ************\n * =============================================================================\n */\n.mdui-theme-layout-dark .mdui-btn:hover,\n.mdui-theme-layout-dark .mdui-fab:hover {\n background-color: rgba(255, 255, 255, 0.1);\n}\n.mdui-theme-layout-dark .mdui-btn:not(.mdui-ripple):active,\n.mdui-theme-layout-dark .mdui-fab:not(.mdui-ripple):active {\n background-color: rgba(255, 255, 255, 0.165);\n}\n.mdui-theme-layout-dark .mdui-btn[class*=\"mdui-color-\"]:hover,\n.mdui-theme-layout-dark .mdui-fab[class*=\"mdui-color-\"]:hover {\n opacity: 0.87;\n}\n.mdui-theme-layout-dark .mdui-btn:not(.mdui-ripple)[class*=\"mdui-color-\"]:active,\n.mdui-theme-layout-dark .mdui-fab:not(.mdui-ripple)[class*=\"mdui-color-\"]:active {\n opacity: 0.76;\n}\n.mdui-theme-layout-dark .mdui-btn[disabled],\n.mdui-theme-layout-dark .mdui-fab[disabled],\n.mdui-theme-layout-dark .mdui-btn[disabled]:hover,\n.mdui-theme-layout-dark .mdui-fab[disabled]:hover,\n.mdui-theme-layout-dark .mdui-btn[disabled]:active,\n.mdui-theme-layout-dark .mdui-fab[disabled]:active,\n.mdui-theme-layout-dark .mdui-btn[disabled]:focus,\n.mdui-theme-layout-dark .mdui-fab[disabled]:focus {\n color: rgba(255, 255, 255, 0.3) !important;\n background-color: transparent !important;\n}\n.mdui-theme-layout-dark .mdui-btn[disabled] .mdui-icon,\n.mdui-theme-layout-dark .mdui-fab[disabled] .mdui-icon,\n.mdui-theme-layout-dark .mdui-btn[disabled]:hover .mdui-icon,\n.mdui-theme-layout-dark .mdui-fab[disabled]:hover .mdui-icon,\n.mdui-theme-layout-dark .mdui-btn[disabled]:active .mdui-icon,\n.mdui-theme-layout-dark .mdui-fab[disabled]:active .mdui-icon,\n.mdui-theme-layout-dark .mdui-btn[disabled]:focus .mdui-icon,\n.mdui-theme-layout-dark .mdui-fab[disabled]:focus .mdui-icon {\n color: rgba(255, 255, 255, 0.3) !important;\n}\n.mdui-theme-layout-dark .mdui-btn-raised[disabled],\n.mdui-theme-layout-dark .mdui-fab[disabled],\n.mdui-theme-layout-dark .mdui-btn-raised[disabled]:hover,\n.mdui-theme-layout-dark .mdui-fab[disabled]:hover,\n.mdui-theme-layout-dark .mdui-btn-raised[disabled]:active,\n.mdui-theme-layout-dark .mdui-fab[disabled]:active,\n.mdui-theme-layout-dark .mdui-btn-raised[disabled]:focus,\n.mdui-theme-layout-dark .mdui-fab[disabled]:focus {\n background-color: rgba(255, 255, 255, 0.12) !important;\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-layout-auto .mdui-btn:hover,\n .mdui-theme-layout-auto .mdui-fab:hover {\n background-color: rgba(255, 255, 255, 0.1);\n }\n .mdui-theme-layout-auto .mdui-btn:not(.mdui-ripple):active,\n .mdui-theme-layout-auto .mdui-fab:not(.mdui-ripple):active {\n background-color: rgba(255, 255, 255, 0.165);\n }\n .mdui-theme-layout-auto .mdui-btn[class*=\"mdui-color-\"]:hover,\n .mdui-theme-layout-auto .mdui-fab[class*=\"mdui-color-\"]:hover {\n opacity: 0.87;\n }\n .mdui-theme-layout-auto .mdui-btn:not(.mdui-ripple)[class*=\"mdui-color-\"]:active,\n .mdui-theme-layout-auto .mdui-fab:not(.mdui-ripple)[class*=\"mdui-color-\"]:active {\n opacity: 0.76;\n }\n .mdui-theme-layout-auto .mdui-btn[disabled],\n .mdui-theme-layout-auto .mdui-fab[disabled],\n .mdui-theme-layout-auto .mdui-btn[disabled]:hover,\n .mdui-theme-layout-auto .mdui-fab[disabled]:hover,\n .mdui-theme-layout-auto .mdui-btn[disabled]:active,\n .mdui-theme-layout-auto .mdui-fab[disabled]:active,\n .mdui-theme-layout-auto .mdui-btn[disabled]:focus,\n .mdui-theme-layout-auto .mdui-fab[disabled]:focus {\n color: rgba(255, 255, 255, 0.3) !important;\n background-color: transparent !important;\n }\n .mdui-theme-layout-auto .mdui-btn[disabled] .mdui-icon,\n .mdui-theme-layout-auto .mdui-fab[disabled] .mdui-icon,\n .mdui-theme-layout-auto .mdui-btn[disabled]:hover .mdui-icon,\n .mdui-theme-layout-auto .mdui-fab[disabled]:hover .mdui-icon,\n .mdui-theme-layout-auto .mdui-btn[disabled]:active .mdui-icon,\n .mdui-theme-layout-auto .mdui-fab[disabled]:active .mdui-icon,\n .mdui-theme-layout-auto .mdui-btn[disabled]:focus .mdui-icon,\n .mdui-theme-layout-auto .mdui-fab[disabled]:focus .mdui-icon {\n color: rgba(255, 255, 255, 0.3) !important;\n }\n .mdui-theme-layout-auto .mdui-btn-raised[disabled],\n .mdui-theme-layout-auto .mdui-fab[disabled],\n .mdui-theme-layout-auto .mdui-btn-raised[disabled]:hover,\n .mdui-theme-layout-auto .mdui-fab[disabled]:hover,\n .mdui-theme-layout-auto .mdui-btn-raised[disabled]:active,\n .mdui-theme-layout-auto .mdui-fab[disabled]:active,\n .mdui-theme-layout-auto .mdui-btn-raised[disabled]:focus,\n .mdui-theme-layout-auto .mdui-fab[disabled]:focus {\n background-color: rgba(255, 255, 255, 0.12) !important;\n }\n}\n/**\n * =============================================================================\n * ************ Fab 浮动操作按钮 ************\n * =============================================================================\n */\n/* 浮动操作按钮 */\n.mdui-fab {\n width: 56px;\n min-width: 56px;\n height: 56px;\n margin: auto;\n padding: 0 !important;\n overflow: hidden;\n font-size: 24px;\n line-height: normal !important;\n border-radius: 50%;\n box-shadow: 0 3px 5px -1px rgba(0, 0, 0, 0.2), 0 6px 10px 0 rgba(0, 0, 0, 0.14), 0 1px 18px 0 rgba(0, 0, 0, 0.12);\n}\n.mdui-fab:hover {\n box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12);\n}\n.mdui-fab:active {\n box-shadow: 0 7px 8px -4px rgba(0, 0, 0, 0.2), 0 12px 17px 2px rgba(0, 0, 0, 0.14), 0 5px 22px 4px rgba(0, 0, 0, 0.12);\n}\n.mdui-fab .mdui-icon {\n position: absolute;\n top: 0;\n left: 0;\n width: 24px;\n margin-top: 16px;\n margin-left: 16px;\n line-height: 24px;\n}\n/* mini 型浮动操作按钮 */\n.mdui-fab-mini {\n width: 40px;\n min-width: 40px;\n height: 40px;\n}\n.mdui-fab-mini .mdui-icon {\n margin-top: 8px;\n margin-left: 8px;\n}\n/* 固定到右下角的 FAB 按钮 */\n.mdui-fab-fixed,\n.mdui-fab-wrapper {\n position: fixed !important;\n /* 手机平板上距离屏幕右下角 16px */\n right: 16px;\n bottom: 16px;\n}\n@media (min-width: 1024px) {\n .mdui-fab-fixed,\n .mdui-fab-wrapper {\n /* 电脑上距离屏幕右下角 24px */\n right: 24px;\n bottom: 24px;\n }\n}\n/* 含菜单的浮动操作按钮 */\n.mdui-fab-wrapper {\n position: relative;\n z-index: 4000;\n width: 56px;\n height: 56px;\n padding-top: 8px;\n text-align: center;\n}\n.mdui-fab-wrapper > .mdui-fab .mdui-icon:not(.mdui-fab-opened) {\n opacity: 1;\n transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n will-change: opacity, transform;\n}\n.mdui-fab-wrapper > .mdui-fab .mdui-icon.mdui-fab-opened {\n transform: rotate(225deg);\n opacity: 0;\n transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n will-change: opacity, transform;\n}\n.mdui-fab-wrapper > .mdui-fab.mdui-fab-opened .mdui-icon:not(.mdui-fab-opened) {\n transform: rotate(225deg);\n opacity: 0;\n}\n.mdui-fab-wrapper > .mdui-fab.mdui-fab-opened .mdui-icon.mdui-fab-opened {\n transform: rotate(360deg);\n opacity: 1;\n}\n.mdui-fab-wrapper > .mdui-fab-mini {\n margin-top: 8px;\n}\n.mdui-fab-wrapper .mdui-fab-dial {\n position: absolute;\n right: 0;\n bottom: 64px;\n left: 0;\n height: 0;\n text-align: center;\n visibility: visible;\n}\n.mdui-fab-wrapper .mdui-fab-dial .mdui-fab {\n margin: 8px 0;\n transform: scale(0);\n opacity: 0;\n transition: box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1), color 0.2s cubic-bezier(0.4, 0, 0.2, 1), transform 150ms cubic-bezier(0.4, 0, 0.2, 1), opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n.mdui-fab-wrapper .mdui-fab-dial.mdui-fab-dial-show .mdui-fab {\n transform: scale(1);\n opacity: 1;\n}\n/* 添加类 .mdui-fab-hide 以动画的形式隐藏按钮 */\n.mdui-fab,\n.mdui-fab-mini,\n.mdui-fab-wrapper {\n transform: scale(1) translateZ(0);\n transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1), transform 0.2s;\n will-change: transform;\n}\n.mdui-fab.mdui-fab-hide,\n.mdui-fab-mini.mdui-fab-hide,\n.mdui-fab-wrapper.mdui-fab-hide {\n transform: scale(0) translateZ(0);\n}\n/**\n * =============================================================================\n * ************ Select 下拉选择 ************\n * =============================================================================\n */\n.mdui-select {\n position: relative;\n display: inline-block;\n box-sizing: border-box;\n max-width: 100%;\n height: 36px;\n padding-right: 24px;\n padding-left: 0;\n font-size: 16px;\n font-family: Roboto, Noto, Helvetica, Arial, sans-serif;\n vertical-align: middle;\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cpath d='M-.003 2.5l5 5 5-5h-10z' opacity='.54'/%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n background-position: right center;\n border: none;\n border-bottom: 1px solid rgba(0, 0, 0, 0.12);\n outline: none;\n cursor: pointer;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 0.2s;\n transition-property: background-color, box-shadow, background-position-x;\n appearance: none;\n user-select: none;\n will-change: background-color, box-shadow, background-position-x;\n}\n.mdui-select.mdui-select-open {\n border-bottom: none;\n}\n.mdui-select-position-top {\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cpath d='M10.003 7.5l-5-5-5 5h10z' opacity='.54'/%3E%3C/svg%3E\");\n}\n/* 底部和顶部菜单的样式 */\n.mdui-select-open.mdui-select-position-top,\n.mdui-select-open.mdui-select-position-bottom {\n z-index: 99999;\n background-color: #fff;\n /* stylelint-disable-next-line */\n background-position-x: calc(100% - 12px);\n border-radius: 2px;\n}\n.mdui-select-open.mdui-select-position-top {\n border-top: 1px solid rgba(0, 0, 0, 0.12);\n border-bottom: 2px solid transparent;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n box-shadow: 0 10px 10px -3px rgba(0, 0, 0, 0.2), 0 0 14px 1px rgba(0, 0, 0, 0.14), 0 -7px 24px 2px rgba(0, 0, 0, 0.12);\n}\n.mdui-select-open.mdui-select-position-top .mdui-select-menu {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n box-shadow: 0 -4px 4px -2px rgba(0, 0, 0, 0.06), 8px 0 8px -4px rgba(0, 0, 0, 0.12), -8px 0 8px -4px rgba(0, 0, 0, 0.12);\n}\n.mdui-select-open.mdui-select-position-bottom {\n border-bottom: 1px solid rgba(0, 0, 0, 0.12);\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12);\n}\n.mdui-select-open.mdui-select-position-bottom .mdui-select-menu {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 9px 9px 1px rgba(0, 0, 0, 0.14), 0 8px 8px 2px rgba(0, 0, 0, 0.06);\n}\n/* 当前选中项文本 */\n.mdui-select-selected {\n position: absolute;\n top: 50%;\n right: 24px;\n left: 0;\n display: block;\n transform: translateY(-50%);\n transition: left 0.2s cubic-bezier(0, 0, 0.2, 1);\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.mdui-select-open .mdui-select-selected {\n right: 32px;\n left: 16px;\n}\n.mdui-select-open.mdui-select-position-auto .mdui-select-selected {\n visibility: hidden;\n}\n/* 菜单 */\n.mdui-select-menu {\n position: relative;\n z-index: 99999;\n box-sizing: border-box;\n height: 36px;\n margin: 0 -24px 0 0;\n overflow-y: scroll;\n color: rgba(0, 0, 0, 0.87);\n background-color: #fff;\n border-radius: 2px;\n transform: scale(1, 0);\n visibility: hidden;\n cursor: default;\n opacity: 0;\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n transition-duration: 0.2s;\n transition-property: transform, opacity, visibility;\n will-change: transform, opacity, visibility;\n -webkit-overflow-scrolling: touch;\n box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12);\n}\n.mdui-select-open .mdui-select-menu {\n overflow-y: hidden;\n transform: scale(1, 1);\n visibility: visible;\n opacity: 1;\n}\n.mdui-select-closing .mdui-select-menu {\n overflow-y: hidden;\n box-shadow: none;\n transform: scale(1, 1);\n visibility: visible;\n opacity: 0;\n}\n/* 菜单项 */\n.mdui-select-menu-item {\n height: 48px;\n padding: 0 16px;\n line-height: 48px;\n cursor: pointer;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.mdui-select-menu-item:hover {\n background-color: #EEEEEE;\n}\n.mdui-select-menu-item:first-child {\n margin-top: 8px;\n}\n.mdui-select-menu-item:last-child {\n margin-bottom: 8px;\n}\n.mdui-select-menu-item[disabled] {\n color: rgba(0, 0, 0, 0.38) !important;\n cursor: default;\n}\n.mdui-select-menu-item[disabled]:hover {\n background-color: inherit !important;\n}\n.mdui-select-menu-item[selected] {\n color: #FF4081;\n}\n/* 原生 select 组件 */\nselect.mdui-select {\n background-color: transparent;\n}\nselect.mdui-select option {\n color: rgba(0, 0, 0, 0.87);\n}\nselect.mdui-select::-ms-expand {\n display: none;\n}\n/* 原生多选 select 组件 */\nselect.mdui-select[multiple] {\n height: auto;\n padding: 0;\n font-size: 15px;\n background-color: #FFF;\n background-image: none;\n border: 1px solid rgba(0, 0, 0, 0.38);\n cursor: default;\n}\nselect.mdui-select[multiple] optgroup {\n margin: 8px 0 0 0;\n padding: 0 0 0 16px;\n color: rgba(0, 0, 0, 0.38);\n}\nselect.mdui-select[multiple] optgroup:last-child {\n margin-bottom: 8px;\n}\nselect.mdui-select[multiple] optgroup:not(:first-child) {\n padding-top: 8px;\n border-top: 1px solid rgba(0, 0, 0, 0.12);\n}\nselect.mdui-select[multiple] option {\n display: flex;\n align-items: center;\n height: 32px;\n margin: 0 0 0 -16px;\n padding: 0 16px;\n color: rgba(0, 0, 0, 0.87);\n}\nselect.mdui-select[multiple] option:first-child {\n margin-top: 8px;\n}\nselect.mdui-select[multiple] option:last-child {\n margin-bottom: 8px;\n}\n/**\n * =============================================================================\n * ************ Select 强调色 ************\n * =============================================================================\n */\n.mdui-theme-accent-amber .mdui-select-menu-item[selected] {\n color: #FFC107;\n}\n.mdui-theme-accent-blue .mdui-select-menu-item[selected] {\n color: #2196F3;\n}\n.mdui-theme-accent-cyan .mdui-select-menu-item[selected] {\n color: #00BCD4;\n}\n.mdui-theme-accent-deep-orange .mdui-select-menu-item[selected] {\n color: #FF5722;\n}\n.mdui-theme-accent-deep-purple .mdui-select-menu-item[selected] {\n color: #673AB7;\n}\n.mdui-theme-accent-green .mdui-select-menu-item[selected] {\n color: #4CAF50;\n}\n.mdui-theme-accent-indigo .mdui-select-menu-item[selected] {\n color: #3F51B5;\n}\n.mdui-theme-accent-light-blue .mdui-select-menu-item[selected] {\n color: #03A9F4;\n}\n.mdui-theme-accent-light-green .mdui-select-menu-item[selected] {\n color: #8BC34A;\n}\n.mdui-theme-accent-lime .mdui-select-menu-item[selected] {\n color: #CDDC39;\n}\n.mdui-theme-accent-orange .mdui-select-menu-item[selected] {\n color: #FF9800;\n}\n.mdui-theme-accent-pink .mdui-select-menu-item[selected] {\n color: #E91E63;\n}\n.mdui-theme-accent-purple .mdui-select-menu-item[selected] {\n color: #9C27B0;\n}\n.mdui-theme-accent-red .mdui-select-menu-item[selected] {\n color: #F44336;\n}\n.mdui-theme-accent-teal .mdui-select-menu-item[selected] {\n color: #009688;\n}\n.mdui-theme-accent-yellow .mdui-select-menu-item[selected] {\n color: #FFEB3B;\n}\n/**\n * =============================================================================\n * ************ Select dark ************\n * =============================================================================\n */\n.mdui-theme-layout-dark .mdui-select {\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cpath d='M-.003 2.5l5 5 5-5h-10z' fill='%23FFF'/%3E%3C/svg%3E\");\n border-bottom: 1px solid rgba(255, 255, 255, 0.12);\n}\n.mdui-theme-layout-dark .mdui-select-position-top {\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cpath d='M10.003 7.5l-5-5-5 5h10z' fill='%23FFF'/%3E%3C/svg%3E\");\n}\n.mdui-theme-layout-dark .mdui-select-open.mdui-select-position-top,\n.mdui-theme-layout-dark .mdui-select-open.mdui-select-position-bottom {\n background-color: #424242;\n}\n.mdui-theme-layout-dark .mdui-select-open.mdui-select-position-top {\n border-top: 1px solid rgba(255, 255, 255, 0.12);\n}\n.mdui-theme-layout-dark .mdui-select-open.mdui-select-position-bottom {\n border-bottom: 1px solid rgba(255, 255, 255, 0.12);\n}\n.mdui-theme-layout-dark .mdui-select-menu {\n color: #fff;\n background-color: #424242;\n}\n.mdui-theme-layout-dark .mdui-select-menu-item:hover {\n background-color: #616161;\n}\n.mdui-theme-layout-dark .mdui-select-menu-item[disabled] {\n color: rgba(255, 255, 255, 0.5) !important;\n}\n.mdui-theme-layout-dark select.mdui-select {\n color: #FFF;\n background-color: #303030;\n}\n.mdui-theme-layout-dark select.mdui-select option {\n color: #FFF;\n background-color: #303030;\n}\n.mdui-theme-layout-dark select.mdui-select[multiple] {\n border: 1px solid rgba(255, 255, 255, 0.5);\n}\n.mdui-theme-layout-dark select.mdui-select[multiple] optgroup {\n color: rgba(255, 255, 255, 0.5);\n}\n.mdui-theme-layout-dark select.mdui-select[multiple] optgroup:not(:first-child) {\n border-top: 1px solid rgba(255, 255, 255, 0.12);\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-layout-auto .mdui-select {\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cpath d='M-.003 2.5l5 5 5-5h-10z' fill='%23FFF'/%3E%3C/svg%3E\");\n border-bottom: 1px solid rgba(255, 255, 255, 0.12);\n }\n .mdui-theme-layout-auto .mdui-select-position-top {\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cpath d='M10.003 7.5l-5-5-5 5h10z' fill='%23FFF'/%3E%3C/svg%3E\");\n }\n .mdui-theme-layout-auto .mdui-select-open.mdui-select-position-top,\n .mdui-theme-layout-auto .mdui-select-open.mdui-select-position-bottom {\n background-color: #424242;\n }\n .mdui-theme-layout-auto .mdui-select-open.mdui-select-position-top {\n border-top: 1px solid rgba(255, 255, 255, 0.12);\n }\n .mdui-theme-layout-auto .mdui-select-open.mdui-select-position-bottom {\n border-bottom: 1px solid rgba(255, 255, 255, 0.12);\n }\n .mdui-theme-layout-auto .mdui-select-menu {\n color: #fff;\n background-color: #424242;\n }\n .mdui-theme-layout-auto .mdui-select-menu-item:hover {\n background-color: #616161;\n }\n .mdui-theme-layout-auto .mdui-select-menu-item[disabled] {\n color: rgba(255, 255, 255, 0.5) !important;\n }\n .mdui-theme-layout-auto select.mdui-select {\n color: #FFF;\n background-color: #303030;\n }\n .mdui-theme-layout-auto select.mdui-select option {\n color: #FFF;\n background-color: #303030;\n }\n .mdui-theme-layout-auto select.mdui-select[multiple] {\n border: 1px solid rgba(255, 255, 255, 0.5);\n }\n .mdui-theme-layout-auto select.mdui-select[multiple] optgroup {\n color: rgba(255, 255, 255, 0.5);\n }\n .mdui-theme-layout-auto select.mdui-select[multiple] optgroup:not(:first-child) {\n border-top: 1px solid rgba(255, 255, 255, 0.12);\n }\n}\n/**\n * =============================================================================\n * ************ Toolbar 工具栏 ************\n * =============================================================================\n */\n.mdui-toolbar {\n display: flex;\n align-items: center;\n box-sizing: border-box;\n width: 100%;\n}\n.mdui-toolbar > * {\n margin: 0 16px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.mdui-toolbar[class*=\"mdui-color-\"]:not(.mdui-color-transparent) .mdui-btn:hover {\n background-color: rgba(255, 255, 255, 0.1);\n}\n.mdui-toolbar[class*=\"mdui-color-\"]:not(.mdui-color-transparent) .mdui-btn:active {\n background-color: rgba(255, 255, 255, 0.165);\n}\n.mdui-toolbar > a {\n color: inherit;\n text-decoration: none;\n user-select: none;\n}\n.mdui-toolbar > .mdui-btn-icon {\n width: 48px;\n min-width: 48px;\n height: 48px;\n}\n@media (orientation: landscape) and (max-width: 959.9px) {\n .mdui-toolbar > .mdui-btn-icon {\n width: 40px;\n min-width: 40px;\n height: 40px;\n }\n}\n.mdui-toolbar > .mdui-btn-icon .mdui-icon {\n height: 24px;\n line-height: 24px;\n}\n.mdui-toolbar .mdui-icon {\n color: inherit;\n}\n.mdui-toolbar-spacer {\n flex-grow: 1;\n margin: 0;\n}\n/* 手机 */\n.mdui-toolbar {\n height: 56px;\n line-height: 56px;\n}\n.mdui-toolbar > .mdui-btn {\n margin: 0 4px;\n}\n.mdui-toolbar > .mdui-btn + .mdui-btn {\n margin-left: 0;\n}\n@media (min-width: 600px) {\n .mdui-appbar .mdui-toolbar {\n height: 64px;\n line-height: 64px;\n }\n .mdui-appbar .mdui-toolbar > .mdui-btn {\n margin: 0 8px;\n }\n .mdui-appbar .mdui-toolbar > .mdui-btn + .mdui-btn {\n margin-left: 0;\n }\n}\n@media (orientation: landscape) and (max-width: 959.9px) {\n .mdui-appbar .mdui-toolbar {\n height: 48px;\n line-height: 48px;\n }\n .mdui-appbar .mdui-toolbar > .mdui-btn {\n margin: 0 4px;\n }\n .mdui-appbar .mdui-toolbar > .mdui-btn + .mdui-btn {\n margin-left: 0;\n }\n}\n/**\n * =============================================================================\n * ************ Appbar 应用栏 ************\n * =============================================================================\n */\n.mdui-appbar {\n z-index: 1000;\n box-shadow: 0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12);\n}\n/* appbar 固定在顶部 */\n.mdui-appbar-fixed {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n transition-duration: 0.3s;\n transition-property: left, right;\n will-change: left, right;\n}\n/* 左侧留出抽屉栏的距离 */\n@media (min-width: 1024px) {\n .mdui-drawer-body-left .mdui-appbar-inset.mdui-appbar-fixed {\n left: 240px;\n }\n}\n@media (min-width: 1024px) {\n .mdui-drawer-body-right .mdui-appbar-inset.mdui-appbar-fixed {\n right: 240px;\n }\n}\n/* 含工具栏 */\n.mdui-appbar-with-toolbar {\n padding-top: 56px;\n}\n@media (min-width: 600px) {\n .mdui-appbar-with-toolbar {\n padding-top: 64px;\n }\n}\n@media (orientation: landscape) and (max-width: 959.9px) {\n .mdui-appbar-with-toolbar {\n padding-top: 48px;\n }\n}\n/* 含 Tab */\n.mdui-appbar-with-tab {\n padding-top: 48px;\n}\n/* 含大 Tab */\n.mdui-appbar-with-tab-larger {\n padding-top: 72px;\n}\n/* 含工具栏和 Tab */\n.mdui-appbar-with-toolbar.mdui-appbar-with-tab {\n padding-top: 104px;\n}\n@media (min-width: 600px) {\n .mdui-appbar-with-toolbar.mdui-appbar-with-tab {\n padding-top: 112px;\n }\n}\n@media (orientation: landscape) and (max-width: 959.9px) {\n .mdui-appbar-with-toolbar.mdui-appbar-with-tab {\n padding-top: 96px;\n }\n}\n/* 含工具栏和大 Tab */\n.mdui-appbar-with-toolbar.mdui-appbar-with-tab-larger {\n padding-top: 128px;\n}\n@media (min-width: 600px) {\n .mdui-appbar-with-toolbar.mdui-appbar-with-tab-larger {\n padding-top: 136px;\n }\n}\n@media (orientation: landscape) and (max-width: 959.9px) {\n .mdui-appbar-with-toolbar.mdui-appbar-with-tab-larger {\n padding-top: 120px;\n }\n}\n/**\n * =============================================================================\n * ************ Appbar dark ************\n * =============================================================================\n */\n.mdui-theme-layout-dark .mdui-appbar > [class*=\"mdui-color-\"]:not(.mdui-color-transparent) {\n color: #fff !important;\n background-color: #212121 !important;\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-layout-auto .mdui-appbar > [class*=\"mdui-color-\"]:not(.mdui-color-transparent) {\n color: #fff !important;\n background-color: #212121 !important;\n }\n}\n/**\n * =============================================================================\n * ************ Card 卡片 ************\n * =============================================================================\n */\n/* 卡片 */\n.mdui-card {\n position: relative;\n box-sizing: border-box;\n overflow: hidden;\n color: #000;\n background-color: #fff;\n border-radius: 2px;\n box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\n}\n/**\n * ===================== 头部,包含头像、标题、副标题\n */\n.mdui-card-header {\n position: relative;\n box-sizing: border-box;\n height: 72px;\n padding: 16px;\n}\n/* 卡片头部头像 */\n.mdui-card-header-avatar {\n float: left;\n width: 40px;\n height: 40px;\n border-radius: 50%;\n}\n/* 卡片头部标题 */\n.mdui-card-header-title {\n display: block;\n margin-left: 52px;\n font-weight: 500;\n font-size: 16px;\n line-height: 20px;\n opacity: 0.87;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n/* 卡片头部副标题 */\n.mdui-card-header-subtitle {\n display: block;\n margin-left: 52px;\n font-weight: 400;\n font-size: 14px;\n line-height: 20px;\n opacity: 0.54;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n/**\n * =========================== 主标题区域\n */\n.mdui-card-primary {\n position: relative;\n padding: 24px 16px 16px 16px;\n}\n/* 主标题区域标题 */\n.mdui-card-primary-title {\n display: block;\n font-size: 24px;\n line-height: 36px;\n opacity: 0.87;\n}\n/* 主标题区域副标题 */\n.mdui-card-primary-subtitle {\n display: block;\n font-size: 14px;\n line-height: 24px;\n opacity: 0.54;\n}\n/**\n * ============================ 内容区域\n */\n.mdui-card-content {\n position: relative;\n padding: 16px;\n font-size: 14px;\n line-height: 24px;\n}\n/**\n * ============================ 卡片菜单\n */\n.mdui-card-menu {\n position: absolute;\n top: 16px;\n right: 16px;\n z-index: 1;\n}\n.mdui-card-menu .mdui-btn {\n margin-left: 8px;\n}\n/**\n * =========================== 按钮区域\n */\n.mdui-card-actions {\n position: relative;\n box-sizing: border-box;\n padding: 8px;\n}\n.mdui-card-actions::before,\n.mdui-card-actions::after {\n display: table;\n content: ' ';\n}\n.mdui-card-actions::after {\n clear: both;\n}\n.mdui-card-actions::before,\n.mdui-card-actions::after {\n display: table;\n content: ' ';\n}\n.mdui-card-actions::after {\n clear: both;\n}\n.mdui-card-actions .mdui-btn {\n max-width: 100%;\n margin: 0 8px 0 0;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.mdui-card-actions .mdui-btn-icon {\n width: 36px;\n height: 36px;\n margin: 0 8px;\n}\n/* 使按钮竖向排列 */\n.mdui-card-actions-stacked .mdui-btn {\n display: block;\n margin: 0 0 4px 0;\n}\n.mdui-card-actions-stacked .mdui-btn:last-child {\n margin: 0;\n}\n/**\n * ============================= 媒体元素区域\n */\n.mdui-card-media {\n position: relative;\n}\n.mdui-card-media img,\n.mdui-card-media video {\n display: block;\n width: 100%;\n}\n/* 覆盖在媒体元素上的内容 */\n.mdui-card-media-covered {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n color: #fff;\n background: rgba(0, 0, 0, 0.2);\n /* 覆盖在媒体元素上的标题 */\n}\n.mdui-card-media-covered .mdui-card-primary-title {\n opacity: 1;\n}\n.mdui-card-media-covered .mdui-card-primary-subtitle {\n opacity: 0.7;\n}\n/* 覆盖在媒体元素顶部 */\n.mdui-card-media-covered-top {\n top: 0;\n bottom: auto;\n}\n/* 覆盖层透明 */\n.mdui-card-media-covered-transparent {\n background: transparent;\n}\n/* 覆盖层渐变 */\n.mdui-card-media-covered-gradient {\n background: linear-gradient(to top, rgba(0, 0, 0, 0.26), rgba(0, 0, 0, 0));\n}\n.mdui-card-media-covered-gradient.mdui-card-media-covered-top {\n background: linear-gradient(to bottom, rgba(0, 0, 0, 0.26), rgba(0, 0, 0, 0));\n}\n/**\n * =============================================================================\n * ************ Card dark ************\n * =============================================================================\n */\n.mdui-theme-layout-dark .mdui-card {\n color: #fff;\n background-color: #424242;\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-layout-auto .mdui-card {\n color: #fff;\n background-color: #424242;\n }\n}\n/**\n * =============================================================================\n * ************ Tab ************\n * =============================================================================\n *\n * 在手机上选项卡始终平分或可滚动,在平板以上的设备上默认左对齐,可以选择居中对齐,或全宽等分\n */\n/* 选项卡,默认的选项卡为全宽 */\n.mdui-tab {\n position: relative;\n display: flex;\n min-height: 48px;\n max-height: 72px;\n margin: 0 auto;\n padding: 0;\n overflow-x: auto;\n overflow-y: hidden;\n white-space: nowrap;\n -webkit-overflow-scrolling: touch;\n}\n.mdui-tab a {\n display: flex;\n flex: 1;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n min-width: 72px;\n min-height: 48px;\n max-height: 72px;\n padding: 12px;\n overflow: hidden;\n color: inherit;\n font-size: 14px;\n text-align: center;\n text-transform: uppercase;\n text-decoration: none;\n text-overflow: ellipsis;\n outline: none;\n cursor: pointer;\n opacity: 0.7;\n user-select: none;\n}\n.mdui-tab a .mdui-icon {\n opacity: 0.7;\n}\n@media (min-width: 600px) {\n .mdui-tab a {\n flex: none;\n min-width: 99px;\n max-width: 264px;\n padding: 12px 24px;\n }\n}\n@media (min-width: 1024px) {\n .mdui-tab a {\n min-width: 112px;\n }\n}\n@media (min-width: 1440px) {\n .mdui-tab a {\n min-width: 136px;\n }\n}\n@media (min-width: 1920px) {\n .mdui-tab a {\n min-width: 160px;\n }\n}\n.mdui-tab a label {\n display: block;\n width: 100%;\n cursor: pointer;\n}\n.mdui-tab a .mdui-icon + label {\n margin-top: 8px;\n}\n.mdui-tab a[disabled] {\n cursor: default;\n opacity: 0.38;\n}\n.mdui-tab a[disabled] label {\n cursor: default;\n}\n.mdui-tab .mdui-tab-active {\n color: #3F51B5;\n opacity: 1;\n}\n.mdui-tab .mdui-tab-active .mdui-icon {\n opacity: 1;\n}\n/* 选项卡居中 */\n@media (min-width: 600px) {\n .mdui-tab-centered::before {\n flex-grow: 1;\n content: ' ';\n }\n .mdui-tab-centered::after {\n flex-grow: 1;\n content: ' ';\n }\n .mdui-tab-centered a {\n flex: none;\n }\n}\n/* 选项卡始终全宽等分 */\n.mdui-tab-full-width a {\n flex: 1;\n max-width: none;\n}\n/* 可横向滚动的选项卡 */\n.mdui-tab-scrollable {\n padding-left: 56px;\n}\n.mdui-tab-scrollable a {\n flex: none;\n}\n@media (max-width: 599.9px) {\n .mdui-tab-scrollable {\n padding-left: 60px;\n }\n}\n/* 下划线指示器 */\n.mdui-tab-indicator {\n position: absolute;\n bottom: 0;\n height: 2px;\n background-color: #3F51B5;\n transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1);\n will-change: left, width;\n}\n/**\n * =============================================================================\n * ************ Tab 主色 ************\n * =============================================================================\n */\n.mdui-theme-primary-amber .mdui-tab .mdui-tab-active {\n color: #FFC107;\n}\n.mdui-theme-primary-amber .mdui-tab-indicator {\n background-color: #FFC107;\n}\n.mdui-theme-primary-blue .mdui-tab .mdui-tab-active {\n color: #2196F3;\n}\n.mdui-theme-primary-blue .mdui-tab-indicator {\n background-color: #2196F3;\n}\n.mdui-theme-primary-blue-grey .mdui-tab .mdui-tab-active {\n color: #607D8B;\n}\n.mdui-theme-primary-blue-grey .mdui-tab-indicator {\n background-color: #607D8B;\n}\n.mdui-theme-primary-brown .mdui-tab .mdui-tab-active {\n color: #795548;\n}\n.mdui-theme-primary-brown .mdui-tab-indicator {\n background-color: #795548;\n}\n.mdui-theme-primary-cyan .mdui-tab .mdui-tab-active {\n color: #00BCD4;\n}\n.mdui-theme-primary-cyan .mdui-tab-indicator {\n background-color: #00BCD4;\n}\n.mdui-theme-primary-deep-orange .mdui-tab .mdui-tab-active {\n color: #FF5722;\n}\n.mdui-theme-primary-deep-orange .mdui-tab-indicator {\n background-color: #FF5722;\n}\n.mdui-theme-primary-deep-purple .mdui-tab .mdui-tab-active {\n color: #673AB7;\n}\n.mdui-theme-primary-deep-purple .mdui-tab-indicator {\n background-color: #673AB7;\n}\n.mdui-theme-primary-green .mdui-tab .mdui-tab-active {\n color: #4CAF50;\n}\n.mdui-theme-primary-green .mdui-tab-indicator {\n background-color: #4CAF50;\n}\n.mdui-theme-primary-grey .mdui-tab .mdui-tab-active {\n color: #9E9E9E;\n}\n.mdui-theme-primary-grey .mdui-tab-indicator {\n background-color: #9E9E9E;\n}\n.mdui-theme-primary-indigo .mdui-tab .mdui-tab-active {\n color: #3F51B5;\n}\n.mdui-theme-primary-indigo .mdui-tab-indicator {\n background-color: #3F51B5;\n}\n.mdui-theme-primary-light-blue .mdui-tab .mdui-tab-active {\n color: #03A9F4;\n}\n.mdui-theme-primary-light-blue .mdui-tab-indicator {\n background-color: #03A9F4;\n}\n.mdui-theme-primary-light-green .mdui-tab .mdui-tab-active {\n color: #8BC34A;\n}\n.mdui-theme-primary-light-green .mdui-tab-indicator {\n background-color: #8BC34A;\n}\n.mdui-theme-primary-lime .mdui-tab .mdui-tab-active {\n color: #CDDC39;\n}\n.mdui-theme-primary-lime .mdui-tab-indicator {\n background-color: #CDDC39;\n}\n.mdui-theme-primary-orange .mdui-tab .mdui-tab-active {\n color: #FF9800;\n}\n.mdui-theme-primary-orange .mdui-tab-indicator {\n background-color: #FF9800;\n}\n.mdui-theme-primary-pink .mdui-tab .mdui-tab-active {\n color: #E91E63;\n}\n.mdui-theme-primary-pink .mdui-tab-indicator {\n background-color: #E91E63;\n}\n.mdui-theme-primary-purple .mdui-tab .mdui-tab-active {\n color: #9C27B0;\n}\n.mdui-theme-primary-purple .mdui-tab-indicator {\n background-color: #9C27B0;\n}\n.mdui-theme-primary-red .mdui-tab .mdui-tab-active {\n color: #F44336;\n}\n.mdui-theme-primary-red .mdui-tab-indicator {\n background-color: #F44336;\n}\n.mdui-theme-primary-teal .mdui-tab .mdui-tab-active {\n color: #009688;\n}\n.mdui-theme-primary-teal .mdui-tab-indicator {\n background-color: #009688;\n}\n.mdui-theme-primary-yellow .mdui-tab .mdui-tab-active {\n color: #FFEB3B;\n}\n.mdui-theme-primary-yellow .mdui-tab-indicator {\n background-color: #FFEB3B;\n}\n/* 带背景色的选项卡 */\n.mdui-tab[class*=\"mdui-color-\"]:not(.mdui-color-white) .mdui-tab-active {\n color: inherit;\n}\n.mdui-tab[class*=\"mdui-color-\"]:not(.mdui-color-white) .mdui-tab-indicator {\n background-color: #FFFFFF;\n}\n.mdui-tab[class*=\"mdui-color-\"]:not(.mdui-color-white)::-webkit-scrollbar {\n width: 5px;\n height: 5px;\n background: transparent;\n}\n@media (min-width: 1024px) {\n .mdui-tab[class*=\"mdui-color-\"]:not(.mdui-color-white)::-webkit-scrollbar {\n width: 8px;\n height: 8px;\n }\n}\n.mdui-tab[class*=\"mdui-color-\"]:not(.mdui-color-white)::-webkit-scrollbar-thumb {\n background: rgba(255, 255, 255, 0.3);\n}\n/**\n * =============================================================================\n * ************ Subheader 副标题 ************\n * =============================================================================\n *\n * 用于 List 和 Grid list 组件\n */\n.mdui-subheader,\n.mdui-subheader-inset {\n position: relative;\n box-sizing: border-box;\n height: 48px;\n padding-right: 16px;\n padding-left: 16px;\n color: rgba(0, 0, 0, 0.54);\n font-weight: 500;\n font-size: 14px;\n line-height: 48px;\n cursor: default;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.mdui-subheader-inset {\n padding-left: 72px;\n}\n/**\n * =============================================================================\n * ************ Subheader dark ************\n * =============================================================================\n */\n.mdui-theme-layout-dark .mdui-subheader,\n.mdui-theme-layout-dark .mdui-subheader-inset {\n color: rgba(255, 255, 255, 0.7);\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-layout-auto .mdui-subheader,\n .mdui-theme-layout-auto .mdui-subheader-inset {\n color: rgba(255, 255, 255, 0.7);\n }\n}\n/**\n * =============================================================================\n * ************ Grid List 网格列表 ************\n * =============================================================================\n */\n/* 调整网格边距 */\n.mdui-grid-list {\n margin: 0 -2px;\n}\n.mdui-grid-list .mdui-col,\n.mdui-grid-list [class*=\"mdui-col-xs-\"],\n.mdui-grid-list [class*=\"mdui-col-sm-\"],\n.mdui-grid-list [class*=\"mdui-col-md-\"],\n.mdui-grid-list [class*=\"mdui-col-lg-\"],\n.mdui-grid-list [class*=\"mdui-col-xl-\"] {\n padding-right: 2px;\n padding-left: 2px;\n}\n/* 单元格 */\n.mdui-grid-tile {\n position: relative;\n box-sizing: border-box;\n margin-bottom: 4px;\n overflow: hidden;\n}\n.mdui-grid-tile img {\n display: block;\n width: 100%;\n}\n/* 操作栏 */\n.mdui-grid-tile-actions {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n display: flex;\n align-items: center;\n box-sizing: border-box;\n min-height: 48px;\n max-height: 68px;\n padding: 16px;\n color: #fff;\n background: rgba(0, 0, 0, 0.2);\n}\n.mdui-grid-tile-actions .mdui-icon {\n color: #fff;\n}\n/* 操作栏内的文本 */\n.mdui-grid-tile-text {\n flex: 1;\n overflow: hidden;\n}\n/* 标题 */\n.mdui-grid-tile-title {\n height: 16px;\n font-size: 16px;\n line-height: 16px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.mdui-grid-tile-title .mdui-icon {\n margin-right: 8px;\n}\n/* 副标题 */\n.mdui-grid-tile-subtitle {\n height: 18px;\n margin-top: 4px;\n font-size: 12px;\n line-height: 18px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.mdui-grid-tile-subtitle .mdui-icon {\n margin-right: 8px;\n font-size: 18px;\n}\n/* 操作栏内的按钮 */\n.mdui-grid-tile-buttons {\n flex: none;\n margin: -8px;\n white-space: nowrap;\n}\n.mdui-grid-tile-buttons .mdui-btn {\n margin-left: 8px;\n}\n.mdui-grid-tile-buttons .mdui-btn:first-child {\n margin-left: 0;\n}\n.mdui-grid-tile-text + .mdui-grid-tile-buttons {\n margin-left: 8px;\n}\n.mdui-grid-tile-buttons + .mdui-grid-tile-text {\n margin-left: 16px;\n}\n/* 操作栏位于顶部 */\n.mdui-grid-tile-actions-top {\n top: 0;\n bottom: auto;\n}\n/* 操作栏背景透明 */\n.mdui-grid-tile-actions-transparent {\n background: transparent;\n}\n/* 操作栏背景渐变 */\n.mdui-grid-tile-actions-gradient {\n background: linear-gradient(to top, rgba(0, 0, 0, 0.26), rgba(0, 0, 0, 0));\n}\n.mdui-grid-tile-actions-gradient.mdui-grid-tile-actions-top {\n background: linear-gradient(to bottom, rgba(0, 0, 0, 0.26), rgba(0, 0, 0, 0));\n}\n/**\n * =============================================================================\n * ************ List 列表 ************\n * =============================================================================\n */\n/* 列表 */\n.mdui-list {\n margin: 0;\n padding: 8px 0;\n list-style: none;\n background-color: transparent;\n}\n.mdui-list .mdui-list {\n padding: 0;\n}\n.mdui-list > .mdui-divider,\n.mdui-list > .mdui-divider-light,\n.mdui-list > .mdui-divider-dark,\n.mdui-list > .mdui-divider-inset,\n.mdui-list > .mdui-divider-inset-light,\n.mdui-list > .mdui-divider-inset-dark {\n margin-top: 8px;\n margin-bottom: 8px;\n}\n.mdui-list a {\n color: inherit;\n text-decoration: none;\n}\n.mdui-list .mdui-subheader,\n.mdui-list .mdui-subheader-inset {\n margin-top: 8px;\n}\n.mdui-list .mdui-subheader::before,\n.mdui-list .mdui-subheader-inset::before {\n position: absolute;\n right: 0;\n left: 0;\n display: block;\n height: 1px;\n background-color: rgba(0, 0, 0, 0.12);\n content: ' ';\n}\n.mdui-list .mdui-subheader:first-child,\n.mdui-list .mdui-subheader-inset:first-child {\n margin-top: -8px;\n}\n.mdui-list .mdui-subheader:first-child::before,\n.mdui-list .mdui-subheader-inset:first-child::before {\n background-color: transparent;\n}\n.mdui-list .mdui-subheader-inset::before {\n left: 72px;\n}\n/* 列表项 */\n.mdui-list-item {\n display: flex;\n align-items: center;\n box-sizing: border-box;\n min-height: 48px;\n padding: 0 16px;\n text-decoration: none;\n cursor: pointer;\n transition: background-color 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n}\n.mdui-list-item:hover {\n background-color: rgba(0, 0, 0, 0.08);\n}\n.mdui-list-item::after {\n height: 48px;\n visibility: hidden;\n content: ' ';\n}\n/* 列表项图标 */\n.mdui-list-item-icon {\n width: 24px;\n min-width: 24px;\n height: 24px;\n color: rgba(0, 0, 0, 0.54);\n}\n/* 列表项头像 */\n.mdui-list-item-avatar {\n min-width: 40px;\n max-width: 40px;\n height: 40px;\n margin-top: 8px;\n margin-bottom: 8px;\n color: #FFFFFF;\n line-height: 40px;\n text-align: center;\n background-color: #BDBDBD;\n border-radius: 50%;\n}\n.mdui-list-item-avatar img {\n width: 100%;\n height: 100%;\n border-radius: 50%;\n}\n/* 列表项内容 */\n.mdui-list-item-content {\n flex-grow: 1;\n padding-top: 14px;\n padding-bottom: 14px;\n font-weight: 400;\n font-size: 16px;\n line-height: 20px;\n}\n/* 列表项内容的副内容 */\n.mdui-list-item-text {\n font-size: 14px;\n opacity: 0.54;\n}\n.mdui-list-item-title ~ .mdui-list-item-text {\n margin-top: 4px;\n}\n/* 激活状态的列表项 */\n.mdui-list-item-active {\n font-weight: 700;\n background-color: rgba(0, 0, 0, 0.08);\n}\n.mdui-list-item-active .mdui-list-item-content {\n font-weight: 700;\n}\n.mdui-list-item-active .mdui-list-item-text {\n font-weight: 400;\n}\n/* 限制文本高度 */\n.mdui-list-item-one-line,\n.mdui-list-item-two-line,\n.mdui-list-item-three-line {\n display: -webkit-box;\n overflow: hidden;\n text-overflow: ellipsis;\n -webkit-box-orient: vertical;\n}\n.mdui-list-item-one-line {\n -webkit-line-clamp: 1;\n height: 20px;\n}\n.mdui-list-item-two-line {\n -webkit-line-clamp: 2;\n height: 40px;\n}\n.mdui-list-item-three-line {\n -webkit-line-clamp: 3;\n height: 60px;\n}\n/* 列表项内的元素间添加间距 */\n.mdui-list-item-icon ~ .mdui-list-item-content {\n margin-left: 32px;\n}\n.mdui-checkbox ~ .mdui-list-item-content,\n.mdui-radio ~ .mdui-list-item-content,\n.mdui-switch ~ .mdui-list-item-content {\n margin-left: 20px;\n}\n.mdui-list-item-avatar ~ .mdui-list-item-content {\n margin-left: 16px;\n}\n.mdui-list-item-content ~ .mdui-list-item-icon,\n.mdui-list-item-content ~ .mdui-list-item-avatar,\n.mdui-list-item-content ~ .mdui-checkbox,\n.mdui-list-item-content ~ .mdui-radio,\n.mdui-list-item-content ~ .mdui-switch {\n margin-left: 16px;\n}\n.mdui-list-item-content ~ .mdui-checkbox,\n.mdui-list-item-content ~ .mdui-radio {\n padding-left: 24px;\n}\n/* 密集型列表 */\n.mdui-list-dense {\n padding: 4px 0;\n font-size: 13px;\n}\n.mdui-list-dense > .mdui-divider,\n.mdui-list-dense > .mdui-divider-light,\n.mdui-list-dense > .mdui-divider-dark,\n.mdui-list-dense > .mdui-divider-inset,\n.mdui-list-dense > .mdui-divider-inset-light,\n.mdui-list-dense > .mdui-divider-inset-dark {\n margin-top: 4px;\n margin-bottom: 4px;\n}\n.mdui-list-dense .mdui-subheader,\n.mdui-list-dense .mdui-subheader-inset {\n height: 40px;\n margin-top: 4px;\n font-size: 12px;\n line-height: 40px;\n}\n.mdui-list-dense .mdui-subheader:first-child,\n.mdui-list-dense .mdui-subheader-inset:first-child {\n margin-top: -4px;\n}\n.mdui-list-dense .mdui-list-item {\n min-height: 40px;\n}\n.mdui-list-dense .mdui-list-item::after {\n height: 40px;\n}\n.mdui-list-dense .mdui-list-item-icon {\n width: 20px;\n height: 20px;\n font-size: 20px;\n}\n.mdui-list-dense .mdui-list-item-avatar {\n width: 36px;\n min-width: 36px;\n height: 36px;\n min-height: 36px;\n}\n.mdui-list-dense .mdui-list-item-content {\n padding-top: 11px;\n padding-bottom: 11px;\n font-size: 13px;\n line-height: 18px;\n}\n.mdui-list-dense .mdui-list-item-text {\n font-size: 13px;\n}\n.mdui-list-dense .mdui-list-item-title ~ .mdui-list-item-text {\n margin-top: 2px;\n}\n.mdui-list-dense .mdui-list-item-one-line {\n height: 18px;\n}\n.mdui-list-dense .mdui-list-item-two-line {\n height: 36px;\n}\n.mdui-list-dense .mdui-list-item-three-line {\n height: 54px;\n}\n/**\n * =============================================================================\n * ************ List dark ************\n * =============================================================================\n */\n.mdui-theme-layout-dark .mdui-list .mdui-subheader::before,\n.mdui-theme-layout-dark .mdui-list .mdui-subheader-inset::before {\n background-color: rgba(255, 255, 255, 0.12);\n}\n.mdui-theme-layout-dark .mdui-list .mdui-subheader:first-child::before,\n.mdui-theme-layout-dark .mdui-list .mdui-subheader-inset:first-child::before {\n background-color: transparent;\n}\n.mdui-theme-layout-dark .mdui-list-item {\n color: #ffffff;\n}\n.mdui-theme-layout-dark .mdui-list-item:hover {\n background-color: rgba(255, 255, 255, 0.08);\n}\n.mdui-theme-layout-dark .mdui-list-item-icon {\n color: #ffffff;\n}\n.mdui-theme-layout-dark .mdui-list-item-text {\n opacity: 0.7;\n}\n.mdui-theme-layout-dark .mdui-list-item-active {\n background-color: rgba(255, 255, 255, 0.08);\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-layout-auto .mdui-list .mdui-subheader::before,\n .mdui-theme-layout-auto .mdui-list .mdui-subheader-inset::before {\n background-color: rgba(255, 255, 255, 0.12);\n }\n .mdui-theme-layout-auto .mdui-list .mdui-subheader:first-child::before,\n .mdui-theme-layout-auto .mdui-list .mdui-subheader-inset:first-child::before {\n background-color: transparent;\n }\n .mdui-theme-layout-auto .mdui-list-item {\n color: #ffffff;\n }\n .mdui-theme-layout-auto .mdui-list-item:hover {\n background-color: rgba(255, 255, 255, 0.08);\n }\n .mdui-theme-layout-auto .mdui-list-item-icon {\n color: #ffffff;\n }\n .mdui-theme-layout-auto .mdui-list-item-text {\n opacity: 0.7;\n }\n .mdui-theme-layout-auto .mdui-list-item-active {\n background-color: rgba(255, 255, 255, 0.08);\n }\n}\n/**\n * ==============================================================================\n * ************ List inner theme ************\n * ==============================================================================\n */\n[class*=\"mdui-color-\"] .mdui-list-item {\n color: inherit;\n}\n[class*=\"mdui-color-\"] .mdui-list-item-icon {\n color: inherit;\n}\n/**\n * =============================================================================\n * ************ Drawer 抽屉栏导航 ************\n * =============================================================================\n */\n/* DOM 加载完后再添加 transition */\nbody.mdui-loaded {\n transition: padding 0.3s cubic-bezier(0, 0, 0.2, 1);\n}\nbody.mdui-loaded .mdui-drawer {\n transition: all 0.3s cubic-bezier(0, 0, 0.2, 1);\n}\n/* 抽屉栏外层,默认出现在左侧且隐藏 */\n.mdui-drawer {\n position: fixed;\n top: 0;\n bottom: 0;\n left: 0;\n z-index: 5000;\n box-sizing: border-box;\n /* stylelint-disable-next-line */\n width: calc(100% - 56px);\n max-width: 280px;\n margin: 0;\n overflow-x: hidden;\n overflow-y: auto;\n white-space: nowrap;\n will-change: transform;\n -webkit-overflow-scrolling: touch;\n}\n@media (max-width: 1023.9px) {\n .mdui-drawer:not(.mdui-drawer-open) {\n box-shadow: none !important;\n }\n}\n@media (min-width: 600px) {\n .mdui-drawer {\n /* stylelint-disable-next-line */\n width: calc(100% - 64px);\n max-width: 320px;\n }\n}\n@media (min-width: 1024px) {\n .mdui-drawer {\n width: 240px;\n max-width: none;\n }\n .mdui-drawer.mdui-drawer-close {\n box-shadow: none !important;\n }\n}\n/* 出现在右侧的抽屉栏 */\n.mdui-drawer-right {\n right: 0;\n left: auto;\n}\n/* 平板上的样式 */\n@media (max-width: 1023.9px) {\n .mdui-drawer {\n /* 始终有背景和阴影 */\n background-color: #fff;\n /* 默认隐藏 */\n transform: translateX(-330px);\n box-shadow: 0 8px 10px -5px rgba(0, 0, 0, 0.2), 0 16px 24px 2px rgba(0, 0, 0, 0.14), 0 6px 30px 5px rgba(0, 0, 0, 0.12);\n }\n .mdui-drawer-right {\n /* 右侧 drawer 也默认隐藏 */\n transform: translateX(330px);\n }\n}\n/* 手机上的样式 */\n@media (max-width: 599.9px) {\n .mdui-drawer {\n transform: translateX(-290px);\n }\n .mdui-drawer-right {\n transform: translateX(290px);\n }\n}\n/* 强制隐藏抽屉栏 */\n.mdui-drawer-close {\n transform: translateX(-290px);\n}\n.mdui-drawer-close.mdui-drawer-right {\n transform: translateX(290px);\n}\n@media (min-width: 600px) {\n .mdui-drawer-close {\n transform: translateX(-330px);\n }\n .mdui-drawer-close.mdui-drawer-right {\n transform: translateX(330px);\n }\n}\n@media (min-width: 1024px) {\n .mdui-drawer-close {\n transform: translateX(-250px);\n }\n .mdui-drawer-close.mdui-drawer-right {\n transform: translateX(250px);\n }\n}\n/* 强制显示抽屉栏 */\n.mdui-drawer-open {\n transform: translateX(0) !important;\n}\n/* PC 上的样式 */\n@media (min-width: 1024px) {\n /* 使该类所在元素获得 padding-left 或 padding-right,避免被抽屉栏覆盖住页面 */\n .mdui-drawer-body-left {\n padding-left: 240px;\n }\n .mdui-drawer-body-right {\n padding-right: 240px;\n }\n /* PC 上默认有上边距 */\n .mdui-appbar-with-toolbar .mdui-drawer {\n top: 64px;\n }\n .mdui-appbar-with-tab .mdui-drawer {\n top: 48px;\n }\n .mdui-appbar-with-tab-larger .mdui-drawer {\n top: 72px;\n }\n .mdui-appbar-with-toolbar.mdui-appbar-with-tab .mdui-drawer {\n top: 112px;\n }\n .mdui-appbar-with-toolbar.mdui-appbar-with-tab-larger .mdui-drawer {\n top: 136px;\n }\n}\n/* 抽屉栏不是透明时添加阴影 */\n.mdui-drawer[class*=\"mdui-color-\"]:not(.mdui-color-transparent) {\n box-shadow: 0 8px 10px -5px rgba(0, 0, 0, 0.2), 0 16px 24px 2px rgba(0, 0, 0, 0.14), 0 6px 30px 5px rgba(0, 0, 0, 0.12);\n}\n/* 抽屉栏 100% 高度,覆盖在导航栏上面 */\n.mdui-drawer-full-height {\n top: 0 !important;\n}\n/**\n * =============================================================================\n * ************ Drawer dark ************\n * =============================================================================\n */\n@media (max-width: 1023.9px) {\n .mdui-theme-layout-dark .mdui-drawer {\n background-color: #424242;\n }\n}\n@media (prefers-color-scheme: dark) and (max-width: 1023.9px) {\n .mdui-theme-layout-auto .mdui-drawer {\n background-color: #424242;\n }\n}\n/**\n * =============================================================================\n * ************ Dialog 提示框 ************\n * =============================================================================\n */\n.mdui-dialog {\n position: fixed;\n right: 0;\n left: 0;\n z-index: 6000;\n display: none;\n box-sizing: border-box;\n width: 92%;\n min-width: 180px;\n max-width: 728px;\n max-height: 90%;\n margin: auto;\n overflow: hidden;\n color: #000;\n background-color: #fff;\n border-radius: 2px;\n transform: scale(0.95);\n opacity: 0;\n transition-duration: 0.3s;\n transition-property: transform, opacity, visibility;\n will-change: top, opacity, transform;\n box-shadow: 0 11px 15px -7px rgba(0, 0, 0, 0.2), 0 24px 38px 3px rgba(0, 0, 0, 0.14), 0 9px 46px 8px rgba(0, 0, 0, 0.12);\n}\n@media (min-width: 600px) {\n .mdui-dialog {\n width: 85%;\n max-height: 85%;\n }\n}\n@media (min-width: 1024px) {\n .mdui-dialog {\n width: 80%;\n max-height: 80%;\n }\n}\n/* 打开提示框 */\n.mdui-dialog-open {\n transform: scale(1);\n opacity: 1;\n}\n/* 提示框标题 */\n.mdui-dialog-title {\n box-sizing: border-box;\n font-weight: 500;\n font-size: 20px;\n line-height: 24px;\n text-align: left;\n}\n/* 标题固定在顶部 */\n.mdui-dialog > .mdui-dialog-title {\n padding: 24px 24px 20px 24px;\n}\n/* 提示框内容 */\n.mdui-dialog-content {\n box-sizing: border-box;\n padding: 24px;\n overflow-y: auto;\n color: rgba(0, 0, 0, 0.7);\n font-size: 15px;\n line-height: 1.5;\n -webkit-overflow-scrolling: touch;\n}\n/* 标题随内容滚动 */\n.mdui-dialog-content > .mdui-dialog-title {\n padding-bottom: 20px;\n}\n.mdui-dialog-title + .mdui-dialog-content {\n padding-top: 0;\n}\n/* 提示框底部按钮 */\n.mdui-dialog-actions {\n box-sizing: border-box;\n padding: 8px;\n text-align: right;\n}\n.mdui-dialog-actions .mdui-btn {\n min-width: 64px;\n margin-left: 8px;\n color: #E91E63;\n}\n.mdui-dialog-actions .mdui-btn:first-child {\n margin-left: 0;\n}\n/* 底部按钮滚随内容动 */\n.mdui-dialog-content > .mdui-dialog-actions {\n margin: 0 -24px -24px -24px;\n padding-top: 32px;\n}\n/* 使提示框底部按钮竖排 */\n.mdui-dialog-actions-stacked {\n padding: 8px 0 8px 0;\n}\n.mdui-dialog-actions-stacked .mdui-btn {\n width: 100%;\n height: 48px;\n margin: 0;\n line-height: 48px !important;\n text-align: right;\n border-radius: 0;\n}\n/**\n * =============================================================================\n * ************ Dialog 强调色 ************\n * =============================================================================\n */\n.mdui-theme-accent-amber .mdui-dialog-actions .mdui-btn {\n color: #FFC107;\n}\n.mdui-theme-accent-blue .mdui-dialog-actions .mdui-btn {\n color: #2196F3;\n}\n.mdui-theme-accent-cyan .mdui-dialog-actions .mdui-btn {\n color: #00BCD4;\n}\n.mdui-theme-accent-deep-orange .mdui-dialog-actions .mdui-btn {\n color: #FF5722;\n}\n.mdui-theme-accent-deep-purple .mdui-dialog-actions .mdui-btn {\n color: #673AB7;\n}\n.mdui-theme-accent-green .mdui-dialog-actions .mdui-btn {\n color: #4CAF50;\n}\n.mdui-theme-accent-indigo .mdui-dialog-actions .mdui-btn {\n color: #3F51B5;\n}\n.mdui-theme-accent-light-blue .mdui-dialog-actions .mdui-btn {\n color: #03A9F4;\n}\n.mdui-theme-accent-light-green .mdui-dialog-actions .mdui-btn {\n color: #8BC34A;\n}\n.mdui-theme-accent-lime .mdui-dialog-actions .mdui-btn {\n color: #CDDC39;\n}\n.mdui-theme-accent-orange .mdui-dialog-actions .mdui-btn {\n color: #FF9800;\n}\n.mdui-theme-accent-pink .mdui-dialog-actions .mdui-btn {\n color: #E91E63;\n}\n.mdui-theme-accent-purple .mdui-dialog-actions .mdui-btn {\n color: #9C27B0;\n}\n.mdui-theme-accent-red .mdui-dialog-actions .mdui-btn {\n color: #F44336;\n}\n.mdui-theme-accent-teal .mdui-dialog-actions .mdui-btn {\n color: #009688;\n}\n.mdui-theme-accent-yellow .mdui-dialog-actions .mdui-btn {\n color: #FFEB3B;\n}\n/**\n * =============================================================================\n * ************ Dialog dark ************\n * =============================================================================\n */\n.mdui-theme-layout-dark .mdui-dialog {\n color: #fff;\n background-color: #424242;\n}\n.mdui-theme-layout-dark .mdui-dialog-content {\n color: rgba(255, 255, 255, 0.7);\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-layout-auto .mdui-dialog {\n color: #fff;\n background-color: #424242;\n }\n .mdui-theme-layout-auto .mdui-dialog-content {\n color: rgba(255, 255, 255, 0.7);\n }\n}\n/**\n * =============================================================================\n * ************ Dialog alert ************\n * =============================================================================\n */\n.mdui-dialog-alert {\n max-width: 448px;\n}\n/**\n * =============================================================================\n * ************ Dialog confirm ************\n * =============================================================================\n */\n.mdui-dialog-confirm {\n max-width: 448px;\n}\n/**\n * =============================================================================\n * ************ Dialog prompt ************\n * =============================================================================\n */\n.mdui-dialog-prompt {\n max-width: 448px;\n}\n.mdui-dialog-prompt .mdui-textfield {\n padding-top: 0;\n}\n/**\n * =============================================================================\n * ************ Tooltip 工具提示 ************\n * =============================================================================\n */\n.mdui-tooltip {\n position: absolute;\n z-index: 9000;\n display: inline-block;\n box-sizing: border-box;\n max-width: 180px;\n min-height: 32px;\n padding: 8px 16px;\n color: #fff;\n font-weight: 500;\n font-size: 14px;\n line-height: 22px;\n text-align: left;\n background-color: rgba(97, 97, 97, 0.9);\n border-radius: 2px;\n transform: scale(0);\n opacity: 0;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 0.15s;\n transition-property: opacity, transform;\n will-change: opacity, transform;\n}\n@media (min-width: 1024px) {\n .mdui-tooltip {\n max-width: 200px;\n min-height: 24px;\n padding: 4px 8px;\n font-size: 12px;\n line-height: 18px;\n }\n}\n/* 显示工具提示 */\n.mdui-tooltip-open {\n transform: scale(1);\n opacity: 1;\n}\n/**\n * =============================================================================\n * ************ Snackbar ************\n * =============================================================================\n */\n.mdui-snackbar {\n position: fixed;\n z-index: 7000;\n display: flex;\n align-items: center;\n justify-content: space-between;\n box-sizing: border-box;\n width: 100%;\n min-height: 48px;\n padding: 0 24px 0 24px;\n color: #fff;\n font-size: 14px;\n line-height: 20px;\n background-color: #323232;\n will-change: transform;\n}\n@media (min-width: 600px) {\n .mdui-snackbar {\n width: auto;\n min-width: 288px;\n max-width: 568px;\n border-radius: 2px;\n }\n}\n.mdui-snackbar-bottom,\n.mdui-snackbar-top,\n.mdui-snackbar-left-top,\n.mdui-snackbar-left-bottom,\n.mdui-snackbar-right-top,\n.mdui-snackbar-right-bottom {\n transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n}\n/* 位置 */\n.mdui-snackbar-bottom,\n.mdui-snackbar-left-bottom,\n.mdui-snackbar-right-bottom {\n bottom: 0;\n}\n.mdui-snackbar-top,\n.mdui-snackbar-left-top,\n.mdui-snackbar-right-top {\n top: 0;\n}\n.mdui-snackbar-top,\n.mdui-snackbar-bottom {\n left: 50%;\n}\n@media (min-width: 600px) {\n .mdui-snackbar-left-top {\n top: 24px;\n left: 24px;\n }\n .mdui-snackbar-left-bottom {\n bottom: 24px;\n left: 24px;\n }\n .mdui-snackbar-right-top {\n top: 24px;\n right: 24px;\n }\n .mdui-snackbar-right-bottom {\n right: 24px;\n bottom: 24px;\n }\n}\n/* 文本 */\n.mdui-snackbar-text {\n position: relative;\n max-width: 100%;\n padding: 14px 0 14px 0;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n/* 按钮 */\n.mdui-snackbar-action {\n margin-right: -16px;\n white-space: nowrap;\n color: #FF80AB;\n}\n/**\n * =============================================================================\n * ************ Snackbar 强调色 ************\n * =============================================================================\n */\n.mdui-theme-accent-amber .mdui-snackbar-action {\n color: #FFE57F;\n}\n.mdui-theme-accent-blue .mdui-snackbar-action {\n color: #82B1FF;\n}\n.mdui-theme-accent-cyan .mdui-snackbar-action {\n color: #84FFFF;\n}\n.mdui-theme-accent-deep-orange .mdui-snackbar-action {\n color: #FF9E80;\n}\n.mdui-theme-accent-deep-purple .mdui-snackbar-action {\n color: #B388FF;\n}\n.mdui-theme-accent-green .mdui-snackbar-action {\n color: #B9F6CA;\n}\n.mdui-theme-accent-indigo .mdui-snackbar-action {\n color: #8C9EFF;\n}\n.mdui-theme-accent-light-blue .mdui-snackbar-action {\n color: #80D8FF;\n}\n.mdui-theme-accent-light-green .mdui-snackbar-action {\n color: #CCFF90;\n}\n.mdui-theme-accent-lime .mdui-snackbar-action {\n color: #F4FF81;\n}\n.mdui-theme-accent-orange .mdui-snackbar-action {\n color: #FFD180;\n}\n.mdui-theme-accent-pink .mdui-snackbar-action {\n color: #FF80AB;\n}\n.mdui-theme-accent-purple .mdui-snackbar-action {\n color: #EA80FC;\n}\n.mdui-theme-accent-red .mdui-snackbar-action {\n color: #FF8A80;\n}\n.mdui-theme-accent-teal .mdui-snackbar-action {\n color: #A7FFEB;\n}\n.mdui-theme-accent-yellow .mdui-snackbar-action {\n color: #FFFF8D;\n}\n/**\n * =============================================================================\n * ************ Snackbar dark ************\n * =============================================================================\n */\n.mdui-theme-layout-dark .mdui-snackbar {\n background-color: #5d5d5d;\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-layout-auto .mdui-snackbar {\n background-color: #5d5d5d;\n }\n}\n/**\n * =============================================================================\n * ************ Chip 纸片 ************\n * =============================================================================\n */\n.mdui-chip {\n display: inline-block;\n box-sizing: border-box;\n height: 32px;\n margin: 2px 0;\n color: inherit;\n white-space: nowrap;\n background-color: #e0e0e0;\n border-radius: 16px;\n cursor: pointer;\n user-select: none;\n transition: box-shadow 0.25s cubic-bezier(0.4, 0, 0.2, 1);\n will-change: box-shadow;\n}\n.mdui-chip:hover,\n.mdui-chip:focus {\n box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\n}\n.mdui-chip:active {\n background-color: #d6d6d6;\n}\n/* 左侧的图标 */\n.mdui-chip-icon {\n position: relative;\n display: inline-block;\n width: 32px;\n height: 32px;\n margin-right: -4px;\n overflow: hidden;\n color: #fff;\n font-size: 18px;\n line-height: 32px;\n text-align: center;\n vertical-align: middle;\n background-color: #989898;\n border-radius: 50%;\n}\n.mdui-chip-icon .mdui-icon {\n position: absolute;\n top: 4px;\n left: 4px;\n color: #fff;\n}\n/* 文本 */\n.mdui-chip-title {\n display: inline-block;\n height: 32px;\n padding-right: 12px;\n padding-left: 12px;\n font-size: 14px;\n line-height: 32px;\n vertical-align: middle;\n}\n/* 删除按钮 */\n.mdui-chip-delete {\n display: inline-block;\n width: 24px;\n height: 24px;\n margin-right: 4px;\n margin-left: -8px;\n overflow: hidden;\n text-align: center;\n text-decoration: none;\n vertical-align: middle;\n border-radius: 50%;\n cursor: pointer;\n opacity: 0.54;\n transition: opacity 0.25s cubic-bezier(0.4, 0, 0.2, 1);\n will-change: opacity;\n}\n.mdui-chip-delete:hover,\n.mdui-chip-delete:focus {\n opacity: 0.87;\n}\n/**\n * =============================================================================\n * ************ Chip dark ************\n * =============================================================================\n */\n.mdui-theme-layout-dark .mdui-chip {\n background-color: #484848;\n}\n.mdui-theme-layout-dark .mdui-chip:active {\n background-color: #5d5d5d;\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-layout-auto .mdui-chip {\n background-color: #484848;\n }\n .mdui-theme-layout-auto .mdui-chip:active {\n background-color: #5d5d5d;\n }\n}\n/**\n * =============================================================================\n * ************ Bottom navigation 底部导航栏 ************\n * =============================================================================\n */\n.mdui-bottom-nav {\n position: relative;\n display: flex;\n height: 56px;\n margin: 0 auto;\n padding: 0;\n overflow: hidden;\n white-space: nowrap;\n}\n@media (min-width: 600px) {\n .mdui-bottom-nav::before {\n flex-grow: 1;\n content: ' ';\n }\n .mdui-bottom-nav::after {\n flex-grow: 1;\n content: ' ';\n }\n}\n.mdui-bottom-nav a {\n display: flex;\n flex: 1;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n min-width: 32px;\n max-width: none;\n padding: 8px 12px 10px 12px;\n overflow: hidden;\n color: inherit;\n font-size: 12px;\n text-align: center;\n text-decoration: none;\n text-overflow: ellipsis;\n cursor: pointer;\n opacity: 0.7;\n transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n user-select: none;\n will-change: padding;\n}\n@media (min-width: 600px) {\n .mdui-bottom-nav a {\n max-width: 144px;\n }\n}\n.mdui-bottom-nav a .mdui-icon {\n opacity: 0.7;\n}\n.mdui-bottom-nav a label {\n display: block;\n width: 100%;\n cursor: pointer;\n transition: transform 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n will-change: font-size;\n}\n.mdui-bottom-nav a .mdui-icon + label {\n margin-top: 6px;\n}\n.mdui-bottom-nav a.mdui-bottom-nav-active {\n color: #3F51B5;\n font-size: 14px;\n opacity: 1;\n}\n.mdui-bottom-nav a.mdui-bottom-nav-active .mdui-icon {\n opacity: 1;\n}\n/* 只在激活时显示文本 */\n.mdui-bottom-nav-text-auto a {\n min-width: 32px;\n padding-right: 0;\n padding-left: 0;\n}\n@media (min-width: 600px) {\n .mdui-bottom-nav-text-auto a {\n max-width: 156px;\n }\n}\n.mdui-bottom-nav-text-auto a .mdui-icon {\n padding-top: 16px;\n transition: padding-top 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n will-change: padding-top;\n}\n.mdui-bottom-nav-text-auto a label {\n transform: scale(0);\n}\n.mdui-bottom-nav-text-auto a.mdui-bottom-nav-active {\n padding-right: 18px;\n padding-left: 18px;\n}\n.mdui-bottom-nav-text-auto a.mdui-bottom-nav-active .mdui-icon {\n padding-top: 0;\n}\n.mdui-bottom-nav-text-auto a.mdui-bottom-nav-active label {\n transform: scale(1);\n}\n/* 固定到页面底部 */\n.mdui-bottom-nav-fixed {\n padding-bottom: 56px;\n}\n.mdui-bottom-nav-fixed .mdui-bottom-nav {\n position: fixed;\n right: 0;\n bottom: 0;\n left: 0;\n}\n/**\n * =============================================================================\n * ************ Bottom Nav 主色 ************\n * =============================================================================\n */\n.mdui-theme-primary-amber .mdui-bottom-nav a.mdui-bottom-nav-active {\n color: #FFC107;\n}\n.mdui-theme-primary-blue .mdui-bottom-nav a.mdui-bottom-nav-active {\n color: #2196F3;\n}\n.mdui-theme-primary-blue-grey .mdui-bottom-nav a.mdui-bottom-nav-active {\n color: #607D8B;\n}\n.mdui-theme-primary-brown .mdui-bottom-nav a.mdui-bottom-nav-active {\n color: #795548;\n}\n.mdui-theme-primary-cyan .mdui-bottom-nav a.mdui-bottom-nav-active {\n color: #00BCD4;\n}\n.mdui-theme-primary-deep-orange .mdui-bottom-nav a.mdui-bottom-nav-active {\n color: #FF5722;\n}\n.mdui-theme-primary-deep-purple .mdui-bottom-nav a.mdui-bottom-nav-active {\n color: #673AB7;\n}\n.mdui-theme-primary-green .mdui-bottom-nav a.mdui-bottom-nav-active {\n color: #4CAF50;\n}\n.mdui-theme-primary-grey .mdui-bottom-nav a.mdui-bottom-nav-active {\n color: #9E9E9E;\n}\n.mdui-theme-primary-indigo .mdui-bottom-nav a.mdui-bottom-nav-active {\n color: #3F51B5;\n}\n.mdui-theme-primary-light-blue .mdui-bottom-nav a.mdui-bottom-nav-active {\n color: #03A9F4;\n}\n.mdui-theme-primary-light-green .mdui-bottom-nav a.mdui-bottom-nav-active {\n color: #8BC34A;\n}\n.mdui-theme-primary-lime .mdui-bottom-nav a.mdui-bottom-nav-active {\n color: #CDDC39;\n}\n.mdui-theme-primary-orange .mdui-bottom-nav a.mdui-bottom-nav-active {\n color: #FF9800;\n}\n.mdui-theme-primary-pink .mdui-bottom-nav a.mdui-bottom-nav-active {\n color: #E91E63;\n}\n.mdui-theme-primary-purple .mdui-bottom-nav a.mdui-bottom-nav-active {\n color: #9C27B0;\n}\n.mdui-theme-primary-red .mdui-bottom-nav a.mdui-bottom-nav-active {\n color: #F44336;\n}\n.mdui-theme-primary-teal .mdui-bottom-nav a.mdui-bottom-nav-active {\n color: #009688;\n}\n.mdui-theme-primary-yellow .mdui-bottom-nav a.mdui-bottom-nav-active {\n color: #FFEB3B;\n}\n/* 带背景色的底部导航栏 */\n.mdui-bottom-nav[class*=\"mdui-color-\"] .mdui-bottom-nav-active {\n color: inherit !important;\n}\n/**\n * =============================================================================\n * ************ Progress Linear 线性进度条 ************\n * =============================================================================\n */\n/* 线性进度条 */\n.mdui-progress {\n position: relative;\n display: block;\n width: 100%;\n height: 4px;\n overflow: hidden;\n background-color: rgba(63, 81, 181, 0.2);\n border-radius: 2px;\n}\n/* 确定进度的线性进度条 */\n.mdui-progress-determinate {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n background-color: #3F51B5;\n transition: width 0.3s linear;\n}\n/* 不确定进度的线性进度条 */\n.mdui-progress-indeterminate {\n background-color: #3F51B5;\n}\n.mdui-progress-indeterminate::before {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n background-color: inherit;\n animation: mdui-progress-indeterminate 2s linear infinite;\n content: ' ';\n will-change: left, width;\n}\n.mdui-progress-indeterminate::after {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n background-color: inherit;\n animation: mdui-progress-indeterminate-short 2s linear infinite;\n content: ' ';\n will-change: left, width;\n}\n@keyframes mdui-progress-indeterminate {\n 0% {\n left: 0;\n width: 0;\n }\n 50% {\n left: 30%;\n width: 70%;\n }\n 75% {\n left: 100%;\n width: 0;\n }\n}\n@keyframes mdui-progress-indeterminate-short {\n 0% {\n left: 0;\n width: 0;\n }\n 50% {\n left: 0;\n width: 0;\n }\n 75% {\n left: 0;\n width: 25%;\n }\n 100% {\n left: 100%;\n width: 0;\n }\n}\n/**\n * =============================================================================\n * ************ Progress linear 主色 ************\n * =============================================================================\n */\n.mdui-theme-primary-amber .mdui-progress {\n background-color: rgba(255, 193, 7, 0.2);\n}\n.mdui-theme-primary-amber .mdui-progress-determinate,\n.mdui-theme-primary-amber .mdui-progress-indeterminate {\n background-color: #FFC107;\n}\n.mdui-theme-primary-blue .mdui-progress {\n background-color: rgba(33, 150, 243, 0.2);\n}\n.mdui-theme-primary-blue .mdui-progress-determinate,\n.mdui-theme-primary-blue .mdui-progress-indeterminate {\n background-color: #2196F3;\n}\n.mdui-theme-primary-blue-grey .mdui-progress {\n background-color: rgba(96, 125, 139, 0.2);\n}\n.mdui-theme-primary-blue-grey .mdui-progress-determinate,\n.mdui-theme-primary-blue-grey .mdui-progress-indeterminate {\n background-color: #607D8B;\n}\n.mdui-theme-primary-brown .mdui-progress {\n background-color: rgba(121, 85, 72, 0.2);\n}\n.mdui-theme-primary-brown .mdui-progress-determinate,\n.mdui-theme-primary-brown .mdui-progress-indeterminate {\n background-color: #795548;\n}\n.mdui-theme-primary-cyan .mdui-progress {\n background-color: rgba(0, 188, 212, 0.2);\n}\n.mdui-theme-primary-cyan .mdui-progress-determinate,\n.mdui-theme-primary-cyan .mdui-progress-indeterminate {\n background-color: #00BCD4;\n}\n.mdui-theme-primary-deep-orange .mdui-progress {\n background-color: rgba(255, 87, 34, 0.2);\n}\n.mdui-theme-primary-deep-orange .mdui-progress-determinate,\n.mdui-theme-primary-deep-orange .mdui-progress-indeterminate {\n background-color: #FF5722;\n}\n.mdui-theme-primary-deep-purple .mdui-progress {\n background-color: rgba(103, 58, 183, 0.2);\n}\n.mdui-theme-primary-deep-purple .mdui-progress-determinate,\n.mdui-theme-primary-deep-purple .mdui-progress-indeterminate {\n background-color: #673AB7;\n}\n.mdui-theme-primary-green .mdui-progress {\n background-color: rgba(76, 175, 80, 0.2);\n}\n.mdui-theme-primary-green .mdui-progress-determinate,\n.mdui-theme-primary-green .mdui-progress-indeterminate {\n background-color: #4CAF50;\n}\n.mdui-theme-primary-grey .mdui-progress {\n background-color: rgba(158, 158, 158, 0.2);\n}\n.mdui-theme-primary-grey .mdui-progress-determinate,\n.mdui-theme-primary-grey .mdui-progress-indeterminate {\n background-color: #9E9E9E;\n}\n.mdui-theme-primary-indigo .mdui-progress {\n background-color: rgba(63, 81, 181, 0.2);\n}\n.mdui-theme-primary-indigo .mdui-progress-determinate,\n.mdui-theme-primary-indigo .mdui-progress-indeterminate {\n background-color: #3F51B5;\n}\n.mdui-theme-primary-light-blue .mdui-progress {\n background-color: rgba(3, 169, 244, 0.2);\n}\n.mdui-theme-primary-light-blue .mdui-progress-determinate,\n.mdui-theme-primary-light-blue .mdui-progress-indeterminate {\n background-color: #03A9F4;\n}\n.mdui-theme-primary-light-green .mdui-progress {\n background-color: rgba(139, 195, 74, 0.2);\n}\n.mdui-theme-primary-light-green .mdui-progress-determinate,\n.mdui-theme-primary-light-green .mdui-progress-indeterminate {\n background-color: #8BC34A;\n}\n.mdui-theme-primary-lime .mdui-progress {\n background-color: rgba(205, 220, 57, 0.2);\n}\n.mdui-theme-primary-lime .mdui-progress-determinate,\n.mdui-theme-primary-lime .mdui-progress-indeterminate {\n background-color: #CDDC39;\n}\n.mdui-theme-primary-orange .mdui-progress {\n background-color: rgba(255, 152, 0, 0.2);\n}\n.mdui-theme-primary-orange .mdui-progress-determinate,\n.mdui-theme-primary-orange .mdui-progress-indeterminate {\n background-color: #FF9800;\n}\n.mdui-theme-primary-pink .mdui-progress {\n background-color: rgba(233, 30, 99, 0.2);\n}\n.mdui-theme-primary-pink .mdui-progress-determinate,\n.mdui-theme-primary-pink .mdui-progress-indeterminate {\n background-color: #E91E63;\n}\n.mdui-theme-primary-purple .mdui-progress {\n background-color: rgba(156, 39, 176, 0.2);\n}\n.mdui-theme-primary-purple .mdui-progress-determinate,\n.mdui-theme-primary-purple .mdui-progress-indeterminate {\n background-color: #9C27B0;\n}\n.mdui-theme-primary-red .mdui-progress {\n background-color: rgba(244, 67, 54, 0.2);\n}\n.mdui-theme-primary-red .mdui-progress-determinate,\n.mdui-theme-primary-red .mdui-progress-indeterminate {\n background-color: #F44336;\n}\n.mdui-theme-primary-teal .mdui-progress {\n background-color: rgba(0, 150, 136, 0.2);\n}\n.mdui-theme-primary-teal .mdui-progress-determinate,\n.mdui-theme-primary-teal .mdui-progress-indeterminate {\n background-color: #009688;\n}\n.mdui-theme-primary-yellow .mdui-progress {\n background-color: rgba(255, 235, 59, 0.2);\n}\n.mdui-theme-primary-yellow .mdui-progress-determinate,\n.mdui-theme-primary-yellow .mdui-progress-indeterminate {\n background-color: #FFEB3B;\n}\n/**\n * =============================================================================\n * ************ Progress Circular 圆形进度条 ************\n * =============================================================================\n */\n.mdui-spinner {\n position: relative;\n display: inline-block;\n width: 28px;\n height: 28px;\n animation: mdui-spinner 1568ms linear infinite;\n}\n@keyframes mdui-spinner {\n to {\n transform: rotate(360deg);\n }\n}\n.mdui-spinner-layer {\n position: absolute;\n width: 100%;\n height: 100%;\n border-color: #3F51B5;\n opacity: 0;\n opacity: 1;\n animation: mdui-spinner-layer-fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n}\n.mdui-spinner-layer-1 {\n border-color: #42A5F5 !important;\n animation: mdui-spinner-layer-fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, mdui-spinner-layer-1-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n}\n.mdui-spinner-layer-2 {\n border-color: #F44336 !important;\n animation: mdui-spinner-layer-fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, mdui-spinner-layer-2-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n}\n.mdui-spinner-layer-3 {\n border-color: #FDD835 !important;\n animation: mdui-spinner-layer-fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, mdui-spinner-layer-3-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n}\n.mdui-spinner-layer-4 {\n border-color: #4CAF50 !important;\n animation: mdui-spinner-layer-fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, mdui-spinner-layer-4-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n}\n@keyframes mdui-spinner-layer-fill-unfill-rotate {\n 12.5% {\n transform: rotate(135deg);\n }\n 25% {\n transform: rotate(270deg);\n }\n 37.5% {\n transform: rotate(405deg);\n }\n 50% {\n transform: rotate(540deg);\n }\n 62.5% {\n transform: rotate(675deg);\n }\n 75% {\n transform: rotate(810deg);\n }\n 87.5% {\n transform: rotate(945deg);\n }\n to {\n transform: rotate(1080deg);\n }\n}\n@keyframes mdui-spinner-layer-1-fade-in-out {\n from {\n opacity: 1;\n }\n 25% {\n opacity: 1;\n }\n 26% {\n opacity: 0;\n }\n 89% {\n opacity: 0;\n }\n 90% {\n opacity: 1;\n }\n 100% {\n opacity: 1;\n }\n}\n@keyframes mdui-spinner-layer-2-fade-in-out {\n from {\n opacity: 0;\n }\n 15% {\n opacity: 0;\n }\n 25% {\n opacity: 1;\n }\n 50% {\n opacity: 1;\n }\n 51% {\n opacity: 0;\n }\n}\n@keyframes mdui-spinner-layer-3-fade-in-out {\n from {\n opacity: 0;\n }\n 40% {\n opacity: 0;\n }\n 50% {\n opacity: 1;\n }\n 75% {\n opacity: 1;\n }\n 76% {\n opacity: 0;\n }\n}\n@keyframes mdui-spinner-layer-4-fade-in-out {\n from {\n opacity: 0;\n }\n 65% {\n opacity: 0;\n }\n 75% {\n opacity: 1;\n }\n 90% {\n opacity: 1;\n }\n 100% {\n opacity: 0;\n }\n}\n.mdui-spinner-gap-patch {\n position: absolute;\n top: 0;\n left: 45%;\n width: 10%;\n height: 100%;\n overflow: hidden;\n border-color: inherit;\n}\n.mdui-spinner-gap-patch .mdui-spinner-circle {\n left: -450%;\n box-sizing: border-box;\n width: 1000%;\n}\n.mdui-spinner-circle-clipper {\n position: relative;\n display: inline-block;\n width: 50%;\n height: 100%;\n overflow: hidden;\n border-color: inherit;\n}\n.mdui-spinner-circle-clipper .mdui-spinner-circle {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n box-sizing: border-box;\n width: 200%;\n height: 100%;\n border-color: inherit;\n border-style: solid;\n border-width: 3px;\n border-bottom-color: transparent !important;\n border-radius: 50%;\n animation: none;\n}\n.mdui-spinner-circle-clipper.mdui-spinner-left {\n float: left;\n}\n.mdui-spinner-circle-clipper.mdui-spinner-left .mdui-spinner-circle {\n left: 0;\n border-right-color: transparent !important;\n transform: rotate(129deg);\n animation: mdui-spinner-left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n}\n.mdui-spinner-circle-clipper.mdui-spinner-right {\n float: right;\n}\n.mdui-spinner-circle-clipper.mdui-spinner-right .mdui-spinner-circle {\n left: -100%;\n border-left-color: transparent !important;\n transform: rotate(-129deg);\n animation: mdui-spinner-right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n}\n@keyframes mdui-spinner-left-spin {\n from {\n transform: rotate(130deg);\n }\n 50% {\n transform: rotate(-5deg);\n }\n to {\n transform: rotate(130deg);\n }\n}\n@keyframes mdui-spinner-right-spin {\n from {\n transform: rotate(-130deg);\n }\n 50% {\n transform: rotate(5deg);\n }\n to {\n transform: rotate(-130deg);\n }\n}\n/**\n * =============================================================================\n * ************ Spinner linear 主色 ************\n * =============================================================================\n */\n.mdui-theme-primary-amber .mdui-spinner-layer {\n border-color: #FFC107;\n}\n.mdui-theme-primary-blue .mdui-spinner-layer {\n border-color: #2196F3;\n}\n.mdui-theme-primary-blue-grey .mdui-spinner-layer {\n border-color: #607D8B;\n}\n.mdui-theme-primary-brown .mdui-spinner-layer {\n border-color: #795548;\n}\n.mdui-theme-primary-cyan .mdui-spinner-layer {\n border-color: #00BCD4;\n}\n.mdui-theme-primary-deep-orange .mdui-spinner-layer {\n border-color: #FF5722;\n}\n.mdui-theme-primary-deep-purple .mdui-spinner-layer {\n border-color: #673AB7;\n}\n.mdui-theme-primary-green .mdui-spinner-layer {\n border-color: #4CAF50;\n}\n.mdui-theme-primary-grey .mdui-spinner-layer {\n border-color: #9E9E9E;\n}\n.mdui-theme-primary-indigo .mdui-spinner-layer {\n border-color: #3F51B5;\n}\n.mdui-theme-primary-light-blue .mdui-spinner-layer {\n border-color: #03A9F4;\n}\n.mdui-theme-primary-light-green .mdui-spinner-layer {\n border-color: #8BC34A;\n}\n.mdui-theme-primary-lime .mdui-spinner-layer {\n border-color: #CDDC39;\n}\n.mdui-theme-primary-orange .mdui-spinner-layer {\n border-color: #FF9800;\n}\n.mdui-theme-primary-pink .mdui-spinner-layer {\n border-color: #E91E63;\n}\n.mdui-theme-primary-purple .mdui-spinner-layer {\n border-color: #9C27B0;\n}\n.mdui-theme-primary-red .mdui-spinner-layer {\n border-color: #F44336;\n}\n.mdui-theme-primary-teal .mdui-spinner-layer {\n border-color: #009688;\n}\n.mdui-theme-primary-yellow .mdui-spinner-layer {\n border-color: #FFEB3B;\n}\n/**\n * =============================================================================\n * ************ Menu 菜单 ************\n * =============================================================================\n */\n/* 菜单 */\n.mdui-menu {\n position: fixed;\n z-index: 99999;\n display: block;\n box-sizing: border-box;\n width: 168px;\n margin: 0;\n padding: 8px 0;\n overflow-y: auto;\n color: rgba(0, 0, 0, 0.87);\n font-size: 16px;\n list-style: none;\n background-color: #fff;\n border-radius: 2px;\n transform: scale(0);\n visibility: hidden;\n opacity: 0;\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n transition-duration: 0.3s;\n transition-property: transform, opacity, visibility;\n will-change: transform, opacity, visibility;\n -webkit-overflow-scrolling: touch;\n box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12);\n}\n.mdui-menu .mdui-divider {\n margin-top: 8px;\n margin-bottom: 8px;\n}\n/* 打开状态的菜单 */\n.mdui-menu-open {\n transform: scale(1);\n visibility: visible;\n opacity: 1;\n}\n/* 关闭中的菜单 */\n.mdui-menu-closing {\n transform: scale(1);\n visibility: visible;\n opacity: 0;\n}\n/* 菜单项 */\n.mdui-menu-item {\n position: relative;\n}\n.mdui-menu-item > a {\n position: relative;\n display: block;\n height: 48px;\n padding: 0 16px;\n color: inherit;\n line-height: 48px;\n text-decoration: none;\n user-select: none;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.mdui-menu-item > a:hover {\n background-color: #EEEEEE;\n}\n.mdui-menu-item > .mdui-menu {\n position: absolute;\n box-shadow: 0 5px 6px -3px rgba(0, 0, 0, 0.2), 0 9px 12px 1px rgba(0, 0, 0, 0.14), 0 3px 16px 2px rgba(0, 0, 0, 0.12);\n}\n.mdui-menu-item[disabled] > a {\n color: rgba(0, 0, 0, 0.38) !important;\n cursor: default;\n}\n.mdui-menu-item[disabled] > a:hover {\n background-color: inherit !important;\n}\n.mdui-menu-item[disabled] > a .mdui-icon {\n color: rgba(0, 0, 0, 0.26);\n}\n/* 激活状态的菜单项 */\n.mdui-menu-item-active {\n background-color: #EEEEEE;\n}\n/* 菜单中的图标 */\n.mdui-menu-item-icon {\n display: inline-block;\n box-sizing: border-box;\n width: 40px;\n padding-right: 16px;\n color: rgba(0, 0, 0, 0.54);\n}\n/* 菜单中的辅助文本或图标 */\n.mdui-menu-item-helper {\n float: right;\n}\n/* 有子菜单的条目的图标 */\n.mdui-menu-item-more {\n float: right;\n width: 24px;\n height: 24px;\n margin: 4px 0;\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M9.5 17.5l5-5-5-5z' opacity='.54'/%3E%3C/svg%3E\");\n}\n/* 级联菜单 */\n.mdui-menu-cascade {\n width: 320px;\n padding: 16px 0;\n overflow: visible;\n font-size: 15px;\n}\n.mdui-menu-cascade > .mdui-menu-item > a {\n height: 32px;\n padding: 0 24px;\n line-height: 32px;\n}\n/**\n * =============================================================================\n * ************ Menu dark ************\n * =============================================================================\n */\n.mdui-theme-layout-dark .mdui-menu {\n color: #fff;\n background-color: #424242;\n}\n.mdui-theme-layout-dark .mdui-menu-item > a:hover {\n background-color: #616161;\n}\n.mdui-theme-layout-dark .mdui-menu-item[disabled] > a {\n color: rgba(255, 255, 255, 0.5) !important;\n}\n.mdui-theme-layout-dark .mdui-menu-item[disabled] > a .mdui-icon {\n color: rgba(255, 255, 255, 0.3);\n}\n.mdui-theme-layout-dark .mdui-menu-item-active {\n background-color: #616161;\n}\n.mdui-theme-layout-dark .mdui-menu-item-icon {\n color: #ffffff;\n}\n.mdui-theme-layout-dark .mdui-menu-item-more {\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M9.5 17.5l5-5-5-5z' fill='%23FFF'/%3E%3C/svg%3E\");\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-layout-auto .mdui-menu {\n color: #fff;\n background-color: #424242;\n }\n .mdui-theme-layout-auto .mdui-menu-item > a:hover {\n background-color: #616161;\n }\n .mdui-theme-layout-auto .mdui-menu-item[disabled] > a {\n color: rgba(255, 255, 255, 0.5) !important;\n }\n .mdui-theme-layout-auto .mdui-menu-item[disabled] > a .mdui-icon {\n color: rgba(255, 255, 255, 0.3);\n }\n .mdui-theme-layout-auto .mdui-menu-item-active {\n background-color: #616161;\n }\n .mdui-theme-layout-auto .mdui-menu-item-icon {\n color: #ffffff;\n }\n .mdui-theme-layout-auto .mdui-menu-item-more {\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M9.5 17.5l5-5-5-5z' fill='%23FFF'/%3E%3C/svg%3E\");\n }\n}\n","/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\nhtml {\n line-height: 1.15; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n\n/**\n * Remove the margin in all browsers.\n */\n\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\n\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Remove the gray background on active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove the border on images inside links in IE 10.\n */\n\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput { /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect { /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\n\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\n\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n\n/**\n * Add the correct display in IE 10+.\n */\n\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n\n[hidden] {\n display: none;\n}\n","/**\n * =============================================================================\n * ************ 公共样式 ************\n * =============================================================================\n */\n* {\n -webkit-tap-highlight-color: transparent;\n}\n\nbody {\n color: @body-text-color;\n font-size: @screen-xs-font-size;\n font-family: @font-family-base;\n background-color: @body-background-color;\n @media (min-width: @screen-sm-min) {\n font-size: @screen-sm-font-size;\n }\n @media (min-width: @screen-md-min) {\n font-size: @screen-md-font-size;\n }\n\n // 滚动条样式\n * {\n .mdui-scrollbar-beautify(light);\n }\n}\n\n/* 锁定屏幕 */\nbody.mdui-locked {\n overflow: hidden;\n}\n\n/* 遮罩层 */\n.mdui-overlay {\n position: fixed;\n top: -5000px;\n right: -5000px;\n bottom: -5000px;\n left: -5000px;\n z-index: @z-index-overlay;\n background: rgba(0, 0, 0, .4);\n backface-visibility: hidden;\n visibility: hidden;\n opacity: 0;\n transition-duration: .3s;\n transition-property: opacity, visibility;\n will-change: opacity;\n}\n\n/* 显示遮罩层 */\n.mdui-overlay-show {\n visibility: visible;\n opacity: 1;\n}\n\n/* 取消 transition 过渡效果 */\n.mdui-no-transition {\n transition-property: none !important;\n}\n\n\n/**\n * =============================================================================\n * ************ Global dark ************\n * =============================================================================\n */\n.layout-theme({\n color: #fff;\n background-color: @layout-dark-color-3;\n\n // 夜间模式滚动条样式\n * {\n .mdui-scrollbar-beautify(dark);\n }\n});\n","// ======================== 边距\n.mdui-m-a(@spacing) {\n margin: @spacing * @spacing-base;\n}\n.mdui-m-t(@spacing) {\n margin-top: @spacing * @spacing-base;\n}\n.mdui-m-r(@spacing) {\n margin-right: @spacing * @spacing-base;\n}\n.mdui-m-b(@spacing) {\n margin-bottom: @spacing * @spacing-base;\n}\n.mdui-m-l(@spacing) {\n margin-left: @spacing * @spacing-base;\n}\n.mdui-m-x(@spacing) {\n margin-right: @spacing * @spacing-base;\n margin-left: @spacing * @spacing-base;\n}\n.mdui-m-y(@spacing) {\n margin-top: @spacing * @spacing-base;\n margin-bottom: @spacing * @spacing-base;\n}\n\n.mdui-p-a(@spacing) {\n padding: @spacing * @spacing-base;\n}\n.mdui-p-t(@spacing) {\n padding-top: @spacing * @spacing-base;\n}\n.mdui-p-r(@spacing) {\n padding-right: @spacing * @spacing-base;\n}\n.mdui-p-b(@spacing) {\n padding-bottom: @spacing * @spacing-base;\n}\n.mdui-p-l(@spacing) {\n padding-left: @spacing * @spacing-base;\n}\n.mdui-p-x(@spacing) {\n padding-right: @spacing * @spacing-base;\n padding-left: @spacing * @spacing-base;\n}\n.mdui-p-y(@spacing) {\n padding-top: @spacing * @spacing-base;\n padding-bottom: @spacing * @spacing-base;\n}\n\n//=========================== 清除浮动\n// 清除浮动\n.mdui-clearfix() {\n &::before,\n &::after {\n display: table;\n content: ' ';\n }\n &::after {\n clear: both;\n }\n}\n\n// 用省略号代替被截断的文本\n.mdui-text-truncate() {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n\n// 文本强制换行\n.mdui-textwrap() {\n word-wrap: break-word;\n word-break: break-all;\n}\n\n// 使子元素垂直居中\n.mdui-valign() {\n display: flex;\n align-items: center;\n}\n\n// 使元素水平居中\n.mdui-center() {\n display: block;\n margin-right: auto;\n margin-left: auto;\n}\n\n// 美化滚动条样式\n.mdui-scrollbar-beautify(@layout: light) {\n // 亮色主题\n & when (@layout = light) {\n &::-webkit-scrollbar {\n width: 5px;\n height: 5px;\n background: transparent;\n // 桌面端\n @media (min-width: @screen-md-min) {\n width: 8px;\n height: 8px;\n }\n }\n\n &::-webkit-scrollbar-thumb {\n background: rgba(0, 0, 0, 0.2);\n }\n }\n\n // 暗色主题\n & when (@layout = dark) {\n &::-webkit-scrollbar {\n width: 5px;\n height: 5px;\n background: transparent;\n // 桌面端\n @media (min-width: @screen-md-min) {\n width: 8px;\n height: 8px;\n }\n }\n\n &::-webkit-scrollbar-thumb {\n background: rgba(255, 255, 255, 0.3);\n }\n }\n}\n",".layout-theme(@rules) {\n & when (@globalLayoutDark = true) {\n .mdui-theme-layout-dark {\n @rules();\n }\n }\n & when (@globalLayoutAuto = true) {\n @media (prefers-color-scheme: dark) {\n .mdui-theme-layout-auto {\n @rules();\n }\n }\n }\n}\n","// 阴影\n@shadow-key-umbra-opacity: 0.2;\n@shadow-key-penumbra-opacity: 0.14;\n@shadow-ambient-shadow-opacity: 0.12;\n\n\n@shadow-depth-0: none;\n\n@shadow-depth-1: 0 2px 1px -1px rgba(0, 0, 0, @shadow-key-umbra-opacity),\n0 1px 1px 0 rgba(0, 0, 0, @shadow-key-penumbra-opacity),\n0 1px 3px 0 rgba(0, 0, 0, @shadow-ambient-shadow-opacity);\n\n@shadow-depth-2: 0 3px 1px -2px rgba(0, 0, 0, @shadow-key-umbra-opacity),\n0 2px 2px 0 rgba(0, 0, 0, @shadow-key-penumbra-opacity),\n0 1px 5px 0 rgba(0, 0, 0, @shadow-ambient-shadow-opacity);\n\n@shadow-depth-3: 0 3px 3px -2px rgba(0, 0, 0, @shadow-key-umbra-opacity),\n0 3px 4px 0 rgba(0, 0, 0, @shadow-key-penumbra-opacity),\n0 1px 8px 0 rgba(0, 0, 0, @shadow-ambient-shadow-opacity);\n\n@shadow-depth-4: 0 2px 4px -1px rgba(0, 0, 0, @shadow-key-umbra-opacity),\n0 4px 5px 0 rgba(0, 0, 0, @shadow-key-penumbra-opacity),\n0 1px 10px 0 rgba(0, 0, 0, @shadow-ambient-shadow-opacity);\n\n@shadow-depth-5: 0 3px 5px -1px rgba(0, 0, 0, @shadow-key-umbra-opacity),\n0 5px 8px 0 rgba(0, 0, 0, @shadow-key-penumbra-opacity),\n0 1px 14px 0 rgba(0, 0, 0, @shadow-ambient-shadow-opacity);\n\n@shadow-depth-6: 0 3px 5px -1px rgba(0, 0, 0, @shadow-key-umbra-opacity),\n0 6px 10px 0 rgba(0, 0, 0, @shadow-key-penumbra-opacity),\n0 1px 18px 0 rgba(0, 0, 0, @shadow-ambient-shadow-opacity);\n\n@shadow-depth-7: 0 4px 5px -2px rgba(0, 0, 0, @shadow-key-umbra-opacity),\n0 7px 10px 1px rgba(0, 0, 0, @shadow-key-penumbra-opacity),\n0 2px 16px 1px rgba(0, 0, 0, @shadow-ambient-shadow-opacity);\n\n@shadow-depth-8: 0 5px 5px -3px rgba(0, 0, 0, @shadow-key-umbra-opacity),\n0 8px 10px 1px rgba(0, 0, 0, @shadow-key-penumbra-opacity),\n0 3px 14px 2px rgba(0, 0, 0, @shadow-ambient-shadow-opacity);\n\n@shadow-depth-9: 0 5px 6px -3px rgba(0, 0, 0, @shadow-key-umbra-opacity),\n0 9px 12px 1px rgba(0, 0, 0, @shadow-key-penumbra-opacity),\n0 3px 16px 2px rgba(0, 0, 0, @shadow-ambient-shadow-opacity);\n\n@shadow-depth-10: 0 6px 6px -3px rgba(0, 0, 0, @shadow-key-umbra-opacity),\n0 10px 14px 1px rgba(0, 0, 0, @shadow-key-penumbra-opacity),\n0 4px 18px 3px rgba(0, 0, 0, @shadow-ambient-shadow-opacity);\n\n@shadow-depth-11: 0 6px 7px -4px rgba(0, 0, 0, @shadow-key-umbra-opacity),\n0 11px 15px 1px rgba(0, 0, 0, @shadow-key-penumbra-opacity),\n0 4px 20px 3px rgba(0, 0, 0, @shadow-ambient-shadow-opacity);\n\n@shadow-depth-12: 0 7px 8px -4px rgba(0, 0, 0, @shadow-key-umbra-opacity),\n0 12px 17px 2px rgba(0, 0, 0, @shadow-key-penumbra-opacity),\n0 5px 22px 4px rgba(0, 0, 0, @shadow-ambient-shadow-opacity);\n\n@shadow-depth-13: 0 7px 8px -4px rgba(0, 0, 0, @shadow-key-umbra-opacity),\n0 13px 19px 2px rgba(0, 0, 0, @shadow-key-penumbra-opacity),\n0 5px 24px 4px rgba(0, 0, 0, @shadow-ambient-shadow-opacity);\n\n@shadow-depth-14: 0 7px 9px -4px rgba(0, 0, 0, @shadow-key-umbra-opacity),\n0 14px 21px 2px rgba(0, 0, 0, @shadow-key-penumbra-opacity),\n0 5px 26px 4px rgba(0, 0, 0, @shadow-ambient-shadow-opacity);\n\n@shadow-depth-15: 0 8px 9px -5px rgba(0, 0, 0, @shadow-key-umbra-opacity),\n0 15px 22px 2px rgba(0, 0, 0, @shadow-key-penumbra-opacity),\n0 6px 28px 5px rgba(0, 0, 0, @shadow-ambient-shadow-opacity);\n\n@shadow-depth-16: 0 8px 10px -5px rgba(0, 0, 0, @shadow-key-umbra-opacity),\n0 16px 24px 2px rgba(0, 0, 0, @shadow-key-penumbra-opacity),\n0 6px 30px 5px rgba(0, 0, 0, @shadow-ambient-shadow-opacity);\n\n@shadow-depth-17: 0 8px 11px -5px rgba(0, 0, 0, @shadow-key-umbra-opacity),\n0 17px 26px 2px rgba(0, 0, 0, @shadow-key-penumbra-opacity),\n0 6px 32px 5px rgba(0, 0, 0, @shadow-ambient-shadow-opacity);\n\n@shadow-depth-18: 0 9px 11px -5px rgba(0, 0, 0, @shadow-key-umbra-opacity),\n0 18px 28px 2px rgba(0, 0, 0, @shadow-key-penumbra-opacity),\n0 7px 34px 6px rgba(0, 0, 0, @shadow-ambient-shadow-opacity);\n\n@shadow-depth-19: 0 9px 12px -6px rgba(0, 0, 0, @shadow-key-umbra-opacity),\n0 19px 29px 2px rgba(0, 0, 0, @shadow-key-penumbra-opacity),\n0 7px 36px 6px rgba(0, 0, 0, @shadow-ambient-shadow-opacity);\n\n@shadow-depth-20: 0 10px 13px -6px rgba(0, 0, 0, @shadow-key-umbra-opacity),\n0 20px 31px 3px rgba(0, 0, 0, @shadow-key-penumbra-opacity),\n0 8px 38px 7px rgba(0, 0, 0, @shadow-ambient-shadow-opacity);\n\n@shadow-depth-21: 0 10px 13px -6px rgba(0, 0, 0, @shadow-key-umbra-opacity),\n0 21px 33px 3px rgba(0, 0, 0, @shadow-key-penumbra-opacity),\n0 8px 40px 7px rgba(0, 0, 0, @shadow-ambient-shadow-opacity);\n\n@shadow-depth-22: 0 10px 14px -6px rgba(0, 0, 0, @shadow-key-umbra-opacity),\n0 22px 35px 3px rgba(0, 0, 0, @shadow-key-penumbra-opacity),\n0 8px 42px 7px rgba(0, 0, 0, @shadow-ambient-shadow-opacity);\n\n@shadow-depth-23: 0 11px 14px -7px rgba(0, 0, 0, @shadow-key-umbra-opacity),\n0 23px 36px 3px rgba(0, 0, 0, @shadow-key-penumbra-opacity),\n0 9px 44px 8px rgba(0, 0, 0, @shadow-ambient-shadow-opacity);\n\n@shadow-depth-24: 0 11px 15px -7px rgba(0, 0, 0, @shadow-key-umbra-opacity),\n0 24px 38px 3px rgba(0, 0, 0, @shadow-key-penumbra-opacity),\n0 9px 46px 8px rgba(0, 0, 0, @shadow-ambient-shadow-opacity);\n","// 根据背景色设置文本色\n._mdui-color-text-color(@color-is-dark) {\n & when (@color-is-dark = true) {\n color: @color-white-text;\n }\n & when (@color-is-dark = false) {\n color: @color-black-text;\n }\n}\n\n// hover 状态背景色\n._mdui-background-color-hover(@colorName) {\n @color-is-dark: 'color-@{colorName}-500-is-dark';\n & when (@@color-is-dark = true) {\n @color: 'color-@{colorName}-400';\n\n background-color: @@color;\n }\n & when (@@color-is-dark = false) {\n @color: 'color-@{colorName}-600';\n\n background-color: @@color;\n }\n}\n\n// active 状态背景色\n._mdui-background-color-active(@colorName) {\n @color-is-dark: 'color-@{colorName}-500-is-dark';\n & when (@@color-is-dark = true) {\n @color: 'color-@{colorName}-300';\n\n background-color: @@color;\n }\n & when (@@color-is-dark = false) {\n @color: 'color-@{colorName}-700';\n\n background-color: @@color;\n }\n}\n\n// 仅设置背景色\n.mdui-background-color(@colorName, @degree: 500) {\n @color: 'color-@{colorName}-@{degree}';\n\n background-color: @@color;\n}\n\n// 背景色和文本色\n.mdui-color(@colorName, @degree: 500) {\n .mdui-background-color(@colorName, @degree);\n\n @color-is-dark: 'color-@{colorName}-@{degree}-is-dark';\n ._mdui-color-text-color(@@color-is-dark);\n}\n\n// 文本色\n.mdui-text-color(@colorName, @degree: 500, @opacity: 1) {\n @color: 'color-@{colorName}-@{degree}';\n\n & when (@opacity = 1) {\n color: @@color;\n }\n & when (@opacity < 1) {\n color: rgba(red(@@color), green(@@color), blue(@@color), @opacity);\n }\n}\n","/**\n * =============================================================================\n * ************ Color 颜色 ************\n * =============================================================================\n */\n\n@global-primary-color-degrees-length: length(@globalPrimaryColorDegrees);\n@global-primary-colors-length: length(@globalPrimaryColors);\n@global-accent-color-degrees-length: length(@globalAccentColorDegrees);\n@global-accent-colors-length: length(@globalAccentColors);\n\n\n/**\n * .mdui-theme-primary-[color] .mdui-color-theme\n * .mdui-theme-primary-[color] .mdui-color-theme-[degree]\n */\n\n& {\n .loop-primary-theme(@counter-color) when (@counter-color > 0) {\n .loop-primary-theme((@counter-color - 1));\n\n @colorName: extract(@globalPrimaryColors, @counter-color);\n\n .mdui-theme-primary-@{colorName} when not (@colorName = null) {\n\n // .mdui-theme-primary-[color] .mdui-color-theme\n .mdui-color-theme {\n .mdui-color(@colorName) !important;\n }\n\n .loop-primary-degree-theme(@counter-degree) when (@counter-degree > 0) {\n .loop-primary-degree-theme((@counter-degree - 1));\n\n @degree: extract(@globalPrimaryColorDegrees, @counter-degree);\n\n // .mdui-theme-primary-[color] .mdui-color-theme-[degree]\n .mdui-color-theme-@{degree} when not (@degree = null) {\n .mdui-color(@colorName, @degree) !important;\n }\n }\n .loop-primary-degree-theme(@global-primary-color-degrees-length);\n }\n }\n .loop-primary-theme(@global-primary-colors-length);\n}\n\n\n/**\n * .mdui-theme-accent-[color] .mdui-color-theme-accent\n * .mdui-theme-accent-[color] .mdui-color-theme-[degree]\n */\n\n& {\n .loop-accent-theme(@counter-color) when (@counter-color > 0) {\n .loop-accent-theme((@counter-color - 1));\n\n @colorName: extract(@globalAccentColors, @counter-color);\n\n .mdui-theme-accent-@{colorName} when not (@colorName = null) {\n\n // .mdui-theme-accent-[color] .mdui-color-theme-accent\n .mdui-color-theme-accent {\n .mdui-color(@colorName, a200) !important;\n }\n\n .loop-accent-degree-theme(@counter-degree) when (@counter-degree > 0) {\n .loop-accent-degree-theme((@counter-degree - 1));\n\n @degree: extract(@globalAccentColorDegrees, @counter-degree);\n\n // .mdui-theme-accent-[color] .mdui-color-theme-[degree]\n .mdui-color-theme-@{degree} when not (@degree = null) {\n .mdui-color(@colorName, @degree) !important;\n }\n }\n .loop-accent-degree-theme(@global-accent-color-degrees-length);\n }\n }\n .loop-accent-theme(@global-accent-colors-length);\n}\n\n\n/**\n * .mdui-color-[color]\n * .mdui-color-[color]-[degree]\n */\n\n& {\n .loop-primary-theme(@counter-color) when (@counter-color > 0) {\n .loop-primary-theme((@counter-color - 1));\n\n @colorName: extract(@globalPrimaryColors, @counter-color);\n\n & {\n // .mdui-color-[color]\n .mdui-color-@{colorName} when not (@colorName = null) {\n .mdui-color(@colorName) !important;\n }\n\n .loop-primary-degree-theme(@counter-degree) when (@counter-degree > 0) {\n .loop-primary-degree-theme((@counter-degree - 1));\n\n @degree: extract(@globalPrimaryColorDegrees, @counter-degree);\n\n // .mdui-color-[color]-[degree]\n .mdui-color-@{colorName}-@{degree} when not (@degree = null) {\n .mdui-color(@colorName, @degree) !important;\n }\n }\n .loop-primary-degree-theme(@global-primary-color-degrees-length);\n }\n }\n .loop-primary-theme(@global-primary-colors-length);\n}\n\n\n/**\n * .mdui-color-[color]-accent\n * .mdui-color-[color]-[degree]\n */\n\n& {\n .loop-accent-theme(@counter-color) when (@counter-color > 0) {\n .loop-accent-theme((@counter-color - 1));\n\n @colorName: extract(@globalAccentColors, @counter-color);\n\n &{\n // .mdui-color-[color]-accent\n .mdui-color-@{colorName}-accent when not (@colorName = null) {\n .mdui-color(@colorName, a200) !important;\n }\n\n .loop-accent-degree-theme(@counter-degree) when (@counter-degree > 0) {\n .loop-accent-degree-theme((@counter-degree - 1));\n\n @degree: extract(@globalAccentColorDegrees, @counter-degree);\n\n // .mdui-color-[color]-[degree]\n .mdui-color-@{colorName}-@{degree} when not (@degree = null) {\n .mdui-color(@colorName, @degree) !important;\n }\n }\n .loop-accent-degree-theme(@global-accent-color-degrees-length);\n }\n }\n .loop-accent-theme(@global-accent-colors-length);\n}\n\n\n/**\n * .mdui-color-black\n * .mdui-color-white\n * .mdui-color-transparent\n */\n\n.mdui-color-black {\n color: @color-white-text !important;\n background-color: @color-black !important;\n}\n\n.mdui-color-white {\n color: @color-black-text !important;\n background-color: @color-white !important;\n}\n\n.mdui-color-transparent {\n background-color: @color-transparent !important;\n}\n\n\n/**\n * .mdui-theme-primary-[color] .mdui-text-color-theme\n * .mdui-theme-primary-[color] .mdui-text-color-theme-[degree]\n */\n\n& {\n .loop-primary-theme(@counter-color) when (@counter-color > 0) {\n .loop-primary-theme((@counter-color - 1));\n\n @colorName: extract(@globalPrimaryColors, @counter-color);\n\n .mdui-theme-primary-@{colorName} when not (@colorName = null) {\n\n // .mdui-theme-primary-[color] .mdui-text-color-theme\n .mdui-text-color-theme {\n .mdui-text-color(@colorName) !important;\n }\n\n .loop-primary-degree-theme(@counter-degree) when (@counter-degree > 0) {\n .loop-primary-degree-theme((@counter-degree - 1));\n\n @degree: extract(@globalPrimaryColorDegrees, @counter-degree);\n\n // .mdui-theme-primary-[color] .mdui-text-color-theme-[degree]\n .mdui-text-color-theme-@{degree} when not (@degree = null) {\n .mdui-text-color(@colorName, @degree) !important;\n }\n }\n .loop-primary-degree-theme(@global-primary-color-degrees-length);\n }\n }\n .loop-primary-theme(@global-primary-colors-length);\n}\n\n\n/**\n * .mdui-theme-accent-[color] .mdui-text-color-theme-accent\n * .mdui-theme-accent-[color] .mdui-text-color-theme-[degree]\n */\n\n& {\n .loop-accent-theme(@counter-color) when (@counter-color > 0) {\n .loop-accent-theme((@counter-color - 1));\n\n @colorName: extract(@globalAccentColors, @counter-color);\n\n .mdui-theme-accent-@{colorName} when not (@colorName = null) {\n\n // .mdui-theme-accent-[color] .mdui-text-color-theme-accent\n .mdui-text-color-theme-accent {\n .mdui-text-color(@colorName, a200) !important;\n }\n\n .loop-accent-degree-theme(@counter-degree) when (@counter-degree > 0) {\n .loop-accent-degree-theme((@counter-degree - 1));\n\n @degree: extract(@globalAccentColorDegrees, @counter-degree);\n\n // .mdui-theme-accent-[color] .mdui-text-color-theme-[degree]\n .mdui-text-color-theme-@{degree} when not (@degree = null) {\n .mdui-text-color(@colorName, @degree) !important;\n }\n }\n .loop-accent-degree-theme(@global-accent-color-degrees-length);\n }\n }\n .loop-accent-theme(@global-accent-colors-length);\n}\n\n\n/**\n * .mdui-text-color-[color]\n * .mdui-text-color-[color]-[degree]\n */\n\n& {\n .loop-primary-theme(@counter-color) when (@counter-color > 0) {\n .loop-primary-theme((@counter-color - 1));\n\n @colorName: extract(@globalPrimaryColors, @counter-color);\n\n &{\n // .mdui-text-color-[color]\n .mdui-text-color-@{colorName} when not (@colorName = null) {\n .mdui-text-color(@colorName) !important;\n }\n\n .loop-primary-degree-theme(@counter-degree) when (@counter-degree > 0) {\n .loop-primary-degree-theme((@counter-degree - 1));\n\n @degree: extract(@globalPrimaryColorDegrees, @counter-degree);\n\n // .mdui-text-color-[color]-[degree]\n .mdui-text-color-@{colorName}-@{degree} when not (@degree = null) {\n .mdui-text-color(@colorName, @degree) !important;\n }\n }\n .loop-primary-degree-theme(@global-primary-color-degrees-length);\n }\n }\n .loop-primary-theme(@global-primary-colors-length);\n}\n\n\n/**\n * .mdui-text-color-[color]-accent\n * .mdui-text-color-[color]-[degree]\n */\n\n& {\n .loop-accent-theme(@counter-color) when (@counter-color > 0) {\n .loop-accent-theme((@counter-color - 1));\n\n @colorName: extract(@globalAccentColors, @counter-color);\n\n &{\n // .mdui-text-color-[color]-accent\n .mdui-text-color-@{colorName}-accent when not (@colorName = null) {\n .mdui-text-color(@colorName, a200) !important;\n }\n\n .loop-accent-degree-theme(@counter-degree) when (@counter-degree > 0) {\n .loop-accent-degree-theme((@counter-degree - 1));\n\n @degree: extract(@globalAccentColorDegrees, @counter-degree);\n\n // .mdui-text-color-[color]-[degree]\n .mdui-text-color-@{colorName}-@{degree} when not (@degree = null) {\n .mdui-text-color(@colorName, @degree) !important;\n }\n }\n .loop-accent-degree-theme(@global-accent-color-degrees-length);\n }\n }\n .loop-accent-theme(@global-accent-colors-length);\n}\n\n\n/**\n * .mdui-text-color-black\n * .mdui-text-color-black-[]\n * .mdui-text-color-theme-[]\n */\n\n.mdui-text-color-black {\n color: @color-black !important;\n}\n.mdui-text-color-black-text,\n.mdui-text-color-theme-text {\n color: @color-black-text !important;\n}\n.mdui-text-color-black-secondary,\n.mdui-text-color-theme-secondary {\n color: @color-black-secondary !important;\n}\n.mdui-text-color-black-disabled,\n.mdui-text-color-theme-disabled {\n color: @color-black-disabled !important;\n}\n.mdui-text-color-black-divider,\n.mdui-text-color-theme-divider {\n color: @color-black-divider !important;\n}\n.mdui-text-color-black-icon,\n.mdui-text-color-theme-icon {\n color: @color-black-icon !important;\n}\n.mdui-text-color-black-icon-disabled,\n.mdui-text-color-theme-icon-disabled {\n color: @color-black-icon-disabled !important;\n}\n\n/**\n * .mdui-text-color-white\n * .mdui-text-color-white-[]\n */\n.mdui-text-color-white {\n color: @color-white !important;\n}\n.mdui-text-color-white-text {\n color: @color-white-text !important;\n}\n.mdui-text-color-white-secondary {\n color: @color-white-secondary !important;\n}\n.mdui-text-color-white-disabled {\n color: @color-white-disabled !important;\n}\n.mdui-text-color-white-divider {\n color: @color-white-divider !important;\n}\n.mdui-text-color-white-icon {\n color: @color-white-icon !important;\n}\n.mdui-text-color-white-icon-disabled {\n color: @color-white-icon-disabled !important;\n}\n\n/**\n * .mdui-text-color-theme-[] 深色主题\n */\n.layout-theme({\n .mdui-text-color-theme-text {\n color: @color-white-text !important;\n }\n .mdui-text-color-theme-secondary {\n color: @color-white-secondary !important;\n }\n .mdui-text-color-theme-disabled {\n color: @color-white-disabled !important;\n }\n .mdui-text-color-theme-divider {\n color: @color-white-divider !important;\n }\n .mdui-text-color-theme-icon {\n color: @color-white-icon !important;\n }\n .mdui-text-color-theme-icon-disabled {\n color: @color-white-icon-disabled !important;\n }\n});\n","/**\n * =============================================================================\n * ************ Helper 辅助类 ************\n * =============================================================================\n */\n\n/**\n * =================== 边距\n */\n._spacing_margin_mixin(@spacing) when (@spacing > -1) {\n ._spacing_margin_mixin(@spacing - 1);\n\n .mdui-m-a-@{spacing} {\n .mdui-m-a(@spacing) !important;\n }\n .mdui-m-t-@{spacing} {\n .mdui-m-t(@spacing) !important;\n }\n .mdui-m-r-@{spacing} {\n .mdui-m-r(@spacing) !important;\n }\n .mdui-m-b-@{spacing} {\n .mdui-m-b(@spacing) !important;\n }\n .mdui-m-l-@{spacing} {\n .mdui-m-l(@spacing) !important;\n }\n .mdui-m-x-@{spacing} {\n .mdui-m-x(@spacing) !important;\n }\n .mdui-m-y-@{spacing} {\n .mdui-m-y(@spacing) !important;\n }\n\n .mdui-p-a-@{spacing} {\n .mdui-p-a(@spacing) !important;\n }\n .mdui-p-t-@{spacing} {\n .mdui-p-t(@spacing) !important;\n }\n .mdui-p-r-@{spacing} {\n .mdui-p-r(@spacing) !important;\n }\n .mdui-p-b-@{spacing} {\n .mdui-p-b(@spacing) !important;\n }\n .mdui-p-l-@{spacing} {\n .mdui-p-l(@spacing) !important;\n }\n .mdui-p-x-@{spacing} {\n .mdui-p-x(@spacing) !important;\n }\n .mdui-p-y-@{spacing} {\n .mdui-p-y(@spacing) !important;\n }\n}\n\n._spacing_margin_mixin(5);\n\n\n/**\n * ======================== 快速浮动\n */\n\n/* 向左浮动 */\n.mdui-float-left {\n float: left !important;\n}\n\n/* 向右浮动 */\n.mdui-float-right {\n float: right !important;\n}\n\n/**\n * ========================= 水平居中\n */\n\n/* 水平居中 */\n.mdui-center {\n .mdui-center() !important;\n}\n\n/**\n * ========================= 垂直居中\n */\n\n/* 垂直居中 */\n.mdui-valign {\n .mdui-valign() !important;\n}\n\n/**\n * ========================= 文本对齐方式\n */\n\n/* 文本左对齐 */\n.mdui-text-left {\n text-align: left !important;\n}\n\n/* 文本居中对齐 */\n.mdui-text-center {\n text-align: center !important;\n}\n\n/* 文本向右对齐 */\n.mdui-text-right {\n text-align: right !important;\n}\n\n/**\n * ========================= 文本大小写转换\n */\n\n/* 文本转为小写 */\n.mdui-text-lowercase {\n text-transform: lowercase !important;\n}\n\n/* 文本转为大写 */\n.mdui-text-uppercase {\n text-transform: uppercase !important;\n}\n\n/* 文本转为单词的首字母大写 */\n.mdui-text-capitalize {\n text-transform: capitalize !important;\n}\n\n/**\n * ======================== 文本截断\n */\n\n/* 文本截断 */\n.mdui-text-truncate {\n .mdui-text-truncate();\n}\n\n/**\n * ========================= 清除浮动\n */\n\n/* 清除浮动 */\n.mdui-clearfix {\n .mdui-clearfix();\n}\n\n/**\n * ========================= 隐藏内容\n */\n\n/* 隐藏元素 */\n.mdui-hidden,\n[hidden] {\n display: none !important;\n}\n\n/* 使元素不可见 */\n.mdui-invisible {\n visibility: hidden;\n}\n\n/* Responsive utilities 响应式工具\n ========================================================================== */\n\n/* 在特定屏幕的特备上隐藏 */\n@media (max-width: @screen-xs-max) {\n .mdui-hidden-xs {\n display: none !important;\n }\n}\n@media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n .mdui-hidden-sm {\n display: none !important;\n }\n}\n@media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n .mdui-hidden-md {\n display: none !important;\n }\n}\n@media (min-width: @screen-lg-min) and (max-width: @screen-lg-max) {\n .mdui-hidden-lg {\n display: none !important;\n }\n}\n@media (min-width: @screen-xl-min) {\n .mdui-hidden-xl {\n display: none !important;\n }\n}\n\n/* 在比特定屏幕小的设备上隐藏 */\n@media (max-width: @screen-xs-max) {\n .mdui-hidden-xs-down {\n display: none !important;\n }\n}\n@media (max-width: @screen-sm-max) {\n .mdui-hidden-sm-down {\n display: none !important;\n }\n}\n@media (max-width: @screen-md-max) {\n .mdui-hidden-md-down {\n display: none !important;\n }\n}\n@media (max-width: @screen-lg-max) {\n .mdui-hidden-lg-down {\n display: none !important;\n }\n}\n.mdui-hidden-xl-down {\n display: none !important;\n}\n\n/* 在比特定屏幕大的设备上隐藏 */\n.mdui-hidden-xs-up {\n display: none !important;\n}\n@media (min-width: @screen-sm-min) {\n .mdui-hidden-sm-up {\n display: none !important;\n }\n}\n@media (min-width: @screen-md-min) {\n .mdui-hidden-md-up {\n display: none !important;\n }\n}\n@media (min-width: @screen-lg-min) {\n .mdui-hidden-lg-up {\n display: none !important;\n }\n}\n@media (min-width: @screen-xl-min) {\n .mdui-hidden-xl-up {\n display: none !important;\n }\n}\n","/**\n * =============================================================================\n * ************ Icon 图标 ************\n * =============================================================================\n */\n\n.mdui-icon,\n.mdui-icon::before {\n color: inherit;\n font-weight: normal;\n font-size: 24px; /* Preferred icon size */\n font-style: normal;\n line-height: 1;\n direction: ltr;\n letter-spacing: normal;\n white-space: nowrap;\n text-transform: none;\n vertical-align: middle;\n word-wrap: normal;\n}\n\n.mdui-icon {\n display: inline-block;\n text-align: center;\n}\n\n.mdui-icon::before {\n display: block !important;\n width: 24px;\n height: 24px;\n}\n","/**\n * =============================================================================\n * ************ Material Icons ************\n * =============================================================================\n *\n * https://github.com/google/material-design-icons/\n * v3.0.1\n */\n\n@import './icon';\n\n@font-face {\n font-weight: 400;\n font-family: 'Material Icons';\n font-style: normal;\n src: local('Material Icons'), local('MaterialIcons-Regular'),\n url(../icons/material-icons/MaterialIcons-Regular.woff2) format('woff2'),\n url(../icons/material-icons/MaterialIcons-Regular.woff) format('woff');\n}\n\n.material-icons {\n /* stylelint-disable-next-line */\n font-family: 'Material Icons';\n\n /* Support for all WebKit browsers. */\n -webkit-font-smoothing: antialiased;\n\n /* Support for Safari and Chrome. */\n text-rendering: optimizeLegibility;\n\n /* Support for Firefox. */\n -moz-osx-font-smoothing: grayscale;\n\n /* Support for IE. */\n font-feature-settings: 'liga';\n}\n","/**\n * =============================================================================\n * ************ Media 媒体工具 ************\n * =============================================================================\n */\n\n/* 响应式图片和视频 */\n.mdui-img-fluid,\n.mdui-video-fluid {\n .mdui-img-fluid();\n}\n\n/* 圆角图片 */\n.mdui-img-rounded {\n border-radius: 2px;\n}\n\n/* 圆形图片 */\n.mdui-img-circle {\n border-radius: 50%;\n}\n\n// embed\n.mdui-video-container {\n position: relative;\n height: 0;\n padding-bottom: 56.25%;\n overflow: hidden;\n\n iframe,\n object,\n embed {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%\n }\n}\n",".mdui-img-fluid() {\n display: block;\n max-width: 100%;\n height: auto;\n}\n\n.mdui-video-fluid() {\n display: block;\n max-width: 100%;\n height: auto;\n}\n","/**\n * =============================================================================\n * ************ Roboto 字体 ************\n * =============================================================================\n */\n\n@font-face {\n font-weight: 100;\n font-family: 'Roboto';\n font-style: normal;\n font-display: swap;\n src: local('Roboto Thin'), local('Roboto-Thin'),\n url('../fonts/roboto/Roboto-Thin.woff2') format('woff2'),\n url('../fonts/roboto/Roboto-Thin.woff') format('woff');\n}\n\n@font-face {\n font-weight: 100;\n font-family: 'Roboto';\n font-style: italic;\n font-display: swap;\n src: local('Roboto ThinItalic'), local('Roboto-ThinItalic'),\n url('../fonts/roboto/Roboto-ThinItalic.woff2') format('woff2'),\n url('../fonts/roboto/Roboto-ThinItalic.woff') format('woff');\n}\n\n@font-face {\n font-weight: 300;\n font-family: 'Roboto';\n font-style: normal;\n font-display: swap;\n src: local('Roboto Light'), local('Roboto-Light'),\n url('../fonts/roboto/Roboto-Light.woff2') format('woff2'),\n url('../fonts/roboto/Roboto-Light.woff') format('woff');\n}\n\n@font-face {\n font-weight: 300;\n font-family: 'Roboto';\n font-style: italic;\n font-display: swap;\n src: local('Roboto LightItalic'), local('Roboto-LightItalic'),\n url('../fonts/roboto/Roboto-LightItalic.woff2') format('woff2'),\n url('../fonts/roboto/Roboto-LightItalic.woff') format('woff');\n}\n\n@font-face {\n font-weight: 400;\n font-family: 'Roboto';\n font-style: normal;\n font-display: swap;\n src: local('Roboto Regular'), local('Roboto-Regular'),\n url('../fonts/roboto/Roboto-Regular.woff2') format('woff2'),\n url('../fonts/roboto/Roboto-Regular.woff') format('woff');\n}\n\n@font-face {\n font-weight: 400;\n font-family: 'Roboto';\n font-style: italic;\n font-display: swap;\n src: local('Roboto RegularItalic'), local('Roboto-RegularItalic'),\n url('../fonts/roboto/Roboto-RegularItalic.woff2') format('woff2'),\n url('../fonts/roboto/Roboto-RegularItalic.woff') format('woff');\n}\n\n@font-face {\n font-weight: 500;\n font-family: 'Roboto';\n font-style: normal;\n font-display: swap;\n src: local('Roboto Medium'), local('Roboto-Medium'),\n url('../fonts/roboto/Roboto-Medium.woff2') format('woff2'),\n url('../fonts/roboto/Roboto-Medium.woff') format('woff');\n}\n\n@font-face {\n font-weight: 500;\n font-family: 'Roboto';\n font-style: italic;\n font-display: swap;\n src: local('Roboto MediumItalic'), local('Roboto-MediumItalic'),\n url('../fonts/roboto/Roboto-MediumItalic.woff2') format('woff2'),\n url('../fonts/roboto/Roboto-MediumItalic.woff') format('woff');\n}\n\n@font-face {\n font-weight: 700;\n font-family: 'Roboto';\n font-style: normal;\n font-display: swap;\n src: local('Roboto Bold'), local('Roboto-Bold'),\n url('../fonts/roboto/Roboto-Bold.woff2') format('woff2'),\n url('../fonts/roboto/Roboto-Bold.woff') format('woff');\n}\n\n@font-face {\n font-weight: 700;\n font-family: 'Roboto';\n font-style: italic;\n font-display: swap;\n src: local('Roboto BoldItalic'), local('Roboto-BoldItalic'),\n url('../fonts/roboto/Roboto-BoldItalic.woff2') format('woff2'),\n url('../fonts/roboto/Roboto-BoldItalic.woff') format('woff');\n}\n\n@font-face {\n font-weight: 900;\n font-family: 'Roboto';\n font-style: normal;\n font-display: swap;\n src: local('Roboto Black'), local('Roboto-Black'),\n url('../fonts/roboto/Roboto-Black.woff2') format('woff2'),\n url('../fonts/roboto/Roboto-Black.woff') format('woff');\n}\n\n@font-face {\n font-weight: 900;\n font-family: 'Roboto';\n font-style: italic;\n font-display: swap;\n src: local('Roboto BlackItalic'), local('Roboto-BlackItalic'),\n url('../fonts/roboto/Roboto-BlackItalic.woff2') format('woff2'),\n url('../fonts/roboto/Roboto-BlackItalic.woff') format('woff');\n}\n","/**\n * =============================================================================\n * ************ Typography 样式排版 ************\n * =============================================================================\n */\n\n/* .mdui-typo-display-4 */\n.mdui-typo-display-4,\n.mdui-typo-display-4-opacity {\n .mdui-typo-display-4();\n}\n.mdui-typo-display-4-opacity {\n ._mdui-typo-display-4-opacity();\n}\n\n/* .mdui-typo-display-3 */\n.mdui-typo-display-3,\n.mdui-typo-display-3-opacity {\n .mdui-typo-display-3();\n}\n.mdui-typo-display-3-opacity {\n ._mdui-typo-display-3-opacity();\n}\n\n/* .mdui-typo-display-2 */\n.mdui-typo-display-2,\n.mdui-typo-display-2-opacity {\n .mdui-typo-display-2();\n}\n.mdui-typo-display-2-opacity {\n ._mdui-typo-display-2-opacity();\n}\n\n/* .mdui-typo-display-1 */\n.mdui-typo-display-1,\n.mdui-typo-display-1-opacity {\n .mdui-typo-display-1();\n}\n.mdui-typo-display-1-opacity {\n ._mdui-typo-display-1-opacity();\n}\n\n/* .mdui-typo-headline */\n.mdui-typo-headline,\n.mdui-typo-headline-opacity {\n .mdui-typo-headline();\n}\n.mdui-typo-headline-opacity {\n ._mdui-typo-headline-opacity();\n}\n\n/* .mdui-typo-title */\n.mdui-typo-title,\n.mdui-typo-title-opacity {\n .mdui-typo-title();\n}\n.mdui-typo-title-opacity {\n ._mdui-typo-title-opacity();\n}\n\n.mdui-typo-subheading,\n.mdui-typo-subheading-opacity {\n .mdui-typo-subheading();\n}\n.mdui-typo-subheading-opacity {\n ._mdui-typo-subheading-opacity();\n}\n\n.mdui-typo-body-2,\n.mdui-typo-body-2-opacity {\n .mdui-typo-body-2();\n}\n.mdui-typo-body-2-opacity {\n ._mdui-typo-body-2-opacity();\n}\n\n.mdui-typo-body-1,\n.mdui-typo-body-1-opacity {\n .mdui-typo-body-1();\n}\n.mdui-typo-body-1-opacity {\n ._mdui-typo-body-1-opacity();\n}\n\n.mdui-typo-caption,\n.mdui-typo-caption-opacity {\n .mdui-typo-caption();\n}\n.mdui-typo-caption-opacity {\n ._mdui-typo-caption-opacity();\n}\n","._mdui-typo-display-4-opacity() {\n opacity: 0.54;\n}\n.mdui-typo-display-4(@opacity: false) {\n font-weight: 300;\n font-size: 112px;\n letter-spacing: -0.04em;\n & when (@opacity = true) {\n ._mdui-typo-display-4-opacity();\n }\n & when (isnumber(@opacity)) {\n opacity: @opacity;\n }\n}\n\n._mdui-typo-display-3-opacity() {\n opacity: 0.54;\n}\n.mdui-typo-display-3(@opacity: false) {\n font-weight: 400;\n font-size: 56px;\n letter-spacing: -0.02em;\n & when (@opacity = true) {\n ._mdui-typo-display-3-opacity();\n }\n & when (isnumber(@opacity)) {\n opacity: @opacity;\n }\n}\n\n._mdui-typo-display-2-opacity() {\n opacity: 0.54;\n}\n.mdui-typo-display-2(@opacity: false) {\n font-weight: 400;\n font-size: 45px;\n letter-spacing: 0;\n & when (@opacity = true) {\n ._mdui-typo-display-2-opacity();\n }\n & when (isnumber(@opacity)) {\n opacity: @opacity;\n }\n}\n\n._mdui-typo-display-1-opacity() {\n opacity: 0.54;\n}\n.mdui-typo-display-1(@opacity: false) {\n font-weight: 400;\n font-size: 34px;\n letter-spacing: 0;\n & when (@opacity = true) {\n ._mdui-typo-display-1-opacity();\n }\n & when (isnumber(@opacity)) {\n opacity: @opacity;\n }\n}\n\n._mdui-typo-headline-opacity() {\n opacity: 0.87;\n}\n.mdui-typo-headline(@opacity: false) {\n font-weight: 400;\n font-size: 24px;\n -moz-osx-font-smoothing: grayscale;\n & when (@opacity = true) {\n ._mdui-typo-headline-opacity();\n }\n & when (isnumber(@opacity)) {\n opacity: @opacity;\n }\n}\n\n._mdui-typo-title-opacity() {\n opacity: 0.87;\n}\n.mdui-typo-title(@opacity: false) {\n font-weight: 500;\n font-size: 20px;\n letter-spacing: 0.02em;\n & when (@opacity = true) {\n ._mdui-typo-title-opacity();\n }\n & when (isnumber(@opacity)) {\n opacity: @opacity;\n }\n}\n\n._mdui-typo-subheading-opacity() {\n opacity: 0.87;\n}\n.mdui-typo-subheading(@opacity: false) {\n font-weight: 400;\n font-size: 16px;\n letter-spacing: 0.04em;\n & when (@opacity = true) {\n ._mdui-typo-subheading-opacity();\n }\n & when (isnumber(@opacity)) {\n opacity: @opacity;\n }\n}\n\n._mdui-typo-body-2-opacity() {\n opacity: 0.87;\n}\n.mdui-typo-body-2(@opacity: false) {\n font-weight: 500;\n font-size: 14px;\n letter-spacing: 0.04em;\n & when (@opacity = true) {\n ._mdui-typo-body-2-opacity();\n }\n & when (isnumber(@opacity)) {\n opacity: @opacity;\n }\n}\n\n._mdui-typo-body-1-opacity() {\n opacity: 0.87;\n}\n.mdui-typo-body-1(@opacity: false) {\n font-weight: 400;\n font-size: 14px;\n letter-spacing: 0.04em;\n & when (@opacity = true) {\n ._mdui-typo-body-1-opacity();\n }\n & when (isnumber(@opacity)) {\n opacity: @opacity;\n }\n}\n\n._mdui-typo-caption-opacity() {\n opacity: 0.54;\n}\n.mdui-typo-caption(@opacity: false) {\n font-weight: 400;\n font-size: 12px;\n letter-spacing: 0.08em;\n & when (@opacity = true) {\n ._mdui-typo-caption-opacity();\n }\n & when (isnumber(@opacity)) {\n opacity: @opacity;\n }\n}\n","/**\n * =============================================================================\n * ************ Typography 文章排版 ************\n * =============================================================================\n */\n\n.mdui-typo {\n line-height: 1.8;\n word-wrap: break-word;\n\n address, caption, cite, code, dfn, th {\n font-weight: 400;\n font-style: normal;\n }\n\n caption, th {\n text-align: left;\n }\n\n q::before, q::after {\n content: '';\n }\n\n pre, code, kbd, samp, pre tt {\n font-family: Consolas, Courier, 'Courier New', monospace;\n }\n\n figcaption {\n color: @color-black-secondary;\n font-size: 80%;\n }\n\n [draggable],\n [draggable=\"true\"] {\n cursor: move;\n }\n\n [draggable=\"false\"] {\n cursor: inherit;\n }\n\n p, pre, ul, ol, dl, form, hr, figure, table, .mdui-table, .mdui-table-fluid {\n margin: 0 0 1.2em 0;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n /* a */\n a {\n .mdui-text-color(@color-accent-default-name, a200);\n\n position: relative;\n display: inline-block;\n overflow: hidden;\n text-decoration: none;\n vertical-align: top;\n outline: none;\n\n &::before {\n position: absolute;\n top: auto;\n bottom: 1px;\n left: 0;\n width: 100%;\n height: 1px;\n background-color: @color-default-a200;\n transform: scaleX(0);\n backface-visibility: hidden;\n transition: all 0.2s;\n content: ' ';\n }\n\n &:hover::before,\n &:focus::before {\n transform: scaleX(1);\n }\n }\n\n /* small */\n small {\n font-size: 80%;\n }\n\n /* blockquote */\n blockquote {\n margin: 1em 3em 1em 2em;\n padding-left: 1em;\n font-weight: 400;\n border-left: 4px solid @color-black-divider;\n @media only screen and (max-width: @screen-xs-max) {\n margin: 1em 0;\n }\n\n &:last-child {\n margin-bottom: 0;\n }\n\n footer {\n color: @color-black-secondary;\n font-size: 86%;\n }\n }\n\n /* mark */\n mark {\n margin: 0 5px;\n padding: 2px;\n background: #fffdd1;\n border-bottom: 1px solid #ffedce;\n }\n\n /* h1 - h6 */\n h1, h2, h3, h4, h5, h6 {\n margin-top: 1.2em;\n margin-bottom: 0.6em;\n color: inherit;\n font-weight: 400;\n font-family: inherit;\n line-height: 1.35;\n\n &:last-child {\n margin-bottom: 0;\n }\n\n small {\n color: @color-black-secondary;\n font-weight: 400;\n font-size: 65%;\n line-height: 1;\n }\n }\n h1 {\n font-size: 2em;\n }\n h2 {\n font-size: 1.8em;\n }\n h3 {\n font-size: 1.6em;\n }\n h4 {\n font-size: 1.4em;\n }\n h5 {\n font-size: 1.2em;\n }\n h6 {\n font-size: 1.1em;\n }\n\n /* code */\n code {\n padding: 2px 6px;\n color: #c7254e;\n background-color: #f7f7f9;\n border-radius: 2px;\n }\n\n /* pre code */\n pre code {\n padding: 0;\n color: inherit;\n font-size: inherit;\n line-height: 1.7;\n background-color: transparent;\n border-radius: 0;\n }\n\n /* abbr */\n abbr[title] {\n text-decoration: none;\n border-bottom: 1px dotted;\n cursor: help;\n }\n\n /* ins */\n ins {\n text-decoration: none;\n border-bottom: 1px solid ;\n }\n\n /* u */\n u {\n text-decoration: none;\n border-bottom: 1px solid;\n }\n\n /* del */\n del {\n text-decoration: line-through;\n }\n\n /* hr */\n hr {\n height: 10px;\n margin-bottom: 0.8em;\n border: none;\n border-bottom: 1px solid @color-black-divider;\n }\n\n /* pre */\n pre {\n padding: 12px 16px;\n overflow-x: auto;\n border: 1px solid @color-black-divider;\n border-radius: 2px;\n -webkit-overflow-scrolling: touch;\n }\n\n /* kbd */\n kbd {\n padding: 2px 6px;\n color: #fff;\n font-size: 90%;\n background-color: #333;\n border-radius: 2px;\n }\n\n /* ul / ol */\n ul {\n padding-left: 2em;\n list-style: disc;\n }\n ol {\n padding-left: 2em;\n list-style: decimal;\n }\n li ul,\n li ol {\n margin: 0.8em 0;\n }\n li ul {\n list-style: circle;\n }\n\n /* img, video */\n img, video {\n max-width: 100%;\n }\n\n figure {\n text-align: center;\n\n figcaption {\n margin-top: 8px;\n color: #999;\n font-size: 14px;\n }\n\n figcaption:empty::before {\n z-index: -1;\n color: #bfbfbf;\n cursor: text;\n content: attr(placeholder);\n }\n }\n}\n\n\n/**\n * =============================================================================\n * ************ Typo 强调色 ************\n * =============================================================================\n */\n& {\n .loop-accent-theme(@counter-color) when (@counter-color > 0) {\n .loop-accent-theme((@counter-color - 1));\n @colorName: extract(@globalAccentColors, @counter-color);\n\n .mdui-theme-accent-@{colorName} when not (@colorName = null) {\n .mdui-typo {\n a {\n .mdui-text-color(@colorName, a200);\n\n &::before {\n .mdui-background-color(@colorName, a200);\n }\n }\n }\n }\n\n }\n .loop-accent-theme(length(@globalAccentColors));\n}\n\n\n/**\n * =============================================================================\n * ************ Typo dark ************\n * =============================================================================\n */\n.layout-theme({\n .mdui-typo {\n\n blockquote {\n border-left-color: @color-white-divider;\n\n footer {\n color: @color-white-secondary;\n }\n }\n\n figcaption {\n color: @color-white-secondary;\n }\n\n mark {\n background: #aaa;\n border-bottom-color: #bbb;\n }\n\n h1, h2, h3, h4, h5, h6 {\n small {\n color: @color-white-secondary;\n }\n }\n\n code {\n color: @color-red-100;\n background-color: #424242;\n }\n\n pre {\n background: #424242;\n border-color: @color-white-divider;\n }\n\n kbd {\n background: #424242;\n }\n\n hr {\n border-color: @color-white-divider;\n }\n }\n});\n","/**\n * =============================================================================\n * ************ Grid 网格系统 ************\n * =============================================================================\n */\n\n@_screen-col-1: 8.333333%;\n@_screen-col-2: 16.666667%;\n@_screen-col-3: 25%;\n@_screen-col-4: 33.333333%;\n@_screen-col-5: 41.666667%;\n@_screen-col-6: 50%;\n@_screen-col-7: 58.333333%;\n@_screen-col-8: 66.666667%;\n@_screen-col-9: 75%;\n@_screen-col-10: 83.333333%;\n@_screen-col-11: 91.666667%;\n@_screen-col-12: 100%;\n\n// 等分列\n@_screen-average-1: 100%;\n@_screen-average-2: 50%;\n@_screen-average-3: 33.333333%;\n@_screen-average-4: 25%;\n@_screen-average-5: 20%;\n@_screen-average-6: 16.666667%;\n@_screen-average-7: 14.285714%;\n@_screen-average-8: 12.5%;\n@_screen-average-9: 11.111111%;\n@_screen-average-10: 10%;\n@_screen-average-11: 9.090909%;\n@_screen-average-12: 8.333333%;\n\n//间隔\n@grid-gap-8: 8px;\n@grid-gap-16: 16px;\n@grid-gap-24: 24px;\n@grid-gap-40: 40px;\n\n// 生成列、列偏移\n._grid_col_loop(@cols, @screen) when (@cols > 0) {\n ._grid_col_loop((@cols - 1), @screen);\n\n @widthName: '_screen-col-@{cols}';\n\n // 列宽度\n .mdui-col-@{screen}-@{cols} {\n float: left;\n width: @@widthName;\n }\n\n // 列偏移\n .mdui-col-offset-@{screen}-@{cols} {\n margin-left: @@widthName;\n }\n\n // 等分列\n @averageName: '_screen-average-@{cols}';\n .mdui-row-@{screen}-@{cols} .mdui-col {\n float: left;\n width: @@averageName;\n }\n}\n\n.mdui-container,\n.mdui-container-fluid {\n box-sizing: border-box;\n margin-right: auto;\n margin-left: auto;\n padding-right: @grid-gap-16 / 2;\n padding-left: @grid-gap-16 / 2;\n &::after{\n display: table;\n clear: both;\n content: '';\n }\n}\n\n.mdui-container {\n width: 96%;\n max-width: 1280px;\n @media (min-width: @screen-sm-min) {\n width: 94%;\n }\n @media (min-width: @screen-md-min) {\n width: 92%;\n }\n}\n\n.mdui-row,\n[class*=\"mdui-row-\"] {\n margin-right: -@grid-gap-16 / 2;\n margin-left: -@grid-gap-16 / 2;\n &::after {\n display: table;\n clear: both;\n content: '';\n }\n}\n\n[class*=\"mdui-col-xs-\"],\n[class*=\"mdui-col-sm-\"],\n[class*=\"mdui-col-md-\"],\n[class*=\"mdui-col-lg-\"],\n[class*=\"mdui-col-xl-\"],\n.mdui-col {\n position: relative;\n box-sizing: border-box;\n min-height: 1px;\n padding-right: @grid-gap-16 / 2;\n padding-left: @grid-gap-16 / 2;\n}\n\n/* 取消列间距 */\n.mdui-row-gapless {\n .mdui-col,\n [class*=\"mdui-col-xs-\"],\n [class*=\"mdui-col-sm-\"],\n [class*=\"mdui-col-md-\"],\n [class*=\"mdui-col-lg-\"],\n [class*=\"mdui-col-xl-\"] {\n padding-right: 0;\n padding-left: 0;\n }\n\n // 嵌套元素的内补\n .mdui-row,\n [class*=\"mdui-row-\"] {\n margin-right: 0;\n margin-left: 0;\n }\n}\n\n._grid_col_loop(12, ~\"xs\");\n\n@media (min-width: @screen-sm-min) {\n ._grid_col_loop(12, ~\"sm\");\n}\n\n@media (min-width: @screen-md-min) {\n ._grid_col_loop(12, ~\"md\");\n}\n\n@media (min-width: @screen-lg-min) {\n ._grid_col_loop(12, ~\"lg\");\n}\n\n@media (min-width: @screen-xl-min) {\n ._grid_col_loop(12, ~\"xl\");\n}","// 阴影\n.mdui-shadow(@depth) {\n @shadow: 'shadow-depth-@{depth}';\n\n box-shadow: @@shadow;\n}\n\n// hover 时添加阴影\n.mdui-hoverable(@depth: 8) {\n transition: box-shadow 0.25s @animation-curve-default;\n will-change: box-shadow;\n\n &:hover,\n &:focus {\n .mdui-shadow(@depth);\n }\n}\n","/**\n * =============================================================================\n * ************ Shadow 阴影 ************\n * =============================================================================\n */\n\n._md_shadow(@shadow) when (@shadow > -1) {\n ._md_shadow(@shadow - 1);\n\n .mdui-shadow-@{shadow} {\n .mdui-shadow(@shadow) !important;\n }\n}\n\n._md_shadow(24);\n\n/* 鼠标悬浮时加深阴影 */\n.mdui-hoverable {\n .mdui-hoverable(8);\n}\n","/**\n * =============================================================================\n * ************ Headroom ************\n * =============================================================================\n */\n\n .mdui-headroom {\n transition: all .3s @animation-curve-default !important;\n}\n\n/* 固定在顶部时 */\n.mdui-headroom-pinned-top {\n transform: translate3d(0, 0, 0) !important;\n}\n\n/* 在顶部隐藏时 */\n.mdui-headroom-unpinned-top {\n transform: translate3d(0, -100%, 0) !important;\n .mdui-shadow(0) !important;\n}\n\n/* 固定在底部时 */\n.mdui-headroom-pinned-down {\n transform: translate3d(0, 0, 0) !important;\n}\n\n/* 在底部隐藏时 */\n.mdui-headroom-unpinned-down {\n transform: translate3d(0, 100%, 0) !important;\n .mdui-shadow(0) !important;\n}\n\n/* 固定应用栏中的工具栏 */\n.mdui-headroom-pinned-toolbar {\n transform: translate3d(0, 0, 0) !important;\n}\n\n/* 隐藏应用栏中的工具栏 */\n.mdui-headroom-unpinned-toolbar {\n transform: translate3d(0, -@appbar-height-xs-portrait, 0) !important;\n\n // 平板和桌面\n @media (min-width: @screen-sm-min) {\n transform: translate3d(0, -@appbar-height-sm, 0) !important;\n }\n\n // 手机横屏\n @media (orientation: landscape) and (max-width: @screen-xs-max-landscape) {\n transform: translate3d(0, -@appbar-height-xs-landscape, 0) !important;\n }\n}\n","/**\n * =============================================================================\n * ************ Collapse 折叠插件 ************\n * =============================================================================\n */\n\n .mdui-collapse-item-header {\n // 图标,打开时翻转 180 度\n .mdui-collapse-item-arrow,\n &.mdui-collapse-item-arrow {\n transform: rotate(0);\n transition: transform .3s @animation-curve-default;\n will-change: transform;\n }\n}\n\n.mdui-collapse-item-body {\n height: 0;\n margin-top: 0;\n margin-bottom: 0;\n padding-top: 0;\n padding-bottom: 0;\n overflow: hidden;\n transition: all .3s @animation-curve-default;\n will-change: height;\n\n // 使子列表缩进\n .mdui-list-item {\n padding-left: 72px;\n }\n}\n\n.mdui-collapse-item-open {\n &>.mdui-collapse-item-header {\n .mdui-collapse-item-arrow,\n &.mdui-collapse-item-arrow {\n transform: rotate(180deg);\n }\n }\n\n &>.mdui-collapse-item-body {\n height: auto;\n }\n}\n","/**\n * =============================================================================\n * ************ Expansion panel 可扩展面板 ************\n * =============================================================================\n */\n\n/* 可扩展面板 */\n.mdui-panel {\n box-sizing: border-box;\n width: 100%;\n}\n\n/* 面板项 */\n.mdui-panel-item {\n color: @color-black-text;\n background-color: #fff;\n transition: margin .3s @animation-curve-default;\n will-change: margin;\n .mdui-divider-bottom-dark();\n .mdui-shadow(2);\n\n &:last-child {\n border-bottom: none;\n }\n}\n\n/* 面板头部 */\n.mdui-panel-item-header {\n position: relative;\n display: flex;\n align-items: center;\n box-sizing: border-box;\n width: 100%;\n height: 48px;\n padding: 0 24px;\n font-size: 15px;\n cursor: pointer;\n transition: all .3s @animation-curve-default;\n will-change: height, background-color;\n .mdui-text-truncate();\n\n &:active {\n background-color: @color-grey-200;\n }\n}\n\n/* 面板项标题 */\n.mdui-panel-item-title {\n box-sizing: border-box;\n width: 36%;\n min-width: 36%;\n padding-right: 16px;\n font-weight: 500;\n .mdui-text-truncate();\n}\n\n/* 面板项内容 */\n.mdui-panel-item-summary {\n flex-grow: 1;\n box-sizing: border-box;\n padding-right: 16px;\n color: @color-black-secondary;\n .mdui-text-truncate();\n}\n\n/* 展开收起的图标 */\n.mdui-panel-item-arrow {\n position: absolute;\n top: 12px;\n right: 24px;\n color: @color-black-icon;\n transform: rotate(0);\n transition: all .3s @animation-curve-default;\n user-select: none;\n will-change: transform, top;\n}\n\n.mdui-panel-item-summary + .mdui-panel-item-arrow {\n position: relative;\n top: 0 !important;\n right: 0;\n}\n\n/* 面板项内容 */\n.mdui-panel-item-body {\n height: 0;\n padding: 0 24px;\n overflow: hidden;\n transition: height .3s @animation-curve-default;\n will-change: height;\n .mdui-clearfix();\n\n &::after {\n height: 16px;\n }\n}\n\n/* 面板项操作栏 */\n.mdui-panel-item-actions {\n display: block;\n width: 100%;\n margin: 16px -24px 0 -24px;\n padding: 16px 24px 0 24px;\n text-align: right;\n .mdui-divider-top-dark();\n\n .mdui-btn {\n margin-left: 8px;\n\n &:first-child {\n margin-left: 0;\n }\n }\n}\n\n/* 打开状态的面板项 */\n.mdui-panel-item-open {\n height: auto;\n margin-top: 16px;\n margin-bottom: 16px;\n\n // 打开状态的面板头部更高\n &>.mdui-panel-item-header {\n height: 64px;\n\n .mdui-panel-item-arrow {\n top: 20px;\n transform: rotate(180deg);\n }\n }\n\n &>.mdui-panel-item-body {\n height: auto;\n }\n}\n\n/* 使打开项上下没有边距 */\n.mdui-panel-gapless {\n .mdui-shadow(2);\n\n .mdui-panel-item {\n .mdui-shadow(0);\n }\n\n .mdui-panel-item-open {\n margin-top: 0;\n margin-bottom: 0;\n }\n}\n\n/* 弹出面板 */\n.mdui-panel-popout {\n .mdui-panel-item-open {\n margin-right: -16px;\n margin-left: -16px;\n }\n}\n\n\n/**\n * =============================================================================\n * ************ Expansion panel dark ************\n * =============================================================================\n */\n.layout-theme({\n .mdui-panel-item {\n color: #fff;\n background-color: @layout-dark-color-3;\n .mdui-divider-bottom-light();\n\n &:last-child {\n border-bottom: none;\n }\n }\n .mdui-panel-item-header {\n &:active {\n background-color: @color-grey-800;\n }\n }\n .mdui-panel-item-summary {\n color: @color-white-secondary;\n }\n\n /* stylelint-disable-next-line */\n .mdui-panel-item-arrow {\n color: @color-white-icon;\n }\n .mdui-panel-item-actions {\n .mdui-divider-top-light();\n }\n});\n","// 分割线\n// =============================================================================\n\n// 添加边框作为分割线,亮色的分割线,用于深色背景\n.mdui-divider-top-light() {\n border-top: 1px solid @color-white-divider;\n}\n.mdui-divider-bottom-light() {\n border-bottom: 1px solid @color-white-divider;\n}\n.mdui-divider-left-light() {\n border-left: 1px solid @color-white-divider;\n}\n.mdui-divider-right-light() {\n border-right: 1px solid @color-white-divider;\n}\n\n// 添加边框作为分割线,深色的分割线,用于浅色背景\n.mdui-divider-top-dark() {\n border-top: 1px solid @color-black-divider;\n}\n.mdui-divider-bottom-dark() {\n border-bottom: 1px solid @color-black-divider;\n}\n.mdui-divider-left-dark() {\n border-left: 1px solid @color-black-divider;\n}\n.mdui-divider-right-dark() {\n border-right: 1px solid @color-black-divider;\n}\n","/**\n * =============================================================================\n * ************ Table 表格 ************\n * =============================================================================\n */\n\n@import '../selection_control/checkbox';\n\n.mdui-table {\n position: relative;\n width: 100%;\n background-color: #fff;\n border: 1px solid @color-black-divider;\n border-bottom: none;\n border-collapse: separate;\n border-spacing: 0;\n .mdui-shadow(2);\n\n tbody {\n tr {\n position: relative;\n transition: background-color 0.28s @animation-curve-default;\n }\n }\n\n th, td {\n position: relative;\n box-sizing: border-box;\n padding: 12px 28px;\n text-align: left;\n vertical-align: middle;\n .mdui-divider-bottom-dark();\n }\n\n th {\n color: @color-black-secondary;\n font-weight: 700;\n font-size: 13px;\n line-height: 32px;\n .mdui-text-truncate();\n }\n\n td {\n color: @color-black-text;\n font-size: 14px;\n line-height: 24px;\n }\n}\n\n/* 每一行前面的复选框 */\n.mdui-table-cell-checkbox {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n padding-left: 24px !important;\n\n .mdui-checkbox {\n margin-top: 7px;\n }\n\n & + td,\n & + th {\n padding-left: 6px !important;\n }\n}\nth.mdui-table-cell-checkbox {\n .mdui-checkbox {\n margin-top: 11px;\n }\n}\n\n.mdui-table {\n th, td {\n &:last-child {\n padding-right: 24px;\n }\n &:first-child {\n padding-right: 0;\n padding-left: 24px\n }\n &:nth-child(2) {\n padding-left: 24px;\n }\n }\n}\n\n/* 鼠标悬浮时行背景加深 */\n.mdui-table-hoverable {\n tbody tr {\n &:hover {\n background-color: @color-grey-200;\n }\n }\n}\n\n/* 表格放到该元素内,使表格产生滚动条时只在该元素内滚动 */\n.mdui-table-fluid {\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n border: 1px solid @color-black-divider;\n border-bottom: none;\n .mdui-shadow(2);\n\n .mdui-table {\n .mdui-shadow(0);\n\n margin: 0;\n border: none;\n }\n}\n\n/* 数字列,右对齐 */\n.mdui-table-col-numeric {\n text-align: right !important;\n}\n\n/* 行处于选中状态 */\n.mdui-table-row-selected {\n background-color: @color-grey-100;\n}\n\n\n/**\n * =============================================================================\n * ************ Table dark ************\n * =============================================================================\n */\n.layout-theme({\n .mdui-table {\n background-color: @layout-dark-color-3;\n border: 1px solid @color-white-divider;\n border-bottom: none;\n\n th, td {\n .mdui-divider-bottom-light();\n }\n\n th {\n color: @color-white-secondary;\n }\n\n td {\n color: @color-white-text;\n }\n }\n\n .mdui-table-hoverable {\n tbody tr {\n &:hover {\n background-color: @color-grey-700;\n }\n }\n }\n\n .mdui-table-fluid {\n border: 1px solid @color-white-divider;\n border-bottom: none;\n\n .mdui-table {\n .mdui-shadow(0);\n\n border: none;\n }\n }\n\n .mdui-table-row-selected {\n background-color: @color-grey-800;\n }\n});\n","/**\n * =============================================================================\n * ************ Divider 分割线 ************\n * =============================================================================\n */\n\n.mdui-divider,\n.mdui-divider-light,\n.mdui-divider-dark,\n.mdui-divider-inset,\n.mdui-divider-inset-light,\n.mdui-divider-inset-dark {\n height: 1px;\n margin: -1px 0 0 0;\n border: none;\n}\n\n.mdui-divider-inset,\n.mdui-divider-inset-light,\n.mdui-divider-inset-dark {\n margin-left: 72px;\n}\n\n.mdui-divider,\n.mdui-divider-inset {\n background-color: @color-black-divider;\n}\n\n.mdui-divider-light,\n.mdui-divider-inset-light {\n background-color: @color-white-divider;\n}\n\n.mdui-divider-dark,\n.mdui-divider-inset-dark {\n background-color: @color-black-divider;\n}\n\n/**\n * =============================================================================\n * ************ Divider dark ************\n * =============================================================================\n */\n.layout-theme({\n .mdui-divider,\n .mdui-divider-inset {\n background-color: @color-white-divider;\n }\n});\n","/**\n * =============================================================================\n * ************ 涟漪动画 ************\n * =============================================================================\n */\n\n.mdui-ripple {\n position: relative;\n overflow: hidden;\n cursor: pointer;\n user-select: none;\n}\n\n/* Ripple */\n.mdui-ripple-wave {\n position: absolute !important;\n top: 0;\n left: 0;\n z-index: 1;\n margin: 0;\n padding: 0;\n font-size: 0;\n background-color: rgba(0, 0, 0, 0.1);\n border-radius: 50%;\n transform: translate3d(0, 0, 0) scale(0);\n transition-duration: 1400ms;\n pointer-events: none;\n}\n\n/* 有背景色的默认使用白色涟漪 */\n.mdui-ripple[class*=\"mdui-color-\"] {\n .mdui-ripple-wave {\n background-color: rgba(255, 255, 255, 0.3);\n }\n}\n\n/* 白色涟漪 */\n.mdui-ripple-white .mdui-ripple-wave {\n background-color: rgba(255, 255, 255, 0.3) !important;\n}\n\n/* 黑色涟漪 */\n.mdui-ripple-black .mdui-ripple-wave {\n background-color: rgba(0, 0, 0, 0.1) !important;\n}\n\n.mdui-ripple-wave-fill {\n opacity: 0.35;\n transition-duration: 300ms;\n}\n\n.mdui-ripple-wave-out {\n opacity: 0;\n transition-duration: 600ms;\n}\n\n\n/**\n * =============================================================================\n * ************ Ripple 颜色 ************\n * =============================================================================\n */\n& {\n .loop-primary-theme(@counter-color) when (@counter-color > 0) {\n .loop-primary-theme((@counter-color - 1));\n @colorName: extract(@globalPrimaryColors, @counter-color);\n\n // 指定涟漪颜色\n .mdui-ripple-@{colorName} when not (@colorName = null) {\n .mdui-ripple-wave {\n @color: 'color-@{colorName}-500';\n\n background-color: rgba(red(@@color), green(@@color), blue(@@color), 0.3) !important;\n }\n }\n\n }\n .loop-primary-theme(length(@globalPrimaryColors));\n}\n\n\n/**\n * =============================================================================\n * ************ Ripple dark ************\n * =============================================================================\n */\n.layout-theme({\n // 深色主题下使用白色涟漪\n .mdui-ripple-wave {\n background-color: rgba(255, 255, 255, 0.3);\n }\n});\n","/**\n * =============================================================================\n * ************ Text Field 文本框 ************\n * =============================================================================\n */\n\n/* 文本框外层 */\n.mdui-textfield {\n position: relative;\n padding-top: 16px;\n padding-bottom: 8px;\n overflow: hidden;\n}\n\n.mdui-textfield-has-bottom {\n padding-bottom: 28px;\n}\n\n/* 输入框 */\n.mdui-textfield-input {\n display: block;\n box-sizing: border-box;\n width: 100%;\n height: 36px;\n margin: 0;\n padding: 8px 0;\n overflow: hidden;\n color: rgba(0, 0, 0, 0.87);\n font-size: 16px;\n font-family: inherit;\n line-height: 20px;\n background: none;\n border: none;\n border-bottom: 1px solid rgba(0, 0, 0, .42);\n border-radius: 0;\n outline: none;\n box-shadow: none;\n transition-timing-function: @animation-curve-default;\n transition-duration: .2s;\n transition-property: border-bottom-color, padding-right, box-shadow;\n appearance: none;\n resize: none;\n\n &::-webkit-input-placeholder {\n color: inherit;\n opacity: 0.42;\n }\n\n &:not([disabled]):hover {\n border-bottom: 1px solid rgba(0, 0, 0, .87);\n box-shadow: 0 1px 0 0 rgba(0, 0, 0, .87);\n cursor: pointer;\n }\n\n &[rows] {\n height: auto !important;\n overflow: auto;\n -webkit-overflow-scrolling: touch;\n }\n}\n\n/* 文本框 label */\n.mdui-textfield-label {\n display: block;\n width: 100%;\n color: rgba(0, 0, 0, 0.54);\n font-size: 16px;\n transform: scale(0.75) translateY(0);\n transform-origin: left;\n transition: all .2s;\n pointer-events: none;\n}\n\n/* 表单验证错误提示、帮助文本提示 */\n.mdui-textfield-error,\n.mdui-textfield-helper {\n position: absolute;\n bottom: 8px;\n height: 12px;\n font-size: 12px;\n line-height: 12px;\n .mdui-text-truncate();\n}\n\n.mdui-textfield-error {\n color: rgba(red(@color-red-a400), green(@color-red-a400), blue(@color-red-a400), .87);\n visibility: hidden;\n}\n\n.mdui-textfield-helper {\n color: rgba(0, 0, 0, 0.54);\n}\n\n\n/* 表单中的图标\n ========== */\n.mdui-textfield {\n .mdui-icon {\n position: absolute;\n bottom: 8px;\n padding: 6px;\n color: @color-black-icon;\n\n ~ .mdui-textfield-label,\n ~ .mdui-textfield-input,\n ~ .mdui-textfield-error,\n ~ .mdui-textfield-helper,\n ~ .mdui-textfield-flex-wrap {\n /* stylelint-disable-next-line */\n width: calc(~\"100% - 56px\");\n margin-left: 56px;\n }\n }\n}\n\n.mdui-textfield-has-bottom {\n .mdui-icon {\n bottom: 28px;\n }\n}\n\n/* 聚焦状态的文本框\n ============= */\n.mdui-textfield-focus {\n\n .mdui-textfield-input,\n .mdui-textfield-input:hover {\n border-bottom-color: @color-default-a700;\n box-shadow: 0 1px 0 0 @color-default-a700;\n }\n\n .mdui-textfield-label,\n .mdui-icon {\n color: rgba(red(@color-default-a700), green(@color-default-a700), blue(@color-default-a700), .87);\n }\n}\n\n/* 含有浮动标签的文本框\n ================ */\n.mdui-textfield-floating-label {\n\n .mdui-textfield-label {\n color: rgba(0, 0, 0, 0.35);\n transform: scale(1) translateY(27px);\n }\n\n &.mdui-textfield-focus,\n &.mdui-textfield-not-empty {\n .mdui-textfield-label {\n color: rgba(0, 0, 0, 0.65);\n transform: scale(0.75) translateY(0);\n }\n }\n &.mdui-textfield-focus {\n .mdui-textfield-label {\n .mdui-text-color(@color-accent-default-name);\n }\n }\n}\n\n/* 可展开文本框,默认向右展开\n ========== */\n.mdui-textfield-expandable {\n width: 36px;\n min-height: 36px;\n padding: 1px 0;\n transition: width .3s @animation-curve-default;\n\n .mdui-icon {\n bottom: 0;\n padding: 0;\n }\n\n .mdui-textfield-input {\n /* stylelint-disable-next-line */\n width: calc(~\"100% - 36px\");\n margin-left: 36px;\n padding-right: 0;\n }\n\n .mdui-textfield-icon {\n position: absolute;\n top: 0;\n left: 0;\n }\n\n .mdui-textfield-close {\n position: absolute;\n top: 0;\n right: 0;\n transform: scale(0);\n }\n\n &.mdui-textfield-expanded {\n width: 100%;\n\n .mdui-textfield-input {\n padding-right: 36px;\n }\n\n .mdui-textfield-close {\n transform: scale(1);\n }\n }\n}\n\n/* 表单验证不通过\n =========== */\n.mdui-textfield-invalid,\n.mdui-textfield-invalid-html5 {\n\n .mdui-textfield-input,\n &.mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: @color-red-a400 !important;\n box-shadow: 0 1px 0 0 @color-red-a400 !important;\n }\n\n .mdui-textfield-label {\n color: @color-red-a400 !important;\n }\n\n &.mdui-textfield-floating-label {\n .mdui-textfield-label {\n color: rgba(red(@color-red-a400), green(@color-red-a400), blue(@color-red-a400), 0.35) !important;\n }\n\n &.mdui-textfield-focus,\n &.mdui-textfield-not-empty {\n .mdui-textfield-label {\n color: @color-red-a400 !important;\n }\n }\n }\n\n .mdui-textfield-error {\n visibility: visible;\n\n &+.mdui-textfield-helper {\n visibility: hidden;\n }\n }\n}\n\n/* 禁用表单\n ====== */\n.mdui-textfield-disabled {\n .mdui-textfield-label,\n .mdui-textfield-input::-webkit-input-placeholder {\n color: @color-black-disabled;\n }\n\n .mdui-textfield-input {\n color: rgba(0, 0, 0, .42);\n cursor: default;\n }\n\n .mdui-textfield-input {\n border-bottom: 1px dashed rgba(0, 0, 0, .42);\n }\n}\n\n/* 字数统计\n ====== */\n.mdui-textfield-counter {\n position: absolute;\n right: 8px;\n bottom: 8px;\n height: 12px;\n color: @color-black-secondary;\n font-size: 12px;\n line-height: 12px;\n}\n\n\n/**\n * =============================================================================\n * ************ Textfield dark ************\n * =============================================================================\n */\n.layout-theme({\n // 输入框颜色\n .mdui-textfield-input {\n color: #fff;\n border-bottom-color: rgba(255, 255, 255, .7);\n\n &::-webkit-input-placeholder {\n color: rgba(255, 255, 255, .5);\n }\n\n &:not([disabled]):hover {\n border-bottom-color: rgba(255, 255, 255, 1);\n box-shadow: 0 1px 0 0 rgba(255, 255, 255, 1);\n }\n }\n\n // 图标颜色\n .mdui-textfield {\n .mdui-icon {\n color: rgba(255, 255, 255, 0.7);\n }\n }\n\n // 标签颜色\n .mdui-textfield-label {\n color: rgba(255, 255, 255, 0.7);\n }\n\n .mdui-textfield-floating-label {\n .mdui-textfield-label {\n color: rgba(255, 255, 255, 0.35);\n }\n }\n\n // 错误文本颜色\n .mdui-textfield-error {\n color: @color-red-a400;\n }\n\n // 帮助文本颜色\n .mdui-textfield-helper {\n color: rgba(255, 255, 255, 0.7);\n }\n\n // 字数统计颜色\n .mdui-textfield-counter {\n color: @color-white-secondary;\n }\n\n // 聚焦状态\n .mdui-textfield-focus {\n\n .mdui-textfield-input,\n .mdui-textfield-input:hover {\n border-bottom-color: @color-default-a200;\n box-shadow: 0 1px 0 0 @color-default-a200;\n }\n\n .mdui-textfield-label {\n color: @color-default-a200;\n }\n }\n\n // 禁用状态\n .mdui-textfield-disabled {\n .mdui-textfield-label,\n .mdui-textfield-input::-webkit-input-placeholder {\n color: @color-white-disabled;\n }\n\n .mdui-textfield-input {\n color: @color-white-disabled;\n }\n\n .mdui-textfield-input {\n border-bottom-color: rgba(255, 255, 255, .7);\n }\n }\n});\n\n\n/**\n * =============================================================================\n * ************ Textfield 强调色 ************\n * =============================================================================\n */\n& {\n .loop-accent-theme(@counter-color) when (@counter-color > 0) {\n .loop-accent-theme((@counter-color - 1));\n @colorName: extract(@globalAccentColors, @counter-color);\n\n .mdui-theme-accent-@{colorName} when not (@colorName = null) {\n\n @colorA700: 'color-@{colorName}-a700';\n @colorA200: 'color-@{colorName}-a200';\n\n .mdui-textfield-focus {\n\n .mdui-textfield-input {\n border-bottom-color: @@colorA700;\n box-shadow: 0 1px 0 0 @@colorA700;\n }\n\n .mdui-textfield-label,\n .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n .mdui-icon {\n color: rgba(red(@@colorA700), green(@@colorA700), blue(@@colorA700), .87);\n }\n }\n\n // 暗色主题\n & {\n .dark-mode() {\n .mdui-textfield-focus {\n\n .mdui-textfield-input {\n border-bottom-color: @@colorA200;\n box-shadow: 0 1px 0 0 @@colorA200;\n }\n\n .mdui-textfield-label,\n .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n .mdui-icon {\n color: @@colorA200;\n }\n }\n }\n\n & when (@globalLayoutDark = true) {\n &.mdui-theme-layout-dark {\n .dark-mode();\n }\n }\n\n & when (@globalLayoutAuto = true) {\n @media (prefers-color-scheme: dark) {\n &.mdui-theme-layout-auto {\n .dark-mode();\n }\n }\n }\n }\n }\n }\n .loop-accent-theme(length(@globalAccentColors));\n}\n","/**\n * =============================================================================\n * ************ Checkbox 复选框 ************\n * =============================================================================\n */\n\n.mdui-checkbox {\n position: relative;\n display: inline-block;\n height: 36px;\n padding-left: 36px;\n line-height: 36px;\n cursor: pointer;\n user-select: none;\n\n // 隐藏系统 input 标签,用自定义的图标代替\n input[type=\"checkbox\"] {\n position: absolute;\n width: 0;\n height: 0;\n overflow: hidden;\n opacity: 0;\n }\n}\n\n/* 透明的圆形,用于生成圆形阴影 */\n.mdui-checkbox-icon {\n position: absolute;\n top: 9px;\n left: 0;\n display: inline-block;\n width: 18px;\n height: 18px;\n vertical-align: middle;\n background-color: transparent;\n border: none;\n border-radius: 18px;\n transition: box-shadow .14s @animation-curve-default;\n\n // 图标的边框和背景\n &::after {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 0;\n box-sizing: border-box;\n width: 18px;\n height: 18px;\n border: 2px solid @color-black-icon;\n border-radius: 2px;\n transition: all .3s @animation-curve-default;\n content: ' ';\n }\n\n // 选中状态图标内部的勾\n &::before {\n position: absolute;\n top: 2px;\n left: 0;\n z-index: 1;\n box-sizing: border-box;\n width: 8px;\n height: 13px;\n border-right: 2px solid #fff;\n border-bottom: 2px solid #fff;\n transform: rotateZ(37deg) scale(0);\n transform-origin: 100% 100%;\n opacity: 0;\n transition: all .3s @animation-curve-default;\n content: ' ';\n }\n}\n\n/* 各种状态的图标 */\n.mdui-checkbox input[type=\"checkbox\"] {\n\n // 选中状态的图标\n &:checked + .mdui-checkbox-icon {\n &::after {\n background-color: @color-default-a200;\n border-color: @color-default-a200;\n }\n\n &::before {\n transform: rotateZ(37deg) scale(1);\n opacity: 1;\n }\n }\n\n // 不确定状态的图标\n &:indeterminate + .mdui-checkbox-icon {\n &::after {\n background-color: @color-default-a200;\n border-color: @color-default-a200;\n }\n\n &::before {\n top: 8px;\n left: 3px;\n width: 12px;\n height: 0;\n border-right: none;\n border-bottom: 2px solid #fff;\n border-radius: 1px;\n transform: rotateZ(0) scale(1);\n opacity: 1;\n }\n }\n\n // 禁用状态的图标\n &:disabled + .mdui-checkbox-icon {\n &::after {\n border-color: @color-black-icon-disabled;\n }\n }\n\n // 禁用且选中状态\n &:disabled:checked + .mdui-checkbox-icon,\n &:disabled:indeterminate + .mdui-checkbox-icon {\n &::after {\n background-color: @color-black-icon-disabled !important;\n border-color: transparent !important;\n }\n }\n}\n\n/* 阴影 */\n.mdui-checkbox:active input[type=\"checkbox\"],\n.mdui-checkbox input[type=\"checkbox\"]:focus {\n // 未选中、禁用时 按下的阴影\n & + .mdui-checkbox-icon {\n box-shadow: 0 0 0 15px rgba(0, 0, 0, 0.1);\n }\n\n // 已选中时按下的阴影\n &:not(:disabled):checked,\n &:not(:disabled):indeterminate {\n & + .mdui-checkbox-icon {\n box-shadow: 0 0 0 15px rgba(red(@color-default-a200), green(@color-default-a200), blue(@color-default-a200), 0.16);\n }\n }\n}\n\n\n/**\n * =============================================================================\n * ************ Checkbox 强调色 ************\n * =============================================================================\n */\n\n& {\n .loop-accent-theme(@counter-color) when (@counter-color > 0) {\n .loop-accent-theme((@counter-color - 1));\n @colorName: extract(@globalAccentColors, @counter-color);\n\n @color: 'color-@{colorName}-a200';\n\n .mdui-theme-accent-@{colorName} when not (@colorName = null) {\n\n // 选中状态的图标\n .mdui-checkbox input[type=\"checkbox\"]:checked,\n .mdui-checkbox input[type=\"checkbox\"]:indeterminate {\n & + .mdui-checkbox-icon::after {\n background-color: @@color;\n border-color: @@color;\n }\n }\n\n // 已选中时按下的阴影\n .mdui-checkbox:active input[type=\"checkbox\"],\n .mdui-checkbox input[type=\"checkbox\"]:focus {\n &:not(:disabled):checked + .mdui-checkbox-icon,\n &:not(:disabled):indeterminate + .mdui-checkbox-icon {\n box-shadow: 0 0 0 15px rgba(red(@@color), green(@@color), blue(@@color), 0.16);\n }\n }\n }\n }\n .loop-accent-theme(length(@globalAccentColors));\n}\n\n\n/**\n * =============================================================================\n * ************ Checkbox dark ************\n * =============================================================================\n */\n.layout-theme({\n // 未选中的图标\n .mdui-checkbox-icon {\n &::after {\n border-color: rgba(255, 255, 255, 0.7);\n }\n\n &::before {\n border-right-color: @layout-dark-color-3 !important;\n border-bottom-color: @layout-dark-color-3 !important;\n }\n }\n\n // 禁用状态\n .mdui-checkbox input[type=\"checkbox\"]:disabled + .mdui-checkbox-icon {\n &::after {\n border-color: @color-white-icon-disabled;\n }\n }\n\n // 禁用且选中状态\n .mdui-checkbox input[type=\"checkbox\"] {\n &:disabled:checked + .mdui-checkbox-icon,\n &:disabled:indeterminate + .mdui-checkbox-icon {\n &::after {\n background-color: @color-white-icon-disabled !important;\n border-color: transparent !important;\n }\n }\n }\n\n // 未选中或禁用时 按下的阴影\n .mdui-checkbox:active input[type=\"checkbox\"],\n .mdui-checkbox input[type=\"checkbox\"]:focus {\n & + .mdui-checkbox-icon {\n box-shadow: 0 0 0 15px rgba(255, 255, 255, 0.1);\n }\n }\n});\n","/**\n * =============================================================================\n * ************ Radio 单选框 ************\n * =============================================================================\n */\n\n.mdui-radio {\n position: relative;\n display: inline-block;\n height: 36px;\n padding-left: 36px;\n line-height: 36px;\n cursor: pointer;\n user-select: none;\n\n // 隐藏系统 input 标签,用自定义的图标代替\n input {\n position: absolute;\n width: 0;\n height: 0;\n overflow: hidden;\n opacity: 0;\n }\n}\n\n/* 图标外圈 */\n.mdui-radio-icon {\n position: absolute;\n top: 9px;\n left: 0;\n display: inline-block;\n box-sizing: border-box;\n width: 18px;\n height: 18px;\n vertical-align: middle;\n border: 2px solid @color-black-icon;\n border-radius: 18px;\n transition: all .3s @animation-curve-default,\n box-shadow .14s @animation-curve-default;\n\n // 图标内部圆圈\n &::before {\n position: absolute;\n top: 0;\n left: 0;\n width: 14px;\n height: 14px;\n background-color: @color-default-a200;\n border-radius: 14px;\n transform: scale(0);\n opacity: 0;\n transition: all .3s @animation-curve-default;\n content: ' ';\n }\n}\n\n/* 选中状态的图标 */\n.mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon {\n border-color: @color-default-a200;\n\n &::before {\n transform: scale(0.68);\n opacity: 1;\n }\n}\n\n/* 禁用状态的图标 */\n.mdui-radio input[type=\"radio\"]:disabled + .mdui-radio-icon {\n border-color: @color-black-icon-disabled !important;\n}\n\n/* 禁用且选中状态的图标 */\n.mdui-radio input[type=\"radio\"]:disabled:checked + .mdui-radio-icon {\n &::before {\n background-color: @color-black-icon-disabled !important;\n }\n}\n\n/* 未选中、禁用时 按下的阴影 */\n.mdui-radio:active input[type=\"radio\"],\n.mdui-radio input[type=\"radio\"]:focus {\n & + .mdui-radio-icon {\n box-shadow: 0 0 0 15px rgba(0, 0, 0, 0.1);\n }\n}\n\n/* 已选中时按下的阴影 */\n.mdui-radio:active input[type=\"radio\"],\n.mdui-radio input[type=\"radio\"]:focus {\n &:checked:not(:disabled) + .mdui-radio-icon {\n box-shadow: 0 0 0 15px rgba(red(@color-default-a200), green(@color-default-a200), blue(@color-default-a200), 0.16);\n }\n}\n\n/**\n * =============================================================================\n * ************ Radio 强调色 ************\n * =============================================================================\n */\n\n& {\n .loop-accent-theme(@counter-color) when (@counter-color > 0) {\n .loop-accent-theme((@counter-color - 1));\n @colorName: extract(@globalAccentColors, @counter-color);\n\n @color: 'color-@{colorName}-a200';\n\n .mdui-theme-accent-@{colorName} when not (@colorName = null) {\n\n // 选中状态的图标\n .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon {\n border-color: @@color;\n\n &::before {\n background-color: @@color;\n }\n }\n\n // 已选中时按下的阴影\n .mdui-radio:active input[type=\"radio\"],\n .mdui-radio input[type=\"radio\"]:focus {\n &:checked:not(:disabled) + .mdui-radio-icon {\n box-shadow: 0 0 0 15px rgba(red(@@color), green(@@color), blue(@@color), 0.16);\n }\n }\n\n }\n }\n .loop-accent-theme(length(@globalAccentColors));\n}\n\n\n/**\n * =============================================================================\n * ************ Radio dark ************\n * =============================================================================\n */\n.layout-theme({\n // 图标外圈\n .mdui-radio-icon {\n border-color: rgba(255, 255, 255, 0.7);\n }\n\n // 禁用状态\n .mdui-radio input[type=\"radio\"]:disabled + .mdui-radio-icon {\n border-color: @color-white-icon-disabled !important;\n }\n\n // 禁用且选中状态\n .mdui-radio input[type=\"radio\"]:disabled:checked + .mdui-radio-icon {\n &::before {\n background-color: @color-white-icon-disabled !important;\n }\n }\n\n // 未选中或禁用时 按下的阴影\n .mdui-radio:active input[type=\"radio\"],\n .mdui-radio input[type=\"radio\"]:focus {\n & + .mdui-radio-icon {\n box-shadow: 0 0 0 15px rgba(255, 255, 255, 0.1);\n }\n }\n});\n","/**\n * =============================================================================\n * ************ Switch 单选框 ************\n * =============================================================================\n */\n\n.mdui-switch {\n display: inline-block;\n height: 36px;\n line-height: 36px;\n cursor: pointer;\n user-select: none;\n\n // 隐藏系统 input 标签,用自定义的图标代替\n input {\n position: absolute;\n width: 0;\n height: 0;\n overflow: hidden;\n opacity: 0;\n }\n}\n\n/* 图标轨道 */\n.mdui-switch-icon {\n position: relative;\n display: inline-block;\n width: 36px;\n height: 14px;\n vertical-align: middle;\n background-color: rgba(0, 0, 0, 0.38);\n border-radius: 14px;\n transition: background-color .3s @animation-curve-default;\n\n // 圆形图标\n &::before {\n position: absolute;\n top: -3px;\n left: -3px;\n display: inline-block;\n width: 20px;\n height: 20px;\n background-color: @color-grey-50;\n border-radius: 20px;\n transition: box-shadow .14s @animation-curve-default,\n background-color .3s @animation-curve-default,\n left .3s @animation-curve-default;\n content: ' ';\n .mdui-shadow(1);\n }\n}\n\n/* 选中状态的图标 */\n.mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(red(@color-default-a200), green(@color-default-a200), blue(@color-default-a200), 0.5);\n\n &::before {\n left: 20px;\n background-color: @color-default-a200;\n }\n}\n\n/* 未选中时或禁用时 按下的阴影 */\n.mdui-switch:active input[type=\"checkbox\"],\n.mdui-switch input[type=\"checkbox\"]:focus {\n & + .mdui-switch-icon::before {\n box-shadow:\n // box-shadow(1)\n 0 2px 1px -1px rgba(0, 0, 0, .2),\n 0 1px 1px 0 rgba(0, 0, 0, .14),\n 0 1px 3px 0 rgba(0, 0, 0, .12),\n\n // 颜色阴影\n 0 0 0 15px rgba(0, 0, 0, 0.1);\n }\n}\n\n/* 已选中时按下的阴影 */\n.mdui-switch:active input[type=\"checkbox\"],\n.mdui-switch input[type=\"checkbox\"]:focus {\n &:checked:not(:disabled) + .mdui-switch-icon::before {\n box-shadow:\n // box-shadow(1)\n 0 2px 1px -1px rgba(0, 0, 0, .2),\n 0 1px 1px 0 rgba(0, 0, 0, .14),\n 0 1px 3px 0 rgba(0, 0, 0, .12),\n\n // 颜色阴影\n 0 0 0 15px rgba(red(@color-default-a200), green(@color-default-a200), blue(@color-default-a200), 0.16);\n }\n}\n\n/* 禁用状态 */\n.mdui-switch input[type=\"checkbox\"]:disabled + .mdui-switch-icon {\n background-color: rgba(0, 0, 0, 0.12) !important;\n\n &::before {\n background-color: @color-grey-400 !important;\n }\n}\n\n\n/**\n * =============================================================================\n * ************ Switch 强调色 ************\n * =============================================================================\n */\n\n& {\n .loop-accent-theme(@counter-color) when (@counter-color > 0) {\n .loop-accent-theme((@counter-color - 1));\n @colorName: extract(@globalAccentColors, @counter-color);\n\n @color: 'color-@{colorName}-a200';\n\n .mdui-theme-accent-@{colorName} when not (@colorName = null) {\n\n // 选中状态的图标\n .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(red(@@color), green(@@color), blue(@@color), 0.5);\n\n &::before {\n background-color: @@color;\n }\n }\n\n // 已选中时按下的阴影\n .mdui-switch:active input[type=\"checkbox\"],\n .mdui-switch input[type=\"checkbox\"]:focus {\n &:checked:not(:disabled) + .mdui-switch-icon::before {\n box-shadow:\n // box-shadow(1)\n 0 2px 1px -1px rgba(0, 0, 0, .2),\n 0 1px 1px 0 rgba(0, 0, 0, .14),\n 0 1px 3px 0 rgba(0, 0, 0, .12),\n\n // 颜色阴影\n 0 0 0 15px rgba(red(@@color), green(@@color), blue(@@color), 0.16);\n }\n }\n\n }\n }\n .loop-accent-theme(length(@globalAccentColors));\n}\n\n\n/**\n * =============================================================================\n * ************ Radio dark ************\n * =============================================================================\n */\n.layout-theme({\n // 默认状态\n .mdui-switch-icon {\n background-color: rgba(255, 255, 255, 0.3);\n\n &::before {\n background-color: @color-grey-400;\n }\n }\n\n // 选中状态\n & {\n .loop-accent-theme(@counter-color) when (@counter-color > 0) {\n .loop-accent-theme((@counter-color - 1));\n @colorName: extract(@globalAccentColors, @counter-color);\n\n @color: 'color-@{colorName}-a200';\n @color-a100: 'color-@{colorName}-a100';\n\n &.mdui-theme-accent-@{colorName} when not (@colorName = null) {\n\n .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(red(@@color-a100), green(@@color-a100), blue(@@color-a100), 0.5);\n\n &::before {\n background-color: @@color-a100;\n }\n }\n\n }\n }\n .loop-accent-theme(length(@globalAccentColors));\n }\n\n // 未选中或禁用时 按下的阴影\n .mdui-switch:active input[type=\"checkbox\"],\n .mdui-switch input[type=\"checkbox\"]:focus {\n & + .mdui-switch-icon::before {\n box-shadow:\n // box-shadow(1)\n 0 2px 1px -1px rgba(0, 0, 0, .2),\n 0 1px 1px 0 rgba(0, 0, 0, .14),\n 0 1px 3px 0 rgba(0, 0, 0, .12),\n\n // 颜色阴影\n 0 0 0 15px rgba(255, 255, 255, 0.1);\n }\n }\n\n // 禁用状态\n .mdui-switch input[type=\"checkbox\"]:disabled + .mdui-switch-icon {\n background-color: rgba(255, 255, 255, 0.1) !important;\n\n &::before {\n background-color: @color-grey-800 !important;\n }\n }\n});\n","/**\n * =============================================================================\n * ************ Slider 滑块 ************\n * =============================================================================\n */\n\n@slider-light-color: #bdbdbd; // rgba(0, 0, 0, .26)\n@slider-light-color-focus: #9e9e9e; // rgba(0, 0, 0, .38)\n@slider-light-color-disabled: #bdbdbd; // rgba(0, 0, 0, .26)\n\n@slider-dark-color: #4c4c4c; // rgba(255, 255, 255, .3)\n@slider-dark-color-focus: #4c4c4c; // rgba(255, 255, 255, .3)\n@slider-dark-color-disabled: #4c4c4c; // rgba(255, 255, 255, .3)\n\n.mdui-slider {\n position: relative;\n display: block;\n width: 100%;\n height: 36px;\n\n input[type=\"range\"] {\n position: absolute;\n top: 50%;\n left: 0;\n z-index: 2;\n width: 100%;\n height: 20px;\n margin-top: -10px;\n cursor: pointer;\n opacity: 0;\n appearance: none;\n }\n}\n\n.mdui-slider-track,\n.mdui-slider-fill {\n position: absolute;\n top: 50%;\n box-sizing: border-box;\n height: 2px;\n margin-top: -1px;\n\n &::before {\n display: block;\n width: 100%;\n height: 100%;\n content: ' ';\n }\n}\n\n/* 轨道 */\n.mdui-slider-track {\n right: 0;\n\n &::before {\n background-color: @slider-light-color;\n transition: background-color .3s @animation-curve-default;\n }\n}\n\n/* 已滑动部分 */\n.mdui-slider-fill {\n left: 0;\n\n &::before {\n background-color: @color-default-a200;\n }\n}\n\n/* 滑块 */\n.mdui-slider-thumb {\n position: absolute;\n top: 50%;\n box-sizing: border-box;\n width: 12px;\n height: 12px;\n margin-top: -6px;\n background-color: @color-default-a200;\n border: 2px solid @color-default-a200;\n border-radius: 50%;\n transform: translate(-50%);\n transition:\n background .45s @animation-curve-default,\n border-color .45s @animation-curve-default,\n transform .2s @animation-curve-default,\n border-radius .2s @animation-curve-default;\n will-change: background, border-color, transform, border-radius;\n}\n\n\n/**\n * =============================================================================\n * ************ Slider 强调色 ************\n * =============================================================================\n */\n\n& {\n .loop-accent-theme(@counter-color) when (@counter-color > 0) {\n .loop-accent-theme((@counter-color - 1));\n @colorName: extract(@globalAccentColors, @counter-color);\n\n @color: 'color-@{colorName}-a200';\n\n .mdui-theme-accent-@{colorName} when not (@colorName = null) {\n\n .mdui-slider-fill {\n\n &::before {\n background-color: @@color;\n }\n }\n\n .mdui-slider-thumb {\n background-color: @@color;\n border: 2px solid @@color;\n }\n }\n }\n .loop-accent-theme(length(@globalAccentColors));\n}\n\n\n/**\n * =============================================================================\n * ============ Slider 的不同状态 ============\n * =============================================================================\n */\n\n/* 鼠标按下状态 */\n.mdui-slider-focus {\n .mdui-slider-track {\n\n &::before {\n background-color: @slider-light-color-focus;\n }\n }\n\n .mdui-slider-thumb {\n transform: translate(-50%) scale(1.6);\n }\n}\n\n/* 滑块值为 0 */\n.mdui-slider-zero {\n .mdui-slider-thumb {\n background-color: #fff;\n border-color: @slider-light-color;\n }\n}\n\n/* 滑块值为 0,且鼠标按下 */\n.mdui-slider-zero.mdui-slider-focus {\n .mdui-slider-thumb {\n border-color: @slider-light-color-focus;\n }\n}\n\n/* 禁用状态 */\n.mdui-slider-disabled {\n input[type=\"range\"] {\n cursor: default;\n }\n\n .mdui-slider-track {\n\n &::before {\n background-color: @slider-light-color-disabled;\n }\n }\n\n .mdui-slider-fill {\n\n &::before {\n background-color: @slider-light-color-disabled;\n }\n }\n\n .mdui-slider-thumb {\n background-color: @slider-light-color-disabled;\n border-color: transparent !important;\n transform: translate(-50%) scale(.72);\n }\n}\n\n/**\n * =============================================================================\n * ============ 间续型滑块 ============\n * =============================================================================\n */\n.mdui-slider-discrete {\n\n .mdui-slider-thumb {\n width: 30px;\n height: 30px;\n margin-top: -15px;\n margin-left: -15px;\n border: none;\n transform: rotate(-45deg) scale(.4);\n\n // 间续型滑块的值显示\n span {\n position: absolute;\n top: 9px;\n left: -1px;\n width: 100%;\n color: #fff;\n font-size: 12px;\n text-align: center;\n transform: rotate(45deg);\n opacity: 0;\n transition: opacity .25s @animation-curve-default;\n }\n }\n\n // 鼠标按下状态\n &.mdui-slider-focus {\n .mdui-slider-thumb {\n border-radius: 15px 15px 15px 0;\n transform: rotate(-45deg) scale(1) translate(22px, -22px);\n\n span {\n opacity: 1;\n }\n }\n }\n\n // 滑块值为 0\n &.mdui-slider-zero {\n .mdui-slider-thumb {\n background-color: #323232;\n }\n }\n\n // 滑块值为 0,且鼠标按下\n &.mdui-slider-zero.mdui-slider-focus {\n .mdui-slider-thumb {\n background-color: @slider-light-color;\n }\n }\n\n // 禁用状态\n &.mdui-slider-disabled {\n .mdui-slider-thumb {\n transform: rotate(-45deg) scale(.288);\n }\n }\n\n // 滑块值为 0,且禁用\n &.mdui-slider-zero.mdui-slider-disabled {\n .mdui-slider-thumb {\n background-color: @slider-light-color;\n }\n }\n}\n\n/**\n * =============================================================================\n * ************ Slider dark ************\n * =============================================================================\n */\n.layout-theme({\n // 轨道\n .mdui-slider-track {\n\n &::before {\n background-color: @slider-dark-color;\n }\n }\n\n // 鼠标按下状态\n .mdui-slider-focus {\n .mdui-slider-track {\n\n &::before {\n background-color: @slider-dark-color-focus;\n }\n }\n }\n\n // 滑块值为 0\n .mdui-slider-zero {\n .mdui-slider-thumb {\n background-color: @layout-dark-color-3;\n border-color: @slider-dark-color;\n }\n }\n\n // 滑块值为 0,且鼠标按下\n .mdui-slider-zero.mdui-slider-focus {\n .mdui-slider-thumb {\n border-color: @slider-dark-color-focus;\n }\n }\n\n // 禁用状态\n .mdui-slider-disabled {\n .mdui-slider-track {\n\n &::before {\n background-color: @slider-dark-color-disabled;\n }\n }\n\n .mdui-slider-fill {\n\n &::before {\n background-color: @slider-dark-color-disabled;\n }\n }\n\n .mdui-slider-thumb {\n background-color: @slider-dark-color-disabled;\n }\n }\n\n // 间续型滑块\n .mdui-slider-discrete {\n\n // 滑块值为 0\n &.mdui-slider-zero {\n .mdui-slider-thumb {\n background-color: #fefefe;\n }\n }\n\n // 滑块值为 0,且鼠标按下\n &.mdui-slider-zero.mdui-slider-focus {\n .mdui-slider-thumb {\n background-color: #5c5c5c;\n }\n }\n\n // 滑块值为 0,且禁用\n &.mdui-slider-zero.mdui-slider-disabled {\n .mdui-slider-thumb {\n background-color: @slider-dark-color-disabled;\n }\n }\n }\n});\n","/**\n * =============================================================================\n * ************ Button 按钮 ************\n * =============================================================================\n */\n\n/* 默认为 Flat 扁平按钮 */\n.mdui-btn,\n.mdui-fab {\n position: relative;\n display: inline-block;\n box-sizing: border-box;\n min-width: 88px;\n height: @button-height;\n margin: 0;\n padding: 0 16px;\n overflow: hidden;\n color: inherit;\n font-weight: 500;\n font-size: 14px;\n line-height: @button-height;\n letter-spacing: 0.04em;\n white-space: nowrap;\n text-align: center;\n text-transform: uppercase;\n text-decoration: none;\n vertical-align: middle;\n background: transparent;\n border: none;\n border-radius: 2px;\n outline: none;\n cursor: pointer;\n transition: all .2s @animation-curve-default,\n box-shadow .2s @animation-curve-fast-out-linear-in;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n\n // 移除点击延迟触发\n touch-action: manipulation;\n will-change: box-shadow;\n zoom: 1;\n -webkit-user-drag: none;\n\n // 透明按钮 hover、active 时颜色加深\n &:hover {\n background-color: rgba(0, 0, 0, 0.1);\n }\n &:not(.mdui-ripple):active {\n background-color: rgba(0, 0, 0, 0.165);\n }\n\n // 带背景色的按钮 hover、active 时增加透明度\n &[class*=\"mdui-color-\"]:hover {\n opacity: 0.87;\n }\n &:not(.mdui-ripple)[class*=\"mdui-color-\"]:active {\n opacity: 0.76;\n }\n}\n\n/* 按钮内的图标 */\n.mdui-btn {\n .mdui-icon-left,\n .mdui-icon-right {\n &,\n &::before {\n height: inherit;\n font-size: 1.3em;\n line-height: inherit;\n }\n }\n .mdui-icon-left {\n float: left;\n margin-right: 0.4em;\n }\n .mdui-icon-right {\n float: right;\n margin-left: 0.4em;\n }\n}\n\ninput.mdui-btn[type=\"submit\"] {\n appearance: none;\n}\n\n/* Raised button 浮动按钮 */\n.mdui-btn-raised {\n .mdui-shadow(2);\n\n &:hover {\n .mdui-shadow(4);\n }\n\n &:active {\n .mdui-shadow(8);\n }\n}\n\n/* 禁用按钮 */\n.mdui-btn,\n.mdui-fab {\n &[disabled] {\n &,\n &:hover,\n &:active,\n &:focus {\n color: rgba(0, 0, 0, .26) !important;\n background-color: transparent !important;\n cursor: default !important;\n opacity: 1 !important;\n .mdui-shadow(0) !important;\n .mdui-icon {\n color: rgba(0, 0, 0, .26) !important;\n }\n }\n }\n}\n\n/* 禁用状态浮动按钮和浮动操作按钮 */\n.mdui-btn-raised,\n.mdui-fab {\n &[disabled] {\n &,\n &:hover,\n &:active,\n &:focus {\n background-color: rgba(0, 0, 0, .12) !important;\n .mdui-shadow(2) !important;\n }\n }\n}\n\n/* 加粗按钮文本 */\n.mdui-btn-bold {\n font-weight: bold;\n}\n\n/* 图标按钮 */\n.mdui-btn-icon {\n width: 36px;\n min-width: 36px;\n height: 36px;\n margin-right: 0;\n margin-left: 0;\n padding: 0;\n overflow: hidden;\n font-size: 24px;\n line-height: normal;\n border-radius: 50%;\n\n .mdui-icon {\n position: absolute;\n top: 50%;\n left: 50%;\n width: 24px;\n line-height: 24px;\n transform: translate(-12px, -12px);\n }\n\n &.mdui-ripple {\n transform: translateZ(0);\n }\n}\n\n/* 按钮 100% 宽度 */\n.mdui-btn-block {\n display: block;\n width: 100%;\n}\n\n/* 密集型按钮 */\n.mdui-btn-dense {\n height: 32px;\n font-size: 13px;\n line-height: 32px;\n\n &.mdui-btn-icon {\n width: 32px;\n min-width: 32px;\n }\n}\n\n/* 按钮组 */\n.mdui-btn-group {\n position: relative;\n display: inline-block;\n vertical-align: middle;\n\n .mdui-btn {\n float: left;\n min-width: inherit;\n padding: 0 12px;\n color: rgba(0, 0, 0, 0.54);\n border-radius: 0;\n\n &::before {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n border-left: 1px solid transparent;\n content: ' ';\n }\n\n &:first-child {\n border-top-left-radius: 2px;\n border-bottom-left-radius: 2px;\n\n &::before {\n border-left: none;\n }\n }\n\n &:last-child {\n border-top-right-radius: 2px;\n border-bottom-right-radius: 2px;\n }\n\n // 激活状态\n &.mdui-btn-active {\n color: rgba(0, 0, 0, 0.87);\n background-color: rgba(0, 0, 0, 0.215);\n\n &+.mdui-btn-active {\n &::before {\n border-left: 1px solid rgba(0, 0, 0, 0.145);\n }\n }\n }\n }\n}\n\n\n/**\n * =============================================================================\n * ************ Button dark ************\n * =============================================================================\n */\n.layout-theme({\n // 透明按钮 hover、active 时颜色变浅\n .mdui-btn,\n .mdui-fab {\n // 透明按钮 hover、active 时颜色变浅\n &:hover {\n background-color: rgba(255, 255, 255, 0.1);\n }\n &:not(.mdui-ripple):active {\n background-color: rgba(255, 255, 255, 0.165);\n }\n\n // 带背景的按钮 hover、active 时增加透明度\n &[class*=\"mdui-color-\"]:hover {\n opacity: 0.87;\n }\n &:not(.mdui-ripple)[class*=\"mdui-color-\"]:active {\n opacity: 0.76;\n }\n }\n\n // 禁用按钮\n .mdui-btn,\n .mdui-fab {\n &[disabled] {\n &,\n &:hover,\n &:active,\n &:focus {\n color: @color-white-icon-disabled !important;\n background-color: transparent !important;\n .mdui-icon {\n color: @color-white-icon-disabled !important;\n }\n }\n }\n }\n\n // 禁用状态浮动按钮和浮动操作按钮\n .mdui-btn-raised,\n .mdui-fab {\n &[disabled] {\n &,\n &:hover,\n &:active,\n &:focus {\n background-color: rgba(255, 255, 255, .12) !important;\n }\n }\n }\n});\n","/**\n * =============================================================================\n * ************ Fab 浮动操作按钮 ************\n * =============================================================================\n */\n\n@import '../button/index';\n\n@fab-size: 56px;\n@fab-size-mini: 40px;\n\n/* 浮动操作按钮 */\n.mdui-fab {\n width: @fab-size;\n min-width: @fab-size;\n height: @fab-size;\n margin: auto;\n padding: 0 !important;\n overflow: hidden;\n font-size: 24px;\n line-height: normal !important;\n border-radius: 50%;\n .mdui-shadow(6);\n\n &:hover{\n .mdui-shadow(8);\n }\n\n &:active {\n .mdui-shadow(12);\n }\n\n // 浮动操作按钮中的图标\n .mdui-icon {\n position: absolute;\n top: 0;\n left: 0;\n width: 24px;\n margin-top: 16px;\n margin-left: 16px;\n line-height: 24px;\n }\n}\n\n/* mini 型浮动操作按钮 */\n.mdui-fab-mini {\n width: @fab-size-mini;\n min-width: @fab-size-mini;\n height: @fab-size-mini;\n\n // mini 型浮动操作按钮中的图标\n .mdui-icon {\n margin-top: 8px;\n margin-left: 8px;\n }\n}\n\n/* 固定到右下角的 FAB 按钮 */\n.mdui-fab-fixed,\n.mdui-fab-wrapper {\n position: fixed !important;\n\n /* 手机平板上距离屏幕右下角 16px */\n right: 16px;\n bottom: 16px;\n\n @media (min-width: @screen-md-min) {\n /* 电脑上距离屏幕右下角 24px */\n right: 24px;\n bottom: 24px;\n }\n}\n\n/* 含菜单的浮动操作按钮 */\n.mdui-fab-wrapper {\n position: relative;\n z-index: @z-index-fab;\n width: @fab-size;\n height: @fab-size;\n padding-top: 8px;\n text-align: center;\n\n // 菜单打开前\n &>.mdui-fab {\n .mdui-icon:not(.mdui-fab-opened) {\n opacity: 1;\n transition: all .2s @animation-curve-default;\n will-change: opacity, transform;\n }\n .mdui-icon.mdui-fab-opened {\n transform: rotate(225deg);\n opacity: 0;\n transition: all .2s @animation-curve-default;\n will-change: opacity, transform;\n }\n }\n\n // 菜单打开后\n &>.mdui-fab.mdui-fab-opened {\n .mdui-icon:not(.mdui-fab-opened) {\n transform: rotate(225deg);\n opacity: 0;\n }\n .mdui-icon.mdui-fab-opened {\n transform: rotate(360deg);\n opacity: 1;\n }\n }\n\n // mini 按钮需要垂直居中\n &>.mdui-fab-mini {\n margin-top: (@fab-size - @fab-size-mini) / 2;\n }\n\n .mdui-fab-dial {\n position: absolute;\n right: 0;\n bottom: @fab-size + 8px;\n left: 0;\n height: 0;\n text-align: center;\n visibility: visible;\n\n .mdui-fab {\n margin: 8px 0;\n transform: scale(0);\n opacity: 0;\n transition: box-shadow .2s @animation-curve-fast-out-linear-in,\n color .2s @animation-curve-default,\n // fab\n transform 150ms @animation-curve-default,\n opacity 150ms @animation-curve-default;\n }\n\n &.mdui-fab-dial-show {\n .mdui-fab {\n transform: scale(1);\n opacity: 1;\n }\n }\n }\n}\n\n/* 添加类 .mdui-fab-hide 以动画的形式隐藏按钮 */\n.mdui-fab,\n.mdui-fab-mini,\n.mdui-fab-wrapper {\n transform: scale(1) translateZ(0);\n transition: all .2s @animation-curve-default,\n box-shadow .2s @animation-curve-fast-out-linear-in,\n // fab\n transform .2s;\n will-change: transform;\n\n &.mdui-fab-hide {\n transform: scale(0) translateZ(0);\n }\n}\n","/**\n * =============================================================================\n * ************ Select 下拉选择 ************\n * =============================================================================\n */\n\n.mdui-select {\n position: relative;\n display: inline-block;\n box-sizing: border-box;\n max-width: 100%;\n height: 36px;\n padding-right: 24px;\n padding-left: 0;\n font-size: 16px;\n font-family: @font-family-base;\n vertical-align: middle;\n //background-image: data-uri('image/svg+xml', './components/select/svg/arrow_down_dark.svg');\n // https://www.zhangxinxu.com/sp/svgo/ CSS 转义\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cpath d='M-.003 2.5l5 5 5-5h-10z' opacity='.54'/%3E%3C/svg%3E\");\n\n // 箭头\n background-repeat: no-repeat;\n background-position: right center;\n border: none;\n border-bottom: 1px solid rgba(0, 0, 0, 0.12);\n outline: none;\n cursor: pointer;\n transition-timing-function: @animation-curve-default;\n transition-duration: .2s;\n transition-property: background-color, box-shadow, background-position-x;\n appearance: none;\n user-select: none;\n will-change: background-color, box-shadow, background-position-x;\n\n &.mdui-select-open {\n border-bottom: none;\n }\n}\n\n.mdui-select-position-top {\n //background-image: data-uri('image/svg+xml', './components/select/svg/arrow_up_dark.svg');\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cpath d='M10.003 7.5l-5-5-5 5h10z' opacity='.54'/%3E%3C/svg%3E\");\n}\n\n/* 底部和顶部菜单的样式 */\n.mdui-select-open {\n &.mdui-select-position-top,\n &.mdui-select-position-bottom {\n z-index: 99999;\n background-color: #fff;\n /* stylelint-disable-next-line */\n background-position-x: calc(~'100% - 12px');\n border-radius: 2px;\n }\n\n &.mdui-select-position-top {\n border-top: 1px solid rgba(0, 0, 0, 0.12);\n border-bottom: 2px solid transparent;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n box-shadow: 0 10px 10px -3px rgba(0,0,0,.2), 0 0 14px 1px rgba(0,0,0,.14), 0 -7px 24px 2px rgba(0,0,0,.12);\n\n .mdui-select-menu {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n\n // 隐藏下方的阴影\n box-shadow: 0 -4px 4px -2px rgba(0,0,0,.06), 8px 0 8px -4px rgba(0,0,0,.12), -8px 0 8px -4px rgba(0,0,0,.12)\n }\n }\n\n &.mdui-select-position-bottom {\n border-bottom: 1px solid rgba(0, 0, 0, 0.12);\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n .mdui-shadow(8);\n\n .mdui-select-menu {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n\n // 隐藏上方阴影\n box-shadow: 0 5px 5px -3px rgba(0,0,0,.2), 0 9px 9px 1px rgba(0,0,0,.14), 0 8px 8px 2px rgba(0,0,0,.06);\n }\n }\n}\n\n/* 当前选中项文本 */\n.mdui-select-selected {\n position: absolute;\n top: 50%;\n right: 24px;\n left: 0;\n display: block;\n transform: translateY(-50%);\n transition: left .2s @animation-curve-linear-out-slow-in;\n .mdui-text-truncate();\n\n .mdui-select-open & {\n right: 32px;\n left: 16px;\n }\n\n .mdui-select-open.mdui-select-position-auto & {\n visibility: hidden;\n }\n}\n\n/* 菜单 */\n.mdui-select-menu {\n position: relative;\n z-index: 99999;\n box-sizing: border-box;\n height: 36px;\n margin: 0 -24px 0 0;\n\n // 在计算宽度时,把滚动条计算进去\n overflow-y: scroll;\n color: @color-black-text;\n background-color: #fff;\n border-radius: 2px;\n transform: scale(1, 0);\n visibility: hidden;\n cursor: default;\n opacity: 0;\n transition-timing-function: @animation-curve-linear-out-slow-in;\n transition-duration: .2s;\n transition-property: transform, opacity, visibility;\n will-change: transform, opacity, visibility;\n -webkit-overflow-scrolling: touch;\n .mdui-shadow(8);\n\n // 打开状态的菜单\n .mdui-select-open & {\n overflow-y: hidden;\n transform: scale(1, 1);\n visibility: visible;\n opacity: 1;\n }\n\n // 关闭状态的菜单\n .mdui-select-closing & {\n overflow-y: hidden;\n box-shadow: none;\n transform: scale(1, 1);\n visibility: visible;\n opacity: 0;\n }\n}\n\n/* 菜单项 */\n.mdui-select-menu-item {\n height: 48px;\n padding: 0 16px;\n line-height: 48px;\n cursor: pointer;\n .mdui-text-truncate();\n\n &:hover {\n background-color: @color-grey-200;\n }\n\n &:first-child {\n margin-top: 8px;\n }\n\n &:last-child {\n margin-bottom: 8px;\n }\n\n // 禁用项\n &[disabled] {\n color: @color-black-disabled !important;\n cursor: default;\n\n &:hover {\n background-color: inherit !important;\n }\n }\n\n // 已选中项\n &[selected] {\n color: @color-default-a200;\n }\n}\n\n\n/* 原生 select 组件 */\nselect.mdui-select {\n background-color: transparent;\n\n option {\n color: rgba(0, 0, 0, 0.87);\n }\n\n // 移除 IE 的下拉按钮\n &::-ms-expand {\n display: none;\n }\n}\n\n/* 原生多选 select 组件 */\nselect.mdui-select[multiple] {\n height: auto;\n padding: 0;\n font-size: 15px;\n background-color: #FFF;\n background-image: none;\n border: 1px solid rgba(0, 0, 0, 0.38);\n cursor: default;\n\n optgroup {\n margin: 8px 0 0 0;\n padding: 0 0 0 16px;\n color: rgba(0, 0, 0, 0.38);\n\n &:last-child {\n margin-bottom: 8px;\n }\n\n &:not(:first-child) {\n padding-top: 8px;\n border-top: 1px solid rgba(0, 0, 0, 0.12);\n }\n }\n\n option {\n display: flex;\n align-items: center;\n height: 32px;\n margin: 0 0 0 -16px;\n padding: 0 16px;\n color: rgba(0, 0, 0, 0.87);\n\n &:first-child {\n margin-top: 8px;\n }\n\n &:last-child {\n margin-bottom: 8px;\n }\n }\n}\n\n/**\n * =============================================================================\n * ************ Select 强调色 ************\n * =============================================================================\n */\n\n& {\n .loop-accent-theme(@counter-color) when (@counter-color > 0) {\n .loop-accent-theme((@counter-color - 1));\n @colorName: extract(@globalAccentColors, @counter-color);\n\n .mdui-theme-accent-@{colorName} when not (@colorName = null) {\n\n .mdui-select-menu-item {\n // 菜单中已选中项\n &[selected] {\n .mdui-text-color(@colorName);\n }\n }\n\n }\n }\n .loop-accent-theme(length(@globalAccentColors));\n}\n\n\n/**\n * =============================================================================\n * ************ Select dark ************\n * =============================================================================\n */\n.layout-theme({\n .mdui-select {\n //background-image: data-uri('image/svg+xml', './components/select/svg/arrow_down_light.svg');\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cpath d='M-.003 2.5l5 5 5-5h-10z' fill='%23FFF'/%3E%3C/svg%3E\");\n border-bottom: 1px solid rgba(255, 255, 255, 0.12);\n }\n\n .mdui-select-position-top {\n //background-image: data-uri('image/svg+xml', './components/select/svg/arrow_up_light.svg');\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cpath d='M10.003 7.5l-5-5-5 5h10z' fill='%23FFF'/%3E%3C/svg%3E\");\n }\n\n .mdui-select-open {\n &.mdui-select-position-top,\n &.mdui-select-position-bottom {\n background-color: @layout-dark-color-4;\n }\n\n &.mdui-select-position-top {\n border-top: 1px solid rgba(255, 255, 255, 0.12);\n }\n\n &.mdui-select-position-bottom {\n border-bottom: 1px solid rgba(255, 255, 255, 0.12);\n }\n }\n\n .mdui-select-menu {\n color: #fff;\n background-color: @layout-dark-color-4;\n }\n\n .mdui-select-menu-item {\n &:hover {\n background-color: @color-grey-700;\n }\n\n &[disabled] {\n color: @color-white-disabled !important;\n }\n }\n\n // 原生 select 组件\n select.mdui-select {\n color: #FFF;\n background-color: @layout-dark-color-3;\n\n option {\n color: #FFF;\n background-color: @layout-dark-color-3;\n }\n }\n\n // 原生多选 select 组件\n select.mdui-select[multiple] {\n border: 1px solid rgba(255, 255, 255, 0.5);\n\n optgroup {\n color: rgba(255, 255, 255, 0.5);\n\n &:not(:first-child) {\n border-top: 1px solid rgba(255, 255, 255, 0.12);\n }\n }\n }\n});\n","/**\n * =============================================================================\n * ************ Toolbar 工具栏 ************\n * =============================================================================\n */\n\n.mdui-toolbar {\n display: flex;\n align-items: center;\n box-sizing: border-box;\n width: 100%;\n &>* {\n margin: 0 16px;\n .mdui-text-truncate();\n }\n\n // 工具栏默认有背景色时,工具栏中的按钮,hover 和 active 时颜色变浅\n &[class*=\"mdui-color-\"]:not(.mdui-color-transparent) {\n .mdui-btn {\n &:hover {\n background-color: rgba(255, 255, 255, 0.1);\n }\n &:active {\n background-color: rgba(255, 255, 255, 0.165);\n }\n }\n }\n\n &>a {\n color: inherit;\n text-decoration: none;\n user-select: none;\n }\n\n &>.mdui-btn-icon {\n width: @appbar-icon-width;\n min-width: @appbar-icon-width;\n height: @appbar-icon-width;\n\n // 手机横屏时\n @media (orientation: landscape) and (max-width: @screen-xs-max-landscape) {\n width: @appbar-icon-width-xs-landscape;\n min-width: @appbar-icon-width-xs-landscape;\n height: @appbar-icon-width-xs-landscape;\n }\n\n .mdui-icon {\n height: 24px;\n line-height: 24px;\n }\n }\n\n .mdui-icon {\n color: inherit;\n }\n}\n\n.mdui-toolbar-spacer {\n flex-grow: 1;\n margin: 0;\n}\n\n// 响应式。只有在应用栏中的工具栏,才具有响应式特性,不在应用栏中,则使用手机样式\n._toolbar_responsive_mixed(@toolbar-height, @icon-width) {\n .mdui-toolbar {\n height: @toolbar-height;\n line-height: @toolbar-height;\n\n &>.mdui-btn {\n margin: 0 (@toolbar-height - @icon-width) / 2;\n\n & + .mdui-btn {\n margin-left: 0;\n }\n }\n }\n}\n\n/* 手机 */\n._toolbar_responsive_mixed(@appbar-height-xs-portrait, @appbar-icon-width);\n\n.mdui-appbar {\n // 平板和桌面\n @media (min-width: @screen-sm-min) {\n ._toolbar_responsive_mixed(@appbar-height-sm, @appbar-icon-width);\n }\n\n // 手机横屏\n @media (orientation: landscape) and (max-width: @screen-xs-max-landscape) {\n ._toolbar_responsive_mixed(@appbar-height-xs-landscape, @appbar-icon-width-xs-landscape);\n }\n}\n","/**\n * =============================================================================\n * ************ Appbar 应用栏 ************\n * =============================================================================\n */\n\n@import '../toolbar/index';\n@import '../headroom/index';\n\n.mdui-appbar {\n z-index: @z-index-appbar;\n .mdui-shadow(4);\n}\n\n/* appbar 固定在顶部 */\n.mdui-appbar-fixed {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n transition-timing-function: @animation-curve-linear-out-slow-in;\n transition-duration: 0.3s;\n transition-property: left, right;\n will-change: left, right;\n}\n\n/* 左侧留出抽屉栏的距离 */\n.mdui-appbar-inset.mdui-appbar-fixed {\n .mdui-drawer-body-left & {\n @media (min-width: @screen-md-min) {\n left: @drawer-width-md;\n }\n }\n\n .mdui-drawer-body-right & {\n @media (min-width: @screen-md-min) {\n right: @drawer-width-md;\n }\n }\n}\n\n/* 含工具栏 */\n.mdui-appbar-with-toolbar {\n padding-top: @appbar-height-xs-portrait;\n\n // 平板和桌面\n @media (min-width: @screen-sm-min) {\n padding-top: @appbar-height-sm;\n }\n\n // 手机横屏\n @media (orientation: landscape) and (max-width: @screen-xs-max-landscape) {\n padding-top: @appbar-height-xs-landscape;\n }\n}\n\n/* 含 Tab */\n.mdui-appbar-with-tab {\n padding-top: 48px;\n}\n\n/* 含大 Tab */\n.mdui-appbar-with-tab-larger {\n padding-top: 72px;\n}\n\n/* 含工具栏和 Tab */\n.mdui-appbar-with-toolbar.mdui-appbar-with-tab {\n padding-top: @appbar-height-xs-portrait + 48px;\n\n // 平板和桌面\n @media (min-width: @screen-sm-min) {\n padding-top: @appbar-height-sm + 48px;\n }\n\n // 手机横屏\n @media (orientation: landscape) and (max-width: @screen-xs-max-landscape) {\n padding-top: @appbar-height-xs-landscape + 48px;\n }\n}\n\n/* 含工具栏和大 Tab */\n.mdui-appbar-with-toolbar.mdui-appbar-with-tab-larger {\n padding-top: @appbar-height-xs-portrait + 72px;\n\n // 平板和桌面\n @media (min-width: @screen-sm-min) {\n padding-top: @appbar-height-sm + 72px;\n }\n\n // 手机横屏\n @media (orientation: landscape) and (max-width: @screen-xs-max-landscape) {\n padding-top: @appbar-height-xs-landscape + 72px;\n }\n}\n\n\n/**\n * =============================================================================\n * ************ Appbar dark ************\n * =============================================================================\n */\n.layout-theme({\n .mdui-appbar {\n &>[class*=\"mdui-color-\"]:not(.mdui-color-transparent) {\n color: #fff !important;\n background-color: @layout-dark-color-2 !important;\n }\n }\n});\n","/**\n * =============================================================================\n * ************ Card 卡片 ************\n * =============================================================================\n */\n\n/* 卡片 */\n.mdui-card {\n position: relative;\n box-sizing: border-box;\n overflow: hidden;\n color: #000;\n background-color: #fff;\n border-radius: 2px;\n .mdui-shadow(2);\n}\n\n/**\n * ===================== 头部,包含头像、标题、副标题\n */\n.mdui-card-header {\n position: relative;\n box-sizing: border-box;\n height: 72px;\n padding: 16px;\n}\n\n/* 卡片头部头像 */\n.mdui-card-header-avatar {\n float: left;\n width: 40px;\n height: 40px;\n border-radius: 50%;\n}\n\n/* 卡片头部标题 */\n.mdui-card-header-title {\n display: block;\n margin-left: 52px;\n font-weight: 500;\n font-size: 16px;\n line-height: 20px;\n opacity: @opacity-black-text;\n .mdui-text-truncate();\n}\n\n/* 卡片头部副标题 */\n.mdui-card-header-subtitle {\n display: block;\n margin-left: 52px;\n font-weight: 400;\n font-size: 14px;\n line-height: 20px;\n opacity: @opacity-black-secondary;\n .mdui-text-truncate();\n}\n\n/**\n * =========================== 主标题区域\n */\n.mdui-card-primary {\n position: relative;\n padding: 24px 16px 16px 16px;\n}\n\n/* 主标题区域标题 */\n.mdui-card-primary-title {\n display: block;\n font-size: 24px;\n line-height: 36px;\n opacity: @opacity-black-text;\n}\n\n/* 主标题区域副标题 */\n.mdui-card-primary-subtitle {\n display: block;\n font-size: 14px;\n line-height: 24px;\n opacity: @opacity-black-secondary;\n}\n\n/**\n * ============================ 内容区域\n */\n.mdui-card-content {\n position: relative;\n padding: 16px;\n font-size: 14px;\n line-height: 24px;\n}\n\n/**\n * ============================ 卡片菜单\n */\n.mdui-card-menu {\n position: absolute;\n top: 16px;\n right: 16px;\n z-index: 1;\n\n .mdui-btn {\n margin-left: 8px;\n }\n}\n\n/**\n * =========================== 按钮区域\n */\n.mdui-card-actions {\n .mdui-clearfix();\n\n position: relative;\n box-sizing: border-box;\n padding: 8px;\n\n .mdui-btn {\n max-width: 100%;\n margin: 0 8px 0 0;\n .mdui-text-truncate();\n }\n\n .mdui-btn-icon {\n width: @button-height;\n height: @button-height;\n margin: 0 8px;\n }\n}\n\n/* 使按钮竖向排列 */\n.mdui-card-actions-stacked {\n .mdui-btn {\n display: block;\n margin: 0 0 4px 0;\n &:last-child {\n margin: 0;\n }\n }\n}\n\n/**\n * ============================= 媒体元素区域\n */\n.mdui-card-media {\n position: relative;\n img, video {\n display: block;\n width: 100%;\n }\n}\n\n/* 覆盖在媒体元素上的内容 */\n.mdui-card-media-covered {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n color: #fff;\n background: rgba(0, 0, 0, 0.2);\n\n /* 覆盖在媒体元素上的标题 */\n .mdui-card-primary-title {\n opacity: @opacity-white-text;\n }\n .mdui-card-primary-subtitle {\n opacity: @opacity-white-secondary;\n }\n}\n\n/* 覆盖在媒体元素顶部 */\n.mdui-card-media-covered-top {\n top: 0;\n bottom: auto;\n}\n\n/* 覆盖层透明 */\n.mdui-card-media-covered-transparent {\n background: transparent;\n}\n\n/* 覆盖层渐变 */\n.mdui-card-media-covered-gradient {\n background: linear-gradient(to top, rgba(0, 0, 0, 0.26), rgba(0, 0, 0, 0));\n\n &.mdui-card-media-covered-top {\n background: linear-gradient(to bottom, rgba(0, 0, 0, 0.26), rgba(0, 0, 0, 0));\n }\n}\n\n\n/**\n * =============================================================================\n * ************ Card dark ************\n * =============================================================================\n */\n.layout-theme({\n .mdui-card {\n color: #fff;\n background-color: @layout-dark-color-4;\n }\n});\n","/**\n * =============================================================================\n * ************ Tab ************\n * =============================================================================\n *\n * 在手机上选项卡始终平分或可滚动,在平板以上的设备上默认左对齐,可以选择居中对齐,或全宽等分\n */\n\n/* 选项卡,默认的选项卡为全宽 */\n.mdui-tab {\n position: relative;\n display: flex;\n min-height: 48px;\n max-height: 72px;\n margin: 0 auto;\n padding: 0;\n overflow-x: auto;\n overflow-y: hidden;\n white-space: nowrap;\n -webkit-overflow-scrolling: touch;\n\n a {\n display: flex;\n // 手机上始终等分选项卡\n flex: 1;\n\n // 使图标和文本垂直排列\n flex-direction: column;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n min-width: 72px;\n min-height: 48px;\n max-height: 72px;\n padding: 12px;\n overflow: hidden;\n color: inherit;\n font-size: 14px;\n text-align: center;\n text-transform: uppercase;\n text-decoration: none;\n text-overflow: ellipsis;\n outline: none;\n cursor: pointer;\n opacity: 0.7;\n user-select: none;\n\n .mdui-icon {\n opacity: 0.7;\n }\n\n // 平板或以上设备\n @media (min-width: @screen-sm-min) {\n\n // 平板/pc上选项卡左对齐\n flex: none;\n min-width: 99px;\n max-width: 264px;\n\n // 手机上 padding 12px,平板/pc上 padding 24px\n padding: 12px 24px;\n }\n\n @media (min-width: @screen-md-min) {\n min-width: 112px;\n }\n\n @media (min-width: @screen-lg-min) {\n min-width: 136px;\n }\n\n @media (min-width: @screen-xl-min) {\n min-width: 160px;\n }\n\n label {\n display: block;\n width: 100%;\n cursor: pointer;\n }\n\n .mdui-icon + label {\n margin-top: 8px;\n }\n\n &[disabled] {\n cursor: default;\n opacity: 0.38;\n\n label {\n cursor: default;\n }\n }\n }\n\n // 激活状态的选项\n .mdui-tab-active {\n color: @color-default-500;\n opacity: 1;\n .mdui-icon {\n opacity: 1;\n }\n }\n}\n\n/* 选项卡居中 */\n.mdui-tab-centered {\n @media (min-width: @screen-sm-min) {\n &::before {\n flex-grow: 1;\n content: ' ';\n }\n &::after {\n flex-grow: 1;\n content: ' ';\n }\n a {\n flex: none;\n }\n }\n}\n\n/* 选项卡始终全宽等分 */\n.mdui-tab-full-width {\n a {\n flex: 1;\n max-width: none;\n }\n}\n\n\n/* 可横向滚动的选项卡 */\n.mdui-tab-scrollable {\n padding-left: 56px;\n\n a {\n flex: none;\n }\n\n @media (max-width: @screen-xs-max) {\n padding-left: 60px;\n }\n\n}\n\n/* 下划线指示器 */\n.mdui-tab-indicator {\n position: absolute;\n bottom: 0;\n height: 2px;\n background-color: @color-default-500;\n transition: all .35s @animation-curve-default;\n will-change: left, width;\n}\n\n/**\n * =============================================================================\n * ************ Tab 主色 ************\n * =============================================================================\n */\n\n& {\n .loop-primary-theme(@counter-color) when (@counter-color > 0) {\n .loop-primary-theme((@counter-color - 1));\n @colorName: extract(@globalPrimaryColors, @counter-color);\n @color: 'color-@{colorName}-500';\n\n .mdui-theme-primary-@{colorName} when not (@colorName = null) {\n .mdui-tab .mdui-tab-active {\n color: @@color;\n }\n\n .mdui-tab-indicator {\n background-color: @@color;\n }\n }\n\n }\n .loop-primary-theme(length(@globalPrimaryColors));\n}\n\n/* 带背景色的选项卡 */\n.mdui-tab[class*=\"mdui-color-\"]:not(.mdui-color-white) {\n .mdui-tab-active {\n color: inherit;\n }\n .mdui-tab-indicator {\n background-color: @color-white-500;\n }\n\n // 带背景色的选项卡中使用浅色滚动条\n & {\n .mdui-scrollbar-beautify(dark);\n }\n}\n","/**\n * =============================================================================\n * ************ Subheader 副标题 ************\n * =============================================================================\n *\n * 用于 List 和 Grid list 组件\n */\n\n.mdui-subheader,\n.mdui-subheader-inset {\n position: relative;\n box-sizing: border-box;\n height: 48px;\n padding-right: 16px;\n padding-left: 16px;\n color: @color-black-secondary;\n font-weight: 500;\n font-size: 14px;\n line-height: 48px;\n cursor: default;\n .mdui-text-truncate();\n}\n\n.mdui-subheader-inset {\n padding-left: 72px;\n}\n\n/**\n * =============================================================================\n * ************ Subheader dark ************\n * =============================================================================\n */\n.layout-theme({\n .mdui-subheader,\n .mdui-subheader-inset {\n color: @color-white-secondary;\n }\n});\n","/**\n * =============================================================================\n * ************ Grid List 网格列表 ************\n * =============================================================================\n */\n\n/* 调整网格边距 */\n.mdui-grid-list {\n margin: 0 -@grid-list-gutter / 2;\n\n .mdui-col,\n [class*=\"mdui-col-xs-\"],\n [class*=\"mdui-col-sm-\"],\n [class*=\"mdui-col-md-\"],\n [class*=\"mdui-col-lg-\"],\n [class*=\"mdui-col-xl-\"] {\n padding-right: @grid-list-gutter / 2;\n padding-left: @grid-list-gutter / 2;\n }\n}\n\n/* 单元格 */\n.mdui-grid-tile {\n position: relative;\n box-sizing: border-box;\n margin-bottom: @grid-list-gutter;\n overflow: hidden;\n\n img {\n display: block;\n width: 100%;\n }\n}\n\n/* 操作栏 */\n.mdui-grid-tile-actions {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n display: flex;\n align-items: center;\n box-sizing: border-box;\n min-height: 48px;\n max-height: 68px;\n padding: 16px;\n color: #fff;\n background: rgba(0, 0, 0, 0.2);\n\n .mdui-icon {\n color: #fff;\n }\n}\n\n/* 操作栏内的文本 */\n.mdui-grid-tile-text {\n flex: 1;\n overflow: hidden;\n}\n\n/* 标题 */\n.mdui-grid-tile-title {\n height: 16px;\n font-size: 16px;\n line-height: 16px;\n .mdui-text-truncate();\n\n .mdui-icon {\n margin-right: 8px;\n }\n}\n\n/* 副标题 */\n.mdui-grid-tile-subtitle {\n height: 18px;\n margin-top: 4px;\n font-size: 12px;\n line-height: 18px;\n .mdui-text-truncate();\n\n .mdui-icon {\n margin-right: 8px;\n font-size: 18px;\n }\n}\n\n/* 操作栏内的按钮 */\n.mdui-grid-tile-buttons {\n flex: none;\n margin: -8px;\n white-space: nowrap;\n\n .mdui-btn {\n margin-left: 8px;\n &:first-child {\n margin-left: 0;\n }\n }\n}\n\n.mdui-grid-tile-text + .mdui-grid-tile-buttons {\n margin-left: 8px;\n}\n.mdui-grid-tile-buttons + .mdui-grid-tile-text {\n margin-left: 16px;\n}\n\n/* 操作栏位于顶部 */\n.mdui-grid-tile-actions-top {\n top: 0;\n bottom: auto;\n}\n\n/* 操作栏背景透明 */\n.mdui-grid-tile-actions-transparent {\n background: transparent;\n}\n\n/* 操作栏背景渐变 */\n.mdui-grid-tile-actions-gradient {\n background: linear-gradient(to top, rgba(0, 0, 0, 0.26), rgba(0, 0, 0, 0));\n\n &.mdui-grid-tile-actions-top {\n background: linear-gradient(to bottom, rgba(0, 0, 0, 0.26), rgba(0, 0, 0, 0));\n }\n}","/**\n * =============================================================================\n * ************ List 列表 ************\n * =============================================================================\n */\n\n/* 列表 */\n.mdui-list {\n margin: 0;\n padding: 8px 0;\n list-style: none;\n background-color: transparent;\n\n // 子列表没有上下间距\n .mdui-list {\n padding: 0;\n }\n\n // 分割线上下边距\n &>.mdui-divider,\n &>.mdui-divider-light,\n &>.mdui-divider-dark,\n &>.mdui-divider-inset,\n &>.mdui-divider-inset-light,\n &>.mdui-divider-inset-dark {\n margin-top: 8px;\n margin-bottom: 8px;\n }\n\n a {\n color: inherit;\n text-decoration: none;\n }\n\n // 使用副标题时自动添加分割线\n .mdui-subheader,\n .mdui-subheader-inset {\n &::before {\n position: absolute;\n right: 0;\n left: 0;\n display: block;\n height: 1px;\n background-color: @color-black-divider;\n content: ' ';\n }\n\n margin-top: 8px;\n\n &:first-child {\n &::before {\n background-color: transparent;\n }\n\n // 第一个副标题把列表的 padding-top 抵消掉\n margin-top: -8px;\n }\n }\n .mdui-subheader-inset {\n &::before {\n left: 72px;\n }\n }\n}\n\n/* 列表项 */\n.mdui-list-item {\n display: flex;\n align-items: center;\n box-sizing: border-box;\n min-height: 48px;\n padding: 0 16px;\n text-decoration: none;\n cursor: pointer;\n transition: background-color .3s @animation-curve-default;\n\n &:hover {\n background-color: @color-hover-black;\n }\n\n // http://stackoverflow.com/a/31915203\n &::after {\n height: 48px;\n visibility: hidden;\n content: ' ';\n }\n}\n\n/* 列表项图标 */\n.mdui-list-item-icon {\n width: 24px;\n min-width: 24px;\n height: 24px;\n color: @color-black-icon;\n}\n\n/* 列表项头像 */\n.mdui-list-item-avatar {\n min-width: 40px;\n max-width: 40px;\n height: 40px;\n margin-top: 8px;\n margin-bottom: 8px;\n color: @color-white;\n line-height: 40px;\n text-align: center;\n background-color: @color-grey-400;\n border-radius: 50%;\n img {\n width: 100%;\n height: 100%;\n border-radius: 50%;\n }\n}\n\n/* 列表项内容 */\n.mdui-list-item-content {\n flex-grow: 1;\n padding-top: 14px;\n padding-bottom: 14px;\n font-weight: 400;\n font-size: 16px;\n line-height: 20px;\n}\n\n/* 列表项内容的副内容 */\n.mdui-list-item-text {\n font-size: 14px;\n opacity: @opacity-black-secondary;\n}\n.mdui-list-item-title {\n ~ .mdui-list-item-text {\n margin-top: 4px;\n }\n}\n\n/* 激活状态的列表项 */\n.mdui-list-item-active {\n font-weight: 700;\n background-color: @color-hover-black;\n\n .mdui-list-item-content {\n font-weight: 700;\n }\n .mdui-list-item-text {\n font-weight: 400;\n }\n}\n\n/* 限制文本高度 */\n.mdui-list-item-one-line,\n.mdui-list-item-two-line,\n.mdui-list-item-three-line {\n display: -webkit-box;\n overflow: hidden;\n text-overflow: ellipsis;\n -webkit-box-orient: vertical;\n}\n.mdui-list-item-one-line {\n -webkit-line-clamp: 1;\n height: 20px;\n}\n.mdui-list-item-two-line {\n -webkit-line-clamp: 2;\n height: 40px;\n}\n.mdui-list-item-three-line {\n -webkit-line-clamp: 3;\n height: 60px;\n}\n\n/* 列表项内的元素间添加间距 */\n.mdui-list-item-icon {\n ~ .mdui-list-item-content {\n margin-left: 32px;\n }\n}\n.mdui-checkbox,\n.mdui-radio,\n.mdui-switch {\n ~ .mdui-list-item-content {\n margin-left: 20px;\n }\n}\n\n\n.mdui-list-item-avatar {\n ~ .mdui-list-item-content {\n margin-left: 16px;\n }\n}\n.mdui-list-item-content {\n ~ .mdui-list-item-icon,\n ~ .mdui-list-item-avatar,\n ~ .mdui-checkbox,\n ~ .mdui-radio,\n ~ .mdui-switch {\n margin-left: 16px;\n }\n\n ~ .mdui-checkbox,\n ~ .mdui-radio {\n padding-left: 24px;\n }\n}\n\n/* 密集型列表 */\n.mdui-list-dense {\n padding: 4px 0;\n font-size: 13px;\n\n &>.mdui-divider,\n &>.mdui-divider-light,\n &>.mdui-divider-dark,\n &>.mdui-divider-inset,\n &>.mdui-divider-inset-light,\n &>.mdui-divider-inset-dark {\n margin-top: 4px;\n margin-bottom: 4px;\n }\n\n // 副标题\n .mdui-subheader,\n .mdui-subheader-inset {\n height: 40px;\n margin-top: 4px;\n font-size: 12px;\n line-height: 40px;\n\n &:first-child {\n margin-top: -4px;\n }\n }\n\n // 密集型列表项\n .mdui-list-item {\n min-height: 40px;\n\n &::after {\n height: 40px;\n }\n }\n\n // 图标\n .mdui-list-item-icon {\n width: 20px;\n height: 20px;\n font-size: 20px;\n }\n\n // 头像\n .mdui-list-item-avatar {\n width: 36px;\n min-width: 36px;\n height: 36px;\n min-height: 36px;\n }\n\n // 列表项内容\n .mdui-list-item-content {\n padding-top: 11px;\n padding-bottom: 11px;\n font-size: 13px;\n line-height: 18px;\n }\n .mdui-list-item-text {\n font-size: 13px;\n }\n .mdui-list-item-title {\n ~ .mdui-list-item-text {\n margin-top: 2px;\n }\n }\n\n // 限制文本高度\n .mdui-list-item-one-line {\n height: 18px;\n }\n .mdui-list-item-two-line {\n height: 36px;\n }\n .mdui-list-item-three-line {\n height: 54px;\n }\n}\n\n\n/**\n * =============================================================================\n * ************ List dark ************\n * =============================================================================\n */\n.layout-theme({\n .mdui-list {\n // 副标题的分割线\n .mdui-subheader,\n .mdui-subheader-inset {\n &::before {\n background-color: @color-white-divider;\n }\n\n &:first-child {\n &::before {\n background-color: transparent;\n }\n }\n }\n }\n\n // 列表项\n .mdui-list-item {\n color: @color-white-text;\n\n &:hover {\n background-color: @color-hover-white;\n }\n }\n\n // 列表项图标\n .mdui-list-item-icon {\n color: @color-white-icon;\n }\n\n // 列表内容副内容\n .mdui-list-item-text {\n opacity: @opacity-white-secondary;\n }\n\n // 激活状态的列表项\n .mdui-list-item-active {\n background-color: @color-hover-white;\n }\n});\n\n/**\n * ==============================================================================\n * ************ List inner theme ************\n * ==============================================================================\n */\n[class*=\"mdui-color-\"] {\n .mdui-list-item {\n color: inherit;\n }\n .mdui-list-item-icon {\n color: inherit;\n }\n}\n","/**\n * =============================================================================\n * ************ Drawer 抽屉栏导航 ************\n * =============================================================================\n */\n\n/* DOM 加载完后再添加 transition */\nbody.mdui-loaded {\n transition: padding .3s @animation-curve-linear-out-slow-in;\n}\nbody.mdui-loaded .mdui-drawer {\n transition: all .3s @animation-curve-linear-out-slow-in;\n}\n\n/* 抽屉栏外层,默认出现在左侧且隐藏 */\n.mdui-drawer {\n position: fixed;\n top: 0;\n bottom: 0;\n left: 0;\n z-index: @z-index-drawer;\n box-sizing: border-box;\n\n // 手机端宽度为 100% - 56px,最大为 280px\n /* stylelint-disable-next-line */\n width: calc(~\"100% - 56px\");\n max-width: @drawer-width-xs;\n margin: 0;\n overflow-x: hidden;\n overflow-y: auto;\n white-space: nowrap;\n will-change: transform;\n -webkit-overflow-scrolling: touch;\n\n // 隐藏时不显示阴影\n @media (max-width: @screen-sm-max) {\n &:not(.mdui-drawer-open) {\n box-shadow: none !important;\n }\n }\n\n // 平板端宽度为 100% - 64px,最大为 320px\n @media (min-width: @screen-sm-min) {\n /* stylelint-disable-next-line */\n width: calc(~\"100% - 64px\");\n max-width: @drawer-width-sm;\n }\n\n // 桌面端宽度\n @media (min-width: @screen-md-min) {\n width: @drawer-width-md;\n max-width: none;\n\n // 隐藏时不显示阴影\n &.mdui-drawer-close {\n box-shadow: none !important;\n }\n }\n}\n\n/* 出现在右侧的抽屉栏 */\n.mdui-drawer-right {\n right: 0;\n left: auto;\n}\n\n/* 平板上的样式 */\n@media (max-width: @screen-sm-max) {\n .mdui-drawer {\n /* 始终有背景和阴影 */\n background-color: #fff;\n\n /* 默认隐藏 */\n transform: translateX(-@drawer-width-sm - 10);\n .mdui-shadow(16);\n }\n\n .mdui-drawer-right {\n /* 右侧 drawer 也默认隐藏 */\n transform: translateX(@drawer-width-sm + 10);\n }\n}\n\n/* 手机上的样式 */\n@media (max-width: @screen-xs-max) {\n .mdui-drawer {\n transform: translateX(-@drawer-width-xs - 10);\n }\n\n .mdui-drawer-right {\n transform: translateX(@drawer-width-xs + 10);\n }\n}\n\n/* 强制隐藏抽屉栏 */\n._drawer_close(@drawer-width) {\n .mdui-drawer-close {\n transform: translateX(-@drawer-width - 10);\n &.mdui-drawer-right {\n transform: translateX(@drawer-width + 10);\n }\n }\n}\n\n._drawer_close(@drawer-width-xs);\n\n@media (min-width: @screen-sm-min) {\n ._drawer_close(@drawer-width-sm);\n}\n\n@media (min-width: @screen-md-min) {\n ._drawer_close(@drawer-width-md);\n}\n\n/* 强制显示抽屉栏 */\n.mdui-drawer-open {\n transform: translateX(0) !important;\n}\n\n/* PC 上的样式 */\n@media (min-width: @screen-md-min) {\n /* 使该类所在元素获得 padding-left 或 padding-right,避免被抽屉栏覆盖住页面 */\n .mdui-drawer-body-left {\n padding-left: @drawer-width-md;\n }\n .mdui-drawer-body-right {\n padding-right: @drawer-width-md;\n }\n\n /* PC 上默认有上边距 */\n .mdui-drawer {\n .mdui-appbar-with-toolbar & {\n top: @appbar-height-sm;\n }\n\n .mdui-appbar-with-tab & {\n top: 48px;\n }\n\n .mdui-appbar-with-tab-larger & {\n top: 72px;\n }\n\n .mdui-appbar-with-toolbar.mdui-appbar-with-tab & {\n top: @appbar-height-sm + 48px;\n }\n\n .mdui-appbar-with-toolbar.mdui-appbar-with-tab-larger & {\n top: @appbar-height-sm + 72px;\n }\n }\n}\n\n/* 抽屉栏不是透明时添加阴影 */\n.mdui-drawer[class*=\"mdui-color-\"]:not(.mdui-color-transparent) {\n .mdui-shadow(16);\n}\n\n/* 抽屉栏 100% 高度,覆盖在导航栏上面 */\n.mdui-drawer-full-height {\n top: 0 !important;\n}\n\n\n/**\n * =============================================================================\n * ************ Drawer dark ************\n * =============================================================================\n */\n.layout-theme({\n // 手机平板上的样式\n @media (max-width: @screen-sm-max) {\n .mdui-drawer {\n background-color: @layout-dark-color-4;\n }\n }\n});\n","/**\n * =============================================================================\n * ************ Dialog 提示框 ************\n * =============================================================================\n */\n\n@import '../button/index';\n\n.mdui-dialog {\n position: fixed;\n right: 0;\n left: 0;\n z-index: @z-index-dialog;\n display: none;\n box-sizing: border-box;\n width: 92%;\n min-width: 180px;\n max-width: 728px;\n max-height: 90%;\n margin: auto;\n overflow: hidden;\n color: #000;\n background-color: #fff;\n border-radius: 2px;\n transform: scale(0.95);\n opacity: 0;\n transition-duration: .3s;\n transition-property: transform, opacity, visibility;\n will-change: top, opacity, transform;\n\n @media (min-width: @screen-sm-min) {\n width: 85%;\n max-height: 85%;\n }\n @media (min-width: @screen-md-min) {\n width: 80%;\n max-height: 80%;\n }\n\n .mdui-shadow(24);\n}\n\n/* 打开提示框 */\n.mdui-dialog-open {\n transform: scale(1);\n opacity: 1;\n}\n\n/* 提示框标题 */\n.mdui-dialog-title {\n box-sizing: border-box;\n font-weight: 500;\n font-size: 20px;\n line-height: 24px;\n text-align: left;\n}\n\n/* 标题固定在顶部 */\n.mdui-dialog>.mdui-dialog-title {\n padding: 24px 24px 20px 24px;\n}\n\n/* 提示框内容 */\n.mdui-dialog-content {\n box-sizing: border-box;\n padding: 24px;\n overflow-y: auto;\n color: rgba(0, 0, 0, 0.7);\n font-size: 15px;\n line-height: 1.5;\n -webkit-overflow-scrolling: touch;\n}\n\n/* 标题随内容滚动 */\n.mdui-dialog-content>.mdui-dialog-title {\n padding-bottom: 20px;\n}\n\n.mdui-dialog-title + .mdui-dialog-content {\n padding-top: 0;\n}\n\n/* 提示框底部按钮 */\n.mdui-dialog-actions {\n box-sizing: border-box;\n padding: 8px;\n text-align: right;\n .mdui-btn {\n min-width: 64px;\n margin-left: 8px;\n .mdui-text-color(@color-accent-default-name);\n &:first-child {\n margin-left: 0;\n }\n }\n}\n\n/* 底部按钮滚随内容动 */\n.mdui-dialog-content>.mdui-dialog-actions {\n margin: 0 -24px -24px -24px;\n padding-top: 32px;\n}\n\n/* 使提示框底部按钮竖排 */\n.mdui-dialog-actions-stacked {\n padding: 8px 0 8px 0;\n .mdui-btn {\n width: 100%;\n height: 48px;\n margin: 0;\n line-height: 48px !important;\n text-align: right;\n border-radius: 0;\n }\n}\n\n\n/**\n * =============================================================================\n * ************ Dialog 强调色 ************\n * =============================================================================\n */\n& {\n .loop-accent-theme(@counter-color) when (@counter-color > 0) {\n .loop-accent-theme((@counter-color - 1));\n @colorName: extract(@globalAccentColors, @counter-color);\n\n .mdui-theme-accent-@{colorName} when not (@colorName = null) {\n .mdui-dialog-actions {\n .mdui-btn {\n .mdui-text-color(@colorName);\n }\n }\n }\n\n }\n .loop-accent-theme(length(@globalAccentColors));\n}\n\n\n/**\n * =============================================================================\n * ************ Dialog dark ************\n * =============================================================================\n */\n.layout-theme({\n .mdui-dialog {\n color: #fff;\n background-color: @layout-dark-color-4;\n }\n .mdui-dialog-content {\n color: rgba(255, 255, 255, 0.7);\n }\n});\n","/**\n * =============================================================================\n * ************ Dialog alert ************\n * =============================================================================\n */\n\n @import './index';\n\n.mdui-dialog-alert {\n max-width: 448px;\n}\n","/**\n * =============================================================================\n * ************ Dialog confirm ************\n * =============================================================================\n */\n\n @import './index';\n\n.mdui-dialog-confirm {\n max-width: 448px;\n}\n","/**\n * =============================================================================\n * ************ Dialog prompt ************\n * =============================================================================\n */\n\n@import '../textfield/index';\n@import './index';\n\n.mdui-dialog-prompt {\n max-width: 448px;\n\n .mdui-textfield {\n padding-top: 0;\n }\n}\n","/**\n * =============================================================================\n * ************ Tooltip 工具提示 ************\n * =============================================================================\n */\n\n.mdui-tooltip {\n position: absolute;\n z-index: @z-index-tooltip;\n display: inline-block;\n box-sizing: border-box;\n max-width: 180px;\n min-height: 32px;\n padding: 8px 16px;\n color: #fff;\n font-weight: 500;\n\n // 移动端样式\n font-size: 14px;\n line-height: 22px;\n text-align: left;\n background-color: rgba(red(@color-grey-700), green(@color-grey-700), blue(@color-grey-700), 0.9);\n border-radius: 2px;\n transform: scale(0);\n opacity: 0;\n transition-timing-function: @animation-curve-default;\n transition-duration: 0.15s;\n transition-property: opacity, transform;\n will-change: opacity, transform;\n\n // 桌面端样式\n @media (min-width: @screen-md-min) {\n max-width: 200px;\n min-height: 24px;\n padding: 4px 8px;\n font-size: 12px;\n line-height: 18px;\n }\n}\n\n/* 显示工具提示 */\n.mdui-tooltip-open {\n transform: scale(1);\n opacity: 1;\n}","/**\n * =============================================================================\n * ************ Snackbar ************\n * =============================================================================\n */\n\n@import '../button/index';\n\n.mdui-snackbar {\n position: fixed;\n z-index: @z-index-snackbar;\n display: flex;\n align-items: center;\n justify-content: space-between;\n box-sizing: border-box;\n\n // 手机端的样式\n width: 100%;\n min-height: 48px;\n padding: 0 24px 0 24px;\n color: #fff;\n font-size: 14px;\n line-height: 20px;\n background-color: #323232;\n will-change: transform;\n\n // 平板、桌面端样式\n @media (min-width: @screen-sm-min) {\n width: auto;\n min-width: 288px;\n max-width: 568px;\n border-radius: 2px;\n }\n}\n\n.mdui-snackbar-bottom,\n.mdui-snackbar-top,\n.mdui-snackbar-left-top,\n.mdui-snackbar-left-bottom,\n.mdui-snackbar-right-top,\n.mdui-snackbar-right-bottom {\n transition: transform .3s @animation-curve-default;\n}\n\n/* 位置 */\n.mdui-snackbar-bottom,\n.mdui-snackbar-left-bottom,\n.mdui-snackbar-right-bottom {\n bottom: 0;\n}\n\n.mdui-snackbar-top,\n.mdui-snackbar-left-top,\n.mdui-snackbar-right-top {\n top: 0;\n}\n\n.mdui-snackbar-top,\n.mdui-snackbar-bottom {\n left: 50%;\n}\n\n// 平板、桌面端位置\n@media (min-width: @screen-sm-min) {\n .mdui-snackbar-left-top {\n top: 24px;\n left: 24px;\n }\n\n .mdui-snackbar-left-bottom {\n bottom: 24px;\n left: 24px;\n }\n\n .mdui-snackbar-right-top {\n top: 24px;\n right: 24px;\n }\n\n .mdui-snackbar-right-bottom {\n right: 24px;\n bottom: 24px;\n }\n}\n\n/* 文本 */\n.mdui-snackbar-text {\n position: relative;\n max-width: 100%;\n padding: 14px 0 14px 0;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n/* 按钮 */\n.mdui-snackbar-action {\n margin-right: -16px;\n white-space: nowrap;\n .mdui-text-color(@color-accent-default-name, a100);\n}\n\n\n/**\n * =============================================================================\n * ************ Snackbar 强调色 ************\n * =============================================================================\n */\n& {\n .loop-accent-theme(@counter-color) when (@counter-color > 0) {\n .loop-accent-theme((@counter-color - 1));\n @colorName: extract(@globalAccentColors, @counter-color);\n\n .mdui-theme-accent-@{colorName} when not (@colorName = null) {\n .mdui-snackbar-action {\n .mdui-text-color(@colorName, a100);\n }\n }\n\n }\n .loop-accent-theme(length(@globalAccentColors));\n}\n\n\n/**\n * =============================================================================\n * ************ Snackbar dark ************\n * =============================================================================\n */\n.layout-theme({\n .mdui-snackbar {\n background-color: #5d5d5d;\n }\n});\n","/**\n * =============================================================================\n * ************ Chip 纸片 ************\n * =============================================================================\n */\n\n@chip-height: 32px;\n\n.mdui-chip {\n display: inline-block;\n box-sizing: border-box;\n height: @chip-height;\n margin: 2px 0;\n color: inherit;\n white-space: nowrap;\n background-color: #e0e0e0;\n border-radius: @chip-height / 2;\n cursor: pointer;\n user-select: none;\n .mdui-hoverable(2);\n\n &:active {\n background-color: #d6d6d6;\n }\n}\n\n/* 左侧的图标 */\n.mdui-chip-icon {\n position: relative;\n display: inline-block;\n width: @chip-height;\n height: @chip-height;\n margin-right: -4px;\n overflow: hidden;\n color: #fff;\n font-size: 18px;\n line-height: @chip-height;\n text-align: center;\n vertical-align: middle;\n background-color: #989898;\n border-radius: 50%;\n\n .mdui-icon {\n position: absolute;\n top: 4px;\n left: 4px;\n color: #fff;\n }\n}\n\n/* 文本 */\n.mdui-chip-title {\n display: inline-block;\n height: @chip-height;\n padding-right: 12px;\n padding-left: 12px;\n font-size: 14px;\n line-height: @chip-height;\n vertical-align: middle;\n}\n\n/* 删除按钮 */\n.mdui-chip-delete {\n display: inline-block;\n width: 24px;\n height: 24px;\n margin-right: 4px;\n margin-left: -8px;\n overflow: hidden;\n text-align: center;\n text-decoration: none;\n vertical-align: middle;\n border-radius: 50%;\n cursor: pointer;\n opacity: .54;\n transition: opacity .25s @animation-curve-default;\n will-change: opacity;\n &:hover,\n &:focus {\n opacity: .87;\n }\n}\n\n\n/**\n * =============================================================================\n * ************ Chip dark ************\n * =============================================================================\n */\n.layout-theme({\n .mdui-chip {\n background-color: #484848;\n &:active {\n background-color: #5d5d5d;\n }\n }\n});\n","/**\n * =============================================================================\n * ************ Bottom navigation 底部导航栏 ************\n * =============================================================================\n */\n\n@import '../headroom/index';\n\n.mdui-bottom-nav {\n position: relative;\n display: flex;\n height: 56px;\n margin: 0 auto;\n padding: 0;\n overflow: hidden;\n white-space: nowrap;\n\n @media (min-width: @screen-sm-min) {\n &::before {\n flex-grow: 1;\n content: ' ';\n }\n &::after {\n flex-grow: 1;\n content: ' ';\n }\n }\n\n a {\n display: flex;\n flex: 1;\n\n // 使图标和文本垂直排列\n flex-direction: column;\n align-items: center;\n justify-content: center;\n min-width: 32px;\n max-width: none;\n padding: 8px 12px 10px 12px;\n overflow: hidden;\n color: inherit;\n font-size: 12px;\n text-align: center;\n text-decoration: none;\n text-overflow: ellipsis;\n cursor: pointer;\n opacity: 0.7;\n transition: all .2s @animation-curve-default ;\n user-select: none;\n will-change: padding;\n\n @media (min-width: @screen-sm-min) {\n max-width: 144px;\n }\n\n .mdui-icon {\n opacity: 0.7;\n }\n\n label {;\n display: block;\n width: 100%;\n cursor: pointer;\n transition: transform .2s @animation-curve-default ;\n will-change: font-size;\n }\n\n .mdui-icon + label {\n margin-top: 6px;\n }\n\n // 激活状态的导航项\n &.mdui-bottom-nav-active {\n color: @color-default-500;\n font-size: 14px;\n opacity: 1;\n\n .mdui-icon {\n opacity: 1;\n }\n }\n }\n}\n\n/* 只在激活时显示文本 */\n&.mdui-bottom-nav-text-auto {\n a {\n min-width: 32px;\n padding-right: 0;\n padding-left: 0;\n @media (min-width: @screen-sm-min) {\n max-width: 156px;\n }\n .mdui-icon {\n padding-top: 16px;\n transition: padding-top .2s @animation-curve-default;\n will-change: padding-top;\n }\n label {\n transform: scale(0);\n }\n\n &.mdui-bottom-nav-active {\n padding-right: 18px;\n padding-left: 18px;\n .mdui-icon {\n padding-top: 0;\n }\n label {\n transform: scale(1);\n }\n }\n }\n}\n\n/* 固定到页面底部 */\n.mdui-bottom-nav-fixed {\n .mdui-bottom-nav {\n position: fixed;\n right: 0;\n bottom: 0;\n left: 0;\n }\n\n padding-bottom: 56px;\n}\n\n/**\n * =============================================================================\n * ************ Bottom Nav 主色 ************\n * =============================================================================\n */\n\n& {\n .loop-primary-theme(@counter-color) when (@counter-color > 0) {\n .loop-primary-theme((@counter-color - 1));\n @colorName: extract(@globalPrimaryColors, @counter-color);\n @color: 'color-@{colorName}-500';\n\n .mdui-theme-primary-@{colorName} when not (@colorName = null) {\n .mdui-bottom-nav a.mdui-bottom-nav-active {\n color: @@color;\n }\n }\n\n }\n .loop-primary-theme(length(@globalPrimaryColors));\n}\n\n/* 带背景色的底部导航栏 */\n.mdui-bottom-nav[class*=\"mdui-color-\"] {\n .mdui-bottom-nav-active {\n color: inherit !important;\n }\n}\n","/**\n * =============================================================================\n * ************ Progress Linear 线性进度条 ************\n * =============================================================================\n */\n\n/* 线性进度条 */\n.mdui-progress {\n position: relative;\n display: block;\n width: 100%;\n height: 4px;\n overflow: hidden;\n background-color: rgba(red(@color-default-500), green(@color-default-500), blue(@color-default-500), .2);\n border-radius: 2px;\n}\n\n/* 确定进度的线性进度条 */\n.mdui-progress-determinate {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n background-color: @color-default-500;\n transition: width .3s linear;\n}\n\n/* 不确定进度的线性进度条 */\n.mdui-progress-indeterminate {\n background-color: @color-default-500;\n\n &::before {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n background-color: inherit;\n animation: mdui-progress-indeterminate 2s linear infinite;\n content: ' ';\n will-change: left, width;\n }\n\n &::after {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n background-color: inherit;\n animation: mdui-progress-indeterminate-short 2s linear infinite;\n content: ' ';\n will-change: left, width;\n }\n}\n\n@keyframes mdui-progress-indeterminate {\n 0% {\n left: 0;\n width: 0;\n }\n 50% {\n left: 30%;\n width: 70%;\n }\n 75% {\n left: 100%;\n width: 0;\n }\n}\n\n@keyframes mdui-progress-indeterminate-short {\n 0% {\n left: 0;\n width: 0;\n }\n 50% {\n left: 0;\n width: 0;\n }\n 75% {\n left: 0;\n width: 25%;\n }\n 100% {\n left: 100%;\n width: 0;\n }\n}\n\n\n/**\n * =============================================================================\n * ************ Progress linear 主色 ************\n * =============================================================================\n */\n& {\n .loop-primary-theme(@counter-color) when (@counter-color > 0) {\n .loop-primary-theme((@counter-color - 1));\n @colorName: extract(@globalPrimaryColors, @counter-color);\n @color: 'color-@{colorName}-500';\n\n .mdui-theme-primary-@{colorName} when not (@colorName = null) {\n .mdui-progress {\n background-color: rgba(red(@@color), green(@@color), blue(@@color), .2);\n }\n .mdui-progress-determinate,\n .mdui-progress-indeterminate {\n .mdui-background-color(@colorName);\n }\n }\n\n }\n .loop-primary-theme(length(@globalPrimaryColors));\n}\n","/**\n * =============================================================================\n * ************ Progress Circular 圆形进度条 ************\n * =============================================================================\n */\n\n.mdui-spinner {\n position: relative;\n display: inline-block;\n width: 28px;\n height: 28px;\n animation: mdui-spinner 1568ms linear infinite;\n}\n\n@keyframes mdui-spinner {\n to {\n transform: rotate(360deg);\n }\n}\n\n.mdui-spinner-layer {\n position: absolute;\n width: 100%;\n height: 100%;\n border-color: @color-default-500;\n opacity: 0;\n opacity: 1;\n animation: mdui-spinner-layer-fill-unfill-rotate 5332ms @animation-curve-default infinite both;\n}\n\n.mdui-spinner-layer-1 {\n border-color: @color-blue-400 !important;\n animation:\n mdui-spinner-layer-fill-unfill-rotate 5332ms @animation-curve-default infinite both,\n mdui-spinner-layer-1-fade-in-out 5332ms @animation-curve-default infinite both;\n}\n\n.mdui-spinner-layer-2 {\n border-color: @color-red-500 !important;\n animation:\n mdui-spinner-layer-fill-unfill-rotate 5332ms @animation-curve-default infinite both,\n mdui-spinner-layer-2-fade-in-out 5332ms @animation-curve-default infinite both;\n}\n\n.mdui-spinner-layer-3 {\n border-color: @color-yellow-600 !important;\n animation:\n mdui-spinner-layer-fill-unfill-rotate 5332ms @animation-curve-default infinite both,\n mdui-spinner-layer-3-fade-in-out 5332ms @animation-curve-default infinite both;\n}\n\n.mdui-spinner-layer-4 {\n border-color: @color-green-500 !important;\n animation:\n mdui-spinner-layer-fill-unfill-rotate 5332ms @animation-curve-default infinite both,\n mdui-spinner-layer-4-fade-in-out 5332ms @animation-curve-default infinite both;\n}\n\n@keyframes mdui-spinner-layer-fill-unfill-rotate {\n 12.5% { transform: rotate(135deg); }\n 25% { transform: rotate(270deg); }\n 37.5% { transform: rotate(405deg); }\n 50% { transform: rotate(540deg); }\n 62.5% { transform: rotate(675deg); }\n 75% { transform: rotate(810deg); }\n 87.5% { transform: rotate(945deg); }\n to { transform: rotate(1080deg); }\n}\n\n@keyframes mdui-spinner-layer-1-fade-in-out {\n from { opacity: 1; }\n 25% { opacity: 1; }\n 26% { opacity: 0; }\n 89% { opacity: 0; }\n 90% { opacity: 1; }\n 100% { opacity: 1; }\n}\n\n@keyframes mdui-spinner-layer-2-fade-in-out {\n from { opacity: 0; }\n 15% { opacity: 0; }\n 25% { opacity: 1; }\n 50% { opacity: 1; }\n 51% { opacity: 0; }\n}\n\n@keyframes mdui-spinner-layer-3-fade-in-out {\n from { opacity: 0; }\n 40% { opacity: 0; }\n 50% { opacity: 1; }\n 75% { opacity: 1; }\n 76% { opacity: 0; }\n}\n\n@keyframes mdui-spinner-layer-4-fade-in-out {\n from { opacity: 0; }\n 65% { opacity: 0; }\n 75% { opacity: 1; }\n 90% { opacity: 1; }\n 100% { opacity: 0; }\n}\n\n.mdui-spinner-gap-patch {\n position: absolute;\n top: 0;\n left: 45%;\n width: 10%;\n height: 100%;\n overflow: hidden;\n border-color: inherit;\n\n .mdui-spinner-circle {\n left: -450%;\n box-sizing: border-box;\n width: 1000%;\n }\n}\n\n.mdui-spinner-circle-clipper {\n position: relative;\n display: inline-block;\n width: 50%;\n height: 100%;\n overflow: hidden;\n border-color: inherit;\n\n .mdui-spinner-circle {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n box-sizing: border-box;\n width: 200%;\n height: 100%;\n border-color: inherit;\n border-style: solid;\n border-width: 3px;\n border-bottom-color: transparent !important;\n border-radius: 50%;\n animation: none;\n }\n\n &.mdui-spinner-left {\n float: left;\n\n .mdui-spinner-circle {\n left: 0;\n border-right-color: transparent !important;\n transform: rotate(129deg);\n animation: mdui-spinner-left-spin 1333ms @animation-curve-default infinite both;\n }\n }\n\n &.mdui-spinner-right {\n float: right;\n\n .mdui-spinner-circle {\n left: -100%;\n border-left-color: transparent !important;\n transform: rotate(-129deg);\n animation: mdui-spinner-right-spin 1333ms @animation-curve-default infinite both;\n }\n }\n}\n\n@keyframes mdui-spinner-left-spin {\n from { transform: rotate(130deg); }\n 50% { transform: rotate(-5deg); }\n to { transform: rotate(130deg); }\n}\n\n@keyframes mdui-spinner-right-spin {\n from { transform: rotate(-130deg); }\n 50% { transform: rotate(5deg); }\n to { transform: rotate(-130deg); }\n}\n\n\n/**\n * =============================================================================\n * ************ Spinner linear 主色 ************\n * =============================================================================\n */\n& {\n .loop-primary-theme(@counter-color) when (@counter-color > 0) {\n .loop-primary-theme((@counter-color - 1));\n @colorName: extract(@globalPrimaryColors, @counter-color);\n @color: 'color-@{colorName}-500';\n\n .mdui-theme-primary-@{colorName} when not (@colorName = null) {\n .mdui-spinner-layer {\n border-color: @@color;\n }\n }\n\n }\n .loop-primary-theme(length(@globalPrimaryColors));\n}\n","/**\n * =============================================================================\n * ************ Menu 菜单 ************\n * =============================================================================\n */\n\n// 普通菜单宽度基数\n@menu-simple-x: 56px;\n\n// 级联菜单宽度基数\n@menu-cascade-x: 64px;\n\n/* 菜单 */\n.mdui-menu {\n position: fixed;\n z-index: 99999;\n display: block;\n box-sizing: border-box;\n width: @menu-simple-x * 3;\n margin: 0;\n padding: 8px 0;\n\n // 简单菜单高度超出窗口高度时,使菜单边框和窗口保持一定距离,菜单内出现滚动条\n overflow-y: auto;\n color: @color-black-text;\n font-size: 16px;\n list-style: none;\n background-color: #fff;\n border-radius: 2px;\n transform: scale(0);\n visibility: hidden;\n opacity: 0;\n transition-timing-function: @animation-curve-linear-out-slow-in;\n transition-duration: .3s;\n transition-property: transform, opacity, visibility;\n will-change: transform, opacity, visibility;\n -webkit-overflow-scrolling: touch;\n .mdui-shadow(8);\n\n // 菜单中的分隔线,默认上下有 8px 的外边距\n .mdui-divider {\n margin-top: 8px;\n margin-bottom: 8px;\n }\n}\n\n/* 打开状态的菜单 */\n.mdui-menu-open {\n transform: scale(1);\n visibility: visible;\n opacity: 1;\n}\n\n/* 关闭中的菜单 */\n.mdui-menu-closing {\n transform: scale(1);\n visibility: visible;\n opacity: 0;\n}\n\n/* 菜单项 */\n.mdui-menu-item {\n position: relative;\n\n &>a {\n position: relative;\n display: block;\n height: 48px;\n padding: 0 16px;\n color: inherit;\n line-height: 48px;\n text-decoration: none;\n user-select: none;\n .mdui-text-truncate();\n\n &:hover {\n background-color: @color-grey-200;\n }\n }\n\n // 子菜单默认隐藏,阴影更深\n &>.mdui-menu {\n position: absolute;\n .mdui-shadow(9);\n }\n\n // 禁用的菜单条目\n &[disabled] {\n &>a {\n color: @color-black-disabled !important;\n cursor: default;\n\n &:hover {\n background-color: inherit !important;\n }\n\n .mdui-icon {\n color: @color-black-icon-disabled;\n }\n }\n }\n}\n\n/* 激活状态的菜单项 */\n.mdui-menu-item-active {\n background-color: @color-grey-200;\n}\n\n/* 菜单中的图标 */\n.mdui-menu-item-icon {\n display: inline-block;\n box-sizing: border-box;\n width: 40px;\n padding-right: 16px;\n color: @color-black-icon;\n}\n\n/* 菜单中的辅助文本或图标 */\n.mdui-menu-item-helper {\n float: right;\n}\n\n/* 有子菜单的条目的图标 */\n.mdui-menu-item-more {\n float: right;\n width: 24px;\n height: 24px;\n margin: 4px 0;\n //background-image: data-uri('image/svg+xml', './components/menu/svg/arrow_right_dark.svg');\n // https://www.zhangxinxu.com/sp/svgo/ CSS 转义\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M9.5 17.5l5-5-5-5z' opacity='.54'/%3E%3C/svg%3E\");\n}\n\n\n/* 级联菜单 */\n.mdui-menu-cascade {\n width: @menu-cascade-x * 5;\n padding: 16px 0;\n\n // 级联菜单内部不出现滚动条\n overflow: visible;\n font-size: 15px;\n\n &>.mdui-menu-item {\n &>a {\n height: 32px;\n padding: 0 24px;\n line-height: 32px;\n }\n }\n}\n\n\n/**\n * =============================================================================\n * ************ Menu dark ************\n * =============================================================================\n */\n.layout-theme({\n .mdui-menu {\n color: #fff;\n background-color: @layout-dark-color-4;\n }\n\n .mdui-menu-item {\n &>a {\n &:hover {\n background-color: @color-grey-700;\n }\n }\n\n &[disabled] {\n &>a {\n color: @color-white-disabled !important;\n\n .mdui-icon {\n color: @color-white-icon-disabled;\n }\n }\n }\n }\n\n .mdui-menu-item-active {\n background-color: @color-grey-700;\n }\n\n .mdui-menu-item-icon {\n color: @color-white-icon;\n }\n\n .mdui-menu-item-more {\n //background-image: data-uri('image/svg+xml', './components/menu/svg/arrow_right_light.svg');\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M9.5 17.5l5-5-5-5z' fill='%23FFF'/%3E%3C/svg%3E\");\n }\n});\n"]} \ No newline at end of file diff --git a/mdui.js b/mdui.js new file mode 100644 index 0000000..f90b6e9 --- /dev/null +++ b/mdui.js @@ -0,0 +1,6474 @@ +/*! + * mdui 1.0.2 (https://mdui.org) + * Copyright 2016-2021 zdhxiong + * Licensed under MIT + */ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.mdui = factory()); +}(this, (function () { 'use strict'; + + !function(){try{return new MouseEvent("test")}catch(e$1){}var e=function(e,t){t=t||{bubbles:!1,cancelable:!1};var n=document.createEvent("MouseEvent");return n.initMouseEvent(e,t.bubbles,t.cancelable,window,0,t.screenX||0,t.screenY||0,t.clientX||0,t.clientY||0,t.ctrlKey||!1,t.altKey||!1,t.shiftKey||!1,t.metaKey||!1,t.button||0,t.relatedTarget||null),n};e.prototype=Event.prototype,window.MouseEvent=e;}(); + + !function(){function t(t,e){e=e||{bubbles:!1,cancelable:!1,detail:void 0};var n=document.createEvent("CustomEvent");return n.initCustomEvent(t,e.bubbles,e.cancelable,e.detail),n}"function"!=typeof window.CustomEvent&&(t.prototype=window.Event.prototype,window.CustomEvent=t);}(); + + /** + * @this {Promise} + */ + function finallyConstructor(callback) { + var constructor = this.constructor; + return this.then( + function(value) { + // @ts-ignore + return constructor.resolve(callback()).then(function() { + return value; + }); + }, + function(reason) { + // @ts-ignore + return constructor.resolve(callback()).then(function() { + // @ts-ignore + return constructor.reject(reason); + }); + } + ); + } + + function allSettled(arr) { + var P = this; + return new P(function(resolve, reject) { + if (!(arr && typeof arr.length !== 'undefined')) { + return reject( + new TypeError( + typeof arr + + ' ' + + arr + + ' is not iterable(cannot read property Symbol(Symbol.iterator))' + ) + ); + } + var args = Array.prototype.slice.call(arr); + if (args.length === 0) { return resolve([]); } + var remaining = args.length; + + function res(i, val) { + if (val && (typeof val === 'object' || typeof val === 'function')) { + var then = val.then; + if (typeof then === 'function') { + then.call( + val, + function(val) { + res(i, val); + }, + function(e) { + args[i] = { status: 'rejected', reason: e }; + if (--remaining === 0) { + resolve(args); + } + } + ); + return; + } + } + args[i] = { status: 'fulfilled', value: val }; + if (--remaining === 0) { + resolve(args); + } + } + + for (var i = 0; i < args.length; i++) { + res(i, args[i]); + } + }); + } + + // Store setTimeout reference so promise-polyfill will be unaffected by + // other code modifying setTimeout (like sinon.useFakeTimers()) + var setTimeoutFunc = setTimeout; + + function isArray(x) { + return Boolean(x && typeof x.length !== 'undefined'); + } + + function noop() {} + + // Polyfill for Function.prototype.bind + function bind(fn, thisArg) { + return function() { + fn.apply(thisArg, arguments); + }; + } + + /** + * @constructor + * @param {Function} fn + */ + function Promise$1(fn) { + if (!(this instanceof Promise$1)) + { throw new TypeError('Promises must be constructed via new'); } + if (typeof fn !== 'function') { throw new TypeError('not a function'); } + /** @type {!number} */ + this._state = 0; + /** @type {!boolean} */ + this._handled = false; + /** @type {Promise|undefined} */ + this._value = undefined; + /** @type {!Array} */ + this._deferreds = []; + + doResolve(fn, this); + } + + function handle(self, deferred) { + while (self._state === 3) { + self = self._value; + } + if (self._state === 0) { + self._deferreds.push(deferred); + return; + } + self._handled = true; + Promise$1._immediateFn(function() { + var cb = self._state === 1 ? deferred.onFulfilled : deferred.onRejected; + if (cb === null) { + (self._state === 1 ? resolve : reject)(deferred.promise, self._value); + return; + } + var ret; + try { + ret = cb(self._value); + } catch (e) { + reject(deferred.promise, e); + return; + } + resolve(deferred.promise, ret); + }); + } + + function resolve(self, newValue) { + try { + // Promise Resolution Procedure: https://github.com/promises-aplus/promises-spec#the-promise-resolution-procedure + if (newValue === self) + { throw new TypeError('A promise cannot be resolved with itself.'); } + if ( + newValue && + (typeof newValue === 'object' || typeof newValue === 'function') + ) { + var then = newValue.then; + if (newValue instanceof Promise$1) { + self._state = 3; + self._value = newValue; + finale(self); + return; + } else if (typeof then === 'function') { + doResolve(bind(then, newValue), self); + return; + } + } + self._state = 1; + self._value = newValue; + finale(self); + } catch (e) { + reject(self, e); + } + } + + function reject(self, newValue) { + self._state = 2; + self._value = newValue; + finale(self); + } + + function finale(self) { + if (self._state === 2 && self._deferreds.length === 0) { + Promise$1._immediateFn(function() { + if (!self._handled) { + Promise$1._unhandledRejectionFn(self._value); + } + }); + } + + for (var i = 0, len = self._deferreds.length; i < len; i++) { + handle(self, self._deferreds[i]); + } + self._deferreds = null; + } + + /** + * @constructor + */ + function Handler(onFulfilled, onRejected, promise) { + this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null; + this.onRejected = typeof onRejected === 'function' ? onRejected : null; + this.promise = promise; + } + + /** + * Take a potentially misbehaving resolver function and make sure + * onFulfilled and onRejected are only called once. + * + * Makes no guarantees about asynchrony. + */ + function doResolve(fn, self) { + var done = false; + try { + fn( + function(value) { + if (done) { return; } + done = true; + resolve(self, value); + }, + function(reason) { + if (done) { return; } + done = true; + reject(self, reason); + } + ); + } catch (ex) { + if (done) { return; } + done = true; + reject(self, ex); + } + } + + Promise$1.prototype['catch'] = function(onRejected) { + return this.then(null, onRejected); + }; + + Promise$1.prototype.then = function(onFulfilled, onRejected) { + // @ts-ignore + var prom = new this.constructor(noop); + + handle(this, new Handler(onFulfilled, onRejected, prom)); + return prom; + }; + + Promise$1.prototype['finally'] = finallyConstructor; + + Promise$1.all = function(arr) { + return new Promise$1(function(resolve, reject) { + if (!isArray(arr)) { + return reject(new TypeError('Promise.all accepts an array')); + } + + var args = Array.prototype.slice.call(arr); + if (args.length === 0) { return resolve([]); } + var remaining = args.length; + + function res(i, val) { + try { + if (val && (typeof val === 'object' || typeof val === 'function')) { + var then = val.then; + if (typeof then === 'function') { + then.call( + val, + function(val) { + res(i, val); + }, + reject + ); + return; + } + } + args[i] = val; + if (--remaining === 0) { + resolve(args); + } + } catch (ex) { + reject(ex); + } + } + + for (var i = 0; i < args.length; i++) { + res(i, args[i]); + } + }); + }; + + Promise$1.allSettled = allSettled; + + Promise$1.resolve = function(value) { + if (value && typeof value === 'object' && value.constructor === Promise$1) { + return value; + } + + return new Promise$1(function(resolve) { + resolve(value); + }); + }; + + Promise$1.reject = function(value) { + return new Promise$1(function(resolve, reject) { + reject(value); + }); + }; + + Promise$1.race = function(arr) { + return new Promise$1(function(resolve, reject) { + if (!isArray(arr)) { + return reject(new TypeError('Promise.race accepts an array')); + } + + for (var i = 0, len = arr.length; i < len; i++) { + Promise$1.resolve(arr[i]).then(resolve, reject); + } + }); + }; + + // Use polyfill for setImmediate for performance gains + Promise$1._immediateFn = + // @ts-ignore + (typeof setImmediate === 'function' && + function(fn) { + // @ts-ignore + setImmediate(fn); + }) || + function(fn) { + setTimeoutFunc(fn, 0); + }; + + Promise$1._unhandledRejectionFn = function _unhandledRejectionFn(err) { + if (typeof console !== 'undefined' && console) { + console.warn('Possible Unhandled Promise Rejection:', err); // eslint-disable-line no-console + } + }; + + /** @suppress {undefinedVars} */ + var globalNS = (function() { + // the only reliable means to get the global object is + // `Function('return this')()` + // However, this causes CSP violations in Chrome apps. + if (typeof self !== 'undefined') { + return self; + } + if (typeof window !== 'undefined') { + return window; + } + if (typeof global !== 'undefined') { + return global; + } + throw new Error('unable to locate global object'); + })(); + + // Expose the polyfill if Promise is undefined or set to a + // non-function value. The latter can be due to a named HTMLElement + // being exposed by browsers for legacy reasons. + // https://github.com/taylorhakes/promise-polyfill/issues/114 + if (typeof globalNS['Promise'] !== 'function') { + globalNS['Promise'] = Promise$1; + } else if (!globalNS.Promise.prototype['finally']) { + globalNS.Promise.prototype['finally'] = finallyConstructor; + } else if (!globalNS.Promise.allSettled) { + globalNS.Promise.allSettled = allSettled; + } + + function isFunction(target) { + return typeof target === 'function'; + } + function isString(target) { + return typeof target === 'string'; + } + function isNumber(target) { + return typeof target === 'number'; + } + function isBoolean(target) { + return typeof target === 'boolean'; + } + function isUndefined(target) { + return typeof target === 'undefined'; + } + function isNull(target) { + return target === null; + } + function isWindow(target) { + return target instanceof Window; + } + function isDocument(target) { + return target instanceof Document; + } + function isElement(target) { + return target instanceof Element; + } + function isNode(target) { + return target instanceof Node; + } + /** + * 是否是 IE 浏览器 + */ + function isIE() { + // @ts-ignore + return !!window.document.documentMode; + } + function isArrayLike(target) { + if (isFunction(target) || isWindow(target)) { + return false; + } + return isNumber(target.length); + } + function isObjectLike(target) { + return typeof target === 'object' && target !== null; + } + function toElement(target) { + return isDocument(target) ? target.documentElement : target; + } + /** + * 把用 - 分隔的字符串转为驼峰(如 box-sizing 转换为 boxSizing) + * @param string + */ + function toCamelCase(string) { + return string + .replace(/^-ms-/, 'ms-') + .replace(/-([a-z])/g, function (_, letter) { return letter.toUpperCase(); }); + } + /** + * 把驼峰法转为用 - 分隔的字符串(如 boxSizing 转换为 box-sizing) + * @param string + */ + function toKebabCase(string) { + return string.replace(/[A-Z]/g, function (replacer) { return '-' + replacer.toLowerCase(); }); + } + /** + * 获取元素的样式值 + * @param element + * @param name + */ + function getComputedStyleValue(element, name) { + return window.getComputedStyle(element).getPropertyValue(toKebabCase(name)); + } + /** + * 检查元素的 box-sizing 是否是 border-box + * @param element + */ + function isBorderBox(element) { + return getComputedStyleValue(element, 'box-sizing') === 'border-box'; + } + /** + * 获取元素的 padding, border, margin 宽度(两侧宽度的和,单位为px) + * @param element + * @param direction + * @param extra + */ + function getExtraWidth(element, direction, extra) { + var position = direction === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom']; + return [0, 1].reduce(function (prev, _, index) { + var prop = extra + position[index]; + if (extra === 'border') { + prop += 'Width'; + } + return prev + parseFloat(getComputedStyleValue(element, prop) || '0'); + }, 0); + } + /** + * 获取元素的样式值,对 width 和 height 进行过处理 + * @param element + * @param name + */ + function getStyle(element, name) { + // width、height 属性使用 getComputedStyle 得到的值不准确,需要使用 getBoundingClientRect 获取 + if (name === 'width' || name === 'height') { + var valueNumber = element.getBoundingClientRect()[name]; + if (isBorderBox(element)) { + return (valueNumber + "px"); + } + return ((valueNumber - + getExtraWidth(element, name, 'border') - + getExtraWidth(element, name, 'padding')) + "px"); + } + return getComputedStyleValue(element, name); + } + /** + * 获取子节点组成的数组 + * @param target + * @param parent + */ + function getChildNodesArray(target, parent) { + var tempParent = document.createElement(parent); + tempParent.innerHTML = target; + return [].slice.call(tempParent.childNodes); + } + /** + * 始终返回 false 的函数 + */ + function returnFalse() { + return false; + } + /** + * 数值单位的 CSS 属性 + */ + var cssNumber = [ + 'animationIterationCount', + 'columnCount', + 'fillOpacity', + 'flexGrow', + 'flexShrink', + 'fontWeight', + 'gridArea', + 'gridColumn', + 'gridColumnEnd', + 'gridColumnStart', + 'gridRow', + 'gridRowEnd', + 'gridRowStart', + 'lineHeight', + 'opacity', + 'order', + 'orphans', + 'widows', + 'zIndex', + 'zoom' ]; + + function each(target, callback) { + if (isArrayLike(target)) { + for (var i = 0; i < target.length; i += 1) { + if (callback.call(target[i], i, target[i]) === false) { + return target; + } + } + } + else { + var keys = Object.keys(target); + for (var i$1 = 0; i$1 < keys.length; i$1 += 1) { + if (callback.call(target[keys[i$1]], keys[i$1], target[keys[i$1]]) === false) { + return target; + } + } + } + return target; + } + + /** + * 为了使用模块扩充,这里不能使用默认导出 + */ + var JQ = function JQ(arr) { + var this$1 = this; + + this.length = 0; + if (!arr) { + return this; + } + each(arr, function (i, item) { + // @ts-ignore + this$1[i] = item; + }); + this.length = arr.length; + return this; + }; + + function get$() { + var $ = function (selector) { + if (!selector) { + return new JQ(); + } + // JQ + if (selector instanceof JQ) { + return selector; + } + // function + if (isFunction(selector)) { + if (/complete|loaded|interactive/.test(document.readyState) && + document.body) { + selector.call(document, $); + } + else { + document.addEventListener('DOMContentLoaded', function () { return selector.call(document, $); }, false); + } + return new JQ([document]); + } + // String + if (isString(selector)) { + var html = selector.trim(); + // 根据 HTML 字符串创建 JQ 对象 + if (html[0] === '<' && html[html.length - 1] === '>') { + var toCreate = 'div'; + var tags = { + li: 'ul', + tr: 'tbody', + td: 'tr', + th: 'tr', + tbody: 'table', + option: 'select', + }; + each(tags, function (childTag, parentTag) { + if (html.indexOf(("<" + childTag)) === 0) { + toCreate = parentTag; + return false; + } + return; + }); + return new JQ(getChildNodesArray(html, toCreate)); + } + // 根据 CSS 选择器创建 JQ 对象 + var isIdSelector = selector[0] === '#' && !selector.match(/[ .<>:~]/); + if (!isIdSelector) { + return new JQ(document.querySelectorAll(selector)); + } + var element = document.getElementById(selector.slice(1)); + if (element) { + return new JQ([element]); + } + return new JQ(); + } + if (isArrayLike(selector) && !isNode(selector)) { + return new JQ(selector); + } + return new JQ([selector]); + }; + $.fn = JQ.prototype; + return $; + } + var $ = get$(); + + // 避免页面加载完后直接执行css动画 + // https://css-tricks.com/transitions-only-after-page-load/ + setTimeout(function () { return $('body').addClass('mdui-loaded'); }); + var mdui = { + $: $, + }; + + $.fn.each = function (callback) { + return each(this, callback); + }; + + /** + * 检查 container 元素内是否包含 contains 元素 + * @param container 父元素 + * @param contains 子元素 + * @example + ```js + contains( document, document.body ); // true + contains( document.getElementById('test'), document ); // false + contains( $('.container').get(0), $('.contains').get(0) ); // false + ``` + */ + function contains(container, contains) { + return container !== contains && toElement(container).contains(contains); + } + + /** + * 把第二个数组的元素追加到第一个数组中,并返回合并后的数组 + * @param first 第一个数组 + * @param second 该数组的元素将被追加到第一个数组中 + * @example + ```js + merge( [ 0, 1, 2 ], [ 2, 3, 4 ] ) + // [ 0, 1, 2, 2, 3, 4 ] + ``` + */ + function merge(first, second) { + each(second, function (_, value) { + first.push(value); + }); + return first; + } + + $.fn.get = function (index) { + return index === undefined + ? [].slice.call(this) + : this[index >= 0 ? index : index + this.length]; + }; + + $.fn.find = function (selector) { + var foundElements = []; + this.each(function (_, element) { + merge(foundElements, $(element.querySelectorAll(selector)).get()); + }); + return new JQ(foundElements); + }; + + // 存储事件 + var handlers = {}; + // 元素ID + var mduiElementId = 1; + /** + * 为元素赋予一个唯一的ID + */ + function getElementId(element) { + var key = '_mduiEventId'; + // @ts-ignore + if (!element[key]) { + // @ts-ignore + element[key] = ++mduiElementId; + } + // @ts-ignore + return element[key]; + } + /** + * 解析事件名中的命名空间 + */ + function parse(type) { + var parts = type.split('.'); + return { + type: parts[0], + ns: parts.slice(1).sort().join(' '), + }; + } + /** + * 命名空间匹配规则 + */ + function matcherFor(ns) { + return new RegExp('(?:^| )' + ns.replace(' ', ' .* ?') + '(?: |$)'); + } + /** + * 获取匹配的事件 + * @param element + * @param type + * @param func + * @param selector + */ + function getHandlers(element, type, func, selector) { + var event = parse(type); + return (handlers[getElementId(element)] || []).filter(function (handler) { return handler && + (!event.type || handler.type === event.type) && + (!event.ns || matcherFor(event.ns).test(handler.ns)) && + (!func || getElementId(handler.func) === getElementId(func)) && + (!selector || handler.selector === selector); }); + } + /** + * 添加事件监听 + * @param element + * @param types + * @param func + * @param data + * @param selector + */ + function add(element, types, func, data, selector) { + var elementId = getElementId(element); + if (!handlers[elementId]) { + handlers[elementId] = []; + } + // 传入 data.useCapture 来设置 useCapture: true + var useCapture = false; + if (isObjectLike(data) && data.useCapture) { + useCapture = true; + } + types.split(' ').forEach(function (type) { + if (!type) { + return; + } + var event = parse(type); + function callFn(e, elem) { + // 因为鼠标事件模拟事件的 detail 属性是只读的,因此在 e._detail 中存储参数 + var result = func.apply(elem, + // @ts-ignore + e._detail === undefined ? [e] : [e].concat(e._detail)); + if (result === false) { + e.preventDefault(); + e.stopPropagation(); + } + } + function proxyFn(e) { + // @ts-ignore + if (e._ns && !matcherFor(e._ns).test(event.ns)) { + return; + } + // @ts-ignore + e._data = data; + if (selector) { + // 事件代理 + $(element) + .find(selector) + .get() + .reverse() + .forEach(function (elem) { + if (elem === e.target || + contains(elem, e.target)) { + callFn(e, elem); + } + }); + } + else { + // 不使用事件代理 + callFn(e, element); + } + } + var handler = { + type: event.type, + ns: event.ns, + func: func, + selector: selector, + id: handlers[elementId].length, + proxy: proxyFn, + }; + handlers[elementId].push(handler); + element.addEventListener(handler.type, proxyFn, useCapture); + }); + } + /** + * 移除事件监听 + * @param element + * @param types + * @param func + * @param selector + */ + function remove(element, types, func, selector) { + var handlersInElement = handlers[getElementId(element)] || []; + var removeEvent = function (handler) { + delete handlersInElement[handler.id]; + element.removeEventListener(handler.type, handler.proxy, false); + }; + if (!types) { + handlersInElement.forEach(function (handler) { return removeEvent(handler); }); + } + else { + types.split(' ').forEach(function (type) { + if (type) { + getHandlers(element, type, func, selector).forEach(function (handler) { return removeEvent(handler); }); + } + }); + } + } + + $.fn.trigger = function (type, extraParameters) { + var event = parse(type); + var eventObject; + var eventParams = { + bubbles: true, + cancelable: true, + }; + var isMouseEvent = ['click', 'mousedown', 'mouseup', 'mousemove'].indexOf(event.type) > -1; + if (isMouseEvent) { + // Note: MouseEvent 无法传入 detail 参数 + eventObject = new MouseEvent(event.type, eventParams); + } + else { + eventParams.detail = extraParameters; + eventObject = new CustomEvent(event.type, eventParams); + } + // @ts-ignore + eventObject._detail = extraParameters; + // @ts-ignore + eventObject._ns = event.ns; + return this.each(function () { + this.dispatchEvent(eventObject); + }); + }; + + function extend(target, object1) { + var objectN = [], len = arguments.length - 2; + while ( len-- > 0 ) objectN[ len ] = arguments[ len + 2 ]; + + objectN.unshift(object1); + each(objectN, function (_, object) { + each(object, function (prop, value) { + if (!isUndefined(value)) { + target[prop] = value; + } + }); + }); + return target; + } + + /** + * 将数组或对象序列化,序列化后的字符串可作为 URL 查询字符串使用 + * + * 若传入数组,则格式必须和 serializeArray 方法的返回值一样 + * @param obj 对象或数组 + * @example + ```js + param({ width: 1680, height: 1050 }); + // width=1680&height=1050 + ``` + * @example + ```js + param({ foo: { one: 1, two: 2 }}) + // foo[one]=1&foo[two]=2 + ``` + * @example + ```js + param({ids: [1, 2, 3]}) + // ids[]=1&ids[]=2&ids[]=3 + ``` + * @example + ```js + param([ + {"name":"name","value":"mdui"}, + {"name":"password","value":"123456"} + ]) + // name=mdui&password=123456 + ``` + */ + function param(obj) { + if (!isObjectLike(obj) && !Array.isArray(obj)) { + return ''; + } + var args = []; + function destructure(key, value) { + var keyTmp; + if (isObjectLike(value)) { + each(value, function (i, v) { + if (Array.isArray(value) && !isObjectLike(v)) { + keyTmp = ''; + } + else { + keyTmp = i; + } + destructure((key + "[" + keyTmp + "]"), v); + }); + } + else { + if (value == null || value === '') { + keyTmp = '='; + } + else { + keyTmp = "=" + (encodeURIComponent(value)); + } + args.push(encodeURIComponent(key) + keyTmp); + } + } + if (Array.isArray(obj)) { + each(obj, function () { + destructure(this.name, this.value); + }); + } + else { + each(obj, destructure); + } + return args.join('&'); + } + + // 全局配置参数 + var globalOptions = {}; + // 全局事件名 + var ajaxEvents = { + ajaxStart: 'start.mdui.ajax', + ajaxSuccess: 'success.mdui.ajax', + ajaxError: 'error.mdui.ajax', + ajaxComplete: 'complete.mdui.ajax', + }; + + /** + * 判断此请求方法是否通过查询字符串提交参数 + * @param method 请求方法,大写 + */ + function isQueryStringData(method) { + return ['GET', 'HEAD'].indexOf(method) >= 0; + } + /** + * 添加参数到 URL 上,且 URL 中不存在 ? 时,自动把第一个 & 替换为 ? + * @param url + * @param query + */ + function appendQuery(url, query) { + return (url + "&" + query).replace(/[&?]{1,2}/, '?'); + } + /** + * 合并请求参数,参数优先级:options > globalOptions > defaults + * @param options + */ + function mergeOptions(options) { + // 默认参数 + var defaults = { + url: '', + method: 'GET', + data: '', + processData: true, + async: true, + cache: true, + username: '', + password: '', + headers: {}, + xhrFields: {}, + statusCode: {}, + dataType: 'text', + contentType: 'application/x-www-form-urlencoded', + timeout: 0, + global: true, + }; + // globalOptions 中的回调函数不合并 + each(globalOptions, function (key, value) { + var callbacks = [ + 'beforeSend', + 'success', + 'error', + 'complete', + 'statusCode' ]; + // @ts-ignore + if (callbacks.indexOf(key) < 0 && !isUndefined(value)) { + defaults[key] = value; + } + }); + return extend({}, defaults, options); + } + /** + * 发送 ajax 请求 + * @param options + * @example + ```js + ajax({ + method: "POST", + url: "some.php", + data: { name: "John", location: "Boston" } + }).then(function( msg ) { + alert( "Data Saved: " + msg ); + }); + ``` + */ + function ajax(options) { + // 是否已取消请求 + var isCanceled = false; + // 事件参数 + var eventParams = {}; + // 参数合并 + var mergedOptions = mergeOptions(options); + var url = mergedOptions.url || window.location.toString(); + var method = mergedOptions.method.toUpperCase(); + var data = mergedOptions.data; + var processData = mergedOptions.processData; + var async = mergedOptions.async; + var cache = mergedOptions.cache; + var username = mergedOptions.username; + var password = mergedOptions.password; + var headers = mergedOptions.headers; + var xhrFields = mergedOptions.xhrFields; + var statusCode = mergedOptions.statusCode; + var dataType = mergedOptions.dataType; + var contentType = mergedOptions.contentType; + var timeout = mergedOptions.timeout; + var global = mergedOptions.global; + // 需要发送的数据 + // GET/HEAD 请求和 processData 为 true 时,转换为查询字符串格式,特殊格式不转换 + if (data && + (isQueryStringData(method) || processData) && + !isString(data) && + !(data instanceof ArrayBuffer) && + !(data instanceof Blob) && + !(data instanceof Document) && + !(data instanceof FormData)) { + data = param(data); + } + // 对于 GET、HEAD 类型的请求,把 data 数据添加到 URL 中 + if (data && isQueryStringData(method)) { + // 查询字符串拼接到 URL 中 + url = appendQuery(url, data); + data = null; + } + /** + * 触发事件和回调函数 + * @param event + * @param params + * @param callback + * @param args + */ + function trigger(event, params, callback) { + var args = [], len = arguments.length - 3; + while ( len-- > 0 ) args[ len ] = arguments[ len + 3 ]; + + // 触发全局事件 + if (global) { + $(document).trigger(event, params); + } + // 触发 ajax 回调和事件 + var result1; + var result2; + if (callback) { + // 全局回调 + if (callback in globalOptions) { + // @ts-ignore + result1 = globalOptions[callback].apply(globalOptions, args); + } + // 自定义回调 + if (mergedOptions[callback]) { + // @ts-ignore + result2 = mergedOptions[callback].apply(mergedOptions, args); + } + // beforeSend 回调返回 false 时取消 ajax 请求 + if (callback === 'beforeSend' && + (result1 === false || result2 === false)) { + isCanceled = true; + } + } + } + // XMLHttpRequest 请求 + function XHR() { + var textStatus; + return new Promise(function (resolve, reject) { + // GET/HEAD 请求的缓存处理 + if (isQueryStringData(method) && !cache) { + url = appendQuery(url, ("_=" + (Date.now()))); + } + // 创建 XHR + var xhr = new XMLHttpRequest(); + xhr.open(method, url, async, username, password); + if (contentType || + (data && !isQueryStringData(method) && contentType !== false)) { + xhr.setRequestHeader('Content-Type', contentType); + } + // 设置 Accept + if (dataType === 'json') { + xhr.setRequestHeader('Accept', 'application/json, text/javascript'); + } + // 添加 headers + if (headers) { + each(headers, function (key, value) { + // undefined 值不发送,string 和 null 需要发送 + if (!isUndefined(value)) { + xhr.setRequestHeader(key, value + ''); // 把 null 转换成字符串 + } + }); + } + // 检查是否是跨域请求,跨域请求时不添加 X-Requested-With + var crossDomain = /^([\w-]+:)?\/\/([^/]+)/.test(url) && + RegExp.$2 !== window.location.host; + if (!crossDomain) { + xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest'); + } + if (xhrFields) { + each(xhrFields, function (key, value) { + // @ts-ignore + xhr[key] = value; + }); + } + eventParams.xhr = xhr; + eventParams.options = mergedOptions; + var xhrTimeout; + xhr.onload = function () { + if (xhrTimeout) { + clearTimeout(xhrTimeout); + } + // AJAX 返回的 HTTP 响应码是否表示成功 + var isHttpStatusSuccess = (xhr.status >= 200 && xhr.status < 300) || + xhr.status === 304 || + xhr.status === 0; + var responseData; + if (isHttpStatusSuccess) { + if (xhr.status === 204 || method === 'HEAD') { + textStatus = 'nocontent'; + } + else if (xhr.status === 304) { + textStatus = 'notmodified'; + } + else { + textStatus = 'success'; + } + if (dataType === 'json') { + try { + responseData = + method === 'HEAD' ? undefined : JSON.parse(xhr.responseText); + eventParams.data = responseData; + } + catch (err) { + textStatus = 'parsererror'; + trigger(ajaxEvents.ajaxError, eventParams, 'error', xhr, textStatus); + reject(new Error(textStatus)); + } + if (textStatus !== 'parsererror') { + trigger(ajaxEvents.ajaxSuccess, eventParams, 'success', responseData, textStatus, xhr); + resolve(responseData); + } + } + else { + responseData = + method === 'HEAD' + ? undefined + : xhr.responseType === 'text' || xhr.responseType === '' + ? xhr.responseText + : xhr.response; + eventParams.data = responseData; + trigger(ajaxEvents.ajaxSuccess, eventParams, 'success', responseData, textStatus, xhr); + resolve(responseData); + } + } + else { + textStatus = 'error'; + trigger(ajaxEvents.ajaxError, eventParams, 'error', xhr, textStatus); + reject(new Error(textStatus)); + } + // statusCode + each([globalOptions.statusCode, statusCode], function (_, func) { + if (func && func[xhr.status]) { + if (isHttpStatusSuccess) { + func[xhr.status](responseData, textStatus, xhr); + } + else { + func[xhr.status](xhr, textStatus); + } + } + }); + trigger(ajaxEvents.ajaxComplete, eventParams, 'complete', xhr, textStatus); + }; + xhr.onerror = function () { + if (xhrTimeout) { + clearTimeout(xhrTimeout); + } + trigger(ajaxEvents.ajaxError, eventParams, 'error', xhr, xhr.statusText); + trigger(ajaxEvents.ajaxComplete, eventParams, 'complete', xhr, 'error'); + reject(new Error(xhr.statusText)); + }; + xhr.onabort = function () { + var statusText = 'abort'; + if (xhrTimeout) { + statusText = 'timeout'; + clearTimeout(xhrTimeout); + } + trigger(ajaxEvents.ajaxError, eventParams, 'error', xhr, statusText); + trigger(ajaxEvents.ajaxComplete, eventParams, 'complete', xhr, statusText); + reject(new Error(statusText)); + }; + // ajax start 回调 + trigger(ajaxEvents.ajaxStart, eventParams, 'beforeSend', xhr); + if (isCanceled) { + reject(new Error('cancel')); + return; + } + // Timeout + if (timeout > 0) { + xhrTimeout = setTimeout(function () { + xhr.abort(); + }, timeout); + } + // 发送 XHR + xhr.send(data); + }); + } + return XHR(); + } + + $.ajax = ajax; + + /** + * 为 Ajax 请求设置全局配置参数 + * @param options 键值对参数 + * @example + ```js + ajaxSetup({ + dataType: 'json', + method: 'POST', + }); + ``` + */ + function ajaxSetup(options) { + return extend(globalOptions, options); + } + + $.ajaxSetup = ajaxSetup; + + $.contains = contains; + + var dataNS = '_mduiElementDataStorage'; + + /** + * 在元素上设置键值对数据 + * @param element + * @param object + */ + function setObjectToElement(element, object) { + // @ts-ignore + if (!element[dataNS]) { + // @ts-ignore + element[dataNS] = {}; + } + each(object, function (key, value) { + // @ts-ignore + element[dataNS][toCamelCase(key)] = value; + }); + } + function data(element, key, value) { + var obj; + + // 根据键值对设置值 + // data(element, { 'key' : 'value' }) + if (isObjectLike(key)) { + setObjectToElement(element, key); + return key; + } + // 根据 key、value 设置值 + // data(element, 'key', 'value') + if (!isUndefined(value)) { + setObjectToElement(element, ( obj = {}, obj[key] = value, obj )); + return value; + } + // 获取所有值 + // data(element) + if (isUndefined(key)) { + // @ts-ignore + return element[dataNS] ? element[dataNS] : {}; + } + // 从 dataNS 中获取指定值 + // data(element, 'key') + key = toCamelCase(key); + // @ts-ignore + if (element[dataNS] && key in element[dataNS]) { + // @ts-ignore + return element[dataNS][key]; + } + return undefined; + } + + $.data = data; + + $.each = each; + + $.extend = function () { + var this$1 = this; + var objectN = [], len = arguments.length; + while ( len-- ) objectN[ len ] = arguments[ len ]; + + if (objectN.length === 1) { + each(objectN[0], function (prop, value) { + this$1[prop] = value; + }); + return this; + } + return extend.apply(void 0, [ objectN.shift(), objectN.shift() ].concat( objectN )); + }; + + function map(elements, callback) { + var ref; + + var value; + var ret = []; + each(elements, function (i, element) { + value = callback.call(window, element, i); + if (value != null) { + ret.push(value); + } + }); + return (ref = []).concat.apply(ref, ret); + } + + $.map = map; + + $.merge = merge; + + $.param = param; + + /** + * 移除指定元素上存放的数据 + * @param element 存放数据的元素 + * @param name + * 数据键名 + * + * 若未指定键名,将移除元素上所有数据 + * + * 多个键名可以用空格分隔,或者用数组表示多个键名 + @example + ```js + // 移除元素上键名为 name 的数据 + removeData(document.body, 'name'); + ``` + * @example + ```js + // 移除元素上键名为 name1 和 name2 的数据 + removeData(document.body, 'name1 name2'); + ``` + * @example + ```js + // 移除元素上键名为 name1 和 name2 的数据 + removeData(document.body, ['name1', 'name2']); + ``` + * @example + ```js + // 移除元素上所有数据 + removeData(document.body); + ``` + */ + function removeData(element, name) { + // @ts-ignore + if (!element[dataNS]) { + return; + } + var remove = function (nameItem) { + nameItem = toCamelCase(nameItem); + // @ts-ignore + if (element[dataNS][nameItem]) { + // @ts-ignore + element[dataNS][nameItem] = null; + // @ts-ignore + delete element[dataNS][nameItem]; + } + }; + if (isUndefined(name)) { + // @ts-ignore + element[dataNS] = null; + // @ts-ignore + delete element[dataNS]; + // @ts-ignore + } + else if (isString(name)) { + name + .split(' ') + .filter(function (nameItem) { return nameItem; }) + .forEach(function (nameItem) { return remove(nameItem); }); + } + else { + each(name, function (_, nameItem) { return remove(nameItem); }); + } + } + + $.removeData = removeData; + + /** + * 过滤掉数组中的重复元素 + * @param arr 数组 + * @example + ```js + unique([1, 2, 12, 3, 2, 1, 2, 1, 1]); + // [1, 2, 12, 3] + ``` + */ + function unique(arr) { + var result = []; + each(arr, function (_, val) { + if (result.indexOf(val) === -1) { + result.push(val); + } + }); + return result; + } + + $.unique = unique; + + $.fn.add = function (selector) { + return new JQ(unique(merge(this.get(), $(selector).get()))); + }; + + each(['add', 'remove', 'toggle'], function (_, name) { + $.fn[(name + "Class")] = function (className) { + if (name === 'remove' && !arguments.length) { + return this.each(function (_, element) { + element.setAttribute('class', ''); + }); + } + return this.each(function (i, element) { + if (!isElement(element)) { + return; + } + var classes = (isFunction(className) + ? className.call(element, i, element.getAttribute('class') || '') + : className) + .split(' ') + .filter(function (name) { return name; }); + each(classes, function (_, cls) { + element.classList[name](cls); + }); + }); + }; + }); + + each(['insertBefore', 'insertAfter'], function (nameIndex, name) { + $.fn[name] = function (target) { + var $element = nameIndex ? $(this.get().reverse()) : this; // 顺序和 jQuery 保持一致 + var $target = $(target); + var result = []; + $target.each(function (index, target) { + if (!target.parentNode) { + return; + } + $element.each(function (_, element) { + var newItem = index + ? element.cloneNode(true) + : element; + var existingItem = nameIndex ? target.nextSibling : target; + result.push(newItem); + target.parentNode.insertBefore(newItem, existingItem); + }); + }); + return $(nameIndex ? result.reverse() : result); + }; + }); + + /** + * 是否不是 HTML 字符串(包裹在 <> 中) + * @param target + */ + function isPlainText(target) { + return (isString(target) && (target[0] !== '<' || target[target.length - 1] !== '>')); + } + each(['before', 'after'], function (nameIndex, name) { + $.fn[name] = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + // after 方法,多个参数需要按参数顺序添加到元素后面,所以需要将参数顺序反向处理 + if (nameIndex === 1) { + args = args.reverse(); + } + return this.each(function (index, element) { + var targets = isFunction(args[0]) + ? [args[0].call(element, index, element.innerHTML)] + : args; + each(targets, function (_, target) { + var $target; + if (isPlainText(target)) { + $target = $(getChildNodesArray(target, 'div')); + } + else if (index && isElement(target)) { + $target = $(target.cloneNode(true)); + } + else { + $target = $(target); + } + $target[nameIndex ? 'insertAfter' : 'insertBefore'](element); + }); + }); + }; + }); + + $.fn.off = function (types, selector, callback) { + var this$1 = this; + + // types 是对象 + if (isObjectLike(types)) { + each(types, function (type, fn) { + // this.off('click', undefined, function () {}) + // this.off('click', '.box', function () {}) + this$1.off(type, selector, fn); + }); + return this; + } + // selector 不存在 + if (selector === false || isFunction(selector)) { + callback = selector; + selector = undefined; + // this.off('click', undefined, function () {}) + } + // callback 传入 `false`,相当于 `return false` + if (callback === false) { + callback = returnFalse; + } + return this.each(function () { + remove(this, types, callback, selector); + }); + }; + + $.fn.on = function (types, selector, data, callback, one) { + var this$1 = this; + + // types 可以是 type/func 对象 + if (isObjectLike(types)) { + // (types-Object, selector, data) + if (!isString(selector)) { + // (types-Object, data) + data = data || selector; + selector = undefined; + } + each(types, function (type, fn) { + // selector 和 data 都可能是 undefined + // @ts-ignore + this$1.on(type, selector, data, fn, one); + }); + return this; + } + if (data == null && callback == null) { + // (types, fn) + callback = selector; + data = selector = undefined; + } + else if (callback == null) { + if (isString(selector)) { + // (types, selector, fn) + callback = data; + data = undefined; + } + else { + // (types, data, fn) + callback = data; + data = selector; + selector = undefined; + } + } + if (callback === false) { + callback = returnFalse; + } + else if (!callback) { + return this; + } + // $().one() + if (one) { + // eslint-disable-next-line @typescript-eslint/no-this-alias + var _this = this; + var origCallback = callback; + callback = function (event) { + _this.off(event.type, selector, callback); + // eslint-disable-next-line prefer-rest-params + return origCallback.apply(this, arguments); + }; + } + return this.each(function () { + add(this, types, callback, data, selector); + }); + }; + + each(ajaxEvents, function (name, eventName) { + $.fn[name] = function (fn) { + return this.on(eventName, function (e, params) { + fn(e, params.xhr, params.options, params.data); + }); + }; + }); + + $.fn.map = function (callback) { + return new JQ(map(this, function (element, i) { return callback.call(element, i, element); })); + }; + + $.fn.clone = function () { + return this.map(function () { + return this.cloneNode(true); + }); + }; + + $.fn.is = function (selector) { + var isMatched = false; + if (isFunction(selector)) { + this.each(function (index, element) { + if (selector.call(element, index, element)) { + isMatched = true; + } + }); + return isMatched; + } + if (isString(selector)) { + this.each(function (_, element) { + if (isDocument(element) || isWindow(element)) { + return; + } + // @ts-ignore + var matches = element.matches || element.msMatchesSelector; + if (matches.call(element, selector)) { + isMatched = true; + } + }); + return isMatched; + } + var $compareWith = $(selector); + this.each(function (_, element) { + $compareWith.each(function (_, compare) { + if (element === compare) { + isMatched = true; + } + }); + }); + return isMatched; + }; + + $.fn.remove = function (selector) { + return this.each(function (_, element) { + if (element.parentNode && (!selector || $(element).is(selector))) { + element.parentNode.removeChild(element); + } + }); + }; + + each(['prepend', 'append'], function (nameIndex, name) { + $.fn[name] = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return this.each(function (index, element) { + var ref; + + var childNodes = element.childNodes; + var childLength = childNodes.length; + var child = childLength + ? childNodes[nameIndex ? childLength - 1 : 0] + : document.createElement('div'); + if (!childLength) { + element.appendChild(child); + } + var contents = isFunction(args[0]) + ? [args[0].call(element, index, element.innerHTML)] + : args; + // 如果不是字符串,则仅第一个元素使用原始元素,其他的都克隆自第一个元素 + if (index) { + contents = contents.map(function (content) { + return isString(content) ? content : $(content).clone(); + }); + } + (ref = $(child))[nameIndex ? 'after' : 'before'].apply(ref, contents); + if (!childLength) { + element.removeChild(child); + } + }); + }; + }); + + each(['appendTo', 'prependTo'], function (nameIndex, name) { + $.fn[name] = function (target) { + var extraChilds = []; + var $target = $(target).map(function (_, element) { + var childNodes = element.childNodes; + var childLength = childNodes.length; + if (childLength) { + return childNodes[nameIndex ? 0 : childLength - 1]; + } + var child = document.createElement('div'); + element.appendChild(child); + extraChilds.push(child); + return child; + }); + var $result = this[nameIndex ? 'insertBefore' : 'insertAfter']($target); + $(extraChilds).remove(); + return $result; + }; + }); + + each(['attr', 'prop', 'css'], function (nameIndex, name) { + function set(element, key, value) { + // 值为 undefined 时,不修改 + if (isUndefined(value)) { + return; + } + switch (nameIndex) { + // attr + case 0: + if (isNull(value)) { + element.removeAttribute(key); + } + else { + element.setAttribute(key, value); + } + break; + // prop + case 1: + // @ts-ignore + element[key] = value; + break; + // css + default: + key = toCamelCase(key); + // @ts-ignore + element.style[key] = isNumber(value) + ? ("" + value + (cssNumber.indexOf(key) > -1 ? '' : 'px')) + : value; + break; + } + } + function get(element, key) { + switch (nameIndex) { + // attr + case 0: + // 属性不存在时,原生 getAttribute 方法返回 null,而 jquery 返回 undefined。这里和 jquery 保持一致 + var value = element.getAttribute(key); + return isNull(value) ? undefined : value; + // prop + case 1: + // @ts-ignore + return element[key]; + // css + default: + return getStyle(element, key); + } + } + $.fn[name] = function (key, value) { + var this$1 = this; + + if (isObjectLike(key)) { + each(key, function (k, v) { + // @ts-ignore + this$1[name](k, v); + }); + return this; + } + if (arguments.length === 1) { + var element = this[0]; + return isElement(element) ? get(element, key) : undefined; + } + return this.each(function (i, element) { + set(element, key, isFunction(value) ? value.call(element, i, get(element, key)) : value); + }); + }; + }); + + $.fn.children = function (selector) { + var children = []; + this.each(function (_, element) { + each(element.childNodes, function (__, childNode) { + if (!isElement(childNode)) { + return; + } + if (!selector || $(childNode).is(selector)) { + children.push(childNode); + } + }); + }); + return new JQ(unique(children)); + }; + + $.fn.slice = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return new JQ([].slice.apply(this, args)); + }; + + $.fn.eq = function (index) { + var ret = index === -1 ? this.slice(index) : this.slice(index, +index + 1); + return new JQ(ret); + }; + + function dir($elements, nameIndex, node, selector, filter) { + var ret = []; + var target; + $elements.each(function (_, element) { + target = element[node]; + // 不能包含最顶层的 document 元素 + while (target && isElement(target)) { + // prevUntil, nextUntil, parentsUntil + if (nameIndex === 2) { + if (selector && $(target).is(selector)) { + break; + } + if (!filter || $(target).is(filter)) { + ret.push(target); + } + } + // prev, next, parent + else if (nameIndex === 0) { + if (!selector || $(target).is(selector)) { + ret.push(target); + } + break; + } + // prevAll, nextAll, parents + else { + if (!selector || $(target).is(selector)) { + ret.push(target); + } + } + // @ts-ignore + target = target[node]; + } + }); + return new JQ(unique(ret)); + } + + each(['', 's', 'sUntil'], function (nameIndex, name) { + $.fn[("parent" + name)] = function (selector, filter) { + // parents、parentsUntil 需要把元素的顺序反向处理,以便和 jQuery 的结果一致 + var $nodes = !nameIndex ? this : $(this.get().reverse()); + return dir($nodes, nameIndex, 'parentNode', selector, filter); + }; + }); + + $.fn.closest = function (selector) { + if (this.is(selector)) { + return this; + } + var matched = []; + this.parents().each(function (_, element) { + if ($(element).is(selector)) { + matched.push(element); + return false; + } + }); + return new JQ(matched); + }; + + var rbrace = /^(?:{[\w\W]*\}|\[[\w\W]*\])$/; + // 从 `data-*` 中获取的值,需要经过该函数转换 + function getData(value) { + if (value === 'true') { + return true; + } + if (value === 'false') { + return false; + } + if (value === 'null') { + return null; + } + if (value === +value + '') { + return +value; + } + if (rbrace.test(value)) { + return JSON.parse(value); + } + return value; + } + // 若 value 不存在,则从 `data-*` 中获取值 + function dataAttr(element, key, value) { + if (isUndefined(value) && element.nodeType === 1) { + var name = 'data-' + toKebabCase(key); + value = element.getAttribute(name); + if (isString(value)) { + try { + value = getData(value); + } + catch (e) { } + } + else { + value = undefined; + } + } + return value; + } + $.fn.data = function (key, value) { + // 获取所有值 + if (isUndefined(key)) { + if (!this.length) { + return undefined; + } + var element = this[0]; + var resultData = data(element); + // window, document 上不存在 `data-*` 属性 + if (element.nodeType !== 1) { + return resultData; + } + // 从 `data-*` 中获取值 + var attrs = element.attributes; + var i = attrs.length; + while (i--) { + if (attrs[i]) { + var name = attrs[i].name; + if (name.indexOf('data-') === 0) { + name = toCamelCase(name.slice(5)); + resultData[name] = dataAttr(element, name, resultData[name]); + } + } + } + return resultData; + } + // 同时设置多个值 + if (isObjectLike(key)) { + return this.each(function () { + data(this, key); + }); + } + // value 传入了 undefined + if (arguments.length === 2 && isUndefined(value)) { + return this; + } + // 设置值 + if (!isUndefined(value)) { + return this.each(function () { + data(this, key, value); + }); + } + // 获取值 + if (!this.length) { + return undefined; + } + return dataAttr(this[0], key, data(this[0], key)); + }; + + $.fn.empty = function () { + return this.each(function () { + this.innerHTML = ''; + }); + }; + + $.fn.extend = function (obj) { + each(obj, function (prop, value) { + // 在 JQ 对象上扩展方法时,需要自己添加 typescript 的类型定义 + $.fn[prop] = value; + }); + return this; + }; + + $.fn.filter = function (selector) { + if (isFunction(selector)) { + return this.map(function (index, element) { return selector.call(element, index, element) ? element : undefined; }); + } + if (isString(selector)) { + return this.map(function (_, element) { return $(element).is(selector) ? element : undefined; }); + } + var $selector = $(selector); + return this.map(function (_, element) { return $selector.get().indexOf(element) > -1 ? element : undefined; }); + }; + + $.fn.first = function () { + return this.eq(0); + }; + + $.fn.has = function (selector) { + var $targets = isString(selector) ? this.find(selector) : $(selector); + var length = $targets.length; + return this.map(function () { + for (var i = 0; i < length; i += 1) { + if (contains(this, $targets[i])) { + return this; + } + } + return; + }); + }; + + $.fn.hasClass = function (className) { + return this[0].classList.contains(className); + }; + + /** + * 值上面的 padding、border、margin 处理 + * @param element + * @param name + * @param value + * @param funcIndex + * @param includeMargin + * @param multiply + */ + function handleExtraWidth(element, name, value, funcIndex, includeMargin, multiply) { + // 获取元素的 padding, border, margin 宽度(两侧宽度的和) + var getExtraWidthValue = function (extra) { + return (getExtraWidth(element, name.toLowerCase(), extra) * + multiply); + }; + if (funcIndex === 2 && includeMargin) { + value += getExtraWidthValue('margin'); + } + if (isBorderBox(element)) { + // IE 为 box-sizing: border-box 时,得到的值不含 border 和 padding,这里先修复 + // 仅获取时需要处理,multiply === 1 为 get + if (isIE() && multiply === 1) { + value += getExtraWidthValue('border'); + value += getExtraWidthValue('padding'); + } + if (funcIndex === 0) { + value -= getExtraWidthValue('border'); + } + if (funcIndex === 1) { + value -= getExtraWidthValue('border'); + value -= getExtraWidthValue('padding'); + } + } + else { + if (funcIndex === 0) { + value += getExtraWidthValue('padding'); + } + if (funcIndex === 2) { + value += getExtraWidthValue('border'); + value += getExtraWidthValue('padding'); + } + } + return value; + } + /** + * 获取元素的样式值 + * @param element + * @param name + * @param funcIndex 0: innerWidth, innerHeight; 1: width, height; 2: outerWidth, outerHeight + * @param includeMargin + */ + function get(element, name, funcIndex, includeMargin) { + var clientProp = "client" + name; + var scrollProp = "scroll" + name; + var offsetProp = "offset" + name; + var innerProp = "inner" + name; + // $(window).width() + if (isWindow(element)) { + // outerWidth, outerHeight 需要包含滚动条的宽度 + return funcIndex === 2 + ? element[innerProp] + : toElement(document)[clientProp]; + } + // $(document).width() + if (isDocument(element)) { + var doc = toElement(element); + return Math.max( + // @ts-ignore + element.body[scrollProp], doc[scrollProp], + // @ts-ignore + element.body[offsetProp], doc[offsetProp], doc[clientProp]); + } + var value = parseFloat(getComputedStyleValue(element, name.toLowerCase()) || '0'); + return handleExtraWidth(element, name, value, funcIndex, includeMargin, 1); + } + /** + * 设置元素的样式值 + * @param element + * @param elementIndex + * @param name + * @param funcIndex 0: innerWidth, innerHeight; 1: width, height; 2: outerWidth, outerHeight + * @param includeMargin + * @param value + */ + function set(element, elementIndex, name, funcIndex, includeMargin, value) { + var computedValue = isFunction(value) + ? value.call(element, elementIndex, get(element, name, funcIndex, includeMargin)) + : value; + if (computedValue == null) { + return; + } + var $element = $(element); + var dimension = name.toLowerCase(); + // 特殊的值,不需要计算 padding、border、margin + if (['auto', 'inherit', ''].indexOf(computedValue) > -1) { + $element.css(dimension, computedValue); + return; + } + // 其他值保留原始单位。注意:如果不使用 px 作为单位,则算出的值一般是不准确的 + var suffix = computedValue.toString().replace(/\b[0-9.]*/, ''); + var numerical = parseFloat(computedValue); + computedValue = + handleExtraWidth(element, name, numerical, funcIndex, includeMargin, -1) + + (suffix || 'px'); + $element.css(dimension, computedValue); + } + each(['Width', 'Height'], function (_, name) { + each([("inner" + name), name.toLowerCase(), ("outer" + name)], function (funcIndex, funcName) { + $.fn[funcName] = function (margin, value) { + // 是否是赋值操作 + var isSet = arguments.length && (funcIndex < 2 || !isBoolean(margin)); + var includeMargin = margin === true || value === true; + // 获取第一个元素的值 + if (!isSet) { + return this.length + ? get(this[0], name, funcIndex, includeMargin) + : undefined; + } + // 设置每个元素的值 + return this.each(function (index, element) { return set(element, index, name, funcIndex, includeMargin, margin); }); + }; + }); + }); + + $.fn.hide = function () { + return this.each(function () { + this.style.display = 'none'; + }); + }; + + each(['val', 'html', 'text'], function (nameIndex, name) { + var props = { + 0: 'value', + 1: 'innerHTML', + 2: 'textContent', + }; + var propName = props[nameIndex]; + function get($elements) { + // text() 获取所有元素的文本 + if (nameIndex === 2) { + // @ts-ignore + return map($elements, function (element) { return toElement(element)[propName]; }).join(''); + } + // 空集合时,val() 和 html() 返回 undefined + if (!$elements.length) { + return undefined; + } + // val() 和 html() 仅获取第一个元素的内容 + var firstElement = $elements[0]; + // select multiple 返回数组 + if (nameIndex === 0 && $(firstElement).is('select[multiple]')) { + return map($(firstElement).find('option:checked'), function (element) { return element.value; }); + } + // @ts-ignore + return firstElement[propName]; + } + function set(element, value) { + // text() 和 html() 赋值为 undefined,则保持原内容不变 + // val() 赋值为 undefined 则赋值为空 + if (isUndefined(value)) { + if (nameIndex !== 0) { + return; + } + value = ''; + } + if (nameIndex === 1 && isElement(value)) { + value = value.outerHTML; + } + // @ts-ignore + element[propName] = value; + } + $.fn[name] = function (value) { + // 获取值 + if (!arguments.length) { + return get(this); + } + // 设置值 + return this.each(function (i, element) { + var computedValue = isFunction(value) + ? value.call(element, i, get($(element))) + : value; + // value 是数组,则选中数组中的元素,反选不在数组中的元素 + if (nameIndex === 0 && Array.isArray(computedValue)) { + // select[multiple] + if ($(element).is('select[multiple]')) { + map($(element).find('option'), function (option) { return (option.selected = + computedValue.indexOf(option.value) > + -1); }); + } + // 其他 checkbox, radio 等元素 + else { + element.checked = + computedValue.indexOf(element.value) > -1; + } + } + else { + set(element, computedValue); + } + }); + }; + }); + + $.fn.index = function (selector) { + if (!arguments.length) { + return this.eq(0).parent().children().get().indexOf(this[0]); + } + if (isString(selector)) { + return $(selector).get().indexOf(this[0]); + } + return this.get().indexOf($(selector)[0]); + }; + + $.fn.last = function () { + return this.eq(-1); + }; + + each(['', 'All', 'Until'], function (nameIndex, name) { + $.fn[("next" + name)] = function (selector, filter) { + return dir(this, nameIndex, 'nextElementSibling', selector, filter); + }; + }); + + $.fn.not = function (selector) { + var $excludes = this.filter(selector); + return this.map(function (_, element) { return $excludes.index(element) > -1 ? undefined : element; }); + }; + + /** + * 返回最近的用于定位的父元素 + */ + $.fn.offsetParent = function () { + return this.map(function () { + var offsetParent = this.offsetParent; + while (offsetParent && $(offsetParent).css('position') === 'static') { + offsetParent = offsetParent.offsetParent; + } + return offsetParent || document.documentElement; + }); + }; + + function floatStyle($element, name) { + return parseFloat($element.css(name)); + } + $.fn.position = function () { + if (!this.length) { + return undefined; + } + var $element = this.eq(0); + var currentOffset; + var parentOffset = { + left: 0, + top: 0, + }; + if ($element.css('position') === 'fixed') { + currentOffset = $element[0].getBoundingClientRect(); + } + else { + currentOffset = $element.offset(); + var $offsetParent = $element.offsetParent(); + parentOffset = $offsetParent.offset(); + parentOffset.top += floatStyle($offsetParent, 'border-top-width'); + parentOffset.left += floatStyle($offsetParent, 'border-left-width'); + } + return { + top: currentOffset.top - parentOffset.top - floatStyle($element, 'margin-top'), + left: currentOffset.left - + parentOffset.left - + floatStyle($element, 'margin-left'), + }; + }; + + function get$1(element) { + if (!element.getClientRects().length) { + return { top: 0, left: 0 }; + } + var rect = element.getBoundingClientRect(); + var win = element.ownerDocument.defaultView; + return { + top: rect.top + win.pageYOffset, + left: rect.left + win.pageXOffset, + }; + } + function set$1(element, value, index) { + var $element = $(element); + var position = $element.css('position'); + if (position === 'static') { + $element.css('position', 'relative'); + } + var currentOffset = get$1(element); + var currentTopString = $element.css('top'); + var currentLeftString = $element.css('left'); + var currentTop; + var currentLeft; + var calculatePosition = (position === 'absolute' || position === 'fixed') && + (currentTopString + currentLeftString).indexOf('auto') > -1; + if (calculatePosition) { + var currentPosition = $element.position(); + currentTop = currentPosition.top; + currentLeft = currentPosition.left; + } + else { + currentTop = parseFloat(currentTopString); + currentLeft = parseFloat(currentLeftString); + } + var computedValue = isFunction(value) + ? value.call(element, index, extend({}, currentOffset)) + : value; + $element.css({ + top: computedValue.top != null + ? computedValue.top - currentOffset.top + currentTop + : undefined, + left: computedValue.left != null + ? computedValue.left - currentOffset.left + currentLeft + : undefined, + }); + } + $.fn.offset = function (value) { + // 获取坐标 + if (!arguments.length) { + if (!this.length) { + return undefined; + } + return get$1(this[0]); + } + // 设置坐标 + return this.each(function (index) { + set$1(this, value, index); + }); + }; + + $.fn.one = function (types, selector, data, callback) { + // @ts-ignore + return this.on(types, selector, data, callback, true); + }; + + each(['', 'All', 'Until'], function (nameIndex, name) { + $.fn[("prev" + name)] = function (selector, filter) { + // prevAll、prevUntil 需要把元素的顺序倒序处理,以便和 jQuery 的结果一致 + var $nodes = !nameIndex ? this : $(this.get().reverse()); + return dir($nodes, nameIndex, 'previousElementSibling', selector, filter); + }; + }); + + $.fn.removeAttr = function (attributeName) { + var names = attributeName.split(' ').filter(function (name) { return name; }); + return this.each(function () { + var this$1 = this; + + each(names, function (_, name) { + this$1.removeAttribute(name); + }); + }); + }; + + $.fn.removeData = function (name) { + return this.each(function () { + removeData(this, name); + }); + }; + + $.fn.removeProp = function (name) { + return this.each(function () { + try { + // @ts-ignore + delete this[name]; + } + catch (e) { } + }); + }; + + $.fn.replaceWith = function (newContent) { + this.each(function (index, element) { + var content = newContent; + if (isFunction(content)) { + content = content.call(element, index, element.innerHTML); + } + else if (index && !isString(content)) { + content = $(content).clone(); + } + $(element).before(content); + }); + return this.remove(); + }; + + $.fn.replaceAll = function (target) { + var this$1 = this; + + return $(target).map(function (index, element) { + $(element).replaceWith(index ? this$1.clone() : this$1); + return this$1.get(); + }); + }; + + /** + * 将表单元素的值组合成键值对数组 + * @returns {Array} + */ + $.fn.serializeArray = function () { + var result = []; + this.each(function (_, element) { + var elements = element instanceof HTMLFormElement ? element.elements : [element]; + $(elements).each(function (_, element) { + var $element = $(element); + var type = element.type; + var nodeName = element.nodeName.toLowerCase(); + if (nodeName !== 'fieldset' && + element.name && + !element.disabled && + ['input', 'select', 'textarea', 'keygen'].indexOf(nodeName) > -1 && + ['submit', 'button', 'image', 'reset', 'file'].indexOf(type) === -1 && + (['radio', 'checkbox'].indexOf(type) === -1 || + element.checked)) { + var value = $element.val(); + var valueArr = Array.isArray(value) ? value : [value]; + valueArr.forEach(function (value) { + result.push({ + name: element.name, + value: value, + }); + }); + } + }); + }); + return result; + }; + + $.fn.serialize = function () { + return param(this.serializeArray()); + }; + + var elementDisplay = {}; + /** + * 获取元素的初始 display 值,用于 .show() 方法 + * @param nodeName + */ + function defaultDisplay(nodeName) { + var element; + var display; + if (!elementDisplay[nodeName]) { + element = document.createElement(nodeName); + document.body.appendChild(element); + display = getStyle(element, 'display'); + element.parentNode.removeChild(element); + if (display === 'none') { + display = 'block'; + } + elementDisplay[nodeName] = display; + } + return elementDisplay[nodeName]; + } + /** + * 显示指定元素 + * @returns {JQ} + */ + $.fn.show = function () { + return this.each(function () { + if (this.style.display === 'none') { + this.style.display = ''; + } + if (getStyle(this, 'display') === 'none') { + this.style.display = defaultDisplay(this.nodeName); + } + }); + }; + + /** + * 取得同辈元素的集合 + * @param selector {String=} + * @returns {JQ} + */ + $.fn.siblings = function (selector) { + return this.prevAll(selector).add(this.nextAll(selector)); + }; + + /** + * 切换元素的显示状态 + */ + $.fn.toggle = function () { + return this.each(function () { + getStyle(this, 'display') === 'none' ? $(this).show() : $(this).hide(); + }); + }; + + $.fn.reflow = function () { + return this.each(function () { + return this.clientLeft; + }); + }; + + $.fn.transition = function (duration) { + if (isNumber(duration)) { + duration = duration + "ms"; + } + return this.each(function () { + this.style.webkitTransitionDuration = duration; + this.style.transitionDuration = duration; + }); + }; + + $.fn.transitionEnd = function (callback) { + // eslint-disable-next-line @typescript-eslint/no-this-alias + var that = this; + var events = ['webkitTransitionEnd', 'transitionend']; + function fireCallback(e) { + if (e.target !== this) { + return; + } + // @ts-ignore + callback.call(this, e); + each(events, function (_, event) { + that.off(event, fireCallback); + }); + } + each(events, function (_, event) { + that.on(event, fireCallback); + }); + return this; + }; + + $.fn.transformOrigin = function (transformOrigin) { + return this.each(function () { + this.style.webkitTransformOrigin = transformOrigin; + this.style.transformOrigin = transformOrigin; + }); + }; + + $.fn.transform = function (transform) { + return this.each(function () { + this.style.webkitTransform = transform; + this.style.transform = transform; + }); + }; + + /** + * CSS 选择器和初始化函数组成的对象 + */ + var entries = {}; + /** + * 注册并执行初始化函数 + * @param selector CSS 选择器 + * @param apiInit 初始化函数 + * @param i 元素索引 + * @param element 元素 + */ + function mutation(selector, apiInit, i, element) { + var selectors = data(element, '_mdui_mutation'); + if (!selectors) { + selectors = []; + data(element, '_mdui_mutation', selectors); + } + if (selectors.indexOf(selector) === -1) { + selectors.push(selector); + apiInit.call(element, i, element); + } + } + + $.fn.mutation = function () { + return this.each(function (i, element) { + var $this = $(element); + each(entries, function (selector, apiInit) { + if ($this.is(selector)) { + mutation(selector, apiInit, i, element); + } + $this.find(selector).each(function (i, element) { + mutation(selector, apiInit, i, element); + }); + }); + }); + }; + + $.showOverlay = function (zIndex) { + var $overlay = $('.mdui-overlay'); + if ($overlay.length) { + $overlay.data('_overlay_is_deleted', false); + if (!isUndefined(zIndex)) { + $overlay.css('z-index', zIndex); + } + } + else { + if (isUndefined(zIndex)) { + zIndex = 2000; + } + $overlay = $('
') + .appendTo(document.body) + .reflow() + .css('z-index', zIndex); + } + var level = $overlay.data('_overlay_level') || 0; + return $overlay.data('_overlay_level', ++level).addClass('mdui-overlay-show'); + }; + + $.hideOverlay = function (force) { + if ( force === void 0 ) force = false; + + var $overlay = $('.mdui-overlay'); + if (!$overlay.length) { + return; + } + var level = force ? 1 : $overlay.data('_overlay_level'); + if (level > 1) { + $overlay.data('_overlay_level', --level); + return; + } + $overlay + .data('_overlay_level', 0) + .removeClass('mdui-overlay-show') + .data('_overlay_is_deleted', true) + .transitionEnd(function () { + if ($overlay.data('_overlay_is_deleted')) { + $overlay.remove(); + } + }); + }; + + $.lockScreen = function () { + var $body = $('body'); + // 不直接把 body 设为 box-sizing: border-box,避免污染全局样式 + var newBodyWidth = $body.width(); + var level = $body.data('_lockscreen_level') || 0; + $body + .addClass('mdui-locked') + .width(newBodyWidth) + .data('_lockscreen_level', ++level); + }; + + $.unlockScreen = function (force) { + if ( force === void 0 ) force = false; + + var $body = $('body'); + var level = force ? 1 : $body.data('_lockscreen_level'); + if (level > 1) { + $body.data('_lockscreen_level', --level); + return; + } + $body.data('_lockscreen_level', 0).removeClass('mdui-locked').width(''); + }; + + $.throttle = function (fn, delay) { + if ( delay === void 0 ) delay = 16; + + var timer = null; + return function () { + var this$1 = this; + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + if (isNull(timer)) { + timer = setTimeout(function () { + fn.apply(this$1, args); + timer = null; + }, delay); + } + }; + }; + + var GUID = {}; + $.guid = function (name) { + if (!isUndefined(name) && !isUndefined(GUID[name])) { + return GUID[name]; + } + function s4() { + return Math.floor((1 + Math.random()) * 0x10000) + .toString(16) + .substring(1); + } + var guid = '_' + + s4() + + s4() + + '-' + + s4() + + '-' + + s4() + + '-' + + s4() + + '-' + + s4() + + s4() + + s4(); + if (!isUndefined(name)) { + GUID[name] = guid; + } + return guid; + }; + + mdui.mutation = function (selector, apiInit) { + if (isUndefined(selector) || isUndefined(apiInit)) { + $(document).mutation(); + return; + } + entries[selector] = apiInit; + $(selector).each(function (i, element) { return mutation(selector, apiInit, i, element); }); + }; + + /** + * 触发组件上的事件 + * @param eventName 事件名 + * @param componentName 组件名 + * @param target 在该元素上触发事件 + * @param instance 组件实例 + * @param parameters 事件参数 + */ + function componentEvent(eventName, componentName, target, instance, parameters) { + if (!parameters) { + parameters = {}; + } + // @ts-ignore + parameters.inst = instance; + var fullEventName = eventName + ".mdui." + componentName; + // jQuery 事件 + // @ts-ignore + if (typeof jQuery !== 'undefined') { + // @ts-ignore + jQuery(target).trigger(fullEventName, parameters); + } + var $target = $(target); + // mdui.jq 事件 + $target.trigger(fullEventName, parameters); + var eventParams = { + bubbles: true, + cancelable: true, + detail: parameters, + }; + var eventObject = new CustomEvent(fullEventName, eventParams); + // @ts-ignore + eventObject._detail = parameters; + $target[0].dispatchEvent(eventObject); + } + + var $document = $(document); + var $window = $(window); + $('body'); + + var DEFAULT_OPTIONS = { + tolerance: 5, + offset: 0, + initialClass: 'mdui-headroom', + pinnedClass: 'mdui-headroom-pinned-top', + unpinnedClass: 'mdui-headroom-unpinned-top', + }; + var Headroom = function Headroom(selector, options) { + if ( options === void 0 ) options = {}; + + /** + * 配置参数 + */ + this.options = extend({}, DEFAULT_OPTIONS); + /** + * 当前 headroom 的状态 + */ + this.state = 'pinned'; + /** + * 当前是否启用 + */ + this.isEnable = false; + /** + * 上次滚动后,垂直方向的距离 + */ + this.lastScrollY = 0; + /** + * AnimationFrame ID + */ + this.rafId = 0; + this.$element = $(selector).first(); + extend(this.options, options); + // tolerance 参数若为数值,转换为对象 + var tolerance = this.options.tolerance; + if (isNumber(tolerance)) { + this.options.tolerance = { + down: tolerance, + up: tolerance, + }; + } + this.enable(); + }; + /** + * 滚动时的处理 + */ + Headroom.prototype.onScroll = function onScroll () { + var this$1 = this; + + this.rafId = window.requestAnimationFrame(function () { + var currentScrollY = window.pageYOffset; + var direction = currentScrollY > this$1.lastScrollY ? 'down' : 'up'; + var tolerance = this$1.options.tolerance[direction]; + var scrolled = Math.abs(currentScrollY - this$1.lastScrollY); + var toleranceExceeded = scrolled >= tolerance; + if (currentScrollY > this$1.lastScrollY && + currentScrollY >= this$1.options.offset && + toleranceExceeded) { + this$1.unpin(); + } + else if ((currentScrollY < this$1.lastScrollY && toleranceExceeded) || + currentScrollY <= this$1.options.offset) { + this$1.pin(); + } + this$1.lastScrollY = currentScrollY; + }); + }; + /** + * 触发组件事件 + * @param name + */ + Headroom.prototype.triggerEvent = function triggerEvent (name) { + componentEvent(name, 'headroom', this.$element, this); + }; + /** + * 动画结束的回调 + */ + Headroom.prototype.transitionEnd = function transitionEnd () { + if (this.state === 'pinning') { + this.state = 'pinned'; + this.triggerEvent('pinned'); + } + if (this.state === 'unpinning') { + this.state = 'unpinned'; + this.triggerEvent('unpinned'); + } + }; + /** + * 使元素固定住 + */ + Headroom.prototype.pin = function pin () { + var this$1 = this; + + if (this.state === 'pinning' || + this.state === 'pinned' || + !this.$element.hasClass(this.options.initialClass)) { + return; + } + this.triggerEvent('pin'); + this.state = 'pinning'; + this.$element + .removeClass(this.options.unpinnedClass) + .addClass(this.options.pinnedClass) + .transitionEnd(function () { return this$1.transitionEnd(); }); + }; + /** + * 使元素隐藏 + */ + Headroom.prototype.unpin = function unpin () { + var this$1 = this; + + if (this.state === 'unpinning' || + this.state === 'unpinned' || + !this.$element.hasClass(this.options.initialClass)) { + return; + } + this.triggerEvent('unpin'); + this.state = 'unpinning'; + this.$element + .removeClass(this.options.pinnedClass) + .addClass(this.options.unpinnedClass) + .transitionEnd(function () { return this$1.transitionEnd(); }); + }; + /** + * 启用 headroom 插件 + */ + Headroom.prototype.enable = function enable () { + var this$1 = this; + + if (this.isEnable) { + return; + } + this.isEnable = true; + this.state = 'pinned'; + this.$element + .addClass(this.options.initialClass) + .removeClass(this.options.pinnedClass) + .removeClass(this.options.unpinnedClass); + this.lastScrollY = window.pageYOffset; + $window.on('scroll', function () { return this$1.onScroll(); }); + }; + /** + * 禁用 headroom 插件 + */ + Headroom.prototype.disable = function disable () { + var this$1 = this; + + if (!this.isEnable) { + return; + } + this.isEnable = false; + this.$element + .removeClass(this.options.initialClass) + .removeClass(this.options.pinnedClass) + .removeClass(this.options.unpinnedClass); + $window.off('scroll', function () { return this$1.onScroll(); }); + window.cancelAnimationFrame(this.rafId); + }; + /** + * 获取当前状态。共包含四种状态:`pinning`、`pinned`、`unpinning`、`unpinned` + */ + Headroom.prototype.getState = function getState () { + return this.state; + }; + mdui.Headroom = Headroom; + + /** + * 解析 DATA API 参数 + * @param element 元素 + * @param name 属性名 + */ + function parseOptions(element, name) { + var attr = $(element).attr(name); + if (!attr) { + return {}; + } + return new Function('', ("var json = " + attr + "; return JSON.parse(JSON.stringify(json));"))(); + } + + var customAttr = 'mdui-headroom'; + $(function () { + mdui.mutation(("[" + customAttr + "]"), function () { + new mdui.Headroom(this, parseOptions(this, customAttr)); + }); + }); + + var DEFAULT_OPTIONS$1 = { + accordion: false, + }; + var CollapseAbstract = function CollapseAbstract(selector, options) { + if ( options === void 0 ) options = {}; + + /** + * 配置参数 + */ + this.options = extend({}, DEFAULT_OPTIONS$1); + // CSS 类名 + var classPrefix = "mdui-" + (this.getNamespace()) + "-item"; + this.classItem = classPrefix; + this.classItemOpen = classPrefix + "-open"; + this.classHeader = classPrefix + "-header"; + this.classBody = classPrefix + "-body"; + this.$element = $(selector).first(); + extend(this.options, options); + this.bindEvent(); + }; + /** + * 绑定事件 + */ + CollapseAbstract.prototype.bindEvent = function bindEvent () { + // eslint-disable-next-line @typescript-eslint/no-this-alias + var that = this; + // 点击 header 时,打开/关闭 item + this.$element.on('click', ("." + (this.classHeader)), function () { + var $header = $(this); + var $item = $header.parent(); + var $items = that.getItems(); + $items.each(function (_, item) { + if ($item.is(item)) { + that.toggle(item); + } + }); + }); + // 点击关闭按钮时,关闭 item + this.$element.on('click', ("[mdui-" + (this.getNamespace()) + "-item-close]"), function () { + var $target = $(this); + var $item = $target.parents(("." + (that.classItem))).first(); + that.close($item); + }); + }; + /** + * 指定 item 是否处于打开状态 + * @param $item + */ + CollapseAbstract.prototype.isOpen = function isOpen ($item) { + return $item.hasClass(this.classItemOpen); + }; + /** + * 获取所有 item + */ + CollapseAbstract.prototype.getItems = function getItems () { + return this.$element.children(("." + (this.classItem))); + }; + /** + * 获取指定 item + * @param item + */ + CollapseAbstract.prototype.getItem = function getItem (item) { + if (isNumber(item)) { + return this.getItems().eq(item); + } + return $(item).first(); + }; + /** + * 触发组件事件 + * @param name 事件名 + * @param $item 事件触发的目标 item + */ + CollapseAbstract.prototype.triggerEvent = function triggerEvent (name, $item) { + componentEvent(name, this.getNamespace(), $item, this); + }; + /** + * 动画结束回调 + * @param $content body 元素 + * @param $item item 元素 + */ + CollapseAbstract.prototype.transitionEnd = function transitionEnd ($content, $item) { + if (this.isOpen($item)) { + $content.transition(0).height('auto').reflow().transition(''); + this.triggerEvent('opened', $item); + } + else { + $content.height(''); + this.triggerEvent('closed', $item); + } + }; + /** + * 打开指定面板项 + * @param item 面板项的索引号、或 CSS 选择器、或 DOM 元素、或 JQ 对象 + */ + CollapseAbstract.prototype.open = function open (item) { + var this$1 = this; + + var $item = this.getItem(item); + if (this.isOpen($item)) { + return; + } + // 关闭其他项 + if (this.options.accordion) { + this.$element.children(("." + (this.classItemOpen))).each(function (_, element) { + var $element = $(element); + if (!$element.is($item)) { + this$1.close($element); + } + }); + } + var $content = $item.children(("." + (this.classBody))); + $content + .height($content[0].scrollHeight) + .transitionEnd(function () { return this$1.transitionEnd($content, $item); }); + this.triggerEvent('open', $item); + $item.addClass(this.classItemOpen); + }; + /** + * 关闭指定面板项 + * @param item 面板项的索引号、或 CSS 选择器、或 DOM 元素、或 JQ 对象 + */ + CollapseAbstract.prototype.close = function close (item) { + var this$1 = this; + + var $item = this.getItem(item); + if (!this.isOpen($item)) { + return; + } + var $content = $item.children(("." + (this.classBody))); + this.triggerEvent('close', $item); + $item.removeClass(this.classItemOpen); + $content + .transition(0) + .height($content[0].scrollHeight) + .reflow() + .transition('') + .height('') + .transitionEnd(function () { return this$1.transitionEnd($content, $item); }); + }; + /** + * 切换指定面板项的打开状态 + * @param item 面板项的索引号、或 CSS 选择器、或 DOM 元素、或 JQ 对象 + */ + CollapseAbstract.prototype.toggle = function toggle (item) { + var $item = this.getItem(item); + this.isOpen($item) ? this.close($item) : this.open($item); + }; + /** + * 打开所有面板项 + */ + CollapseAbstract.prototype.openAll = function openAll () { + var this$1 = this; + + this.getItems().each(function (_, element) { return this$1.open(element); }); + }; + /** + * 关闭所有面板项 + */ + CollapseAbstract.prototype.closeAll = function closeAll () { + var this$1 = this; + + this.getItems().each(function (_, element) { return this$1.close(element); }); + }; + + var Collapse = /*@__PURE__*/(function (CollapseAbstract) { + function Collapse () { + CollapseAbstract.apply(this, arguments); + } + + if ( CollapseAbstract ) Collapse.__proto__ = CollapseAbstract; + Collapse.prototype = Object.create( CollapseAbstract && CollapseAbstract.prototype ); + Collapse.prototype.constructor = Collapse; + + Collapse.prototype.getNamespace = function getNamespace () { + return 'collapse'; + }; + + return Collapse; + }(CollapseAbstract)); + mdui.Collapse = Collapse; + + var customAttr$1 = 'mdui-collapse'; + $(function () { + mdui.mutation(("[" + customAttr$1 + "]"), function () { + new mdui.Collapse(this, parseOptions(this, customAttr$1)); + }); + }); + + var Panel = /*@__PURE__*/(function (CollapseAbstract) { + function Panel () { + CollapseAbstract.apply(this, arguments); + } + + if ( CollapseAbstract ) Panel.__proto__ = CollapseAbstract; + Panel.prototype = Object.create( CollapseAbstract && CollapseAbstract.prototype ); + Panel.prototype.constructor = Panel; + + Panel.prototype.getNamespace = function getNamespace () { + return 'panel'; + }; + + return Panel; + }(CollapseAbstract)); + mdui.Panel = Panel; + + var customAttr$2 = 'mdui-panel'; + $(function () { + mdui.mutation(("[" + customAttr$2 + "]"), function () { + new mdui.Panel(this, parseOptions(this, customAttr$2)); + }); + }); + + var Table = function Table(selector) { + /** + * 表头 tr 元素 + */ + this.$thRow = $(); + /** + * 表格 body 中的 tr 元素 + */ + this.$tdRows = $(); + /** + * 表头的 checkbox 元素 + */ + this.$thCheckbox = $(); + /** + * 表格 body 中的 checkbox 元素 + */ + this.$tdCheckboxs = $(); + /** + * 表格行是否可选择 + */ + this.selectable = false; + /** + * 已选中的行数 + */ + this.selectedRow = 0; + this.$element = $(selector).first(); + this.init(); + }; + /** + * 初始化表格 + */ + Table.prototype.init = function init () { + this.$thRow = this.$element.find('thead tr'); + this.$tdRows = this.$element.find('tbody tr'); + this.selectable = this.$element.hasClass('mdui-table-selectable'); + this.updateThCheckbox(); + this.updateTdCheckbox(); + this.updateNumericCol(); + }; + /** + * 生成 checkbox 的 HTML 结构 + * @param tag 标签名 + */ + Table.prototype.createCheckboxHTML = function createCheckboxHTML (tag) { + return ("<" + tag + " class=\"mdui-table-cell-checkbox\">" + + '' + + ""); + }; + /** + * 更新表头 checkbox 的状态 + */ + Table.prototype.updateThCheckboxStatus = function updateThCheckboxStatus () { + var checkbox = this.$thCheckbox[0]; + var selectedRow = this.selectedRow; + var tdRowsLength = this.$tdRows.length; + checkbox.checked = selectedRow === tdRowsLength; + checkbox.indeterminate = !!selectedRow && selectedRow !== tdRowsLength; + }; + /** + * 更新表格行的 checkbox + */ + Table.prototype.updateTdCheckbox = function updateTdCheckbox () { + var this$1 = this; + + var rowSelectedClass = 'mdui-table-row-selected'; + this.$tdRows.each(function (_, row) { + var $row = $(row); + // 移除旧的 checkbox + $row.find('.mdui-table-cell-checkbox').remove(); + if (!this$1.selectable) { + return; + } + // 创建 DOM + var $checkbox = $(this$1.createCheckboxHTML('td')) + .prependTo($row) + .find('input[type="checkbox"]'); + // 默认选中的行 + if ($row.hasClass(rowSelectedClass)) { + $checkbox[0].checked = true; + this$1.selectedRow++; + } + this$1.updateThCheckboxStatus(); + // 绑定事件 + $checkbox.on('change', function () { + if ($checkbox[0].checked) { + $row.addClass(rowSelectedClass); + this$1.selectedRow++; + } + else { + $row.removeClass(rowSelectedClass); + this$1.selectedRow--; + } + this$1.updateThCheckboxStatus(); + }); + this$1.$tdCheckboxs = this$1.$tdCheckboxs.add($checkbox); + }); + }; + /** + * 更新表头的 checkbox + */ + Table.prototype.updateThCheckbox = function updateThCheckbox () { + var this$1 = this; + + // 移除旧的 checkbox + this.$thRow.find('.mdui-table-cell-checkbox').remove(); + if (!this.selectable) { + return; + } + this.$thCheckbox = $(this.createCheckboxHTML('th')) + .prependTo(this.$thRow) + .find('input[type="checkbox"]') + .on('change', function () { + var isCheckedAll = this$1.$thCheckbox[0].checked; + this$1.selectedRow = isCheckedAll ? this$1.$tdRows.length : 0; + this$1.$tdCheckboxs.each(function (_, checkbox) { + checkbox.checked = isCheckedAll; + }); + this$1.$tdRows.each(function (_, row) { + isCheckedAll + ? $(row).addClass('mdui-table-row-selected') + : $(row).removeClass('mdui-table-row-selected'); + }); + }); + }; + /** + * 更新数值列 + */ + Table.prototype.updateNumericCol = function updateNumericCol () { + var this$1 = this; + + var numericClass = 'mdui-table-col-numeric'; + this.$thRow.find('th').each(function (i, th) { + var isNumericCol = $(th).hasClass(numericClass); + this$1.$tdRows.each(function (_, row) { + var $td = $(row).find('td').eq(i); + isNumericCol + ? $td.addClass(numericClass) + : $td.removeClass(numericClass); + }); + }); + }; + var dataName = '_mdui_table'; + $(function () { + mdui.mutation('.mdui-table', function () { + var $element = $(this); + if (!$element.data(dataName)) { + $element.data(dataName, new Table($element)); + } + }); + }); + mdui.updateTables = function (selector) { + var $elements = isUndefined(selector) ? $('.mdui-table') : $(selector); + $elements.each(function (_, element) { + var $element = $(element); + var instance = $element.data(dataName); + if (instance) { + instance.init(); + } + else { + $element.data(dataName, new Table($element)); + } + }); + }; + + /** + * touch 事件后的 500ms 内禁用 mousedown 事件 + * + * 不支持触控的屏幕上事件顺序为 mousedown -> mouseup -> click + * 支持触控的屏幕上事件顺序为 touchstart -> touchend -> mousedown -> mouseup -> click + * + * 在每一个事件中都使用 TouchHandler.isAllow(event) 判断事件是否可执行 + * 在 touchstart 和 touchmove、touchend、touchcancel + * + * (function () { + * $document + * .on(start, function (e) { + * if (!isAllow(e)) { + * return; + * } + * register(e); + * console.log(e.type); + * }) + * .on(move, function (e) { + * if (!isAllow(e)) { + * return; + * } + * console.log(e.type); + * }) + * .on(end, function (e) { + * if (!isAllow(e)) { + * return; + * } + * console.log(e.type); + * }) + * .on(unlock, register); + * })(); + */ + var startEvent = 'touchstart mousedown'; + var moveEvent = 'touchmove mousemove'; + var endEvent = 'touchend mouseup'; + var cancelEvent = 'touchcancel mouseleave'; + var unlockEvent = 'touchend touchmove touchcancel'; + var touches = 0; + /** + * 该事件是否被允许,在执行事件前调用该方法判断事件是否可以执行 + * 若已触发 touch 事件,则阻止之后的鼠标事件 + * @param event + */ + function isAllow(event) { + return !(touches && + [ + 'mousedown', + 'mouseup', + 'mousemove', + 'click', + 'mouseover', + 'mouseout', + 'mouseenter', + 'mouseleave' ].indexOf(event.type) > -1); + } + /** + * 在 touchstart 和 touchmove、touchend、touchcancel 事件中调用该方法注册事件 + * @param event + */ + function register(event) { + if (event.type === 'touchstart') { + // 触发了 touch 事件 + touches += 1; + } + else if (['touchmove', 'touchend', 'touchcancel'].indexOf(event.type) > -1) { + // touch 事件结束 500ms 后解除对鼠标事件的阻止 + setTimeout(function () { + if (touches) { + touches -= 1; + } + }, 500); + } + } + + /** + * Inspired by https://github.com/nolimits4web/Framework7/blob/master/src/js/fast-clicks.js + * https://github.com/nolimits4web/Framework7/blob/master/LICENSE + * + * Inspired by https://github.com/fians/Waves + */ + /** + * 显示涟漪动画 + * @param event + * @param $ripple + */ + function show(event, $ripple) { + // 鼠标右键不产生涟漪 + if (event instanceof MouseEvent && event.button === 2) { + return; + } + // 点击位置坐标 + var touchPosition = typeof TouchEvent !== 'undefined' && + event instanceof TouchEvent && + event.touches.length + ? event.touches[0] + : event; + var touchStartX = touchPosition.pageX; + var touchStartY = touchPosition.pageY; + // 涟漪位置 + var offset = $ripple.offset(); + var height = $ripple.innerHeight(); + var width = $ripple.innerWidth(); + var center = { + x: touchStartX - offset.left, + y: touchStartY - offset.top, + }; + var diameter = Math.max(Math.pow(Math.pow(height, 2) + Math.pow(width, 2), 0.5), 48); + // 涟漪扩散动画 + var translate = "translate3d(" + (-center.x + width / 2) + "px," + + (-center.y + height / 2) + "px, 0) scale(1)"; + // 涟漪的 DOM 结构,并缓存动画效果 + $("
") + .data('_ripple_wave_translate', translate) + .prependTo($ripple) + .reflow() + .transform(translate); + } + /** + * 隐藏并移除涟漪 + * @param $wave + */ + function removeRipple($wave) { + if (!$wave.length || $wave.data('_ripple_wave_removed')) { + return; + } + $wave.data('_ripple_wave_removed', true); + var removeTimer = setTimeout(function () { return $wave.remove(); }, 400); + var translate = $wave.data('_ripple_wave_translate'); + $wave + .addClass('mdui-ripple-wave-fill') + .transform(translate.replace('scale(1)', 'scale(1.01)')) + .transitionEnd(function () { + clearTimeout(removeTimer); + $wave + .addClass('mdui-ripple-wave-out') + .transform(translate.replace('scale(1)', 'scale(1.01)')); + removeTimer = setTimeout(function () { return $wave.remove(); }, 700); + setTimeout(function () { + $wave.transitionEnd(function () { + clearTimeout(removeTimer); + $wave.remove(); + }); + }, 0); + }); + } + /** + * 隐藏涟漪动画 + * @param this + */ + function hide() { + var $ripple = $(this); + $ripple.children('.mdui-ripple-wave').each(function (_, wave) { + removeRipple($(wave)); + }); + $ripple.off((moveEvent + " " + endEvent + " " + cancelEvent), hide); + } + /** + * 显示涟漪,并绑定 touchend 等事件 + * @param event + */ + function showRipple(event) { + if (!isAllow(event)) { + return; + } + register(event); + // Chrome 59 点击滚动条时,会在 document 上触发事件 + if (event.target === document) { + return; + } + var $target = $(event.target); + // 获取含 .mdui-ripple 类的元素 + var $ripple = $target.hasClass('mdui-ripple') + ? $target + : $target.parents('.mdui-ripple').first(); + if (!$ripple.length) { + return; + } + // 禁用状态的元素上不产生涟漪效果 + if ($ripple.prop('disabled') || !isUndefined($ripple.attr('disabled'))) { + return; + } + if (event.type === 'touchstart') { + var hidden = false; + // touchstart 触发指定时间后开始涟漪动画,避免手指滑动时也触发涟漪 + var timer = setTimeout(function () { + timer = 0; + show(event, $ripple); + }, 200); + var hideRipple = function () { + // 如果手指没有移动,且涟漪动画还没有开始,则开始涟漪动画 + if (timer) { + clearTimeout(timer); + timer = 0; + show(event, $ripple); + } + if (!hidden) { + hidden = true; + hide.call($ripple); + } + }; + // 手指移动后,移除涟漪动画 + var touchMove = function () { + if (timer) { + clearTimeout(timer); + timer = 0; + } + hideRipple(); + }; + $ripple.on('touchmove', touchMove).on('touchend touchcancel', hideRipple); + } + else { + show(event, $ripple); + $ripple.on((moveEvent + " " + endEvent + " " + cancelEvent), hide); + } + } + $(function () { + $document.on(startEvent, showRipple).on(unlockEvent, register); + }); + + var defaultData = { + reInit: false, + domLoadedEvent: false, + }; + /** + * 输入框事件 + * @param event + * @param data + */ + function inputEvent(event, data) { + if ( data === void 0 ) data = {}; + + data = extend({}, defaultData, data); + var input = event.target; + var $input = $(input); + var eventType = event.type; + var value = $input.val(); + // 文本框类型 + var inputType = $input.attr('type') || ''; + if (['checkbox', 'button', 'submit', 'range', 'radio', 'image'].indexOf(inputType) > -1) { + return; + } + var $textfield = $input.parent('.mdui-textfield'); + // 输入框是否聚焦 + if (eventType === 'focus') { + $textfield.addClass('mdui-textfield-focus'); + } + if (eventType === 'blur') { + $textfield.removeClass('mdui-textfield-focus'); + } + // 输入框是否为空 + if (eventType === 'blur' || eventType === 'input') { + value + ? $textfield.addClass('mdui-textfield-not-empty') + : $textfield.removeClass('mdui-textfield-not-empty'); + } + // 输入框是否禁用 + input.disabled + ? $textfield.addClass('mdui-textfield-disabled') + : $textfield.removeClass('mdui-textfield-disabled'); + // 表单验证 + if ((eventType === 'input' || eventType === 'blur') && + !data.domLoadedEvent && + input.validity) { + input.validity.valid + ? $textfield.removeClass('mdui-textfield-invalid-html5') + : $textfield.addClass('mdui-textfield-invalid-html5'); + } + // textarea 高度自动调整 + if ($input.is('textarea')) { + // IE bug:textarea 的值仅为多个换行,不含其他内容时,textarea 的高度不准确 + // 此时,在计算高度前,在值的开头加入一个空格,计算完后,移除空格 + var inputValue = value; + var hasExtraSpace = false; + if (inputValue.replace(/[\r\n]/g, '') === '') { + $input.val(' ' + inputValue); + hasExtraSpace = true; + } + // 设置 textarea 高度 + $input.outerHeight(''); + var height = $input.outerHeight(); + var scrollHeight = input.scrollHeight; + if (scrollHeight > height) { + $input.outerHeight(scrollHeight); + } + // 计算完,还原 textarea 的值 + if (hasExtraSpace) { + $input.val(inputValue); + } + } + // 实时字数统计 + if (data.reInit) { + $textfield.find('.mdui-textfield-counter').remove(); + } + var maxLength = $input.attr('maxlength'); + if (maxLength) { + if (data.reInit || data.domLoadedEvent) { + $('
' + + " / " + maxLength + + '
').appendTo($textfield); + } + $textfield + .find('.mdui-textfield-counter-inputed') + .text(value.length.toString()); + } + // 含 帮助文本、错误提示、字数统计 时,增加文本框底部内边距 + if ($textfield.find('.mdui-textfield-helper').length || + $textfield.find('.mdui-textfield-error').length || + maxLength) { + $textfield.addClass('mdui-textfield-has-bottom'); + } + } + $(function () { + // 绑定事件 + $document.on('input focus blur', '.mdui-textfield-input', { useCapture: true }, inputEvent); + // 可展开文本框展开 + $document.on('click', '.mdui-textfield-expandable .mdui-textfield-icon', function () { + $(this) + .parents('.mdui-textfield') + .addClass('mdui-textfield-expanded') + .find('.mdui-textfield-input')[0] + .focus(); + }); + // 可展开文本框关闭 + $document.on('click', '.mdui-textfield-expanded .mdui-textfield-close', function () { + $(this) + .parents('.mdui-textfield') + .removeClass('mdui-textfield-expanded') + .find('.mdui-textfield-input') + .val(''); + }); + /** + * 初始化文本框 + */ + mdui.mutation('.mdui-textfield', function () { + $(this).find('.mdui-textfield-input').trigger('input', { + domLoadedEvent: true, + }); + }); + }); + mdui.updateTextFields = function (selector) { + var $elements = isUndefined(selector) ? $('.mdui-textfield') : $(selector); + $elements.each(function (_, element) { + $(element).find('.mdui-textfield-input').trigger('input', { + reInit: true, + }); + }); + }; + + /** + * 滑块的值改变后修改滑块样式 + * @param $slider + */ + function updateValueStyle($slider) { + var data = $slider.data(); + var $track = data._slider_$track; + var $fill = data._slider_$fill; + var $thumb = data._slider_$thumb; + var $input = data._slider_$input; + var min = data._slider_min; + var max = data._slider_max; + var isDisabled = data._slider_disabled; + var isDiscrete = data._slider_discrete; + var $thumbText = data._slider_$thumbText; + var value = $input.val(); + var percent = ((value - min) / (max - min)) * 100; + $fill.width((percent + "%")); + $track.width(((100 - percent) + "%")); + if (isDisabled) { + $fill.css('padding-right', '6px'); + $track.css('padding-left', '6px'); + } + $thumb.css('left', (percent + "%")); + if (isDiscrete) { + $thumbText.text(value); + } + percent === 0 + ? $slider.addClass('mdui-slider-zero') + : $slider.removeClass('mdui-slider-zero'); + } + /** + * 重新初始化滑块 + * @param $slider + */ + function reInit($slider) { + var $track = $('
'); + var $fill = $('
'); + var $thumb = $('
'); + var $input = $slider.find('input[type="range"]'); + var isDisabled = $input[0].disabled; + var isDiscrete = $slider.hasClass('mdui-slider-discrete'); + // 禁用状态 + isDisabled + ? $slider.addClass('mdui-slider-disabled') + : $slider.removeClass('mdui-slider-disabled'); + // 重新填充 HTML + $slider.find('.mdui-slider-track').remove(); + $slider.find('.mdui-slider-fill').remove(); + $slider.find('.mdui-slider-thumb').remove(); + $slider.append($track).append($fill).append($thumb); + // 间续型滑块 + var $thumbText = $(); + if (isDiscrete) { + $thumbText = $(''); + $thumb.empty().append($thumbText); + } + $slider.data('_slider_$track', $track); + $slider.data('_slider_$fill', $fill); + $slider.data('_slider_$thumb', $thumb); + $slider.data('_slider_$input', $input); + $slider.data('_slider_min', $input.attr('min')); + $slider.data('_slider_max', $input.attr('max')); + $slider.data('_slider_disabled', isDisabled); + $slider.data('_slider_discrete', isDiscrete); + $slider.data('_slider_$thumbText', $thumbText); + // 设置默认值 + updateValueStyle($slider); + } + var rangeSelector = '.mdui-slider input[type="range"]'; + $(function () { + // 滑块滑动事件 + $document.on('input change', rangeSelector, function () { + var $slider = $(this).parent(); + updateValueStyle($slider); + }); + // 开始触摸滑块事件 + $document.on(startEvent, rangeSelector, function (event) { + if (!isAllow(event)) { + return; + } + register(event); + if (this.disabled) { + return; + } + var $slider = $(this).parent(); + $slider.addClass('mdui-slider-focus'); + }); + // 结束触摸滑块事件 + $document.on(endEvent, rangeSelector, function (event) { + if (!isAllow(event)) { + return; + } + if (this.disabled) { + return; + } + var $slider = $(this).parent(); + $slider.removeClass('mdui-slider-focus'); + }); + $document.on(unlockEvent, rangeSelector, register); + /** + * 初始化滑块 + */ + mdui.mutation('.mdui-slider', function () { + reInit($(this)); + }); + }); + mdui.updateSliders = function (selector) { + var $elements = isUndefined(selector) ? $('.mdui-slider') : $(selector); + $elements.each(function (_, element) { + reInit($(element)); + }); + }; + + var DEFAULT_OPTIONS$2 = { + trigger: 'hover', + }; + var Fab = function Fab(selector, options) { + var this$1 = this; + if ( options === void 0 ) options = {}; + + /** + * 配置参数 + */ + this.options = extend({}, DEFAULT_OPTIONS$2); + /** + * 当前 fab 的状态 + */ + this.state = 'closed'; + this.$element = $(selector).first(); + extend(this.options, options); + this.$btn = this.$element.find('.mdui-fab'); + this.$dial = this.$element.find('.mdui-fab-dial'); + this.$dialBtns = this.$dial.find('.mdui-fab'); + if (this.options.trigger === 'hover') { + this.$btn.on('touchstart mouseenter', function () { return this$1.open(); }); + this.$element.on('mouseleave', function () { return this$1.close(); }); + } + if (this.options.trigger === 'click') { + this.$btn.on(startEvent, function () { return this$1.open(); }); + } + // 触摸屏幕其他地方关闭快速拨号 + $document.on(startEvent, function (event) { + if ($(event.target).parents('.mdui-fab-wrapper').length) { + return; + } + this$1.close(); + }); + }; + /** + * 触发组件事件 + * @param name + */ + Fab.prototype.triggerEvent = function triggerEvent (name) { + componentEvent(name, 'fab', this.$element, this); + }; + /** + * 当前是否为打开状态 + */ + Fab.prototype.isOpen = function isOpen () { + return this.state === 'opening' || this.state === 'opened'; + }; + /** + * 打开快速拨号菜单 + */ + Fab.prototype.open = function open () { + var this$1 = this; + + if (this.isOpen()) { + return; + } + // 为菜单中的按钮添加不同的 transition-delay + this.$dialBtns.each(function (index, btn) { + var delay = (15 * (this$1.$dialBtns.length - index)) + "ms"; + btn.style.transitionDelay = delay; + btn.style.webkitTransitionDelay = delay; + }); + this.$dial.css('height', 'auto').addClass('mdui-fab-dial-show'); + // 如果按钮中存在 .mdui-fab-opened 的图标,则进行图标切换 + if (this.$btn.find('.mdui-fab-opened').length) { + this.$btn.addClass('mdui-fab-opened'); + } + this.state = 'opening'; + this.triggerEvent('open'); + // 打开顺序为从下到上逐个打开,最上面的打开后才表示动画完成 + this.$dialBtns.first().transitionEnd(function () { + if (this$1.$btn.hasClass('mdui-fab-opened')) { + this$1.state = 'opened'; + this$1.triggerEvent('opened'); + } + }); + }; + /** + * 关闭快速拨号菜单 + */ + Fab.prototype.close = function close () { + var this$1 = this; + + if (!this.isOpen()) { + return; + } + // 为菜单中的按钮添加不同的 transition-delay + this.$dialBtns.each(function (index, btn) { + var delay = (15 * index) + "ms"; + btn.style.transitionDelay = delay; + btn.style.webkitTransitionDelay = delay; + }); + this.$dial.removeClass('mdui-fab-dial-show'); + this.$btn.removeClass('mdui-fab-opened'); + this.state = 'closing'; + this.triggerEvent('close'); + // 从上往下依次关闭,最后一个关闭后才表示动画完成 + this.$dialBtns.last().transitionEnd(function () { + if (this$1.$btn.hasClass('mdui-fab-opened')) { + return; + } + this$1.state = 'closed'; + this$1.triggerEvent('closed'); + this$1.$dial.css('height', 0); + }); + }; + /** + * 切换快速拨号菜单的打开状态 + */ + Fab.prototype.toggle = function toggle () { + this.isOpen() ? this.close() : this.open(); + }; + /** + * 以动画的形式显示整个浮动操作按钮 + */ + Fab.prototype.show = function show () { + this.$element.removeClass('mdui-fab-hide'); + }; + /** + * 以动画的形式隐藏整个浮动操作按钮 + */ + Fab.prototype.hide = function hide () { + this.$element.addClass('mdui-fab-hide'); + }; + /** + * 返回当前快速拨号菜单的打开状态。共包含四种状态:`opening`、`opened`、`closing`、`closed` + */ + Fab.prototype.getState = function getState () { + return this.state; + }; + mdui.Fab = Fab; + + var customAttr$3 = 'mdui-fab'; + $(function () { + // mouseenter 不冒泡,无法进行事件委托,这里用 mouseover 代替。 + // 不管是 click 、 mouseover 还是 touchstart ,都先初始化。 + $document.on('touchstart mousedown mouseover', ("[" + customAttr$3 + "]"), function () { + new mdui.Fab(this, parseOptions(this, customAttr$3)); + }); + }); + + /** + * 最终生成的元素结构为: + * + *
// $element + * State 1 // $selected + *
// $menu + *
State 1
// $items + *
State 2
+ *
State 3
+ *
+ *
+ */ + var DEFAULT_OPTIONS$3 = { + position: 'auto', + gutter: 16, + }; + var Select = function Select(selector, options) { + var this$1 = this; + if ( options === void 0 ) options = {}; + + /** + * 生成的 `
` 元素的 JQ 对象 + */ + this.$element = $(); + /** + * 配置参数 + */ + this.options = extend({}, DEFAULT_OPTIONS$3); + /** + * select 的 size 属性的值,根据该值设置 select 的高度 + */ + this.size = 0; + /** + * 占位元素,显示已选中菜单项的文本 + */ + this.$selected = $(); + /** + * 菜单项的外层元素的 JQ 对象 + */ + this.$menu = $(); + /** + * 菜单项数组的 JQ 对象 + */ + this.$items = $(); + /** + * 当前选中的菜单项的索引号 + */ + this.selectedIndex = 0; + /** + * 当前选中菜单项的文本 + */ + this.selectedText = ''; + /** + * 当前选中菜单项的值 + */ + this.selectedValue = ''; + /** + * 当前 select 的状态 + */ + this.state = 'closed'; + this.$native = $(selector).first(); + this.$native.hide(); + extend(this.options, options); + // 为当前 select 生成唯一 ID + this.uniqueID = $.guid(); + // 生成 select + this.handleUpdate(); + // 点击 select 外面区域关闭 + $document.on('click touchstart', function (event) { + var $target = $(event.target); + if (this$1.isOpen() && + !$target.is(this$1.$element) && + !contains(this$1.$element[0], $target[0])) { + this$1.close(); + } + }); + }; + /** + * 调整菜单位置 + */ + Select.prototype.readjustMenu = function readjustMenu () { + var windowHeight = $window.height(); + // mdui-select 高度 + var elementHeight = this.$element.height(); + // 菜单项高度 + var $itemFirst = this.$items.first(); + var itemHeight = $itemFirst.height(); + var itemMargin = parseInt($itemFirst.css('margin-top')); + // 菜单高度 + var menuWidth = this.$element.innerWidth() + 0.01; // 必须比真实宽度多一点,不然会出现省略号 + var menuHeight = itemHeight * this.size + itemMargin * 2; + // mdui-select 在窗口中的位置 + var elementTop = this.$element[0].getBoundingClientRect().top; + var transformOriginY; + var menuMarginTop; + if (this.options.position === 'bottom') { + menuMarginTop = elementHeight; + transformOriginY = '0px'; + } + else if (this.options.position === 'top') { + menuMarginTop = -menuHeight - 1; + transformOriginY = '100%'; + } + else { + // 菜单高度不能超过窗口高度 + var menuMaxHeight = windowHeight - this.options.gutter * 2; + if (menuHeight > menuMaxHeight) { + menuHeight = menuMaxHeight; + } + // 菜单的 margin-top + menuMarginTop = -(itemMargin + + this.selectedIndex * itemHeight + + (itemHeight - elementHeight) / 2); + var menuMaxMarginTop = -(itemMargin + + (this.size - 1) * itemHeight + + (itemHeight - elementHeight) / 2); + if (menuMarginTop < menuMaxMarginTop) { + menuMarginTop = menuMaxMarginTop; + } + // 菜单不能超出窗口 + var menuTop = elementTop + menuMarginTop; + if (menuTop < this.options.gutter) { + // 不能超出窗口上方 + menuMarginTop = -(elementTop - this.options.gutter); + } + else if (menuTop + menuHeight + this.options.gutter > windowHeight) { + // 不能超出窗口下方 + menuMarginTop = -(elementTop + + menuHeight + + this.options.gutter - + windowHeight); + } + // transform 的 Y 轴坐标 + transformOriginY = (this.selectedIndex * itemHeight + itemHeight / 2 + itemMargin) + "px"; + } + // 设置样式 + this.$element.innerWidth(menuWidth); + this.$menu + .innerWidth(menuWidth) + .height(menuHeight) + .css({ + 'margin-top': menuMarginTop + 'px', + 'transform-origin': 'center ' + transformOriginY + ' 0', + }); + }; + /** + * select 是否为打开状态 + */ + Select.prototype.isOpen = function isOpen () { + return this.state === 'opening' || this.state === 'opened'; + }; + /** + * 对原生 select 组件进行了修改后,需要调用该方法 + */ + Select.prototype.handleUpdate = function handleUpdate () { + var this$1 = this; + + if (this.isOpen()) { + this.close(); + } + this.selectedValue = this.$native.val(); + var itemsData = []; + this.$items = $(); + // 生成 HTML + this.$native.find('option').each(function (index, option) { + var text = option.textContent || ''; + var value = option.value; + var disabled = option.disabled; + var selected = this$1.selectedValue === value; + itemsData.push({ + value: value, + text: text, + disabled: disabled, + selected: selected, + index: index, + }); + if (selected) { + this$1.selectedText = text; + this$1.selectedIndex = index; + } + this$1.$items = this$1.$items.add('
" + text + "
"); + }); + this.$selected = $(("" + (this.selectedText) + "")); + this.$element = $("
") + .show() + .append(this.$selected); + this.$menu = $('
') + .appendTo(this.$element) + .append(this.$items); + $(("#" + (this.uniqueID))).remove(); + this.$native.after(this.$element); + // 根据 select 的 size 属性设置高度 + this.size = parseInt(this.$native.attr('size') || '0'); + if (this.size <= 0) { + this.size = this.$items.length; + if (this.size > 8) { + this.size = 8; + } + } + // 点击选项时关闭下拉菜单 + // eslint-disable-next-line @typescript-eslint/no-this-alias + var that = this; + this.$items.on('click', function () { + if (that.state === 'closing') { + return; + } + var $item = $(this); + var index = $item.index(); + var data = itemsData[index]; + if (data.disabled) { + return; + } + that.$selected.text(data.text); + that.$native.val(data.value); + that.$items.removeAttr('selected'); + $item.attr('selected', ''); + that.selectedIndex = data.index; + that.selectedValue = data.value; + that.selectedText = data.text; + that.$native.trigger('change'); + that.close(); + }); + // 点击 $element 时打开下拉菜单 + this.$element.on('click', function (event) { + var $target = $(event.target); + // 在菜单上点击时不打开 + if ($target.is('.mdui-select-menu') || + $target.is('.mdui-select-menu-item')) { + return; + } + this$1.toggle(); + }); + }; + /** + * 动画结束的回调 + */ + Select.prototype.transitionEnd = function transitionEnd () { + this.$element.removeClass('mdui-select-closing'); + if (this.state === 'opening') { + this.state = 'opened'; + this.triggerEvent('opened'); + this.$menu.css('overflow-y', 'auto'); + } + if (this.state === 'closing') { + this.state = 'closed'; + this.triggerEvent('closed'); + // 恢复样式 + this.$element.innerWidth(''); + this.$menu.css({ + 'margin-top': '', + height: '', + width: '', + }); + } + }; + /** + * 触发组件事件 + * @param name + */ + Select.prototype.triggerEvent = function triggerEvent (name) { + componentEvent(name, 'select', this.$native, this); + }; + /** + * 切换下拉菜单的打开状态 + */ + Select.prototype.toggle = function toggle () { + this.isOpen() ? this.close() : this.open(); + }; + /** + * 打开下拉菜单 + */ + Select.prototype.open = function open () { + var this$1 = this; + + if (this.isOpen()) { + return; + } + this.state = 'opening'; + this.triggerEvent('open'); + this.readjustMenu(); + this.$element.addClass('mdui-select-open'); + this.$menu.transitionEnd(function () { return this$1.transitionEnd(); }); + }; + /** + * 关闭下拉菜单 + */ + Select.prototype.close = function close () { + var this$1 = this; + + if (!this.isOpen()) { + return; + } + this.state = 'closing'; + this.triggerEvent('close'); + this.$menu.css('overflow-y', ''); + this.$element + .removeClass('mdui-select-open') + .addClass('mdui-select-closing'); + this.$menu.transitionEnd(function () { return this$1.transitionEnd(); }); + }; + /** + * 获取当前菜单的状态。共包含四种状态:`opening`、`opened`、`closing`、`closed` + */ + Select.prototype.getState = function getState () { + return this.state; + }; + mdui.Select = Select; + + var customAttr$4 = 'mdui-select'; + $(function () { + mdui.mutation(("[" + customAttr$4 + "]"), function () { + new mdui.Select(this, parseOptions(this, customAttr$4)); + }); + }); + + $(function () { + // 滚动时隐藏应用栏 + mdui.mutation('.mdui-appbar-scroll-hide', function () { + new mdui.Headroom(this); + }); + // 滚动时只隐藏应用栏中的工具栏 + mdui.mutation('.mdui-appbar-scroll-toolbar-hide', function () { + new mdui.Headroom(this, { + pinnedClass: 'mdui-headroom-pinned-toolbar', + unpinnedClass: 'mdui-headroom-unpinned-toolbar', + }); + }); + }); + + var DEFAULT_OPTIONS$4 = { + trigger: 'click', + loop: false, + }; + var Tab = function Tab(selector, options) { + var this$1 = this; + if ( options === void 0 ) options = {}; + + /** + * 配置参数 + */ + this.options = extend({}, DEFAULT_OPTIONS$4); + /** + * 当前激活的 tab 的索引号。为 -1 时表示没有激活的选项卡,或不存在选项卡 + */ + this.activeIndex = -1; + this.$element = $(selector).first(); + extend(this.options, options); + this.$tabs = this.$element.children('a'); + this.$indicator = $('
').appendTo(this.$element); + // 根据 url hash 获取默认激活的选项卡 + var hash = window.location.hash; + if (hash) { + this.$tabs.each(function (index, tab) { + if ($(tab).attr('href') === hash) { + this$1.activeIndex = index; + return false; + } + return true; + }); + } + // 含 .mdui-tab-active 的元素默认激活 + if (this.activeIndex === -1) { + this.$tabs.each(function (index, tab) { + if ($(tab).hasClass('mdui-tab-active')) { + this$1.activeIndex = index; + return false; + } + return true; + }); + } + // 存在选项卡时,默认激活第一个选项卡 + if (this.$tabs.length && this.activeIndex === -1) { + this.activeIndex = 0; + } + // 设置激活状态选项卡 + this.setActive(); + // 监听窗口大小变化事件,调整指示器位置 + $window.on('resize', $.throttle(function () { return this$1.setIndicatorPosition(); }, 100)); + // 监听点击选项卡事件 + this.$tabs.each(function (_, tab) { + this$1.bindTabEvent(tab); + }); + }; + /** + * 指定选项卡是否已禁用 + * @param $tab + */ + Tab.prototype.isDisabled = function isDisabled ($tab) { + return $tab.attr('disabled') !== undefined; + }; + /** + * 绑定在 Tab 上点击或悬浮的事件 + * @param tab + */ + Tab.prototype.bindTabEvent = function bindTabEvent (tab) { + var this$1 = this; + + var $tab = $(tab); + // 点击或鼠标移入触发的事件 + var clickEvent = function () { + // 禁用状态的选项卡无法选中 + if (this$1.isDisabled($tab)) { + return false; + } + this$1.activeIndex = this$1.$tabs.index(tab); + this$1.setActive(); + }; + // 无论 trigger 是 click 还是 hover,都会响应 click 事件 + $tab.on('click', clickEvent); + // trigger 为 hover 时,额外响应 mouseenter 事件 + if (this.options.trigger === 'hover') { + $tab.on('mouseenter', clickEvent); + } + // 阻止链接的默认点击动作 + $tab.on('click', function () { + if (($tab.attr('href') || '').indexOf('#') === 0) { + return false; + } + }); + }; + /** + * 触发组件事件 + * @param name + * @param $element + * @param parameters + */ + Tab.prototype.triggerEvent = function triggerEvent (name, $element, parameters) { + if ( parameters === void 0 ) parameters = {}; + + componentEvent(name, 'tab', $element, this, parameters); + }; + /** + * 设置激活状态的选项卡 + */ + Tab.prototype.setActive = function setActive () { + var this$1 = this; + + this.$tabs.each(function (index, tab) { + var $tab = $(tab); + var targetId = $tab.attr('href') || ''; + // 设置选项卡激活状态 + if (index === this$1.activeIndex && !this$1.isDisabled($tab)) { + if (!$tab.hasClass('mdui-tab-active')) { + this$1.triggerEvent('change', this$1.$element, { + index: this$1.activeIndex, + id: targetId.substr(1), + }); + this$1.triggerEvent('show', $tab); + $tab.addClass('mdui-tab-active'); + } + $(targetId).show(); + this$1.setIndicatorPosition(); + } + else { + $tab.removeClass('mdui-tab-active'); + $(targetId).hide(); + } + }); + }; + /** + * 设置选项卡指示器的位置 + */ + Tab.prototype.setIndicatorPosition = function setIndicatorPosition () { + // 选项卡数量为 0 时,不显示指示器 + if (this.activeIndex === -1) { + this.$indicator.css({ + left: 0, + width: 0, + }); + return; + } + var $activeTab = this.$tabs.eq(this.activeIndex); + if (this.isDisabled($activeTab)) { + return; + } + var activeTabOffset = $activeTab.offset(); + this.$indicator.css({ + left: ((activeTabOffset.left + + this.$element[0].scrollLeft - + this.$element[0].getBoundingClientRect().left) + "px"), + width: (($activeTab.innerWidth()) + "px"), + }); + }; + /** + * 切换到下一个选项卡 + */ + Tab.prototype.next = function next () { + if (this.activeIndex === -1) { + return; + } + if (this.$tabs.length > this.activeIndex + 1) { + this.activeIndex++; + } + else if (this.options.loop) { + this.activeIndex = 0; + } + this.setActive(); + }; + /** + * 切换到上一个选项卡 + */ + Tab.prototype.prev = function prev () { + if (this.activeIndex === -1) { + return; + } + if (this.activeIndex > 0) { + this.activeIndex--; + } + else if (this.options.loop) { + this.activeIndex = this.$tabs.length - 1; + } + this.setActive(); + }; + /** + * 显示指定索引号、或指定id的选项卡 + * @param index 索引号、或id + */ + Tab.prototype.show = function show (index) { + var this$1 = this; + + if (this.activeIndex === -1) { + return; + } + if (isNumber(index)) { + this.activeIndex = index; + } + else { + this.$tabs.each(function (i, tab) { + if (tab.id === index) { + this$1.activeIndex = i; + return false; + } + }); + } + this.setActive(); + }; + /** + * 在父元素的宽度变化时,需要调用该方法重新调整指示器位置 + * 在添加或删除选项卡时,需要调用该方法 + */ + Tab.prototype.handleUpdate = function handleUpdate () { + var this$1 = this; + + var $oldTabs = this.$tabs; // 旧的 tabs JQ对象 + var $newTabs = this.$element.children('a'); // 新的 tabs JQ对象 + var oldTabsElement = $oldTabs.get(); // 旧的 tabs 元素数组 + var newTabsElement = $newTabs.get(); // 新的 tabs 元素数组 + if (!$newTabs.length) { + this.activeIndex = -1; + this.$tabs = $newTabs; + this.setIndicatorPosition(); + return; + } + // 重新遍历选项卡,找出新增的选项卡 + $newTabs.each(function (index, tab) { + // 有新增的选项卡 + if (oldTabsElement.indexOf(tab) < 0) { + this$1.bindTabEvent(tab); + if (this$1.activeIndex === -1) { + this$1.activeIndex = 0; + } + else if (index <= this$1.activeIndex) { + this$1.activeIndex++; + } + } + }); + // 找出被移除的选项卡 + $oldTabs.each(function (index, tab) { + // 有被移除的选项卡 + if (newTabsElement.indexOf(tab) < 0) { + if (index < this$1.activeIndex) { + this$1.activeIndex--; + } + else if (index === this$1.activeIndex) { + this$1.activeIndex = 0; + } + } + }); + this.$tabs = $newTabs; + this.setActive(); + }; + mdui.Tab = Tab; + + var customAttr$5 = 'mdui-tab'; + $(function () { + mdui.mutation(("[" + customAttr$5 + "]"), function () { + new mdui.Tab(this, parseOptions(this, customAttr$5)); + }); + }); + + /** + * 在桌面设备上默认显示抽屉栏,不显示遮罩层 + * 在手机和平板设备上默认不显示抽屉栏,始终显示遮罩层,且覆盖导航栏 + */ + var DEFAULT_OPTIONS$5 = { + overlay: false, + swipe: false, + }; + var Drawer = function Drawer(selector, options) { + var this$1 = this; + if ( options === void 0 ) options = {}; + + /** + * 配置参数 + */ + this.options = extend({}, DEFAULT_OPTIONS$5); + /** + * 当前是否显示着遮罩层 + */ + this.overlay = false; + this.$element = $(selector).first(); + extend(this.options, options); + this.position = this.$element.hasClass('mdui-drawer-right') + ? 'right' + : 'left'; + if (this.$element.hasClass('mdui-drawer-close')) { + this.state = 'closed'; + } + else if (this.$element.hasClass('mdui-drawer-open')) { + this.state = 'opened'; + } + else if (this.isDesktop()) { + this.state = 'opened'; + } + else { + this.state = 'closed'; + } + // 浏览器窗口大小调整时 + $window.on('resize', $.throttle(function () { + if (this$1.isDesktop()) { + // 由手机平板切换到桌面时 + // 如果显示着遮罩,则隐藏遮罩 + if (this$1.overlay && !this$1.options.overlay) { + $.hideOverlay(); + this$1.overlay = false; + $.unlockScreen(); + } + // 没有强制关闭,则状态为打开状态 + if (!this$1.$element.hasClass('mdui-drawer-close')) { + this$1.state = 'opened'; + } + } + else if (!this$1.overlay && this$1.state === 'opened') { + // 由桌面切换到手机平板时。如果抽屉栏是打开着的且没有遮罩层,则关闭抽屉栏 + if (this$1.$element.hasClass('mdui-drawer-open')) { + $.showOverlay(); + this$1.overlay = true; + $.lockScreen(); + $('.mdui-overlay').one('click', function () { return this$1.close(); }); + } + else { + this$1.state = 'closed'; + } + } + }, 100)); + // 绑定关闭按钮事件 + this.$element.find('[mdui-drawer-close]').each(function (_, close) { + $(close).on('click', function () { return this$1.close(); }); + }); + this.swipeSupport(); + }; + /** + * 是否是桌面设备 + */ + Drawer.prototype.isDesktop = function isDesktop () { + return $window.width() >= 1024; + }; + /** + * 滑动手势支持 + */ + Drawer.prototype.swipeSupport = function swipeSupport () { + // eslint-disable-next-line @typescript-eslint/no-this-alias + var that = this; + // 抽屉栏滑动手势控制 + var openNavEventHandler; + var touchStartX; + var touchStartY; + var swipeStartX; + var swiping = null; + var maybeSwiping = false; + var $body = $('body'); + // 手势触发的范围 + var swipeAreaWidth = 24; + function setPosition(translateX) { + var rtlTranslateMultiplier = that.position === 'right' ? -1 : 1; + var transformCSS = "translate(" + (-1 * rtlTranslateMultiplier * translateX) + "px, 0) !important;"; + var transitionCSS = 'initial !important;'; + that.$element.css('cssText', ("transform: " + transformCSS + "; transition: " + transitionCSS + ";")); + } + function cleanPosition() { + that.$element[0].style.transform = ''; + that.$element[0].style.webkitTransform = ''; + that.$element[0].style.transition = ''; + that.$element[0].style.webkitTransition = ''; + } + function getMaxTranslateX() { + return that.$element.width() + 10; + } + function getTranslateX(currentX) { + return Math.min(Math.max(swiping === 'closing' + ? swipeStartX - currentX + : getMaxTranslateX() + swipeStartX - currentX, 0), getMaxTranslateX()); + } + function onBodyTouchEnd(event) { + if (swiping) { + var touchX = event.changedTouches[0].pageX; + if (that.position === 'right') { + touchX = $body.width() - touchX; + } + var translateRatio = getTranslateX(touchX) / getMaxTranslateX(); + maybeSwiping = false; + var swipingState = swiping; + swiping = null; + if (swipingState === 'opening') { + if (translateRatio < 0.92) { + cleanPosition(); + that.open(); + } + else { + cleanPosition(); + } + } + else { + if (translateRatio > 0.08) { + cleanPosition(); + that.close(); + } + else { + cleanPosition(); + } + } + $.unlockScreen(); + } + else { + maybeSwiping = false; + } + $body.off({ + // eslint-disable-next-line @typescript-eslint/no-use-before-define + touchmove: onBodyTouchMove, + touchend: onBodyTouchEnd, + // eslint-disable-next-line @typescript-eslint/no-use-before-define + touchcancel: onBodyTouchMove, + }); + } + function onBodyTouchMove(event) { + var touchX = event.touches[0].pageX; + if (that.position === 'right') { + touchX = $body.width() - touchX; + } + var touchY = event.touches[0].pageY; + if (swiping) { + setPosition(getTranslateX(touchX)); + } + else if (maybeSwiping) { + var dXAbs = Math.abs(touchX - touchStartX); + var dYAbs = Math.abs(touchY - touchStartY); + var threshold = 8; + if (dXAbs > threshold && dYAbs <= threshold) { + swipeStartX = touchX; + swiping = that.state === 'opened' ? 'closing' : 'opening'; + $.lockScreen(); + setPosition(getTranslateX(touchX)); + } + else if (dXAbs <= threshold && dYAbs > threshold) { + onBodyTouchEnd(); + } + } + } + function onBodyTouchStart(event) { + touchStartX = event.touches[0].pageX; + if (that.position === 'right') { + touchStartX = $body.width() - touchStartX; + } + touchStartY = event.touches[0].pageY; + if (that.state !== 'opened') { + if (touchStartX > swipeAreaWidth || + openNavEventHandler !== onBodyTouchStart) { + return; + } + } + maybeSwiping = true; + $body.on({ + touchmove: onBodyTouchMove, + touchend: onBodyTouchEnd, + touchcancel: onBodyTouchMove, + }); + } + function enableSwipeHandling() { + if (!openNavEventHandler) { + $body.on('touchstart', onBodyTouchStart); + openNavEventHandler = onBodyTouchStart; + } + } + if (this.options.swipe) { + enableSwipeHandling(); + } + }; + /** + * 触发组件事件 + * @param name + */ + Drawer.prototype.triggerEvent = function triggerEvent (name) { + componentEvent(name, 'drawer', this.$element, this); + }; + /** + * 动画结束回调 + */ + Drawer.prototype.transitionEnd = function transitionEnd () { + if (this.$element.hasClass('mdui-drawer-open')) { + this.state = 'opened'; + this.triggerEvent('opened'); + } + else { + this.state = 'closed'; + this.triggerEvent('closed'); + } + }; + /** + * 是否处于打开状态 + */ + Drawer.prototype.isOpen = function isOpen () { + return this.state === 'opening' || this.state === 'opened'; + }; + /** + * 打开抽屉栏 + */ + Drawer.prototype.open = function open () { + var this$1 = this; + + if (this.isOpen()) { + return; + } + this.state = 'opening'; + this.triggerEvent('open'); + if (!this.options.overlay) { + $('body').addClass(("mdui-drawer-body-" + (this.position))); + } + this.$element + .removeClass('mdui-drawer-close') + .addClass('mdui-drawer-open') + .transitionEnd(function () { return this$1.transitionEnd(); }); + if (!this.isDesktop() || this.options.overlay) { + this.overlay = true; + $.showOverlay().one('click', function () { return this$1.close(); }); + $.lockScreen(); + } + }; + /** + * 关闭抽屉栏 + */ + Drawer.prototype.close = function close () { + var this$1 = this; + + if (!this.isOpen()) { + return; + } + this.state = 'closing'; + this.triggerEvent('close'); + if (!this.options.overlay) { + $('body').removeClass(("mdui-drawer-body-" + (this.position))); + } + this.$element + .addClass('mdui-drawer-close') + .removeClass('mdui-drawer-open') + .transitionEnd(function () { return this$1.transitionEnd(); }); + if (this.overlay) { + $.hideOverlay(); + this.overlay = false; + $.unlockScreen(); + } + }; + /** + * 切换抽屉栏打开/关闭状态 + */ + Drawer.prototype.toggle = function toggle () { + this.isOpen() ? this.close() : this.open(); + }; + /** + * 返回当前抽屉栏的状态。共包含四种状态:`opening`、`opened`、`closing`、`closed` + */ + Drawer.prototype.getState = function getState () { + return this.state; + }; + mdui.Drawer = Drawer; + + var customAttr$6 = 'mdui-drawer'; + $(function () { + mdui.mutation(("[" + customAttr$6 + "]"), function () { + var $element = $(this); + var options = parseOptions(this, customAttr$6); + var selector = options.target; + // @ts-ignore + delete options.target; + var $drawer = $(selector).first(); + var instance = new mdui.Drawer($drawer, options); + $element.on('click', function () { return instance.toggle(); }); + }); + }); + + var container = {}; + function queue(name, func) { + if (isUndefined(container[name])) { + container[name] = []; + } + if (isUndefined(func)) { + return container[name]; + } + container[name].push(func); + } + /** + * 从队列中移除第一个函数,并执行该函数 + * @param name 队列满 + */ + function dequeue(name) { + if (isUndefined(container[name])) { + return; + } + if (!container[name].length) { + return; + } + var func = container[name].shift(); + func(); + } + + var DEFAULT_OPTIONS$6 = { + history: true, + overlay: true, + modal: false, + closeOnEsc: true, + closeOnCancel: true, + closeOnConfirm: true, + destroyOnClosed: false, + }; + /** + * 当前显示的对话框实例 + */ + var currentInst = null; + /** + * 队列名 + */ + var queueName = '_mdui_dialog'; + /** + * 窗口是否已锁定 + */ + var isLockScreen = false; + /** + * 遮罩层元素 + */ + var $overlay; + var Dialog = function Dialog(selector, options) { + var this$1 = this; + if ( options === void 0 ) options = {}; + + /** + * 配置参数 + */ + this.options = extend({}, DEFAULT_OPTIONS$6); + /** + * 当前 dialog 的状态 + */ + this.state = 'closed'; + /** + * dialog 元素是否是动态添加的 + */ + this.append = false; + this.$element = $(selector).first(); + // 如果对话框元素没有在当前文档中,则需要添加 + if (!contains(document.body, this.$element[0])) { + this.append = true; + $('body').append(this.$element); + } + extend(this.options, options); + // 绑定取消按钮事件 + this.$element.find('[mdui-dialog-cancel]').each(function (_, cancel) { + $(cancel).on('click', function () { + this$1.triggerEvent('cancel'); + if (this$1.options.closeOnCancel) { + this$1.close(); + } + }); + }); + // 绑定确认按钮事件 + this.$element.find('[mdui-dialog-confirm]').each(function (_, confirm) { + $(confirm).on('click', function () { + this$1.triggerEvent('confirm'); + if (this$1.options.closeOnConfirm) { + this$1.close(); + } + }); + }); + // 绑定关闭按钮事件 + this.$element.find('[mdui-dialog-close]').each(function (_, close) { + $(close).on('click', function () { return this$1.close(); }); + }); + }; + /** + * 触发组件事件 + * @param name + */ + Dialog.prototype.triggerEvent = function triggerEvent (name) { + componentEvent(name, 'dialog', this.$element, this); + }; + /** + * 窗口宽度变化,或对话框内容变化时,调整对话框位置和对话框内的滚动条 + */ + Dialog.prototype.readjust = function readjust () { + if (!currentInst) { + return; + } + var $element = currentInst.$element; + var $title = $element.children('.mdui-dialog-title'); + var $content = $element.children('.mdui-dialog-content'); + var $actions = $element.children('.mdui-dialog-actions'); + // 调整 dialog 的 top 和 height 值 + $element.height(''); + $content.height(''); + var elementHeight = $element.height(); + $element.css({ + top: ((($window.height() - elementHeight) / 2) + "px"), + height: (elementHeight + "px"), + }); + // 调整 mdui-dialog-content 的高度 + $content.innerHeight(elementHeight - + ($title.innerHeight() || 0) - + ($actions.innerHeight() || 0)); + }; + /** + * hashchange 事件触发时关闭对话框 + */ + Dialog.prototype.hashchangeEvent = function hashchangeEvent () { + if (window.location.hash.substring(1).indexOf('mdui-dialog') < 0) { + currentInst.close(true); + } + }; + /** + * 点击遮罩层关闭对话框 + * @param event + */ + Dialog.prototype.overlayClick = function overlayClick (event) { + if ($(event.target).hasClass('mdui-overlay') && + currentInst) { + currentInst.close(); + } + }; + /** + * 动画结束回调 + */ + Dialog.prototype.transitionEnd = function transitionEnd () { + if (this.$element.hasClass('mdui-dialog-open')) { + this.state = 'opened'; + this.triggerEvent('opened'); + } + else { + this.state = 'closed'; + this.triggerEvent('closed'); + this.$element.hide(); + // 所有对话框都关闭,且当前没有打开的对话框时,解锁屏幕 + if (!queue(queueName).length && !currentInst && isLockScreen) { + $.unlockScreen(); + isLockScreen = false; + } + $window.off('resize', $.throttle(this.readjust, 100)); + if (this.options.destroyOnClosed) { + this.destroy(); + } + } + }; + /** + * 打开指定对话框 + */ + Dialog.prototype.doOpen = function doOpen () { + var this$1 = this; + + currentInst = this; + if (!isLockScreen) { + $.lockScreen(); + isLockScreen = true; + } + this.$element.show(); + this.readjust(); + $window.on('resize', $.throttle(this.readjust, 100)); + // 打开消息框 + this.state = 'opening'; + this.triggerEvent('open'); + this.$element + .addClass('mdui-dialog-open') + .transitionEnd(function () { return this$1.transitionEnd(); }); + // 不存在遮罩层元素时,添加遮罩层 + if (!$overlay) { + $overlay = $.showOverlay(5100); + } + // 点击遮罩层时是否关闭对话框 + if (this.options.modal) { + $overlay.off('click', this.overlayClick); + } + else { + $overlay.on('click', this.overlayClick); + } + // 是否显示遮罩层,不显示时,把遮罩层背景透明 + $overlay.css('opacity', this.options.overlay ? '' : 0); + if (this.options.history) { + // 如果 hash 中原来就有 mdui-dialog,先删除,避免后退历史纪录后仍然有 mdui-dialog 导致无法关闭 + // 包括 mdui-dialog 和 &mdui-dialog 和 ?mdui-dialog + var hash = window.location.hash.substring(1); + if (hash.indexOf('mdui-dialog') > -1) { + hash = hash.replace(/[&?]?mdui-dialog/g, ''); + } + // 后退按钮关闭对话框 + if (hash) { + window.location.hash = "" + hash + (hash.indexOf('?') > -1 ? '&' : '?') + "mdui-dialog"; + } + else { + window.location.hash = 'mdui-dialog'; + } + $window.on('hashchange', this.hashchangeEvent); + } + }; + /** + * 当前对话框是否为打开状态 + */ + Dialog.prototype.isOpen = function isOpen () { + return this.state === 'opening' || this.state === 'opened'; + }; + /** + * 打开对话框 + */ + Dialog.prototype.open = function open () { + var this$1 = this; + + if (this.isOpen()) { + return; + } + // 如果当前有正在打开或已经打开的对话框,或队列不为空,则先加入队列,等旧对话框开始关闭时再打开 + if ((currentInst && + (currentInst.state === 'opening' || currentInst.state === 'opened')) || + queue(queueName).length) { + queue(queueName, function () { return this$1.doOpen(); }); + return; + } + this.doOpen(); + }; + /** + * 关闭对话框 + */ + Dialog.prototype.close = function close (historyBack) { + var this$1 = this; + if ( historyBack === void 0 ) historyBack = false; + + // historyBack 是否需要后退历史纪录,默认为 `false`。该参数仅内部使用 + // 为 `false` 时是通过 js 关闭,需要后退一个历史记录 + // 为 `true` 时是通过后退按钮关闭,不需要后退历史记录 + // setTimeout 的作用是: + // 当同时关闭一个对话框,并打开另一个对话框时,使打开对话框的操作先执行,以使需要打开的对话框先加入队列 + setTimeout(function () { + if (!this$1.isOpen()) { + return; + } + currentInst = null; + this$1.state = 'closing'; + this$1.triggerEvent('close'); + // 所有对话框都关闭,且当前没有打开的对话框时,隐藏遮罩 + if (!queue(queueName).length && $overlay) { + $.hideOverlay(); + $overlay = null; + // 若仍存在遮罩,恢复遮罩的 z-index + $('.mdui-overlay').css('z-index', 2000); + } + this$1.$element + .removeClass('mdui-dialog-open') + .transitionEnd(function () { return this$1.transitionEnd(); }); + if (this$1.options.history && !queue(queueName).length) { + if (!historyBack) { + window.history.back(); + } + $window.off('hashchange', this$1.hashchangeEvent); + } + // 关闭旧对话框,打开新对话框。 + // 加一点延迟,仅仅为了视觉效果更好。不加延时也不影响功能 + setTimeout(function () { + dequeue(queueName); + }, 100); + }); + }; + /** + * 切换对话框打开/关闭状态 + */ + Dialog.prototype.toggle = function toggle () { + this.isOpen() ? this.close() : this.open(); + }; + /** + * 获取对话框状态。共包含四种状态:`opening`、`opened`、`closing`、`closed` + */ + Dialog.prototype.getState = function getState () { + return this.state; + }; + /** + * 销毁对话框 + */ + Dialog.prototype.destroy = function destroy () { + if (this.append) { + this.$element.remove(); + } + if (!queue(queueName).length && !currentInst) { + if ($overlay) { + $.hideOverlay(); + $overlay = null; + } + if (isLockScreen) { + $.unlockScreen(); + isLockScreen = false; + } + } + }; + /** + * 对话框内容变化时,需要调用该方法来调整对话框位置和滚动条高度 + */ + Dialog.prototype.handleUpdate = function handleUpdate () { + this.readjust(); + }; + + // esc 按下时关闭对话框 + $document.on('keydown', function (event) { + if (currentInst && + currentInst.options.closeOnEsc && + currentInst.state === 'opened' && + event.keyCode === 27) { + currentInst.close(); + } + }); + mdui.Dialog = Dialog; + + var customAttr$7 = 'mdui-dialog'; + var dataName$1 = '_mdui_dialog'; + $(function () { + $document.on('click', ("[" + customAttr$7 + "]"), function () { + var options = parseOptions(this, customAttr$7); + var selector = options.target; + // @ts-ignore + delete options.target; + var $dialog = $(selector).first(); + var instance = $dialog.data(dataName$1); + if (!instance) { + instance = new mdui.Dialog($dialog, options); + $dialog.data(dataName$1, instance); + } + instance.open(); + }); + }); + + var DEFAULT_BUTTON = { + text: '', + bold: false, + close: true, + // eslint-disable-next-line @typescript-eslint/no-empty-function + onClick: function () { }, + }; + var DEFAULT_OPTIONS$7 = { + title: '', + content: '', + buttons: [], + stackedButtons: false, + cssClass: '', + history: true, + overlay: true, + modal: false, + closeOnEsc: true, + destroyOnClosed: true, + // eslint-disable-next-line @typescript-eslint/no-empty-function + onOpen: function () { }, + // eslint-disable-next-line @typescript-eslint/no-empty-function + onOpened: function () { }, + // eslint-disable-next-line @typescript-eslint/no-empty-function + onClose: function () { }, + // eslint-disable-next-line @typescript-eslint/no-empty-function + onClosed: function () { }, + }; + mdui.dialog = function (options) { + var _a, _b; + // 合并配置参数 + options = extend({}, DEFAULT_OPTIONS$7, options); + each(options.buttons, function (i, button) { + options.buttons[i] = extend({}, DEFAULT_BUTTON, button); + }); + // 按钮的 HTML + var buttonsHTML = ''; + if ((_a = options.buttons) === null || _a === void 0 ? void 0 : _a.length) { + buttonsHTML = "
"; + each(options.buttons, function (_, button) { + buttonsHTML += + '" + (button.text) + ""; + }); + buttonsHTML += '
'; + } + // Dialog 的 HTML + var HTML = "
" + + (options.title + ? ("
" + (options.title) + "
") + : '') + + (options.content + ? ("
" + (options.content) + "
") + : '') + + buttonsHTML + + '
'; + // 实例化 Dialog + var instance = new mdui.Dialog(HTML, { + history: options.history, + overlay: options.overlay, + modal: options.modal, + closeOnEsc: options.closeOnEsc, + destroyOnClosed: options.destroyOnClosed, + }); + // 绑定按钮事件 + if ((_b = options.buttons) === null || _b === void 0 ? void 0 : _b.length) { + instance.$element + .find('.mdui-dialog-actions .mdui-btn') + .each(function (index, button) { + $(button).on('click', function () { + options.buttons[index].onClick(instance); + if (options.buttons[index].close) { + instance.close(); + } + }); + }); + } + // 绑定打开关闭事件 + instance.$element + .on('open.mdui.dialog', function () { + options.onOpen(instance); + }) + .on('opened.mdui.dialog', function () { + options.onOpened(instance); + }) + .on('close.mdui.dialog', function () { + options.onClose(instance); + }) + .on('closed.mdui.dialog', function () { + options.onClosed(instance); + }); + instance.open(); + return instance; + }; + + var DEFAULT_OPTIONS$8 = { + confirmText: 'ok', + history: true, + modal: false, + closeOnEsc: true, + closeOnConfirm: true, + }; + mdui.alert = function (text, title, onConfirm, options) { + if (isFunction(title)) { + options = onConfirm; + onConfirm = title; + title = ''; + } + if (isUndefined(onConfirm)) { + // eslint-disable-next-line @typescript-eslint/no-empty-function + onConfirm = function () { }; + } + if (isUndefined(options)) { + options = {}; + } + options = extend({}, DEFAULT_OPTIONS$8, options); + return mdui.dialog({ + title: title, + content: text, + buttons: [ + { + text: options.confirmText, + bold: false, + close: options.closeOnConfirm, + onClick: onConfirm, + } ], + cssClass: 'mdui-dialog-alert', + history: options.history, + modal: options.modal, + closeOnEsc: options.closeOnEsc, + }); + }; + + var DEFAULT_OPTIONS$9 = { + confirmText: 'ok', + cancelText: 'cancel', + history: true, + modal: false, + closeOnEsc: true, + closeOnCancel: true, + closeOnConfirm: true, + }; + mdui.confirm = function (text, title, onConfirm, onCancel, options) { + if (isFunction(title)) { + options = onCancel; + onCancel = onConfirm; + onConfirm = title; + title = ''; + } + if (isUndefined(onConfirm)) { + // eslint-disable-next-line @typescript-eslint/no-empty-function + onConfirm = function () { }; + } + if (isUndefined(onCancel)) { + // eslint-disable-next-line @typescript-eslint/no-empty-function + onCancel = function () { }; + } + if (isUndefined(options)) { + options = {}; + } + options = extend({}, DEFAULT_OPTIONS$9, options); + return mdui.dialog({ + title: title, + content: text, + buttons: [ + { + text: options.cancelText, + bold: false, + close: options.closeOnCancel, + onClick: onCancel, + }, + { + text: options.confirmText, + bold: false, + close: options.closeOnConfirm, + onClick: onConfirm, + } ], + cssClass: 'mdui-dialog-confirm', + history: options.history, + modal: options.modal, + closeOnEsc: options.closeOnEsc, + }); + }; + + var DEFAULT_OPTIONS$a = { + confirmText: 'ok', + cancelText: 'cancel', + history: true, + modal: false, + closeOnEsc: true, + closeOnCancel: true, + closeOnConfirm: true, + type: 'text', + maxlength: 0, + defaultValue: '', + confirmOnEnter: false, + }; + mdui.prompt = function (label, title, onConfirm, onCancel, options) { + if (isFunction(title)) { + options = onCancel; + onCancel = onConfirm; + onConfirm = title; + title = ''; + } + if (isUndefined(onConfirm)) { + // eslint-disable-next-line @typescript-eslint/no-empty-function + onConfirm = function () { }; + } + if (isUndefined(onCancel)) { + // eslint-disable-next-line @typescript-eslint/no-empty-function + onCancel = function () { }; + } + if (isUndefined(options)) { + options = {}; + } + options = extend({}, DEFAULT_OPTIONS$a, options); + var content = '
' + + (label ? ("") : '') + + (options.type === 'text' + ? ("") + : '') + + (options.type === 'textarea' + ? ("") + : '') + + '
'; + var onCancelClick = function (dialog) { + var value = dialog.$element.find('.mdui-textfield-input').val(); + onCancel(value, dialog); + }; + var onConfirmClick = function (dialog) { + var value = dialog.$element.find('.mdui-textfield-input').val(); + onConfirm(value, dialog); + }; + return mdui.dialog({ + title: title, + content: content, + buttons: [ + { + text: options.cancelText, + bold: false, + close: options.closeOnCancel, + onClick: onCancelClick, + }, + { + text: options.confirmText, + bold: false, + close: options.closeOnConfirm, + onClick: onConfirmClick, + } ], + cssClass: 'mdui-dialog-prompt', + history: options.history, + modal: options.modal, + closeOnEsc: options.closeOnEsc, + onOpen: function (dialog) { + // 初始化输入框 + var $input = dialog.$element.find('.mdui-textfield-input'); + mdui.updateTextFields($input); + // 聚焦到输入框 + $input[0].focus(); + // 捕捉文本框回车键,在单行文本框的情况下触发回调 + if (options.type !== 'textarea' && options.confirmOnEnter === true) { + $input.on('keydown', function (event) { + if (event.keyCode === 13) { + var value = dialog.$element.find('.mdui-textfield-input').val(); + onConfirm(value, dialog); + if (options.closeOnConfirm) { + dialog.close(); + } + return false; + } + return; + }); + } + // 如果是多行输入框,监听输入框的 input 事件,更新对话框高度 + if (options.type === 'textarea') { + $input.on('input', function () { return dialog.handleUpdate(); }); + } + // 有字符数限制时,加载完文本框后 DOM 会变化,需要更新对话框高度 + if (options.maxlength) { + dialog.handleUpdate(); + } + }, + }); + }; + + var DEFAULT_OPTIONS$b = { + position: 'auto', + delay: 0, + content: '', + }; + var Tooltip = function Tooltip(selector, options) { + if ( options === void 0 ) options = {}; + + /** + * 配置参数 + */ + this.options = extend({}, DEFAULT_OPTIONS$b); + /** + * 当前 tooltip 的状态 + */ + this.state = 'closed'; + /** + * setTimeout 的返回值 + */ + this.timeoutId = null; + this.$target = $(selector).first(); + extend(this.options, options); + // 创建 Tooltip HTML + this.$element = $(("
" + (this.options.content) + "
")).appendTo(document.body); + // 绑定事件。元素处于 disabled 状态时无法触发鼠标事件,为了统一,把 touch 事件也禁用 + // eslint-disable-next-line @typescript-eslint/no-this-alias + var that = this; + this.$target + .on('touchstart mouseenter', function (event) { + if (that.isDisabled(this)) { + return; + } + if (!isAllow(event)) { + return; + } + register(event); + that.open(); + }) + .on('touchend mouseleave', function (event) { + if (that.isDisabled(this)) { + return; + } + if (!isAllow(event)) { + return; + } + that.close(); + }) + .on(unlockEvent, function (event) { + if (that.isDisabled(this)) { + return; + } + register(event); + }); + }; + /** + * 元素是否已禁用 + * @param element + */ + Tooltip.prototype.isDisabled = function isDisabled (element) { + return (element.disabled || + $(element).attr('disabled') !== undefined); + }; + /** + * 是否是桌面设备 + */ + Tooltip.prototype.isDesktop = function isDesktop () { + return $window.width() > 1024; + }; + /** + * 设置 Tooltip 的位置 + */ + Tooltip.prototype.setPosition = function setPosition () { + var marginLeft; + var marginTop; + // 触发的元素 + var targetProps = this.$target[0].getBoundingClientRect(); + // 触发的元素和 Tooltip 之间的距离 + var targetMargin = this.isDesktop() ? 14 : 24; + // Tooltip 的宽度和高度 + var tooltipWidth = this.$element[0].offsetWidth; + var tooltipHeight = this.$element[0].offsetHeight; + // Tooltip 的方向 + var position = this.options.position; + // 自动判断位置,加 2px,使 Tooltip 距离窗口边框至少有 2px 的间距 + if (position === 'auto') { + if (targetProps.top + + targetProps.height + + targetMargin + + tooltipHeight + + 2 < + $window.height()) { + position = 'bottom'; + } + else if (targetMargin + tooltipHeight + 2 < targetProps.top) { + position = 'top'; + } + else if (targetMargin + tooltipWidth + 2 < targetProps.left) { + position = 'left'; + } + else if (targetProps.width + targetMargin + tooltipWidth + 2 < + $window.width() - targetProps.left) { + position = 'right'; + } + else { + position = 'bottom'; + } + } + // 设置位置 + switch (position) { + case 'bottom': + marginLeft = -1 * (tooltipWidth / 2); + marginTop = targetProps.height / 2 + targetMargin; + this.$element.transformOrigin('top center'); + break; + case 'top': + marginLeft = -1 * (tooltipWidth / 2); + marginTop = + -1 * (tooltipHeight + targetProps.height / 2 + targetMargin); + this.$element.transformOrigin('bottom center'); + break; + case 'left': + marginLeft = -1 * (tooltipWidth + targetProps.width / 2 + targetMargin); + marginTop = -1 * (tooltipHeight / 2); + this.$element.transformOrigin('center right'); + break; + case 'right': + marginLeft = targetProps.width / 2 + targetMargin; + marginTop = -1 * (tooltipHeight / 2); + this.$element.transformOrigin('center left'); + break; + } + var targetOffset = this.$target.offset(); + this.$element.css({ + top: ((targetOffset.top + targetProps.height / 2) + "px"), + left: ((targetOffset.left + targetProps.width / 2) + "px"), + 'margin-left': (marginLeft + "px"), + 'margin-top': (marginTop + "px"), + }); + }; + /** + * 触发组件事件 + * @param name + */ + Tooltip.prototype.triggerEvent = function triggerEvent (name) { + componentEvent(name, 'tooltip', this.$target, this); + }; + /** + * 动画结束回调 + */ + Tooltip.prototype.transitionEnd = function transitionEnd () { + if (this.$element.hasClass('mdui-tooltip-open')) { + this.state = 'opened'; + this.triggerEvent('opened'); + } + else { + this.state = 'closed'; + this.triggerEvent('closed'); + } + }; + /** + * 当前 tooltip 是否为打开状态 + */ + Tooltip.prototype.isOpen = function isOpen () { + return this.state === 'opening' || this.state === 'opened'; + }; + /** + * 执行打开 tooltip + */ + Tooltip.prototype.doOpen = function doOpen () { + var this$1 = this; + + this.state = 'opening'; + this.triggerEvent('open'); + this.$element + .addClass('mdui-tooltip-open') + .transitionEnd(function () { return this$1.transitionEnd(); }); + }; + /** + * 打开 Tooltip + * @param options 允许每次打开时设置不同的参数 + */ + Tooltip.prototype.open = function open (options) { + var this$1 = this; + + if (this.isOpen()) { + return; + } + var oldOptions = extend({}, this.options); + if (options) { + extend(this.options, options); + } + // tooltip 的内容有更新 + if (oldOptions.content !== this.options.content) { + this.$element.html(this.options.content); + } + this.setPosition(); + if (this.options.delay) { + this.timeoutId = setTimeout(function () { return this$1.doOpen(); }, this.options.delay); + } + else { + this.timeoutId = null; + this.doOpen(); + } + }; + /** + * 关闭 Tooltip + */ + Tooltip.prototype.close = function close () { + var this$1 = this; + + if (this.timeoutId) { + clearTimeout(this.timeoutId); + this.timeoutId = null; + } + if (!this.isOpen()) { + return; + } + this.state = 'closing'; + this.triggerEvent('close'); + this.$element + .removeClass('mdui-tooltip-open') + .transitionEnd(function () { return this$1.transitionEnd(); }); + }; + /** + * 切换 Tooltip 的打开状态 + */ + Tooltip.prototype.toggle = function toggle () { + this.isOpen() ? this.close() : this.open(); + }; + /** + * 获取 Tooltip 状态。共包含四种状态:`opening`、`opened`、`closing`、`closed` + */ + Tooltip.prototype.getState = function getState () { + return this.state; + }; + mdui.Tooltip = Tooltip; + + var customAttr$8 = 'mdui-tooltip'; + var dataName$2 = '_mdui_tooltip'; + $(function () { + // mouseenter 不能冒泡,所以这里用 mouseover 代替 + $document.on('touchstart mouseover', ("[" + customAttr$8 + "]"), function () { + var $target = $(this); + var instance = $target.data(dataName$2); + if (!instance) { + instance = new mdui.Tooltip(this, parseOptions(this, customAttr$8)); + $target.data(dataName$2, instance); + } + }); + }); + + var DEFAULT_OPTIONS$c = { + message: '', + timeout: 4000, + position: 'bottom', + buttonText: '', + buttonColor: '', + closeOnButtonClick: true, + closeOnOutsideClick: true, + // eslint-disable-next-line @typescript-eslint/no-empty-function + onClick: function () { }, + // eslint-disable-next-line @typescript-eslint/no-empty-function + onButtonClick: function () { }, + // eslint-disable-next-line @typescript-eslint/no-empty-function + onOpen: function () { }, + // eslint-disable-next-line @typescript-eslint/no-empty-function + onOpened: function () { }, + // eslint-disable-next-line @typescript-eslint/no-empty-function + onClose: function () { }, + // eslint-disable-next-line @typescript-eslint/no-empty-function + onClosed: function () { }, + }; + /** + * 当前打开着的 Snackbar + */ + var currentInst$1 = null; + /** + * 队列名 + */ + var queueName$1 = '_mdui_snackbar'; + var Snackbar = function Snackbar(options) { + /** + * 配置参数 + */ + this.options = extend({}, DEFAULT_OPTIONS$c); + /** + * 当前 Snackbar 的状态 + */ + this.state = 'closed'; + /** + * setTimeout 的 ID + */ + this.timeoutId = null; + extend(this.options, options); + // 按钮颜色 + var buttonColorStyle = ''; + var buttonColorClass = ''; + if (this.options.buttonColor.indexOf('#') === 0 || + this.options.buttonColor.indexOf('rgb') === 0) { + buttonColorStyle = "style=\"color:" + (this.options.buttonColor) + "\""; + } + else if (this.options.buttonColor !== '') { + buttonColorClass = "mdui-text-color-" + (this.options.buttonColor); + } + // 添加 HTML + this.$element = $('
' + + "
" + (this.options.message) + "
" + + (this.options.buttonText + ? ("" + (this.options.buttonText) + "") + : '') + + '
').appendTo(document.body); + // 设置位置 + this.setPosition('close'); + this.$element.reflow().addClass(("mdui-snackbar-" + (this.options.position))); + }; + /** + * 点击 Snackbar 外面的区域关闭 + * @param event + */ + Snackbar.prototype.closeOnOutsideClick = function closeOnOutsideClick (event) { + var $target = $(event.target); + if (!$target.hasClass('mdui-snackbar') && + !$target.parents('.mdui-snackbar').length) { + currentInst$1.close(); + } + }; + /** + * 设置 Snackbar 的位置 + * @param state + */ + Snackbar.prototype.setPosition = function setPosition (state) { + var snackbarHeight = this.$element[0].clientHeight; + var position = this.options.position; + var translateX; + var translateY; + // translateX + if (position === 'bottom' || position === 'top') { + translateX = '-50%'; + } + else { + translateX = '0'; + } + // translateY + if (state === 'open') { + translateY = '0'; + } + else { + if (position === 'bottom') { + translateY = snackbarHeight; + } + if (position === 'top') { + translateY = -snackbarHeight; + } + if (position === 'left-top' || position === 'right-top') { + translateY = -snackbarHeight - 24; + } + if (position === 'left-bottom' || position === 'right-bottom') { + translateY = snackbarHeight + 24; + } + } + this.$element.transform(("translate(" + translateX + "," + translateY + "px")); + }; + /** + * 打开 Snackbar + */ + Snackbar.prototype.open = function open () { + var this$1 = this; + + if (this.state === 'opening' || this.state === 'opened') { + return; + } + // 如果当前有正在显示的 Snackbar,则先加入队列,等旧 Snackbar 关闭后再打开 + if (currentInst$1) { + queue(queueName$1, function () { return this$1.open(); }); + return; + } + currentInst$1 = this; + // 开始打开 + this.state = 'opening'; + this.options.onOpen(this); + this.setPosition('open'); + this.$element.transitionEnd(function () { + if (this$1.state !== 'opening') { + return; + } + this$1.state = 'opened'; + this$1.options.onOpened(this$1); + // 有按钮时绑定事件 + if (this$1.options.buttonText) { + this$1.$element.find('.mdui-snackbar-action').on('click', function () { + this$1.options.onButtonClick(this$1); + if (this$1.options.closeOnButtonClick) { + this$1.close(); + } + }); + } + // 点击 snackbar 的事件 + this$1.$element.on('click', function (event) { + if (!$(event.target).hasClass('mdui-snackbar-action')) { + this$1.options.onClick(this$1); + } + }); + // 点击 Snackbar 外面的区域关闭 + if (this$1.options.closeOnOutsideClick) { + $document.on(startEvent, this$1.closeOnOutsideClick); + } + // 超时后自动关闭 + if (this$1.options.timeout) { + this$1.timeoutId = setTimeout(function () { return this$1.close(); }, this$1.options.timeout); + } + }); + }; + /** + * 关闭 Snackbar + */ + Snackbar.prototype.close = function close () { + var this$1 = this; + + if (this.state === 'closing' || this.state === 'closed') { + return; + } + if (this.timeoutId) { + clearTimeout(this.timeoutId); + } + if (this.options.closeOnOutsideClick) { + $document.off(startEvent, this.closeOnOutsideClick); + } + this.state = 'closing'; + this.options.onClose(this); + this.setPosition('close'); + this.$element.transitionEnd(function () { + if (this$1.state !== 'closing') { + return; + } + currentInst$1 = null; + this$1.state = 'closed'; + this$1.options.onClosed(this$1); + this$1.$element.remove(); + dequeue(queueName$1); + }); + }; + mdui.snackbar = function (message, options) { + if ( options === void 0 ) options = {}; + + if (isString(message)) { + options.message = message; + } + else { + options = message; + } + var instance = new Snackbar(options); + instance.open(); + return instance; + }; + + $(function () { + // 切换导航项 + $document.on('click', '.mdui-bottom-nav>a', function () { + var $item = $(this); + var $bottomNav = $item.parent(); + $bottomNav.children('a').each(function (index, item) { + var isThis = $item.is(item); + if (isThis) { + componentEvent('change', 'bottomNav', $bottomNav[0], undefined, { + index: index, + }); + } + isThis + ? $(item).addClass('mdui-bottom-nav-active') + : $(item).removeClass('mdui-bottom-nav-active'); + }); + }); + // 滚动时隐藏 mdui-bottom-nav-scroll-hide + mdui.mutation('.mdui-bottom-nav-scroll-hide', function () { + new mdui.Headroom(this, { + pinnedClass: 'mdui-headroom-pinned-down', + unpinnedClass: 'mdui-headroom-unpinned-down', + }); + }); + }); + + /** + * layer 的 HTML 结构 + * @param index + */ + function layerHTML(index) { + if ( index === void 0 ) index = false; + + return ("
" + + '
' + + '
' + + '
' + + '
' + + '
' + + '
' + + '
' + + '
' + + '
' + + '
'); + } + /** + * 填充 HTML + * @param spinner + */ + function fillHTML(spinner) { + var $spinner = $(spinner); + var layer = $spinner.hasClass('mdui-spinner-colorful') + ? layerHTML(1) + layerHTML(2) + layerHTML(3) + layerHTML(4) + : layerHTML(); + $spinner.html(layer); + } + $(function () { + // 页面加载完后自动填充 HTML 结构 + mdui.mutation('.mdui-spinner', function () { + fillHTML(this); + }); + }); + mdui.updateSpinners = function (selector) { + var $elements = isUndefined(selector) ? $('.mdui-spinner') : $(selector); + $elements.each(function () { + fillHTML(this); + }); + }; + + var DEFAULT_OPTIONS$d = { + position: 'auto', + align: 'auto', + gutter: 16, + fixed: false, + covered: 'auto', + subMenuTrigger: 'hover', + subMenuDelay: 200, + }; + var Menu = function Menu(anchorSelector, menuSelector, options) { + var this$1 = this; + if ( options === void 0 ) options = {}; + + /** + * 配置参数 + */ + this.options = extend({}, DEFAULT_OPTIONS$d); + /** + * 当前菜单状态 + */ + this.state = 'closed'; + this.$anchor = $(anchorSelector).first(); + this.$element = $(menuSelector).first(); + // 触发菜单的元素 和 菜单必须是同级的元素,否则菜单可能不能定位 + if (!this.$anchor.parent().is(this.$element.parent())) { + throw new Error('anchorSelector and menuSelector must be siblings'); + } + extend(this.options, options); + // 是否是级联菜单 + this.isCascade = this.$element.hasClass('mdui-menu-cascade'); + // covered 参数处理 + this.isCovered = + this.options.covered === 'auto' ? !this.isCascade : this.options.covered; + // 点击触发菜单切换 + this.$anchor.on('click', function () { return this$1.toggle(); }); + // 点击菜单外面区域关闭菜单 + $document.on('click touchstart', function (event) { + var $target = $(event.target); + if (this$1.isOpen() && + !$target.is(this$1.$element) && + !contains(this$1.$element[0], $target[0]) && + !$target.is(this$1.$anchor) && + !contains(this$1.$anchor[0], $target[0])) { + this$1.close(); + } + }); + // 点击不含子菜单的菜单条目关闭菜单 + // eslint-disable-next-line @typescript-eslint/no-this-alias + var that = this; + $document.on('click', '.mdui-menu-item', function () { + var $item = $(this); + if (!$item.find('.mdui-menu').length && + $item.attr('disabled') === undefined) { + that.close(); + } + }); + // 绑定点击或鼠标移入含子菜单的条目的事件 + this.bindSubMenuEvent(); + // 窗口大小变化时,重新调整菜单位置 + $window.on('resize', $.throttle(function () { return this$1.readjust(); }, 100)); + }; + /** + * 是否为打开状态 + */ + Menu.prototype.isOpen = function isOpen () { + return this.state === 'opening' || this.state === 'opened'; + }; + /** + * 触发组件事件 + * @param name + */ + Menu.prototype.triggerEvent = function triggerEvent (name) { + componentEvent(name, 'menu', this.$element, this); + }; + /** + * 调整主菜单位置 + */ + Menu.prototype.readjust = function readjust () { + var menuLeft; + var menuTop; + // 菜单位置和方向 + var position; + var align; + // window 窗口的宽度和高度 + var windowHeight = $window.height(); + var windowWidth = $window.width(); + // 配置参数 + var gutter = this.options.gutter; + var isCovered = this.isCovered; + var isFixed = this.options.fixed; + // 动画方向参数 + var transformOriginX; + var transformOriginY; + // 菜单的原始宽度和高度 + var menuWidth = this.$element.width(); + var menuHeight = this.$element.height(); + // 触发菜单的元素在窗口中的位置 + var anchorRect = this.$anchor[0].getBoundingClientRect(); + var anchorTop = anchorRect.top; + var anchorLeft = anchorRect.left; + var anchorHeight = anchorRect.height; + var anchorWidth = anchorRect.width; + var anchorBottom = windowHeight - anchorTop - anchorHeight; + var anchorRight = windowWidth - anchorLeft - anchorWidth; + // 触发元素相对其拥有定位属性的父元素的位置 + var anchorOffsetTop = this.$anchor[0].offsetTop; + var anchorOffsetLeft = this.$anchor[0].offsetLeft; + // 自动判断菜单位置 + if (this.options.position === 'auto') { + if (anchorBottom + (isCovered ? anchorHeight : 0) > menuHeight + gutter) { + // 判断下方是否放得下菜单 + position = 'bottom'; + } + else if (anchorTop + (isCovered ? anchorHeight : 0) > + menuHeight + gutter) { + // 判断上方是否放得下菜单 + position = 'top'; + } + else { + // 上下都放不下,居中显示 + position = 'center'; + } + } + else { + position = this.options.position; + } + // 自动判断菜单对齐方式 + if (this.options.align === 'auto') { + if (anchorRight + anchorWidth > menuWidth + gutter) { + // 判断右侧是否放得下菜单 + align = 'left'; + } + else if (anchorLeft + anchorWidth > menuWidth + gutter) { + // 判断左侧是否放得下菜单 + align = 'right'; + } + else { + // 左右都放不下,居中显示 + align = 'center'; + } + } + else { + align = this.options.align; + } + // 设置菜单位置 + if (position === 'bottom') { + transformOriginY = '0'; + menuTop = + (isCovered ? 0 : anchorHeight) + + (isFixed ? anchorTop : anchorOffsetTop); + } + else if (position === 'top') { + transformOriginY = '100%'; + menuTop = + (isCovered ? anchorHeight : 0) + + (isFixed ? anchorTop - menuHeight : anchorOffsetTop - menuHeight); + } + else { + transformOriginY = '50%'; + // =====================在窗口中居中 + // 显示的菜单的高度,简单菜单高度不超过窗口高度,若超过了则在菜单内部显示滚动条 + // 级联菜单内部不允许出现滚动条 + var menuHeightTemp = menuHeight; + // 简单菜单比窗口高时,限制菜单高度 + if (!this.isCascade) { + if (menuHeight + gutter * 2 > windowHeight) { + menuHeightTemp = windowHeight - gutter * 2; + this.$element.height(menuHeightTemp); + } + } + menuTop = + (windowHeight - menuHeightTemp) / 2 + + (isFixed ? 0 : anchorOffsetTop - anchorTop); + } + this.$element.css('top', (menuTop + "px")); + // 设置菜单对齐方式 + if (align === 'left') { + transformOriginX = '0'; + menuLeft = isFixed ? anchorLeft : anchorOffsetLeft; + } + else if (align === 'right') { + transformOriginX = '100%'; + menuLeft = isFixed + ? anchorLeft + anchorWidth - menuWidth + : anchorOffsetLeft + anchorWidth - menuWidth; + } + else { + transformOriginX = '50%'; + //=======================在窗口中居中 + // 显示的菜单的宽度,菜单宽度不能超过窗口宽度 + var menuWidthTemp = menuWidth; + // 菜单比窗口宽,限制菜单宽度 + if (menuWidth + gutter * 2 > windowWidth) { + menuWidthTemp = windowWidth - gutter * 2; + this.$element.width(menuWidthTemp); + } + menuLeft = + (windowWidth - menuWidthTemp) / 2 + + (isFixed ? 0 : anchorOffsetLeft - anchorLeft); + } + this.$element.css('left', (menuLeft + "px")); + // 设置菜单动画方向 + this.$element.transformOrigin((transformOriginX + " " + transformOriginY)); + }; + /** + * 调整子菜单的位置 + * @param $submenu + */ + Menu.prototype.readjustSubmenu = function readjustSubmenu ($submenu) { + var $item = $submenu.parent('.mdui-menu-item'); + var submenuTop; + var submenuLeft; + // 子菜单位置和方向 + var position; + var align; + // window 窗口的宽度和高度 + var windowHeight = $window.height(); + var windowWidth = $window.width(); + // 动画方向参数 + var transformOriginX; + var transformOriginY; + // 子菜单的原始宽度和高度 + var submenuWidth = $submenu.width(); + var submenuHeight = $submenu.height(); + // 触发子菜单的菜单项的宽度高度 + var itemRect = $item[0].getBoundingClientRect(); + var itemWidth = itemRect.width; + var itemHeight = itemRect.height; + var itemLeft = itemRect.left; + var itemTop = itemRect.top; + // 判断菜单上下位置 + if (windowHeight - itemTop > submenuHeight) { + // 判断下方是否放得下菜单 + position = 'bottom'; + } + else if (itemTop + itemHeight > submenuHeight) { + // 判断上方是否放得下菜单 + position = 'top'; + } + else { + // 默认放在下方 + position = 'bottom'; + } + // 判断菜单左右位置 + if (windowWidth - itemLeft - itemWidth > submenuWidth) { + // 判断右侧是否放得下菜单 + align = 'left'; + } + else if (itemLeft > submenuWidth) { + // 判断左侧是否放得下菜单 + align = 'right'; + } + else { + // 默认放在右侧 + align = 'left'; + } + // 设置菜单位置 + if (position === 'bottom') { + transformOriginY = '0'; + submenuTop = '0'; + } + else if (position === 'top') { + transformOriginY = '100%'; + submenuTop = -submenuHeight + itemHeight; + } + $submenu.css('top', (submenuTop + "px")); + // 设置菜单对齐方式 + if (align === 'left') { + transformOriginX = '0'; + submenuLeft = itemWidth; + } + else if (align === 'right') { + transformOriginX = '100%'; + submenuLeft = -submenuWidth; + } + $submenu.css('left', (submenuLeft + "px")); + // 设置菜单动画方向 + $submenu.transformOrigin((transformOriginX + " " + transformOriginY)); + }; + /** + * 打开子菜单 + * @param $submenu + */ + Menu.prototype.openSubMenu = function openSubMenu ($submenu) { + this.readjustSubmenu($submenu); + $submenu + .addClass('mdui-menu-open') + .parent('.mdui-menu-item') + .addClass('mdui-menu-item-active'); + }; + /** + * 关闭子菜单,及其嵌套的子菜单 + * @param $submenu + */ + Menu.prototype.closeSubMenu = function closeSubMenu ($submenu) { + // 关闭子菜单 + $submenu + .removeClass('mdui-menu-open') + .addClass('mdui-menu-closing') + .transitionEnd(function () { return $submenu.removeClass('mdui-menu-closing'); }) + // 移除激活状态的样式 + .parent('.mdui-menu-item') + .removeClass('mdui-menu-item-active'); + // 循环关闭嵌套的子菜单 + $submenu.find('.mdui-menu').each(function (_, menu) { + var $subSubmenu = $(menu); + $subSubmenu + .removeClass('mdui-menu-open') + .addClass('mdui-menu-closing') + .transitionEnd(function () { return $subSubmenu.removeClass('mdui-menu-closing'); }) + .parent('.mdui-menu-item') + .removeClass('mdui-menu-item-active'); + }); + }; + /** + * 切换子菜单状态 + * @param $submenu + */ + Menu.prototype.toggleSubMenu = function toggleSubMenu ($submenu) { + $submenu.hasClass('mdui-menu-open') + ? this.closeSubMenu($submenu) + : this.openSubMenu($submenu); + }; + /** + * 绑定子菜单事件 + */ + Menu.prototype.bindSubMenuEvent = function bindSubMenuEvent () { + // eslint-disable-next-line @typescript-eslint/no-this-alias + var that = this; + // 点击打开子菜单 + this.$element.on('click', '.mdui-menu-item', function (event) { + var $item = $(this); + var $target = $(event.target); + // 禁用状态菜单不操作 + if ($item.attr('disabled') !== undefined) { + return; + } + // 没有点击在子菜单的菜单项上时,不操作(点在了子菜单的空白区域、或分隔线上) + if ($target.is('.mdui-menu') || $target.is('.mdui-divider')) { + return; + } + // 阻止冒泡,点击菜单项时只在最后一级的 mdui-menu-item 上生效,不向上冒泡 + if (!$target.parents('.mdui-menu-item').first().is($item)) { + return; + } + // 当前菜单的子菜单 + var $submenu = $item.children('.mdui-menu'); + // 先关闭除当前子菜单外的所有同级子菜单 + $item + .parent('.mdui-menu') + .children('.mdui-menu-item') + .each(function (_, item) { + var $tmpSubmenu = $(item).children('.mdui-menu'); + if ($tmpSubmenu.length && + (!$submenu.length || !$tmpSubmenu.is($submenu))) { + that.closeSubMenu($tmpSubmenu); + } + }); + // 切换当前子菜单 + if ($submenu.length) { + that.toggleSubMenu($submenu); + } + }); + if (this.options.subMenuTrigger === 'hover') { + // 临时存储 setTimeout 对象 + var timeout = null; + var timeoutOpen = null; + this.$element.on('mouseover mouseout', '.mdui-menu-item', function (event) { + var $item = $(this); + var eventType = event.type; + var $relatedTarget = $(event.relatedTarget); + // 禁用状态的菜单不操作 + if ($item.attr('disabled') !== undefined) { + return; + } + // 用 mouseover 模拟 mouseenter + if (eventType === 'mouseover') { + if (!$item.is($relatedTarget) && + contains($item[0], $relatedTarget[0])) { + return; + } + } + // 用 mouseout 模拟 mouseleave + else if (eventType === 'mouseout') { + if ($item.is($relatedTarget) || + contains($item[0], $relatedTarget[0])) { + return; + } + } + // 当前菜单项下的子菜单,未必存在 + var $submenu = $item.children('.mdui-menu'); + // 鼠标移入菜单项时,显示菜单项下的子菜单 + if (eventType === 'mouseover') { + if ($submenu.length) { + // 当前子菜单准备打开时,如果当前子菜单正准备着关闭,不用再关闭了 + var tmpClose = $submenu.data('timeoutClose.mdui.menu'); + if (tmpClose) { + clearTimeout(tmpClose); + } + // 如果当前子菜单已经打开,不操作 + if ($submenu.hasClass('mdui-menu-open')) { + return; + } + // 当前子菜单准备打开时,其他准备打开的子菜单不用再打开了 + clearTimeout(timeoutOpen); + // 准备打开当前子菜单 + timeout = timeoutOpen = setTimeout(function () { return that.openSubMenu($submenu); }, that.options.subMenuDelay); + $submenu.data('timeoutOpen.mdui.menu', timeout); + } + } + // 鼠标移出菜单项时,关闭菜单项下的子菜单 + else if (eventType === 'mouseout') { + if ($submenu.length) { + // 鼠标移出菜单项时,如果当前菜单项下的子菜单正准备打开,不用再打开了 + var tmpOpen = $submenu.data('timeoutOpen.mdui.menu'); + if (tmpOpen) { + clearTimeout(tmpOpen); + } + // 准备关闭当前子菜单 + timeout = setTimeout(function () { return that.closeSubMenu($submenu); }, that.options.subMenuDelay); + $submenu.data('timeoutClose.mdui.menu', timeout); + } + } + }); + } + }; + /** + * 动画结束回调 + */ + Menu.prototype.transitionEnd = function transitionEnd () { + this.$element.removeClass('mdui-menu-closing'); + if (this.state === 'opening') { + this.state = 'opened'; + this.triggerEvent('opened'); + } + if (this.state === 'closing') { + this.state = 'closed'; + this.triggerEvent('closed'); + // 关闭后,恢复菜单样式到默认状态,并恢复 fixed 定位 + this.$element.css({ + top: '', + left: '', + width: '', + position: 'fixed', + }); + } + }; + /** + * 切换菜单状态 + */ + Menu.prototype.toggle = function toggle () { + this.isOpen() ? this.close() : this.open(); + }; + /** + * 打开菜单 + */ + Menu.prototype.open = function open () { + var this$1 = this; + + if (this.isOpen()) { + return; + } + this.state = 'opening'; + this.triggerEvent('open'); + this.readjust(); + this.$element + // 菜单隐藏状态使用使用 fixed 定位。 + .css('position', this.options.fixed ? 'fixed' : 'absolute') + .addClass('mdui-menu-open') + .transitionEnd(function () { return this$1.transitionEnd(); }); + }; + /** + * 关闭菜单 + */ + Menu.prototype.close = function close () { + var this$1 = this; + + if (!this.isOpen()) { + return; + } + this.state = 'closing'; + this.triggerEvent('close'); + // 菜单开始关闭时,关闭所有子菜单 + this.$element.find('.mdui-menu').each(function (_, submenu) { + this$1.closeSubMenu($(submenu)); + }); + this.$element + .removeClass('mdui-menu-open') + .addClass('mdui-menu-closing') + .transitionEnd(function () { return this$1.transitionEnd(); }); + }; + mdui.Menu = Menu; + + var customAttr$9 = 'mdui-menu'; + var dataName$3 = '_mdui_menu'; + $(function () { + $document.on('click', ("[" + customAttr$9 + "]"), function () { + var $this = $(this); + var instance = $this.data(dataName$3); + if (!instance) { + var options = parseOptions(this, customAttr$9); + var menuSelector = options.target; + // @ts-ignore + delete options.target; + instance = new mdui.Menu($this, menuSelector, options); + $this.data(dataName$3, instance); + instance.toggle(); + } + }); + }); + + return mdui; + +}))); +//# sourceMappingURL=mdui.js.map diff --git a/sdk/CBaseEntity.h b/sdk/CBaseEntity.h index 9077290..32fa897 100644 --- a/sdk/CBaseEntity.h +++ b/sdk/CBaseEntity.h @@ -20,7 +20,7 @@ inline CEntityInstance* UTIL_FindEntityByClassname(CEntityInstance* pStart, cons class SC_CBaseEntity : public CBaseEntity { -public: +public: SCHEMA_FIELD(int32_t, CBaseEntity, m_iHealth); SCHEMA_FIELD(int32_t, CBaseEntity, m_iMaxHealth); SCHEMA_FIELD(LifeState_t, CBaseEntity, m_lifeState); diff --git a/sdk/CPlayer_ItemServices.h b/sdk/CPlayer_ItemServices.h index 20479fb..81b63ae 100644 --- a/sdk/CPlayer_ItemServices.h +++ b/sdk/CPlayer_ItemServices.h @@ -26,6 +26,7 @@ public: class CEconItemView { public: + SCHEMA_FIELD(int32_t, CEconItemView, m_iEntityQuality); SCHEMA_FIELD(CAttributeList, CEconItemView, m_AttributeList); SCHEMA_FIELD(int32_t, CEconItemView, m_iItemIDHigh); SCHEMA_FIELD(int32_t, CEconItemView, m_iAccountID); @@ -38,9 +39,36 @@ public: SCHEMA_FIELD(CEconItemView, CAttributeContainer, m_Item); }; +class CModelState +{ +public: + SCHEMA_FIELD(uint64_t, CModelState, m_MeshGroupMask); +}; + +class CSkeletonInstance +{ +public: + SCHEMA_FIELD(CModelState, CSkeletonInstance, m_modelState); +}; + +class CGameSceneNode +{ +public: + CSkeletonInstance* GetSkeletonInstance() { + return CALL_VIRTUAL(CSkeletonInstance*, 8, this); + } +}; + +class CBodyComponent +{ +public: + SCHEMA_FIELD(CGameSceneNode*, CBodyComponent, m_pSceneNode); +}; + class CBasePlayerWeapon : public CEconEntity { public: + SCHEMA_FIELD(CBodyComponent*, CBaseEntity, m_CBodyComponent); SCHEMA_FIELD(CAttributeContainer, CEconEntity, m_AttributeManager); SCHEMA_FIELD(int32_t, CEconEntity, m_nFallbackPaintKit); SCHEMA_FIELD(int32_t, CEconEntity, m_nFallbackSeed); diff --git a/steamid.py b/steamid.py deleted file mode 100644 index dd5ec5e..0000000 --- a/steamid.py +++ /dev/null @@ -1,224 +0,0 @@ -import re -import math - -# Define some regex stuff -STEAM_ID_REGEX = "^STEAM_" -STEAM_ID_3_REGEX = "^\[.*\]$" - -# steamID64 are all offset from this value -ID64_BASE = 76561197960265728 - -def convert_steamID(steamID, target_format:str, as_int=False): - """ - Wrapper for conversion methods to allow you to call different conversions via the same function - - Parameters - ---------- - steamID : int or str - steamID of any format to convert - - target_format : str - Format to convert steamId to - Possible values are: SteamID, SteamID3, SteamID64 - - as_int : bool - If a SteamId64 is returned as an int or a string - Only used when target_format = SteamId64 - Default = False - - - Returns - ------- - int or str - steamID value - - """ - - if target_format == 'SteamID': - return to_steamID(steamID) - - elif target_format == 'SteamID3': - return to_steamID3(steamID) - - elif target_format == 'SteamID64': - return to_steamID64(steamID, as_int) - - else: - raise ValueError("Incorrect target Steam ID format. Target_format must be one of: SteamID, SteamID3, SteamID64") - -def to_steamID(steamID): - """ - Convert to steamID - - A steamID is unique to each steam account, - Formatted with digits as x "STEAM_0:x:xxxxxxxx" - - Parameters - ---------- - steamID : int or str - steamID3 or steamID64 to convert to steamID - - Returns - ------- - str - steamID value - - """ - - id_str = str(steamID) - - if re.search(STEAM_ID_REGEX, id_str): # Already a steamID - return id_str - - elif re.search(STEAM_ID_3_REGEX, id_str): # If passed steamID3 - - id_split = id_str.split(":") # Split string into 'Universe', Account type, and Account number - account_id3 = int(id_split[2][:-1]) # Remove ] from end of steamID3 - - account_type = account_id3 % 2 - - account_id = (account_id3 - account_type) // 2 - - elif id_str.isnumeric(): # Passed steamID64 - - check_steamID64_length(id_str) # Validate id passed in - - offset_id = int(id_str) - ID64_BASE - - # Get the account type and id - account_type = offset_id % 2 - - account_id = ((offset_id - account_type) // 2) - - return "STEAM_0:" + str(account_type) + ":" + str(account_id) - -def to_steamID3(steamID): - """ - Convert to steamID3 - - A steamID3 is unique to each steam account, - Formatted with digits as x "[U:1:xxxxxxxx]" - - Parameters - ---------- - steamID : int or str - steamID or steamID64 to convert to steamID3 - - Returns - ------- - str - steamID3 value - - """ - - id_str = str(steamID) - - if re.search(STEAM_ID_3_REGEX, id_str): # Already a steamID3 - return id_str - - elif re.search(STEAM_ID_REGEX, id_str): # If passed steamID - - id_split = id_str.split(":") # Split string into 'Universe', Account type, and Account number - - account_type = int(id_split[1]) # Check for account type - account_id = int(id_split[2]) # Account number, needs to be doubled when added to id3 - - # Join together in steamID3 format - return "[U:1:" + str(((account_id + account_type) * 2) - account_type) + "]" - - elif id_str.isnumeric(): # Passed steamID64 - - check_steamID64_length(id_str) # Validate id passed in - - offset_id = int(id_str) - ID64_BASE - - # Get the account type and id - account_type = offset_id % 2 - - account_id = ((offset_id - account_type) // 2) + account_type - - # Join together in steamID3 format - return "[U:1:" + str((account_id * 2) - account_type) + "]" - - else: - raise ValueError(f"Unable to decode steamID: {steamID}") - - -def to_steamID64(steamID, as_int = False): - """ - Convert to steamID64 - - A steamID64 is a 17 digit number, unique to each steam account - - Parameters - ---------- - steamID : int or str - steamID or steamID3 to convert to steamID64 - as_int : bool - If the steamID64 is returned as an integer rather than string, Default = False - - Returns - ------- - int or str - steamID64 value - - """ - - id_str = str(steamID) - id_split = id_str.split(":") # Split string into 'Universe', Account type, and Account number - - if id_str.isnumeric(): # Already a steamID64 - - check_steamID64_length(id_str) # Validate id passed in - if as_int: - return int(id_str) - else: - return id_str - - elif re.search(STEAM_ID_REGEX, id_str): # If passed steamID - - account_type = int(id_split[1]) # Check for account type - account_id = int(id_split[2]) # Account number, needs to be doubled when added to id64 - - elif re.search(STEAM_ID_3_REGEX, id_str): # If passed steamID3 - - account_id3 = int(id_split[2][:-1]) # Remove ] from end of steamID3 - - account_type = account_id3 % 2 - - account_id = (account_id3 - account_type) // 2 - print(account_id3) - print(account_type) - print(account_id) - - else: - raise ValueError(f"Unable to decode steamID: {steamID}") - - - id64 = ID64_BASE + (account_id * 2) + account_type - - # Check if returning as string or integer - if as_int: - return id64 - else: - return str(id64) - - -def check_steamID64_length(id_str :str): - """ - Check if a steamID64 is of the correct length, raises ValueError if not. - - Not really for you to use - - Parameters - ---------- - id_str : str - steamID64 to check length of - - """ - - if len(id_str) != 17: - raise ValueError(f"Incorrect length for steamID64: {id_str}") - - -print(to_steamID64('[U:1:271098320]')) diff --git a/vue.global.js b/vue.global.js new file mode 100644 index 0000000..3f7b774 --- /dev/null +++ b/vue.global.js @@ -0,0 +1,15429 @@ +var Vue = (function (exports) { + 'use strict'; + + function makeMap(str, expectsLowerCase) { + const map = /* @__PURE__ */ Object.create(null); + const list = str.split(","); + for (let i = 0; i < list.length; i++) { + map[list[i]] = true; + } + return expectsLowerCase ? (val) => !!map[val.toLowerCase()] : (val) => !!map[val]; + } + + const EMPTY_OBJ = Object.freeze({}) ; + const EMPTY_ARR = Object.freeze([]) ; + const NOOP = () => { + }; + const NO = () => false; + const onRE = /^on[^a-z]/; + const isOn = (key) => onRE.test(key); + const isModelListener = (key) => key.startsWith("onUpdate:"); + const extend = Object.assign; + const remove = (arr, el) => { + const i = arr.indexOf(el); + if (i > -1) { + arr.splice(i, 1); + } + }; + const hasOwnProperty$1 = Object.prototype.hasOwnProperty; + const hasOwn = (val, key) => hasOwnProperty$1.call(val, key); + const isArray = Array.isArray; + const isMap = (val) => toTypeString(val) === "[object Map]"; + const isSet = (val) => toTypeString(val) === "[object Set]"; + const isDate = (val) => toTypeString(val) === "[object Date]"; + const isRegExp = (val) => toTypeString(val) === "[object RegExp]"; + const isFunction = (val) => typeof val === "function"; + const isString = (val) => typeof val === "string"; + const isSymbol = (val) => typeof val === "symbol"; + const isObject = (val) => val !== null && typeof val === "object"; + const isPromise = (val) => { + return (isObject(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch); + }; + const objectToString = Object.prototype.toString; + const toTypeString = (value) => objectToString.call(value); + const toRawType = (value) => { + return toTypeString(value).slice(8, -1); + }; + const isPlainObject = (val) => toTypeString(val) === "[object Object]"; + const isIntegerKey = (key) => isString(key) && key !== "NaN" && key[0] !== "-" && "" + parseInt(key, 10) === key; + const isReservedProp = /* @__PURE__ */ makeMap( + // the leading comma is intentional so empty string "" is also included + ",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted" + ); + const isBuiltInDirective = /* @__PURE__ */ makeMap( + "bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo" + ); + const cacheStringFunction = (fn) => { + const cache = /* @__PURE__ */ Object.create(null); + return (str) => { + const hit = cache[str]; + return hit || (cache[str] = fn(str)); + }; + }; + const camelizeRE = /-(\w)/g; + const camelize = cacheStringFunction((str) => { + return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : ""); + }); + const hyphenateRE = /\B([A-Z])/g; + const hyphenate = cacheStringFunction( + (str) => str.replace(hyphenateRE, "-$1").toLowerCase() + ); + const capitalize = cacheStringFunction((str) => { + return str.charAt(0).toUpperCase() + str.slice(1); + }); + const toHandlerKey = cacheStringFunction((str) => { + const s = str ? `on${capitalize(str)}` : ``; + return s; + }); + const hasChanged = (value, oldValue) => !Object.is(value, oldValue); + const invokeArrayFns = (fns, arg) => { + for (let i = 0; i < fns.length; i++) { + fns[i](arg); + } + }; + const def = (obj, key, value) => { + Object.defineProperty(obj, key, { + configurable: true, + enumerable: false, + value + }); + }; + const looseToNumber = (val) => { + const n = parseFloat(val); + return isNaN(n) ? val : n; + }; + const toNumber = (val) => { + const n = isString(val) ? Number(val) : NaN; + return isNaN(n) ? val : n; + }; + let _globalThis; + const getGlobalThis = () => { + return _globalThis || (_globalThis = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : {}); + }; + + const PatchFlagNames = { + [1]: `TEXT`, + [2]: `CLASS`, + [4]: `STYLE`, + [8]: `PROPS`, + [16]: `FULL_PROPS`, + [32]: `HYDRATE_EVENTS`, + [64]: `STABLE_FRAGMENT`, + [128]: `KEYED_FRAGMENT`, + [256]: `UNKEYED_FRAGMENT`, + [512]: `NEED_PATCH`, + [1024]: `DYNAMIC_SLOTS`, + [2048]: `DEV_ROOT_FRAGMENT`, + [-1]: `HOISTED`, + [-2]: `BAIL` + }; + + const slotFlagsText = { + [1]: "STABLE", + [2]: "DYNAMIC", + [3]: "FORWARDED" + }; + + const GLOBALS_ALLOWED = "Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console"; + const isGloballyAllowed = /* @__PURE__ */ makeMap(GLOBALS_ALLOWED); + + const range = 2; + function generateCodeFrame(source, start = 0, end = source.length) { + let lines = source.split(/(\r?\n)/); + const newlineSequences = lines.filter((_, idx) => idx % 2 === 1); + lines = lines.filter((_, idx) => idx % 2 === 0); + let count = 0; + const res = []; + for (let i = 0; i < lines.length; i++) { + count += lines[i].length + (newlineSequences[i] && newlineSequences[i].length || 0); + if (count >= start) { + for (let j = i - range; j <= i + range || end > count; j++) { + if (j < 0 || j >= lines.length) + continue; + const line = j + 1; + res.push( + `${line}${" ".repeat(Math.max(3 - String(line).length, 0))}| ${lines[j]}` + ); + const lineLength = lines[j].length; + const newLineSeqLength = newlineSequences[j] && newlineSequences[j].length || 0; + if (j === i) { + const pad = start - (count - (lineLength + newLineSeqLength)); + const length = Math.max( + 1, + end > count ? lineLength - pad : end - start + ); + res.push(` | ` + " ".repeat(pad) + "^".repeat(length)); + } else if (j > i) { + if (end > count) { + const length = Math.max(Math.min(end - count, lineLength), 1); + res.push(` | ` + "^".repeat(length)); + } + count += lineLength + newLineSeqLength; + } + } + break; + } + } + return res.join("\n"); + } + + function normalizeStyle(value) { + if (isArray(value)) { + const res = {}; + for (let i = 0; i < value.length; i++) { + const item = value[i]; + const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item); + if (normalized) { + for (const key in normalized) { + res[key] = normalized[key]; + } + } + } + return res; + } else if (isString(value) || isObject(value)) { + return value; + } + } + const listDelimiterRE = /;(?![^(]*\))/g; + const propertyDelimiterRE = /:([^]+)/; + const styleCommentRE = /\/\*[^]*?\*\//g; + function parseStringStyle(cssText) { + const ret = {}; + cssText.replace(styleCommentRE, "").split(listDelimiterRE).forEach((item) => { + if (item) { + const tmp = item.split(propertyDelimiterRE); + tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim()); + } + }); + return ret; + } + function normalizeClass(value) { + let res = ""; + if (isString(value)) { + res = value; + } else if (isArray(value)) { + for (let i = 0; i < value.length; i++) { + const normalized = normalizeClass(value[i]); + if (normalized) { + res += normalized + " "; + } + } + } else if (isObject(value)) { + for (const name in value) { + if (value[name]) { + res += name + " "; + } + } + } + return res.trim(); + } + function normalizeProps(props) { + if (!props) + return null; + let { class: klass, style } = props; + if (klass && !isString(klass)) { + props.class = normalizeClass(klass); + } + if (style) { + props.style = normalizeStyle(style); + } + return props; + } + + const HTML_TAGS = "html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot"; + const SVG_TAGS = "svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view"; + const VOID_TAGS = "area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr"; + const isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS); + const isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS); + const isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS); + + const specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`; + const isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs); + function includeBooleanAttr(value) { + return !!value || value === ""; + } + + function looseCompareArrays(a, b) { + if (a.length !== b.length) + return false; + let equal = true; + for (let i = 0; equal && i < a.length; i++) { + equal = looseEqual(a[i], b[i]); + } + return equal; + } + function looseEqual(a, b) { + if (a === b) + return true; + let aValidType = isDate(a); + let bValidType = isDate(b); + if (aValidType || bValidType) { + return aValidType && bValidType ? a.getTime() === b.getTime() : false; + } + aValidType = isSymbol(a); + bValidType = isSymbol(b); + if (aValidType || bValidType) { + return a === b; + } + aValidType = isArray(a); + bValidType = isArray(b); + if (aValidType || bValidType) { + return aValidType && bValidType ? looseCompareArrays(a, b) : false; + } + aValidType = isObject(a); + bValidType = isObject(b); + if (aValidType || bValidType) { + if (!aValidType || !bValidType) { + return false; + } + const aKeysCount = Object.keys(a).length; + const bKeysCount = Object.keys(b).length; + if (aKeysCount !== bKeysCount) { + return false; + } + for (const key in a) { + const aHasKey = a.hasOwnProperty(key); + const bHasKey = b.hasOwnProperty(key); + if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) { + return false; + } + } + } + return String(a) === String(b); + } + function looseIndexOf(arr, val) { + return arr.findIndex((item) => looseEqual(item, val)); + } + + const toDisplayString = (val) => { + return isString(val) ? val : val == null ? "" : isArray(val) || isObject(val) && (val.toString === objectToString || !isFunction(val.toString)) ? JSON.stringify(val, replacer, 2) : String(val); + }; + const replacer = (_key, val) => { + if (val && val.__v_isRef) { + return replacer(_key, val.value); + } else if (isMap(val)) { + return { + [`Map(${val.size})`]: [...val.entries()].reduce((entries, [key, val2]) => { + entries[`${key} =>`] = val2; + return entries; + }, {}) + }; + } else if (isSet(val)) { + return { + [`Set(${val.size})`]: [...val.values()] + }; + } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) { + return String(val); + } + return val; + }; + + function warn$1(msg, ...args) { + console.warn(`[Vue warn] ${msg}`, ...args); + } + + let activeEffectScope; + class EffectScope { + constructor(detached = false) { + this.detached = detached; + /** + * @internal + */ + this._active = true; + /** + * @internal + */ + this.effects = []; + /** + * @internal + */ + this.cleanups = []; + this.parent = activeEffectScope; + if (!detached && activeEffectScope) { + this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push( + this + ) - 1; + } + } + get active() { + return this._active; + } + run(fn) { + if (this._active) { + const currentEffectScope = activeEffectScope; + try { + activeEffectScope = this; + return fn(); + } finally { + activeEffectScope = currentEffectScope; + } + } else { + warn$1(`cannot run an inactive effect scope.`); + } + } + /** + * This should only be called on non-detached scopes + * @internal + */ + on() { + activeEffectScope = this; + } + /** + * This should only be called on non-detached scopes + * @internal + */ + off() { + activeEffectScope = this.parent; + } + stop(fromParent) { + if (this._active) { + let i, l; + for (i = 0, l = this.effects.length; i < l; i++) { + this.effects[i].stop(); + } + for (i = 0, l = this.cleanups.length; i < l; i++) { + this.cleanups[i](); + } + if (this.scopes) { + for (i = 0, l = this.scopes.length; i < l; i++) { + this.scopes[i].stop(true); + } + } + if (!this.detached && this.parent && !fromParent) { + const last = this.parent.scopes.pop(); + if (last && last !== this) { + this.parent.scopes[this.index] = last; + last.index = this.index; + } + } + this.parent = void 0; + this._active = false; + } + } + } + function effectScope(detached) { + return new EffectScope(detached); + } + function recordEffectScope(effect, scope = activeEffectScope) { + if (scope && scope.active) { + scope.effects.push(effect); + } + } + function getCurrentScope() { + return activeEffectScope; + } + function onScopeDispose(fn) { + if (activeEffectScope) { + activeEffectScope.cleanups.push(fn); + } else { + warn$1( + `onScopeDispose() is called when there is no active effect scope to be associated with.` + ); + } + } + + const createDep = (effects) => { + const dep = new Set(effects); + dep.w = 0; + dep.n = 0; + return dep; + }; + const wasTracked = (dep) => (dep.w & trackOpBit) > 0; + const newTracked = (dep) => (dep.n & trackOpBit) > 0; + const initDepMarkers = ({ deps }) => { + if (deps.length) { + for (let i = 0; i < deps.length; i++) { + deps[i].w |= trackOpBit; + } + } + }; + const finalizeDepMarkers = (effect) => { + const { deps } = effect; + if (deps.length) { + let ptr = 0; + for (let i = 0; i < deps.length; i++) { + const dep = deps[i]; + if (wasTracked(dep) && !newTracked(dep)) { + dep.delete(effect); + } else { + deps[ptr++] = dep; + } + dep.w &= ~trackOpBit; + dep.n &= ~trackOpBit; + } + deps.length = ptr; + } + }; + + const targetMap = /* @__PURE__ */ new WeakMap(); + let effectTrackDepth = 0; + let trackOpBit = 1; + const maxMarkerBits = 30; + let activeEffect; + const ITERATE_KEY = Symbol("iterate" ); + const MAP_KEY_ITERATE_KEY = Symbol("Map key iterate" ); + class ReactiveEffect { + constructor(fn, scheduler = null, scope) { + this.fn = fn; + this.scheduler = scheduler; + this.active = true; + this.deps = []; + this.parent = void 0; + recordEffectScope(this, scope); + } + run() { + if (!this.active) { + return this.fn(); + } + let parent = activeEffect; + let lastShouldTrack = shouldTrack; + while (parent) { + if (parent === this) { + return; + } + parent = parent.parent; + } + try { + this.parent = activeEffect; + activeEffect = this; + shouldTrack = true; + trackOpBit = 1 << ++effectTrackDepth; + if (effectTrackDepth <= maxMarkerBits) { + initDepMarkers(this); + } else { + cleanupEffect(this); + } + return this.fn(); + } finally { + if (effectTrackDepth <= maxMarkerBits) { + finalizeDepMarkers(this); + } + trackOpBit = 1 << --effectTrackDepth; + activeEffect = this.parent; + shouldTrack = lastShouldTrack; + this.parent = void 0; + if (this.deferStop) { + this.stop(); + } + } + } + stop() { + if (activeEffect === this) { + this.deferStop = true; + } else if (this.active) { + cleanupEffect(this); + if (this.onStop) { + this.onStop(); + } + this.active = false; + } + } + } + function cleanupEffect(effect2) { + const { deps } = effect2; + if (deps.length) { + for (let i = 0; i < deps.length; i++) { + deps[i].delete(effect2); + } + deps.length = 0; + } + } + function effect(fn, options) { + if (fn.effect instanceof ReactiveEffect) { + fn = fn.effect.fn; + } + const _effect = new ReactiveEffect(fn); + if (options) { + extend(_effect, options); + if (options.scope) + recordEffectScope(_effect, options.scope); + } + if (!options || !options.lazy) { + _effect.run(); + } + const runner = _effect.run.bind(_effect); + runner.effect = _effect; + return runner; + } + function stop(runner) { + runner.effect.stop(); + } + let shouldTrack = true; + const trackStack = []; + function pauseTracking() { + trackStack.push(shouldTrack); + shouldTrack = false; + } + function resetTracking() { + const last = trackStack.pop(); + shouldTrack = last === void 0 ? true : last; + } + function track(target, type, key) { + if (shouldTrack && activeEffect) { + let depsMap = targetMap.get(target); + if (!depsMap) { + targetMap.set(target, depsMap = /* @__PURE__ */ new Map()); + } + let dep = depsMap.get(key); + if (!dep) { + depsMap.set(key, dep = createDep()); + } + const eventInfo = { effect: activeEffect, target, type, key } ; + trackEffects(dep, eventInfo); + } + } + function trackEffects(dep, debuggerEventExtraInfo) { + let shouldTrack2 = false; + if (effectTrackDepth <= maxMarkerBits) { + if (!newTracked(dep)) { + dep.n |= trackOpBit; + shouldTrack2 = !wasTracked(dep); + } + } else { + shouldTrack2 = !dep.has(activeEffect); + } + if (shouldTrack2) { + dep.add(activeEffect); + activeEffect.deps.push(dep); + if (activeEffect.onTrack) { + activeEffect.onTrack( + extend( + { + effect: activeEffect + }, + debuggerEventExtraInfo + ) + ); + } + } + } + function trigger(target, type, key, newValue, oldValue, oldTarget) { + const depsMap = targetMap.get(target); + if (!depsMap) { + return; + } + let deps = []; + if (type === "clear") { + deps = [...depsMap.values()]; + } else if (key === "length" && isArray(target)) { + const newLength = Number(newValue); + depsMap.forEach((dep, key2) => { + if (key2 === "length" || !isSymbol(key2) && key2 >= newLength) { + deps.push(dep); + } + }); + } else { + if (key !== void 0) { + deps.push(depsMap.get(key)); + } + switch (type) { + case "add": + if (!isArray(target)) { + deps.push(depsMap.get(ITERATE_KEY)); + if (isMap(target)) { + deps.push(depsMap.get(MAP_KEY_ITERATE_KEY)); + } + } else if (isIntegerKey(key)) { + deps.push(depsMap.get("length")); + } + break; + case "delete": + if (!isArray(target)) { + deps.push(depsMap.get(ITERATE_KEY)); + if (isMap(target)) { + deps.push(depsMap.get(MAP_KEY_ITERATE_KEY)); + } + } + break; + case "set": + if (isMap(target)) { + deps.push(depsMap.get(ITERATE_KEY)); + } + break; + } + } + const eventInfo = { target, type, key, newValue, oldValue, oldTarget } ; + if (deps.length === 1) { + if (deps[0]) { + { + triggerEffects(deps[0], eventInfo); + } + } + } else { + const effects = []; + for (const dep of deps) { + if (dep) { + effects.push(...dep); + } + } + { + triggerEffects(createDep(effects), eventInfo); + } + } + } + function triggerEffects(dep, debuggerEventExtraInfo) { + const effects = isArray(dep) ? dep : [...dep]; + for (const effect2 of effects) { + if (effect2.computed) { + triggerEffect(effect2, debuggerEventExtraInfo); + } + } + for (const effect2 of effects) { + if (!effect2.computed) { + triggerEffect(effect2, debuggerEventExtraInfo); + } + } + } + function triggerEffect(effect2, debuggerEventExtraInfo) { + if (effect2 !== activeEffect || effect2.allowRecurse) { + if (effect2.onTrigger) { + effect2.onTrigger(extend({ effect: effect2 }, debuggerEventExtraInfo)); + } + if (effect2.scheduler) { + effect2.scheduler(); + } else { + effect2.run(); + } + } + } + function getDepFromReactive(object, key) { + var _a; + return (_a = targetMap.get(object)) == null ? void 0 : _a.get(key); + } + + const isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`); + const builtInSymbols = new Set( + /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== "arguments" && key !== "caller").map((key) => Symbol[key]).filter(isSymbol) + ); + const arrayInstrumentations = /* @__PURE__ */ createArrayInstrumentations(); + function createArrayInstrumentations() { + const instrumentations = {}; + ["includes", "indexOf", "lastIndexOf"].forEach((key) => { + instrumentations[key] = function(...args) { + const arr = toRaw(this); + for (let i = 0, l = this.length; i < l; i++) { + track(arr, "get", i + ""); + } + const res = arr[key](...args); + if (res === -1 || res === false) { + return arr[key](...args.map(toRaw)); + } else { + return res; + } + }; + }); + ["push", "pop", "shift", "unshift", "splice"].forEach((key) => { + instrumentations[key] = function(...args) { + pauseTracking(); + const res = toRaw(this)[key].apply(this, args); + resetTracking(); + return res; + }; + }); + return instrumentations; + } + function hasOwnProperty(key) { + const obj = toRaw(this); + track(obj, "has", key); + return obj.hasOwnProperty(key); + } + class BaseReactiveHandler { + constructor(_isReadonly = false, _shallow = false) { + this._isReadonly = _isReadonly; + this._shallow = _shallow; + } + get(target, key, receiver) { + const isReadonly2 = this._isReadonly, shallow = this._shallow; + if (key === "__v_isReactive") { + return !isReadonly2; + } else if (key === "__v_isReadonly") { + return isReadonly2; + } else if (key === "__v_isShallow") { + return shallow; + } else if (key === "__v_raw" && receiver === (isReadonly2 ? shallow ? shallowReadonlyMap : readonlyMap : shallow ? shallowReactiveMap : reactiveMap).get(target)) { + return target; + } + const targetIsArray = isArray(target); + if (!isReadonly2) { + if (targetIsArray && hasOwn(arrayInstrumentations, key)) { + return Reflect.get(arrayInstrumentations, key, receiver); + } + if (key === "hasOwnProperty") { + return hasOwnProperty; + } + } + const res = Reflect.get(target, key, receiver); + if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) { + return res; + } + if (!isReadonly2) { + track(target, "get", key); + } + if (shallow) { + return res; + } + if (isRef(res)) { + return targetIsArray && isIntegerKey(key) ? res : res.value; + } + if (isObject(res)) { + return isReadonly2 ? readonly(res) : reactive(res); + } + return res; + } + } + class MutableReactiveHandler extends BaseReactiveHandler { + constructor(shallow = false) { + super(false, shallow); + } + set(target, key, value, receiver) { + let oldValue = target[key]; + if (isReadonly(oldValue) && isRef(oldValue) && !isRef(value)) { + return false; + } + if (!this._shallow) { + if (!isShallow(value) && !isReadonly(value)) { + oldValue = toRaw(oldValue); + value = toRaw(value); + } + if (!isArray(target) && isRef(oldValue) && !isRef(value)) { + oldValue.value = value; + return true; + } + } + const hadKey = isArray(target) && isIntegerKey(key) ? Number(key) < target.length : hasOwn(target, key); + const result = Reflect.set(target, key, value, receiver); + if (target === toRaw(receiver)) { + if (!hadKey) { + trigger(target, "add", key, value); + } else if (hasChanged(value, oldValue)) { + trigger(target, "set", key, value, oldValue); + } + } + return result; + } + deleteProperty(target, key) { + const hadKey = hasOwn(target, key); + const oldValue = target[key]; + const result = Reflect.deleteProperty(target, key); + if (result && hadKey) { + trigger(target, "delete", key, void 0, oldValue); + } + return result; + } + has(target, key) { + const result = Reflect.has(target, key); + if (!isSymbol(key) || !builtInSymbols.has(key)) { + track(target, "has", key); + } + return result; + } + ownKeys(target) { + track( + target, + "iterate", + isArray(target) ? "length" : ITERATE_KEY + ); + return Reflect.ownKeys(target); + } + } + class ReadonlyReactiveHandler extends BaseReactiveHandler { + constructor(shallow = false) { + super(true, shallow); + } + set(target, key) { + { + warn$1( + `Set operation on key "${String(key)}" failed: target is readonly.`, + target + ); + } + return true; + } + deleteProperty(target, key) { + { + warn$1( + `Delete operation on key "${String(key)}" failed: target is readonly.`, + target + ); + } + return true; + } + } + const mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler(); + const readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(); + const shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler( + true + ); + const shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true); + + const toShallow = (value) => value; + const getProto = (v) => Reflect.getPrototypeOf(v); + function get(target, key, isReadonly = false, isShallow = false) { + target = target["__v_raw"]; + const rawTarget = toRaw(target); + const rawKey = toRaw(key); + if (!isReadonly) { + if (hasChanged(key, rawKey)) { + track(rawTarget, "get", key); + } + track(rawTarget, "get", rawKey); + } + const { has: has2 } = getProto(rawTarget); + const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive; + if (has2.call(rawTarget, key)) { + return wrap(target.get(key)); + } else if (has2.call(rawTarget, rawKey)) { + return wrap(target.get(rawKey)); + } else if (target !== rawTarget) { + target.get(key); + } + } + function has(key, isReadonly = false) { + const target = this["__v_raw"]; + const rawTarget = toRaw(target); + const rawKey = toRaw(key); + if (!isReadonly) { + if (hasChanged(key, rawKey)) { + track(rawTarget, "has", key); + } + track(rawTarget, "has", rawKey); + } + return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey); + } + function size(target, isReadonly = false) { + target = target["__v_raw"]; + !isReadonly && track(toRaw(target), "iterate", ITERATE_KEY); + return Reflect.get(target, "size", target); + } + function add(value) { + value = toRaw(value); + const target = toRaw(this); + const proto = getProto(target); + const hadKey = proto.has.call(target, value); + if (!hadKey) { + target.add(value); + trigger(target, "add", value, value); + } + return this; + } + function set(key, value) { + value = toRaw(value); + const target = toRaw(this); + const { has: has2, get: get2 } = getProto(target); + let hadKey = has2.call(target, key); + if (!hadKey) { + key = toRaw(key); + hadKey = has2.call(target, key); + } else { + checkIdentityKeys(target, has2, key); + } + const oldValue = get2.call(target, key); + target.set(key, value); + if (!hadKey) { + trigger(target, "add", key, value); + } else if (hasChanged(value, oldValue)) { + trigger(target, "set", key, value, oldValue); + } + return this; + } + function deleteEntry(key) { + const target = toRaw(this); + const { has: has2, get: get2 } = getProto(target); + let hadKey = has2.call(target, key); + if (!hadKey) { + key = toRaw(key); + hadKey = has2.call(target, key); + } else { + checkIdentityKeys(target, has2, key); + } + const oldValue = get2 ? get2.call(target, key) : void 0; + const result = target.delete(key); + if (hadKey) { + trigger(target, "delete", key, void 0, oldValue); + } + return result; + } + function clear() { + const target = toRaw(this); + const hadItems = target.size !== 0; + const oldTarget = isMap(target) ? new Map(target) : new Set(target) ; + const result = target.clear(); + if (hadItems) { + trigger(target, "clear", void 0, void 0, oldTarget); + } + return result; + } + function createForEach(isReadonly, isShallow) { + return function forEach(callback, thisArg) { + const observed = this; + const target = observed["__v_raw"]; + const rawTarget = toRaw(target); + const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive; + !isReadonly && track(rawTarget, "iterate", ITERATE_KEY); + return target.forEach((value, key) => { + return callback.call(thisArg, wrap(value), wrap(key), observed); + }); + }; + } + function createIterableMethod(method, isReadonly, isShallow) { + return function(...args) { + const target = this["__v_raw"]; + const rawTarget = toRaw(target); + const targetIsMap = isMap(rawTarget); + const isPair = method === "entries" || method === Symbol.iterator && targetIsMap; + const isKeyOnly = method === "keys" && targetIsMap; + const innerIterator = target[method](...args); + const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive; + !isReadonly && track( + rawTarget, + "iterate", + isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY + ); + return { + // iterator protocol + next() { + const { value, done } = innerIterator.next(); + return done ? { value, done } : { + value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value), + done + }; + }, + // iterable protocol + [Symbol.iterator]() { + return this; + } + }; + }; + } + function createReadonlyMethod(type) { + return function(...args) { + { + const key = args[0] ? `on key "${args[0]}" ` : ``; + console.warn( + `${capitalize(type)} operation ${key}failed: target is readonly.`, + toRaw(this) + ); + } + return type === "delete" ? false : this; + }; + } + function createInstrumentations() { + const mutableInstrumentations2 = { + get(key) { + return get(this, key); + }, + get size() { + return size(this); + }, + has, + add, + set, + delete: deleteEntry, + clear, + forEach: createForEach(false, false) + }; + const shallowInstrumentations2 = { + get(key) { + return get(this, key, false, true); + }, + get size() { + return size(this); + }, + has, + add, + set, + delete: deleteEntry, + clear, + forEach: createForEach(false, true) + }; + const readonlyInstrumentations2 = { + get(key) { + return get(this, key, true); + }, + get size() { + return size(this, true); + }, + has(key) { + return has.call(this, key, true); + }, + add: createReadonlyMethod("add"), + set: createReadonlyMethod("set"), + delete: createReadonlyMethod("delete"), + clear: createReadonlyMethod("clear"), + forEach: createForEach(true, false) + }; + const shallowReadonlyInstrumentations2 = { + get(key) { + return get(this, key, true, true); + }, + get size() { + return size(this, true); + }, + has(key) { + return has.call(this, key, true); + }, + add: createReadonlyMethod("add"), + set: createReadonlyMethod("set"), + delete: createReadonlyMethod("delete"), + clear: createReadonlyMethod("clear"), + forEach: createForEach(true, true) + }; + const iteratorMethods = ["keys", "values", "entries", Symbol.iterator]; + iteratorMethods.forEach((method) => { + mutableInstrumentations2[method] = createIterableMethod( + method, + false, + false + ); + readonlyInstrumentations2[method] = createIterableMethod( + method, + true, + false + ); + shallowInstrumentations2[method] = createIterableMethod( + method, + false, + true + ); + shallowReadonlyInstrumentations2[method] = createIterableMethod( + method, + true, + true + ); + }); + return [ + mutableInstrumentations2, + readonlyInstrumentations2, + shallowInstrumentations2, + shallowReadonlyInstrumentations2 + ]; + } + const [ + mutableInstrumentations, + readonlyInstrumentations, + shallowInstrumentations, + shallowReadonlyInstrumentations + ] = /* @__PURE__ */ createInstrumentations(); + function createInstrumentationGetter(isReadonly, shallow) { + const instrumentations = shallow ? isReadonly ? shallowReadonlyInstrumentations : shallowInstrumentations : isReadonly ? readonlyInstrumentations : mutableInstrumentations; + return (target, key, receiver) => { + if (key === "__v_isReactive") { + return !isReadonly; + } else if (key === "__v_isReadonly") { + return isReadonly; + } else if (key === "__v_raw") { + return target; + } + return Reflect.get( + hasOwn(instrumentations, key) && key in target ? instrumentations : target, + key, + receiver + ); + }; + } + const mutableCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(false, false) + }; + const shallowCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(false, true) + }; + const readonlyCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(true, false) + }; + const shallowReadonlyCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(true, true) + }; + function checkIdentityKeys(target, has2, key) { + const rawKey = toRaw(key); + if (rawKey !== key && has2.call(target, rawKey)) { + const type = toRawType(target); + console.warn( + `Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.` + ); + } + } + + const reactiveMap = /* @__PURE__ */ new WeakMap(); + const shallowReactiveMap = /* @__PURE__ */ new WeakMap(); + const readonlyMap = /* @__PURE__ */ new WeakMap(); + const shallowReadonlyMap = /* @__PURE__ */ new WeakMap(); + function targetTypeMap(rawType) { + switch (rawType) { + case "Object": + case "Array": + return 1 /* COMMON */; + case "Map": + case "Set": + case "WeakMap": + case "WeakSet": + return 2 /* COLLECTION */; + default: + return 0 /* INVALID */; + } + } + function getTargetType(value) { + return value["__v_skip"] || !Object.isExtensible(value) ? 0 /* INVALID */ : targetTypeMap(toRawType(value)); + } + function reactive(target) { + if (isReadonly(target)) { + return target; + } + return createReactiveObject( + target, + false, + mutableHandlers, + mutableCollectionHandlers, + reactiveMap + ); + } + function shallowReactive(target) { + return createReactiveObject( + target, + false, + shallowReactiveHandlers, + shallowCollectionHandlers, + shallowReactiveMap + ); + } + function readonly(target) { + return createReactiveObject( + target, + true, + readonlyHandlers, + readonlyCollectionHandlers, + readonlyMap + ); + } + function shallowReadonly(target) { + return createReactiveObject( + target, + true, + shallowReadonlyHandlers, + shallowReadonlyCollectionHandlers, + shallowReadonlyMap + ); + } + function createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) { + if (!isObject(target)) { + { + console.warn(`value cannot be made reactive: ${String(target)}`); + } + return target; + } + if (target["__v_raw"] && !(isReadonly2 && target["__v_isReactive"])) { + return target; + } + const existingProxy = proxyMap.get(target); + if (existingProxy) { + return existingProxy; + } + const targetType = getTargetType(target); + if (targetType === 0 /* INVALID */) { + return target; + } + const proxy = new Proxy( + target, + targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers + ); + proxyMap.set(target, proxy); + return proxy; + } + function isReactive(value) { + if (isReadonly(value)) { + return isReactive(value["__v_raw"]); + } + return !!(value && value["__v_isReactive"]); + } + function isReadonly(value) { + return !!(value && value["__v_isReadonly"]); + } + function isShallow(value) { + return !!(value && value["__v_isShallow"]); + } + function isProxy(value) { + return isReactive(value) || isReadonly(value); + } + function toRaw(observed) { + const raw = observed && observed["__v_raw"]; + return raw ? toRaw(raw) : observed; + } + function markRaw(value) { + def(value, "__v_skip", true); + return value; + } + const toReactive = (value) => isObject(value) ? reactive(value) : value; + const toReadonly = (value) => isObject(value) ? readonly(value) : value; + + function trackRefValue(ref2) { + if (shouldTrack && activeEffect) { + ref2 = toRaw(ref2); + { + trackEffects(ref2.dep || (ref2.dep = createDep()), { + target: ref2, + type: "get", + key: "value" + }); + } + } + } + function triggerRefValue(ref2, newVal) { + ref2 = toRaw(ref2); + const dep = ref2.dep; + if (dep) { + { + triggerEffects(dep, { + target: ref2, + type: "set", + key: "value", + newValue: newVal + }); + } + } + } + function isRef(r) { + return !!(r && r.__v_isRef === true); + } + function ref(value) { + return createRef(value, false); + } + function shallowRef(value) { + return createRef(value, true); + } + function createRef(rawValue, shallow) { + if (isRef(rawValue)) { + return rawValue; + } + return new RefImpl(rawValue, shallow); + } + class RefImpl { + constructor(value, __v_isShallow) { + this.__v_isShallow = __v_isShallow; + this.dep = void 0; + this.__v_isRef = true; + this._rawValue = __v_isShallow ? value : toRaw(value); + this._value = __v_isShallow ? value : toReactive(value); + } + get value() { + trackRefValue(this); + return this._value; + } + set value(newVal) { + const useDirectValue = this.__v_isShallow || isShallow(newVal) || isReadonly(newVal); + newVal = useDirectValue ? newVal : toRaw(newVal); + if (hasChanged(newVal, this._rawValue)) { + this._rawValue = newVal; + this._value = useDirectValue ? newVal : toReactive(newVal); + triggerRefValue(this, newVal); + } + } + } + function triggerRef(ref2) { + triggerRefValue(ref2, ref2.value ); + } + function unref(ref2) { + return isRef(ref2) ? ref2.value : ref2; + } + function toValue(source) { + return isFunction(source) ? source() : unref(source); + } + const shallowUnwrapHandlers = { + get: (target, key, receiver) => unref(Reflect.get(target, key, receiver)), + set: (target, key, value, receiver) => { + const oldValue = target[key]; + if (isRef(oldValue) && !isRef(value)) { + oldValue.value = value; + return true; + } else { + return Reflect.set(target, key, value, receiver); + } + } + }; + function proxyRefs(objectWithRefs) { + return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers); + } + class CustomRefImpl { + constructor(factory) { + this.dep = void 0; + this.__v_isRef = true; + const { get, set } = factory( + () => trackRefValue(this), + () => triggerRefValue(this) + ); + this._get = get; + this._set = set; + } + get value() { + return this._get(); + } + set value(newVal) { + this._set(newVal); + } + } + function customRef(factory) { + return new CustomRefImpl(factory); + } + function toRefs(object) { + if (!isProxy(object)) { + console.warn(`toRefs() expects a reactive object but received a plain one.`); + } + const ret = isArray(object) ? new Array(object.length) : {}; + for (const key in object) { + ret[key] = propertyToRef(object, key); + } + return ret; + } + class ObjectRefImpl { + constructor(_object, _key, _defaultValue) { + this._object = _object; + this._key = _key; + this._defaultValue = _defaultValue; + this.__v_isRef = true; + } + get value() { + const val = this._object[this._key]; + return val === void 0 ? this._defaultValue : val; + } + set value(newVal) { + this._object[this._key] = newVal; + } + get dep() { + return getDepFromReactive(toRaw(this._object), this._key); + } + } + class GetterRefImpl { + constructor(_getter) { + this._getter = _getter; + this.__v_isRef = true; + this.__v_isReadonly = true; + } + get value() { + return this._getter(); + } + } + function toRef(source, key, defaultValue) { + if (isRef(source)) { + return source; + } else if (isFunction(source)) { + return new GetterRefImpl(source); + } else if (isObject(source) && arguments.length > 1) { + return propertyToRef(source, key, defaultValue); + } else { + return ref(source); + } + } + function propertyToRef(source, key, defaultValue) { + const val = source[key]; + return isRef(val) ? val : new ObjectRefImpl(source, key, defaultValue); + } + + class ComputedRefImpl { + constructor(getter, _setter, isReadonly, isSSR) { + this._setter = _setter; + this.dep = void 0; + this.__v_isRef = true; + this["__v_isReadonly"] = false; + this._dirty = true; + this.effect = new ReactiveEffect(getter, () => { + if (!this._dirty) { + this._dirty = true; + triggerRefValue(this); + } + }); + this.effect.computed = this; + this.effect.active = this._cacheable = !isSSR; + this["__v_isReadonly"] = isReadonly; + } + get value() { + const self = toRaw(this); + trackRefValue(self); + if (self._dirty || !self._cacheable) { + self._dirty = false; + self._value = self.effect.run(); + } + return self._value; + } + set value(newValue) { + this._setter(newValue); + } + } + function computed$1(getterOrOptions, debugOptions, isSSR = false) { + let getter; + let setter; + const onlyGetter = isFunction(getterOrOptions); + if (onlyGetter) { + getter = getterOrOptions; + setter = () => { + console.warn("Write operation failed: computed value is readonly"); + } ; + } else { + getter = getterOrOptions.get; + setter = getterOrOptions.set; + } + const cRef = new ComputedRefImpl(getter, setter, onlyGetter || !setter, isSSR); + if (debugOptions && !isSSR) { + cRef.effect.onTrack = debugOptions.onTrack; + cRef.effect.onTrigger = debugOptions.onTrigger; + } + return cRef; + } + + const stack = []; + function pushWarningContext(vnode) { + stack.push(vnode); + } + function popWarningContext() { + stack.pop(); + } + function warn(msg, ...args) { + pauseTracking(); + const instance = stack.length ? stack[stack.length - 1].component : null; + const appWarnHandler = instance && instance.appContext.config.warnHandler; + const trace = getComponentTrace(); + if (appWarnHandler) { + callWithErrorHandling( + appWarnHandler, + instance, + 11, + [ + msg + args.join(""), + instance && instance.proxy, + trace.map( + ({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>` + ).join("\n"), + trace + ] + ); + } else { + const warnArgs = [`[Vue warn]: ${msg}`, ...args]; + if (trace.length && // avoid spamming console during tests + true) { + warnArgs.push(` +`, ...formatTrace(trace)); + } + console.warn(...warnArgs); + } + resetTracking(); + } + function getComponentTrace() { + let currentVNode = stack[stack.length - 1]; + if (!currentVNode) { + return []; + } + const normalizedStack = []; + while (currentVNode) { + const last = normalizedStack[0]; + if (last && last.vnode === currentVNode) { + last.recurseCount++; + } else { + normalizedStack.push({ + vnode: currentVNode, + recurseCount: 0 + }); + } + const parentInstance = currentVNode.component && currentVNode.component.parent; + currentVNode = parentInstance && parentInstance.vnode; + } + return normalizedStack; + } + function formatTrace(trace) { + const logs = []; + trace.forEach((entry, i) => { + logs.push(...i === 0 ? [] : [` +`], ...formatTraceEntry(entry)); + }); + return logs; + } + function formatTraceEntry({ vnode, recurseCount }) { + const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``; + const isRoot = vnode.component ? vnode.component.parent == null : false; + const open = ` at <${formatComponentName( + vnode.component, + vnode.type, + isRoot + )}`; + const close = `>` + postfix; + return vnode.props ? [open, ...formatProps(vnode.props), close] : [open + close]; + } + function formatProps(props) { + const res = []; + const keys = Object.keys(props); + keys.slice(0, 3).forEach((key) => { + res.push(...formatProp(key, props[key])); + }); + if (keys.length > 3) { + res.push(` ...`); + } + return res; + } + function formatProp(key, value, raw) { + if (isString(value)) { + value = JSON.stringify(value); + return raw ? value : [`${key}=${value}`]; + } else if (typeof value === "number" || typeof value === "boolean" || value == null) { + return raw ? value : [`${key}=${value}`]; + } else if (isRef(value)) { + value = formatProp(key, toRaw(value.value), true); + return raw ? value : [`${key}=Ref<`, value, `>`]; + } else if (isFunction(value)) { + return [`${key}=fn${value.name ? `<${value.name}>` : ``}`]; + } else { + value = toRaw(value); + return raw ? value : [`${key}=`, value]; + } + } + function assertNumber(val, type) { + if (val === void 0) { + return; + } else if (typeof val !== "number") { + warn(`${type} is not a valid number - got ${JSON.stringify(val)}.`); + } else if (isNaN(val)) { + warn(`${type} is NaN - the duration expression might be incorrect.`); + } + } + + const ErrorTypeStrings = { + ["sp"]: "serverPrefetch hook", + ["bc"]: "beforeCreate hook", + ["c"]: "created hook", + ["bm"]: "beforeMount hook", + ["m"]: "mounted hook", + ["bu"]: "beforeUpdate hook", + ["u"]: "updated", + ["bum"]: "beforeUnmount hook", + ["um"]: "unmounted hook", + ["a"]: "activated hook", + ["da"]: "deactivated hook", + ["ec"]: "errorCaptured hook", + ["rtc"]: "renderTracked hook", + ["rtg"]: "renderTriggered hook", + [0]: "setup function", + [1]: "render function", + [2]: "watcher getter", + [3]: "watcher callback", + [4]: "watcher cleanup function", + [5]: "native event handler", + [6]: "component event handler", + [7]: "vnode hook", + [8]: "directive hook", + [9]: "transition hook", + [10]: "app errorHandler", + [11]: "app warnHandler", + [12]: "ref function", + [13]: "async component loader", + [14]: "scheduler flush. This is likely a Vue internals bug. Please open an issue at https://new-issue.vuejs.org/?repo=vuejs/core" + }; + function callWithErrorHandling(fn, instance, type, args) { + let res; + try { + res = args ? fn(...args) : fn(); + } catch (err) { + handleError(err, instance, type); + } + return res; + } + function callWithAsyncErrorHandling(fn, instance, type, args) { + if (isFunction(fn)) { + const res = callWithErrorHandling(fn, instance, type, args); + if (res && isPromise(res)) { + res.catch((err) => { + handleError(err, instance, type); + }); + } + return res; + } + const values = []; + for (let i = 0; i < fn.length; i++) { + values.push(callWithAsyncErrorHandling(fn[i], instance, type, args)); + } + return values; + } + function handleError(err, instance, type, throwInDev = true) { + const contextVNode = instance ? instance.vnode : null; + if (instance) { + let cur = instance.parent; + const exposedInstance = instance.proxy; + const errorInfo = ErrorTypeStrings[type] ; + while (cur) { + const errorCapturedHooks = cur.ec; + if (errorCapturedHooks) { + for (let i = 0; i < errorCapturedHooks.length; i++) { + if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) { + return; + } + } + } + cur = cur.parent; + } + const appErrorHandler = instance.appContext.config.errorHandler; + if (appErrorHandler) { + callWithErrorHandling( + appErrorHandler, + null, + 10, + [err, exposedInstance, errorInfo] + ); + return; + } + } + logError(err, type, contextVNode, throwInDev); + } + function logError(err, type, contextVNode, throwInDev = true) { + { + const info = ErrorTypeStrings[type]; + if (contextVNode) { + pushWarningContext(contextVNode); + } + warn(`Unhandled error${info ? ` during execution of ${info}` : ``}`); + if (contextVNode) { + popWarningContext(); + } + if (throwInDev) { + throw err; + } else { + console.error(err); + } + } + } + + let isFlushing = false; + let isFlushPending = false; + const queue = []; + let flushIndex = 0; + const pendingPostFlushCbs = []; + let activePostFlushCbs = null; + let postFlushIndex = 0; + const resolvedPromise = /* @__PURE__ */ Promise.resolve(); + let currentFlushPromise = null; + const RECURSION_LIMIT = 100; + function nextTick(fn) { + const p = currentFlushPromise || resolvedPromise; + return fn ? p.then(this ? fn.bind(this) : fn) : p; + } + function findInsertionIndex(id) { + let start = flushIndex + 1; + let end = queue.length; + while (start < end) { + const middle = start + end >>> 1; + const middleJob = queue[middle]; + const middleJobId = getId(middleJob); + if (middleJobId < id || middleJobId === id && middleJob.pre) { + start = middle + 1; + } else { + end = middle; + } + } + return start; + } + function queueJob(job) { + if (!queue.length || !queue.includes( + job, + isFlushing && job.allowRecurse ? flushIndex + 1 : flushIndex + )) { + if (job.id == null) { + queue.push(job); + } else { + queue.splice(findInsertionIndex(job.id), 0, job); + } + queueFlush(); + } + } + function queueFlush() { + if (!isFlushing && !isFlushPending) { + isFlushPending = true; + currentFlushPromise = resolvedPromise.then(flushJobs); + } + } + function invalidateJob(job) { + const i = queue.indexOf(job); + if (i > flushIndex) { + queue.splice(i, 1); + } + } + function queuePostFlushCb(cb) { + if (!isArray(cb)) { + if (!activePostFlushCbs || !activePostFlushCbs.includes( + cb, + cb.allowRecurse ? postFlushIndex + 1 : postFlushIndex + )) { + pendingPostFlushCbs.push(cb); + } + } else { + pendingPostFlushCbs.push(...cb); + } + queueFlush(); + } + function flushPreFlushCbs(seen, i = isFlushing ? flushIndex + 1 : 0) { + { + seen = seen || /* @__PURE__ */ new Map(); + } + for (; i < queue.length; i++) { + const cb = queue[i]; + if (cb && cb.pre) { + if (checkRecursiveUpdates(seen, cb)) { + continue; + } + queue.splice(i, 1); + i--; + cb(); + } + } + } + function flushPostFlushCbs(seen) { + if (pendingPostFlushCbs.length) { + const deduped = [...new Set(pendingPostFlushCbs)]; + pendingPostFlushCbs.length = 0; + if (activePostFlushCbs) { + activePostFlushCbs.push(...deduped); + return; + } + activePostFlushCbs = deduped; + { + seen = seen || /* @__PURE__ */ new Map(); + } + activePostFlushCbs.sort((a, b) => getId(a) - getId(b)); + for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) { + if (checkRecursiveUpdates(seen, activePostFlushCbs[postFlushIndex])) { + continue; + } + activePostFlushCbs[postFlushIndex](); + } + activePostFlushCbs = null; + postFlushIndex = 0; + } + } + const getId = (job) => job.id == null ? Infinity : job.id; + const comparator = (a, b) => { + const diff = getId(a) - getId(b); + if (diff === 0) { + if (a.pre && !b.pre) + return -1; + if (b.pre && !a.pre) + return 1; + } + return diff; + }; + function flushJobs(seen) { + isFlushPending = false; + isFlushing = true; + { + seen = seen || /* @__PURE__ */ new Map(); + } + queue.sort(comparator); + const check = (job) => checkRecursiveUpdates(seen, job) ; + try { + for (flushIndex = 0; flushIndex < queue.length; flushIndex++) { + const job = queue[flushIndex]; + if (job && job.active !== false) { + if (check(job)) { + continue; + } + callWithErrorHandling(job, null, 14); + } + } + } finally { + flushIndex = 0; + queue.length = 0; + flushPostFlushCbs(seen); + isFlushing = false; + currentFlushPromise = null; + if (queue.length || pendingPostFlushCbs.length) { + flushJobs(seen); + } + } + } + function checkRecursiveUpdates(seen, fn) { + if (!seen.has(fn)) { + seen.set(fn, 1); + } else { + const count = seen.get(fn); + if (count > RECURSION_LIMIT) { + const instance = fn.ownerInstance; + const componentName = instance && getComponentName(instance.type); + warn( + `Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.` + ); + return true; + } else { + seen.set(fn, count + 1); + } + } + } + + let isHmrUpdating = false; + const hmrDirtyComponents = /* @__PURE__ */ new Set(); + { + getGlobalThis().__VUE_HMR_RUNTIME__ = { + createRecord: tryWrap(createRecord), + rerender: tryWrap(rerender), + reload: tryWrap(reload) + }; + } + const map = /* @__PURE__ */ new Map(); + function registerHMR(instance) { + const id = instance.type.__hmrId; + let record = map.get(id); + if (!record) { + createRecord(id, instance.type); + record = map.get(id); + } + record.instances.add(instance); + } + function unregisterHMR(instance) { + map.get(instance.type.__hmrId).instances.delete(instance); + } + function createRecord(id, initialDef) { + if (map.has(id)) { + return false; + } + map.set(id, { + initialDef: normalizeClassComponent(initialDef), + instances: /* @__PURE__ */ new Set() + }); + return true; + } + function normalizeClassComponent(component) { + return isClassComponent(component) ? component.__vccOpts : component; + } + function rerender(id, newRender) { + const record = map.get(id); + if (!record) { + return; + } + record.initialDef.render = newRender; + [...record.instances].forEach((instance) => { + if (newRender) { + instance.render = newRender; + normalizeClassComponent(instance.type).render = newRender; + } + instance.renderCache = []; + isHmrUpdating = true; + instance.update(); + isHmrUpdating = false; + }); + } + function reload(id, newComp) { + const record = map.get(id); + if (!record) + return; + newComp = normalizeClassComponent(newComp); + updateComponentDef(record.initialDef, newComp); + const instances = [...record.instances]; + for (const instance of instances) { + const oldComp = normalizeClassComponent(instance.type); + if (!hmrDirtyComponents.has(oldComp)) { + if (oldComp !== record.initialDef) { + updateComponentDef(oldComp, newComp); + } + hmrDirtyComponents.add(oldComp); + } + instance.appContext.propsCache.delete(instance.type); + instance.appContext.emitsCache.delete(instance.type); + instance.appContext.optionsCache.delete(instance.type); + if (instance.ceReload) { + hmrDirtyComponents.add(oldComp); + instance.ceReload(newComp.styles); + hmrDirtyComponents.delete(oldComp); + } else if (instance.parent) { + queueJob(instance.parent.update); + } else if (instance.appContext.reload) { + instance.appContext.reload(); + } else if (typeof window !== "undefined") { + window.location.reload(); + } else { + console.warn( + "[HMR] Root or manually mounted instance modified. Full reload required." + ); + } + } + queuePostFlushCb(() => { + for (const instance of instances) { + hmrDirtyComponents.delete( + normalizeClassComponent(instance.type) + ); + } + }); + } + function updateComponentDef(oldComp, newComp) { + extend(oldComp, newComp); + for (const key in oldComp) { + if (key !== "__file" && !(key in newComp)) { + delete oldComp[key]; + } + } + } + function tryWrap(fn) { + return (id, arg) => { + try { + return fn(id, arg); + } catch (e) { + console.error(e); + console.warn( + `[HMR] Something went wrong during Vue component hot-reload. Full reload required.` + ); + } + }; + } + + exports.devtools = void 0; + let buffer = []; + let devtoolsNotInstalled = false; + function emit$1(event, ...args) { + if (exports.devtools) { + exports.devtools.emit(event, ...args); + } else if (!devtoolsNotInstalled) { + buffer.push({ event, args }); + } + } + function setDevtoolsHook(hook, target) { + var _a, _b; + exports.devtools = hook; + if (exports.devtools) { + exports.devtools.enabled = true; + buffer.forEach(({ event, args }) => exports.devtools.emit(event, ...args)); + buffer = []; + } else if ( + // handle late devtools injection - only do this if we are in an actual + // browser environment to avoid the timer handle stalling test runner exit + // (#4815) + typeof window !== "undefined" && // some envs mock window but not fully + window.HTMLElement && // also exclude jsdom + !((_b = (_a = window.navigator) == null ? void 0 : _a.userAgent) == null ? void 0 : _b.includes("jsdom")) + ) { + const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || []; + replay.push((newHook) => { + setDevtoolsHook(newHook, target); + }); + setTimeout(() => { + if (!exports.devtools) { + target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null; + devtoolsNotInstalled = true; + buffer = []; + } + }, 3e3); + } else { + devtoolsNotInstalled = true; + buffer = []; + } + } + function devtoolsInitApp(app, version) { + emit$1("app:init" /* APP_INIT */, app, version, { + Fragment, + Text, + Comment, + Static + }); + } + function devtoolsUnmountApp(app) { + emit$1("app:unmount" /* APP_UNMOUNT */, app); + } + const devtoolsComponentAdded = /* @__PURE__ */ createDevtoolsComponentHook( + "component:added" /* COMPONENT_ADDED */ + ); + const devtoolsComponentUpdated = /* @__PURE__ */ createDevtoolsComponentHook("component:updated" /* COMPONENT_UPDATED */); + const _devtoolsComponentRemoved = /* @__PURE__ */ createDevtoolsComponentHook( + "component:removed" /* COMPONENT_REMOVED */ + ); + const devtoolsComponentRemoved = (component) => { + if (exports.devtools && typeof exports.devtools.cleanupBuffer === "function" && // remove the component if it wasn't buffered + !exports.devtools.cleanupBuffer(component)) { + _devtoolsComponentRemoved(component); + } + }; + function createDevtoolsComponentHook(hook) { + return (component) => { + emit$1( + hook, + component.appContext.app, + component.uid, + component.parent ? component.parent.uid : void 0, + component + ); + }; + } + const devtoolsPerfStart = /* @__PURE__ */ createDevtoolsPerformanceHook( + "perf:start" /* PERFORMANCE_START */ + ); + const devtoolsPerfEnd = /* @__PURE__ */ createDevtoolsPerformanceHook( + "perf:end" /* PERFORMANCE_END */ + ); + function createDevtoolsPerformanceHook(hook) { + return (component, type, time) => { + emit$1(hook, component.appContext.app, component.uid, component, type, time); + }; + } + function devtoolsComponentEmit(component, event, params) { + emit$1( + "component:emit" /* COMPONENT_EMIT */, + component.appContext.app, + component, + event, + params + ); + } + + function emit(instance, event, ...rawArgs) { + if (instance.isUnmounted) + return; + const props = instance.vnode.props || EMPTY_OBJ; + { + const { + emitsOptions, + propsOptions: [propsOptions] + } = instance; + if (emitsOptions) { + if (!(event in emitsOptions) && true) { + if (!propsOptions || !(toHandlerKey(event) in propsOptions)) { + warn( + `Component emitted event "${event}" but it is neither declared in the emits option nor as an "${toHandlerKey(event)}" prop.` + ); + } + } else { + const validator = emitsOptions[event]; + if (isFunction(validator)) { + const isValid = validator(...rawArgs); + if (!isValid) { + warn( + `Invalid event arguments: event validation failed for event "${event}".` + ); + } + } + } + } + } + let args = rawArgs; + const isModelListener = event.startsWith("update:"); + const modelArg = isModelListener && event.slice(7); + if (modelArg && modelArg in props) { + const modifiersKey = `${modelArg === "modelValue" ? "model" : modelArg}Modifiers`; + const { number, trim } = props[modifiersKey] || EMPTY_OBJ; + if (trim) { + args = rawArgs.map((a) => isString(a) ? a.trim() : a); + } + if (number) { + args = rawArgs.map(looseToNumber); + } + } + { + devtoolsComponentEmit(instance, event, args); + } + { + const lowerCaseEvent = event.toLowerCase(); + if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) { + warn( + `Event "${lowerCaseEvent}" is emitted in component ${formatComponentName( + instance, + instance.type + )} but the handler is registered for "${event}". Note that HTML attributes are case-insensitive and you cannot use v-on to listen to camelCase events when using in-DOM templates. You should probably use "${hyphenate(event)}" instead of "${event}".` + ); + } + } + let handlerName; + let handler = props[handlerName = toHandlerKey(event)] || // also try camelCase event handler (#2249) + props[handlerName = toHandlerKey(camelize(event))]; + if (!handler && isModelListener) { + handler = props[handlerName = toHandlerKey(hyphenate(event))]; + } + if (handler) { + callWithAsyncErrorHandling( + handler, + instance, + 6, + args + ); + } + const onceHandler = props[handlerName + `Once`]; + if (onceHandler) { + if (!instance.emitted) { + instance.emitted = {}; + } else if (instance.emitted[handlerName]) { + return; + } + instance.emitted[handlerName] = true; + callWithAsyncErrorHandling( + onceHandler, + instance, + 6, + args + ); + } + } + function normalizeEmitsOptions(comp, appContext, asMixin = false) { + const cache = appContext.emitsCache; + const cached = cache.get(comp); + if (cached !== void 0) { + return cached; + } + const raw = comp.emits; + let normalized = {}; + let hasExtends = false; + if (!isFunction(comp)) { + const extendEmits = (raw2) => { + const normalizedFromExtend = normalizeEmitsOptions(raw2, appContext, true); + if (normalizedFromExtend) { + hasExtends = true; + extend(normalized, normalizedFromExtend); + } + }; + if (!asMixin && appContext.mixins.length) { + appContext.mixins.forEach(extendEmits); + } + if (comp.extends) { + extendEmits(comp.extends); + } + if (comp.mixins) { + comp.mixins.forEach(extendEmits); + } + } + if (!raw && !hasExtends) { + if (isObject(comp)) { + cache.set(comp, null); + } + return null; + } + if (isArray(raw)) { + raw.forEach((key) => normalized[key] = null); + } else { + extend(normalized, raw); + } + if (isObject(comp)) { + cache.set(comp, normalized); + } + return normalized; + } + function isEmitListener(options, key) { + if (!options || !isOn(key)) { + return false; + } + key = key.slice(2).replace(/Once$/, ""); + return hasOwn(options, key[0].toLowerCase() + key.slice(1)) || hasOwn(options, hyphenate(key)) || hasOwn(options, key); + } + + let currentRenderingInstance = null; + let currentScopeId = null; + function setCurrentRenderingInstance(instance) { + const prev = currentRenderingInstance; + currentRenderingInstance = instance; + currentScopeId = instance && instance.type.__scopeId || null; + return prev; + } + function pushScopeId(id) { + currentScopeId = id; + } + function popScopeId() { + currentScopeId = null; + } + const withScopeId = (_id) => withCtx; + function withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) { + if (!ctx) + return fn; + if (fn._n) { + return fn; + } + const renderFnWithContext = (...args) => { + if (renderFnWithContext._d) { + setBlockTracking(-1); + } + const prevInstance = setCurrentRenderingInstance(ctx); + let res; + try { + res = fn(...args); + } finally { + setCurrentRenderingInstance(prevInstance); + if (renderFnWithContext._d) { + setBlockTracking(1); + } + } + { + devtoolsComponentUpdated(ctx); + } + return res; + }; + renderFnWithContext._n = true; + renderFnWithContext._c = true; + renderFnWithContext._d = true; + return renderFnWithContext; + } + + let accessedAttrs = false; + function markAttrsAccessed() { + accessedAttrs = true; + } + function renderComponentRoot(instance) { + const { + type: Component, + vnode, + proxy, + withProxy, + props, + propsOptions: [propsOptions], + slots, + attrs, + emit, + render, + renderCache, + data, + setupState, + ctx, + inheritAttrs + } = instance; + let result; + let fallthroughAttrs; + const prev = setCurrentRenderingInstance(instance); + { + accessedAttrs = false; + } + try { + if (vnode.shapeFlag & 4) { + const proxyToUse = withProxy || proxy; + result = normalizeVNode( + render.call( + proxyToUse, + proxyToUse, + renderCache, + props, + setupState, + data, + ctx + ) + ); + fallthroughAttrs = attrs; + } else { + const render2 = Component; + if (attrs === props) { + markAttrsAccessed(); + } + result = normalizeVNode( + render2.length > 1 ? render2( + props, + true ? { + get attrs() { + markAttrsAccessed(); + return attrs; + }, + slots, + emit + } : { attrs, slots, emit } + ) : render2( + props, + null + /* we know it doesn't need it */ + ) + ); + fallthroughAttrs = Component.props ? attrs : getFunctionalFallthrough(attrs); + } + } catch (err) { + blockStack.length = 0; + handleError(err, instance, 1); + result = createVNode(Comment); + } + let root = result; + let setRoot = void 0; + if (result.patchFlag > 0 && result.patchFlag & 2048) { + [root, setRoot] = getChildRoot(result); + } + if (fallthroughAttrs && inheritAttrs !== false) { + const keys = Object.keys(fallthroughAttrs); + const { shapeFlag } = root; + if (keys.length) { + if (shapeFlag & (1 | 6)) { + if (propsOptions && keys.some(isModelListener)) { + fallthroughAttrs = filterModelListeners( + fallthroughAttrs, + propsOptions + ); + } + root = cloneVNode(root, fallthroughAttrs); + } else if (!accessedAttrs && root.type !== Comment) { + const allAttrs = Object.keys(attrs); + const eventAttrs = []; + const extraAttrs = []; + for (let i = 0, l = allAttrs.length; i < l; i++) { + const key = allAttrs[i]; + if (isOn(key)) { + if (!isModelListener(key)) { + eventAttrs.push(key[2].toLowerCase() + key.slice(3)); + } + } else { + extraAttrs.push(key); + } + } + if (extraAttrs.length) { + warn( + `Extraneous non-props attributes (${extraAttrs.join(", ")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes.` + ); + } + if (eventAttrs.length) { + warn( + `Extraneous non-emits event listeners (${eventAttrs.join(", ")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes. If the listener is intended to be a component custom event listener only, declare it using the "emits" option.` + ); + } + } + } + } + if (vnode.dirs) { + if (!isElementRoot(root)) { + warn( + `Runtime directive used on component with non-element root node. The directives will not function as intended.` + ); + } + root = cloneVNode(root); + root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs; + } + if (vnode.transition) { + if (!isElementRoot(root)) { + warn( + `Component inside renders non-element root node that cannot be animated.` + ); + } + root.transition = vnode.transition; + } + if (setRoot) { + setRoot(root); + } else { + result = root; + } + setCurrentRenderingInstance(prev); + return result; + } + const getChildRoot = (vnode) => { + const rawChildren = vnode.children; + const dynamicChildren = vnode.dynamicChildren; + const childRoot = filterSingleRoot(rawChildren); + if (!childRoot) { + return [vnode, void 0]; + } + const index = rawChildren.indexOf(childRoot); + const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1; + const setRoot = (updatedRoot) => { + rawChildren[index] = updatedRoot; + if (dynamicChildren) { + if (dynamicIndex > -1) { + dynamicChildren[dynamicIndex] = updatedRoot; + } else if (updatedRoot.patchFlag > 0) { + vnode.dynamicChildren = [...dynamicChildren, updatedRoot]; + } + } + }; + return [normalizeVNode(childRoot), setRoot]; + }; + function filterSingleRoot(children) { + let singleRoot; + for (let i = 0; i < children.length; i++) { + const child = children[i]; + if (isVNode(child)) { + if (child.type !== Comment || child.children === "v-if") { + if (singleRoot) { + return; + } else { + singleRoot = child; + } + } + } else { + return; + } + } + return singleRoot; + } + const getFunctionalFallthrough = (attrs) => { + let res; + for (const key in attrs) { + if (key === "class" || key === "style" || isOn(key)) { + (res || (res = {}))[key] = attrs[key]; + } + } + return res; + }; + const filterModelListeners = (attrs, props) => { + const res = {}; + for (const key in attrs) { + if (!isModelListener(key) || !(key.slice(9) in props)) { + res[key] = attrs[key]; + } + } + return res; + }; + const isElementRoot = (vnode) => { + return vnode.shapeFlag & (6 | 1) || vnode.type === Comment; + }; + function shouldUpdateComponent(prevVNode, nextVNode, optimized) { + const { props: prevProps, children: prevChildren, component } = prevVNode; + const { props: nextProps, children: nextChildren, patchFlag } = nextVNode; + const emits = component.emitsOptions; + if ((prevChildren || nextChildren) && isHmrUpdating) { + return true; + } + if (nextVNode.dirs || nextVNode.transition) { + return true; + } + if (optimized && patchFlag >= 0) { + if (patchFlag & 1024) { + return true; + } + if (patchFlag & 16) { + if (!prevProps) { + return !!nextProps; + } + return hasPropsChanged(prevProps, nextProps, emits); + } else if (patchFlag & 8) { + const dynamicProps = nextVNode.dynamicProps; + for (let i = 0; i < dynamicProps.length; i++) { + const key = dynamicProps[i]; + if (nextProps[key] !== prevProps[key] && !isEmitListener(emits, key)) { + return true; + } + } + } + } else { + if (prevChildren || nextChildren) { + if (!nextChildren || !nextChildren.$stable) { + return true; + } + } + if (prevProps === nextProps) { + return false; + } + if (!prevProps) { + return !!nextProps; + } + if (!nextProps) { + return true; + } + return hasPropsChanged(prevProps, nextProps, emits); + } + return false; + } + function hasPropsChanged(prevProps, nextProps, emitsOptions) { + const nextKeys = Object.keys(nextProps); + if (nextKeys.length !== Object.keys(prevProps).length) { + return true; + } + for (let i = 0; i < nextKeys.length; i++) { + const key = nextKeys[i]; + if (nextProps[key] !== prevProps[key] && !isEmitListener(emitsOptions, key)) { + return true; + } + } + return false; + } + function updateHOCHostEl({ vnode, parent }, el) { + while (parent && parent.subTree === vnode) { + (vnode = parent.vnode).el = el; + parent = parent.parent; + } + } + + const isSuspense = (type) => type.__isSuspense; + const SuspenseImpl = { + name: "Suspense", + // In order to make Suspense tree-shakable, we need to avoid importing it + // directly in the renderer. The renderer checks for the __isSuspense flag + // on a vnode's type and calls the `process` method, passing in renderer + // internals. + __isSuspense: true, + process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals) { + if (n1 == null) { + mountSuspense( + n2, + container, + anchor, + parentComponent, + parentSuspense, + isSVG, + slotScopeIds, + optimized, + rendererInternals + ); + } else { + patchSuspense( + n1, + n2, + container, + anchor, + parentComponent, + isSVG, + slotScopeIds, + optimized, + rendererInternals + ); + } + }, + hydrate: hydrateSuspense, + create: createSuspenseBoundary, + normalize: normalizeSuspenseChildren + }; + const Suspense = SuspenseImpl ; + function triggerEvent(vnode, name) { + const eventListener = vnode.props && vnode.props[name]; + if (isFunction(eventListener)) { + eventListener(); + } + } + function mountSuspense(vnode, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals) { + const { + p: patch, + o: { createElement } + } = rendererInternals; + const hiddenContainer = createElement("div"); + const suspense = vnode.suspense = createSuspenseBoundary( + vnode, + parentSuspense, + parentComponent, + container, + hiddenContainer, + anchor, + isSVG, + slotScopeIds, + optimized, + rendererInternals + ); + patch( + null, + suspense.pendingBranch = vnode.ssContent, + hiddenContainer, + null, + parentComponent, + suspense, + isSVG, + slotScopeIds + ); + if (suspense.deps > 0) { + triggerEvent(vnode, "onPending"); + triggerEvent(vnode, "onFallback"); + patch( + null, + vnode.ssFallback, + container, + anchor, + parentComponent, + null, + // fallback tree will not have suspense context + isSVG, + slotScopeIds + ); + setActiveBranch(suspense, vnode.ssFallback); + } else { + suspense.resolve(false, true); + } + } + function patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotScopeIds, optimized, { p: patch, um: unmount, o: { createElement } }) { + const suspense = n2.suspense = n1.suspense; + suspense.vnode = n2; + n2.el = n1.el; + const newBranch = n2.ssContent; + const newFallback = n2.ssFallback; + const { activeBranch, pendingBranch, isInFallback, isHydrating } = suspense; + if (pendingBranch) { + suspense.pendingBranch = newBranch; + if (isSameVNodeType(newBranch, pendingBranch)) { + patch( + pendingBranch, + newBranch, + suspense.hiddenContainer, + null, + parentComponent, + suspense, + isSVG, + slotScopeIds, + optimized + ); + if (suspense.deps <= 0) { + suspense.resolve(); + } else if (isInFallback) { + patch( + activeBranch, + newFallback, + container, + anchor, + parentComponent, + null, + // fallback tree will not have suspense context + isSVG, + slotScopeIds, + optimized + ); + setActiveBranch(suspense, newFallback); + } + } else { + suspense.pendingId++; + if (isHydrating) { + suspense.isHydrating = false; + suspense.activeBranch = pendingBranch; + } else { + unmount(pendingBranch, parentComponent, suspense); + } + suspense.deps = 0; + suspense.effects.length = 0; + suspense.hiddenContainer = createElement("div"); + if (isInFallback) { + patch( + null, + newBranch, + suspense.hiddenContainer, + null, + parentComponent, + suspense, + isSVG, + slotScopeIds, + optimized + ); + if (suspense.deps <= 0) { + suspense.resolve(); + } else { + patch( + activeBranch, + newFallback, + container, + anchor, + parentComponent, + null, + // fallback tree will not have suspense context + isSVG, + slotScopeIds, + optimized + ); + setActiveBranch(suspense, newFallback); + } + } else if (activeBranch && isSameVNodeType(newBranch, activeBranch)) { + patch( + activeBranch, + newBranch, + container, + anchor, + parentComponent, + suspense, + isSVG, + slotScopeIds, + optimized + ); + suspense.resolve(true); + } else { + patch( + null, + newBranch, + suspense.hiddenContainer, + null, + parentComponent, + suspense, + isSVG, + slotScopeIds, + optimized + ); + if (suspense.deps <= 0) { + suspense.resolve(); + } + } + } + } else { + if (activeBranch && isSameVNodeType(newBranch, activeBranch)) { + patch( + activeBranch, + newBranch, + container, + anchor, + parentComponent, + suspense, + isSVG, + slotScopeIds, + optimized + ); + setActiveBranch(suspense, newBranch); + } else { + triggerEvent(n2, "onPending"); + suspense.pendingBranch = newBranch; + suspense.pendingId++; + patch( + null, + newBranch, + suspense.hiddenContainer, + null, + parentComponent, + suspense, + isSVG, + slotScopeIds, + optimized + ); + if (suspense.deps <= 0) { + suspense.resolve(); + } else { + const { timeout, pendingId } = suspense; + if (timeout > 0) { + setTimeout(() => { + if (suspense.pendingId === pendingId) { + suspense.fallback(newFallback); + } + }, timeout); + } else if (timeout === 0) { + suspense.fallback(newFallback); + } + } + } + } + } + let hasWarned = false; + function createSuspenseBoundary(vnode, parentSuspense, parentComponent, container, hiddenContainer, anchor, isSVG, slotScopeIds, optimized, rendererInternals, isHydrating = false) { + if (!hasWarned) { + hasWarned = true; + console[console.info ? "info" : "log"]( + ` is an experimental feature and its API will likely change.` + ); + } + const { + p: patch, + m: move, + um: unmount, + n: next, + o: { parentNode, remove } + } = rendererInternals; + let parentSuspenseId; + const isSuspensible = isVNodeSuspensible(vnode); + if (isSuspensible) { + if (parentSuspense == null ? void 0 : parentSuspense.pendingBranch) { + parentSuspenseId = parentSuspense.pendingId; + parentSuspense.deps++; + } + } + const timeout = vnode.props ? toNumber(vnode.props.timeout) : void 0; + { + assertNumber(timeout, `Suspense timeout`); + } + const suspense = { + vnode, + parent: parentSuspense, + parentComponent, + isSVG, + container, + hiddenContainer, + anchor, + deps: 0, + pendingId: 0, + timeout: typeof timeout === "number" ? timeout : -1, + activeBranch: null, + pendingBranch: null, + isInFallback: true, + isHydrating, + isUnmounted: false, + effects: [], + resolve(resume = false, sync = false) { + { + if (!resume && !suspense.pendingBranch) { + throw new Error( + `suspense.resolve() is called without a pending branch.` + ); + } + if (suspense.isUnmounted) { + throw new Error( + `suspense.resolve() is called on an already unmounted suspense boundary.` + ); + } + } + const { + vnode: vnode2, + activeBranch, + pendingBranch, + pendingId, + effects, + parentComponent: parentComponent2, + container: container2 + } = suspense; + let delayEnter = false; + if (suspense.isHydrating) { + suspense.isHydrating = false; + } else if (!resume) { + delayEnter = activeBranch && pendingBranch.transition && pendingBranch.transition.mode === "out-in"; + if (delayEnter) { + activeBranch.transition.afterLeave = () => { + if (pendingId === suspense.pendingId) { + move(pendingBranch, container2, anchor2, 0); + queuePostFlushCb(effects); + } + }; + } + let { anchor: anchor2 } = suspense; + if (activeBranch) { + anchor2 = next(activeBranch); + unmount(activeBranch, parentComponent2, suspense, true); + } + if (!delayEnter) { + move(pendingBranch, container2, anchor2, 0); + } + } + setActiveBranch(suspense, pendingBranch); + suspense.pendingBranch = null; + suspense.isInFallback = false; + let parent = suspense.parent; + let hasUnresolvedAncestor = false; + while (parent) { + if (parent.pendingBranch) { + parent.effects.push(...effects); + hasUnresolvedAncestor = true; + break; + } + parent = parent.parent; + } + if (!hasUnresolvedAncestor && !delayEnter) { + queuePostFlushCb(effects); + } + suspense.effects = []; + if (isSuspensible) { + if (parentSuspense && parentSuspense.pendingBranch && parentSuspenseId === parentSuspense.pendingId) { + parentSuspense.deps--; + if (parentSuspense.deps === 0 && !sync) { + parentSuspense.resolve(); + } + } + } + triggerEvent(vnode2, "onResolve"); + }, + fallback(fallbackVNode) { + if (!suspense.pendingBranch) { + return; + } + const { vnode: vnode2, activeBranch, parentComponent: parentComponent2, container: container2, isSVG: isSVG2 } = suspense; + triggerEvent(vnode2, "onFallback"); + const anchor2 = next(activeBranch); + const mountFallback = () => { + if (!suspense.isInFallback) { + return; + } + patch( + null, + fallbackVNode, + container2, + anchor2, + parentComponent2, + null, + // fallback tree will not have suspense context + isSVG2, + slotScopeIds, + optimized + ); + setActiveBranch(suspense, fallbackVNode); + }; + const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === "out-in"; + if (delayEnter) { + activeBranch.transition.afterLeave = mountFallback; + } + suspense.isInFallback = true; + unmount( + activeBranch, + parentComponent2, + null, + // no suspense so unmount hooks fire now + true + // shouldRemove + ); + if (!delayEnter) { + mountFallback(); + } + }, + move(container2, anchor2, type) { + suspense.activeBranch && move(suspense.activeBranch, container2, anchor2, type); + suspense.container = container2; + }, + next() { + return suspense.activeBranch && next(suspense.activeBranch); + }, + registerDep(instance, setupRenderEffect) { + const isInPendingSuspense = !!suspense.pendingBranch; + if (isInPendingSuspense) { + suspense.deps++; + } + const hydratedEl = instance.vnode.el; + instance.asyncDep.catch((err) => { + handleError(err, instance, 0); + }).then((asyncSetupResult) => { + if (instance.isUnmounted || suspense.isUnmounted || suspense.pendingId !== instance.suspenseId) { + return; + } + instance.asyncResolved = true; + const { vnode: vnode2 } = instance; + { + pushWarningContext(vnode2); + } + handleSetupResult(instance, asyncSetupResult, false); + if (hydratedEl) { + vnode2.el = hydratedEl; + } + const placeholder = !hydratedEl && instance.subTree.el; + setupRenderEffect( + instance, + vnode2, + // component may have been moved before resolve. + // if this is not a hydration, instance.subTree will be the comment + // placeholder. + parentNode(hydratedEl || instance.subTree.el), + // anchor will not be used if this is hydration, so only need to + // consider the comment placeholder case. + hydratedEl ? null : next(instance.subTree), + suspense, + isSVG, + optimized + ); + if (placeholder) { + remove(placeholder); + } + updateHOCHostEl(instance, vnode2.el); + { + popWarningContext(); + } + if (isInPendingSuspense && --suspense.deps === 0) { + suspense.resolve(); + } + }); + }, + unmount(parentSuspense2, doRemove) { + suspense.isUnmounted = true; + if (suspense.activeBranch) { + unmount( + suspense.activeBranch, + parentComponent, + parentSuspense2, + doRemove + ); + } + if (suspense.pendingBranch) { + unmount( + suspense.pendingBranch, + parentComponent, + parentSuspense2, + doRemove + ); + } + } + }; + return suspense; + } + function hydrateSuspense(node, vnode, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals, hydrateNode) { + const suspense = vnode.suspense = createSuspenseBoundary( + vnode, + parentSuspense, + parentComponent, + node.parentNode, + document.createElement("div"), + null, + isSVG, + slotScopeIds, + optimized, + rendererInternals, + true + /* hydrating */ + ); + const result = hydrateNode( + node, + suspense.pendingBranch = vnode.ssContent, + parentComponent, + suspense, + slotScopeIds, + optimized + ); + if (suspense.deps === 0) { + suspense.resolve(false, true); + } + return result; + } + function normalizeSuspenseChildren(vnode) { + const { shapeFlag, children } = vnode; + const isSlotChildren = shapeFlag & 32; + vnode.ssContent = normalizeSuspenseSlot( + isSlotChildren ? children.default : children + ); + vnode.ssFallback = isSlotChildren ? normalizeSuspenseSlot(children.fallback) : createVNode(Comment); + } + function normalizeSuspenseSlot(s) { + let block; + if (isFunction(s)) { + const trackBlock = isBlockTreeEnabled && s._c; + if (trackBlock) { + s._d = false; + openBlock(); + } + s = s(); + if (trackBlock) { + s._d = true; + block = currentBlock; + closeBlock(); + } + } + if (isArray(s)) { + const singleChild = filterSingleRoot(s); + if (!singleChild) { + warn(` slots expect a single root node.`); + } + s = singleChild; + } + s = normalizeVNode(s); + if (block && !s.dynamicChildren) { + s.dynamicChildren = block.filter((c) => c !== s); + } + return s; + } + function queueEffectWithSuspense(fn, suspense) { + if (suspense && suspense.pendingBranch) { + if (isArray(fn)) { + suspense.effects.push(...fn); + } else { + suspense.effects.push(fn); + } + } else { + queuePostFlushCb(fn); + } + } + function setActiveBranch(suspense, branch) { + suspense.activeBranch = branch; + const { vnode, parentComponent } = suspense; + const el = vnode.el = branch.el; + if (parentComponent && parentComponent.subTree === vnode) { + parentComponent.vnode.el = el; + updateHOCHostEl(parentComponent, el); + } + } + function isVNodeSuspensible(vnode) { + var _a; + return ((_a = vnode.props) == null ? void 0 : _a.suspensible) != null && vnode.props.suspensible !== false; + } + + function watchEffect(effect, options) { + return doWatch(effect, null, options); + } + function watchPostEffect(effect, options) { + return doWatch( + effect, + null, + extend({}, options, { flush: "post" }) + ); + } + function watchSyncEffect(effect, options) { + return doWatch( + effect, + null, + extend({}, options, { flush: "sync" }) + ); + } + const INITIAL_WATCHER_VALUE = {}; + function watch(source, cb, options) { + if (!isFunction(cb)) { + warn( + `\`watch(fn, options?)\` signature has been moved to a separate API. Use \`watchEffect(fn, options?)\` instead. \`watch\` now only supports \`watch(source, cb, options?) signature.` + ); + } + return doWatch(source, cb, options); + } + function doWatch(source, cb, { immediate, deep, flush, onTrack, onTrigger } = EMPTY_OBJ) { + var _a; + if (!cb) { + if (immediate !== void 0) { + warn( + `watch() "immediate" option is only respected when using the watch(source, callback, options?) signature.` + ); + } + if (deep !== void 0) { + warn( + `watch() "deep" option is only respected when using the watch(source, callback, options?) signature.` + ); + } + } + const warnInvalidSource = (s) => { + warn( + `Invalid watch source: `, + s, + `A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.` + ); + }; + const instance = getCurrentScope() === ((_a = currentInstance) == null ? void 0 : _a.scope) ? currentInstance : null; + let getter; + let forceTrigger = false; + let isMultiSource = false; + if (isRef(source)) { + getter = () => source.value; + forceTrigger = isShallow(source); + } else if (isReactive(source)) { + getter = () => source; + deep = true; + } else if (isArray(source)) { + isMultiSource = true; + forceTrigger = source.some((s) => isReactive(s) || isShallow(s)); + getter = () => source.map((s) => { + if (isRef(s)) { + return s.value; + } else if (isReactive(s)) { + return traverse(s); + } else if (isFunction(s)) { + return callWithErrorHandling(s, instance, 2); + } else { + warnInvalidSource(s); + } + }); + } else if (isFunction(source)) { + if (cb) { + getter = () => callWithErrorHandling(source, instance, 2); + } else { + getter = () => { + if (instance && instance.isUnmounted) { + return; + } + if (cleanup) { + cleanup(); + } + return callWithAsyncErrorHandling( + source, + instance, + 3, + [onCleanup] + ); + }; + } + } else { + getter = NOOP; + warnInvalidSource(source); + } + if (cb && deep) { + const baseGetter = getter; + getter = () => traverse(baseGetter()); + } + let cleanup; + let onCleanup = (fn) => { + cleanup = effect.onStop = () => { + callWithErrorHandling(fn, instance, 4); + }; + }; + let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE; + const job = () => { + if (!effect.active) { + return; + } + if (cb) { + const newValue = effect.run(); + if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue)) || false) { + if (cleanup) { + cleanup(); + } + callWithAsyncErrorHandling(cb, instance, 3, [ + newValue, + // pass undefined as the old value when it's changed for the first time + oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue, + onCleanup + ]); + oldValue = newValue; + } + } else { + effect.run(); + } + }; + job.allowRecurse = !!cb; + let scheduler; + if (flush === "sync") { + scheduler = job; + } else if (flush === "post") { + scheduler = () => queuePostRenderEffect(job, instance && instance.suspense); + } else { + job.pre = true; + if (instance) + job.id = instance.uid; + scheduler = () => queueJob(job); + } + const effect = new ReactiveEffect(getter, scheduler); + { + effect.onTrack = onTrack; + effect.onTrigger = onTrigger; + } + if (cb) { + if (immediate) { + job(); + } else { + oldValue = effect.run(); + } + } else if (flush === "post") { + queuePostRenderEffect( + effect.run.bind(effect), + instance && instance.suspense + ); + } else { + effect.run(); + } + const unwatch = () => { + effect.stop(); + if (instance && instance.scope) { + remove(instance.scope.effects, effect); + } + }; + return unwatch; + } + function instanceWatch(source, value, options) { + const publicThis = this.proxy; + const getter = isString(source) ? source.includes(".") ? createPathGetter(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis); + let cb; + if (isFunction(value)) { + cb = value; + } else { + cb = value.handler; + options = value; + } + const cur = currentInstance; + setCurrentInstance(this); + const res = doWatch(getter, cb.bind(publicThis), options); + if (cur) { + setCurrentInstance(cur); + } else { + unsetCurrentInstance(); + } + return res; + } + function createPathGetter(ctx, path) { + const segments = path.split("."); + return () => { + let cur = ctx; + for (let i = 0; i < segments.length && cur; i++) { + cur = cur[segments[i]]; + } + return cur; + }; + } + function traverse(value, seen) { + if (!isObject(value) || value["__v_skip"]) { + return value; + } + seen = seen || /* @__PURE__ */ new Set(); + if (seen.has(value)) { + return value; + } + seen.add(value); + if (isRef(value)) { + traverse(value.value, seen); + } else if (isArray(value)) { + for (let i = 0; i < value.length; i++) { + traverse(value[i], seen); + } + } else if (isSet(value) || isMap(value)) { + value.forEach((v) => { + traverse(v, seen); + }); + } else if (isPlainObject(value)) { + for (const key in value) { + traverse(value[key], seen); + } + } + return value; + } + + function validateDirectiveName(name) { + if (isBuiltInDirective(name)) { + warn("Do not use built-in directive ids as custom directive id: " + name); + } + } + function withDirectives(vnode, directives) { + const internalInstance = currentRenderingInstance; + if (internalInstance === null) { + warn(`withDirectives can only be used inside render functions.`); + return vnode; + } + const instance = getExposeProxy(internalInstance) || internalInstance.proxy; + const bindings = vnode.dirs || (vnode.dirs = []); + for (let i = 0; i < directives.length; i++) { + let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i]; + if (dir) { + if (isFunction(dir)) { + dir = { + mounted: dir, + updated: dir + }; + } + if (dir.deep) { + traverse(value); + } + bindings.push({ + dir, + instance, + value, + oldValue: void 0, + arg, + modifiers + }); + } + } + return vnode; + } + function invokeDirectiveHook(vnode, prevVNode, instance, name) { + const bindings = vnode.dirs; + const oldBindings = prevVNode && prevVNode.dirs; + for (let i = 0; i < bindings.length; i++) { + const binding = bindings[i]; + if (oldBindings) { + binding.oldValue = oldBindings[i].value; + } + let hook = binding.dir[name]; + if (hook) { + pauseTracking(); + callWithAsyncErrorHandling(hook, instance, 8, [ + vnode.el, + binding, + vnode, + prevVNode + ]); + resetTracking(); + } + } + } + + const leaveCbKey = Symbol("_leaveCb"); + const enterCbKey$1 = Symbol("_enterCb"); + function useTransitionState() { + const state = { + isMounted: false, + isLeaving: false, + isUnmounting: false, + leavingVNodes: /* @__PURE__ */ new Map() + }; + onMounted(() => { + state.isMounted = true; + }); + onBeforeUnmount(() => { + state.isUnmounting = true; + }); + return state; + } + const TransitionHookValidator = [Function, Array]; + const BaseTransitionPropsValidators = { + mode: String, + appear: Boolean, + persisted: Boolean, + // enter + onBeforeEnter: TransitionHookValidator, + onEnter: TransitionHookValidator, + onAfterEnter: TransitionHookValidator, + onEnterCancelled: TransitionHookValidator, + // leave + onBeforeLeave: TransitionHookValidator, + onLeave: TransitionHookValidator, + onAfterLeave: TransitionHookValidator, + onLeaveCancelled: TransitionHookValidator, + // appear + onBeforeAppear: TransitionHookValidator, + onAppear: TransitionHookValidator, + onAfterAppear: TransitionHookValidator, + onAppearCancelled: TransitionHookValidator + }; + const BaseTransitionImpl = { + name: `BaseTransition`, + props: BaseTransitionPropsValidators, + setup(props, { slots }) { + const instance = getCurrentInstance(); + const state = useTransitionState(); + let prevTransitionKey; + return () => { + const children = slots.default && getTransitionRawChildren(slots.default(), true); + if (!children || !children.length) { + return; + } + let child = children[0]; + if (children.length > 1) { + let hasFound = false; + for (const c of children) { + if (c.type !== Comment) { + if (hasFound) { + warn( + " can only be used on a single element or component. Use for lists." + ); + break; + } + child = c; + hasFound = true; + } + } + } + const rawProps = toRaw(props); + const { mode } = rawProps; + if (mode && mode !== "in-out" && mode !== "out-in" && mode !== "default") { + warn(`invalid mode: ${mode}`); + } + if (state.isLeaving) { + return emptyPlaceholder(child); + } + const innerChild = getKeepAliveChild(child); + if (!innerChild) { + return emptyPlaceholder(child); + } + const enterHooks = resolveTransitionHooks( + innerChild, + rawProps, + state, + instance + ); + setTransitionHooks(innerChild, enterHooks); + const oldChild = instance.subTree; + const oldInnerChild = oldChild && getKeepAliveChild(oldChild); + let transitionKeyChanged = false; + const { getTransitionKey } = innerChild.type; + if (getTransitionKey) { + const key = getTransitionKey(); + if (prevTransitionKey === void 0) { + prevTransitionKey = key; + } else if (key !== prevTransitionKey) { + prevTransitionKey = key; + transitionKeyChanged = true; + } + } + if (oldInnerChild && oldInnerChild.type !== Comment && (!isSameVNodeType(innerChild, oldInnerChild) || transitionKeyChanged)) { + const leavingHooks = resolveTransitionHooks( + oldInnerChild, + rawProps, + state, + instance + ); + setTransitionHooks(oldInnerChild, leavingHooks); + if (mode === "out-in") { + state.isLeaving = true; + leavingHooks.afterLeave = () => { + state.isLeaving = false; + if (instance.update.active !== false) { + instance.update(); + } + }; + return emptyPlaceholder(child); + } else if (mode === "in-out" && innerChild.type !== Comment) { + leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => { + const leavingVNodesCache = getLeavingNodesForType( + state, + oldInnerChild + ); + leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild; + el[leaveCbKey] = () => { + earlyRemove(); + el[leaveCbKey] = void 0; + delete enterHooks.delayedLeave; + }; + enterHooks.delayedLeave = delayedLeave; + }; + } + } + return child; + }; + } + }; + const BaseTransition = BaseTransitionImpl; + function getLeavingNodesForType(state, vnode) { + const { leavingVNodes } = state; + let leavingVNodesCache = leavingVNodes.get(vnode.type); + if (!leavingVNodesCache) { + leavingVNodesCache = /* @__PURE__ */ Object.create(null); + leavingVNodes.set(vnode.type, leavingVNodesCache); + } + return leavingVNodesCache; + } + function resolveTransitionHooks(vnode, props, state, instance) { + const { + appear, + mode, + persisted = false, + onBeforeEnter, + onEnter, + onAfterEnter, + onEnterCancelled, + onBeforeLeave, + onLeave, + onAfterLeave, + onLeaveCancelled, + onBeforeAppear, + onAppear, + onAfterAppear, + onAppearCancelled + } = props; + const key = String(vnode.key); + const leavingVNodesCache = getLeavingNodesForType(state, vnode); + const callHook = (hook, args) => { + hook && callWithAsyncErrorHandling( + hook, + instance, + 9, + args + ); + }; + const callAsyncHook = (hook, args) => { + const done = args[1]; + callHook(hook, args); + if (isArray(hook)) { + if (hook.every((hook2) => hook2.length <= 1)) + done(); + } else if (hook.length <= 1) { + done(); + } + }; + const hooks = { + mode, + persisted, + beforeEnter(el) { + let hook = onBeforeEnter; + if (!state.isMounted) { + if (appear) { + hook = onBeforeAppear || onBeforeEnter; + } else { + return; + } + } + if (el[leaveCbKey]) { + el[leaveCbKey]( + true + /* cancelled */ + ); + } + const leavingVNode = leavingVNodesCache[key]; + if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el[leaveCbKey]) { + leavingVNode.el[leaveCbKey](); + } + callHook(hook, [el]); + }, + enter(el) { + let hook = onEnter; + let afterHook = onAfterEnter; + let cancelHook = onEnterCancelled; + if (!state.isMounted) { + if (appear) { + hook = onAppear || onEnter; + afterHook = onAfterAppear || onAfterEnter; + cancelHook = onAppearCancelled || onEnterCancelled; + } else { + return; + } + } + let called = false; + const done = el[enterCbKey$1] = (cancelled) => { + if (called) + return; + called = true; + if (cancelled) { + callHook(cancelHook, [el]); + } else { + callHook(afterHook, [el]); + } + if (hooks.delayedLeave) { + hooks.delayedLeave(); + } + el[enterCbKey$1] = void 0; + }; + if (hook) { + callAsyncHook(hook, [el, done]); + } else { + done(); + } + }, + leave(el, remove) { + const key2 = String(vnode.key); + if (el[enterCbKey$1]) { + el[enterCbKey$1]( + true + /* cancelled */ + ); + } + if (state.isUnmounting) { + return remove(); + } + callHook(onBeforeLeave, [el]); + let called = false; + const done = el[leaveCbKey] = (cancelled) => { + if (called) + return; + called = true; + remove(); + if (cancelled) { + callHook(onLeaveCancelled, [el]); + } else { + callHook(onAfterLeave, [el]); + } + el[leaveCbKey] = void 0; + if (leavingVNodesCache[key2] === vnode) { + delete leavingVNodesCache[key2]; + } + }; + leavingVNodesCache[key2] = vnode; + if (onLeave) { + callAsyncHook(onLeave, [el, done]); + } else { + done(); + } + }, + clone(vnode2) { + return resolveTransitionHooks(vnode2, props, state, instance); + } + }; + return hooks; + } + function emptyPlaceholder(vnode) { + if (isKeepAlive(vnode)) { + vnode = cloneVNode(vnode); + vnode.children = null; + return vnode; + } + } + function getKeepAliveChild(vnode) { + return isKeepAlive(vnode) ? vnode.children ? vnode.children[0] : void 0 : vnode; + } + function setTransitionHooks(vnode, hooks) { + if (vnode.shapeFlag & 6 && vnode.component) { + setTransitionHooks(vnode.component.subTree, hooks); + } else if (vnode.shapeFlag & 128) { + vnode.ssContent.transition = hooks.clone(vnode.ssContent); + vnode.ssFallback.transition = hooks.clone(vnode.ssFallback); + } else { + vnode.transition = hooks; + } + } + function getTransitionRawChildren(children, keepComment = false, parentKey) { + let ret = []; + let keyedFragmentCount = 0; + for (let i = 0; i < children.length; i++) { + let child = children[i]; + const key = parentKey == null ? child.key : String(parentKey) + String(child.key != null ? child.key : i); + if (child.type === Fragment) { + if (child.patchFlag & 128) + keyedFragmentCount++; + ret = ret.concat( + getTransitionRawChildren(child.children, keepComment, key) + ); + } else if (keepComment || child.type !== Comment) { + ret.push(key != null ? cloneVNode(child, { key }) : child); + } + } + if (keyedFragmentCount > 1) { + for (let i = 0; i < ret.length; i++) { + ret[i].patchFlag = -2; + } + } + return ret; + } + + /*! #__NO_SIDE_EFFECTS__ */ + // @__NO_SIDE_EFFECTS__ + function defineComponent(options, extraOptions) { + return isFunction(options) ? ( + // #8326: extend call and options.name access are considered side-effects + // by Rollup, so we have to wrap it in a pure-annotated IIFE. + /* @__PURE__ */ (() => extend({ name: options.name }, extraOptions, { setup: options }))() + ) : options; + } + + const isAsyncWrapper = (i) => !!i.type.__asyncLoader; + /*! #__NO_SIDE_EFFECTS__ */ + // @__NO_SIDE_EFFECTS__ + function defineAsyncComponent(source) { + if (isFunction(source)) { + source = { loader: source }; + } + const { + loader, + loadingComponent, + errorComponent, + delay = 200, + timeout, + // undefined = never times out + suspensible = true, + onError: userOnError + } = source; + let pendingRequest = null; + let resolvedComp; + let retries = 0; + const retry = () => { + retries++; + pendingRequest = null; + return load(); + }; + const load = () => { + let thisRequest; + return pendingRequest || (thisRequest = pendingRequest = loader().catch((err) => { + err = err instanceof Error ? err : new Error(String(err)); + if (userOnError) { + return new Promise((resolve, reject) => { + const userRetry = () => resolve(retry()); + const userFail = () => reject(err); + userOnError(err, userRetry, userFail, retries + 1); + }); + } else { + throw err; + } + }).then((comp) => { + if (thisRequest !== pendingRequest && pendingRequest) { + return pendingRequest; + } + if (!comp) { + warn( + `Async component loader resolved to undefined. If you are using retry(), make sure to return its return value.` + ); + } + if (comp && (comp.__esModule || comp[Symbol.toStringTag] === "Module")) { + comp = comp.default; + } + if (comp && !isObject(comp) && !isFunction(comp)) { + throw new Error(`Invalid async component load result: ${comp}`); + } + resolvedComp = comp; + return comp; + })); + }; + return defineComponent({ + name: "AsyncComponentWrapper", + __asyncLoader: load, + get __asyncResolved() { + return resolvedComp; + }, + setup() { + const instance = currentInstance; + if (resolvedComp) { + return () => createInnerComp(resolvedComp, instance); + } + const onError = (err) => { + pendingRequest = null; + handleError( + err, + instance, + 13, + !errorComponent + /* do not throw in dev if user provided error component */ + ); + }; + if (suspensible && instance.suspense || false) { + return load().then((comp) => { + return () => createInnerComp(comp, instance); + }).catch((err) => { + onError(err); + return () => errorComponent ? createVNode(errorComponent, { + error: err + }) : null; + }); + } + const loaded = ref(false); + const error = ref(); + const delayed = ref(!!delay); + if (delay) { + setTimeout(() => { + delayed.value = false; + }, delay); + } + if (timeout != null) { + setTimeout(() => { + if (!loaded.value && !error.value) { + const err = new Error( + `Async component timed out after ${timeout}ms.` + ); + onError(err); + error.value = err; + } + }, timeout); + } + load().then(() => { + loaded.value = true; + if (instance.parent && isKeepAlive(instance.parent.vnode)) { + queueJob(instance.parent.update); + } + }).catch((err) => { + onError(err); + error.value = err; + }); + return () => { + if (loaded.value && resolvedComp) { + return createInnerComp(resolvedComp, instance); + } else if (error.value && errorComponent) { + return createVNode(errorComponent, { + error: error.value + }); + } else if (loadingComponent && !delayed.value) { + return createVNode(loadingComponent); + } + }; + } + }); + } + function createInnerComp(comp, parent) { + const { ref: ref2, props, children, ce } = parent.vnode; + const vnode = createVNode(comp, props, children); + vnode.ref = ref2; + vnode.ce = ce; + delete parent.vnode.ce; + return vnode; + } + + const isKeepAlive = (vnode) => vnode.type.__isKeepAlive; + const KeepAliveImpl = { + name: `KeepAlive`, + // Marker for special handling inside the renderer. We are not using a === + // check directly on KeepAlive in the renderer, because importing it directly + // would prevent it from being tree-shaken. + __isKeepAlive: true, + props: { + include: [String, RegExp, Array], + exclude: [String, RegExp, Array], + max: [String, Number] + }, + setup(props, { slots }) { + const instance = getCurrentInstance(); + const sharedContext = instance.ctx; + const cache = /* @__PURE__ */ new Map(); + const keys = /* @__PURE__ */ new Set(); + let current = null; + { + instance.__v_cache = cache; + } + const parentSuspense = instance.suspense; + const { + renderer: { + p: patch, + m: move, + um: _unmount, + o: { createElement } + } + } = sharedContext; + const storageContainer = createElement("div"); + sharedContext.activate = (vnode, container, anchor, isSVG, optimized) => { + const instance2 = vnode.component; + move(vnode, container, anchor, 0, parentSuspense); + patch( + instance2.vnode, + vnode, + container, + anchor, + instance2, + parentSuspense, + isSVG, + vnode.slotScopeIds, + optimized + ); + queuePostRenderEffect(() => { + instance2.isDeactivated = false; + if (instance2.a) { + invokeArrayFns(instance2.a); + } + const vnodeHook = vnode.props && vnode.props.onVnodeMounted; + if (vnodeHook) { + invokeVNodeHook(vnodeHook, instance2.parent, vnode); + } + }, parentSuspense); + { + devtoolsComponentAdded(instance2); + } + }; + sharedContext.deactivate = (vnode) => { + const instance2 = vnode.component; + move(vnode, storageContainer, null, 1, parentSuspense); + queuePostRenderEffect(() => { + if (instance2.da) { + invokeArrayFns(instance2.da); + } + const vnodeHook = vnode.props && vnode.props.onVnodeUnmounted; + if (vnodeHook) { + invokeVNodeHook(vnodeHook, instance2.parent, vnode); + } + instance2.isDeactivated = true; + }, parentSuspense); + { + devtoolsComponentAdded(instance2); + } + }; + function unmount(vnode) { + resetShapeFlag(vnode); + _unmount(vnode, instance, parentSuspense, true); + } + function pruneCache(filter) { + cache.forEach((vnode, key) => { + const name = getComponentName(vnode.type); + if (name && (!filter || !filter(name))) { + pruneCacheEntry(key); + } + }); + } + function pruneCacheEntry(key) { + const cached = cache.get(key); + if (!current || !isSameVNodeType(cached, current)) { + unmount(cached); + } else if (current) { + resetShapeFlag(current); + } + cache.delete(key); + keys.delete(key); + } + watch( + () => [props.include, props.exclude], + ([include, exclude]) => { + include && pruneCache((name) => matches(include, name)); + exclude && pruneCache((name) => !matches(exclude, name)); + }, + // prune post-render after `current` has been updated + { flush: "post", deep: true } + ); + let pendingCacheKey = null; + const cacheSubtree = () => { + if (pendingCacheKey != null) { + cache.set(pendingCacheKey, getInnerChild(instance.subTree)); + } + }; + onMounted(cacheSubtree); + onUpdated(cacheSubtree); + onBeforeUnmount(() => { + cache.forEach((cached) => { + const { subTree, suspense } = instance; + const vnode = getInnerChild(subTree); + if (cached.type === vnode.type && cached.key === vnode.key) { + resetShapeFlag(vnode); + const da = vnode.component.da; + da && queuePostRenderEffect(da, suspense); + return; + } + unmount(cached); + }); + }); + return () => { + pendingCacheKey = null; + if (!slots.default) { + return null; + } + const children = slots.default(); + const rawVNode = children[0]; + if (children.length > 1) { + { + warn(`KeepAlive should contain exactly one component child.`); + } + current = null; + return children; + } else if (!isVNode(rawVNode) || !(rawVNode.shapeFlag & 4) && !(rawVNode.shapeFlag & 128)) { + current = null; + return rawVNode; + } + let vnode = getInnerChild(rawVNode); + const comp = vnode.type; + const name = getComponentName( + isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : comp + ); + const { include, exclude, max } = props; + if (include && (!name || !matches(include, name)) || exclude && name && matches(exclude, name)) { + current = vnode; + return rawVNode; + } + const key = vnode.key == null ? comp : vnode.key; + const cachedVNode = cache.get(key); + if (vnode.el) { + vnode = cloneVNode(vnode); + if (rawVNode.shapeFlag & 128) { + rawVNode.ssContent = vnode; + } + } + pendingCacheKey = key; + if (cachedVNode) { + vnode.el = cachedVNode.el; + vnode.component = cachedVNode.component; + if (vnode.transition) { + setTransitionHooks(vnode, vnode.transition); + } + vnode.shapeFlag |= 512; + keys.delete(key); + keys.add(key); + } else { + keys.add(key); + if (max && keys.size > parseInt(max, 10)) { + pruneCacheEntry(keys.values().next().value); + } + } + vnode.shapeFlag |= 256; + current = vnode; + return isSuspense(rawVNode.type) ? rawVNode : vnode; + }; + } + }; + const KeepAlive = KeepAliveImpl; + function matches(pattern, name) { + if (isArray(pattern)) { + return pattern.some((p) => matches(p, name)); + } else if (isString(pattern)) { + return pattern.split(",").includes(name); + } else if (isRegExp(pattern)) { + return pattern.test(name); + } + return false; + } + function onActivated(hook, target) { + registerKeepAliveHook(hook, "a", target); + } + function onDeactivated(hook, target) { + registerKeepAliveHook(hook, "da", target); + } + function registerKeepAliveHook(hook, type, target = currentInstance) { + const wrappedHook = hook.__wdc || (hook.__wdc = () => { + let current = target; + while (current) { + if (current.isDeactivated) { + return; + } + current = current.parent; + } + return hook(); + }); + injectHook(type, wrappedHook, target); + if (target) { + let current = target.parent; + while (current && current.parent) { + if (isKeepAlive(current.parent.vnode)) { + injectToKeepAliveRoot(wrappedHook, type, target, current); + } + current = current.parent; + } + } + } + function injectToKeepAliveRoot(hook, type, target, keepAliveRoot) { + const injected = injectHook( + type, + hook, + keepAliveRoot, + true + /* prepend */ + ); + onUnmounted(() => { + remove(keepAliveRoot[type], injected); + }, target); + } + function resetShapeFlag(vnode) { + vnode.shapeFlag &= ~256; + vnode.shapeFlag &= ~512; + } + function getInnerChild(vnode) { + return vnode.shapeFlag & 128 ? vnode.ssContent : vnode; + } + + function injectHook(type, hook, target = currentInstance, prepend = false) { + if (target) { + const hooks = target[type] || (target[type] = []); + const wrappedHook = hook.__weh || (hook.__weh = (...args) => { + if (target.isUnmounted) { + return; + } + pauseTracking(); + setCurrentInstance(target); + const res = callWithAsyncErrorHandling(hook, target, type, args); + unsetCurrentInstance(); + resetTracking(); + return res; + }); + if (prepend) { + hooks.unshift(wrappedHook); + } else { + hooks.push(wrappedHook); + } + return wrappedHook; + } else { + const apiName = toHandlerKey(ErrorTypeStrings[type].replace(/ hook$/, "")); + warn( + `${apiName} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup().` + (` If you are using async setup(), make sure to register lifecycle hooks before the first await statement.` ) + ); + } + } + const createHook = (lifecycle) => (hook, target = currentInstance) => ( + // post-create lifecycle registrations are noops during SSR (except for serverPrefetch) + (!isInSSRComponentSetup || lifecycle === "sp") && injectHook(lifecycle, (...args) => hook(...args), target) + ); + const onBeforeMount = createHook("bm"); + const onMounted = createHook("m"); + const onBeforeUpdate = createHook("bu"); + const onUpdated = createHook("u"); + const onBeforeUnmount = createHook("bum"); + const onUnmounted = createHook("um"); + const onServerPrefetch = createHook("sp"); + const onRenderTriggered = createHook( + "rtg" + ); + const onRenderTracked = createHook( + "rtc" + ); + function onErrorCaptured(hook, target = currentInstance) { + injectHook("ec", hook, target); + } + + const COMPONENTS = "components"; + const DIRECTIVES = "directives"; + function resolveComponent(name, maybeSelfReference) { + return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name; + } + const NULL_DYNAMIC_COMPONENT = Symbol.for("v-ndc"); + function resolveDynamicComponent(component) { + if (isString(component)) { + return resolveAsset(COMPONENTS, component, false) || component; + } else { + return component || NULL_DYNAMIC_COMPONENT; + } + } + function resolveDirective(name) { + return resolveAsset(DIRECTIVES, name); + } + function resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) { + const instance = currentRenderingInstance || currentInstance; + if (instance) { + const Component = instance.type; + if (type === COMPONENTS) { + const selfName = getComponentName( + Component, + false + /* do not include inferred name to avoid breaking existing code */ + ); + if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize(camelize(name)))) { + return Component; + } + } + const res = ( + // local registration + // check instance[type] first which is resolved for options API + resolve(instance[type] || Component[type], name) || // global registration + resolve(instance.appContext[type], name) + ); + if (!res && maybeSelfReference) { + return Component; + } + if (warnMissing && !res) { + const extra = type === COMPONENTS ? ` +If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``; + warn(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`); + } + return res; + } else { + warn( + `resolve${capitalize(type.slice(0, -1))} can only be used in render() or setup().` + ); + } + } + function resolve(registry, name) { + return registry && (registry[name] || registry[camelize(name)] || registry[capitalize(camelize(name))]); + } + + function renderList(source, renderItem, cache, index) { + let ret; + const cached = cache && cache[index]; + if (isArray(source) || isString(source)) { + ret = new Array(source.length); + for (let i = 0, l = source.length; i < l; i++) { + ret[i] = renderItem(source[i], i, void 0, cached && cached[i]); + } + } else if (typeof source === "number") { + if (!Number.isInteger(source)) { + warn(`The v-for range expect an integer value but got ${source}.`); + } + ret = new Array(source); + for (let i = 0; i < source; i++) { + ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]); + } + } else if (isObject(source)) { + if (source[Symbol.iterator]) { + ret = Array.from( + source, + (item, i) => renderItem(item, i, void 0, cached && cached[i]) + ); + } else { + const keys = Object.keys(source); + ret = new Array(keys.length); + for (let i = 0, l = keys.length; i < l; i++) { + const key = keys[i]; + ret[i] = renderItem(source[key], key, i, cached && cached[i]); + } + } + } else { + ret = []; + } + if (cache) { + cache[index] = ret; + } + return ret; + } + + function createSlots(slots, dynamicSlots) { + for (let i = 0; i < dynamicSlots.length; i++) { + const slot = dynamicSlots[i]; + if (isArray(slot)) { + for (let j = 0; j < slot.length; j++) { + slots[slot[j].name] = slot[j].fn; + } + } else if (slot) { + slots[slot.name] = slot.key ? (...args) => { + const res = slot.fn(...args); + if (res) + res.key = slot.key; + return res; + } : slot.fn; + } + } + return slots; + } + + function renderSlot(slots, name, props = {}, fallback, noSlotted) { + if (currentRenderingInstance.isCE || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.isCE) { + if (name !== "default") + props.name = name; + return createVNode("slot", props, fallback && fallback()); + } + let slot = slots[name]; + if (slot && slot.length > 1) { + warn( + `SSR-optimized slot function detected in a non-SSR-optimized render function. You need to mark this component with $dynamic-slots in the parent template.` + ); + slot = () => []; + } + if (slot && slot._c) { + slot._d = false; + } + openBlock(); + const validSlotContent = slot && ensureValidVNode(slot(props)); + const rendered = createBlock( + Fragment, + { + key: props.key || // slot content array of a dynamic conditional slot may have a branch + // key attached in the `createSlots` helper, respect that + validSlotContent && validSlotContent.key || `_${name}` + }, + validSlotContent || (fallback ? fallback() : []), + validSlotContent && slots._ === 1 ? 64 : -2 + ); + if (!noSlotted && rendered.scopeId) { + rendered.slotScopeIds = [rendered.scopeId + "-s"]; + } + if (slot && slot._c) { + slot._d = true; + } + return rendered; + } + function ensureValidVNode(vnodes) { + return vnodes.some((child) => { + if (!isVNode(child)) + return true; + if (child.type === Comment) + return false; + if (child.type === Fragment && !ensureValidVNode(child.children)) + return false; + return true; + }) ? vnodes : null; + } + + function toHandlers(obj, preserveCaseIfNecessary) { + const ret = {}; + if (!isObject(obj)) { + warn(`v-on with no argument expects an object value.`); + return ret; + } + for (const key in obj) { + ret[preserveCaseIfNecessary && /[A-Z]/.test(key) ? `on:${key}` : toHandlerKey(key)] = obj[key]; + } + return ret; + } + + const getPublicInstance = (i) => { + if (!i) + return null; + if (isStatefulComponent(i)) + return getExposeProxy(i) || i.proxy; + return getPublicInstance(i.parent); + }; + const publicPropertiesMap = ( + // Move PURE marker to new line to workaround compiler discarding it + // due to type annotation + /* @__PURE__ */ extend(/* @__PURE__ */ Object.create(null), { + $: (i) => i, + $el: (i) => i.vnode.el, + $data: (i) => i.data, + $props: (i) => shallowReadonly(i.props) , + $attrs: (i) => shallowReadonly(i.attrs) , + $slots: (i) => shallowReadonly(i.slots) , + $refs: (i) => shallowReadonly(i.refs) , + $parent: (i) => getPublicInstance(i.parent), + $root: (i) => getPublicInstance(i.root), + $emit: (i) => i.emit, + $options: (i) => resolveMergedOptions(i) , + $forceUpdate: (i) => i.f || (i.f = () => queueJob(i.update)), + $nextTick: (i) => i.n || (i.n = nextTick.bind(i.proxy)), + $watch: (i) => instanceWatch.bind(i) + }) + ); + const isReservedPrefix = (key) => key === "_" || key === "$"; + const hasSetupBinding = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn(state, key); + const PublicInstanceProxyHandlers = { + get({ _: instance }, key) { + const { ctx, setupState, data, props, accessCache, type, appContext } = instance; + if (key === "__isVue") { + return true; + } + let normalizedProps; + if (key[0] !== "$") { + const n = accessCache[key]; + if (n !== void 0) { + switch (n) { + case 1 /* SETUP */: + return setupState[key]; + case 2 /* DATA */: + return data[key]; + case 4 /* CONTEXT */: + return ctx[key]; + case 3 /* PROPS */: + return props[key]; + } + } else if (hasSetupBinding(setupState, key)) { + accessCache[key] = 1 /* SETUP */; + return setupState[key]; + } else if (data !== EMPTY_OBJ && hasOwn(data, key)) { + accessCache[key] = 2 /* DATA */; + return data[key]; + } else if ( + // only cache other properties when instance has declared (thus stable) + // props + (normalizedProps = instance.propsOptions[0]) && hasOwn(normalizedProps, key) + ) { + accessCache[key] = 3 /* PROPS */; + return props[key]; + } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) { + accessCache[key] = 4 /* CONTEXT */; + return ctx[key]; + } else if (shouldCacheAccess) { + accessCache[key] = 0 /* OTHER */; + } + } + const publicGetter = publicPropertiesMap[key]; + let cssModule, globalProperties; + if (publicGetter) { + if (key === "$attrs") { + track(instance, "get", key); + markAttrsAccessed(); + } else if (key === "$slots") { + track(instance, "get", key); + } + return publicGetter(instance); + } else if ( + // css module (injected by vue-loader) + (cssModule = type.__cssModules) && (cssModule = cssModule[key]) + ) { + return cssModule; + } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) { + accessCache[key] = 4 /* CONTEXT */; + return ctx[key]; + } else if ( + // global properties + globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key) + ) { + { + return globalProperties[key]; + } + } else if (currentRenderingInstance && (!isString(key) || // #1091 avoid internal isRef/isVNode checks on component instance leading + // to infinite warning loop + key.indexOf("__v") !== 0)) { + if (data !== EMPTY_OBJ && isReservedPrefix(key[0]) && hasOwn(data, key)) { + warn( + `Property ${JSON.stringify( + key + )} must be accessed via $data because it starts with a reserved character ("$" or "_") and is not proxied on the render context.` + ); + } else if (instance === currentRenderingInstance) { + warn( + `Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.` + ); + } + } + }, + set({ _: instance }, key, value) { + const { data, setupState, ctx } = instance; + if (hasSetupBinding(setupState, key)) { + setupState[key] = value; + return true; + } else if (setupState.__isScriptSetup && hasOwn(setupState, key)) { + warn(`Cannot mutate